@coreui/angular-pro 4.2.25 → 4.2.27
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/LICENSE +4 -4
- package/README.md +175 -175
- package/esm2020/coreui-angular-pro.mjs +4 -4
- package/esm2020/lib/accordion/accordion/accordion.component.mjs +40 -40
- package/esm2020/lib/accordion/accordion-button/accordion-button.directive.mjs +43 -43
- package/esm2020/lib/accordion/accordion-item/accordion-item.component.mjs +72 -72
- package/esm2020/lib/accordion/accordion.module.mjs +48 -48
- package/esm2020/lib/accordion/accordion.service.mjs +36 -36
- package/esm2020/lib/accordion/index.mjs +2 -2
- package/esm2020/lib/accordion/public_api.mjs +5 -5
- package/esm2020/lib/alert/alert-heading.directive.mjs +22 -22
- package/esm2020/lib/alert/alert-link.directive.mjs +22 -22
- package/esm2020/lib/alert/alert.component.mjs +181 -181
- package/esm2020/lib/alert/alert.module.mjs +38 -38
- package/esm2020/lib/alert/index.mjs +2 -2
- package/esm2020/lib/alert/public_api.mjs +5 -5
- package/esm2020/lib/avatar/avatar.component.mjs +49 -49
- package/esm2020/lib/avatar/avatar.module.mjs +24 -24
- package/esm2020/lib/avatar/index.mjs +2 -2
- package/esm2020/lib/avatar/public_api.mjs +3 -3
- package/esm2020/lib/backdrop/backdrop.service.mjs +52 -52
- package/esm2020/lib/badge/badge.component.mjs +42 -42
- package/esm2020/lib/badge/badge.module.mjs +24 -24
- package/esm2020/lib/badge/index.mjs +2 -2
- package/esm2020/lib/badge/public_api.mjs +3 -3
- package/esm2020/lib/breadcrumb/breadcrumb/breadcrumb.component.mjs +43 -43
- package/esm2020/lib/breadcrumb/breadcrumb-item/breadcrumb-item.component.mjs +37 -37
- package/esm2020/lib/breadcrumb/breadcrumb-item/breadcrumb-item.mjs +2 -2
- package/esm2020/lib/breadcrumb/breadcrumb-router/breadcrumb-router.component.mjs +41 -41
- package/esm2020/lib/breadcrumb/breadcrumb-router/breadcrumb-router.service.mjs +52 -52
- package/esm2020/lib/breadcrumb/breadcrumb.module.mjs +37 -37
- package/esm2020/lib/breadcrumb/index.mjs +2 -2
- package/esm2020/lib/breadcrumb/public_api.mjs +6 -6
- package/esm2020/lib/button/button-close.directive.mjs +44 -44
- package/esm2020/lib/button/button.directive.mjs +112 -112
- package/esm2020/lib/button/button.module.mjs +29 -29
- package/esm2020/lib/button/index.mjs +2 -2
- package/esm2020/lib/button/public_api.mjs +4 -4
- package/esm2020/lib/button-group/button-group/button-group.component.mjs +41 -41
- package/esm2020/lib/button-group/button-group.module.mjs +29 -29
- package/esm2020/lib/button-group/button-toolbar/button-toolbar.component.mjs +35 -35
- package/esm2020/lib/button-group/index.mjs +2 -2
- package/esm2020/lib/button-group/public_api.mjs +4 -4
- package/esm2020/lib/calendar/calendar/calendar-class-view.pipe.mjs +19 -19
- package/esm2020/lib/calendar/calendar/calendar.component.mjs +376 -376
- package/esm2020/lib/calendar/calendar-month/calendar-class-day.pipe.mjs +28 -28
- package/esm2020/lib/calendar/calendar-month/calendar-class-month.pipe.mjs +21 -21
- package/esm2020/lib/calendar/calendar-month/calendar-class-year.pipe.mjs +21 -21
- package/esm2020/lib/calendar/calendar-month/calendar-day-title.pipe.mjs +16 -16
- package/esm2020/lib/calendar/calendar-month/calendar-day.directive.mjs +81 -81
- package/esm2020/lib/calendar/calendar-month/calendar-day.pipe.mjs +18 -18
- package/esm2020/lib/calendar/calendar-month/calendar-month.component.mjs +324 -324
- package/esm2020/lib/calendar/calendar-month/calendar-weekday.pipe.mjs +20 -20
- package/esm2020/lib/calendar/calendar-navigation/calendar-navigation.component.mjs +79 -79
- package/esm2020/lib/calendar/calendar.module.mjs +62 -62
- package/esm2020/lib/calendar/calendar.service.mjs +60 -60
- package/esm2020/lib/calendar/calendar.utils.mjs +275 -275
- package/esm2020/lib/calendar/index.mjs +2 -2
- package/esm2020/lib/calendar/public_api.mjs +5 -5
- package/esm2020/lib/callout/callout.component.mjs +23 -23
- package/esm2020/lib/callout/callout.module.mjs +20 -20
- package/esm2020/lib/callout/index.mjs +2 -2
- package/esm2020/lib/callout/public_api.mjs +3 -3
- package/esm2020/lib/card/card-body.component.mjs +22 -22
- package/esm2020/lib/card/card-footer.component.mjs +22 -22
- package/esm2020/lib/card/card-group.component.mjs +22 -22
- package/esm2020/lib/card/card-header-actions.component.mjs +20 -20
- package/esm2020/lib/card/card-header.component.mjs +22 -22
- package/esm2020/lib/card/card-img-overlay/card-img-overlay.component.mjs +19 -19
- package/esm2020/lib/card/card-img.directive.mjs +25 -25
- package/esm2020/lib/card/card-link.directive.mjs +21 -21
- package/esm2020/lib/card/card-subtitle.directive.mjs +21 -21
- package/esm2020/lib/card/card-text.directive.mjs +21 -21
- package/esm2020/lib/card/card-title.directive.mjs +21 -21
- package/esm2020/lib/card/card.component.mjs +29 -29
- package/esm2020/lib/card/card.module.mjs +79 -79
- package/esm2020/lib/card/index.mjs +2 -2
- package/esm2020/lib/card/public_api.mjs +14 -14
- package/esm2020/lib/carousel/carousel/carousel.component.mjs +214 -214
- package/esm2020/lib/carousel/carousel-caption/carousel-caption.component.mjs +17 -17
- package/esm2020/lib/carousel/carousel-control/carousel-control.component.mjs +83 -83
- package/esm2020/lib/carousel/carousel-indicators/carousel-indicators.component.mjs +45 -45
- package/esm2020/lib/carousel/carousel-inner/carousel-inner.component.mjs +47 -47
- package/esm2020/lib/carousel/carousel-item/carousel-item.component.mjs +68 -68
- package/esm2020/lib/carousel/carousel-state.mjs +77 -77
- package/esm2020/lib/carousel/carousel-state.type.mjs +2 -2
- package/esm2020/lib/carousel/carousel.animation.mjs +70 -70
- package/esm2020/lib/carousel/carousel.config.mjs +22 -22
- package/esm2020/lib/carousel/carousel.module.mjs +54 -54
- package/esm2020/lib/carousel/carousel.service.mjs +18 -18
- package/esm2020/lib/carousel/index.mjs +2 -2
- package/esm2020/lib/carousel/public_api.mjs +9 -9
- package/esm2020/lib/collapse/collapse.animations.mjs +18 -18
- package/esm2020/lib/collapse/collapse.directive.mjs +190 -190
- package/esm2020/lib/collapse/collapse.module.mjs +23 -23
- package/esm2020/lib/collapse/index.mjs +2 -2
- package/esm2020/lib/collapse/public_api.mjs +3 -3
- package/esm2020/lib/coreui.types.mjs +10 -10
- package/esm2020/lib/date-picker/date-picker.component.mjs +81 -81
- package/esm2020/lib/date-picker/date-picker.module.mjs +59 -59
- package/esm2020/lib/date-picker/index.mjs +2 -2
- package/esm2020/lib/date-picker/public_api.mjs +3 -3
- package/esm2020/lib/date-range-picker/date-range-picker/date-range-picker.component.mjs +629 -608
- package/esm2020/lib/date-range-picker/date-range-picker.module.mjs +55 -55
- package/esm2020/lib/date-range-picker/index.mjs +2 -2
- package/esm2020/lib/date-range-picker/public_api.mjs +3 -3
- package/esm2020/lib/dropdown/dropdown/dropdown.component.mjs +374 -366
- package/esm2020/lib/dropdown/dropdown-close/dropdown-close.directive.mjs +72 -72
- package/esm2020/lib/dropdown/dropdown-divider/dropdown-divider.directive.mjs +23 -23
- package/esm2020/lib/dropdown/dropdown-header/dropdown-header.directive.mjs +23 -23
- package/esm2020/lib/dropdown/dropdown-item/dropdown-item-plain.directive.mjs +23 -23
- package/esm2020/lib/dropdown/dropdown-item/dropdown-item.directive.mjs +86 -86
- package/esm2020/lib/dropdown/dropdown-menu/dropdown-menu.directive.mjs +81 -81
- package/esm2020/lib/dropdown/dropdown.module.mjs +64 -64
- package/esm2020/lib/dropdown/dropdown.service.mjs +18 -18
- package/esm2020/lib/dropdown/index.mjs +2 -2
- package/esm2020/lib/dropdown/public_api.mjs +10 -10
- package/esm2020/lib/element-cover/element-cover.component.mjs +71 -71
- package/esm2020/lib/element-cover/element-cover.module.mjs +28 -28
- package/esm2020/lib/element-cover/index.mjs +2 -2
- package/esm2020/lib/element-cover/public_api.mjs +3 -3
- package/esm2020/lib/footer/footer.component.mjs +38 -38
- package/esm2020/lib/footer/footer.module.mjs +24 -24
- package/esm2020/lib/footer/index.mjs +2 -2
- package/esm2020/lib/footer/public_api.mjs +3 -3
- package/esm2020/lib/form/form/form.directive.mjs +38 -38
- package/esm2020/lib/form/form-check/form-check-input.directive.mjs +62 -62
- package/esm2020/lib/form/form-check/form-check-label.directive.mjs +21 -21
- package/esm2020/lib/form/form-check/form-check.component.mjs +75 -75
- package/esm2020/lib/form/form-control/form-control.directive.mjs +71 -71
- package/esm2020/lib/form/form-feedback/form-feedback.component.mjs +42 -42
- package/esm2020/lib/form/form-floating/form-floating.directive.mjs +38 -38
- package/esm2020/lib/form/form-label/form-label.directive.mjs +39 -39
- package/esm2020/lib/form/form-select/form-select.directive.mjs +34 -34
- package/esm2020/lib/form/form-text/form-text.directive.mjs +22 -22
- package/esm2020/lib/form/form.module.mjs +77 -77
- package/esm2020/lib/form/index.mjs +2 -2
- package/esm2020/lib/form/input-group/input-group.component.mjs +31 -31
- package/esm2020/lib/form/input-group-text/input-group-text.directive.mjs +22 -22
- package/esm2020/lib/form/public_api.mjs +14 -14
- package/esm2020/lib/grid/col.component.mjs +12 -12
- package/esm2020/lib/grid/col.directive.mjs +156 -156
- package/esm2020/lib/grid/col.type.mjs +2 -2
- package/esm2020/lib/grid/container.component.mjs +43 -43
- package/esm2020/lib/grid/container.type.mjs +2 -2
- package/esm2020/lib/grid/grid.module.mjs +48 -48
- package/esm2020/lib/grid/gutter.directive.mjs +56 -56
- package/esm2020/lib/grid/gutter.type.mjs +2 -2
- package/esm2020/lib/grid/index.mjs +2 -2
- package/esm2020/lib/grid/public_api.mjs +8 -8
- package/esm2020/lib/grid/row.component.mjs +12 -12
- package/esm2020/lib/grid/row.directive.mjs +45 -45
- package/esm2020/lib/grid/row.type.mjs +2 -2
- package/esm2020/lib/header/header/header.component.mjs +47 -47
- package/esm2020/lib/header/header-brand/header-brand.component.mjs +31 -31
- package/esm2020/lib/header/header-divider/header-divider.component.mjs +20 -20
- package/esm2020/lib/header/header-nav/header-nav.component.mjs +28 -28
- package/esm2020/lib/header/header-text/header-text.component.mjs +20 -20
- package/esm2020/lib/header/header-toggler/header-toggler.directive.mjs +54 -54
- package/esm2020/lib/header/header.module.mjs +49 -49
- package/esm2020/lib/header/index.mjs +2 -2
- package/esm2020/lib/header/public_api.mjs +8 -8
- package/esm2020/lib/image/img.directive.mjs +91 -91
- package/esm2020/lib/image/img.module.mjs +24 -24
- package/esm2020/lib/image/index.mjs +2 -2
- package/esm2020/lib/image/public_api.mjs +3 -3
- package/esm2020/lib/list-group/index.mjs +2 -2
- package/esm2020/lib/list-group/list-group-item.directive.mjs +73 -73
- package/esm2020/lib/list-group/list-group.directive.mjs +44 -44
- package/esm2020/lib/list-group/list-group.module.mjs +25 -25
- package/esm2020/lib/list-group/public_api.mjs +4 -4
- package/esm2020/lib/loading-button/index.mjs +2 -2
- package/esm2020/lib/loading-button/loading-button.component.mjs +84 -84
- package/esm2020/lib/loading-button/loading-button.module.mjs +28 -28
- package/esm2020/lib/loading-button/public_api.mjs +3 -3
- package/esm2020/lib/modal/index.mjs +2 -2
- package/esm2020/lib/modal/modal/modal.component.mjs +311 -311
- package/esm2020/lib/modal/modal-body/modal-body.component.mjs +19 -19
- package/esm2020/lib/modal/modal-content/modal-content.component.mjs +23 -23
- package/esm2020/lib/modal/modal-dialog/modal-dialog.component.mjs +32 -32
- package/esm2020/lib/modal/modal-dismiss/modal-toggle.directive.mjs +27 -27
- package/esm2020/lib/modal/modal-footer/modal-footer.component.mjs +22 -22
- package/esm2020/lib/modal/modal-header/modal-header.component.mjs +24 -24
- package/esm2020/lib/modal/modal-title/modal-title.directive.mjs +21 -21
- package/esm2020/lib/modal/modal.module.mjs +69 -69
- package/esm2020/lib/modal/modal.service.mjs +21 -21
- package/esm2020/lib/modal/public_api.mjs +11 -11
- package/esm2020/lib/multi-select/index.mjs +2 -2
- package/esm2020/lib/multi-select/multi-select/multi-select.component.mjs +536 -536
- package/esm2020/lib/multi-select/multi-select-native-select/multi-select-native-select.component.mjs +30 -30
- package/esm2020/lib/multi-select/multi-select-optgroup/multi-select-optgroup-label.component.mjs +20 -20
- package/esm2020/lib/multi-select/multi-select-optgroup/multi-select-optgroup.component.mjs +52 -52
- package/esm2020/lib/multi-select/multi-select-option/multi-select-option.component.mjs +144 -144
- package/esm2020/lib/multi-select/multi-select-tag/multi-select-tag.component.mjs +36 -55
- package/esm2020/lib/multi-select/multi-select.module.mjs +51 -51
- package/esm2020/lib/multi-select/multi-select.service.mjs +23 -23
- package/esm2020/lib/multi-select/multi-select.type.mjs +2 -2
- package/esm2020/lib/multi-select/public_api.mjs +7 -7
- package/esm2020/lib/nav/index.mjs +2 -2
- package/esm2020/lib/nav/nav-item.component.mjs +19 -19
- package/esm2020/lib/nav/nav-link.directive.mjs +86 -86
- package/esm2020/lib/nav/nav.component.mjs +24 -24
- package/esm2020/lib/nav/nav.module.mjs +22 -22
- package/esm2020/lib/nav/public_api.mjs +5 -5
- package/esm2020/lib/navbar/index.mjs +2 -2
- package/esm2020/lib/navbar/navbar-brand/navbar-brand.directive.mjs +23 -23
- package/esm2020/lib/navbar/navbar-nav/navbar-nav.component.mjs +40 -40
- package/esm2020/lib/navbar/navbar-text/navbar-text.component.mjs +20 -20
- package/esm2020/lib/navbar/navbar-toggler/navbar-toggler.directive.mjs +63 -63
- package/esm2020/lib/navbar/navbar.component.mjs +84 -84
- package/esm2020/lib/navbar/navbar.module.mjs +48 -48
- package/esm2020/lib/navbar/public_api.mjs +7 -7
- package/esm2020/lib/offcanvas/index.mjs +2 -2
- package/esm2020/lib/offcanvas/offcanvas/offcanvas.component.mjs +244 -244
- package/esm2020/lib/offcanvas/offcanvas-body/offcanvas-body.component.mjs +19 -19
- package/esm2020/lib/offcanvas/offcanvas-header/offcanvas-header.component.mjs +19 -19
- package/esm2020/lib/offcanvas/offcanvas-title/offcanvas-title.directive.mjs +21 -21
- package/esm2020/lib/offcanvas/offcanvas-toggle/offcanvas-toggle.directive.mjs +27 -27
- package/esm2020/lib/offcanvas/offcanvas.module.mjs +57 -57
- package/esm2020/lib/offcanvas/offcanvas.service.mjs +21 -21
- package/esm2020/lib/offcanvas/public_api.mjs +8 -8
- package/esm2020/lib/pagination/index.mjs +2 -2
- package/esm2020/lib/pagination/page-item/page-item.component.mjs +12 -12
- package/esm2020/lib/pagination/page-item/page-item.directive.mjs +62 -62
- package/esm2020/lib/pagination/page-link/page-link.directive.mjs +21 -21
- package/esm2020/lib/pagination/pagination/pagination.component.mjs +41 -41
- package/esm2020/lib/pagination/pagination.module.mjs +38 -38
- package/esm2020/lib/pagination/public_api.mjs +5 -5
- package/esm2020/lib/placeholder/index.mjs +2 -2
- package/esm2020/lib/placeholder/placeholder-animation.directive.mjs +34 -34
- package/esm2020/lib/placeholder/placeholder.directive.mjs +51 -51
- package/esm2020/lib/placeholder/placeholder.module.mjs +29 -29
- package/esm2020/lib/placeholder/public_api.mjs +4 -4
- package/esm2020/lib/popover/index.mjs +2 -2
- package/esm2020/lib/popover/popover/popover.component.mjs +92 -92
- package/esm2020/lib/popover/popover.directive.mjs +196 -196
- package/esm2020/lib/popover/popover.module.mjs +29 -29
- package/esm2020/lib/popover/public_api.mjs +4 -4
- package/esm2020/lib/progress/index.mjs +2 -2
- package/esm2020/lib/progress/progress-bar.component.mjs +112 -112
- package/esm2020/lib/progress/progress-bar.mjs +2 -2
- package/esm2020/lib/progress/progress.component.mjs +72 -72
- package/esm2020/lib/progress/progress.module.mjs +25 -25
- package/esm2020/lib/progress/public_api.mjs +4 -4
- package/esm2020/lib/services/class-toggle.service.mjs +30 -30
- package/esm2020/lib/services/index.mjs +2 -2
- package/esm2020/lib/services/intersection.service.mjs +34 -34
- package/esm2020/lib/services/listeners.service.mjs +43 -43
- package/esm2020/lib/services/public_api.mjs +3 -3
- package/esm2020/lib/shared/html-attr.directive.mjs +52 -52
- package/esm2020/lib/shared/index.mjs +2 -2
- package/esm2020/lib/shared/public_api.mjs +4 -4
- package/esm2020/lib/shared/shared.module.mjs +46 -46
- package/esm2020/lib/shared/template-id.directive.mjs +19 -19
- package/esm2020/lib/sidebar/index.mjs +2 -2
- package/esm2020/lib/sidebar/public_api.mjs +10 -10
- package/esm2020/lib/sidebar/sidebar/sidebar.component.mjs +246 -246
- package/esm2020/lib/sidebar/sidebar-backdrop/sidebar-backdrop.service.mjs +60 -60
- package/esm2020/lib/sidebar/sidebar-brand/sidebar-brand.component.mjs +30 -30
- package/esm2020/lib/sidebar/sidebar-footer/sidebar-footer.component.mjs +20 -20
- package/esm2020/lib/sidebar/sidebar-header/sidebar-header.component.mjs +20 -20
- package/esm2020/lib/sidebar/sidebar-nav/index.mjs +2 -2
- package/esm2020/lib/sidebar/sidebar-nav/public_api.mjs +14 -14
- package/esm2020/lib/sidebar/sidebar-nav/sidebar-nav-badge.pipe.mjs +24 -24
- package/esm2020/lib/sidebar/sidebar-nav/sidebar-nav-divider.component.mjs +18 -18
- package/esm2020/lib/sidebar/sidebar-nav/sidebar-nav-group.service.mjs +18 -18
- package/esm2020/lib/sidebar/sidebar-nav/sidebar-nav-icon.pipe.mjs +21 -21
- package/esm2020/lib/sidebar/sidebar-nav/sidebar-nav-item-class.pipe.mjs +33 -33
- package/esm2020/lib/sidebar/sidebar-nav/sidebar-nav-label.component.mjs +43 -43
- package/esm2020/lib/sidebar/sidebar-nav/sidebar-nav-link.component.mjs +94 -94
- package/esm2020/lib/sidebar/sidebar-nav/sidebar-nav-link.pipe.mjs +23 -23
- package/esm2020/lib/sidebar/sidebar-nav/sidebar-nav-title.component.mjs +68 -68
- package/esm2020/lib/sidebar/sidebar-nav/sidebar-nav.component.mjs +204 -204
- package/esm2020/lib/sidebar/sidebar-nav/sidebar-nav.mjs +2 -2
- package/esm2020/lib/sidebar/sidebar-nav/sidebar-nav.service.mjs +54 -54
- package/esm2020/lib/sidebar/sidebar-toggle/sidebar-toggle.directive.mjs +40 -40
- package/esm2020/lib/sidebar/sidebar-toggler/sidebar-toggler.component.mjs +26 -26
- package/esm2020/lib/sidebar/sidebar.module.mjs +99 -99
- package/esm2020/lib/sidebar/sidebar.service.mjs +21 -21
- package/esm2020/lib/smart-pagination/index.mjs +2 -2
- package/esm2020/lib/smart-pagination/public_api.mjs +3 -3
- package/esm2020/lib/smart-pagination/smart-pagination.component.mjs +196 -196
- package/esm2020/lib/smart-pagination/smart-pagination.module.mjs +28 -28
- package/esm2020/lib/smart-pagination/smart-pagination.type.mjs +2 -2
- package/esm2020/lib/smart-table/index.mjs +2 -2
- package/esm2020/lib/smart-table/public_api.mjs +5 -4
- package/esm2020/lib/smart-table/smart-table/smart-table.component.mjs +515 -517
- package/esm2020/lib/smart-table/smart-table-column-filter/smart-table-column-filter.component.mjs +30 -30
- package/esm2020/lib/smart-table/smart-table-filter/filter-input.directive.mjs +78 -78
- package/esm2020/lib/smart-table/smart-table-filter/smart-table-filter.component.mjs +46 -46
- package/esm2020/lib/smart-table/smart-table-head/smart-table-head.component.mjs +165 -165
- package/esm2020/lib/smart-table/smart-table-items-per-page-selector/smart-table-items-per-page-selector.component.mjs +49 -49
- package/esm2020/lib/smart-table/smart-table.module.mjs +76 -76
- package/esm2020/lib/smart-table/smart-table.type.mjs +1 -1
- package/esm2020/lib/spinner/index.mjs +2 -2
- package/esm2020/lib/spinner/public_api.mjs +3 -3
- package/esm2020/lib/spinner/spinner.component.mjs +49 -49
- package/esm2020/lib/spinner/spinner.module.mjs +28 -28
- package/esm2020/lib/table/index.mjs +2 -2
- package/esm2020/lib/table/public_api.mjs +5 -5
- package/esm2020/lib/table/table-active.directive.mjs +40 -40
- package/esm2020/lib/table/table-color.directive.mjs +24 -24
- package/esm2020/lib/table/table.directive.mjs +147 -147
- package/esm2020/lib/table/table.module.mjs +34 -34
- package/esm2020/lib/table/table.type.mjs +2 -2
- package/esm2020/lib/tabs/index.mjs +2 -2
- package/esm2020/lib/tabs/public_api.mjs +6 -6
- package/esm2020/lib/tabs/tab-content/tab-content.component.mjs +92 -92
- package/esm2020/lib/tabs/tab-content-ref.directive.mjs +128 -128
- package/esm2020/lib/tabs/tab-pane/tab-pane.component.mjs +57 -57
- package/esm2020/lib/tabs/tab.service.mjs +21 -21
- package/esm2020/lib/tabs/tabs.module.mjs +40 -40
- package/esm2020/lib/time-picker/index.mjs +2 -2
- package/esm2020/lib/time-picker/public_api.mjs +3 -3
- package/esm2020/lib/time-picker/time-picker-roll-col/time-picker-roll-am-pm.component.mjs +103 -103
- package/esm2020/lib/time-picker/time-picker-roll-col/time-picker-roll-col.component.mjs +104 -104
- package/esm2020/lib/time-picker/time-picker.component.mjs +489 -489
- package/esm2020/lib/time-picker/time-picker.module.mjs +50 -50
- package/esm2020/lib/time-picker/time.utils.mjs +645 -645
- package/esm2020/lib/toast/index.mjs +2 -2
- package/esm2020/lib/toast/public_api.mjs +9 -9
- package/esm2020/lib/toast/toast/toast.component.mjs +238 -238
- package/esm2020/lib/toast/toast-body/toast-body.component.mjs +21 -21
- package/esm2020/lib/toast/toast-close.directive.mjs +28 -28
- package/esm2020/lib/toast/toast-header/toast-header.component.mjs +31 -31
- package/esm2020/lib/toast/toast.module.mjs +50 -50
- package/esm2020/lib/toast/toaster/toaster-host.directive.mjs +17 -17
- package/esm2020/lib/toast/toaster/toaster.component.mjs +140 -140
- package/esm2020/lib/toast/toaster/toaster.service.mjs +21 -21
- package/esm2020/lib/tooltip/index.mjs +2 -2
- package/esm2020/lib/tooltip/public_api.mjs +4 -4
- package/esm2020/lib/tooltip/tooltip/tooltip.component.mjs +88 -88
- package/esm2020/lib/tooltip/tooltip.directive.mjs +191 -191
- package/esm2020/lib/tooltip/tooltip.module.mjs +29 -29
- package/esm2020/lib/utilities/align.directive.mjs +24 -24
- package/esm2020/lib/utilities/bg-color.directive.mjs +33 -33
- package/esm2020/lib/utilities/border.directive.mjs +66 -66
- package/esm2020/lib/utilities/border.type.mjs +2 -2
- package/esm2020/lib/utilities/index.mjs +2 -2
- package/esm2020/lib/utilities/public_api.mjs +7 -7
- package/esm2020/lib/utilities/rounded.directive.mjs +65 -65
- package/esm2020/lib/utilities/rounded.type.mjs +2 -2
- package/esm2020/lib/utilities/text-color.directive.mjs +32 -32
- package/esm2020/lib/utilities/utilities.module.mjs +44 -44
- package/esm2020/lib/widget/index.mjs +2 -2
- package/esm2020/lib/widget/public_api.mjs +8 -8
- package/esm2020/lib/widget/widget-stat-a/widget-stat-a.component.mjs +49 -49
- package/esm2020/lib/widget/widget-stat-b/widget-stat-b.component.mjs +52 -52
- package/esm2020/lib/widget/widget-stat-c/widget-stat-c.component.mjs +80 -80
- package/esm2020/lib/widget/widget-stat-d/widget-stat-d.component.mjs +39 -39
- package/esm2020/lib/widget/widget-stat-e/widget-stat-e.component.mjs +30 -30
- package/esm2020/lib/widget/widget-stat-f/widget-stat-f.component.mjs +92 -92
- package/esm2020/lib/widget/widget.module.mjs +57 -57
- package/esm2020/public-api.mjs +50 -50
- package/fesm2015/coreui-angular-pro.mjs +15310 -15304
- package/fesm2015/coreui-angular-pro.mjs.map +1 -1
- package/fesm2020/coreui-angular-pro.mjs +15187 -15181
- package/fesm2020/coreui-angular-pro.mjs.map +1 -1
- package/index.d.ts +5 -5
- package/lib/accordion/accordion/accordion.component.d.ts +22 -22
- package/lib/accordion/accordion-button/accordion-button.directive.d.ts +18 -18
- package/lib/accordion/accordion-item/accordion-item.component.d.ts +33 -33
- package/lib/accordion/accordion.module.d.ts +12 -12
- package/lib/accordion/accordion.service.d.ts +13 -13
- package/lib/accordion/index.d.ts +1 -1
- package/lib/accordion/public_api.d.ts +4 -4
- package/lib/alert/alert-heading.directive.d.ts +7 -7
- package/lib/alert/alert-link.directive.d.ts +7 -7
- package/lib/alert/alert.component.d.ts +68 -68
- package/lib/alert/alert.module.d.ts +11 -11
- package/lib/alert/index.d.ts +1 -1
- package/lib/alert/public_api.d.ts +4 -4
- package/lib/avatar/avatar.component.d.ts +40 -40
- package/lib/avatar/avatar.module.d.ts +8 -8
- package/lib/avatar/index.d.ts +1 -1
- package/lib/avatar/public_api.d.ts +2 -2
- package/lib/backdrop/backdrop.service.d.ts +16 -16
- package/lib/badge/badge.component.d.ts +32 -32
- package/lib/badge/badge.module.d.ts +8 -8
- package/lib/badge/index.d.ts +1 -1
- package/lib/badge/public_api.d.ts +2 -2
- package/lib/breadcrumb/breadcrumb/breadcrumb.component.d.ts +21 -21
- package/lib/breadcrumb/breadcrumb-item/breadcrumb-item.component.d.ts +28 -28
- package/lib/breadcrumb/breadcrumb-item/breadcrumb-item.d.ts +9 -9
- package/lib/breadcrumb/breadcrumb-router/breadcrumb-router.component.d.ts +21 -21
- package/lib/breadcrumb/breadcrumb-router/breadcrumb-router.service.d.ts +14 -14
- package/lib/breadcrumb/breadcrumb.module.d.ts +12 -12
- package/lib/breadcrumb/index.d.ts +1 -1
- package/lib/breadcrumb/public_api.d.ts +6 -6
- package/lib/button/button-close.directive.d.ts +16 -16
- package/lib/button/button.directive.d.ts +54 -54
- package/lib/button/button.module.d.ts +9 -9
- package/lib/button/index.d.ts +1 -1
- package/lib/button/public_api.d.ts +3 -3
- package/lib/button-group/button-group/button-group.component.d.ts +23 -23
- package/lib/button-group/button-group.module.d.ts +9 -9
- package/lib/button-group/button-toolbar/button-toolbar.component.d.ts +13 -13
- package/lib/button-group/index.d.ts +1 -1
- package/lib/button-group/public_api.d.ts +3 -3
- package/lib/calendar/calendar/calendar-class-view.pipe.d.ts +7 -7
- package/lib/calendar/calendar/calendar.component.d.ts +155 -155
- package/lib/calendar/calendar-month/calendar-class-day.pipe.d.ts +15 -15
- package/lib/calendar/calendar-month/calendar-class-month.pipe.d.ts +7 -7
- package/lib/calendar/calendar-month/calendar-class-year.pipe.d.ts +7 -7
- package/lib/calendar/calendar-month/calendar-day-title.pipe.d.ts +7 -7
- package/lib/calendar/calendar-month/calendar-day.directive.d.ts +29 -29
- package/lib/calendar/calendar-month/calendar-day.pipe.d.ts +8 -8
- package/lib/calendar/calendar-month/calendar-month.component.d.ts +121 -121
- package/lib/calendar/calendar-month/calendar-weekday.pipe.d.ts +8 -8
- package/lib/calendar/calendar-navigation/calendar-navigation.component.d.ts +30 -30
- package/lib/calendar/calendar.module.d.ts +19 -19
- package/lib/calendar/calendar.service.d.ts +33 -33
- package/lib/calendar/calendar.utils.d.ts +26 -26
- package/lib/calendar/index.d.ts +1 -1
- package/lib/calendar/public_api.d.ts +4 -4
- package/lib/callout/callout.component.d.ts +13 -13
- package/lib/callout/callout.module.d.ts +8 -8
- package/lib/callout/index.d.ts +1 -1
- package/lib/callout/public_api.d.ts +2 -2
- package/lib/card/card-body.component.d.ts +6 -6
- package/lib/card/card-footer.component.d.ts +6 -6
- package/lib/card/card-group.component.d.ts +6 -6
- package/lib/card/card-header-actions.component.d.ts +6 -6
- package/lib/card/card-header.component.d.ts +6 -6
- package/lib/card/card-img-overlay/card-img-overlay.component.d.ts +6 -6
- package/lib/card/card-img.directive.d.ts +11 -11
- package/lib/card/card-link.directive.d.ts +6 -6
- package/lib/card/card-subtitle.directive.d.ts +6 -6
- package/lib/card/card-text.directive.d.ts +6 -6
- package/lib/card/card-title.directive.d.ts +6 -6
- package/lib/card/card.component.d.ts +18 -18
- package/lib/card/card.module.d.ts +19 -19
- package/lib/card/index.d.ts +1 -1
- package/lib/card/public_api.d.ts +13 -13
- package/lib/carousel/carousel/carousel.component.d.ts +92 -92
- package/lib/carousel/carousel-caption/carousel-caption.component.d.ts +7 -7
- package/lib/carousel/carousel-control/carousel-control.component.d.ts +31 -31
- package/lib/carousel/carousel-indicators/carousel-indicators.component.d.ts +18 -18
- package/lib/carousel/carousel-inner/carousel-inner.component.d.ts +21 -21
- package/lib/carousel/carousel-item/carousel-item.component.d.ts +30 -30
- package/lib/carousel/carousel-state.d.ts +16 -16
- package/lib/carousel/carousel-state.type.d.ts +15 -15
- package/lib/carousel/carousel.animation.d.ts +4 -4
- package/lib/carousel/carousel.config.d.ts +10 -10
- package/lib/carousel/carousel.module.d.ts +15 -15
- package/lib/carousel/carousel.service.d.ts +14 -14
- package/lib/carousel/index.d.ts +1 -1
- package/lib/carousel/public_api.d.ts +8 -8
- package/lib/collapse/collapse.animations.d.ts +4 -4
- package/lib/collapse/collapse.directive.d.ts +65 -65
- package/lib/collapse/collapse.module.d.ts +10 -10
- package/lib/collapse/index.d.ts +1 -1
- package/lib/collapse/public_api.d.ts +2 -2
- package/lib/coreui.types.d.ts +45 -45
- package/lib/date-picker/date-picker.component.d.ts +18 -18
- package/lib/date-picker/date-picker.module.d.ts +16 -16
- package/lib/date-picker/index.d.ts +1 -1
- package/lib/date-picker/public_api.d.ts +3 -3
- package/lib/date-range-picker/date-range-picker/date-range-picker.component.d.ts +249 -240
- package/lib/date-range-picker/date-range-picker.module.d.ts +15 -15
- package/lib/date-range-picker/index.d.ts +1 -1
- package/lib/date-range-picker/public_api.d.ts +2 -2
- package/lib/dropdown/dropdown/dropdown.component.d.ts +136 -135
- package/lib/dropdown/dropdown-close/dropdown-close.directive.d.ts +26 -26
- package/lib/dropdown/dropdown-divider/dropdown-divider.directive.d.ts +7 -7
- package/lib/dropdown/dropdown-header/dropdown-header.directive.d.ts +7 -7
- package/lib/dropdown/dropdown-item/dropdown-item-plain.directive.d.ts +7 -7
- package/lib/dropdown/dropdown-item/dropdown-item.directive.d.ts +36 -36
- package/lib/dropdown/dropdown-menu/dropdown-menu.directive.d.ts +36 -36
- package/lib/dropdown/dropdown.module.d.ts +14 -14
- package/lib/dropdown/dropdown.service.d.ts +13 -13
- package/lib/dropdown/index.d.ts +1 -1
- package/lib/dropdown/public_api.d.ts +9 -9
- package/lib/element-cover/element-cover.component.d.ts +27 -27
- package/lib/element-cover/element-cover.module.d.ts +9 -9
- package/lib/element-cover/index.d.ts +1 -1
- package/lib/element-cover/public_api.d.ts +2 -2
- package/lib/footer/footer.component.d.ts +18 -18
- package/lib/footer/footer.module.d.ts +8 -8
- package/lib/footer/index.d.ts +1 -1
- package/lib/footer/public_api.d.ts +2 -2
- package/lib/form/form/form.directive.d.ts +17 -17
- package/lib/form/form-check/form-check-input.directive.d.ts +31 -31
- package/lib/form/form-check/form-check-label.directive.d.ts +6 -6
- package/lib/form/form-check/form-check.component.d.ts +36 -36
- package/lib/form/form-control/form-control.directive.d.ts +34 -34
- package/lib/form/form-feedback/form-feedback.component.d.ts +18 -18
- package/lib/form/form-floating/form-floating.directive.d.ts +16 -16
- package/lib/form/form-label/form-label.directive.d.ts +16 -16
- package/lib/form/form-select/form-select.directive.d.ts +16 -16
- package/lib/form/form-text/form-text.directive.d.ts +7 -7
- package/lib/form/form.module.d.ts +19 -19
- package/lib/form/index.d.ts +1 -1
- package/lib/form/input-group/input-group.component.d.ts +11 -11
- package/lib/form/input-group-text/input-group-text.directive.d.ts +7 -7
- package/lib/form/public_api.d.ts +13 -13
- package/lib/grid/col.component.d.ts +6 -6
- package/lib/grid/col.directive.d.ts +75 -75
- package/lib/grid/col.type.d.ts +11 -11
- package/lib/grid/container.component.d.ts +20 -20
- package/lib/grid/container.type.d.ts +5 -5
- package/lib/grid/grid.module.d.ts +13 -13
- package/lib/grid/gutter.directive.d.ts +13 -13
- package/lib/grid/gutter.type.d.ts +13 -13
- package/lib/grid/index.d.ts +1 -1
- package/lib/grid/public_api.d.ts +7 -7
- package/lib/grid/row.component.d.ts +6 -6
- package/lib/grid/row.directive.d.ts +37 -37
- package/lib/grid/row.type.d.ts +9 -9
- package/lib/header/header/header.component.d.ts +25 -25
- package/lib/header/header-brand/header-brand.component.d.ts +12 -12
- package/lib/header/header-divider/header-divider.component.d.ts +6 -6
- package/lib/header/header-nav/header-nav.component.d.ts +12 -12
- package/lib/header/header-text/header-text.component.d.ts +6 -6
- package/lib/header/header-toggler/header-toggler.directive.d.ts +25 -25
- package/lib/header/header.module.d.ts +13 -13
- package/lib/header/index.d.ts +1 -1
- package/lib/header/public_api.d.ts +7 -7
- package/lib/image/img.directive.d.ts +42 -42
- package/lib/image/img.module.d.ts +8 -8
- package/lib/image/index.d.ts +1 -1
- package/lib/image/public_api.d.ts +2 -2
- package/lib/list-group/index.d.ts +1 -1
- package/lib/list-group/list-group-item.directive.d.ts +33 -33
- package/lib/list-group/list-group.directive.d.ts +21 -21
- package/lib/list-group/list-group.module.d.ts +9 -9
- package/lib/list-group/public_api.d.ts +3 -3
- package/lib/loading-button/index.d.ts +1 -1
- package/lib/loading-button/loading-button.component.d.ts +43 -43
- package/lib/loading-button/loading-button.module.d.ts +9 -9
- package/lib/loading-button/public_api.d.ts +2 -2
- package/lib/modal/index.d.ts +1 -1
- package/lib/modal/modal/modal.component.d.ts +104 -104
- package/lib/modal/modal-body/modal-body.component.d.ts +6 -6
- package/lib/modal/modal-content/modal-content.component.d.ts +7 -7
- package/lib/modal/modal-dialog/modal-dialog.component.d.ts +25 -25
- package/lib/modal/modal-dismiss/modal-toggle.directive.d.ts +13 -13
- package/lib/modal/modal-footer/modal-footer.component.d.ts +6 -6
- package/lib/modal/modal-header/modal-header.component.d.ts +6 -6
- package/lib/modal/modal-title/modal-title.directive.d.ts +6 -6
- package/lib/modal/modal.module.d.ts +16 -16
- package/lib/modal/modal.service.d.ts +15 -15
- package/lib/modal/public_api.d.ts +10 -10
- package/lib/multi-select/index.d.ts +1 -1
- package/lib/multi-select/multi-select/multi-select.component.d.ts +150 -150
- package/lib/multi-select/multi-select-native-select/multi-select-native-select.component.d.ts +14 -14
- package/lib/multi-select/multi-select-optgroup/multi-select-optgroup-label.component.d.ts +9 -9
- package/lib/multi-select/multi-select-optgroup/multi-select-optgroup.component.d.ts +20 -20
- package/lib/multi-select/multi-select-option/multi-select-option.component.d.ts +49 -49
- package/lib/multi-select/multi-select-tag/multi-select-tag.component.d.ts +17 -21
- package/lib/multi-select/multi-select.module.d.ts +17 -17
- package/lib/multi-select/multi-select.service.d.ts +12 -12
- package/lib/multi-select/multi-select.type.d.ts +34 -34
- package/lib/multi-select/public_api.d.ts +6 -6
- package/lib/nav/index.d.ts +1 -1
- package/lib/nav/nav-item.component.d.ts +6 -6
- package/lib/nav/nav-link.directive.d.ts +34 -34
- package/lib/nav/nav.component.d.ts +16 -16
- package/lib/nav/nav.module.d.ts +10 -10
- package/lib/nav/public_api.d.ts +4 -4
- package/lib/navbar/index.d.ts +1 -1
- package/lib/navbar/navbar-brand/navbar-brand.directive.d.ts +7 -7
- package/lib/navbar/navbar-nav/navbar-nav.component.d.ts +15 -15
- package/lib/navbar/navbar-text/navbar-text.component.d.ts +6 -6
- package/lib/navbar/navbar-toggler/navbar-toggler.directive.d.ts +33 -33
- package/lib/navbar/navbar.component.d.ts +39 -39
- package/lib/navbar/navbar.module.d.ts +13 -13
- package/lib/navbar/public_api.d.ts +6 -6
- package/lib/offcanvas/index.d.ts +1 -1
- package/lib/offcanvas/offcanvas/offcanvas.component.d.ts +82 -82
- package/lib/offcanvas/offcanvas-body/offcanvas-body.component.d.ts +6 -6
- package/lib/offcanvas/offcanvas-header/offcanvas-header.component.d.ts +6 -6
- package/lib/offcanvas/offcanvas-title/offcanvas-title.directive.d.ts +6 -6
- package/lib/offcanvas/offcanvas-toggle/offcanvas-toggle.directive.d.ts +14 -14
- package/lib/offcanvas/offcanvas.module.d.ts +13 -13
- package/lib/offcanvas/offcanvas.service.d.ts +15 -15
- package/lib/offcanvas/public_api.d.ts +7 -7
- package/lib/pagination/index.d.ts +1 -1
- package/lib/pagination/page-item/page-item.component.d.ts +6 -6
- package/lib/pagination/page-item/page-item.directive.d.ts +24 -24
- package/lib/pagination/page-link/page-link.directive.d.ts +6 -6
- package/lib/pagination/pagination/pagination.component.d.ts +22 -22
- package/lib/pagination/pagination.module.d.ts +11 -11
- package/lib/pagination/public_api.d.ts +5 -5
- package/lib/placeholder/index.d.ts +1 -1
- package/lib/placeholder/placeholder-animation.directive.d.ts +18 -18
- package/lib/placeholder/placeholder.directive.d.ts +22 -22
- package/lib/placeholder/placeholder.module.d.ts +9 -9
- package/lib/placeholder/public_api.d.ts +3 -3
- package/lib/popover/index.d.ts +1 -1
- package/lib/popover/popover/popover.component.d.ts +30 -30
- package/lib/popover/popover.directive.d.ts +58 -58
- package/lib/popover/popover.module.d.ts +9 -9
- package/lib/popover/public_api.d.ts +3 -3
- package/lib/progress/index.d.ts +1 -1
- package/lib/progress/progress-bar.component.d.ts +52 -52
- package/lib/progress/progress-bar.d.ts +10 -10
- package/lib/progress/progress.component.d.ts +32 -32
- package/lib/progress/progress.module.d.ts +9 -9
- package/lib/progress/public_api.d.ts +4 -4
- package/lib/services/class-toggle.service.d.ts +11 -11
- package/lib/services/index.d.ts +1 -1
- package/lib/services/intersection.service.d.ts +22 -22
- package/lib/services/listeners.service.d.ts +19 -19
- package/lib/services/public_api.d.ts +2 -2
- package/lib/shared/html-attr.directive.d.ts +16 -16
- package/lib/shared/index.d.ts +1 -1
- package/lib/shared/public_api.d.ts +3 -3
- package/lib/shared/shared.module.d.ts +11 -11
- package/lib/shared/template-id.directive.d.ts +9 -9
- package/lib/sidebar/index.d.ts +1 -1
- package/lib/sidebar/public_api.d.ts +9 -9
- package/lib/sidebar/sidebar/sidebar.component.d.ts +85 -85
- package/lib/sidebar/sidebar-backdrop/sidebar-backdrop.service.d.ts +16 -16
- package/lib/sidebar/sidebar-brand/sidebar-brand.component.d.ts +12 -12
- package/lib/sidebar/sidebar-footer/sidebar-footer.component.d.ts +7 -7
- package/lib/sidebar/sidebar-header/sidebar-header.component.d.ts +7 -7
- package/lib/sidebar/sidebar-nav/index.d.ts +1 -1
- package/lib/sidebar/sidebar-nav/public_api.d.ts +12 -12
- package/lib/sidebar/sidebar-nav/sidebar-nav-badge.pipe.d.ts +7 -7
- package/lib/sidebar/sidebar-nav/sidebar-nav-divider.component.d.ts +7 -7
- package/lib/sidebar/sidebar-nav/sidebar-nav-group.service.d.ts +14 -14
- package/lib/sidebar/sidebar-nav/sidebar-nav-icon.pipe.d.ts +7 -7
- package/lib/sidebar/sidebar-nav/sidebar-nav-item-class.pipe.d.ts +10 -10
- package/lib/sidebar/sidebar-nav/sidebar-nav-label.component.d.ts +18 -18
- package/lib/sidebar/sidebar-nav/sidebar-nav-link.component.d.ts +34 -34
- package/lib/sidebar/sidebar-nav/sidebar-nav-link.pipe.d.ts +7 -7
- package/lib/sidebar/sidebar-nav/sidebar-nav-title.component.d.ts +15 -15
- package/lib/sidebar/sidebar-nav/sidebar-nav.component.d.ts +59 -59
- package/lib/sidebar/sidebar-nav/sidebar-nav.d.ts +53 -53
- package/lib/sidebar/sidebar-nav/sidebar-nav.service.d.ts +20 -20
- package/lib/sidebar/sidebar-toggle/sidebar-toggle.directive.d.ts +25 -25
- package/lib/sidebar/sidebar-toggler/sidebar-toggler.component.d.ts +7 -7
- package/lib/sidebar/sidebar.module.d.ts +25 -25
- package/lib/sidebar/sidebar.service.d.ts +19 -19
- package/lib/smart-pagination/index.d.ts +1 -1
- package/lib/smart-pagination/public_api.d.ts +2 -2
- package/lib/smart-pagination/smart-pagination.component.d.ts +109 -109
- package/lib/smart-pagination/smart-pagination.module.d.ts +9 -9
- package/lib/smart-pagination/smart-pagination.type.d.ts +79 -79
- package/lib/smart-table/index.d.ts +1 -1
- package/lib/smart-table/public_api.d.ts +4 -3
- package/lib/smart-table/smart-table/smart-table.component.d.ts +145 -144
- package/lib/smart-table/smart-table-column-filter/smart-table-column-filter.component.d.ts +11 -11
- package/lib/smart-table/smart-table-filter/filter-input.directive.d.ts +24 -24
- package/lib/smart-table/smart-table-filter/smart-table-filter.component.d.ts +16 -16
- package/lib/smart-table/smart-table-head/smart-table-head.component.d.ts +45 -45
- package/lib/smart-table/smart-table-items-per-page-selector/smart-table-items-per-page-selector.component.d.ts +14 -14
- package/lib/smart-table/smart-table.module.d.ts +22 -22
- package/lib/smart-table/smart-table.type.d.ts +275 -275
- package/lib/spinner/index.d.ts +1 -1
- package/lib/spinner/public_api.d.ts +2 -2
- package/lib/spinner/spinner.component.d.ts +31 -31
- package/lib/spinner/spinner.module.d.ts +9 -9
- package/lib/table/index.d.ts +1 -1
- package/lib/table/public_api.d.ts +4 -4
- package/lib/table/table-active.directive.d.ts +16 -16
- package/lib/table/table-color.directive.d.ts +12 -12
- package/lib/table/table.directive.d.ts +90 -90
- package/lib/table/table.module.d.ts +10 -10
- package/lib/table/table.type.d.ts +76 -76
- package/lib/tabs/index.d.ts +1 -1
- package/lib/tabs/public_api.d.ts +5 -5
- package/lib/tabs/tab-content/tab-content.component.d.ts +33 -33
- package/lib/tabs/tab-content-ref.directive.d.ts +50 -50
- package/lib/tabs/tab-pane/tab-pane.component.d.ts +26 -26
- package/lib/tabs/tab.service.d.ts +14 -14
- package/lib/tabs/tabs.module.d.ts +10 -10
- package/lib/time-picker/index.d.ts +1 -1
- package/lib/time-picker/public_api.d.ts +2 -2
- package/lib/time-picker/time-picker-roll-col/time-picker-roll-am-pm.component.d.ts +39 -39
- package/lib/time-picker/time-picker-roll-col/time-picker-roll-col.component.d.ts +38 -38
- package/lib/time-picker/time-picker.component.d.ts +196 -196
- package/lib/time-picker/time-picker.module.d.ts +14 -14
- package/lib/time-picker/time.utils.d.ts +57 -57
- package/lib/toast/index.d.ts +1 -1
- package/lib/toast/public_api.d.ts +8 -8
- package/lib/toast/toast/toast.component.d.ts +84 -84
- package/lib/toast/toast-body/toast-body.component.d.ts +9 -9
- package/lib/toast/toast-close.directive.d.ts +10 -10
- package/lib/toast/toast-header/toast-header.component.d.ts +14 -14
- package/lib/toast/toast.module.d.ts +14 -14
- package/lib/toast/toaster/toaster-host.directive.d.ts +8 -8
- package/lib/toast/toaster/toaster.component.d.ts +55 -55
- package/lib/toast/toaster/toaster.service.d.ts +16 -16
- package/lib/tooltip/index.d.ts +1 -1
- package/lib/tooltip/public_api.d.ts +3 -3
- package/lib/tooltip/tooltip/tooltip.component.d.ts +30 -30
- package/lib/tooltip/tooltip.directive.d.ts +58 -58
- package/lib/tooltip/tooltip.module.d.ts +9 -9
- package/lib/utilities/align.directive.d.ts +12 -12
- package/lib/utilities/bg-color.directive.d.ts +17 -17
- package/lib/utilities/border.directive.d.ts +12 -12
- package/lib/utilities/border.type.d.ts +15 -15
- package/lib/utilities/index.d.ts +1 -1
- package/lib/utilities/public_api.d.ts +6 -6
- package/lib/utilities/rounded.directive.d.ts +12 -12
- package/lib/utilities/rounded.type.d.ts +12 -12
- package/lib/utilities/text-color.directive.d.ts +13 -13
- package/lib/utilities/utilities.module.d.ts +12 -12
- package/lib/widget/index.d.ts +1 -1
- package/lib/widget/public_api.d.ts +7 -7
- package/lib/widget/widget-stat-a/widget-stat-a.component.d.ts +37 -37
- package/lib/widget/widget-stat-b/widget-stat-b.component.d.ts +47 -47
- package/lib/widget/widget-stat-c/widget-stat-c.component.d.ts +58 -58
- package/lib/widget/widget-stat-d/widget-stat-d.component.d.ts +31 -31
- package/lib/widget/widget-stat-e/widget-stat-e.component.d.ts +24 -24
- package/lib/widget/widget-stat-f/widget-stat-f.component.d.ts +77 -77
- package/lib/widget/widget.module.d.ts +15 -15
- package/package.json +1 -1
- package/public-api.d.ts +46 -46
|
@@ -1,366 +1,374 @@
|
|
|
1
|
-
import { Component, ContentChild, Directive, ElementRef, EventEmitter, forwardRef, HostBinding, HostListener, Inject, Input, Optional, Output } from '@angular/core';
|
|
2
|
-
import { DOCUMENT } from '@angular/common';
|
|
3
|
-
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import { DropdownMenuDirective } from '../dropdown-menu/dropdown-menu.directive';
|
|
7
|
-
import
|
|
8
|
-
import * as
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
this.
|
|
16
|
-
this.
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
*
|
|
20
|
-
* @
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
*
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
this.
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
*
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
'dropdown-toggle
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
this.
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
DropdownToggleDirective.ɵ
|
|
60
|
-
i0.ɵɵ
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
this.
|
|
88
|
-
this.
|
|
89
|
-
this.
|
|
90
|
-
this.
|
|
91
|
-
this.
|
|
92
|
-
this.
|
|
93
|
-
this.
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
*
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
this.
|
|
100
|
-
this.
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
this.
|
|
110
|
-
this.
|
|
111
|
-
this.
|
|
112
|
-
this.
|
|
113
|
-
this.
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
*
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
*
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
*
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
_value
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
}
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
}
|
|
242
|
-
|
|
243
|
-
this.
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
}
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
return;
|
|
290
|
-
}
|
|
291
|
-
if (this.
|
|
292
|
-
this.setVisibleState(false);
|
|
293
|
-
return;
|
|
294
|
-
}
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
this.listeners.
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
}
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
type: Input
|
|
337
|
-
}],
|
|
338
|
-
type: Input
|
|
339
|
-
}],
|
|
340
|
-
type: Input
|
|
341
|
-
}],
|
|
342
|
-
type: Input
|
|
343
|
-
}],
|
|
344
|
-
type: Input
|
|
345
|
-
}],
|
|
346
|
-
type:
|
|
347
|
-
}],
|
|
348
|
-
type:
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
}],
|
|
354
|
-
type:
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi9kcm9wZG93bi9kcm9wZG93bi9kcm9wZG93bi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUlMLFNBQVMsRUFDVCxZQUFZLEVBQ1osU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osVUFBVSxFQUNWLFdBQVcsRUFDWCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFJTCxRQUFRLEVBQ1IsTUFBTSxFQUVQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQWdCLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFHNUUsT0FBTyxFQUFFLFlBQVksRUFBZ0MsTUFBTSxnQkFBZ0IsQ0FBQztBQUU1RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMENBQTBDLENBQUM7OztBQUVqRiw4QkFBOEI7QUFDOUIsTUFBTSxPQUFnQixhQUFhO0NBQUc7QUFPdEMsTUFBTSxPQUFPLHVCQUF1QjtJQUtsQyxZQUNTLFVBQXNCLEVBQ3JCLGVBQWdDLEVBQ3JCLFFBQXdCO1FBRnBDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDckIsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ3JCLGFBQVEsR0FBUixRQUFRLENBQWdCO1FBVTdDOzs7O1dBSUc7UUFDTSxhQUFRLEdBQWEsS0FBSyxDQUFDO1FBRXBDOzs7V0FHRztRQUNNLFVBQUssR0FBRyxJQUFJLENBQUM7UUFlZCxXQUFNLEdBQUcsS0FBSyxDQUFDO0lBbkNwQixDQUFDO0lBc0JKOzs7T0FHRztJQUNILElBQ0ksS0FBSyxDQUFDLEtBQWM7UUFD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c0JBQXRCLE1BQU07Z0JBR2dDLFFBQVE7c0JBQTlDLFlBQVk7dUJBQUMsdUJBQXVCO2dCQUNBLEtBQUs7c0JBQXpDLFlBQVk7dUJBQUMscUJBQXFCO2dCQUN3QixlQUFlO3NCQUF6RSxZQUFZO3VCQUFDLHFCQUFxQixFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtnQkFTckQsV0FBVztzQkFEZCxXQUFXO3VCQUFDLE9BQU87Z0JBZWhCLFNBQVM7c0JBRFosV0FBVzt1QkFBQyxPQUFPO2dCQVFaLFdBQVc7c0JBRGxCLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBBZnRlckNvbnRlbnRJbml0LFxyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIENvbnRlbnRDaGlsZCxcclxuICBEaXJlY3RpdmUsXHJcbiAgRWxlbWVudFJlZixcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgZm9yd2FyZFJlZixcclxuICBIb3N0QmluZGluZyxcclxuICBIb3N0TGlzdGVuZXIsXHJcbiAgSW5qZWN0LFxyXG4gIElucHV0LFxyXG4gIE5nWm9uZSxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT25Jbml0LFxyXG4gIE9wdGlvbmFsLFxyXG4gIE91dHB1dCxcclxuICBSZW5kZXJlcjJcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBCb29sZWFuSW5wdXQsIGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgY3JlYXRlUG9wcGVyLCBJbnN0YW5jZSwgT3B0aW9ucywgUGxhY2VtZW50IH0gZnJvbSAnQHBvcHBlcmpzL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgRHJvcGRvd25TZXJ2aWNlIH0gZnJvbSAnLi4vZHJvcGRvd24uc2VydmljZSc7XHJcbmltcG9ydCB7IERyb3Bkb3duTWVudURpcmVjdGl2ZSB9IGZyb20gJy4uL2Ryb3Bkb3duLW1lbnUvZHJvcGRvd24tbWVudS5kaXJlY3RpdmUnO1xyXG5cclxuLy8gbGlnaHR3ZWlnaHQgaW5qZWN0aW9uIHRva2VuXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBEcm9wZG93blRva2VuIHt9XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1tjRHJvcGRvd25Ub2dnbGVdJyxcclxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IERyb3Bkb3duVG9rZW4sIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IERyb3Bkb3duQ29tcG9uZW50KSB9XSxcclxuICBleHBvcnRBczogJ2NEcm9wZG93blRvZ2dsZSdcclxufSlcclxuZXhwb3J0IGNsYXNzIERyb3Bkb3duVG9nZ2xlRGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XHJcblxyXG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9zcGxpdDogQm9vbGVhbklucHV0O1xyXG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9wb3BwZXI6IEJvb2xlYW5JbnB1dDtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZixcclxuICAgIHByaXZhdGUgZHJvcGRvd25TZXJ2aWNlOiBEcm9wZG93blNlcnZpY2UsXHJcbiAgICBAT3B0aW9uYWwoKSBwdWJsaWMgZHJvcGRvd24/OiBEcm9wZG93blRva2VuXHJcbiAgKSB7fVxyXG5cclxuICAvKipcclxuICAgKiBUb2dnbGUgdGhlIGRpc2FibGVkIHN0YXRlIGZvciB0aGUgdG9nZ2xlci5cclxuICAgKiBAdHlwZSBEcm9wZG93bkNvbXBvbmVudCB8IHVuZGVmaW5lZFxyXG4gICAqIEBkZWZhdWx0IHVuZGVmaW5lZFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGRyb3Bkb3duQ29tcG9uZW50PzogRHJvcGRvd25Db21wb25lbnQ7XHJcblxyXG4gIC8qKlxyXG4gICAqIERpc2FibGVzIHRoZSB0b2dnbGVyLlxyXG4gICAqIEB0eXBlIGJvb2xlYW5cclxuICAgKiBAZGVmYXVsdCBmYWxzZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGRpc2FibGVkPzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvKipcclxuICAgKiBFbmFibGVzIHBzZXVkbyBlbGVtZW50IGNhcmV0IG9uIHRvZ2dsZXIuXHJcbiAgICogQHR5cGUgYm9vbGVhblxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGNhcmV0ID0gdHJ1ZTtcclxuXHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlIHNwbGl0IGJ1dHRvbiBkcm9wZG93bnMgd2l0aCB2aXJ0dWFsbHkgdGhlIHNhbWUgbWFya3VwIGFzIHNpbmdsZSBidXR0b24gZHJvcGRvd25zLCBidXQgd2l0aCB0aGUgYWRkaXRpb24gb2YgYC5kcm9wZG93bi10b2dnbGUtc3BsaXRgIGNsYXNzIGZvciBwcm9wZXIgc3BhY2luZyBhcm91bmQgdGhlIGRyb3Bkb3duIGNhcmV0LlxyXG4gICAqIEB0eXBlIGJvb2xlYW5cclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHNldCBzcGxpdCh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fc3BsaXQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHNwbGl0KCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NwbGl0O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfc3BsaXQgPSBmYWxzZTtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXHJcbiAgZ2V0IGhvc3RDbGFzc2VzKCk6IGFueSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAnZHJvcGRvd24tdG9nZ2xlJzogdGhpcy5jYXJldCxcclxuICAgICAgJ2Ryb3Bkb3duLXRvZ2dsZS1zcGxpdCc6IHRoaXMuc3BsaXQsXHJcbiAgICAgIGRpc2FibGVkOiB0aGlzLmRpc2FibGVkXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCddKVxyXG4gIHB1YmxpYyBvbkNsaWNrKCRldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xyXG4gICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAhdGhpcy5kaXNhYmxlZCAmJiB0aGlzLmRyb3Bkb3duU2VydmljZS50b2dnbGUoeyB2aXNpYmxlOiAndG9nZ2xlJywgZHJvcGRvd246IHRoaXMuZHJvcGRvd24gfSk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5kcm9wZG93bkNvbXBvbmVudCkge1xyXG4gICAgICB0aGlzLmRyb3Bkb3duID0gdGhpcy5kcm9wZG93bkNvbXBvbmVudDtcclxuICAgICAgdGhpcy5kcm9wZG93blNlcnZpY2UgPSB0aGlzLmRyb3Bkb3duQ29tcG9uZW50Py5kcm9wZG93blNlcnZpY2U7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2MtZHJvcGRvd24nLFxyXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZHJvcGRvd24uY29tcG9uZW50LnNjc3MnXSxcclxuICBleHBvcnRBczogJ2NEcm9wZG93bicsXHJcbiAgcHJvdmlkZXJzOiBbRHJvcGRvd25TZXJ2aWNlXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRHJvcGRvd25Db21wb25lbnQgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBPbkRlc3Ryb3ksIE9uSW5pdCB7XHJcblxyXG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9kYXJrOiBCb29sZWFuSW5wdXQ7XHJcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX3Zpc2libGU6IEJvb2xlYW5JbnB1dDtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50OiBEb2N1bWVudCxcclxuICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZixcclxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmUsXHJcbiAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHB1YmxpYyBkcm9wZG93blNlcnZpY2U6IERyb3Bkb3duU2VydmljZVxyXG4gICkge31cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0IGFsaWdubWVudCBvZiBkcm9wZG93biBtZW51LlxyXG4gICAqIEB0eXBlIHsnc3RhcnQnIHwgJ2VuZCcgfCB7IHhzOiAnc3RhcnQnIHwgJ2VuZCcgfSB8IHsgc206ICdzdGFydCcgfCAnZW5kJyB9IHwgeyBtZDogJ3N0YXJ0JyB8ICdlbmQnIH0gfCB7IGxnOiAnc3RhcnQnIHwgJ2VuZCcgfSB8IHsgeGw6ICdzdGFydCcgfCAnZW5kJ30gfCB7IHh4bDogJ3N0YXJ0JyB8ICdlbmQnfX1cclxuICAgKi9cclxuICBASW5wdXQoKSBhbGlnbm1lbnQ/OiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpIGF1dG9DbG9zZTogYm9vbGVhbiB8ICdpbnNpZGUnIHwgJ291dHNpZGUnID0gdHJ1ZTtcclxuXHJcbiAgLyoqXHJcbiAgICogU2V0cyBhIGRhcmtlciBjb2xvciBzY2hlbWUgdG8gbWF0Y2ggYSBkYXJrIG5hdmJhci5cclxuICAgKiBAdHlwZSBib29sZWFuXHJcbiAgICogQGRlZmF1bHQgZmFsc2VcclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHNldCBkYXJrKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9kYXJrID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcclxuICB9O1xyXG5cclxuICBnZXQgZGFyaygpIHtcclxuICAgIHJldHVybiB0aGlzLl9kYXJrO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfZGFyayA9IGZhbHNlO1xyXG5cclxuICAvKipcclxuICAgKiBTZXRzIGEgc3BlY2lmaWVkICBkaXJlY3Rpb24gYW5kIGxvY2F0aW9uIG9mIHRoZSBkcm9wZG93biBtZW51LlxyXG4gICAqIEB0eXBlICdkcm9wdXAnIHwgJ2Ryb3BlbmQnIHwgJ2Ryb3BzdGFydCdcclxuICAgKi9cclxuICBASW5wdXQoKSBkaXJlY3Rpb24/OiAnY2VudGVyJyB8ICdkcm9wdXAnIHwgJ2Ryb3B1cC1jZW50ZXInIHwgJ2Ryb3BlbmQnIHwgJ2Ryb3BzdGFydCc7XHJcblxyXG4gIC8qKlxyXG4gICAqIERlc2NyaWJlcyB0aGUgcGxhY2VtZW50IG9mIHlvdXIgY29tcG9uZW50IGFmdGVyIFBvcHBlci5qcyBoYXMgYXBwbGllZCBhbGwgdGhlIG1vZGlmaWVycyB0aGF0IG1heSBoYXZlIGZsaXBwZWQgb3IgYWx0ZXJlZCB0aGUgb3JpZ2luYWxseSBwcm92aWRlZCBwbGFjZW1lbnQgcHJvcGVydHkuXHJcbiAgICogQHR5cGUgUGxhY2VtZW50XHJcbiAgICovXHJcbiAgQElucHV0KCkgcGxhY2VtZW50OiBQbGFjZW1lbnQgPSAnYm90dG9tLXN0YXJ0JztcclxuXHJcbiAgLyoqXHJcbiAgICogSWYgeW91IHdhbnQgdG8gZGlzYWJsZSBkeW5hbWljIHBvc2l0aW9uaW5nIHNldCB0aGlzIHByb3BlcnR5IHRvIGBmYWxzZWAuXHJcbiAgICogQHR5cGUgYm9vbGVhblxyXG4gICAqIEBkZWZhdWx0IHRydWVcclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHNldCBwb3BwZXIodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX3BvcHBlciA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBnZXQgcG9wcGVyKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3BvcHBlcjtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3BvcHBlciA9IHRydWU7XHJcblxyXG4gIC8qKlxyXG4gICAqIE9wdGlvbmFsIHBvcHBlciBPcHRpb25zIG9iamVjdCwgcGxhY2VtZW50IHByb3AgdGFrZXMgcHJlY2VkZW5jZSBvdmVyXHJcbiAgICogQHR5cGUgUGFydGlhbDxPcHRpb25zPlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IHBvcHBlck9wdGlvbnModmFsdWU6IFBhcnRpYWw8T3B0aW9ucz4pIHtcclxuICAgIHRoaXMuX3BvcHBlck9wdGlvbnMgPSB7IC4uLnRoaXMuX3BvcHBlck9wdGlvbnMsIC4uLnZhbHVlIH07XHJcbiAgfTtcclxuXHJcbiAgZ2V0IHBvcHBlck9wdGlvbnMoKTogUGFydGlhbDxPcHRpb25zPiB7XHJcbiAgICBsZXQgcGxhY2VtZW50ID0gdGhpcy5wbGFjZW1lbnQ7XHJcbiAgICBzd2l0Y2ggKHRoaXMuZGlyZWN0aW9uKSB7XHJcbiAgICAgIGNhc2UgJ2Ryb3B1cCc6IHtcclxuICAgICAgICBwbGFjZW1lbnQgPSAndG9wLXN0YXJ0JztcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBjYXNlICdkcm9wZW5kJzoge1xyXG4gICAgICAgIHBsYWNlbWVudCA9ICdyaWdodC1zdGFydCc7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgY2FzZSAnZHJvcHN0YXJ0Jzoge1xyXG4gICAgICAgIHBsYWNlbWVudCA9ICdsZWZ0LXN0YXJ0JztcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBjYXNlICdjZW50ZXInOiB7XHJcbiAgICAgICAgcGxhY2VtZW50ID0gJ2JvdHRvbSc7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgY2FzZSAnZHJvcHVwLWNlbnRlcic6IHtcclxuICAgICAgICBwbGFjZW1lbnQgPSAndG9wJztcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuYWxpZ25tZW50ID09PSAnZW5kJykge1xyXG4gICAgICBwbGFjZW1lbnQgPSAnYm90dG9tLWVuZCc7XHJcbiAgICB9XHJcbiAgICB0aGlzLl9wb3BwZXJPcHRpb25zID0geyAuLi50aGlzLl9wb3BwZXJPcHRpb25zLCBwbGFjZW1lbnQ6IHBsYWNlbWVudCB9O1xyXG4gICAgcmV0dXJuIHRoaXMuX3BvcHBlck9wdGlvbnM7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9wb3BwZXJPcHRpb25zOiBQYXJ0aWFsPE9wdGlvbnM+ID0ge1xyXG4gICAgcGxhY2VtZW50OiB0aGlzLnBsYWNlbWVudCxcclxuICAgIG1vZGlmaWVyczogW10sXHJcbiAgICBzdHJhdGVneTogJ2Fic29sdXRlJ1xyXG4gIH07XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldCB0aGUgZHJvcGRvd24gdmFyaWFudCB0byBhIGJ0bi1ncm91cCwgZHJvcGRvd24sIGlucHV0LWdyb3VwLCBhbmQgbmF2LWl0ZW0uXHJcbiAgICovXHJcbiAgQElucHV0KCkgdmFyaWFudD86ICdidG4tZ3JvdXAnIHwgJ2Ryb3Bkb3duJyB8ICdpbnB1dC1ncm91cCcgfCAnbmF2LWl0ZW0nID0gJ2Ryb3Bkb3duJztcclxuXHJcbiAgLyoqXHJcbiAgICogVG9nZ2xlIHRoZSB2aXNpYmlsaXR5IG9mIGRyb3Bkb3duIG1lbnUgY29tcG9uZW50LlxyXG4gICAqIEB0eXBlIGJvb2xlYW5cclxuICAgKiBAZGVmYXVsdCBmYWxzZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IHZpc2libGUodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIGNvbnN0IF92YWx1ZSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XHJcbiAgICB0aGlzLmFjdGl2ZVRyYXAgPSBfdmFsdWU7XHJcbiAgICB0aGlzLl92aXNpYmxlID0gX3ZhbHVlO1xyXG4gICAgX3ZhbHVlID8gdGhpcy5jcmVhdGVQb3BwZXJJbnN0YW5jZSgpIDogdGhpcy5kZXN0cm95UG9wcGVySW5zdGFuY2UoKTtcclxuICAgIHRoaXMudmlzaWJsZUNoYW5nZS5lbWl0KF92YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBnZXQgdmlzaWJsZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl92aXNpYmxlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfdmlzaWJsZSA9IGZhbHNlO1xyXG5cclxuICBAT3V0cHV0KCkgdmlzaWJsZUNoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG5cclxuICBkcm9wZG93bkNvbnRleHQgPSB7ICRpbXBsaWNpdDogdGhpcy52aXNpYmxlIH07XHJcbiAgQENvbnRlbnRDaGlsZChEcm9wZG93blRvZ2dsZURpcmVjdGl2ZSkgX3RvZ2dsZXIhOiBEcm9wZG93blRvZ2dsZURpcmVjdGl2ZTtcclxuICBAQ29udGVudENoaWxkKERyb3Bkb3duTWVudURpcmVjdGl2ZSkgX21lbnUhOiBEcm9wZG93bk1lbnVEaXJlY3RpdmU7XHJcbiAgQENvbnRlbnRDaGlsZChEcm9wZG93bk1lbnVEaXJlY3RpdmUsIHsgcmVhZDogRWxlbWVudFJlZiB9KSBfbWVudUVsZW1lbnRSZWYhOiBFbGVtZW50UmVmO1xyXG5cclxuICBwdWJsaWMgYWN0aXZlVHJhcCA9IGZhbHNlO1xyXG5cclxuICBwcml2YXRlIGRyb3Bkb3duU3RhdGVTdWJzY3JpcHRpb24hOiBTdWJzY3JpcHRpb247XHJcbiAgcHJpdmF0ZSBwb3BwZXJJbnN0YW5jZSE6IEluc3RhbmNlIHwgdW5kZWZpbmVkO1xyXG4gIHByaXZhdGUgbGlzdGVuZXJzOiAoKCkgPT4gdm9pZClbXSA9IFtdO1xyXG5cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcclxuICBnZXQgaG9zdENsYXNzZXMoKTogYW55IHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGRyb3Bkb3duOlxyXG4gICAgICAgICh0aGlzLnZhcmlhbnQgPT09ICdkcm9wZG93bicgfHwgdGhpcy52YXJpYW50ID09PSAnbmF2LWl0ZW0nKSAmJlxyXG4gICAgICAgICF0aGlzLmRpcmVjdGlvbixcclxuICAgICAgW2Ake3RoaXMuZGlyZWN0aW9ufWBdOiAhIXRoaXMuZGlyZWN0aW9uLFxyXG4gICAgICBbYCR7dGhpcy52YXJpYW50fWBdOiAhIXRoaXMudmFyaWFudCxcclxuICAgICAgJ2Ryb3B1cCc6IHRoaXMuZGlyZWN0aW9uID09PSAnZHJvcHVwJyB8fCB0aGlzLmRpcmVjdGlvbiA9PT0gJ2Ryb3B1cC1jZW50ZXInLFxyXG4gICAgICBzaG93OiB0aGlzLnZpc2libGVcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICAvLyB0b2RvOiBmaW5kIGJldHRlciBzb2x1dGlvblxyXG4gIEBIb3N0QmluZGluZygnc3R5bGUnKVxyXG4gIGdldCBob3N0U3R5bGUoKTogYW55IHtcclxuICAgIHJldHVybiB0aGlzLnZhcmlhbnQgPT09ICdpbnB1dC1ncm91cCcgPyB7IGRpc3BsYXk6ICdjb250ZW50cycgfSA6IHt9O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjbGlja2VkVGFyZ2V0ITogSFRNTEVsZW1lbnQ7XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSlcclxuICBwcml2YXRlIG9uSG9zdENsaWNrKCRldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xyXG4gICAgdGhpcy5jbGlja2VkVGFyZ2V0ID0gJGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcclxuICB9XHJcblxyXG4gIGRyb3Bkb3duU3RhdGVTdWJzY3JpYmUoc3Vic2NyaWJlOiBib29sZWFuID0gdHJ1ZSk6IHZvaWQge1xyXG4gICAgaWYgKHN1YnNjcmliZSkge1xyXG4gICAgICB0aGlzLmRyb3Bkb3duU3RhdGVTdWJzY3JpcHRpb24gPVxyXG4gICAgICAgIHRoaXMuZHJvcGRvd25TZXJ2aWNlLmRyb3Bkb3duU3RhdGUkLnN1YnNjcmliZSgoc3RhdGUpID0+IHtcclxuICAgICAgICAgIGlmICh0aGlzID09PSBzdGF0ZS5kcm9wZG93bikge1xyXG4gICAgICAgICAgICBpZiAoJ3Zpc2libGUnIGluIHN0YXRlKSB7XHJcbiAgICAgICAgICAgICAgc3RhdGU/LnZpc2libGUgPT09ICd0b2dnbGUnXHJcbiAgICAgICAgICAgICAgICA/IHRoaXMudG9nZ2xlRHJvcGRvd24oKVxyXG4gICAgICAgICAgICAgICAgOiAodGhpcy52aXNpYmxlID0gc3RhdGUudmlzaWJsZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZHJvcGRvd25TdGF0ZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdG9nZ2xlRHJvcGRvd24oKTogdm9pZCB7XHJcbiAgICB0aGlzLnZpc2libGUgPSAhdGhpcy52aXNpYmxlO1xyXG4gIH1cclxuXHJcbiAgb25DbGljayhldmVudDogYW55KTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuX3RvZ2dsZXI/LmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQ/LmNsb3Nlc3QoJ1tjRHJvcGRvd25Ub2dnbGVdJykpKSB7XHJcbiAgICAgIHRoaXMudG9nZ2xlRHJvcGRvd24oKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnZhcmlhbnQgPT09ICduYXYtaXRlbScpIHtcclxuICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLl90b2dnbGVyLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ25hdi1saW5rJyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZHJvcGRvd25TdGF0ZVN1YnNjcmliZSgpO1xyXG4gICAgdGhpcy5zZXRWaXNpYmxlU3RhdGUodGhpcy52aXNpYmxlKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5jbGVhckxpc3RlbmVycygpO1xyXG4gICAgdGhpcy5kcm9wZG93blN0YXRlU3Vic2NyaWJlKGZhbHNlKTtcclxuICAgIHRoaXMuZGVzdHJveVBvcHBlckluc3RhbmNlKCk7XHJcbiAgfVxyXG5cclxuICBzZXRWaXNpYmxlU3RhdGUodmFsdWU6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuZHJvcGRvd25TZXJ2aWNlLnRvZ2dsZSh7IHZpc2libGU6IHZhbHVlLCBkcm9wZG93bjogdGhpcyB9KTtcclxuICB9XHJcblxyXG4gIC8vIHRvZG86IHR1cm4gb2ZmIHBvcHBlciBpbiBuYXZiYXItbmF2XHJcbiAgY3JlYXRlUG9wcGVySW5zdGFuY2UoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5fdG9nZ2xlciAmJiB0aGlzLl9tZW51KSB7XHJcbiAgICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcclxuICAgICAgICAvLyB3b3JrYXJvdW5kIGZvciBwb3BwZXIgcG9zaXRpb24gY2FsY3VsYXRlIChzZWUgYWxzbzogZHJvcGRvd24tbWVudS5jb21wb25lbnQpXHJcbiAgICAgICAgdGhpcy5fbWVudS5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUudmlzaWJpbGl0eSA9ICdoaWRkZW4nO1xyXG4gICAgICAgIHRoaXMuX21lbnUuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snO1xyXG4gICAgICAgIGlmICh0aGlzLnBvcHBlcikge1xyXG4gICAgICAgICAgdGhpcy5wb3BwZXJJbnN0YW5jZSA9IGNyZWF0ZVBvcHBlcihcclxuICAgICAgICAgICAgdGhpcy5fdG9nZ2xlci5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXHJcbiAgICAgICAgICAgIHRoaXMuX21lbnUuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxyXG4gICAgICAgICAgICB7IC4uLnRoaXMucG9wcGVyT3B0aW9ucyB9XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5zZXRMaXN0ZW5lcnMoKTtcclxuICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBkZXN0cm95UG9wcGVySW5zdGFuY2UoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNsZWFyTGlzdGVuZXJzKCk7XHJcbiAgICB0aGlzLnBvcHBlckluc3RhbmNlPy5kZXN0cm95KCk7XHJcbiAgICB0aGlzLnBvcHBlckluc3RhbmNlID0gdW5kZWZpbmVkO1xyXG4gICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0TGlzdGVuZXJzKCk6IHZvaWQge1xyXG4gICAgdGhpcy5saXN0ZW5lcnMucHVzaChcclxuICAgICAgdGhpcy5yZW5kZXJlci5saXN0ZW4odGhpcy5kb2N1bWVudCwgJ2NsaWNrJywgKGV2ZW50KSA9PiB7XHJcbiAgICAgICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xyXG4gICAgICAgIGlmICh0aGlzLl9tZW51RWxlbWVudFJlZj8ubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQpKSB7XHJcbiAgICAgICAgICB0aGlzLmNsaWNrZWRUYXJnZXQgPSB0YXJnZXQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLl90b2dnbGVyPy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KSkge1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5hdXRvQ2xvc2UgPT09IHRydWUpIHtcclxuICAgICAgICAgIHRoaXMuc2V0VmlzaWJsZVN0YXRlKGZhbHNlKTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMuY2xpY2tlZFRhcmdldCA9PT0gdGFyZ2V0ICYmIHRoaXMuYXV0b0Nsb3NlID09PSAnaW5zaWRlJykge1xyXG4gICAgICAgICAgdGhpcy5zZXRWaXNpYmxlU3RhdGUoZmFsc2UpO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5jbGlja2VkVGFyZ2V0ICE9PSB0YXJnZXQgJiYgdGhpcy5hdXRvQ2xvc2UgPT09ICdvdXRzaWRlJykge1xyXG4gICAgICAgICAgdGhpcy5zZXRWaXNpYmxlU3RhdGUoZmFsc2UpO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgICB0aGlzLmxpc3RlbmVycy5wdXNoKFxyXG4gICAgICB0aGlzLnJlbmRlcmVyLmxpc3Rlbih0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2tleXVwJywgKGV2ZW50KSA9PiB7XHJcbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VzY2FwZScgJiYgdGhpcy5hdXRvQ2xvc2UgIT09IGZhbHNlKSB7XHJcbiAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgICAgIHRoaXMuc2V0VmlzaWJsZVN0YXRlKGZhbHNlKTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gICAgdGhpcy5saXN0ZW5lcnMucHVzaChcclxuICAgICAgdGhpcy5yZW5kZXJlci5saXN0ZW4odGhpcy5kb2N1bWVudCwgJ2tleXVwJywgKGV2ZW50KSA9PiB7XHJcbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ1RhYicgJiYgdGhpcy5hdXRvQ2xvc2UgIT09IGZhbHNlICYmICF0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQpKSB7XHJcbiAgICAgICAgICB0aGlzLnNldFZpc2libGVTdGF0ZShmYWxzZSk7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2xlYXJMaXN0ZW5lcnMoKTogdm9pZCB7XHJcbiAgICB0aGlzLmxpc3RlbmVycy5mb3JFYWNoKCh1bkxpc3RlbikgPT4ge1xyXG4gICAgICB1bkxpc3RlbigpO1xyXG4gICAgfSk7XHJcbiAgICAvLyBAdHMtaWdub3JlXHJcbiAgICB0aGlzLmxpc3RlbmVycy5maWxsKHVuZGVmaW5lZCk7XHJcbiAgICB0aGlzLmxpc3RlbmVycyA9IFtdO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
1
|
+
import { Component, ContentChild, Directive, ElementRef, EventEmitter, forwardRef, HostBinding, HostListener, Inject, Input, Optional, Output } from '@angular/core';
|
|
2
|
+
import { DOCUMENT } from '@angular/common';
|
|
3
|
+
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
4
|
+
import { filter } from 'rxjs/operators';
|
|
5
|
+
import { createPopper } from '@popperjs/core';
|
|
6
|
+
import { DropdownMenuDirective } from '../dropdown-menu/dropdown-menu.directive';
|
|
7
|
+
import { DropdownService } from '../dropdown.service';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
import * as i1 from "../dropdown.service";
|
|
10
|
+
// lightweight injection token
|
|
11
|
+
export class DropdownToken {
|
|
12
|
+
}
|
|
13
|
+
export class DropdownToggleDirective {
|
|
14
|
+
constructor(elementRef, dropdownService, dropdown) {
|
|
15
|
+
this.elementRef = elementRef;
|
|
16
|
+
this.dropdownService = dropdownService;
|
|
17
|
+
this.dropdown = dropdown;
|
|
18
|
+
/**
|
|
19
|
+
* Disables the toggler.
|
|
20
|
+
* @type boolean
|
|
21
|
+
* @default false
|
|
22
|
+
*/
|
|
23
|
+
this.disabled = false;
|
|
24
|
+
/**
|
|
25
|
+
* Enables pseudo element caret on toggler.
|
|
26
|
+
* @type boolean
|
|
27
|
+
*/
|
|
28
|
+
this.caret = true;
|
|
29
|
+
this._split = false;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Create split button dropdowns with virtually the same markup as single button dropdowns, but with the addition of `.dropdown-toggle-split` class for proper spacing around the dropdown caret.
|
|
33
|
+
* @type boolean
|
|
34
|
+
*/
|
|
35
|
+
set split(value) {
|
|
36
|
+
this._split = coerceBooleanProperty(value);
|
|
37
|
+
}
|
|
38
|
+
get split() {
|
|
39
|
+
return this._split;
|
|
40
|
+
}
|
|
41
|
+
get hostClasses() {
|
|
42
|
+
return {
|
|
43
|
+
'dropdown-toggle': this.caret,
|
|
44
|
+
'dropdown-toggle-split': this.split,
|
|
45
|
+
disabled: this.disabled
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
onClick($event) {
|
|
49
|
+
$event.preventDefault();
|
|
50
|
+
!this.disabled && this.dropdownService.toggle({ visible: 'toggle', dropdown: this.dropdown });
|
|
51
|
+
}
|
|
52
|
+
ngAfterViewInit() {
|
|
53
|
+
if (this.dropdownComponent) {
|
|
54
|
+
this.dropdown = this.dropdownComponent;
|
|
55
|
+
this.dropdownService = this.dropdownComponent?.dropdownService;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
DropdownToggleDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DropdownToggleDirective, deps: [{ token: i0.ElementRef }, { token: i1.DropdownService }, { token: DropdownToken, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
60
|
+
DropdownToggleDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.12", type: DropdownToggleDirective, selector: "[cDropdownToggle]", inputs: { dropdownComponent: "dropdownComponent", disabled: "disabled", caret: "caret", split: "split" }, host: { listeners: { "click": "onClick($event)" }, properties: { "class": "this.hostClasses" } }, providers: [{ provide: DropdownToken, useExisting: forwardRef(() => DropdownComponent) }], exportAs: ["cDropdownToggle"], ngImport: i0 });
|
|
61
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DropdownToggleDirective, decorators: [{
|
|
62
|
+
type: Directive,
|
|
63
|
+
args: [{
|
|
64
|
+
selector: '[cDropdownToggle]',
|
|
65
|
+
providers: [{ provide: DropdownToken, useExisting: forwardRef(() => DropdownComponent) }],
|
|
66
|
+
exportAs: 'cDropdownToggle'
|
|
67
|
+
}]
|
|
68
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.DropdownService }, { type: DropdownToken, decorators: [{
|
|
69
|
+
type: Optional
|
|
70
|
+
}] }]; }, propDecorators: { dropdownComponent: [{
|
|
71
|
+
type: Input
|
|
72
|
+
}], disabled: [{
|
|
73
|
+
type: Input
|
|
74
|
+
}], caret: [{
|
|
75
|
+
type: Input
|
|
76
|
+
}], split: [{
|
|
77
|
+
type: Input
|
|
78
|
+
}], hostClasses: [{
|
|
79
|
+
type: HostBinding,
|
|
80
|
+
args: ['class']
|
|
81
|
+
}], onClick: [{
|
|
82
|
+
type: HostListener,
|
|
83
|
+
args: ['click', ['$event']]
|
|
84
|
+
}] } });
|
|
85
|
+
export class DropdownComponent {
|
|
86
|
+
constructor(document, elementRef, renderer, ngZone, changeDetectorRef, dropdownService) {
|
|
87
|
+
this.document = document;
|
|
88
|
+
this.elementRef = elementRef;
|
|
89
|
+
this.renderer = renderer;
|
|
90
|
+
this.ngZone = ngZone;
|
|
91
|
+
this.changeDetectorRef = changeDetectorRef;
|
|
92
|
+
this.dropdownService = dropdownService;
|
|
93
|
+
this.autoClose = true;
|
|
94
|
+
this._dark = false;
|
|
95
|
+
/**
|
|
96
|
+
* Describes the placement of your component after Popper.js has applied all the modifiers that may have flipped or altered the originally provided placement property.
|
|
97
|
+
* @type Placement
|
|
98
|
+
*/
|
|
99
|
+
this.placement = 'bottom-start';
|
|
100
|
+
this._popper = true;
|
|
101
|
+
this._popperOptions = {
|
|
102
|
+
placement: this.placement,
|
|
103
|
+
modifiers: [],
|
|
104
|
+
strategy: 'absolute'
|
|
105
|
+
};
|
|
106
|
+
/**
|
|
107
|
+
* Set the dropdown variant to a btn-group, dropdown, input-group, and nav-item.
|
|
108
|
+
*/
|
|
109
|
+
this.variant = 'dropdown';
|
|
110
|
+
this._visible = false;
|
|
111
|
+
this.visibleChange = new EventEmitter();
|
|
112
|
+
this.dropdownContext = { $implicit: this.visible };
|
|
113
|
+
this.activeTrap = false;
|
|
114
|
+
this.listeners = [];
|
|
115
|
+
this.dropdownStateSubscribe();
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Sets a darker color scheme to match a dark navbar.
|
|
119
|
+
* @type boolean
|
|
120
|
+
* @default false
|
|
121
|
+
*/
|
|
122
|
+
set dark(value) {
|
|
123
|
+
this._dark = coerceBooleanProperty(value);
|
|
124
|
+
}
|
|
125
|
+
;
|
|
126
|
+
get dark() {
|
|
127
|
+
return this._dark;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* If you want to disable dynamic positioning set this property to `false`.
|
|
131
|
+
* @type boolean
|
|
132
|
+
* @default true
|
|
133
|
+
*/
|
|
134
|
+
set popper(value) {
|
|
135
|
+
this._popper = coerceBooleanProperty(value);
|
|
136
|
+
}
|
|
137
|
+
get popper() {
|
|
138
|
+
return this._popper;
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Optional popper Options object, placement prop takes precedence over
|
|
142
|
+
* @type Partial<Options>
|
|
143
|
+
*/
|
|
144
|
+
set popperOptions(value) {
|
|
145
|
+
this._popperOptions = { ...this._popperOptions, ...value };
|
|
146
|
+
}
|
|
147
|
+
;
|
|
148
|
+
get popperOptions() {
|
|
149
|
+
let placement = this.placement;
|
|
150
|
+
switch (this.direction) {
|
|
151
|
+
case 'dropup': {
|
|
152
|
+
placement = 'top-start';
|
|
153
|
+
break;
|
|
154
|
+
}
|
|
155
|
+
case 'dropend': {
|
|
156
|
+
placement = 'right-start';
|
|
157
|
+
break;
|
|
158
|
+
}
|
|
159
|
+
case 'dropstart': {
|
|
160
|
+
placement = 'left-start';
|
|
161
|
+
break;
|
|
162
|
+
}
|
|
163
|
+
case 'center': {
|
|
164
|
+
placement = 'bottom';
|
|
165
|
+
break;
|
|
166
|
+
}
|
|
167
|
+
case 'dropup-center': {
|
|
168
|
+
placement = 'top';
|
|
169
|
+
break;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
if (this.alignment === 'end') {
|
|
173
|
+
placement = 'bottom-end';
|
|
174
|
+
}
|
|
175
|
+
this._popperOptions = { ...this._popperOptions, placement: placement };
|
|
176
|
+
return this._popperOptions;
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Toggle the visibility of dropdown menu component.
|
|
180
|
+
* @type boolean
|
|
181
|
+
* @default false
|
|
182
|
+
*/
|
|
183
|
+
set visible(value) {
|
|
184
|
+
const _value = coerceBooleanProperty(value);
|
|
185
|
+
if (_value !== this._visible) {
|
|
186
|
+
this.activeTrap = _value;
|
|
187
|
+
this._visible = _value;
|
|
188
|
+
_value ? this.createPopperInstance() : this.destroyPopperInstance();
|
|
189
|
+
this.visibleChange.emit(_value);
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
get visible() {
|
|
193
|
+
return this._visible;
|
|
194
|
+
}
|
|
195
|
+
get hostClasses() {
|
|
196
|
+
return {
|
|
197
|
+
dropdown: (this.variant === 'dropdown' || this.variant === 'nav-item') &&
|
|
198
|
+
!this.direction,
|
|
199
|
+
[`${this.direction}`]: !!this.direction,
|
|
200
|
+
[`${this.variant}`]: !!this.variant,
|
|
201
|
+
'dropup': this.direction === 'dropup' || this.direction === 'dropup-center',
|
|
202
|
+
show: this.visible
|
|
203
|
+
};
|
|
204
|
+
}
|
|
205
|
+
// todo: find better solution
|
|
206
|
+
get hostStyle() {
|
|
207
|
+
return this.variant === 'input-group' ? { display: 'contents' } : {};
|
|
208
|
+
}
|
|
209
|
+
onHostClick($event) {
|
|
210
|
+
this.clickedTarget = $event.target;
|
|
211
|
+
}
|
|
212
|
+
dropdownStateSubscribe(subscribe = true) {
|
|
213
|
+
if (subscribe) {
|
|
214
|
+
this.dropdownStateSubscription =
|
|
215
|
+
this.dropdownService.dropdownState$.pipe(filter((state) => {
|
|
216
|
+
return this === state.dropdown;
|
|
217
|
+
})).subscribe((state) => {
|
|
218
|
+
if ('visible' in state) {
|
|
219
|
+
state?.visible === 'toggle'
|
|
220
|
+
? this.toggleDropdown()
|
|
221
|
+
: (this.visible = state.visible);
|
|
222
|
+
}
|
|
223
|
+
});
|
|
224
|
+
}
|
|
225
|
+
else {
|
|
226
|
+
this.dropdownStateSubscription.unsubscribe();
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
toggleDropdown() {
|
|
230
|
+
this.visible = !this.visible;
|
|
231
|
+
}
|
|
232
|
+
onClick(event) {
|
|
233
|
+
if (!this._toggler?.elementRef.nativeElement.contains(event.target?.closest('[cDropdownToggle]'))) {
|
|
234
|
+
this.toggleDropdown();
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
ngAfterContentInit() {
|
|
238
|
+
if (this.variant === 'nav-item') {
|
|
239
|
+
this.renderer.addClass(this._toggler.elementRef.nativeElement, 'nav-link');
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
ngOnInit() {
|
|
243
|
+
this.setVisibleState(this.visible);
|
|
244
|
+
}
|
|
245
|
+
ngOnChanges(changes) {
|
|
246
|
+
if (changes['visible'] && !changes['visible'].firstChange) {
|
|
247
|
+
this.setVisibleState(changes['visible'].currentValue);
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
ngOnDestroy() {
|
|
251
|
+
this.clearListeners();
|
|
252
|
+
this.dropdownStateSubscribe(false);
|
|
253
|
+
this.destroyPopperInstance();
|
|
254
|
+
}
|
|
255
|
+
setVisibleState(value) {
|
|
256
|
+
this.dropdownService.toggle({ visible: value, dropdown: this });
|
|
257
|
+
}
|
|
258
|
+
// todo: turn off popper in navbar-nav
|
|
259
|
+
createPopperInstance() {
|
|
260
|
+
if (this._toggler && this._menu) {
|
|
261
|
+
this.ngZone.runOutsideAngular(() => {
|
|
262
|
+
// workaround for popper position calculate (see also: dropdown-menu.component)
|
|
263
|
+
this._menu.elementRef.nativeElement.style.visibility = 'hidden';
|
|
264
|
+
this._menu.elementRef.nativeElement.style.display = 'block';
|
|
265
|
+
if (this.popper) {
|
|
266
|
+
this.popperInstance = createPopper(this._toggler.elementRef.nativeElement, this._menu.elementRef.nativeElement, { ...this.popperOptions });
|
|
267
|
+
}
|
|
268
|
+
this.ngZone.run(() => {
|
|
269
|
+
this.setListeners();
|
|
270
|
+
this.changeDetectorRef.markForCheck();
|
|
271
|
+
this.changeDetectorRef.detectChanges();
|
|
272
|
+
});
|
|
273
|
+
});
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
destroyPopperInstance() {
|
|
277
|
+
this.clearListeners();
|
|
278
|
+
this.popperInstance?.destroy();
|
|
279
|
+
this.popperInstance = undefined;
|
|
280
|
+
this.changeDetectorRef.markForCheck();
|
|
281
|
+
}
|
|
282
|
+
setListeners() {
|
|
283
|
+
this.listeners.push(this.renderer.listen(this.document, 'click', (event) => {
|
|
284
|
+
const target = event.target;
|
|
285
|
+
if (this._menuElementRef?.nativeElement.contains(event.target)) {
|
|
286
|
+
this.clickedTarget = target;
|
|
287
|
+
}
|
|
288
|
+
if (this._toggler?.elementRef.nativeElement.contains(event.target)) {
|
|
289
|
+
return;
|
|
290
|
+
}
|
|
291
|
+
if (this.autoClose === true) {
|
|
292
|
+
this.setVisibleState(false);
|
|
293
|
+
return;
|
|
294
|
+
}
|
|
295
|
+
if (this.clickedTarget === target && this.autoClose === 'inside') {
|
|
296
|
+
this.setVisibleState(false);
|
|
297
|
+
return;
|
|
298
|
+
}
|
|
299
|
+
if (this.clickedTarget !== target && this.autoClose === 'outside') {
|
|
300
|
+
this.setVisibleState(false);
|
|
301
|
+
return;
|
|
302
|
+
}
|
|
303
|
+
}));
|
|
304
|
+
this.listeners.push(this.renderer.listen(this.elementRef.nativeElement, 'keyup', (event) => {
|
|
305
|
+
if (event.key === 'Escape' && this.autoClose !== false) {
|
|
306
|
+
event.stopPropagation();
|
|
307
|
+
this.setVisibleState(false);
|
|
308
|
+
return;
|
|
309
|
+
}
|
|
310
|
+
}));
|
|
311
|
+
this.listeners.push(this.renderer.listen(this.document, 'keyup', (event) => {
|
|
312
|
+
if (event.key === 'Tab' && this.autoClose !== false && !this.elementRef.nativeElement.contains(event.target)) {
|
|
313
|
+
this.setVisibleState(false);
|
|
314
|
+
return;
|
|
315
|
+
}
|
|
316
|
+
}));
|
|
317
|
+
}
|
|
318
|
+
clearListeners() {
|
|
319
|
+
this.listeners.forEach((unListen) => {
|
|
320
|
+
unListen();
|
|
321
|
+
});
|
|
322
|
+
// @ts-ignore
|
|
323
|
+
this.listeners.fill(undefined);
|
|
324
|
+
this.listeners = [];
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
DropdownComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DropdownComponent, deps: [{ token: DOCUMENT }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i1.DropdownService }], target: i0.ɵɵFactoryTarget.Component });
|
|
328
|
+
DropdownComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: DropdownComponent, selector: "c-dropdown", inputs: { alignment: "alignment", autoClose: "autoClose", dark: "dark", direction: "direction", placement: "placement", popper: "popper", popperOptions: "popperOptions", variant: "variant", visible: "visible" }, outputs: { visibleChange: "visibleChange" }, host: { listeners: { "click": "onHostClick($event)" }, properties: { "class": "this.hostClasses", "style": "this.hostStyle" } }, providers: [DropdownService], queries: [{ propertyName: "_toggler", first: true, predicate: DropdownToggleDirective, descendants: true }, { propertyName: "_menu", first: true, predicate: DropdownMenuDirective, descendants: true }, { propertyName: "_menuElementRef", first: true, predicate: DropdownMenuDirective, descendants: true, read: ElementRef }], exportAs: ["cDropdown"], usesOnChanges: true, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: [":host-context(.dropdown,.dropup):not(.btn-group){display:block}:host-context(.dropstart,.dropend):not(.btn-group){display:inline-flex}:host-context(html:not([dir=rtl])) :host-context(.input-group) :host:first-child::ng-deep :first-child{border-top-right-radius:0;border-bottom-right-radius:0}:host-context(html:not([dir=rtl])) :host-context(.input-group) :host:first-child::ng-deep :not(:first-child):not(.dropdown-menu){margin-left:-1px;border-top-left-radius:0;border-bottom-left-radius:0}:host-context(html:not([dir=rtl])) :host-context(.input-group) :host:first-child::ng-deep :not(:first-child):not(.dropdown-menu):not(:only-of-type){border-top-right-radius:0;border-bottom-right-radius:0}:host-context(html:not([dir=rtl])) :host-context(.input-group) :host:last-child::ng-deep :first-child{border-top-left-radius:0;border-bottom-left-radius:0}:host-context(html:not([dir=rtl])) :host-context(.input-group) :host:last-child::ng-deep :first-child:not(:only-of-type){border-top-right-radius:0;border-bottom-right-radius:0}:host-context(html:not([dir=rtl])) :host-context(.input-group) :host:last-child::ng-deep :not(:first-child):not(.dropdown-menu){margin-left:-1px;border-top-left-radius:0;border-bottom-left-radius:0}:host-context([dir=rtl] .input-group) :host{direction:rtl}:host-context([dir=rtl] .input-group) :host:first-child::ng-deep :first-child{border-top-left-radius:0;border-bottom-left-radius:0}:host-context([dir=rtl] .input-group) :host:first-child::ng-deep :not(:first-child):not(.dropdown-menu){margin-right:-1px;border-top-right-radius:0;border-bottom-right-radius:0}:host-context([dir=rtl] .input-group) :host:first-child::ng-deep :not(:first-child):not(.dropdown-menu):not(:only-of-type){border-top-left-radius:0;border-bottom-left-radius:0}:host-context([dir=rtl] .input-group) :host:last-child::ng-deep :first-child{border-top-right-radius:0;border-bottom-right-radius:0}:host-context([dir=rtl] .input-group) :host:last-child::ng-deep :first-child:not(:only-of-type){border-top-left-radius:0;border-bottom-left-radius:0}:host-context([dir=rtl] .input-group) :host:last-child::ng-deep :not(:first-child):not(.dropdown-menu){margin-right:-1px;border-top-right-radius:0;border-bottom-right-radius:0}\n"] });
|
|
329
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DropdownComponent, decorators: [{
|
|
330
|
+
type: Component,
|
|
331
|
+
args: [{ selector: 'c-dropdown', template: '<ng-content></ng-content>', exportAs: 'cDropdown', providers: [DropdownService], styles: [":host-context(.dropdown,.dropup):not(.btn-group){display:block}:host-context(.dropstart,.dropend):not(.btn-group){display:inline-flex}:host-context(html:not([dir=rtl])) :host-context(.input-group) :host:first-child::ng-deep :first-child{border-top-right-radius:0;border-bottom-right-radius:0}:host-context(html:not([dir=rtl])) :host-context(.input-group) :host:first-child::ng-deep :not(:first-child):not(.dropdown-menu){margin-left:-1px;border-top-left-radius:0;border-bottom-left-radius:0}:host-context(html:not([dir=rtl])) :host-context(.input-group) :host:first-child::ng-deep :not(:first-child):not(.dropdown-menu):not(:only-of-type){border-top-right-radius:0;border-bottom-right-radius:0}:host-context(html:not([dir=rtl])) :host-context(.input-group) :host:last-child::ng-deep :first-child{border-top-left-radius:0;border-bottom-left-radius:0}:host-context(html:not([dir=rtl])) :host-context(.input-group) :host:last-child::ng-deep :first-child:not(:only-of-type){border-top-right-radius:0;border-bottom-right-radius:0}:host-context(html:not([dir=rtl])) :host-context(.input-group) :host:last-child::ng-deep :not(:first-child):not(.dropdown-menu){margin-left:-1px;border-top-left-radius:0;border-bottom-left-radius:0}:host-context([dir=rtl] .input-group) :host{direction:rtl}:host-context([dir=rtl] .input-group) :host:first-child::ng-deep :first-child{border-top-left-radius:0;border-bottom-left-radius:0}:host-context([dir=rtl] .input-group) :host:first-child::ng-deep :not(:first-child):not(.dropdown-menu){margin-right:-1px;border-top-right-radius:0;border-bottom-right-radius:0}:host-context([dir=rtl] .input-group) :host:first-child::ng-deep :not(:first-child):not(.dropdown-menu):not(:only-of-type){border-top-left-radius:0;border-bottom-left-radius:0}:host-context([dir=rtl] .input-group) :host:last-child::ng-deep :first-child{border-top-right-radius:0;border-bottom-right-radius:0}:host-context([dir=rtl] .input-group) :host:last-child::ng-deep :first-child:not(:only-of-type){border-top-left-radius:0;border-bottom-left-radius:0}:host-context([dir=rtl] .input-group) :host:last-child::ng-deep :not(:first-child):not(.dropdown-menu){margin-right:-1px;border-top-right-radius:0;border-bottom-right-radius:0}\n"] }]
|
|
332
|
+
}], ctorParameters: function () { return [{ type: Document, decorators: [{
|
|
333
|
+
type: Inject,
|
|
334
|
+
args: [DOCUMENT]
|
|
335
|
+
}] }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }, { type: i1.DropdownService }]; }, propDecorators: { alignment: [{
|
|
336
|
+
type: Input
|
|
337
|
+
}], autoClose: [{
|
|
338
|
+
type: Input
|
|
339
|
+
}], dark: [{
|
|
340
|
+
type: Input
|
|
341
|
+
}], direction: [{
|
|
342
|
+
type: Input
|
|
343
|
+
}], placement: [{
|
|
344
|
+
type: Input
|
|
345
|
+
}], popper: [{
|
|
346
|
+
type: Input
|
|
347
|
+
}], popperOptions: [{
|
|
348
|
+
type: Input
|
|
349
|
+
}], variant: [{
|
|
350
|
+
type: Input
|
|
351
|
+
}], visible: [{
|
|
352
|
+
type: Input
|
|
353
|
+
}], visibleChange: [{
|
|
354
|
+
type: Output
|
|
355
|
+
}], _toggler: [{
|
|
356
|
+
type: ContentChild,
|
|
357
|
+
args: [DropdownToggleDirective]
|
|
358
|
+
}], _menu: [{
|
|
359
|
+
type: ContentChild,
|
|
360
|
+
args: [DropdownMenuDirective]
|
|
361
|
+
}], _menuElementRef: [{
|
|
362
|
+
type: ContentChild,
|
|
363
|
+
args: [DropdownMenuDirective, { read: ElementRef }]
|
|
364
|
+
}], hostClasses: [{
|
|
365
|
+
type: HostBinding,
|
|
366
|
+
args: ['class']
|
|
367
|
+
}], hostStyle: [{
|
|
368
|
+
type: HostBinding,
|
|
369
|
+
args: ['style']
|
|
370
|
+
}], onHostClick: [{
|
|
371
|
+
type: HostListener,
|
|
372
|
+
args: ['click', ['$event']]
|
|
373
|
+
}] } });
|
|
374
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi9kcm9wZG93bi9kcm9wZG93bi9kcm9wZG93bi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUlMLFNBQVMsRUFDVCxZQUFZLEVBQ1osU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osVUFBVSxFQUNWLFdBQVcsRUFDWCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFLTCxRQUFRLEVBQ1IsTUFBTSxFQUdQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQWdCLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFNUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXhDLE9BQU8sRUFBRSxZQUFZLEVBQWdDLE1BQU0sZ0JBQWdCLENBQUM7QUFFNUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDakYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7QUFFdEQsOEJBQThCO0FBQzlCLE1BQU0sT0FBZ0IsYUFBYTtDQUFHO0FBT3RDLE1BQU0sT0FBTyx1QkFBdUI7SUFLbEMsWUFDUyxVQUFzQixFQUNyQixlQUFnQyxFQUNyQixRQUF3QjtRQUZwQyxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3JCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNyQixhQUFRLEdBQVIsUUFBUSxDQUFnQjtRQVU3Qzs7OztXQUlHO1FBQ00sYUFBUSxHQUFhLEtBQUssQ0FBQztRQUVwQzs7O1dBR0c7UUFDTSxVQUFLLEdBQUcsSUFBSSxDQUFDO1FBZWQsV0FBTSxHQUFHLEtBQUssQ0FBQztJQW5DcEIsQ0FBQztJQXNCSjs7O09BR0c7SUFDSCxJQUNJLEtBQUssQ0FBQyxLQUFjO1FBQ3RCLElBQUksQ0FBQyxNQUFNLEdBQUcscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBSUQsSUFDSSxXQUFXO1FBQ2IsT0FBTztZQUNMLGlCQUFpQixFQUFFLElBQUksQ0FBQyxLQUFLO1lBQzdCLHVCQUF1QixFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ25DLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtTQUN4QixDQUFDO0lBQ0osQ0FBQztJQUdNLE9BQU8sQ0FBQyxNQUFrQjtRQUMvQixNQUFNLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDeEIsQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDaEcsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUMxQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztZQUN2QyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxlQUFlLENBQUM7U0FDaEU7SUFDSCxDQUFDOztxSEFsRVUsdUJBQXVCO3lHQUF2Qix1QkFBdUIsd1BBSHZCLENBQUMsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDOzRGQUc5RSx1QkFBdUI7a0JBTG5DLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG1CQUFtQjtvQkFDN0IsU0FBUyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDO29CQUN6RixRQUFRLEVBQUUsaUJBQWlCO2lCQUM1Qjs7MEJBU0ksUUFBUTs0Q0FRRixpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBT0csUUFBUTtzQkFBaEIsS0FBSztnQkFNRyxLQUFLO3NCQUFiLEtBQUs7Z0JBT0YsS0FBSztzQkFEUixLQUFLO2dCQVlGLFdBQVc7c0JBRGQsV0FBVzt1QkFBQyxPQUFPO2dCQVViLE9BQU87c0JBRGIsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUM7O0FBcUJuQyxNQUFNLE9BQU8saUJBQWlCO0lBSzVCLFlBQzRCLFFBQWtCLEVBQ3BDLFVBQXNCLEVBQ3RCLFFBQW1CLEVBQ25CLE1BQWMsRUFDZCxpQkFBb0MsRUFDckMsZUFBZ0M7UUFMYixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ3BDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2Qsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNyQyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFXaEMsY0FBUyxHQUFtQyxJQUFJLENBQUM7UUFnQmxELFVBQUssR0FBRyxLQUFLLENBQUM7UUFRdEI7OztXQUdHO1FBQ00sY0FBUyxHQUFjLGNBQWMsQ0FBQztRQWdCdkMsWUFBTyxHQUFHLElBQUksQ0FBQztRQTBDZixtQkFBYyxHQUFxQjtZQUN6QyxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7WUFDekIsU0FBUyxFQUFFLEVBQUU7WUFDYixRQUFRLEVBQUUsVUFBVTtTQUNyQixDQUFDO1FBRUY7O1dBRUc7UUFDTSxZQUFPLEdBQTJELFVBQVUsQ0FBQztRQXNCOUUsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUVmLGtCQUFhLEdBQTBCLElBQUksWUFBWSxFQUFXLENBQUM7UUFFN0Usb0JBQWUsR0FBRyxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFLdkMsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUlsQixjQUFTLEdBQW1CLEVBQUUsQ0FBQztRQTNJckMsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDaEMsQ0FBQztJQVVEOzs7O09BSUc7SUFDSCxJQUNJLElBQUksQ0FBQyxLQUFjO1FBQ3JCLElBQUksQ0FBQyxLQUFLLEdBQUcscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUFBLENBQUM7SUFFRixJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQWdCRDs7OztPQUlHO0lBQ0gsSUFDSSxNQUFNLENBQUMsS0FBYztRQUN2QixJQUFJLENBQUMsT0FBTyxHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRCxJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQztJQUlEOzs7T0FHRztJQUNILElBQ0ksYUFBYSxDQUFDLEtBQXVCO1FBQ3ZDLElBQUksQ0FBQyxjQUFjLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsR0FBRyxLQUFLLEVBQUUsQ0FBQztJQUM3RCxDQUFDO0lBQUEsQ0FBQztJQUVGLElBQUksYUFBYTtRQUNmLElBQUksU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDL0IsUUFBUSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ3RCLEtBQUssUUFBUSxDQUFDLENBQUM7Z0JBQ2IsU0FBUyxHQUFHLFdBQVcsQ0FBQztnQkFDeEIsTUFBTTthQUNQO1lBQ0QsS0FBSyxTQUFTLENBQUMsQ0FBQztnQkFDZCxTQUFTLEdBQUcsYUFBYSxDQUFDO2dCQUMxQixNQUFNO2FBQ1A7WUFDRCxLQUFLLFdBQVcsQ0FBQyxDQUFDO2dCQUNoQixTQUFTLEdBQUcsWUFBWSxDQUFDO2dCQUN6QixNQUFNO2FBQ1A7WUFDRCxLQUFLLFFBQVEsQ0FBQyxDQUFDO2dCQUNiLFNBQVMsR0FBRyxRQUFRLENBQUM7Z0JBQ3JCLE1BQU07YUFDUDtZQUNELEtBQUssZUFBZSxDQUFDLENBQUM7Z0JBQ3BCLFNBQVMsR0FBRyxLQUFLLENBQUM7Z0JBQ2xCLE1BQU07YUFDUDtTQUNGO1FBQ0QsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLEtBQUssRUFBRTtZQUM1QixTQUFTLEdBQUcsWUFBWSxDQUFDO1NBQzFCO1FBQ0QsSUFBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLENBQUM7UUFDdkUsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQzdCLENBQUM7SUFhRDs7OztPQUlHO0lBQ0gsSUFDSSxPQUFPLENBQUMsS0FBYztRQUN4QixNQUFNLE1BQU0sR0FBRyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1QyxJQUFJLE1BQU0sS0FBSyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQzVCLElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDO1lBQ3ZCLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1lBQ3BFLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ2pDO0lBQ0gsQ0FBQztJQUVELElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBaUJELElBQ0ksV0FBVztRQUNiLE9BQU87WUFDTCxRQUFRLEVBQ04sQ0FBQyxJQUFJLENBQUMsT0FBTyxLQUFLLFVBQVUsSUFBSSxJQUFJLENBQUMsT0FBTyxLQUFLLFVBQVUsQ0FBQztnQkFDNUQsQ0FBQyxJQUFJLENBQUMsU0FBUztZQUNqQixDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTO1lBQ3ZDLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU87WUFDbkMsUUFBUSxFQUFFLElBQUksQ0FBQyxTQUFTLEtBQUssUUFBUSxJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssZUFBZTtZQUMzRSxJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU87U0FDbkIsQ0FBQztJQUNKLENBQUM7SUFFRCw2QkFBNkI7SUFDN0IsSUFDSSxTQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUMsT0FBTyxLQUFLLGFBQWEsQ0FBQyxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUN2RSxDQUFDO0lBS08sV0FBVyxDQUFDLE1BQWtCO1FBQ3BDLElBQUksQ0FBQyxhQUFhLEdBQUcsTUFBTSxDQUFDLE1BQXFCLENBQUM7SUFDcEQsQ0FBQztJQUVELHNCQUFzQixDQUFDLFlBQXFCLElBQUk7UUFDOUMsSUFBSSxTQUFTLEVBQUU7WUFDYixJQUFJLENBQUMseUJBQXlCO2dCQUM1QixJQUFJLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQ3RDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO29CQUNmLE9BQU8sSUFBSSxLQUFLLEtBQUssQ0FBQyxRQUFRLENBQUM7Z0JBQ2pDLENBQUMsQ0FBQyxDQUNILENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7b0JBQ3BCLElBQUksU0FBUyxJQUFJLEtBQUssRUFBRTt3QkFDdEIsS0FBSyxFQUFFLE9BQU8sS0FBSyxRQUFROzRCQUMzQixDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRTs0QkFDdkIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7cUJBQ2xDO2dCQUNILENBQUMsQ0FBQyxDQUFDO1NBQ047YUFBTTtZQUNMLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUM5QztJQUNILENBQUM7SUFFRCxjQUFjO1FBQ1osSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDL0IsQ0FBQztJQUVELE9BQU8sQ0FBQyxLQUFVO1FBQ2hCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLG1CQUFtQixDQUFDLENBQUMsRUFBRTtZQUNqRyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7U0FDdkI7SUFDSCxDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxVQUFVLEVBQUU7WUFDL0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1NBQzVFO0lBQ0gsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFdBQVcsRUFBRTtZQUN6RCxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUN2RDtJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRUQsZUFBZSxDQUFDLEtBQWM7UUFDNUIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRCxzQ0FBc0M7SUFDdEMsb0JBQW9CO1FBQ2xCLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQy9CLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFO2dCQUNqQywrRUFBK0U7Z0JBQy9FLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsVUFBVSxHQUFHLFFBQVEsQ0FBQztnQkFDaEUsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO2dCQUM1RCxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7b0JBQ2YsSUFBSSxDQUFDLGNBQWMsR0FBRyxZQUFZLENBQ2hDLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFDdEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUNuQyxFQUFFLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUMxQixDQUFDO2lCQUNIO2dCQUNELElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRTtvQkFDbkIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO29CQUNwQixJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxFQUFFLENBQUM7b0JBQ3RDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQztnQkFDekMsQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQztJQUVELHFCQUFxQjtRQUNuQixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLGNBQWMsRUFBRSxPQUFPLEVBQUUsQ0FBQztRQUMvQixJQUFJLENBQUMsY0FBYyxHQUFHLFNBQVMsQ0FBQztRQUNoQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVPLFlBQVk7UUFDbEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQ2pCLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsT0FBTyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDckQsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQXFCLENBQUM7WUFDM0MsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFLGFBQWEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFO2dCQUM5RCxJQUFJLENBQUMsYUFBYSxHQUFHLE1BQU0sQ0FBQzthQUM3QjtZQUNELElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUU7Z0JBQ2xFLE9BQU87YUFDUjtZQUNELElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxJQUFJLEVBQUU7Z0JBQzNCLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzVCLE9BQU87YUFDUjtZQUNELElBQUksSUFBSSxDQUFDLGFBQWEsS0FBSyxNQUFNLElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxRQUFRLEVBQUU7Z0JBQ2hFLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzVCLE9BQU87YUFDUjtZQUNELElBQUksSUFBSSxDQUFDLGFBQWEsS0FBSyxNQUFNLElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxTQUFTLEVBQUU7Z0JBQ2pFLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzVCLE9BQU87YUFDUjtRQUNILENBQUMsQ0FBQyxDQUNILENBQUM7UUFDRixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FDakIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsT0FBTyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDckUsSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLFFBQVEsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLEtBQUssRUFBRTtnQkFDdEQsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO2dCQUN4QixJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUM1QixPQUFPO2FBQ1I7UUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFDO1FBQ0YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQ2pCLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsT0FBTyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDckQsSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLEtBQUssSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUU7Z0JBQzVHLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzVCLE9BQU87YUFDUjtRQUNILENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRU8sY0FBYztRQUNwQixJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ2xDLFFBQVEsRUFBRSxDQUFDO1FBQ2IsQ0FBQyxDQUFDLENBQUM7UUFDSCxhQUFhO1FBQ2IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDdEIsQ0FBQzs7K0dBM1RVLGlCQUFpQixrQkFNbEIsUUFBUTttR0FOUCxpQkFBaUIsdWFBRmpCLENBQUMsZUFBZSxDQUFDLGdFQWtKZCx1QkFBdUIsd0VBQ3ZCLHFCQUFxQixrRkFDckIscUJBQXFCLDJCQUFVLFVBQVUsMkVBdko3QywyQkFBMkI7NEZBSzFCLGlCQUFpQjtrQkFQN0IsU0FBUzsrQkFDRSxZQUFZLFlBQ1osMkJBQTJCLFlBRTNCLFdBQVcsYUFDVixDQUFDLGVBQWUsQ0FBQzs7MEJBUXpCLE1BQU07MkJBQUMsUUFBUTtnTEFjVCxTQUFTO3NCQUFqQixLQUFLO2dCQUVHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBUUYsSUFBSTtzQkFEUCxLQUFLO2dCQWVHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBTUcsU0FBUztzQkFBakIsS0FBSztnQkFRRixNQUFNO3NCQURULEtBQUs7Z0JBZ0JGLGFBQWE7c0JBRGhCLEtBQUs7Z0JBNkNHLE9BQU87c0JBQWYsS0FBSztnQkFRRixPQUFPO3NCQURWLEtBQUs7Z0JBaUJJLGFBQWE7c0JBQXRCLE1BQU07Z0JBR2dDLFFBQVE7c0JBQTlDLFlBQVk7dUJBQUMsdUJBQXVCO2dCQUNBLEtBQUs7c0JBQXpDLFlBQVk7dUJBQUMscUJBQXFCO2dCQUN3QixlQUFlO3NCQUF6RSxZQUFZO3VCQUFDLHFCQUFxQixFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtnQkFTckQsV0FBVztzQkFEZCxXQUFXO3VCQUFDLE9BQU87Z0JBZWhCLFNBQVM7c0JBRFosV0FBVzt1QkFBQyxPQUFPO2dCQVFaLFdBQVc7c0JBRGxCLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgZm9yd2FyZFJlZixcbiAgSG9zdEJpbmRpbmcsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgTmdab25lLFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPcHRpb25hbCxcbiAgT3V0cHV0LFxuICBSZW5kZXJlcjIsXG4gIFNpbXBsZUNoYW5nZXNcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBCb29sZWFuSW5wdXQsIGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgY3JlYXRlUG9wcGVyLCBJbnN0YW5jZSwgT3B0aW9ucywgUGxhY2VtZW50IH0gZnJvbSAnQHBvcHBlcmpzL2NvcmUnO1xuXG5pbXBvcnQgeyBEcm9wZG93bk1lbnVEaXJlY3RpdmUgfSBmcm9tICcuLi9kcm9wZG93bi1tZW51L2Ryb3Bkb3duLW1lbnUuZGlyZWN0aXZlJztcbmltcG9ydCB7IERyb3Bkb3duU2VydmljZSB9IGZyb20gJy4uL2Ryb3Bkb3duLnNlcnZpY2UnO1xuXG4vLyBsaWdodHdlaWdodCBpbmplY3Rpb24gdG9rZW5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBEcm9wZG93blRva2VuIHt9XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tjRHJvcGRvd25Ub2dnbGVdJyxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBEcm9wZG93blRva2VuLCB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBEcm9wZG93bkNvbXBvbmVudCkgfV0sXG4gIGV4cG9ydEFzOiAnY0Ryb3Bkb3duVG9nZ2xlJ1xufSlcbmV4cG9ydCBjbGFzcyBEcm9wZG93blRvZ2dsZURpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuXG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9zcGxpdDogQm9vbGVhbklucHV0O1xuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfcG9wcGVyOiBCb29sZWFuSW5wdXQ7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSBkcm9wZG93blNlcnZpY2U6IERyb3Bkb3duU2VydmljZSxcbiAgICBAT3B0aW9uYWwoKSBwdWJsaWMgZHJvcGRvd24/OiBEcm9wZG93blRva2VuXG4gICkge31cblxuICAvKipcbiAgICogVG9nZ2xlIHRoZSBkaXNhYmxlZCBzdGF0ZSBmb3IgdGhlIHRvZ2dsZXIuXG4gICAqIEB0eXBlIERyb3Bkb3duQ29tcG9uZW50IHwgdW5kZWZpbmVkXG4gICAqIEBkZWZhdWx0IHVuZGVmaW5lZFxuICAgKi9cbiAgQElucHV0KCkgZHJvcGRvd25Db21wb25lbnQ/OiBEcm9wZG93bkNvbXBvbmVudDtcblxuICAvKipcbiAgICogRGlzYWJsZXMgdGhlIHRvZ2dsZXIuXG4gICAqIEB0eXBlIGJvb2xlYW5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBJbnB1dCgpIGRpc2FibGVkPzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBFbmFibGVzIHBzZXVkbyBlbGVtZW50IGNhcmV0IG9uIHRvZ2dsZXIuXG4gICAqIEB0eXBlIGJvb2xlYW5cbiAgICovXG4gIEBJbnB1dCgpIGNhcmV0ID0gdHJ1ZTtcblxuICAvKipcbiAgICogQ3JlYXRlIHNwbGl0IGJ1dHRvbiBkcm9wZG93bnMgd2l0aCB2aXJ0dWFsbHkgdGhlIHNhbWUgbWFya3VwIGFzIHNpbmdsZSBidXR0b24gZHJvcGRvd25zLCBidXQgd2l0aCB0aGUgYWRkaXRpb24gb2YgYC5kcm9wZG93bi10b2dnbGUtc3BsaXRgIGNsYXNzIGZvciBwcm9wZXIgc3BhY2luZyBhcm91bmQgdGhlIGRyb3Bkb3duIGNhcmV0LlxuICAgKiBAdHlwZSBib29sZWFuXG4gICAqL1xuICBASW5wdXQoKVxuICBzZXQgc3BsaXQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9zcGxpdCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gIH1cblxuICBnZXQgc3BsaXQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3NwbGl0O1xuICB9XG5cbiAgcHJpdmF0ZSBfc3BsaXQgPSBmYWxzZTtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgZ2V0IGhvc3RDbGFzc2VzKCk6IGFueSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICdkcm9wZG93bi10b2dnbGUnOiB0aGlzLmNhcmV0LFxuICAgICAgJ2Ryb3Bkb3duLXRvZ2dsZS1zcGxpdCc6IHRoaXMuc3BsaXQsXG4gICAgICBkaXNhYmxlZDogdGhpcy5kaXNhYmxlZFxuICAgIH07XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pXG4gIHB1YmxpYyBvbkNsaWNrKCRldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICF0aGlzLmRpc2FibGVkICYmIHRoaXMuZHJvcGRvd25TZXJ2aWNlLnRvZ2dsZSh7IHZpc2libGU6ICd0b2dnbGUnLCBkcm9wZG93bjogdGhpcy5kcm9wZG93biB9KTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kcm9wZG93bkNvbXBvbmVudCkge1xuICAgICAgdGhpcy5kcm9wZG93biA9IHRoaXMuZHJvcGRvd25Db21wb25lbnQ7XG4gICAgICB0aGlzLmRyb3Bkb3duU2VydmljZSA9IHRoaXMuZHJvcGRvd25Db21wb25lbnQ/LmRyb3Bkb3duU2VydmljZTtcbiAgICB9XG4gIH1cbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYy1kcm9wZG93bicsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIHN0eWxlVXJsczogWycuL2Ryb3Bkb3duLmNvbXBvbmVudC5zY3NzJ10sXG4gIGV4cG9ydEFzOiAnY0Ryb3Bkb3duJyxcbiAgcHJvdmlkZXJzOiBbRHJvcGRvd25TZXJ2aWNlXVxufSlcbmV4cG9ydCBjbGFzcyBEcm9wZG93bkNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPbkluaXQge1xuXG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9kYXJrOiBCb29sZWFuSW5wdXQ7XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV92aXNpYmxlOiBCb29sZWFuSW5wdXQ7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBkb2N1bWVudDogRG9jdW1lbnQsXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBwcml2YXRlIG5nWm9uZTogTmdab25lLFxuICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHB1YmxpYyBkcm9wZG93blNlcnZpY2U6IERyb3Bkb3duU2VydmljZVxuICApIHtcbiAgICB0aGlzLmRyb3Bkb3duU3RhdGVTdWJzY3JpYmUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgYWxpZ25tZW50IG9mIGRyb3Bkb3duIG1lbnUuXG4gICAqIEB0eXBlIHsnc3RhcnQnIHwgJ2VuZCcgfCB7IHhzOiAnc3RhcnQnIHwgJ2VuZCcgfSB8IHsgc206ICdzdGFydCcgfCAnZW5kJyB9IHwgeyBtZDogJ3N0YXJ0JyB8ICdlbmQnIH0gfCB7IGxnOiAnc3RhcnQnIHwgJ2VuZCcgfSB8IHsgeGw6ICdzdGFydCcgfCAnZW5kJ30gfCB7IHh4bDogJ3N0YXJ0JyB8ICdlbmQnfX1cbiAgICovXG4gIEBJbnB1dCgpIGFsaWdubWVudD86IHN0cmluZztcblxuICBASW5wdXQoKSBhdXRvQ2xvc2U6IGJvb2xlYW4gfCAnaW5zaWRlJyB8ICdvdXRzaWRlJyA9IHRydWU7XG5cbiAgLyoqXG4gICAqIFNldHMgYSBkYXJrZXIgY29sb3Igc2NoZW1lIHRvIG1hdGNoIGEgZGFyayBuYXZiYXIuXG4gICAqIEB0eXBlIGJvb2xlYW5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBJbnB1dCgpXG4gIHNldCBkYXJrKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fZGFyayA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gIH07XG5cbiAgZ2V0IGRhcmsoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2Rhcms7XG4gIH1cblxuICBwcml2YXRlIF9kYXJrID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFNldHMgYSBzcGVjaWZpZWQgIGRpcmVjdGlvbiBhbmQgbG9jYXRpb24gb2YgdGhlIGRyb3Bkb3duIG1lbnUuXG4gICAqIEB0eXBlICdkcm9wdXAnIHwgJ2Ryb3BlbmQnIHwgJ2Ryb3BzdGFydCdcbiAgICovXG4gIEBJbnB1dCgpIGRpcmVjdGlvbj86ICdjZW50ZXInIHwgJ2Ryb3B1cCcgfCAnZHJvcHVwLWNlbnRlcicgfCAnZHJvcGVuZCcgfCAnZHJvcHN0YXJ0JztcblxuICAvKipcbiAgICogRGVzY3JpYmVzIHRoZSBwbGFjZW1lbnQgb2YgeW91ciBjb21wb25lbnQgYWZ0ZXIgUG9wcGVyLmpzIGhhcyBhcHBsaWVkIGFsbCB0aGUgbW9kaWZpZXJzIHRoYXQgbWF5IGhhdmUgZmxpcHBlZCBvciBhbHRlcmVkIHRoZSBvcmlnaW5hbGx5IHByb3ZpZGVkIHBsYWNlbWVudCBwcm9wZXJ0eS5cbiAgICogQHR5cGUgUGxhY2VtZW50XG4gICAqL1xuICBASW5wdXQoKSBwbGFjZW1lbnQ6IFBsYWNlbWVudCA9ICdib3R0b20tc3RhcnQnO1xuXG4gIC8qKlxuICAgKiBJZiB5b3Ugd2FudCB0byBkaXNhYmxlIGR5bmFtaWMgcG9zaXRpb25pbmcgc2V0IHRoaXMgcHJvcGVydHkgdG8gYGZhbHNlYC5cbiAgICogQHR5cGUgYm9vbGVhblxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICBASW5wdXQoKVxuICBzZXQgcG9wcGVyKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fcG9wcGVyID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgfVxuXG4gIGdldCBwb3BwZXIoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3BvcHBlcjtcbiAgfVxuXG4gIHByaXZhdGUgX3BvcHBlciA9IHRydWU7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIHBvcHBlciBPcHRpb25zIG9iamVjdCwgcGxhY2VtZW50IHByb3AgdGFrZXMgcHJlY2VkZW5jZSBvdmVyXG4gICAqIEB0eXBlIFBhcnRpYWw8T3B0aW9ucz5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHNldCBwb3BwZXJPcHRpb25zKHZhbHVlOiBQYXJ0aWFsPE9wdGlvbnM+KSB7XG4gICAgdGhpcy5fcG9wcGVyT3B0aW9ucyA9IHsgLi4udGhpcy5fcG9wcGVyT3B0aW9ucywgLi4udmFsdWUgfTtcbiAgfTtcblxuICBnZXQgcG9wcGVyT3B0aW9ucygpOiBQYXJ0aWFsPE9wdGlvbnM+IHtcbiAgICBsZXQgcGxhY2VtZW50ID0gdGhpcy5wbGFjZW1lbnQ7XG4gICAgc3dpdGNoICh0aGlzLmRpcmVjdGlvbikge1xuICAgICAgY2FzZSAnZHJvcHVwJzoge1xuICAgICAgICBwbGFjZW1lbnQgPSAndG9wLXN0YXJ0JztcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdkcm9wZW5kJzoge1xuICAgICAgICBwbGFjZW1lbnQgPSAncmlnaHQtc3RhcnQnO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ2Ryb3BzdGFydCc6IHtcbiAgICAgICAgcGxhY2VtZW50ID0gJ2xlZnQtc3RhcnQnO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ2NlbnRlcic6IHtcbiAgICAgICAgcGxhY2VtZW50ID0gJ2JvdHRvbSc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnZHJvcHVwLWNlbnRlcic6IHtcbiAgICAgICAgcGxhY2VtZW50ID0gJ3RvcCc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAodGhpcy5hbGlnbm1lbnQgPT09ICdlbmQnKSB7XG4gICAgICBwbGFjZW1lbnQgPSAnYm90dG9tLWVuZCc7XG4gICAgfVxuICAgIHRoaXMuX3BvcHBlck9wdGlvbnMgPSB7IC4uLnRoaXMuX3BvcHBlck9wdGlvbnMsIHBsYWNlbWVudDogcGxhY2VtZW50IH07XG4gICAgcmV0dXJuIHRoaXMuX3BvcHBlck9wdGlvbnM7XG4gIH1cblxuICBwcml2YXRlIF9wb3BwZXJPcHRpb25zOiBQYXJ0aWFsPE9wdGlvbnM+ID0ge1xuICAgIHBsYWNlbWVudDogdGhpcy5wbGFjZW1lbnQsXG4gICAgbW9kaWZpZXJzOiBbXSxcbiAgICBzdHJhdGVneTogJ2Fic29sdXRlJ1xuICB9O1xuXG4gIC8qKlxuICAgKiBTZXQgdGhlIGRyb3Bkb3duIHZhcmlhbnQgdG8gYSBidG4tZ3JvdXAsIGRyb3Bkb3duLCBpbnB1dC1ncm91cCwgYW5kIG5hdi1pdGVtLlxuICAgKi9cbiAgQElucHV0KCkgdmFyaWFudD86ICdidG4tZ3JvdXAnIHwgJ2Ryb3Bkb3duJyB8ICdpbnB1dC1ncm91cCcgfCAnbmF2LWl0ZW0nID0gJ2Ryb3Bkb3duJztcblxuICAvKipcbiAgICogVG9nZ2xlIHRoZSB2aXNpYmlsaXR5IG9mIGRyb3Bkb3duIG1lbnUgY29tcG9uZW50LlxuICAgKiBAdHlwZSBib29sZWFuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoKVxuICBzZXQgdmlzaWJsZSh2YWx1ZTogYm9vbGVhbikge1xuICAgIGNvbnN0IF92YWx1ZSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgaWYgKF92YWx1ZSAhPT0gdGhpcy5fdmlzaWJsZSkge1xuICAgICAgdGhpcy5hY3RpdmVUcmFwID0gX3ZhbHVlO1xuICAgICAgdGhpcy5fdmlzaWJsZSA9IF92YWx1ZTtcbiAgICAgIF92YWx1ZSA/IHRoaXMuY3JlYXRlUG9wcGVySW5zdGFuY2UoKSA6IHRoaXMuZGVzdHJveVBvcHBlckluc3RhbmNlKCk7XG4gICAgICB0aGlzLnZpc2libGVDaGFuZ2UuZW1pdChfdmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIGdldCB2aXNpYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl92aXNpYmxlO1xuICB9XG5cbiAgcHJpdmF0ZSBfdmlzaWJsZSA9IGZhbHNlO1xuXG4gIEBPdXRwdXQoKSB2aXNpYmxlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgZHJvcGRvd25Db250ZXh0ID0geyAkaW1wbGljaXQ6IHRoaXMudmlzaWJsZSB9O1xuICBAQ29udGVudENoaWxkKERyb3Bkb3duVG9nZ2xlRGlyZWN0aXZlKSBfdG9nZ2xlciE6IERyb3Bkb3duVG9nZ2xlRGlyZWN0aXZlO1xuICBAQ29udGVudENoaWxkKERyb3Bkb3duTWVudURpcmVjdGl2ZSkgX21lbnUhOiBEcm9wZG93bk1lbnVEaXJlY3RpdmU7XG4gIEBDb250ZW50Q2hpbGQoRHJvcGRvd25NZW51RGlyZWN0aXZlLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSkgX21lbnVFbGVtZW50UmVmITogRWxlbWVudFJlZjtcblxuICBwdWJsaWMgYWN0aXZlVHJhcCA9IGZhbHNlO1xuXG4gIHByaXZhdGUgZHJvcGRvd25TdGF0ZVN1YnNjcmlwdGlvbiE6IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSBwb3BwZXJJbnN0YW5jZSE6IEluc3RhbmNlIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIGxpc3RlbmVyczogKCgpID0+IHZvaWQpW10gPSBbXTtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgZ2V0IGhvc3RDbGFzc2VzKCk6IGFueSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGRyb3Bkb3duOlxuICAgICAgICAodGhpcy52YXJpYW50ID09PSAnZHJvcGRvd24nIHx8IHRoaXMudmFyaWFudCA9PT0gJ25hdi1pdGVtJykgJiZcbiAgICAgICAgIXRoaXMuZGlyZWN0aW9uLFxuICAgICAgW2Ake3RoaXMuZGlyZWN0aW9ufWBdOiAhIXRoaXMuZGlyZWN0aW9uLFxuICAgICAgW2Ake3RoaXMudmFyaWFudH1gXTogISF0aGlzLnZhcmlhbnQsXG4gICAgICAnZHJvcHVwJzogdGhpcy5kaXJlY3Rpb24gPT09ICdkcm9wdXAnIHx8IHRoaXMuZGlyZWN0aW9uID09PSAnZHJvcHVwLWNlbnRlcicsXG4gICAgICBzaG93OiB0aGlzLnZpc2libGVcbiAgICB9O1xuICB9XG5cbiAgLy8gdG9kbzogZmluZCBiZXR0ZXIgc29sdXRpb25cbiAgQEhvc3RCaW5kaW5nKCdzdHlsZScpXG4gIGdldCBob3N0U3R5bGUoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy52YXJpYW50ID09PSAnaW5wdXQtZ3JvdXAnID8geyBkaXNwbGF5OiAnY29udGVudHMnIH0gOiB7fTtcbiAgfVxuXG4gIHByaXZhdGUgY2xpY2tlZFRhcmdldCE6IEhUTUxFbGVtZW50O1xuXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSlcbiAgcHJpdmF0ZSBvbkhvc3RDbGljaygkZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLmNsaWNrZWRUYXJnZXQgPSAkZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuICB9XG5cbiAgZHJvcGRvd25TdGF0ZVN1YnNjcmliZShzdWJzY3JpYmU6IGJvb2xlYW4gPSB0cnVlKTogdm9pZCB7XG4gICAgaWYgKHN1YnNjcmliZSkge1xuICAgICAgdGhpcy5kcm9wZG93blN0YXRlU3Vic2NyaXB0aW9uID1cbiAgICAgICAgdGhpcy5kcm9wZG93blNlcnZpY2UuZHJvcGRvd25TdGF0ZSQucGlwZShcbiAgICAgICAgICBmaWx0ZXIoKHN0YXRlKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcyA9PT0gc3RhdGUuZHJvcGRvd247XG4gICAgICAgICAgfSlcbiAgICAgICAgKS5zdWJzY3JpYmUoKHN0YXRlKSA9PiB7XG4gICAgICAgICAgaWYgKCd2aXNpYmxlJyBpbiBzdGF0ZSkge1xuICAgICAgICAgICAgc3RhdGU/LnZpc2libGUgPT09ICd0b2dnbGUnXG4gICAgICAgICAgICA/IHRoaXMudG9nZ2xlRHJvcGRvd24oKVxuICAgICAgICAgICAgOiAodGhpcy52aXNpYmxlID0gc3RhdGUudmlzaWJsZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kcm9wZG93blN0YXRlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgdG9nZ2xlRHJvcGRvd24oKTogdm9pZCB7XG4gICAgdGhpcy52aXNpYmxlID0gIXRoaXMudmlzaWJsZTtcbiAgfVxuXG4gIG9uQ2xpY2soZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIGlmICghdGhpcy5fdG9nZ2xlcj8uZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldD8uY2xvc2VzdCgnW2NEcm9wZG93blRvZ2dsZV0nKSkpIHtcbiAgICAgIHRoaXMudG9nZ2xlRHJvcGRvd24oKTtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMudmFyaWFudCA9PT0gJ25hdi1pdGVtJykge1xuICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLl90b2dnbGVyLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ25hdi1saW5rJyk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zZXRWaXNpYmxlU3RhdGUodGhpcy52aXNpYmxlKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1sndmlzaWJsZSddICYmICFjaGFuZ2VzWyd2aXNpYmxlJ10uZmlyc3RDaGFuZ2UpIHtcbiAgICAgIHRoaXMuc2V0VmlzaWJsZVN0YXRlKGNoYW5nZXNbJ3Zpc2libGUnXS5jdXJyZW50VmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuY2xlYXJMaXN0ZW5lcnMoKTtcbiAgICB0aGlzLmRyb3Bkb3duU3RhdGVTdWJzY3JpYmUoZmFsc2UpO1xuICAgIHRoaXMuZGVzdHJveVBvcHBlckluc3RhbmNlKCk7XG4gIH1cblxuICBzZXRWaXNpYmxlU3RhdGUodmFsdWU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRyb3Bkb3duU2VydmljZS50b2dnbGUoeyB2aXNpYmxlOiB2YWx1ZSwgZHJvcGRvd246IHRoaXMgfSk7XG4gIH1cblxuICAvLyB0b2RvOiB0dXJuIG9mZiBwb3BwZXIgaW4gbmF2YmFyLW5hdlxuICBjcmVhdGVQb3BwZXJJbnN0YW5jZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fdG9nZ2xlciAmJiB0aGlzLl9tZW51KSB7XG4gICAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgIC8vIHdvcmthcm91bmQgZm9yIHBvcHBlciBwb3NpdGlvbiBjYWxjdWxhdGUgKHNlZSBhbHNvOiBkcm9wZG93bi1tZW51LmNvbXBvbmVudClcbiAgICAgICAgdGhpcy5fbWVudS5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUudmlzaWJpbGl0eSA9ICdoaWRkZW4nO1xuICAgICAgICB0aGlzLl9tZW51LmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJztcbiAgICAgICAgaWYgKHRoaXMucG9wcGVyKSB7XG4gICAgICAgICAgdGhpcy5wb3BwZXJJbnN0YW5jZSA9IGNyZWF0ZVBvcHBlcihcbiAgICAgICAgICAgIHRoaXMuX3RvZ2dsZXIuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgdGhpcy5fbWVudS5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICB7IC4uLnRoaXMucG9wcGVyT3B0aW9ucyB9XG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgIHRoaXMuc2V0TGlzdGVuZXJzKCk7XG4gICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBkZXN0cm95UG9wcGVySW5zdGFuY2UoKTogdm9pZCB7XG4gICAgdGhpcy5jbGVhckxpc3RlbmVycygpO1xuICAgIHRoaXMucG9wcGVySW5zdGFuY2U/LmRlc3Ryb3koKTtcbiAgICB0aGlzLnBvcHBlckluc3RhbmNlID0gdW5kZWZpbmVkO1xuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwcml2YXRlIHNldExpc3RlbmVycygpOiB2b2lkIHtcbiAgICB0aGlzLmxpc3RlbmVycy5wdXNoKFxuICAgICAgdGhpcy5yZW5kZXJlci5saXN0ZW4odGhpcy5kb2N1bWVudCwgJ2NsaWNrJywgKGV2ZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgaWYgKHRoaXMuX21lbnVFbGVtZW50UmVmPy5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCkpIHtcbiAgICAgICAgICB0aGlzLmNsaWNrZWRUYXJnZXQgPSB0YXJnZXQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuX3RvZ2dsZXI/LmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQpKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmF1dG9DbG9zZSA9PT0gdHJ1ZSkge1xuICAgICAgICAgIHRoaXMuc2V0VmlzaWJsZVN0YXRlKGZhbHNlKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuY2xpY2tlZFRhcmdldCA9PT0gdGFyZ2V0ICYmIHRoaXMuYXV0b0Nsb3NlID09PSAnaW5zaWRlJykge1xuICAgICAgICAgIHRoaXMuc2V0VmlzaWJsZVN0YXRlKGZhbHNlKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuY2xpY2tlZFRhcmdldCAhPT0gdGFyZ2V0ICYmIHRoaXMuYXV0b0Nsb3NlID09PSAnb3V0c2lkZScpIHtcbiAgICAgICAgICB0aGlzLnNldFZpc2libGVTdGF0ZShmYWxzZSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG4gICAgdGhpcy5saXN0ZW5lcnMucHVzaChcbiAgICAgIHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAna2V5dXAnLCAoZXZlbnQpID0+IHtcbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VzY2FwZScgJiYgdGhpcy5hdXRvQ2xvc2UgIT09IGZhbHNlKSB7XG4gICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgdGhpcy5zZXRWaXNpYmxlU3RhdGUoZmFsc2UpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuICAgIHRoaXMubGlzdGVuZXJzLnB1c2goXG4gICAgICB0aGlzLnJlbmRlcmVyLmxpc3Rlbih0aGlzLmRvY3VtZW50LCAna2V5dXAnLCAoZXZlbnQpID0+IHtcbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ1RhYicgJiYgdGhpcy5hdXRvQ2xvc2UgIT09IGZhbHNlICYmICF0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQpKSB7XG4gICAgICAgICAgdGhpcy5zZXRWaXNpYmxlU3RhdGUoZmFsc2UpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBjbGVhckxpc3RlbmVycygpOiB2b2lkIHtcbiAgICB0aGlzLmxpc3RlbmVycy5mb3JFYWNoKCh1bkxpc3RlbikgPT4ge1xuICAgICAgdW5MaXN0ZW4oKTtcbiAgICB9KTtcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgdGhpcy5saXN0ZW5lcnMuZmlsbCh1bmRlZmluZWQpO1xuICAgIHRoaXMubGlzdGVuZXJzID0gW107XG4gIH1cbn1cbiJdfQ==
|