@coreui/angular-pro 4.0.0-alpha.0 → 4.0.0-alpha.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +12 -12
- package/{esm2015/coreui-angular-pro.js → esm2020/coreui-angular-pro.mjs} +0 -0
- package/esm2020/lib/accordion/accordion/accordion.component.mjs +40 -0
- package/esm2020/lib/accordion/accordion-button/accordion-button.directive.mjs +43 -0
- package/esm2020/lib/accordion/accordion-item/accordion-item.component.mjs +62 -0
- package/{esm2015/lib/accordion/accordion.module.js → esm2020/lib/accordion/accordion.module.mjs} +5 -5
- package/{esm2015/lib/accordion/accordion.service.js → esm2020/lib/accordion/accordion.service.mjs} +6 -6
- package/{esm2015/lib/accordion/index.js → esm2020/lib/accordion/index.mjs} +0 -0
- package/{esm2015/lib/accordion/public_api.js → esm2020/lib/accordion/public_api.mjs} +0 -0
- package/{esm2015/lib/alert/alert-heading.directive.js → esm2020/lib/alert/alert-heading.directive.mjs} +4 -4
- package/{esm2015/lib/alert/alert-link.directive.js → esm2020/lib/alert/alert-link.directive.mjs} +4 -4
- package/esm2020/lib/alert/alert.component.mjs +181 -0
- package/{esm2015/lib/alert/alert.module.js → esm2020/lib/alert/alert.module.mjs} +5 -5
- package/{esm2015/lib/alert/index.js → esm2020/lib/alert/index.mjs} +0 -0
- package/{esm2015/lib/alert/public_api.js → esm2020/lib/alert/public_api.mjs} +0 -0
- package/esm2020/lib/avatar/avatar.component.mjs +49 -0
- package/{esm2015/lib/avatar/avatar.module.js → esm2020/lib/avatar/avatar.module.mjs} +5 -5
- package/{esm2015/lib/avatar/index.js → esm2020/lib/avatar/index.mjs} +0 -0
- package/{esm2015/lib/avatar/public_api.js → esm2020/lib/avatar/public_api.mjs} +0 -0
- package/esm2020/lib/backdrop/backdrop.service.mjs +52 -0
- package/esm2020/lib/badge/badge.component.mjs +42 -0
- package/{esm2015/lib/badge/badge.module.js → esm2020/lib/badge/badge.module.mjs} +5 -5
- package/{esm2015/lib/badge/index.js → esm2020/lib/badge/index.mjs} +0 -0
- package/{esm2015/lib/badge/public_api.js → esm2020/lib/badge/public_api.mjs} +0 -0
- package/esm2020/lib/breadcrumb/breadcrumb/breadcrumb.component.mjs +43 -0
- package/esm2020/lib/breadcrumb/breadcrumb-item/breadcrumb-item.component.mjs +37 -0
- package/{esm2015/lib/breadcrumb/breadcrumb-item/breadcrumb-item.js → esm2020/lib/breadcrumb/breadcrumb-item/breadcrumb-item.mjs} +0 -0
- package/esm2020/lib/breadcrumb/breadcrumb-router/breadcrumb-router.component.mjs +41 -0
- package/{esm2015/lib/breadcrumb/breadcrumb-router/breadcrumb-router.service.js → esm2020/lib/breadcrumb/breadcrumb-router/breadcrumb-router.service.mjs} +5 -5
- package/{esm2015/lib/breadcrumb/breadcrumb.module.js → esm2020/lib/breadcrumb/breadcrumb.module.mjs} +5 -5
- package/{esm2015/lib/breadcrumb/index.js → esm2020/lib/breadcrumb/index.mjs} +0 -0
- package/{esm2015/lib/breadcrumb/public_api.js → esm2020/lib/breadcrumb/public_api.mjs} +0 -0
- package/esm2020/lib/button/button-close.directive.mjs +43 -0
- package/{esm2015/lib/button/button.directive.js → esm2020/lib/button/button.directive.mjs} +7 -4
- package/{esm2015/lib/button/button.module.js → esm2020/lib/button/button.module.mjs} +5 -5
- package/{esm2015/lib/button/index.js → esm2020/lib/button/index.mjs} +0 -0
- package/{esm2015/lib/button/public_api.js → esm2020/lib/button/public_api.mjs} +0 -0
- package/{esm2015/lib/button-group/button-group/button-group.component.js → esm2020/lib/button-group/button-group/button-group.component.mjs} +4 -4
- package/{esm2015/lib/button-group/button-group.module.js → esm2020/lib/button-group/button-group.module.mjs} +5 -5
- package/{esm2015/lib/button-group/button-toolbar/button-toolbar.component.js → esm2020/lib/button-group/button-toolbar/button-toolbar.component.mjs} +4 -4
- package/{esm2015/lib/button-group/index.js → esm2020/lib/button-group/index.mjs} +0 -0
- package/{esm2015/lib/button-group/public_api.js → esm2020/lib/button-group/public_api.mjs} +0 -0
- package/esm2020/lib/callout/callout.component.mjs +23 -0
- package/{esm2015/lib/callout/callout.module.js → esm2020/lib/callout/callout.module.mjs} +5 -5
- package/{esm2015/lib/callout/index.js → esm2020/lib/callout/index.mjs} +0 -0
- package/{esm2015/lib/callout/public_api.js → esm2020/lib/callout/public_api.mjs} +0 -0
- package/{esm2015/lib/card/card-body.component.js → esm2020/lib/card/card-body.component.mjs} +4 -4
- package/{esm2015/lib/card/card-footer.component.js → esm2020/lib/card/card-footer.component.mjs} +4 -4
- package/{esm2015/lib/card/card-group.component.js → esm2020/lib/card/card-group.component.mjs} +4 -4
- package/{esm2015/lib/card/card-header-actions.component.js → esm2020/lib/card/card-header-actions.component.mjs} +4 -4
- package/{esm2015/lib/card/card-header.component.js → esm2020/lib/card/card-header.component.mjs} +4 -4
- package/esm2020/lib/card/card-img-overlay/card-img-overlay.component.mjs +19 -0
- package/{esm2015/lib/card/card-img.directive.js → esm2020/lib/card/card-img.directive.mjs} +4 -4
- package/{esm2015/lib/card/card-link.directive.js → esm2020/lib/card/card-link.directive.mjs} +4 -4
- package/{esm2015/lib/card/card-subtitle.directive.js → esm2020/lib/card/card-subtitle.directive.mjs} +4 -4
- package/{esm2015/lib/card/card-text.directive.js → esm2020/lib/card/card-text.directive.mjs} +4 -4
- package/{esm2015/lib/card/card-title.directive.js → esm2020/lib/card/card-title.directive.mjs} +4 -4
- package/{esm2015/lib/card/card.component.js → esm2020/lib/card/card.component.mjs} +4 -4
- package/{esm2015/lib/card/card.module.js → esm2020/lib/card/card.module.mjs} +5 -5
- package/{esm2015/lib/card/index.js → esm2020/lib/card/index.mjs} +0 -0
- package/{esm2015/lib/card/public_api.js → esm2020/lib/card/public_api.mjs} +0 -0
- package/esm2020/lib/carousel/carousel/carousel.component.mjs +173 -0
- package/esm2020/lib/carousel/carousel-caption/carousel-caption.component.mjs +17 -0
- package/esm2020/lib/carousel/carousel-control/carousel-control.component.mjs +83 -0
- package/esm2020/lib/carousel/carousel-indicators/carousel-indicators.component.mjs +45 -0
- package/esm2020/lib/carousel/carousel-inner/carousel-inner.component.mjs +47 -0
- package/esm2020/lib/carousel/carousel-item/carousel-item.component.mjs +68 -0
- package/esm2020/lib/carousel/carousel-state.mjs +73 -0
- package/{esm2015/lib/carousel/carousel-state.type.js → esm2020/lib/carousel/carousel-state.type.mjs} +0 -0
- package/{esm2015/lib/carousel/carousel.animation.js → esm2020/lib/carousel/carousel.animation.mjs} +0 -0
- package/{esm2015/lib/carousel/carousel.config.js → esm2020/lib/carousel/carousel.config.mjs} +4 -4
- package/{esm2015/lib/carousel/carousel.module.js → esm2020/lib/carousel/carousel.module.mjs} +5 -5
- package/{esm2015/lib/carousel/carousel.service.js → esm2020/lib/carousel/carousel.service.mjs} +4 -4
- package/{esm2015/lib/carousel/index.js → esm2020/lib/carousel/index.mjs} +0 -0
- package/esm2020/lib/carousel/intersection.service.mjs +33 -0
- package/{esm2015/lib/carousel/public_api.js → esm2020/lib/carousel/public_api.mjs} +0 -0
- package/{esm2015/lib/collapse/collapse.animations.js → esm2020/lib/collapse/collapse.animations.mjs} +1 -1
- package/esm2020/lib/collapse/collapse.directive.mjs +130 -0
- package/{esm2015/lib/collapse/collapse.module.js → esm2020/lib/collapse/collapse.module.mjs} +5 -5
- package/{esm2015/lib/collapse/index.js → esm2020/lib/collapse/index.mjs} +0 -0
- package/{esm2015/lib/collapse/public_api.js → esm2020/lib/collapse/public_api.mjs} +0 -0
- package/{esm2015/lib/coreui.types.js → esm2020/lib/coreui.types.mjs} +0 -0
- package/esm2020/lib/dropdown/dropdown/dropdown.component.mjs +296 -0
- package/{esm2015/lib/dropdown/dropdown-divider/dropdown-divider.directive.js → esm2020/lib/dropdown/dropdown-divider/dropdown-divider.directive.mjs} +4 -4
- package/{esm2015/lib/dropdown/dropdown-header/dropdown-header.directive.js → esm2020/lib/dropdown/dropdown-header/dropdown-header.directive.mjs} +4 -4
- package/{esm2015/lib/dropdown/dropdown-item/dropdown-item-plain.directive.js → esm2020/lib/dropdown/dropdown-item/dropdown-item-plain.directive.mjs} +4 -4
- package/esm2020/lib/dropdown/dropdown-item/dropdown-item.directive.mjs +68 -0
- package/{esm2015/lib/dropdown/dropdown-menu/dropdown-menu.directive.js → esm2020/lib/dropdown/dropdown-menu/dropdown-menu.directive.mjs} +4 -4
- package/{esm2015/lib/dropdown/dropdown.module.js → esm2020/lib/dropdown/dropdown.module.mjs} +5 -5
- package/{esm2015/lib/dropdown/dropdown.service.js → esm2020/lib/dropdown/dropdown.service.mjs} +4 -4
- package/{esm2015/lib/dropdown/index.js → esm2020/lib/dropdown/index.mjs} +0 -0
- package/{esm2015/lib/dropdown/public_api.js → esm2020/lib/dropdown/public_api.mjs} +0 -0
- package/esm2020/lib/element-cover/element-cover.component.mjs +71 -0
- package/esm2020/lib/element-cover/element-cover.module.mjs +30 -0
- package/esm2020/lib/element-cover/index.mjs +2 -0
- package/esm2020/lib/element-cover/public_api.mjs +3 -0
- package/{esm2015/lib/footer/footer.component.js → esm2020/lib/footer/footer.component.mjs} +4 -4
- package/{esm2015/lib/footer/footer.module.js → esm2020/lib/footer/footer.module.mjs} +5 -5
- package/{esm2015/lib/footer/index.js → esm2020/lib/footer/index.mjs} +0 -0
- package/{esm2015/lib/footer/public_api.js → esm2020/lib/footer/public_api.mjs} +0 -0
- package/{esm2015/lib/form/form/form.directive.js → esm2020/lib/form/form/form.directive.mjs} +4 -4
- package/esm2020/lib/form/form-check/form-check-input.directive.mjs +62 -0
- package/{esm2015/lib/form/form-check/form-check-label.directive.js → esm2020/lib/form/form-check/form-check-label.directive.mjs} +4 -4
- package/{esm2015/lib/form/form-check/form-check.component.js → esm2020/lib/form/form-check/form-check.component.mjs} +4 -4
- package/{esm2015/lib/form/form-control/form-control.directive.js → esm2020/lib/form/form-control/form-control.directive.mjs} +4 -4
- package/{esm2015/lib/form/form-feedback/form-feedback.component.js → esm2020/lib/form/form-feedback/form-feedback.component.mjs} +4 -4
- package/{esm2015/lib/form/form-floating/form-floating.directive.js → esm2020/lib/form/form-floating/form-floating.directive.mjs} +4 -4
- package/{esm2015/lib/form/form-label/form-label.directive.js → esm2020/lib/form/form-label/form-label.directive.mjs} +4 -4
- package/{esm2015/lib/form/form-select/form-select.directive.js → esm2020/lib/form/form-select/form-select.directive.mjs} +4 -4
- package/{esm2015/lib/form/form-text/form-text.directive.js → esm2020/lib/form/form-text/form-text.directive.mjs} +4 -4
- package/{esm2015/lib/form/form.module.js → esm2020/lib/form/form.module.mjs} +5 -5
- package/{esm2015/lib/form/index.js → esm2020/lib/form/index.mjs} +0 -0
- package/{esm2015/lib/form/input-group/input-group.component.js → esm2020/lib/form/input-group/input-group.component.mjs} +4 -4
- package/{esm2015/lib/form/input-group-text/input-group-text.directive.js → esm2020/lib/form/input-group-text/input-group-text.directive.mjs} +4 -4
- package/{esm2015/lib/form/public_api.js → esm2020/lib/form/public_api.mjs} +0 -0
- package/esm2020/lib/grid/col.component.mjs +12 -0
- package/esm2020/lib/grid/col.directive.mjs +151 -0
- package/{esm2015/lib/grid/col.type.js → esm2020/lib/grid/col.type.mjs} +0 -0
- package/esm2020/lib/grid/container.component.mjs +43 -0
- package/{esm2015/lib/grid/container.type.js → esm2020/lib/grid/container.type.mjs} +0 -0
- package/{esm2015/lib/grid/grid.module.js → esm2020/lib/grid/grid.module.mjs} +5 -5
- package/esm2020/lib/grid/gutter.directive.mjs +56 -0
- package/{esm2015/lib/grid/gutter.type.js → esm2020/lib/grid/gutter.type.mjs} +0 -0
- package/{esm2015/lib/grid/index.js → esm2020/lib/grid/index.mjs} +0 -0
- package/{esm2015/lib/grid/public_api.js → esm2020/lib/grid/public_api.mjs} +0 -0
- package/esm2020/lib/grid/row.component.mjs +12 -0
- package/{esm2015/lib/grid/row.directive.js → esm2020/lib/grid/row.directive.mjs} +4 -4
- package/{esm2015/lib/grid/row.type.js → esm2020/lib/grid/row.type.mjs} +0 -0
- package/esm2020/lib/header/header/header.component.mjs +47 -0
- package/{esm2015/lib/header/header-brand/header-brand.component.js → esm2020/lib/header/header-brand/header-brand.component.mjs} +4 -4
- package/{esm2015/lib/header/header-divider/header-divider.component.js → esm2020/lib/header/header-divider/header-divider.component.mjs} +4 -4
- package/esm2020/lib/header/header-nav/header-nav.component.mjs +28 -0
- package/{esm2015/lib/header/header-text/header-text.component.js → esm2020/lib/header/header-text/header-text.component.mjs} +4 -4
- package/{esm2015/lib/header/header-toggler/header-toggler.directive.js → esm2020/lib/header/header-toggler/header-toggler.directive.mjs} +4 -4
- package/{esm2015/lib/header/header.module.js → esm2020/lib/header/header.module.mjs} +5 -5
- package/{esm2015/lib/header/index.js → esm2020/lib/header/index.mjs} +0 -0
- package/{esm2015/lib/header/public_api.js → esm2020/lib/header/public_api.mjs} +0 -0
- package/{esm2015/lib/image/img.directive.js → esm2020/lib/image/img.directive.mjs} +4 -4
- package/{esm2015/lib/image/img.module.js → esm2020/lib/image/img.module.mjs} +5 -5
- package/{esm2015/lib/image/index.js → esm2020/lib/image/index.mjs} +0 -0
- package/{esm2015/lib/image/public_api.js → esm2020/lib/image/public_api.mjs} +0 -0
- package/{esm2015/lib/list-group/index.js → esm2020/lib/list-group/index.mjs} +0 -0
- package/{esm2015/lib/list-group/list-group-item.directive.js → esm2020/lib/list-group/list-group-item.directive.mjs} +4 -4
- package/{esm2015/lib/list-group/list-group.directive.js → esm2020/lib/list-group/list-group.directive.mjs} +4 -4
- package/{esm2015/lib/list-group/list-group.module.js → esm2020/lib/list-group/list-group.module.mjs} +5 -5
- package/{esm2015/lib/list-group/public_api.js → esm2020/lib/list-group/public_api.mjs} +0 -0
- package/{esm2015/lib/loading-button/index.js → esm2020/lib/loading-button/index.mjs} +0 -0
- package/esm2020/lib/loading-button/loading-button.component.mjs +84 -0
- package/{esm2015/lib/loading-button/loading-button.module.js → esm2020/lib/loading-button/loading-button.module.mjs} +5 -5
- package/{esm2015/lib/loading-button/public_api.js → esm2020/lib/loading-button/public_api.mjs} +0 -0
- package/{esm2015/lib/modal/index.js → esm2020/lib/modal/index.mjs} +0 -0
- package/esm2020/lib/modal/modal/modal.component.mjs +314 -0
- package/esm2020/lib/modal/modal-body/modal-body.component.mjs +19 -0
- package/esm2020/lib/modal/modal-content/modal-content.component.mjs +36 -0
- package/esm2020/lib/modal/modal-dialog/modal-dialog.component.mjs +32 -0
- package/{esm2015/lib/modal/modal-dismiss/modal-toggle.directive.js → esm2020/lib/modal/modal-dismiss/modal-toggle.directive.mjs} +4 -4
- package/{esm2015/lib/modal/modal-footer/modal-footer.component.js → esm2020/lib/modal/modal-footer/modal-footer.component.mjs} +4 -4
- package/{esm2015/lib/modal/modal-header/modal-header.component.js → esm2020/lib/modal/modal-header/modal-header.component.mjs} +4 -4
- package/{esm2015/lib/modal/modal-title/modal-title.directive.js → esm2020/lib/modal/modal-title/modal-title.directive.mjs} +4 -4
- package/{esm2015/lib/modal/modal.module.js → esm2020/lib/modal/modal.module.mjs} +5 -5
- package/{esm2015/lib/modal/modal.service.js → esm2020/lib/modal/modal.service.mjs} +4 -4
- package/{esm2015/lib/modal/public_api.js → esm2020/lib/modal/public_api.mjs} +0 -0
- package/esm2020/lib/multi-select/index.mjs +2 -0
- package/esm2020/lib/multi-select/multi-select/multi-select.component.mjs +468 -0
- package/esm2020/lib/multi-select/multi-select-native-select/multi-select-native-select.component.mjs +30 -0
- package/esm2020/lib/multi-select/multi-select-optgroup/multi-select-optgroup-label.component.mjs +20 -0
- package/esm2020/lib/multi-select/multi-select-optgroup/multi-select-optgroup.component.mjs +52 -0
- package/esm2020/lib/multi-select/multi-select-option/multi-select-option.component.mjs +141 -0
- package/esm2020/lib/multi-select/multi-select-tag/multi-select-tag.component.mjs +56 -0
- package/esm2020/lib/multi-select/multi-select.module.mjs +50 -0
- package/esm2020/lib/multi-select/multi-select.service.mjs +23 -0
- package/esm2020/lib/multi-select/multi-select.type.mjs +2 -0
- package/esm2020/lib/multi-select/public_api.mjs +7 -0
- package/{esm2015/lib/nav/index.js → esm2020/lib/nav/index.mjs} +0 -0
- package/esm2020/lib/nav/nav-item.component.mjs +19 -0
- package/esm2020/lib/nav/nav-link.directive.mjs +87 -0
- package/esm2020/lib/nav/nav.component.mjs +27 -0
- package/{esm2015/lib/nav/nav.module.js → esm2020/lib/nav/nav.module.mjs} +5 -5
- package/{esm2015/lib/nav/public_api.js → esm2020/lib/nav/public_api.mjs} +0 -0
- package/{esm2015/lib/navbar/index.js → esm2020/lib/navbar/index.mjs} +0 -0
- package/{esm2015/lib/navbar/navbar-brand/navbar-brand.directive.js → esm2020/lib/navbar/navbar-brand/navbar-brand.directive.mjs} +4 -4
- package/{esm2015/lib/navbar/navbar-nav/navbar-nav.component.js → esm2020/lib/navbar/navbar-nav/navbar-nav.component.mjs} +4 -4
- package/{esm2015/lib/navbar/navbar-text/navbar-text.component.js → esm2020/lib/navbar/navbar-text/navbar-text.component.mjs} +4 -4
- package/esm2020/lib/navbar/navbar-toggler/navbar-toggler.directive.mjs +63 -0
- package/esm2020/lib/navbar/navbar.component.mjs +84 -0
- package/{esm2015/lib/navbar/navbar.module.js → esm2020/lib/navbar/navbar.module.mjs} +5 -5
- package/{esm2015/lib/navbar/public_api.js → esm2020/lib/navbar/public_api.mjs} +0 -0
- package/{esm2015/lib/offcanvas/index.js → esm2020/lib/offcanvas/index.mjs} +0 -0
- package/esm2020/lib/offcanvas/offcanvas/offcanvas.component.mjs +244 -0
- package/esm2020/lib/offcanvas/offcanvas-body/offcanvas-body.component.mjs +19 -0
- package/esm2020/lib/offcanvas/offcanvas-header/offcanvas-header.component.mjs +19 -0
- package/{esm2015/lib/offcanvas/offcanvas-title/offcanvas-title.directive.js → esm2020/lib/offcanvas/offcanvas-title/offcanvas-title.directive.mjs} +4 -4
- package/{esm2015/lib/offcanvas/offcanvas-toggle/offcanvas-toggle.directive.js → esm2020/lib/offcanvas/offcanvas-toggle/offcanvas-toggle.directive.mjs} +4 -4
- package/{esm2015/lib/offcanvas/offcanvas.module.js → esm2020/lib/offcanvas/offcanvas.module.mjs} +5 -5
- package/{esm2015/lib/offcanvas/offcanvas.service.js → esm2020/lib/offcanvas/offcanvas.service.mjs} +4 -4
- package/{esm2015/lib/offcanvas/public_api.js → esm2020/lib/offcanvas/public_api.mjs} +0 -0
- package/{esm2015/lib/pagination/index.js → esm2020/lib/pagination/index.mjs} +0 -0
- package/esm2020/lib/pagination/page-item/page-item.component.mjs +12 -0
- package/esm2020/lib/pagination/page-item/page-item.directive.mjs +62 -0
- package/{esm2015/lib/pagination/page-link/page-link.directive.js → esm2020/lib/pagination/page-link/page-link.directive.mjs} +4 -4
- package/esm2020/lib/pagination/pagination/pagination.component.mjs +41 -0
- package/{esm2015/lib/pagination/pagination.module.js → esm2020/lib/pagination/pagination.module.mjs} +5 -5
- package/{esm2015/lib/pagination/public_api.js → esm2020/lib/pagination/public_api.mjs} +1 -1
- package/{esm2015/lib/popover/index.js → esm2020/lib/popover/index.mjs} +0 -0
- package/esm2020/lib/popover/popover/popover.component.mjs +92 -0
- package/esm2020/lib/popover/popover.directive.mjs +191 -0
- package/{esm2015/lib/popover/popover.module.js → esm2020/lib/popover/popover.module.mjs} +5 -5
- package/{esm2015/lib/popover/public_api.js → esm2020/lib/popover/public_api.mjs} +0 -0
- package/{esm2015/lib/progress/index.js → esm2020/lib/progress/index.mjs} +0 -0
- package/{esm2015/lib/progress/progress-bar.component.js → esm2020/lib/progress/progress-bar.component.mjs} +4 -4
- package/{esm2015/lib/progress/progress-bar.js → esm2020/lib/progress/progress-bar.mjs} +0 -0
- package/{esm2015/lib/progress/progress.component.js → esm2020/lib/progress/progress.component.mjs} +4 -4
- package/{esm2015/lib/progress/progress.module.js → esm2020/lib/progress/progress.module.mjs} +5 -5
- package/{esm2015/lib/progress/public_api.js → esm2020/lib/progress/public_api.mjs} +0 -0
- package/{esm2015/lib/services/class-toggle.service.js → esm2020/lib/services/class-toggle.service.mjs} +4 -4
- package/{esm2015/lib/services/index.js → esm2020/lib/services/index.mjs} +0 -0
- package/esm2020/lib/services/listeners.service.mjs +43 -0
- package/{esm2015/lib/services/public_api.js → esm2020/lib/services/public_api.mjs} +0 -0
- package/{esm2015/lib/shared/html-attr.directive.js → esm2020/lib/shared/html-attr.directive.mjs} +4 -4
- package/{esm2015/lib/shared/index.js → esm2020/lib/shared/index.mjs} +0 -0
- package/{esm2015/lib/shared/public_api.js → esm2020/lib/shared/public_api.mjs} +0 -0
- package/{esm2015/lib/shared/shared.module.js → esm2020/lib/shared/shared.module.mjs} +5 -5
- package/{esm2015/lib/shared/template-id.directive.js → esm2020/lib/shared/template-id.directive.mjs} +4 -4
- package/{esm2015/lib/sidebar/index.js → esm2020/lib/sidebar/index.mjs} +0 -0
- package/{esm2015/lib/sidebar/public_api.js → esm2020/lib/sidebar/public_api.mjs} +0 -0
- package/esm2020/lib/sidebar/sidebar/sidebar.component.mjs +223 -0
- package/{esm2015/lib/sidebar/sidebar-backdrop/sidebar-backdrop.service.js → esm2020/lib/sidebar/sidebar-backdrop/sidebar-backdrop.service.mjs} +4 -4
- package/esm2020/lib/sidebar/sidebar-brand/sidebar-brand.component.mjs +30 -0
- package/esm2020/lib/sidebar/sidebar-footer/sidebar-footer.component.mjs +20 -0
- package/esm2020/lib/sidebar/sidebar-header/sidebar-header.component.mjs +20 -0
- package/{esm2015/lib/sidebar/sidebar-nav/index.js → esm2020/lib/sidebar/sidebar-nav/index.mjs} +0 -0
- package/{esm2015/lib/sidebar/sidebar-nav/public_api.js → esm2020/lib/sidebar/sidebar-nav/public_api.mjs} +0 -0
- package/{esm2015/lib/sidebar/sidebar-nav/sidebar-nav-badge.pipe.js → esm2020/lib/sidebar/sidebar-nav/sidebar-nav-badge.pipe.mjs} +4 -4
- package/{esm2015/lib/sidebar/sidebar-nav/sidebar-nav-divider.component.js → esm2020/lib/sidebar/sidebar-nav/sidebar-nav-divider.component.mjs} +4 -4
- package/{esm2015/lib/sidebar/sidebar-nav/sidebar-nav-icon.pipe.js → esm2020/lib/sidebar/sidebar-nav/sidebar-nav-icon.pipe.mjs} +4 -4
- package/{esm2015/lib/sidebar/sidebar-nav/sidebar-nav-item-class.pipe.js → esm2020/lib/sidebar/sidebar-nav/sidebar-nav-item-class.pipe.mjs} +4 -4
- package/esm2020/lib/sidebar/sidebar-nav/sidebar-nav-label.component.mjs +43 -0
- package/esm2020/lib/sidebar/sidebar-nav/sidebar-nav-link.component.mjs +94 -0
- package/esm2020/lib/sidebar/sidebar-nav/sidebar-nav-link.pipe.mjs +23 -0
- package/{esm2015/lib/sidebar/sidebar-nav/sidebar-nav-title.component.js → esm2020/lib/sidebar/sidebar-nav/sidebar-nav-title.component.mjs} +4 -4
- package/esm2020/lib/sidebar/sidebar-nav/sidebar-nav.component.mjs +137 -0
- package/{esm2015/lib/sidebar/sidebar-nav/sidebar-nav.js → esm2020/lib/sidebar/sidebar-nav/sidebar-nav.mjs} +0 -0
- package/{esm2015/lib/sidebar/sidebar-nav/sidebar-nav.service.js → esm2020/lib/sidebar/sidebar-nav/sidebar-nav.service.mjs} +7 -7
- package/{esm2015/lib/sidebar/sidebar-toggle/sidebar-toggle.directive.js → esm2020/lib/sidebar/sidebar-toggle/sidebar-toggle.directive.mjs} +4 -4
- package/{esm2015/lib/sidebar/sidebar-toggler/sidebar-toggler.component.js → esm2020/lib/sidebar/sidebar-toggler/sidebar-toggler.component.mjs} +4 -4
- package/{esm2015/lib/sidebar/sidebar.module.js → esm2020/lib/sidebar/sidebar.module.mjs} +5 -5
- package/{esm2015/lib/sidebar/sidebar.service.js → esm2020/lib/sidebar/sidebar.service.mjs} +4 -4
- package/esm2020/lib/smart-pagination/index.mjs +2 -0
- package/esm2020/lib/smart-pagination/public_api.mjs +3 -0
- package/esm2020/lib/smart-pagination/smart-pagination.component.mjs +196 -0
- package/esm2020/lib/smart-pagination/smart-pagination.module.mjs +30 -0
- package/esm2020/lib/smart-pagination/smart-pagination.type.mjs +2 -0
- package/esm2020/lib/smart-table/index.mjs +2 -0
- package/esm2020/lib/smart-table/public_api.mjs +3 -0
- package/esm2020/lib/smart-table/smart-table/smart-table.component.mjs +449 -0
- package/esm2020/lib/smart-table/smart-table-filter/smart-table-filter.component.mjs +48 -0
- package/esm2020/lib/smart-table/smart-table-head/smart-table-head.component.mjs +138 -0
- package/esm2020/lib/smart-table/smart-table-items-per-page-selector/smart-table-items-per-page-selector.component.mjs +46 -0
- package/esm2020/lib/smart-table/smart-table.module.mjs +72 -0
- package/esm2020/lib/smart-table/smart-table.type.mjs +2 -0
- package/{esm2015/lib/spinner/index.js → esm2020/lib/spinner/index.mjs} +0 -0
- package/{esm2015/lib/spinner/public_api.js → esm2020/lib/spinner/public_api.mjs} +0 -0
- package/esm2020/lib/spinner/spinner.component.mjs +49 -0
- package/{esm2015/lib/spinner/spinner.module.js → esm2020/lib/spinner/spinner.module.mjs} +5 -5
- package/{esm2015/lib/table/index.js → esm2020/lib/table/index.mjs} +0 -0
- package/{esm2015/lib/table/public_api.js → esm2020/lib/table/public_api.mjs} +0 -0
- package/{esm2015/lib/table/table-active.directive.js → esm2020/lib/table/table-active.directive.mjs} +4 -4
- package/{esm2015/lib/table/table-color.directive.js → esm2020/lib/table/table-color.directive.mjs} +4 -4
- package/{esm2015/lib/table/table.directive.js → esm2020/lib/table/table.directive.mjs} +5 -5
- package/{esm2015/lib/table/table.module.js → esm2020/lib/table/table.module.mjs} +5 -5
- package/esm2020/lib/table/table.type.mjs +2 -0
- package/{esm2015/lib/tabs/index.js → esm2020/lib/tabs/index.mjs} +0 -0
- package/{esm2015/lib/tabs/public_api.js → esm2020/lib/tabs/public_api.mjs} +0 -0
- package/esm2020/lib/tabs/tab-content/tab-content.component.mjs +92 -0
- package/esm2020/lib/tabs/tab-content-ref.directive.mjs +128 -0
- package/esm2020/lib/tabs/tab-pane/tab-pane.component.mjs +57 -0
- package/{esm2015/lib/tabs/tab.service.js → esm2020/lib/tabs/tab.service.mjs} +4 -4
- package/{esm2015/lib/tabs/tabs.module.js → esm2020/lib/tabs/tabs.module.mjs} +5 -5
- package/{esm2015/lib/toast/index.js → esm2020/lib/toast/index.mjs} +0 -0
- package/{esm2015/lib/toast/public_api.js → esm2020/lib/toast/public_api.mjs} +0 -0
- package/{esm2015/lib/toast/toast/toast.component.js → esm2020/lib/toast/toast/toast.component.mjs} +6 -12
- package/esm2020/lib/toast/toast-body/toast-body.component.mjs +21 -0
- package/{esm2015/lib/toast/toast-close.directive.js → esm2020/lib/toast/toast-close.directive.mjs} +4 -4
- package/esm2020/lib/toast/toast-header/toast-header.component.mjs +31 -0
- package/{esm2015/lib/toast/toast.module.js → esm2020/lib/toast/toast.module.mjs} +5 -5
- package/{esm2015/lib/toast/toaster/toaster-host.directive.js → esm2020/lib/toast/toaster/toaster-host.directive.mjs} +4 -4
- package/esm2020/lib/toast/toaster/toaster.component.mjs +140 -0
- package/esm2020/lib/toast/toaster/toaster.service.mjs +21 -0
- package/{esm2015/lib/tooltip/index.js → esm2020/lib/tooltip/index.mjs} +0 -0
- package/{esm2015/lib/tooltip/public_api.js → esm2020/lib/tooltip/public_api.mjs} +0 -0
- package/esm2020/lib/tooltip/tooltip/tooltip.component.mjs +88 -0
- package/esm2020/lib/tooltip/tooltip.directive.mjs +185 -0
- package/{esm2015/lib/tooltip/tooltip.module.js → esm2020/lib/tooltip/tooltip.module.mjs} +5 -5
- package/{esm2015/lib/utilities/align.directive.js → esm2020/lib/utilities/align.directive.mjs} +4 -4
- package/{esm2015/lib/utilities/bg-color.directive.js → esm2020/lib/utilities/bg-color.directive.mjs} +4 -4
- package/esm2020/lib/utilities/border.directive.mjs +66 -0
- package/{esm2015/lib/utilities/border.type.js → esm2020/lib/utilities/border.type.mjs} +0 -0
- package/{esm2015/lib/utilities/index.js → esm2020/lib/utilities/index.mjs} +0 -0
- package/{esm2015/lib/utilities/public_api.js → esm2020/lib/utilities/public_api.mjs} +0 -0
- package/esm2020/lib/utilities/rounded.directive.mjs +65 -0
- package/{esm2015/lib/utilities/rounded.type.js → esm2020/lib/utilities/rounded.type.mjs} +0 -0
- package/{esm2015/lib/utilities/text-color.directive.js → esm2020/lib/utilities/text-color.directive.mjs} +4 -4
- package/{esm2015/lib/utilities/utilities.module.js → esm2020/lib/utilities/utilities.module.mjs} +5 -5
- package/{esm2015/lib/widget/index.js → esm2020/lib/widget/index.mjs} +0 -0
- package/{esm2015/lib/widget/public_api.js → esm2020/lib/widget/public_api.mjs} +0 -0
- package/esm2020/lib/widget/widget-stat-a/widget-stat-a.component.mjs +49 -0
- package/esm2020/lib/widget/widget-stat-b/widget-stat-b.component.mjs +52 -0
- package/esm2020/lib/widget/widget-stat-c/widget-stat-c.component.mjs +80 -0
- package/esm2020/lib/widget/widget-stat-d/widget-stat-d.component.mjs +39 -0
- package/esm2020/lib/widget/widget-stat-e/widget-stat-e.component.mjs +30 -0
- package/esm2020/lib/widget/widget-stat-f/widget-stat-f.component.mjs +96 -0
- package/{esm2015/lib/widget/widget.module.js → esm2020/lib/widget/widget.module.mjs} +5 -5
- package/esm2020/public-api.mjs +45 -0
- package/fesm2015/{coreui-angular-pro.js → coreui-angular-pro.mjs} +4645 -2951
- package/fesm2015/coreui-angular-pro.mjs.map +1 -0
- package/fesm2020/coreui-angular-pro.mjs +11249 -0
- package/fesm2020/coreui-angular-pro.mjs.map +1 -0
- package/lib/accordion/accordion-button/accordion-button.directive.d.ts +7 -1
- package/lib/accordion/accordion-item/accordion-item.component.d.ts +4 -2
- package/lib/alert/alert.component.d.ts +7 -1
- package/lib/backdrop/backdrop.service.d.ts +1 -1
- package/lib/carousel/carousel/carousel.component.d.ts +23 -5
- package/lib/carousel/carousel-item/carousel-item.component.d.ts +8 -2
- package/lib/carousel/carousel.service.d.ts +1 -0
- package/lib/carousel/intersection.service.d.ts +15 -0
- package/lib/collapse/collapse.directive.d.ts +3 -2
- package/lib/element-cover/element-cover.component.d.ts +27 -0
- package/lib/element-cover/element-cover.module.d.ts +9 -0
- package/lib/{chart → element-cover}/index.d.ts +0 -0
- package/lib/element-cover/public_api.d.ts +2 -0
- package/lib/modal/modal/modal.component.d.ts +4 -1
- package/lib/multi-select/index.d.ts +1 -0
- package/lib/multi-select/multi-select/multi-select.component.d.ts +110 -0
- package/lib/multi-select/multi-select-native-select/multi-select-native-select.component.d.ts +14 -0
- package/lib/multi-select/multi-select-optgroup/multi-select-optgroup-label.component.d.ts +9 -0
- package/lib/multi-select/multi-select-optgroup/multi-select-optgroup.component.d.ts +20 -0
- package/lib/multi-select/multi-select-option/multi-select-option.component.d.ts +49 -0
- package/lib/multi-select/multi-select-tag/multi-select-tag.component.d.ts +21 -0
- package/lib/multi-select/multi-select.module.d.ts +16 -0
- package/lib/multi-select/multi-select.service.d.ts +12 -0
- package/lib/multi-select/multi-select.type.d.ts +34 -0
- package/lib/multi-select/public_api.d.ts +6 -0
- package/lib/nav/nav-link.directive.d.ts +1 -0
- package/lib/smart-pagination/index.d.ts +1 -0
- package/lib/smart-pagination/public_api.d.ts +2 -0
- package/lib/smart-pagination/smart-pagination.component.d.ts +109 -0
- package/lib/smart-pagination/smart-pagination.module.d.ts +9 -0
- package/lib/smart-pagination/smart-pagination.type.d.ts +79 -0
- package/lib/smart-table/index.d.ts +1 -0
- package/lib/smart-table/public_api.d.ts +2 -0
- package/lib/smart-table/smart-table/smart-table.component.d.ts +124 -0
- package/lib/smart-table/smart-table-filter/smart-table-filter.component.d.ts +15 -0
- package/lib/smart-table/smart-table-head/smart-table-head.component.d.ts +36 -0
- package/lib/smart-table/smart-table-items-per-page-selector/smart-table-items-per-page-selector.component.d.ts +14 -0
- package/lib/smart-table/smart-table.module.d.ts +20 -0
- package/lib/smart-table/smart-table.type.d.ts +272 -0
- package/lib/table/table.directive.d.ts +3 -2
- package/lib/table/table.type.d.ts +76 -0
- package/package.json +29 -16
- package/public-api.d.ts +5 -2
- package/bundles/coreui-angular-pro.umd.js +0 -11697
- package/bundles/coreui-angular-pro.umd.js.map +0 -1
- package/esm2015/lib/accordion/accordion/accordion.component.js +0 -46
- package/esm2015/lib/accordion/accordion-button/accordion-button.directive.js +0 -30
- package/esm2015/lib/accordion/accordion-item/accordion-item.component.js +0 -60
- package/esm2015/lib/alert/alert.component.js +0 -176
- package/esm2015/lib/avatar/avatar.component.js +0 -53
- package/esm2015/lib/backdrop/backdrop.service.js +0 -52
- package/esm2015/lib/badge/badge.component.js +0 -47
- package/esm2015/lib/breadcrumb/breadcrumb/breadcrumb.component.js +0 -47
- package/esm2015/lib/breadcrumb/breadcrumb-item/breadcrumb-item.component.js +0 -41
- package/esm2015/lib/breadcrumb/breadcrumb-router/breadcrumb-router.component.js +0 -45
- package/esm2015/lib/button/button-close.directive.js +0 -43
- package/esm2015/lib/callout/callout.component.js +0 -27
- package/esm2015/lib/card/card-img-overlay/card-img-overlay.component.js +0 -23
- package/esm2015/lib/carousel/carousel/carousel.component.js +0 -140
- package/esm2015/lib/carousel/carousel-caption/carousel-caption.component.js +0 -21
- package/esm2015/lib/carousel/carousel-control/carousel-control.component.js +0 -88
- package/esm2015/lib/carousel/carousel-indicators/carousel-indicators.component.js +0 -51
- package/esm2015/lib/carousel/carousel-inner/carousel-inner.component.js +0 -53
- package/esm2015/lib/carousel/carousel-item/carousel-item.component.js +0 -65
- package/esm2015/lib/carousel/carousel-state.js +0 -72
- package/esm2015/lib/chart/chart.module.js +0 -26
- package/esm2015/lib/chart/index.js +0 -2
- package/esm2015/lib/chart/no-zone-basechart.directive.js +0 -26
- package/esm2015/lib/chart/public_api.js +0 -3
- package/esm2015/lib/collapse/collapse.directive.js +0 -125
- package/esm2015/lib/dropdown/dropdown/dropdown.component.js +0 -304
- package/esm2015/lib/dropdown/dropdown-item/dropdown-item.directive.js +0 -68
- package/esm2015/lib/form/form-check/form-check-input.directive.js +0 -60
- package/esm2015/lib/grid/col.component.js +0 -16
- package/esm2015/lib/grid/col.directive.js +0 -151
- package/esm2015/lib/grid/container.component.js +0 -47
- package/esm2015/lib/grid/gutter.directive.js +0 -56
- package/esm2015/lib/grid/row.component.js +0 -16
- package/esm2015/lib/header/header/header.component.js +0 -50
- package/esm2015/lib/header/header-nav/header-nav.component.js +0 -32
- package/esm2015/lib/loading-button/loading-button.component.js +0 -90
- package/esm2015/lib/modal/modal/modal.component.js +0 -309
- package/esm2015/lib/modal/modal-body/modal-body.component.js +0 -23
- package/esm2015/lib/modal/modal-content/modal-content.component.js +0 -37
- package/esm2015/lib/modal/modal-dialog/modal-dialog.component.js +0 -36
- package/esm2015/lib/nav/nav-item.component.js +0 -23
- package/esm2015/lib/nav/nav-link.directive.js +0 -81
- package/esm2015/lib/nav/nav.component.js +0 -31
- package/esm2015/lib/navbar/navbar-toggler/navbar-toggler.directive.js +0 -64
- package/esm2015/lib/navbar/navbar.component.js +0 -88
- package/esm2015/lib/offcanvas/offcanvas/offcanvas.component.js +0 -251
- package/esm2015/lib/offcanvas/offcanvas-body/offcanvas-body.component.js +0 -23
- package/esm2015/lib/offcanvas/offcanvas-header/offcanvas-header.component.js +0 -23
- package/esm2015/lib/pagination/page-item/page-item.component.js +0 -16
- package/esm2015/lib/pagination/page-item/page-item.directive.js +0 -62
- package/esm2015/lib/pagination/pagination/pagination.component.js +0 -45
- package/esm2015/lib/popover/popover/popover.component.js +0 -96
- package/esm2015/lib/popover/popover.directive.js +0 -193
- package/esm2015/lib/services/listeners.service.js +0 -44
- package/esm2015/lib/sidebar/sidebar/sidebar.component.js +0 -220
- package/esm2015/lib/sidebar/sidebar-brand/sidebar-brand.component.js +0 -33
- package/esm2015/lib/sidebar/sidebar-footer/sidebar-footer.component.js +0 -24
- package/esm2015/lib/sidebar/sidebar-header/sidebar-header.component.js +0 -24
- package/esm2015/lib/sidebar/sidebar-nav/sidebar-nav-label.component.js +0 -46
- package/esm2015/lib/sidebar/sidebar-nav/sidebar-nav-link.component.js +0 -99
- package/esm2015/lib/sidebar/sidebar-nav/sidebar-nav-link.pipe.js +0 -24
- package/esm2015/lib/sidebar/sidebar-nav/sidebar-nav.component.js +0 -147
- package/esm2015/lib/spinner/spinner.component.js +0 -52
- package/esm2015/lib/tabs/tab-content/tab-content.component.js +0 -101
- package/esm2015/lib/tabs/tab-content-ref.directive.js +0 -130
- package/esm2015/lib/tabs/tab-pane/tab-pane.component.js +0 -62
- package/esm2015/lib/toast/toast-body/toast-body.component.js +0 -26
- package/esm2015/lib/toast/toast-header/toast-header.component.js +0 -36
- package/esm2015/lib/toast/toaster/toaster.component.js +0 -149
- package/esm2015/lib/toast/toaster/toaster.service.js +0 -21
- package/esm2015/lib/tooltip/tooltip/tooltip.component.js +0 -92
- package/esm2015/lib/tooltip/tooltip.directive.js +0 -188
- package/esm2015/lib/utilities/border.directive.js +0 -66
- package/esm2015/lib/utilities/rounded.directive.js +0 -56
- package/esm2015/lib/widget/widget-stat-a/widget-stat-a.component.js +0 -54
- package/esm2015/lib/widget/widget-stat-b/widget-stat-b.component.js +0 -57
- package/esm2015/lib/widget/widget-stat-c/widget-stat-c.component.js +0 -85
- package/esm2015/lib/widget/widget-stat-d/widget-stat-d.component.js +0 -44
- package/esm2015/lib/widget/widget-stat-e/widget-stat-e.component.js +0 -35
- package/esm2015/lib/widget/widget-stat-f/widget-stat-f.component.js +0 -101
- package/esm2015/public-api.js +0 -42
- package/fesm2015/coreui-angular-pro.js.map +0 -1
- package/lib/chart/chart.module.d.ts +0 -8
- package/lib/chart/no-zone-basechart.directive.d.ts +0 -9
- package/lib/chart/public_api.d.ts +0 -2
|
@@ -10,12 +10,12 @@ export class ModalService {
|
|
|
10
10
|
this.modalState.next(action);
|
|
11
11
|
}
|
|
12
12
|
}
|
|
13
|
-
ModalService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
14
|
-
ModalService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
15
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
13
|
+
ModalService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: ModalService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
14
|
+
ModalService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: ModalService, providedIn: 'root' });
|
|
15
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: ModalService, decorators: [{
|
|
16
16
|
type: Injectable,
|
|
17
17
|
args: [{
|
|
18
18
|
providedIn: 'root'
|
|
19
19
|
}]
|
|
20
20
|
}], ctorParameters: function () { return []; } });
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmV1aS1hbmd1bGFyL3NyYy9saWIvbW9kYWwvbW9kYWwuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBWS9CLE1BQU0sT0FBTyxZQUFZO0lBS3ZCO1FBSFEsZUFBVSxHQUFHLElBQUksT0FBTyxFQUFPLENBQUM7UUFDeEMsZ0JBQVcsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBRTlCLENBQUM7SUFFaEIsTUFBTSxDQUFDLE1BQW9CO1FBQ3pCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQy9CLENBQUM7O3lHQVRVLFlBQVk7NkdBQVosWUFBWSxjQUZYLE1BQU07MkZBRVAsWUFBWTtrQkFIeEIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgTW9kYWxDb21wb25lbnQgfSBmcm9tICcuL21vZGFsL21vZGFsLmNvbXBvbmVudCc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElNb2RhbEFjdGlvbiB7XHJcbiAgc2hvdz86IGJvb2xlYW4gfCAndG9nZ2xlJztcclxuICBtb2RhbD86IE1vZGFsQ29tcG9uZW50O1xyXG4gIGlkPzogc3RyaW5nO1xyXG59XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNb2RhbFNlcnZpY2Uge1xyXG5cclxuICBwcml2YXRlIG1vZGFsU3RhdGUgPSBuZXcgU3ViamVjdDxhbnk+KCk7XHJcbiAgbW9kYWxTdGF0ZSQgPSB0aGlzLm1vZGFsU3RhdGUuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge31cclxuXHJcbiAgdG9nZ2xlKGFjdGlvbjogSU1vZGFsQWN0aW9uKTogdm9pZCB7XHJcbiAgICB0aGlzLm1vZGFsU3RhdGUubmV4dChhY3Rpb24pO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
File without changes
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './public_api';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JldWktYW5ndWxhci9zcmMvbGliL211bHRpLXNlbGVjdC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vcHVibGljX2FwaSc7XHJcbiJdfQ==
|
|
@@ -0,0 +1,468 @@
|
|
|
1
|
+
import { Component, ContentChildren, EventEmitter, forwardRef, HostBinding, HostListener, Input, Output, ViewChild } from '@angular/core';
|
|
2
|
+
import { FocusKeyManager } from '@angular/cdk/a11y';
|
|
3
|
+
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
4
|
+
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
5
|
+
import { MultiSelectService } from '../multi-select.service';
|
|
6
|
+
import { MultiSelectOptionComponent } from '../multi-select-option/multi-select-option.component';
|
|
7
|
+
import { MultiSelectNativeSelectComponent } from '../multi-select-native-select/multi-select-native-select.component';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
import * as i1 from "@angular/cdk/a11y";
|
|
10
|
+
import * as i2 from "../multi-select.service";
|
|
11
|
+
import * as i3 from "../multi-select-tag/multi-select-tag.component";
|
|
12
|
+
import * as i4 from "@angular/common";
|
|
13
|
+
import * as i5 from "@angular/forms";
|
|
14
|
+
import * as i6 from "../../button/button-close.directive";
|
|
15
|
+
export class MultiSelectComponent {
|
|
16
|
+
constructor(elementRef, renderer, ngZone, changeDetectorRef, viewContainerRef, focusMonitor, multiSelectService
|
|
17
|
+
// private listenersService: ListenersService
|
|
18
|
+
) {
|
|
19
|
+
this.elementRef = elementRef;
|
|
20
|
+
this.renderer = renderer;
|
|
21
|
+
this.ngZone = ngZone;
|
|
22
|
+
this.changeDetectorRef = changeDetectorRef;
|
|
23
|
+
this.viewContainerRef = viewContainerRef;
|
|
24
|
+
this.focusMonitor = focusMonitor;
|
|
25
|
+
this.multiSelectService = multiSelectService;
|
|
26
|
+
this.onChange = (value) => { };
|
|
27
|
+
this.cleaner = true;
|
|
28
|
+
this._disabled = false;
|
|
29
|
+
this._multiple = false;
|
|
30
|
+
this.nativeName = '';
|
|
31
|
+
this.nativeId = '';
|
|
32
|
+
// @Input() options = [];
|
|
33
|
+
this.optionsMaxHeight = 'auto';
|
|
34
|
+
this.optionsStyle = 'checkbox';
|
|
35
|
+
this.placeholder = 'Select...';
|
|
36
|
+
this.search = true;
|
|
37
|
+
this.searchNoResultsLabel = 'no items';
|
|
38
|
+
this.selectAll = true;
|
|
39
|
+
this.selectAllLabel = 'Select all options';
|
|
40
|
+
this.selectionType = 'tags';
|
|
41
|
+
this.selectionTypeCounterText = 'item(s) selected';
|
|
42
|
+
this.selectionTypeCounterTextPluralMap = { '=1': 'item selected', 'other': 'items selected' };
|
|
43
|
+
this._value = [''];
|
|
44
|
+
this.valueChange = new EventEmitter();
|
|
45
|
+
this._visible = false;
|
|
46
|
+
this.visibleChange = new EventEmitter();
|
|
47
|
+
this.isDropdownVisible = false;
|
|
48
|
+
this._selectedOptions = [];
|
|
49
|
+
this._tabIndex = '-1';
|
|
50
|
+
this.visibleOptions = 0;
|
|
51
|
+
this._searchValue = '';
|
|
52
|
+
this._subtreeFocused = this.focusOrigin(null);
|
|
53
|
+
}
|
|
54
|
+
writeValue(value) {
|
|
55
|
+
if (value !== null) {
|
|
56
|
+
this.value = value;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
registerOnChange(fn) {
|
|
60
|
+
this.onChange = fn;
|
|
61
|
+
}
|
|
62
|
+
registerOnTouched(fn) {
|
|
63
|
+
}
|
|
64
|
+
setDisabledState(isDisabled) {
|
|
65
|
+
this.disabled = isDisabled;
|
|
66
|
+
}
|
|
67
|
+
set disabled(value) {
|
|
68
|
+
this._disabled = coerceBooleanProperty(value);
|
|
69
|
+
}
|
|
70
|
+
get disabled() {
|
|
71
|
+
return this._disabled;
|
|
72
|
+
}
|
|
73
|
+
set multiple(value) {
|
|
74
|
+
this._multiple = coerceBooleanProperty(value);
|
|
75
|
+
}
|
|
76
|
+
get multiple() {
|
|
77
|
+
return this._multiple;
|
|
78
|
+
}
|
|
79
|
+
set value(value) {
|
|
80
|
+
const newValue = Array.isArray(value) ? [...value] : [value ?? ''];
|
|
81
|
+
if (this._value.toString() !== newValue.toString()) {
|
|
82
|
+
this._value = newValue;
|
|
83
|
+
this.onChange(newValue);
|
|
84
|
+
this.updateNativeSelect();
|
|
85
|
+
this.valueChange.emit(this.value);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
get value() {
|
|
89
|
+
return this.multiple ? [...this._value] : this._value[0]?.toString() ?? '';
|
|
90
|
+
}
|
|
91
|
+
set visible(value) {
|
|
92
|
+
const newValue = coerceBooleanProperty(value);
|
|
93
|
+
if (newValue !== this._visible) {
|
|
94
|
+
this._visible = newValue;
|
|
95
|
+
this.multiSelectService.toggleVisible(newValue);
|
|
96
|
+
if (newValue) {
|
|
97
|
+
this.listKeyManager.setFirstItemActive();
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
get visible() {
|
|
102
|
+
return this._visible;
|
|
103
|
+
}
|
|
104
|
+
set selectedOptions(value) {
|
|
105
|
+
this._selectedOptions = value;
|
|
106
|
+
this.value = this.selectedOptions.map(item => item.value);
|
|
107
|
+
this.inputElementSize();
|
|
108
|
+
}
|
|
109
|
+
get selectedOptions() {
|
|
110
|
+
return this._selectedOptions;
|
|
111
|
+
}
|
|
112
|
+
get selectedOptionsText() {
|
|
113
|
+
return this.selectedOptions.map((option) => option.label).join(', ');
|
|
114
|
+
}
|
|
115
|
+
get counterText() {
|
|
116
|
+
return `${this.selectedOptions.length} ${this.selectionTypeCounterText}`;
|
|
117
|
+
}
|
|
118
|
+
get counterTextType() {
|
|
119
|
+
return typeof this.selectionTypeCounterTextPluralMap ?? typeof this.selectionTypeCounterText;
|
|
120
|
+
}
|
|
121
|
+
;
|
|
122
|
+
get hostClasses() {
|
|
123
|
+
return {
|
|
124
|
+
'form-multi-select': true,
|
|
125
|
+
'form-multi-select-selection-tags': this.selectionType === 'tags',
|
|
126
|
+
show: this.visible,
|
|
127
|
+
disabled: this.disabled
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
get tabIndex() {
|
|
131
|
+
return this._tabIndex;
|
|
132
|
+
}
|
|
133
|
+
set tabIndex(value) {
|
|
134
|
+
setTimeout(() => {
|
|
135
|
+
this._tabIndex = this.disabled || this.search ? '-1' : value === null ? null : '0';
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
onKeyUp($event) {
|
|
139
|
+
if (this.disabled)
|
|
140
|
+
return;
|
|
141
|
+
if ($event.key === 'Escape') {
|
|
142
|
+
this.visible = false;
|
|
143
|
+
this.searchValue = '';
|
|
144
|
+
this.setFocus();
|
|
145
|
+
return;
|
|
146
|
+
}
|
|
147
|
+
if (['Enter', ' ', 'ArrowDown'].includes($event.key) && [this.inputElement?.nativeElement ?? this.elementRef.nativeElement].includes($event.target)) {
|
|
148
|
+
this.visible = true;
|
|
149
|
+
if (!this.search) {
|
|
150
|
+
this.setFocus();
|
|
151
|
+
}
|
|
152
|
+
return;
|
|
153
|
+
}
|
|
154
|
+
if ($event.key === 'Tab' && $event.target === this.elementRef.nativeElement) {
|
|
155
|
+
this.visible = true;
|
|
156
|
+
if (!this.search) {
|
|
157
|
+
this.setFocus();
|
|
158
|
+
}
|
|
159
|
+
return;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
onKeyDown($event) {
|
|
163
|
+
if (this.disabled)
|
|
164
|
+
return;
|
|
165
|
+
this.listKeyManager.onKeydown($event);
|
|
166
|
+
}
|
|
167
|
+
onClick($event) {
|
|
168
|
+
if (this.disabled)
|
|
169
|
+
return;
|
|
170
|
+
if (!this.visible) {
|
|
171
|
+
this.visible = true;
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
set searchValue(value) {
|
|
175
|
+
this._searchValue = value.trim();
|
|
176
|
+
this.visible = !!this.searchValue.length || this.visible;
|
|
177
|
+
this.filterOptions(this.searchValue);
|
|
178
|
+
this.inputElementSize();
|
|
179
|
+
}
|
|
180
|
+
get searchValue() {
|
|
181
|
+
return this._searchValue;
|
|
182
|
+
}
|
|
183
|
+
get subtreeFocused() {
|
|
184
|
+
return this._subtreeFocused;
|
|
185
|
+
}
|
|
186
|
+
set subtreeFocused(value) {
|
|
187
|
+
this._subtreeFocused = this.disabled ? false : value;
|
|
188
|
+
this.visible = value === false ? false : this.visible;
|
|
189
|
+
}
|
|
190
|
+
focusOrigin(origin) {
|
|
191
|
+
const focused = !!origin;
|
|
192
|
+
this.searchValue = focused ? this.searchValue : '';
|
|
193
|
+
return focused;
|
|
194
|
+
}
|
|
195
|
+
ngOnInit() {
|
|
196
|
+
this.tabIndex = '0';
|
|
197
|
+
}
|
|
198
|
+
ngOnDestroy() {
|
|
199
|
+
this.multiselectSubscribe(false);
|
|
200
|
+
// this.clearListeners();
|
|
201
|
+
this.focusMonitor.stopMonitoring(this.elementRef);
|
|
202
|
+
this.focusMonitorSubscription?.unsubscribe();
|
|
203
|
+
}
|
|
204
|
+
ngAfterContentInit() {
|
|
205
|
+
this.visibleOptions = this.multiSelectOptions.length;
|
|
206
|
+
this.multiSelectOptions.forEach((option, index) => {
|
|
207
|
+
option.optionsStyle = this.optionsStyle;
|
|
208
|
+
option.selected = option.value !== undefined ? this.value.includes(option.value) || option.selected : option.selected;
|
|
209
|
+
});
|
|
210
|
+
this.selectedOptionsUpdate();
|
|
211
|
+
this.inputElementSize();
|
|
212
|
+
this.listKeyManager = new FocusKeyManager(this.multiSelectOptions).withHomeAndEnd().withTypeAhead();
|
|
213
|
+
this.listKeyManager.skipPredicate(item => (!item.visible || item.disabled));
|
|
214
|
+
this.listKeyManager.setFirstItemActive();
|
|
215
|
+
this.multiselectSubscribe();
|
|
216
|
+
this.createNativeSelect();
|
|
217
|
+
}
|
|
218
|
+
ngAfterViewInit() {
|
|
219
|
+
// this.setListeners();
|
|
220
|
+
this.focusMonitorSubscription = this.focusMonitor.monitor(this.elementRef, true).subscribe((origin) => this.ngZone.run(() => {
|
|
221
|
+
if (!this.disabled) {
|
|
222
|
+
this.subtreeFocused = this.focusOrigin(origin);
|
|
223
|
+
this.changeDetectorRef.markForCheck();
|
|
224
|
+
}
|
|
225
|
+
}));
|
|
226
|
+
this.inputElementSize();
|
|
227
|
+
}
|
|
228
|
+
multiselectSubscribe(subscribe = true) {
|
|
229
|
+
if (subscribe) {
|
|
230
|
+
this.multiselectVisibleSubscription = this.multiSelectService.multiSelectVisible$.subscribe((visible) => {
|
|
231
|
+
this.isDropdownVisible = visible;
|
|
232
|
+
this.visibleChange.emit(visible);
|
|
233
|
+
});
|
|
234
|
+
this.multiselectStateSubscription = this.multiSelectService.multiSelectState$.subscribe((option) => {
|
|
235
|
+
if (option.selected === true && !this.multiple) {
|
|
236
|
+
const selectedOptions = this.multiSelectOptions.toArray().filter((item) => item.selected);
|
|
237
|
+
selectedOptions.reverse().forEach((item) => {
|
|
238
|
+
if (item !== option) {
|
|
239
|
+
item.selected = false;
|
|
240
|
+
}
|
|
241
|
+
});
|
|
242
|
+
}
|
|
243
|
+
this.selectedOptionsUpdate();
|
|
244
|
+
});
|
|
245
|
+
}
|
|
246
|
+
else {
|
|
247
|
+
this.multiselectVisibleSubscription?.unsubscribe();
|
|
248
|
+
this.multiSelectOptionsSubscription?.unsubscribe();
|
|
249
|
+
this.multiselectStateSubscription?.unsubscribe();
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
clearAllOptions($event) {
|
|
253
|
+
this.selectedOptions.forEach((option) => {
|
|
254
|
+
if (!option._disabled)
|
|
255
|
+
option.selected = false;
|
|
256
|
+
});
|
|
257
|
+
this.setFocus();
|
|
258
|
+
}
|
|
259
|
+
selectAllOptions() {
|
|
260
|
+
this.multiSelectOptions.forEach((option, index) => {
|
|
261
|
+
if (!option.disabled)
|
|
262
|
+
option.selected = true;
|
|
263
|
+
});
|
|
264
|
+
}
|
|
265
|
+
// private setListeners() {
|
|
266
|
+
// if (this.search) {
|
|
267
|
+
// const configForInput: IListenersConfig = {
|
|
268
|
+
// hostElement: this.inputElement ?? this.elementRef,
|
|
269
|
+
// trigger: ['focus', 'click'],
|
|
270
|
+
// callbackOn: () => {
|
|
271
|
+
// console.log('focus input');
|
|
272
|
+
// this.tabIndex = null;
|
|
273
|
+
// // this.visible = true;
|
|
274
|
+
// }
|
|
275
|
+
// };
|
|
276
|
+
// this.listenersService.setListeners(configForInput);
|
|
277
|
+
// }
|
|
278
|
+
//
|
|
279
|
+
// const configForHost: IListenersConfig = {
|
|
280
|
+
// hostElement: this.elementRef,
|
|
281
|
+
// trigger: ['focus'],
|
|
282
|
+
// callbackOn: () => {
|
|
283
|
+
// console.log('focus');
|
|
284
|
+
// if (this.inputElement) {
|
|
285
|
+
// this.setFocus()
|
|
286
|
+
// }
|
|
287
|
+
// // this.inputElement?.nativeElement.focus();
|
|
288
|
+
// },
|
|
289
|
+
// callbackOff: () => {
|
|
290
|
+
// console.log('blur');
|
|
291
|
+
// }
|
|
292
|
+
// };
|
|
293
|
+
// this.listenersService.setListeners(configForHost);
|
|
294
|
+
// }
|
|
295
|
+
// private clearListeners() {
|
|
296
|
+
// this.listenersService.clearListeners();
|
|
297
|
+
// }
|
|
298
|
+
handleTagRemove($event) {
|
|
299
|
+
this.setFocus();
|
|
300
|
+
}
|
|
301
|
+
setFocus() {
|
|
302
|
+
if (this.disabled)
|
|
303
|
+
return;
|
|
304
|
+
this.focusMonitor.focusVia(this.inputElement ?? this.elementRef, 'program');
|
|
305
|
+
}
|
|
306
|
+
// setFirstSelectedOptionActive() {
|
|
307
|
+
// const firstSelectedOption = this.selectedOptions.find((item) => item.selected) ??
|
|
308
|
+
// this.multiSelectOptions.find((item, index) => index === 0);
|
|
309
|
+
// if (firstSelectedOption && this.isDropdownVisible) {
|
|
310
|
+
// // this.listKeyManager.setFocusOrigin('keyboard');
|
|
311
|
+
// this.listKeyManager.setActiveItem(firstSelectedOption);
|
|
312
|
+
// this.changeDetectorRef.markForCheck();
|
|
313
|
+
// } else {
|
|
314
|
+
// // this.listKeyManager.setFocusOrigin('keyboard');
|
|
315
|
+
// this.listKeyManager.setFirstItemActive();
|
|
316
|
+
// this.changeDetectorRef.markForCheck();
|
|
317
|
+
// }
|
|
318
|
+
// }
|
|
319
|
+
filterOptions(value) {
|
|
320
|
+
const searchString = value.toLowerCase() ?? '';
|
|
321
|
+
this.multiSelectOptions?.forEach((item, index) => {
|
|
322
|
+
if (!!searchString) {
|
|
323
|
+
item.visible = item.label?.toLowerCase().includes(searchString) ?? true;
|
|
324
|
+
}
|
|
325
|
+
else {
|
|
326
|
+
item.visible = true;
|
|
327
|
+
}
|
|
328
|
+
});
|
|
329
|
+
this.visibleOptions = this.multiSelectOptions?.filter((item) => item.visible).length;
|
|
330
|
+
}
|
|
331
|
+
createNativeSelect() {
|
|
332
|
+
this.viewContainerRef.clear();
|
|
333
|
+
this.nativeSelectRef = this.viewContainerRef.createComponent(MultiSelectNativeSelectComponent);
|
|
334
|
+
this.updateNativeSelect();
|
|
335
|
+
}
|
|
336
|
+
updateNativeSelect() {
|
|
337
|
+
if (!this.nativeSelectRef)
|
|
338
|
+
return;
|
|
339
|
+
const options = this.selectedOptions.map(item => {
|
|
340
|
+
const { selected, value, label } = item;
|
|
341
|
+
return { selected, value, label };
|
|
342
|
+
});
|
|
343
|
+
this.nativeSelectRef.instance.multiple = this.multiple;
|
|
344
|
+
this.nativeSelectRef.instance.name = this.nativeName;
|
|
345
|
+
this.nativeSelectRef.instance.form = this.nativeId;
|
|
346
|
+
this.nativeSelectRef.instance.options = [...options];
|
|
347
|
+
this.nativeSelectRef.instance.disabled = this.disabled;
|
|
348
|
+
this.nativeSelectRef.instance.changeDetectorRef.detectChanges();
|
|
349
|
+
}
|
|
350
|
+
inputElementSize() {
|
|
351
|
+
if (this.inputElement) {
|
|
352
|
+
if (this.selectedOptions.length > 0 || this.selectionType === 'counter') {
|
|
353
|
+
this.renderer.setAttribute(this.inputElement.nativeElement, 'size', (this.searchValue.length + 2).toString());
|
|
354
|
+
}
|
|
355
|
+
else {
|
|
356
|
+
this.renderer.removeAttribute(this.inputElement.nativeElement, 'size');
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
}
|
|
360
|
+
handleSearchKeyDown($event) {
|
|
361
|
+
if (this.searchValue.length || this.selectedOptions.length === 0)
|
|
362
|
+
return;
|
|
363
|
+
if (['Backspace', 'Delete'].includes($event.key)) {
|
|
364
|
+
$event.stopPropagation();
|
|
365
|
+
const last = this.selectedOptions.filter(option => !option.disabled).pop();
|
|
366
|
+
this.selectOption(last, false);
|
|
367
|
+
}
|
|
368
|
+
}
|
|
369
|
+
selectOption(option, selected) {
|
|
370
|
+
this.multiSelectOptions.forEach(item => {
|
|
371
|
+
if (item === option) {
|
|
372
|
+
option.selected = selected;
|
|
373
|
+
}
|
|
374
|
+
});
|
|
375
|
+
this.selectedOptionsUpdate();
|
|
376
|
+
}
|
|
377
|
+
selectedOptionsUpdate() {
|
|
378
|
+
setTimeout(() => {
|
|
379
|
+
this.selectedOptions = this.multiSelectOptions.filter((option) => !!option.selected);
|
|
380
|
+
this.changeDetectorRef.markForCheck();
|
|
381
|
+
});
|
|
382
|
+
}
|
|
383
|
+
}
|
|
384
|
+
MultiSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: MultiSelectComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i0.ViewContainerRef }, { token: i1.FocusMonitor }, { token: i2.MultiSelectService }], target: i0.ɵɵFactoryTarget.Component });
|
|
385
|
+
MultiSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.5", type: MultiSelectComponent, selector: "c-multi-select", inputs: { cleaner: "cleaner", disabled: "disabled", multiple: "multiple", nativeName: "nativeName", nativeId: "nativeId", optionsMaxHeight: "optionsMaxHeight", optionsStyle: "optionsStyle", placeholder: "placeholder", search: "search", searchNoResultsLabel: "searchNoResultsLabel", selectAll: "selectAll", selectAllLabel: "selectAllLabel", selectionType: "selectionType", selectionTypeCounterText: "selectionTypeCounterText", selectionTypeCounterTextPluralMap: "selectionTypeCounterTextPluralMap", value: "value", visible: "visible" }, outputs: { valueChange: "valueChange", visibleChange: "visibleChange" }, host: { listeners: { "keyup": "onKeyUp($event)", "keydown": "onKeyDown($event)", "click": "onClick($event)" }, properties: { "class": "this.hostClasses", "attr.tabindex": "this.tabIndex" } }, providers: [
|
|
386
|
+
MultiSelectService,
|
|
387
|
+
// ListenersService,
|
|
388
|
+
{
|
|
389
|
+
provide: NG_VALUE_ACCESSOR,
|
|
390
|
+
useExisting: forwardRef(() => MultiSelectComponent),
|
|
391
|
+
multi: true
|
|
392
|
+
}
|
|
393
|
+
], queries: [{ propertyName: "multiSelectOptions", predicate: MultiSelectOptionComponent, descendants: true }], viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["inputElement"], descendants: true }, { propertyName: "dropdownElement", first: true, predicate: ["dropdownElement"], descendants: true }], exportAs: ["cMultiSelect"], ngImport: i0, template: "<div class=\"form-multi-select-selection\">\r\n <ng-template [ngIf]=\"selectionType === 'tags'\">\r\n <c-multi-select-tag *ngFor=\"let option of selectedOptions; index as i\"\r\n (remove)=\"handleTagRemove($event)\"\r\n [option]=\"option\"\r\n tabindex=\"-1\">\r\n </c-multi-select-tag>\r\n </ng-template>\r\n <ng-template [ngIf]=\"selectionType === 'text' && !!selectedOptionsText\">\r\n <span>{{ selectedOptionsText }}</span>\r\n </ng-template>\r\n <ng-template [ngIf]=\"selectionType === 'counter'\">\r\n <span *ngIf=\"counterTextType === 'string'; else pluralMap\">{{ counterText }}</span>\r\n <ng-template #pluralMap>\r\n <span>{{selectedOptions.length}} {{ selectedOptions.length | i18nPlural: selectionTypeCounterTextPluralMap ?? { other: counterText } }}</span>\r\n </ng-template>\r\n </ng-template>\r\n <ng-template [ngIf]=\"!search && selectedOptions.length === 0 && selectionType !== 'counter'\">\r\n <span>{{ placeholder }}</span>\r\n </ng-template>\r\n</div>\r\n\r\n<input\r\n #inputElement\r\n (keydown)=\"handleSearchKeyDown($event)\"\r\n *ngIf=\"search && !disabled\"\r\n [(ngModel)]=\"searchValue\"\r\n [disabled]=\"disabled || !search\"\r\n [ngClass]=\"{ 'form-multi-select-search': true, disabled: disabled }\"\r\n [placeholder]=\"selectedOptions.length === 0 && selectionType !== 'counter' ? placeholder : ''\"\r\n autocomplete=\"off\"\r\n tabindex=\"{{ disabled ? '-1' : '0' }}\"\r\n type=\"text\"\r\n>\r\n\r\n<button\r\n (click)=\"clearAllOptions($event)\"\r\n *ngIf=\"cleaner && selectedOptions.length > 0 && !disabled\"\r\n [disabled]=\"disabled || !isDropdownVisible\"\r\n aria-label=\"Clear all\"\r\n cButtonClose\r\n class=\"form-multi-select-selection-cleaner\"\r\n size=\"sm\"\r\n></button>\r\n\r\n<div #dropdownElement *ngIf=\"!disabled\" class=\"form-multi-select-dropdown\">\r\n <ng-template [ngIfElse]=\"optionsEmpty\" [ngIf]=\"visibleOptions > 0\">\r\n <button (click)=\"selectAllOptions()\" *ngIf=\"selectAll && multiple\" class=\"form-multi-select-all\">\r\n {{ selectAllLabel }}\r\n </button>\r\n <div #multiselectOptionsDiv\r\n [ngStyle]=\"optionsMaxHeight !== 'auto' ? { 'maxHeight.px': optionsMaxHeight, overflow: 'scroll' } : {}\"\r\n class=\"form-multi-select-options\"\r\n >\r\n <ng-content></ng-content>\r\n </div>\r\n </ng-template>\r\n <ng-template #optionsEmpty>\r\n <div class=\"form-multi-select-options-empty\">{{ searchNoResultsLabel }}</div>\r\n </ng-template>\r\n</div>\r\n", styles: [":host{display:block}:host.cdk-focused:not(.disabled){color:var(--cui-form-multi-select-focus-color, rgba(44, 56, 74, .95));background-color:var(--cui-form-multi-select-focus-bg, #fff);border-color:var(--cui-form-multi-select-focus-border-color, #6557e4);box-shadow:0 0 0 .25rem #321fdb40}:host .form-multi-select-search:disabled,:host .form-multi-select-search.disabled{background-color:var(--cui-input-disabled-bg, #d8dbe0);border-color:var(--cui-input-disabled-border-color, #b1b7c1);opacity:1}:host .form-multi-select-search[size]{display:inline}\n"], components: [{ type: i3.MultiSelectTagComponent, selector: "c-multi-select-tag", inputs: ["option"], outputs: ["remove"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i6.ButtonCloseDirective, selector: "[cButtonClose]", inputs: ["white"] }, { type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], pipes: { "i18nPlural": i4.I18nPluralPipe } });
|
|
394
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: MultiSelectComponent, decorators: [{
|
|
395
|
+
type: Component,
|
|
396
|
+
args: [{ selector: 'c-multi-select', exportAs: 'cMultiSelect', providers: [
|
|
397
|
+
MultiSelectService,
|
|
398
|
+
// ListenersService,
|
|
399
|
+
{
|
|
400
|
+
provide: NG_VALUE_ACCESSOR,
|
|
401
|
+
useExisting: forwardRef(() => MultiSelectComponent),
|
|
402
|
+
multi: true
|
|
403
|
+
}
|
|
404
|
+
], template: "<div class=\"form-multi-select-selection\">\r\n <ng-template [ngIf]=\"selectionType === 'tags'\">\r\n <c-multi-select-tag *ngFor=\"let option of selectedOptions; index as i\"\r\n (remove)=\"handleTagRemove($event)\"\r\n [option]=\"option\"\r\n tabindex=\"-1\">\r\n </c-multi-select-tag>\r\n </ng-template>\r\n <ng-template [ngIf]=\"selectionType === 'text' && !!selectedOptionsText\">\r\n <span>{{ selectedOptionsText }}</span>\r\n </ng-template>\r\n <ng-template [ngIf]=\"selectionType === 'counter'\">\r\n <span *ngIf=\"counterTextType === 'string'; else pluralMap\">{{ counterText }}</span>\r\n <ng-template #pluralMap>\r\n <span>{{selectedOptions.length}} {{ selectedOptions.length | i18nPlural: selectionTypeCounterTextPluralMap ?? { other: counterText } }}</span>\r\n </ng-template>\r\n </ng-template>\r\n <ng-template [ngIf]=\"!search && selectedOptions.length === 0 && selectionType !== 'counter'\">\r\n <span>{{ placeholder }}</span>\r\n </ng-template>\r\n</div>\r\n\r\n<input\r\n #inputElement\r\n (keydown)=\"handleSearchKeyDown($event)\"\r\n *ngIf=\"search && !disabled\"\r\n [(ngModel)]=\"searchValue\"\r\n [disabled]=\"disabled || !search\"\r\n [ngClass]=\"{ 'form-multi-select-search': true, disabled: disabled }\"\r\n [placeholder]=\"selectedOptions.length === 0 && selectionType !== 'counter' ? placeholder : ''\"\r\n autocomplete=\"off\"\r\n tabindex=\"{{ disabled ? '-1' : '0' }}\"\r\n type=\"text\"\r\n>\r\n\r\n<button\r\n (click)=\"clearAllOptions($event)\"\r\n *ngIf=\"cleaner && selectedOptions.length > 0 && !disabled\"\r\n [disabled]=\"disabled || !isDropdownVisible\"\r\n aria-label=\"Clear all\"\r\n cButtonClose\r\n class=\"form-multi-select-selection-cleaner\"\r\n size=\"sm\"\r\n></button>\r\n\r\n<div #dropdownElement *ngIf=\"!disabled\" class=\"form-multi-select-dropdown\">\r\n <ng-template [ngIfElse]=\"optionsEmpty\" [ngIf]=\"visibleOptions > 0\">\r\n <button (click)=\"selectAllOptions()\" *ngIf=\"selectAll && multiple\" class=\"form-multi-select-all\">\r\n {{ selectAllLabel }}\r\n </button>\r\n <div #multiselectOptionsDiv\r\n [ngStyle]=\"optionsMaxHeight !== 'auto' ? { 'maxHeight.px': optionsMaxHeight, overflow: 'scroll' } : {}\"\r\n class=\"form-multi-select-options\"\r\n >\r\n <ng-content></ng-content>\r\n </div>\r\n </ng-template>\r\n <ng-template #optionsEmpty>\r\n <div class=\"form-multi-select-options-empty\">{{ searchNoResultsLabel }}</div>\r\n </ng-template>\r\n</div>\r\n", styles: [":host{display:block}:host.cdk-focused:not(.disabled){color:var(--cui-form-multi-select-focus-color, rgba(44, 56, 74, .95));background-color:var(--cui-form-multi-select-focus-bg, #fff);border-color:var(--cui-form-multi-select-focus-border-color, #6557e4);box-shadow:0 0 0 .25rem #321fdb40}:host .form-multi-select-search:disabled,:host .form-multi-select-search.disabled{background-color:var(--cui-input-disabled-bg, #d8dbe0);border-color:var(--cui-input-disabled-border-color, #b1b7c1);opacity:1}:host .form-multi-select-search[size]{display:inline}\n"] }]
|
|
405
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }, { type: i0.ViewContainerRef }, { type: i1.FocusMonitor }, { type: i2.MultiSelectService }]; }, propDecorators: { cleaner: [{
|
|
406
|
+
type: Input
|
|
407
|
+
}], disabled: [{
|
|
408
|
+
type: Input
|
|
409
|
+
}], multiple: [{
|
|
410
|
+
type: Input
|
|
411
|
+
}], nativeName: [{
|
|
412
|
+
type: Input
|
|
413
|
+
}], nativeId: [{
|
|
414
|
+
type: Input
|
|
415
|
+
}], optionsMaxHeight: [{
|
|
416
|
+
type: Input
|
|
417
|
+
}], optionsStyle: [{
|
|
418
|
+
type: Input
|
|
419
|
+
}], placeholder: [{
|
|
420
|
+
type: Input
|
|
421
|
+
}], search: [{
|
|
422
|
+
type: Input
|
|
423
|
+
}], searchNoResultsLabel: [{
|
|
424
|
+
type: Input
|
|
425
|
+
}], selectAll: [{
|
|
426
|
+
type: Input
|
|
427
|
+
}], selectAllLabel: [{
|
|
428
|
+
type: Input
|
|
429
|
+
}], selectionType: [{
|
|
430
|
+
type: Input
|
|
431
|
+
}], selectionTypeCounterText: [{
|
|
432
|
+
type: Input
|
|
433
|
+
}], selectionTypeCounterTextPluralMap: [{
|
|
434
|
+
type: Input
|
|
435
|
+
}], value: [{
|
|
436
|
+
type: Input
|
|
437
|
+
}], valueChange: [{
|
|
438
|
+
type: Output
|
|
439
|
+
}], visible: [{
|
|
440
|
+
type: Input
|
|
441
|
+
}], visibleChange: [{
|
|
442
|
+
type: Output
|
|
443
|
+
}], multiSelectOptions: [{
|
|
444
|
+
type: ContentChildren,
|
|
445
|
+
args: [MultiSelectOptionComponent, { descendants: true }]
|
|
446
|
+
}], inputElement: [{
|
|
447
|
+
type: ViewChild,
|
|
448
|
+
args: ['inputElement']
|
|
449
|
+
}], dropdownElement: [{
|
|
450
|
+
type: ViewChild,
|
|
451
|
+
args: ['dropdownElement']
|
|
452
|
+
}], hostClasses: [{
|
|
453
|
+
type: HostBinding,
|
|
454
|
+
args: ['class']
|
|
455
|
+
}], tabIndex: [{
|
|
456
|
+
type: HostBinding,
|
|
457
|
+
args: ['attr.tabindex']
|
|
458
|
+
}], onKeyUp: [{
|
|
459
|
+
type: HostListener,
|
|
460
|
+
args: ['keyup', ['$event']]
|
|
461
|
+
}], onKeyDown: [{
|
|
462
|
+
type: HostListener,
|
|
463
|
+
args: ['keydown', ['$event']]
|
|
464
|
+
}], onClick: [{
|
|
465
|
+
type: HostListener,
|
|
466
|
+
args: ['click', ['$event']]
|
|
467
|
+
}] } });
|
|
468
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmV1aS1hbmd1bGFyL3NyYy9saWIvbXVsdGktc2VsZWN0L211bHRpLXNlbGVjdC9tdWx0aS1zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi9tdWx0aS1zZWxlY3QvbXVsdGktc2VsZWN0L211bHRpLXNlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBSUwsU0FBUyxFQUNULGVBQWUsRUFFZixZQUFZLEVBQ1osVUFBVSxFQUNWLFdBQVcsRUFDWCxZQUFZLEVBQ1osS0FBSyxFQUlMLE1BQU0sRUFHTixTQUFTLEVBRVYsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGVBQWUsRUFBNkIsTUFBTSxtQkFBbUIsQ0FBQztBQUMvRSxPQUFPLEVBQWdCLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDNUUsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBS3pFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzdELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLG9FQUFvRSxDQUFDOzs7Ozs7OztBQW9DdEgsTUFBTSxPQUFPLG9CQUFvQjtJQUcvQixZQUNVLFVBQXNCLEVBQ3RCLFFBQW1CLEVBQ25CLE1BQWMsRUFDZCxpQkFBb0MsRUFDcEMsZ0JBQWtDLEVBQ2xDLFlBQTBCLEVBQzFCLGtCQUFzQztJQUM5Qyw2Q0FBNkM7O1FBUHJDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixXQUFNLEdB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WyJpbXBvcnQge1xyXG4gIEFmdGVyQ29udGVudEluaXQsXHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgQ29udGVudENoaWxkcmVuLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIGZvcndhcmRSZWYsXHJcbiAgSG9zdEJpbmRpbmcsXHJcbiAgSG9zdExpc3RlbmVyLFxyXG4gIElucHV0LFxyXG4gIE5nWm9uZSxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBRdWVyeUxpc3QsXHJcbiAgUmVuZGVyZXIyLFxyXG4gIFZpZXdDaGlsZCxcclxuICBWaWV3Q29udGFpbmVyUmVmXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvY3VzS2V5TWFuYWdlciwgRm9jdXNNb25pdG9yLCBGb2N1c09yaWdpbiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcclxuaW1wb3J0IHsgQm9vbGVhbklucHV0LCBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xyXG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5cclxuLy8gaW1wb3J0IHsgTGlzdGVuZXJzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2xpc3RlbmVycy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSU11bHRpU2VsZWN0LCBJT3B0aW9uIH0gZnJvbSAnLi4vbXVsdGktc2VsZWN0LnR5cGUnO1xyXG5pbXBvcnQgeyBNdWx0aVNlbGVjdFNlcnZpY2UgfSBmcm9tICcuLi9tdWx0aS1zZWxlY3Quc2VydmljZSc7XHJcbmltcG9ydCB7IE11bHRpU2VsZWN0T3B0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vbXVsdGktc2VsZWN0LW9wdGlvbi9tdWx0aS1zZWxlY3Qtb3B0aW9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE11bHRpU2VsZWN0TmF0aXZlU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi4vbXVsdGktc2VsZWN0LW5hdGl2ZS1zZWxlY3QvbXVsdGktc2VsZWN0LW5hdGl2ZS1zZWxlY3QuY29tcG9uZW50JztcclxuXHJcbi8vIGNvbnN0IGZsYXR0ZW5BcnJheSA9IChvcHRpb25zOiBJT3B0aW9uW10pOiBJT3B0aW9uW10gPT4ge1xyXG4vLyAgIHJldHVybiBvcHRpb25zLnJlZHVjZSgoYWNjOiBJT3B0aW9uW10sIHZhbDogSU9wdGlvbikgPT4ge1xyXG4vLyAgICAgcmV0dXJuIGFjYy5jb25jYXQoQXJyYXkuaXNBcnJheSh2YWwub3B0aW9ucykgPyBmbGF0dGVuQXJyYXkodmFsLm9wdGlvbnMpIDogdmFsKTtcclxuLy8gICB9LCBbXSk7XHJcbi8vIH07XHJcbi8vXHJcbi8vIGNvbnN0IGdldFNlbGVjdGVkT3B0aW9ucyA9IChvcHRpb25zOiBJT3B0aW9uW10pID0+IHtcclxuLy8gICByZXR1cm4gZmxhdHRlbkFycmF5KG9wdGlvbnMpLmZpbHRlcigob3B0aW9uOiBJT3B0aW9uKSA9PiB7XHJcbi8vICAgICBpZiAob3B0aW9uLnNlbGVjdGVkKSB7XHJcbi8vICAgICAgIHJldHVybiBvcHRpb247XHJcbi8vICAgICB9XHJcbi8vICAgICByZXR1cm47XHJcbi8vICAgfSk7XHJcbi8vIH07XHJcblxyXG5pbnRlcmZhY2UgSVBsdXJhbE1hcCB7XHJcbiAgW2s6IHN0cmluZ106IHN0cmluZztcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjLW11bHRpLXNlbGVjdCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL211bHRpLXNlbGVjdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbXVsdGktc2VsZWN0LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZXhwb3J0QXM6ICdjTXVsdGlTZWxlY3QnLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAgTXVsdGlTZWxlY3RTZXJ2aWNlLFxyXG4gICAgLy8gTGlzdGVuZXJzU2VydmljZSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IE11bHRpU2VsZWN0Q29tcG9uZW50KSxcclxuICAgICAgbXVsdGk6IHRydWVcclxuICAgIH1cclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNdWx0aVNlbGVjdENvbXBvbmVudFxyXG4gIGltcGxlbWVudHMgSU11bHRpU2VsZWN0LCBDb250cm9sVmFsdWVBY2Nlc3NvciwgQWZ0ZXJDb250ZW50SW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95LCBPbkluaXQge1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZixcclxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmUsXHJcbiAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcclxuICAgIHByaXZhdGUgZm9jdXNNb25pdG9yOiBGb2N1c01vbml0b3IsXHJcbiAgICBwcml2YXRlIG11bHRpU2VsZWN0U2VydmljZTogTXVsdGlTZWxlY3RTZXJ2aWNlXHJcbiAgICAvLyBwcml2YXRlIGxpc3RlbmVyc1NlcnZpY2U6IExpc3RlbmVyc1NlcnZpY2VcclxuICApIHt9XHJcblxyXG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9tdWx0aXBsZTogQm9vbGVhbklucHV0O1xyXG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9kaXNhYmxlZDogQm9vbGVhbklucHV0O1xyXG5cclxuICBvbkNoYW5nZTogYW55ID0gKHZhbHVlOiBhbnkpID0+IHt9O1xyXG5cclxuICB3cml0ZVZhbHVlKHZhbHVlOiAoc3RyaW5nIHwgc3RyaW5nW10pKTogdm9pZCB7XHJcbiAgICBpZiAodmFsdWUgIT09IG51bGwpIHtcclxuICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XHJcbiAgfVxyXG5cclxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KCkgY2xlYW5lciA9IHRydWU7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9kaXNhYmxlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XHJcbiAgfVxyXG4gIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZDtcclxuICB9XHJcbiAgcHJpdmF0ZSBfZGlzYWJsZWQgPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgbXVsdGlwbGUodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX211bHRpcGxlID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcclxuICB9XHJcbiAgZ2V0IG11bHRpcGxlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX211bHRpcGxlO1xyXG4gIH1cclxuICBwcml2YXRlIF9tdWx0aXBsZSA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKSBuYXRpdmVOYW1lID0gJyc7XHJcbiAgQElucHV0KCkgbmF0aXZlSWQgPSAnJztcclxuICAvLyBASW5wdXQoKSBvcHRpb25zID0gW107XHJcbiAgQElucHV0KCkgb3B0aW9uc01heEhlaWdodCA9ICdhdXRvJztcclxuICBASW5wdXQoKSBvcHRpb25zU3R5bGU6ICdjaGVja2JveCcgfCAndGV4dCcgPSAnY2hlY2tib3gnO1xyXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyID0gJ1NlbGVjdC4uLic7XHJcbiAgQElucHV0KCkgc2VhcmNoID0gdHJ1ZTtcclxuICBASW5wdXQoKSBzZWFyY2hOb1Jlc3VsdHNMYWJlbCA9ICdubyBpdGVtcyc7XHJcbiAgQElucHV0KCkgc2VsZWN0QWxsID0gdHJ1ZTtcclxuICBASW5wdXQoKSBzZWxlY3RBbGxMYWJlbCA9ICdTZWxlY3QgYWxsIG9wdGlvbnMnO1xyXG4gIEBJbnB1dCgpIHNlbGVjdGlvblR5cGU6ICdjb3VudGVyJyB8ICd0YWdzJyB8ICd0ZXh0JyA9ICd0YWdzJztcclxuICBASW5wdXQoKSBzZWxlY3Rpb25UeXBlQ291bnRlclRleHQ6IHN0cmluZyA9ICdpdGVtKHMpIHNlbGVjdGVkJztcclxuICBASW5wdXQoKSBzZWxlY3Rpb25UeXBlQ291bnRlclRleHRQbHVyYWxNYXA/OiBJUGx1cmFsTWFwID0geyAnPTEnOiAnaXRlbSBzZWxlY3RlZCcsICdvdGhlcic6ICdpdGVtcyBzZWxlY3RlZCcgfTtcclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgdmFsdWUodmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdKSB7XHJcbiAgICBjb25zdCBuZXdWYWx1ZSA9IEFycmF5LmlzQXJyYXkodmFsdWUpID8gWy4uLnZhbHVlXSA6IFt2YWx1ZSA/PyAnJ107XHJcbiAgICBpZiAodGhpcy5fdmFsdWUudG9TdHJpbmcoKSAhPT0gbmV3VmFsdWUudG9TdHJpbmcoKSkge1xyXG4gICAgICB0aGlzLl92YWx1ZSA9IG5ld1ZhbHVlO1xyXG4gICAgICB0aGlzLm9uQ2hhbmdlKG5ld1ZhbHVlKTtcclxuICAgICAgdGhpcy51cGRhdGVOYXRpdmVTZWxlY3QoKTtcclxuICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHRoaXMudmFsdWUpO1xyXG4gICAgfVxyXG4gIH1cclxuICBnZXQgdmFsdWUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5tdWx0aXBsZSA/IFsuLi50aGlzLl92YWx1ZV0gOiB0aGlzLl92YWx1ZVswXT8udG9TdHJpbmcoKSA/PyAnJztcclxuICB9XHJcbiAgcHJpdmF0ZSBfdmFsdWU6IHN0cmluZ1tdID0gWycnXTtcclxuXHJcbiAgQE91dHB1dCgpIHJlYWRvbmx5IHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmcgfCBzdHJpbmdbXT4oKTtcclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgdmlzaWJsZSh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgY29uc3QgbmV3VmFsdWUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xyXG4gICAgaWYgKG5ld1ZhbHVlICE9PSB0aGlzLl92aXNpYmxlKSB7XHJcbiAgICAgIHRoaXMuX3Zpc2libGUgPSBuZXdWYWx1ZTtcclxuICAgICAgdGhpcy5tdWx0aVNlbGVjdFNlcnZpY2UudG9nZ2xlVmlzaWJsZShuZXdWYWx1ZSk7XHJcbiAgICAgIGlmIChuZXdWYWx1ZSkge1xyXG4gICAgICAgIHRoaXMubGlzdEtleU1hbmFnZXIuc2V0Rmlyc3RJdGVtQWN0aXZlKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgZ2V0IHZpc2libGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fdmlzaWJsZTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfdmlzaWJsZSA9IGZhbHNlO1xyXG5cclxuICBAT3V0cHV0KCkgcmVhZG9ubHkgdmlzaWJsZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuXHJcbiAgaXNEcm9wZG93blZpc2libGUgPSBmYWxzZTtcclxuXHJcbiAgc2V0IHNlbGVjdGVkT3B0aW9ucyh2YWx1ZSkge1xyXG4gICAgdGhpcy5fc2VsZWN0ZWRPcHRpb25zID0gdmFsdWU7XHJcbiAgICB0aGlzLnZhbHVlID0gdGhpcy5zZWxlY3RlZE9wdGlvbnMubWFwKGl0ZW0gPT4gaXRlbS52YWx1ZSk7XHJcbiAgICB0aGlzLmlucHV0RWxlbWVudFNpemUoKTtcclxuICB9XHJcbiAgZ2V0IHNlbGVjdGVkT3B0aW9ucygpIHtcclxuICAgIHJldHVybiB0aGlzLl9zZWxlY3RlZE9wdGlvbnM7XHJcbiAgfVxyXG4gIHByaXZhdGUgX3NlbGVjdGVkT3B0aW9uczogYW55W10gPSBbXTtcclxuXHJcbiAgZ2V0IHNlbGVjdGVkT3B0aW9uc1RleHQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZE9wdGlvbnMubWFwKChvcHRpb24pID0+IG9wdGlvbi5sYWJlbCkuam9pbignLCAnKTtcclxuICB9XHJcblxyXG4gIGdldCBjb3VudGVyVGV4dCgpIHtcclxuICAgIHJldHVybiBgJHt0aGlzLnNlbGVjdGVkT3B0aW9ucy5sZW5ndGh9ICR7dGhpcy5zZWxlY3Rpb25UeXBlQ291bnRlclRleHR9YDtcclxuICB9XHJcblxyXG4gIGdldCBjb3VudGVyVGV4dFR5cGUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0eXBlb2YgdGhpcy5zZWxlY3Rpb25UeXBlQ291bnRlclRleHRQbHVyYWxNYXAgPz8gdHlwZW9mIHRoaXMuc2VsZWN0aW9uVHlwZUNvdW50ZXJUZXh0O1xyXG4gIH07XHJcblxyXG4gIHByaXZhdGUgbXVsdGlzZWxlY3RTdGF0ZVN1YnNjcmlwdGlvbiE6IFN1YnNjcmlwdGlvbjtcclxuICBwcml2YXRlIG11bHRpc2VsZWN0VmlzaWJsZVN1YnNjcmlwdGlvbiE6IFN1YnNjcmlwdGlvbjtcclxuICBwcml2YXRlIG11bHRpU2VsZWN0T3B0aW9uc1N1YnNjcmlwdGlvbiE6IFN1YnNjcmlwdGlvbjtcclxuICBwcml2YXRlIGZvY3VzTW9uaXRvclN1YnNjcmlwdGlvbiE6IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgQENvbnRlbnRDaGlsZHJlbihNdWx0aVNlbGVjdE9wdGlvbkNvbXBvbmVudCwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KSBtdWx0aVNlbGVjdE9wdGlvbnMhOiBRdWVyeUxpc3Q8TXVsdGlTZWxlY3RPcHRpb25Db21wb25lbnQ+O1xyXG5cclxuICBwcml2YXRlIGxpc3RLZXlNYW5hZ2VyITogRm9jdXNLZXlNYW5hZ2VyPE11bHRpU2VsZWN0T3B0aW9uQ29tcG9uZW50PjtcclxuXHJcbiAgQFZpZXdDaGlsZCgnaW5wdXRFbGVtZW50JykgaW5wdXRFbGVtZW50ITogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKCdkcm9wZG93bkVsZW1lbnQnKSBkcm9wZG93bkVsZW1lbnQhOiBFbGVtZW50UmVmO1xyXG5cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJykgZ2V0IGhvc3RDbGFzc2VzKCkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgJ2Zvcm0tbXVsdGktc2VsZWN0JzogdHJ1ZSxcclxuICAgICAgJ2Zvcm0tbXVsdGktc2VsZWN0LXNlbGVjdGlvbi10YWdzJzogdGhpcy5zZWxlY3Rpb25UeXBlID09PSAndGFncycsXHJcbiAgICAgIHNob3c6IHRoaXMudmlzaWJsZSxcclxuICAgICAgZGlzYWJsZWQ6IHRoaXMuZGlzYWJsZWRcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBASG9zdEJpbmRpbmcoJ2F0dHIudGFiaW5kZXgnKVxyXG4gIHByaXZhdGUgZ2V0IHRhYkluZGV4KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3RhYkluZGV4O1xyXG4gIH1cclxuICBwcml2YXRlIHNldCB0YWJJbmRleCh2YWx1ZSkge1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuX3RhYkluZGV4ID0gdGhpcy5kaXNhYmxlZCB8fCB0aGlzLnNlYXJjaCA/ICctMScgOiB2YWx1ZSA9PT0gbnVsbCA/IG51bGwgOiAnMCc7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfdGFiSW5kZXg6IHN0cmluZyB8IG51bGwgPSAnLTEnO1xyXG5cclxuICBASG9zdExpc3RlbmVyKCdrZXl1cCcsIFsnJGV2ZW50J10pIG9uS2V5VXAoJGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkgcmV0dXJuO1xyXG5cclxuICAgIGlmICgkZXZlbnQua2V5ID09PSAnRXNjYXBlJykge1xyXG4gICAgICB0aGlzLnZpc2libGUgPSBmYWxzZTtcclxuICAgICAgdGhpcy5zZWFyY2hWYWx1ZSA9ICcnO1xyXG4gICAgICB0aGlzLnNldEZvY3VzKCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmIChbJ0VudGVyJywgJyAnLCAnQXJyb3dEb3duJ10uaW5jbHVkZXMoJGV2ZW50LmtleSkgJiYgW3RoaXMuaW5wdXRFbGVtZW50Py5uYXRpdmVFbGVtZW50ID8/IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50XS5pbmNsdWRlcygkZXZlbnQudGFyZ2V0KSkge1xyXG4gICAgICB0aGlzLnZpc2libGUgPSB0cnVlO1xyXG4gICAgICBpZiAoIXRoaXMuc2VhcmNoKSB7XHJcbiAgICAgICAgdGhpcy5zZXRGb2N1cygpO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmICgkZXZlbnQua2V5ID09PSAnVGFiJyAmJiAkZXZlbnQudGFyZ2V0ID09PSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCkge1xyXG4gICAgICB0aGlzLnZpc2libGUgPSB0cnVlO1xyXG4gICAgICBpZiAoIXRoaXMuc2VhcmNoKSB7XHJcbiAgICAgICAgdGhpcy5zZXRGb2N1cygpO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKSBvbktleURvd24oJGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkgcmV0dXJuO1xyXG4gICAgdGhpcy5saXN0S2V5TWFuYWdlci5vbktleWRvd24oJGV2ZW50KTtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSkgb25DbGljaygkZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmRpc2FibGVkKSByZXR1cm47XHJcbiAgICBpZiAoIXRoaXMudmlzaWJsZSkge1xyXG4gICAgICB0aGlzLnZpc2libGUgPSB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHZpc2libGVPcHRpb25zID0gMDtcclxuXHJcbiAgc2V0IHNlYXJjaFZhbHVlKHZhbHVlKSB7XHJcbiAgICB0aGlzLl9zZWFyY2hWYWx1ZSA9IHZhbHVlLnRyaW0oKTtcclxuICAgIHRoaXMudmlzaWJsZSA9ICEhdGhpcy5zZWFyY2hWYWx1ZS5sZW5ndGggfHwgdGhpcy52aXNpYmxlO1xyXG4gICAgdGhpcy5maWx0ZXJPcHRpb25zKHRoaXMuc2VhcmNoVmFsdWUpO1xyXG4gICAgdGhpcy5pbnB1dEVsZW1lbnRTaXplKCk7XHJcbiAgfVxyXG4gIGdldCBzZWFyY2hWYWx1ZSgpIHtcclxuICAgIHJldHVybiB0aGlzLl9zZWFyY2hWYWx1ZTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfc2VhcmNoVmFsdWU6IHN0cmluZyA9ICcnO1xyXG5cclxuICBnZXQgc3VidHJlZUZvY3VzZWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fc3VidHJlZUZvY3VzZWQ7XHJcbiAgfVxyXG4gIHNldCBzdWJ0cmVlRm9jdXNlZCh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fc3VidHJlZUZvY3VzZWQgPSB0aGlzLmRpc2FibGVkID8gZmFsc2UgOiB2YWx1ZTtcclxuICAgIHRoaXMudmlzaWJsZSA9IHZhbHVlID09PSBmYWxzZSA/IGZhbHNlIDogdGhpcy52aXNpYmxlO1xyXG4gIH1cclxuICBwcml2YXRlIF9zdWJ0cmVlRm9jdXNlZCA9IHRoaXMuZm9jdXNPcmlnaW4obnVsbCk7XHJcblxyXG4gIHByaXZhdGUgbmF0aXZlU2VsZWN0UmVmITogYW55O1xyXG5cclxuICBmb2N1c09yaWdpbihvcmlnaW46IEZvY3VzT3JpZ2luKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBmb2N1c2VkID0gISFvcmlnaW47XHJcbiAgICB0aGlzLnNlYXJjaFZhbHVlID0gZm9jdXNlZCA/IHRoaXMuc2VhcmNoVmFsdWUgOiAnJztcclxuICAgIHJldHVybiBmb2N1c2VkO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnRhYkluZGV4ID0gJzAnO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLm11bHRpc2VsZWN0U3Vic2NyaWJlKGZhbHNlKTtcclxuICAgIC8vIHRoaXMuY2xlYXJMaXN0ZW5lcnMoKTtcclxuICAgIHRoaXMuZm9jdXNNb25pdG9yLnN0b3BNb25pdG9yaW5nKHRoaXMuZWxlbWVudFJlZik7XHJcbiAgICB0aGlzLmZvY3VzTW9uaXRvclN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMudmlzaWJsZU9wdGlvbnMgPSB0aGlzLm11bHRpU2VsZWN0T3B0aW9ucy5sZW5ndGg7XHJcbiAgICB0aGlzLm11bHRpU2VsZWN0T3B0aW9ucy5mb3JFYWNoKChvcHRpb24sIGluZGV4KSA9PiB7XHJcbiAgICAgIG9wdGlvbi5vcHRpb25zU3R5bGUgPSB0aGlzLm9wdGlvbnNTdHlsZTtcclxuICAgICAgb3B0aW9uLnNlbGVjdGVkID0gb3B0aW9uLnZhbHVlICE9PSB1bmRlZmluZWQgPyB0aGlzLnZhbHVlLmluY2x1ZGVzKG9wdGlvbi52YWx1ZSkgfHwgb3B0aW9uLnNlbGVjdGVkIDogb3B0aW9uLnNlbGVjdGVkO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnNlbGVjdGVkT3B0aW9uc1VwZGF0ZSgpO1xyXG4gICAgdGhpcy5pbnB1dEVsZW1lbnRTaXplKCk7XHJcblxyXG4gICAgdGhpcy5saXN0S2V5TWFuYWdlciA9IG5ldyBGb2N1c0tleU1hbmFnZXIodGhpcy5tdWx0aVNlbGVjdE9wdGlvbnMpLndpdGhIb21lQW5kRW5kKCkud2l0aFR5cGVBaGVhZCgpO1xyXG4gICAgdGhpcy5saXN0S2V5TWFuYWdlci5za2lwUHJlZGljYXRlKGl0ZW0gPT4gKCFpdGVtLnZpc2libGUgfHwgaXRlbS5kaXNhYmxlZCkpO1xyXG4gICAgdGhpcy5saXN0S2V5TWFuYWdlci5zZXRGaXJzdEl0ZW1BY3RpdmUoKTtcclxuICAgIHRoaXMubXVsdGlzZWxlY3RTdWJzY3JpYmUoKTtcclxuICAgIHRoaXMuY3JlYXRlTmF0aXZlU2VsZWN0KCk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICAvLyB0aGlzLnNldExpc3RlbmVycygpO1xyXG4gICAgdGhpcy5mb2N1c01vbml0b3JTdWJzY3JpcHRpb24gPSB0aGlzLmZvY3VzTW9uaXRvci5tb25pdG9yKHRoaXMuZWxlbWVudFJlZiwgdHJ1ZSkuc3Vic2NyaWJlKChvcmlnaW4pID0+XHJcbiAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XHJcbiAgICAgICAgICB0aGlzLnN1YnRyZWVGb2N1c2VkID0gdGhpcy5mb2N1c09yaWdpbihvcmlnaW4pO1xyXG4gICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gICAgdGhpcy5pbnB1dEVsZW1lbnRTaXplKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG11bHRpc2VsZWN0U3Vic2NyaWJlKHN1YnNjcmliZTogYm9vbGVhbiA9IHRydWUpIHtcclxuICAgIGlmIChzdWJzY3JpYmUpIHtcclxuICAgICAgdGhpcy5tdWx0aXNlbGVjdFZpc2libGVTdWJzY3JpcHRpb24gPSB0aGlzLm11bHRpU2VsZWN0U2VydmljZS5tdWx0aVNlbGVjdFZpc2libGUkLnN1YnNjcmliZShcclxuICAgICAgICAodmlzaWJsZSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5pc0Ryb3Bkb3duVmlzaWJsZSA9IHZpc2libGU7XHJcbiAgICAgICAgICB0aGlzLnZpc2libGVDaGFuZ2UuZW1pdCh2aXNpYmxlKTtcclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcblxyXG4gICAgICB0aGlzLm11bHRpc2VsZWN0U3RhdGVTdWJzY3JpcHRpb24gPSB0aGlzLm11bHRpU2VsZWN0U2VydmljZS5tdWx0aVNlbGVjdFN0YXRlJC5zdWJzY3JpYmUoXHJcbiAgICAgICAgKG9wdGlvbikgPT4ge1xyXG4gICAgICAgICAgaWYgKG9wdGlvbi5zZWxlY3RlZCA9PT0gdHJ1ZSAmJiAhdGhpcy5tdWx0aXBsZSkge1xyXG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZE9wdGlvbnMgPSB0aGlzLm11bHRpU2VsZWN0T3B0aW9ucy50b0FycmF5KCkuZmlsdGVyKChpdGVtKSA9PiBpdGVtLnNlbGVjdGVkKTtcclxuICAgICAgICAgICAgc2VsZWN0ZWRPcHRpb25zLnJldmVyc2UoKS5mb3JFYWNoKChpdGVtKSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKGl0ZW0gIT09IG9wdGlvbikge1xyXG4gICAgICAgICAgICAgICAgaXRlbS5zZWxlY3RlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkT3B0aW9uc1VwZGF0ZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMubXVsdGlzZWxlY3RWaXNpYmxlU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xyXG4gICAgICB0aGlzLm11bHRpU2VsZWN0T3B0aW9uc1N1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcclxuICAgICAgdGhpcy5tdWx0aXNlbGVjdFN0YXRlU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2xlYXJBbGxPcHRpb25zKCRldmVudDogTW91c2VFdmVudCkge1xyXG4gICAgdGhpcy5zZWxlY3RlZE9wdGlvbnMuZm9yRWFjaCgob3B0aW9uKSA9PiB7XHJcbiAgICAgIGlmICghb3B0aW9uLl9kaXNhYmxlZCkgb3B0aW9uLnNlbGVjdGVkID0gZmFsc2U7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuc2V0Rm9jdXMoKTtcclxuICB9XHJcblxyXG4gIHNlbGVjdEFsbE9wdGlvbnMoKSB7XHJcbiAgICB0aGlzLm11bHRpU2VsZWN0T3B0aW9ucy5mb3JFYWNoKChvcHRpb24sIGluZGV4KSA9PiB7XHJcbiAgICAgIGlmICghb3B0aW9uLmRpc2FibGVkKSBvcHRpb24uc2VsZWN0ZWQgPSB0cnVlO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvLyBwcml2YXRlIHNldExpc3RlbmVycygpIHtcclxuICAvLyAgIGlmICh0aGlzLnNlYXJjaCkge1xyXG4gIC8vICAgICBjb25zdCBjb25maWdGb3JJbnB1dDogSUxpc3RlbmVyc0NvbmZpZyA9IHtcclxuICAvLyAgICAgICBob3N0RWxlbWVudDogdGhpcy5pbnB1dEVsZW1lbnQgPz8gdGhpcy5lbGVtZW50UmVmLFxyXG4gIC8vICAgICAgIHRyaWdnZXI6IFsnZm9jdXMnLCAnY2xpY2snXSxcclxuICAvLyAgICAgICBjYWxsYmFja09uOiAoKSA9PiB7XHJcbiAgLy8gICAgICAgICBjb25zb2xlLmxvZygnZm9jdXMgaW5wdXQnKTtcclxuICAvLyAgICAgICAgIHRoaXMudGFiSW5kZXggPSBudWxsO1xyXG4gIC8vICAgICAgICAgLy8gdGhpcy52aXNpYmxlID0gdHJ1ZTtcclxuICAvLyAgICAgICB9XHJcbiAgLy8gICAgIH07XHJcbiAgLy8gICAgIHRoaXMubGlzdGVuZXJzU2VydmljZS5zZXRMaXN0ZW5lcnMoY29uZmlnRm9ySW5wdXQpO1xyXG4gIC8vICAgfVxyXG4gIC8vXHJcbiAgLy8gICBjb25zdCBjb25maWdGb3JIb3N0OiBJTGlzdGVuZXJzQ29uZmlnID0ge1xyXG4gIC8vICAgICBob3N0RWxlbWVudDogdGhpcy5lbGVtZW50UmVmLFxyXG4gIC8vICAgICB0cmlnZ2VyOiBbJ2ZvY3VzJ10sXHJcbiAgLy8gICAgIGNhbGxiYWNrT246ICgpID0+IHtcclxuICAvLyAgICAgICBjb25zb2xlLmxvZygnZm9jdXMnKTtcclxuICAvLyAgICAgICBpZiAodGhpcy5pbnB1dEVsZW1lbnQpIHtcclxuICAvLyAgICAgICAgIHRoaXMuc2V0Rm9jdXMoKVxyXG4gIC8vICAgICAgIH1cclxuICAvLyAgICAgICAvLyB0aGlzLmlucHV0RWxlbWVudD8ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xyXG4gIC8vICAgICB9LFxyXG4gIC8vICAgICBjYWxsYmFja09mZjogKCkgPT4ge1xyXG4gIC8vICAgICAgIGNvbnNvbGUubG9nKCdibHVyJyk7XHJcbiAgLy8gICAgIH1cclxuICAvLyAgIH07XHJcbiAgLy8gICB0aGlzLmxpc3RlbmVyc1NlcnZpY2Uuc2V0TGlzdGVuZXJzKGNvbmZpZ0Zvckhvc3QpO1xyXG4gIC8vIH1cclxuXHJcbiAgLy8gcHJpdmF0ZSBjbGVhckxpc3RlbmVycygpIHtcclxuICAvLyAgIHRoaXMubGlzdGVuZXJzU2VydmljZS5jbGVhckxpc3RlbmVycygpO1xyXG4gIC8vIH1cclxuXHJcbiAgaGFuZGxlVGFnUmVtb3ZlKCRldmVudDogSU9wdGlvbikge1xyXG4gICAgdGhpcy5zZXRGb2N1cygpO1xyXG4gIH1cclxuXHJcbiAgc2V0Rm9jdXMoKSB7XHJcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkgcmV0dXJuO1xyXG4gICAgdGhpcy5mb2N1c01vbml0b3IuZm9jdXNWaWEodGhpcy5pbnB1dEVsZW1lbnQgPz8gdGhpcy5lbGVtZW50UmVmLCAncHJvZ3JhbScpO1xyXG4gIH1cclxuXHJcbiAgLy8gc2V0Rmlyc3RTZWxlY3RlZE9wdGlvbkFjdGl2ZSgpIHtcclxuICAvLyAgIGNvbnN0IGZpcnN0U2VsZWN0ZWRPcHRpb24gPSB0aGlzLnNlbGVjdGVkT3B0aW9ucy5maW5kKChpdGVtKSA9PiBpdGVtLnNlbGVjdGVkKSA/P1xyXG4gIC8vICAgICB0aGlzLm11bHRpU2VsZWN0T3B0aW9ucy5maW5kKChpdGVtLCBpbmRleCkgPT4gaW5kZXggPT09IDApO1xyXG4gIC8vICAgaWYgKGZpcnN0U2VsZWN0ZWRPcHRpb24gJiYgdGhpcy5pc0Ryb3Bkb3duVmlzaWJsZSkge1xyXG4gIC8vICAgICAvLyB0aGlzLmxpc3RLZXlNYW5hZ2VyLnNldEZvY3VzT3JpZ2luKCdrZXlib2FyZCcpO1xyXG4gIC8vICAgICB0aGlzLmxpc3RLZXlNYW5hZ2VyLnNldEFjdGl2ZUl0ZW0oZmlyc3RTZWxlY3RlZE9wdGlvbik7XHJcbiAgLy8gICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgLy8gICB9IGVsc2Uge1xyXG4gIC8vICAgICAvLyB0aGlzLmxpc3RLZXlNYW5hZ2VyLnNldEZvY3VzT3JpZ2luKCdrZXlib2FyZCcpO1xyXG4gIC8vICAgICB0aGlzLmxpc3RLZXlNYW5hZ2VyLnNldEZpcnN0SXRlbUFjdGl2ZSgpO1xyXG4gIC8vICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gIC8vICAgfVxyXG4gIC8vIH1cclxuXHJcbiAgZmlsdGVyT3B0aW9ucyh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBzZWFyY2hTdHJpbmcgPSB2YWx1ZS50b0xvd2VyQ2FzZSgpID8/ICcnO1xyXG4gICAgdGhpcy5tdWx0aVNlbGVjdE9wdGlvbnM/LmZvckVhY2goKGl0ZW0sIGluZGV4KSA9PiB7XHJcbiAgICAgIGlmICghIXNlYXJjaFN0cmluZykge1xyXG4gICAgICAgIGl0ZW0udmlzaWJsZSA9IGl0ZW0ubGFiZWw/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoU3RyaW5nKSA/PyB0cnVlO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGl0ZW0udmlzaWJsZSA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgdGhpcy52aXNpYmxlT3B0aW9ucyA9IHRoaXMubXVsdGlTZWxlY3RPcHRpb25zPy5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0udmlzaWJsZSkubGVuZ3RoO1xyXG4gIH1cclxuXHJcbiAgY3JlYXRlTmF0aXZlU2VsZWN0KCkge1xyXG4gICAgdGhpcy52aWV3Q29udGFpbmVyUmVmLmNsZWFyKCk7XHJcbiAgICB0aGlzLm5hdGl2ZVNlbGVjdFJlZiA9IHRoaXMudmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQoTXVsdGlTZWxlY3ROYXRpdmVTZWxlY3RDb21wb25lbnQpO1xyXG4gICAgdGhpcy51cGRhdGVOYXRpdmVTZWxlY3QoKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZU5hdGl2ZVNlbGVjdCgpIHtcclxuICAgIGlmICghdGhpcy5uYXRpdmVTZWxlY3RSZWYpIHJldHVybjtcclxuXHJcbiAgICBjb25zdCBvcHRpb25zID0gdGhpcy5zZWxlY3RlZE9wdGlvbnMubWFwKGl0ZW0gPT4ge1xyXG4gICAgICBjb25zdCB7IHNlbGVjdGVkLCB2YWx1ZSwgbGFiZWwgfSA9IGl0ZW07XHJcbiAgICAgIHJldHVybiB7IHNlbGVjdGVkLCB2YWx1ZSwgbGFiZWwgfTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMubmF0aXZlU2VsZWN0UmVmLmluc3RhbmNlLm11bHRpcGxlID0gdGhpcy5tdWx0aXBsZTtcclxuICAgIHRoaXMubmF0aXZlU2VsZWN0UmVmLmluc3RhbmNlLm5hbWUgPSB0aGlzLm5hdGl2ZU5hbWU7XHJcbiAgICB0aGlzLm5hdGl2ZVNlbGVjdFJlZi5pbnN0YW5jZS5mb3JtID0gdGhpcy5uYXRpdmVJZDtcclxuICAgIHRoaXMubmF0aXZlU2VsZWN0UmVmLmluc3RhbmNlLm9wdGlvbnMgPSBbLi4ub3B0aW9uc107XHJcbiAgICB0aGlzLm5hdGl2ZVNlbGVjdFJlZi5pbnN0YW5jZS5kaXNhYmxlZCA9IHRoaXMuZGlzYWJsZWQ7XHJcbiAgICB0aGlzLm5hdGl2ZVNlbGVjdFJlZi5pbnN0YW5jZS5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBpbnB1dEVsZW1lbnRTaXplKCkge1xyXG4gICAgaWYgKHRoaXMuaW5wdXRFbGVtZW50KSB7XHJcbiAgICAgIGlmICh0aGlzLnNlbGVjdGVkT3B0aW9ucy5sZW5ndGggPiAwIHx8IHRoaXMuc2VsZWN0aW9uVHlwZSA9PT0gJ2NvdW50ZXInKSB7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ3NpemUnLCAodGhpcy5zZWFyY2hWYWx1ZS5sZW5ndGggKyAyKS50b1N0cmluZygpKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUF0dHJpYnV0ZSh0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LCAnc2l6ZScpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBoYW5kbGVTZWFyY2hLZXlEb3duKCRldmVudDogS2V5Ym9hcmRFdmVudCkge1xyXG4gICAgaWYgKHRoaXMuc2VhcmNoVmFsdWUubGVuZ3RoIHx8IHRoaXMuc2VsZWN0ZWRPcHRpb25zLmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xyXG5cclxuICAgIGlmIChbJ0JhY2tzcGFjZScsICdEZWxldGUnXS5pbmNsdWRlcygkZXZlbnQua2V5KSkge1xyXG4gICAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgIGNvbnN0IGxhc3QgPSB0aGlzLnNlbGVjdGVkT3B0aW9ucy5maWx0ZXIob3B0aW9uID0+ICFvcHRpb24uZGlzYWJsZWQpLnBvcCgpO1xyXG4gICAgICB0aGlzLnNlbGVjdE9wdGlvbihsYXN0LCBmYWxzZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNlbGVjdE9wdGlvbihvcHRpb246IE11bHRpU2VsZWN0T3B0aW9uQ29tcG9uZW50LCBzZWxlY3RlZDogYm9vbGVhbikge1xyXG4gICAgdGhpcy5tdWx0aVNlbGVjdE9wdGlvbnMuZm9yRWFjaChpdGVtID0+IHtcclxuICAgICAgaWYgKGl0ZW0gPT09IG9wdGlvbikge1xyXG4gICAgICAgIG9wdGlvbi5zZWxlY3RlZCA9IHNlbGVjdGVkO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMuc2VsZWN0ZWRPcHRpb25zVXBkYXRlKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNlbGVjdGVkT3B0aW9uc1VwZGF0ZSgpIHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkT3B0aW9ucyA9IHRoaXMubXVsdGlTZWxlY3RPcHRpb25zLmZpbHRlcigob3B0aW9uKSA9PiAhIW9wdGlvbi5zZWxlY3RlZCk7XHJcbiAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgICB9KVxyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiZm9ybS1tdWx0aS1zZWxlY3Qtc2VsZWN0aW9uXCI+XHJcbiAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cInNlbGVjdGlvblR5cGUgPT09ICd0YWdzJ1wiPlxyXG4gICAgPGMtbXVsdGktc2VsZWN0LXRhZyAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIHNlbGVjdGVkT3B0aW9uczsgaW5kZXggYXMgaVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChyZW1vdmUpPVwiaGFuZGxlVGFnUmVtb3ZlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbb3B0aW9uXT1cIm9wdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhYmluZGV4PVwiLTFcIj5cclxuICAgIDwvYy1tdWx0aS1zZWxlY3QtdGFnPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcbiAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cInNlbGVjdGlvblR5cGUgPT09ICd0ZXh0JyAmJiAhIXNlbGVjdGVkT3B0aW9uc1RleHRcIj5cclxuICAgIDxzcGFuPnt7IHNlbGVjdGVkT3B0aW9uc1RleHQgfX08L3NwYW4+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuICA8bmctdGVtcGxhdGUgW25nSWZdPVwic2VsZWN0aW9uVHlwZSA9PT0gJ2NvdW50ZXInXCI+XHJcbiAgICA8c3BhbiAqbmdJZj1cImNvdW50ZXJUZXh0VHlwZSA9PT0gJ3N0cmluZyc7IGVsc2UgcGx1cmFsTWFwXCI+e3sgY291bnRlclRleHQgfX08L3NwYW4+XHJcbiAgICA8bmctdGVtcGxhdGUgI3BsdXJhbE1hcD5cclxuICAgICAgPHNwYW4+e3tzZWxlY3RlZE9wdGlvbnMubGVuZ3RofX0ge3sgc2VsZWN0ZWRPcHRpb25zLmxlbmd0aCB8IGkxOG5QbHVyYWw6IHNlbGVjdGlvblR5cGVDb3VudGVyVGV4dFBsdXJhbE1hcCA/PyB7IG90aGVyOiBjb3VudGVyVGV4dCB9IH19PC9zcGFuPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICA8L25nLXRlbXBsYXRlPlxyXG4gIDxuZy10ZW1wbGF0ZSBbbmdJZl09XCIhc2VhcmNoICYmIHNlbGVjdGVkT3B0aW9ucy5sZW5ndGggPT09IDAgJiYgc2VsZWN0aW9uVHlwZSAhPT0gJ2NvdW50ZXInXCI+XHJcbiAgICA8c3Bhbj57eyBwbGFjZWhvbGRlciB9fTwvc3Bhbj5cclxuICA8L25nLXRlbXBsYXRlPlxyXG48L2Rpdj5cclxuXHJcbjxpbnB1dFxyXG4gICNpbnB1dEVsZW1lbnRcclxuICAoa2V5ZG93bik9XCJoYW5kbGVTZWFyY2hLZXlEb3duKCRldmVudClcIlxyXG4gICpuZ0lmPVwic2VhcmNoICYmICFkaXNhYmxlZFwiXHJcbiAgWyhuZ01vZGVsKV09XCJzZWFyY2hWYWx1ZVwiXHJcbiAgW2Rpc2FibGVkXT1cImRpc2FibGVkIHx8ICFzZWFyY2hcIlxyXG4gIFtuZ0NsYXNzXT1cInsgJ2Zvcm0tbXVsdGktc2VsZWN0LXNlYXJjaCc6IHRydWUsIGRpc2FibGVkOiBkaXNhYmxlZCB9XCJcclxuICBbcGxhY2Vob2xkZXJdPVwic2VsZWN0ZWRPcHRpb25zLmxlbmd0aCA9PT0gMCAmJiBzZWxlY3Rpb25UeXBlICE9PSAnY291bnRlcicgPyBwbGFjZWhvbGRlciA6ICcnXCJcclxuICBhdXRvY29tcGxldGU9XCJvZmZcIlxyXG4gIHRhYmluZGV4PVwie3sgZGlzYWJsZWQgPyAnLTEnIDogJzAnIH19XCJcclxuICB0eXBlPVwidGV4dFwiXHJcbj5cclxuXHJcbjxidXR0b25cclxuICAoY2xpY2spPVwiY2xlYXJBbGxPcHRpb25zKCRldmVudClcIlxyXG4gICpuZ0lmPVwiY2xlYW5lciAmJiBzZWxlY3RlZE9wdGlvbnMubGVuZ3RoID4gMCAmJiAhZGlzYWJsZWRcIlxyXG4gIFtkaXNhYmxlZF09XCJkaXNhYmxlZCB8fCAhaXNEcm9wZG93blZpc2libGVcIlxyXG4gIGFyaWEtbGFiZWw9XCJDbGVhciBhbGxcIlxyXG4gIGNCdXR0b25DbG9zZVxyXG4gIGNsYXNzPVwiZm9ybS1tdWx0aS1zZWxlY3Qtc2VsZWN0aW9uLWNsZWFuZXJcIlxyXG4gIHNpemU9XCJzbVwiXHJcbj48L2J1dHRvbj5cclxuXHJcbjxkaXYgI2Ryb3Bkb3duRWxlbWVudCAqbmdJZj1cIiFkaXNhYmxlZFwiIGNsYXNzPVwiZm9ybS1tdWx0aS1zZWxlY3QtZHJvcGRvd25cIj5cclxuICA8bmctdGVtcGxhdGUgW25nSWZFbHNlXT1cIm9wdGlvbnNFbXB0eVwiIFtuZ0lmXT1cInZpc2libGVPcHRpb25zID4gMFwiPlxyXG4gICAgPGJ1dHRvbiAoY2xpY2spPVwic2VsZWN0QWxsT3B0aW9ucygpXCIgKm5nSWY9XCJzZWxlY3RBbGwgJiYgbXVsdGlwbGVcIiBjbGFzcz1cImZvcm0tbXVsdGktc2VsZWN0LWFsbFwiPlxyXG4gICAgICB7eyBzZWxlY3RBbGxMYWJlbCB9fVxyXG4gICAgPC9idXR0b24+XHJcbiAgICA8ZGl2ICNtdWx0aXNlbGVjdE9wdGlvbnNEaXZcclxuICAgICAgICAgW25nU3R5bGVdPVwib3B0aW9uc01heEhlaWdodCAhPT0gJ2F1dG8nID8geyAnbWF4SGVpZ2h0LnB4Jzogb3B0aW9uc01heEhlaWdodCwgb3ZlcmZsb3c6ICdzY3JvbGwnIH0gOiB7fVwiXHJcbiAgICAgICAgIGNsYXNzPVwiZm9ybS1tdWx0aS1zZWxlY3Qtb3B0aW9uc1wiXHJcbiAgICA+XHJcbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuICAgIDwvZGl2PlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcbiAgPG5nLXRlbXBsYXRlICNvcHRpb25zRW1wdHk+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1tdWx0aS1zZWxlY3Qtb3B0aW9ucy1lbXB0eVwiPnt7IHNlYXJjaE5vUmVzdWx0c0xhYmVsIH19PC9kaXY+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuPC9kaXY+XHJcbiJdfQ==
|
package/esm2020/lib/multi-select/multi-select-native-select/multi-select-native-select.component.mjs
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/common";
|
|
4
|
+
import * as i2 from "@angular/forms";
|
|
5
|
+
export class MultiSelectNativeSelectComponent {
|
|
6
|
+
constructor(changeDetectorRef) {
|
|
7
|
+
this.changeDetectorRef = changeDetectorRef;
|
|
8
|
+
this.form = '';
|
|
9
|
+
this.id = '';
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
MultiSelectNativeSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: MultiSelectNativeSelectComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
13
|
+
MultiSelectNativeSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.5", type: MultiSelectNativeSelectComponent, selector: "c-multi-select-native-select", inputs: { form: "form", id: "id", multiple: "multiple", name: "name", options: "options", disabled: "disabled" }, ngImport: i0, template: "<select [multiple]=\"multiple\" [name]=\"name\" style=\"display: none\" tabindex=\"-1\" [id]=\"id\" [disabled]=\"disabled\">\r\n <option\r\n *ngFor=\"let option of options\"\r\n [label]=\"option.label\"\r\n [attr.selected]=\"option.selected ? '' : null\"\r\n [value]=\"option.value\"\r\n [disabled]=\"disabled\"\r\n tabindex=\"-1\"\r\n ></option>\r\n</select>\r\n\r\n", styles: [":host{display:none}\n"], directives: [{ type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: MultiSelectNativeSelectComponent, decorators: [{
|
|
15
|
+
type: Component,
|
|
16
|
+
args: [{ selector: 'c-multi-select-native-select', changeDetection: ChangeDetectionStrategy.OnPush, template: "<select [multiple]=\"multiple\" [name]=\"name\" style=\"display: none\" tabindex=\"-1\" [id]=\"id\" [disabled]=\"disabled\">\r\n <option\r\n *ngFor=\"let option of options\"\r\n [label]=\"option.label\"\r\n [attr.selected]=\"option.selected ? '' : null\"\r\n [value]=\"option.value\"\r\n [disabled]=\"disabled\"\r\n tabindex=\"-1\"\r\n ></option>\r\n</select>\r\n\r\n", styles: [":host{display:none}\n"] }]
|
|
17
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { form: [{
|
|
18
|
+
type: Input
|
|
19
|
+
}], id: [{
|
|
20
|
+
type: Input
|
|
21
|
+
}], multiple: [{
|
|
22
|
+
type: Input
|
|
23
|
+
}], name: [{
|
|
24
|
+
type: Input
|
|
25
|
+
}], options: [{
|
|
26
|
+
type: Input
|
|
27
|
+
}], disabled: [{
|
|
28
|
+
type: Input
|
|
29
|
+
}] } });
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktc2VsZWN0LW5hdGl2ZS1zZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi9tdWx0aS1zZWxlY3QvbXVsdGktc2VsZWN0LW5hdGl2ZS1zZWxlY3QvbXVsdGktc2VsZWN0LW5hdGl2ZS1zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi9tdWx0aS1zZWxlY3QvbXVsdGktc2VsZWN0LW5hdGl2ZS1zZWxlY3QvbXVsdGktc2VsZWN0LW5hdGl2ZS1zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFxQixTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBUTdGLE1BQU0sT0FBTyxnQ0FBZ0M7SUFTM0MsWUFDUyxpQkFBb0M7UUFBcEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQVJwQyxTQUFJLEdBQVksRUFBRSxDQUFDO1FBQ25CLE9BQUUsR0FBWSxFQUFFLENBQUM7SUFRdEIsQ0FBQzs7NkhBWE0sZ0NBQWdDO2lIQUFoQyxnQ0FBZ0Msc0xDUjdDLHFZQVdBOzJGREhhLGdDQUFnQztrQkFONUMsU0FBUzsrQkFDRSw4QkFBOEIsbUJBR3ZCLHVCQUF1QixDQUFDLE1BQU07d0dBSXRDLElBQUk7c0JBQVosS0FBSztnQkFDRyxFQUFFO3NCQUFWLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYy1tdWx0aS1zZWxlY3QtbmF0aXZlLXNlbGVjdCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL211bHRpLXNlbGVjdC1uYXRpdmUtc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9tdWx0aS1zZWxlY3QtbmF0aXZlLXNlbGVjdC5jb21wb25lbnQuc2NzcyddLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNdWx0aVNlbGVjdE5hdGl2ZVNlbGVjdENvbXBvbmVudCB7XHJcblxyXG4gIEBJbnB1dCgpIGZvcm0/OiBzdHJpbmcgPSAnJztcclxuICBASW5wdXQoKSBpZD86IHN0cmluZyA9ICcnO1xyXG4gIEBJbnB1dCgpIG11bHRpcGxlPzogYm9vbGVhbjtcclxuICBASW5wdXQoKSBuYW1lPzogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIG9wdGlvbnM/OiBhbnk7XHJcbiAgQElucHV0KCkgZGlzYWJsZWQ/OiBib29sZWFuO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcclxuICApIHsgfVxyXG59XHJcbiIsIjxzZWxlY3QgW211bHRpcGxlXT1cIm11bHRpcGxlXCIgW25hbWVdPVwibmFtZVwiIHN0eWxlPVwiZGlzcGxheTogbm9uZVwiIHRhYmluZGV4PVwiLTFcIiBbaWRdPVwiaWRcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIj5cclxuICA8b3B0aW9uXHJcbiAgICAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIG9wdGlvbnNcIlxyXG4gICAgW2xhYmVsXT1cIm9wdGlvbi5sYWJlbFwiXHJcbiAgICBbYXR0ci5zZWxlY3RlZF09XCJvcHRpb24uc2VsZWN0ZWQgPyAnJyA6IG51bGxcIlxyXG4gICAgW3ZhbHVlXT1cIm9wdGlvbi52YWx1ZVwiXHJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgdGFiaW5kZXg9XCItMVwiXHJcbiAgPjwvb3B0aW9uPlxyXG48L3NlbGVjdD5cclxuXHJcbiJdfQ==
|