@coreui/angular-pro 4.0.0-alpha.2 → 4.0.0-alpha.6
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 +2 -2
- package/{esm2015/coreui-angular-pro.js → esm2020/coreui-angular-pro.mjs} +0 -0
- package/esm2020/lib/accordion/accordion/accordion.component.mjs +40 -0
- package/{esm2015/lib/accordion/accordion-button/accordion-button.directive.js → esm2020/lib/accordion/accordion-button/accordion-button.directive.mjs} +4 -4
- package/esm2020/lib/accordion/accordion-item/accordion-item.component.mjs +55 -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} +4 -4
- 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 +170 -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/{esm2015/lib/backdrop/backdrop.service.js → esm2020/lib/backdrop/backdrop.service.mjs} +4 -4
- 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} +4 -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 +134 -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 +60 -0
- package/esm2020/lib/carousel/carousel-state.mjs +71 -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/{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} +0 -0
- package/esm2020/lib/collapse/collapse.directive.mjs +125 -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/{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 +59 -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 +465 -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} +0 -0
- 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/{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} +4 -4
- package/{esm2015/lib/table/table.module.js → esm2020/lib/table/table.module.mjs} +5 -5
- 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 +42 -0
- package/fesm2015/{coreui-angular-pro.js → coreui-angular-pro.mjs} +1610 -1021
- package/fesm2015/coreui-angular-pro.mjs.map +1 -0
- package/fesm2020/coreui-angular-pro.mjs +10119 -0
- package/fesm2020/coreui-angular-pro.mjs.map +1 -0
- 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/package.json +25 -11
- package/public-api.d.ts +1 -0
- package/bundles/coreui-angular-pro.umd.js +0 -11658
- 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-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/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/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 -322
- 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 -41
- package/fesm2015/coreui-angular-pro.js.map +0 -1
|
@@ -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.0.3", ngImport: i0, type: ModalService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
14
|
+
ModalService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ModalService, providedIn: 'root' });
|
|
15
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", 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,465 @@
|
|
|
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
|
+
this.selectedOptions = this.multiSelectOptions.filter((option) => !!option.selected);
|
|
379
|
+
}
|
|
380
|
+
}
|
|
381
|
+
MultiSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", 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 });
|
|
382
|
+
MultiSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", 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: [
|
|
383
|
+
MultiSelectService,
|
|
384
|
+
// ListenersService,
|
|
385
|
+
{
|
|
386
|
+
provide: NG_VALUE_ACCESSOR,
|
|
387
|
+
useExisting: forwardRef(() => MultiSelectComponent),
|
|
388
|
+
multi: true
|
|
389
|
+
}
|
|
390
|
+
], 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\">\n <ng-template [ngIf]=\"selectionType === 'tags'\">\n <c-multi-select-tag *ngFor=\"let option of selectedOptions; index as i\"\n (remove)=\"handleTagRemove($event)\"\n [option]=\"option\"\n tabindex=\"-1\">\n </c-multi-select-tag>\n </ng-template>\n <ng-template [ngIf]=\"selectionType === 'text' && !!selectedOptionsText\">\n <span>{{ selectedOptionsText }}</span>\n </ng-template>\n <ng-template [ngIf]=\"selectionType === 'counter'\">\n <span *ngIf=\"counterTextType === 'string'; else pluralMap\">{{ counterText }}</span>\n <ng-template #pluralMap>\n <span>{{selectedOptions.length}} {{ selectedOptions.length | i18nPlural: selectionTypeCounterTextPluralMap ?? { other: counterText } }}</span>\n </ng-template>\n </ng-template>\n <ng-template [ngIf]=\"!search && selectedOptions.length === 0 && selectionType !== 'counter'\">\n <span>{{ placeholder }}</span>\n </ng-template>\n</div>\n\n<input\n #inputElement\n (keydown)=\"handleSearchKeyDown($event)\"\n *ngIf=\"search && !disabled\"\n [(ngModel)]=\"searchValue\"\n [disabled]=\"disabled || !search\"\n [ngClass]=\"{ 'form-multi-select-search': true, disabled: disabled }\"\n [placeholder]=\"selectedOptions.length === 0 && selectionType !== 'counter' ? placeholder : ''\"\n autocomplete=\"off\"\n tabindex=\"{{ disabled ? '-1' : '0' }}\"\n type=\"text\"\n>\n\n<button\n (click)=\"clearAllOptions($event)\"\n *ngIf=\"cleaner && selectedOptions.length > 0 && !disabled\"\n [disabled]=\"disabled || !isDropdownVisible\"\n aria-label=\"Clear all\"\n cButtonClose\n class=\"form-multi-select-selection-cleaner\"\n size=\"sm\"\n></button>\n\n<div #dropdownElement *ngIf=\"!disabled\" class=\"form-multi-select-dropdown\">\n <ng-template [ngIfElse]=\"optionsEmpty\" [ngIf]=\"visibleOptions > 0\">\n <button (click)=\"selectAllOptions()\" *ngIf=\"selectAll && multiple\" class=\"form-multi-select-all\">\n {{ selectAllLabel }}\n </button>\n <div #multiselectOptionsDiv\n [ngStyle]=\"optionsMaxHeight !== 'auto' ? { 'maxHeight.px': optionsMaxHeight, overflow: 'scroll' } : {}\"\n class=\"form-multi-select-options\"\n >\n <ng-content></ng-content>\n </div>\n </ng-template>\n <ng-template #optionsEmpty>\n <div class=\"form-multi-select-options-empty\">{{ searchNoResultsLabel }}</div>\n </ng-template>\n</div>\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 } });
|
|
391
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: MultiSelectComponent, decorators: [{
|
|
392
|
+
type: Component,
|
|
393
|
+
args: [{ selector: 'c-multi-select', exportAs: 'cMultiSelect', providers: [
|
|
394
|
+
MultiSelectService,
|
|
395
|
+
// ListenersService,
|
|
396
|
+
{
|
|
397
|
+
provide: NG_VALUE_ACCESSOR,
|
|
398
|
+
useExisting: forwardRef(() => MultiSelectComponent),
|
|
399
|
+
multi: true
|
|
400
|
+
}
|
|
401
|
+
], template: "<div class=\"form-multi-select-selection\">\n <ng-template [ngIf]=\"selectionType === 'tags'\">\n <c-multi-select-tag *ngFor=\"let option of selectedOptions; index as i\"\n (remove)=\"handleTagRemove($event)\"\n [option]=\"option\"\n tabindex=\"-1\">\n </c-multi-select-tag>\n </ng-template>\n <ng-template [ngIf]=\"selectionType === 'text' && !!selectedOptionsText\">\n <span>{{ selectedOptionsText }}</span>\n </ng-template>\n <ng-template [ngIf]=\"selectionType === 'counter'\">\n <span *ngIf=\"counterTextType === 'string'; else pluralMap\">{{ counterText }}</span>\n <ng-template #pluralMap>\n <span>{{selectedOptions.length}} {{ selectedOptions.length | i18nPlural: selectionTypeCounterTextPluralMap ?? { other: counterText } }}</span>\n </ng-template>\n </ng-template>\n <ng-template [ngIf]=\"!search && selectedOptions.length === 0 && selectionType !== 'counter'\">\n <span>{{ placeholder }}</span>\n </ng-template>\n</div>\n\n<input\n #inputElement\n (keydown)=\"handleSearchKeyDown($event)\"\n *ngIf=\"search && !disabled\"\n [(ngModel)]=\"searchValue\"\n [disabled]=\"disabled || !search\"\n [ngClass]=\"{ 'form-multi-select-search': true, disabled: disabled }\"\n [placeholder]=\"selectedOptions.length === 0 && selectionType !== 'counter' ? placeholder : ''\"\n autocomplete=\"off\"\n tabindex=\"{{ disabled ? '-1' : '0' }}\"\n type=\"text\"\n>\n\n<button\n (click)=\"clearAllOptions($event)\"\n *ngIf=\"cleaner && selectedOptions.length > 0 && !disabled\"\n [disabled]=\"disabled || !isDropdownVisible\"\n aria-label=\"Clear all\"\n cButtonClose\n class=\"form-multi-select-selection-cleaner\"\n size=\"sm\"\n></button>\n\n<div #dropdownElement *ngIf=\"!disabled\" class=\"form-multi-select-dropdown\">\n <ng-template [ngIfElse]=\"optionsEmpty\" [ngIf]=\"visibleOptions > 0\">\n <button (click)=\"selectAllOptions()\" *ngIf=\"selectAll && multiple\" class=\"form-multi-select-all\">\n {{ selectAllLabel }}\n </button>\n <div #multiselectOptionsDiv\n [ngStyle]=\"optionsMaxHeight !== 'auto' ? { 'maxHeight.px': optionsMaxHeight, overflow: 'scroll' } : {}\"\n class=\"form-multi-select-options\"\n >\n <ng-content></ng-content>\n </div>\n </ng-template>\n <ng-template #optionsEmpty>\n <div class=\"form-multi-select-options-empty\">{{ searchNoResultsLabel }}</div>\n </ng-template>\n</div>\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"] }]
|
|
402
|
+
}], 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: [{
|
|
403
|
+
type: Input
|
|
404
|
+
}], disabled: [{
|
|
405
|
+
type: Input
|
|
406
|
+
}], multiple: [{
|
|
407
|
+
type: Input
|
|
408
|
+
}], nativeName: [{
|
|
409
|
+
type: Input
|
|
410
|
+
}], nativeId: [{
|
|
411
|
+
type: Input
|
|
412
|
+
}], optionsMaxHeight: [{
|
|
413
|
+
type: Input
|
|
414
|
+
}], optionsStyle: [{
|
|
415
|
+
type: Input
|
|
416
|
+
}], placeholder: [{
|
|
417
|
+
type: Input
|
|
418
|
+
}], search: [{
|
|
419
|
+
type: Input
|
|
420
|
+
}], searchNoResultsLabel: [{
|
|
421
|
+
type: Input
|
|
422
|
+
}], selectAll: [{
|
|
423
|
+
type: Input
|
|
424
|
+
}], selectAllLabel: [{
|
|
425
|
+
type: Input
|
|
426
|
+
}], selectionType: [{
|
|
427
|
+
type: Input
|
|
428
|
+
}], selectionTypeCounterText: [{
|
|
429
|
+
type: Input
|
|
430
|
+
}], selectionTypeCounterTextPluralMap: [{
|
|
431
|
+
type: Input
|
|
432
|
+
}], value: [{
|
|
433
|
+
type: Input
|
|
434
|
+
}], valueChange: [{
|
|
435
|
+
type: Output
|
|
436
|
+
}], visible: [{
|
|
437
|
+
type: Input
|
|
438
|
+
}], visibleChange: [{
|
|
439
|
+
type: Output
|
|
440
|
+
}], multiSelectOptions: [{
|
|
441
|
+
type: ContentChildren,
|
|
442
|
+
args: [MultiSelectOptionComponent, { descendants: true }]
|
|
443
|
+
}], inputElement: [{
|
|
444
|
+
type: ViewChild,
|
|
445
|
+
args: ['inputElement']
|
|
446
|
+
}], dropdownElement: [{
|
|
447
|
+
type: ViewChild,
|
|
448
|
+
args: ['dropdownElement']
|
|
449
|
+
}], hostClasses: [{
|
|
450
|
+
type: HostBinding,
|
|
451
|
+
args: ['class']
|
|
452
|
+
}], tabIndex: [{
|
|
453
|
+
type: HostBinding,
|
|
454
|
+
args: ['attr.tabindex']
|
|
455
|
+
}], onKeyUp: [{
|
|
456
|
+
type: HostListener,
|
|
457
|
+
args: ['keyup', ['$event']]
|
|
458
|
+
}], onKeyDown: [{
|
|
459
|
+
type: HostListener,
|
|
460
|
+
args: ['keydown', ['$event']]
|
|
461
|
+
}], onClick: [{
|
|
462
|
+
type: HostListener,
|
|
463
|
+
args: ['click', ['$event']]
|
|
464
|
+
}] } });
|
|
465
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmV1aS1hbmd1bGFyL3NyYy9saWIvbXVsdGktc2VsZWN0L211bHRpLXNlbGVjdC9tdWx0aS1zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi9tdWx0aS1zZWxlY3QvbXVsdGktc2VsZWN0L211bHRpLXNlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBSUwsU0FBUyxFQUNULGVBQWUsRUFFZixZQUFZLEVBQ1osVUFBVSxFQUNWLFdBQVcsRUFDWCxZQUFZLEVBQ1osS0FBSyxFQUlMLE1BQU0sRUFHTixTQUFTLEVBRVYsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGVBQWUsRUFBNkIsTUFBTSxtQkFBbUIsQ0FBQztBQUMvRSxPQUFPLEVBQWdCLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDNUUsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBS3pFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzdELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLG9FQUFvRSxDQUFDOzs7Ozs7OztBQW9DdEgsTUFBTSxPQUFPLG9CQUFvQjtJQUcvQixZQUNVLFVBQXNCLEVBQ3RCLFFBQW1CLEVBQ25CLE1BQWMsRUFDZCxpQkFBb0MsRUFDcEMsZ0JBQWtDLEVBQ2xDLFlBQTBCLEVBQzFCLGtCQUFzQztJQUM5Qyw2Q0FBNkM7O1FBUHJDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixXQUFNLEdB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QUFLO2dCQUdGLFFBQVE7c0JBRFgsS0FBSztnQkFVRixRQUFRO3NCQURYLEtBQUs7Z0JBU0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyx3QkFBd0I7c0JBQWhDLEtBQUs7Z0JBQ0csaUNBQWlDO3NCQUF6QyxLQUFLO2dCQUdGLEtBQUs7c0JBRFIsS0FBSztnQkFlYSxXQUFXO3NCQUE3QixNQUFNO2dCQUdILE9BQU87c0JBRFYsS0FBSztnQkFnQmEsYUFBYTtzQkFBL0IsTUFBTTtnQkErQjZELGtCQUFrQjtzQkFBckYsZUFBZTt1QkFBQywwQkFBMEIsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUU7Z0JBSXZDLFlBQVk7c0JBQXRDLFNBQVM7dUJBQUMsY0FBYztnQkFDSyxlQUFlO3NCQUE1QyxTQUFTO3VCQUFDLGlCQUFpQjtnQkFFRixXQUFXO3NCQUFwQyxXQUFXO3VCQUFDLE9BQU87Z0JBVVIsUUFBUTtzQkFEbkIsV0FBVzt1QkFBQyxlQUFlO2dCQVdPLE9BQU87c0JBQXpDLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQXlCSSxTQUFTO3NCQUE3QyxZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFLQSxPQUFPO3NCQUF6QyxZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBmb3J3YXJkUmVmLFxuICBIb3N0QmluZGluZyxcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgTmdab25lLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG4gIFJlbmRlcmVyMixcbiAgVmlld0NoaWxkLFxuICBWaWV3Q29udGFpbmVyUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9jdXNLZXlNYW5hZ2VyLCBGb2N1c01vbml0b3IsIEZvY3VzT3JpZ2luIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgQm9vbGVhbklucHV0LCBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbi8vIGltcG9ydCB7IExpc3RlbmVyc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9saXN0ZW5lcnMuc2VydmljZSc7XG5pbXBvcnQgeyBJTXVsdGlTZWxlY3QsIElPcHRpb24gfSBmcm9tICcuLi9tdWx0aS1zZWxlY3QudHlwZSc7XG5pbXBvcnQgeyBNdWx0aVNlbGVjdFNlcnZpY2UgfSBmcm9tICcuLi9tdWx0aS1zZWxlY3Quc2VydmljZSc7XG5pbXBvcnQgeyBNdWx0aVNlbGVjdE9wdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uL211bHRpLXNlbGVjdC1vcHRpb24vbXVsdGktc2VsZWN0LW9wdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgTXVsdGlTZWxlY3ROYXRpdmVTZWxlY3RDb21wb25lbnQgfSBmcm9tICcuLi9tdWx0aS1zZWxlY3QtbmF0aXZlLXNlbGVjdC9tdWx0aS1zZWxlY3QtbmF0aXZlLXNlbGVjdC5jb21wb25lbnQnO1xuXG4vLyBjb25zdCBmbGF0dGVuQXJyYXkgPSAob3B0aW9uczogSU9wdGlvbltdKTogSU9wdGlvbltdID0+IHtcbi8vICAgcmV0dXJuIG9wdGlvbnMucmVkdWNlKChhY2M6IElPcHRpb25bXSwgdmFsOiBJT3B0aW9uKSA9PiB7XG4vLyAgICAgcmV0dXJuIGFjYy5jb25jYXQoQXJyYXkuaXNBcnJheSh2YWwub3B0aW9ucykgPyBmbGF0dGVuQXJyYXkodmFsLm9wdGlvbnMpIDogdmFsKTtcbi8vICAgfSwgW10pO1xuLy8gfTtcbi8vXG4vLyBjb25zdCBnZXRTZWxlY3RlZE9wdGlvbnMgPSAob3B0aW9uczogSU9wdGlvbltdKSA9PiB7XG4vLyAgIHJldHVybiBmbGF0dGVuQXJyYXkob3B0aW9ucykuZmlsdGVyKChvcHRpb246IElPcHRpb24pID0+IHtcbi8vICAgICBpZiAob3B0aW9uLnNlbGVjdGVkKSB7XG4vLyAgICAgICByZXR1cm4gb3B0aW9uO1xuLy8gICAgIH1cbi8vICAgICByZXR1cm47XG4vLyAgIH0pO1xuLy8gfTtcblxuaW50ZXJmYWNlIElQbHVyYWxNYXAge1xuICBbazogc3RyaW5nXTogc3RyaW5nO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjLW11bHRpLXNlbGVjdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9tdWx0aS1zZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tdWx0aS1zZWxlY3QuY29tcG9uZW50LnNjc3MnXSxcbiAgZXhwb3J0QXM6ICdjTXVsdGlTZWxlY3QnLFxuICBwcm92aWRlcnM6IFtcbiAgICBNdWx0aVNlbGVjdFNlcnZpY2UsXG4gICAgLy8gTGlzdGVuZXJzU2VydmljZSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IE11bHRpU2VsZWN0Q29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIE11bHRpU2VsZWN0Q29tcG9uZW50XG4gIGltcGxlbWVudHMgSU11bHRpU2VsZWN0LCBDb250cm9sVmFsdWVBY2Nlc3NvciwgQWZ0ZXJDb250ZW50SW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95LCBPbkluaXQge1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSxcbiAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgcHJpdmF0ZSBmb2N1c01vbml0b3I6IEZvY3VzTW9uaXRvcixcbiAgICBwcml2YXRlIG11bHRpU2VsZWN0U2VydmljZTogTXVsdGlTZWxlY3RTZXJ2aWNlXG4gICAgLy8gcHJpdmF0ZSBsaXN0ZW5lcnNTZXJ2aWNlOiBMaXN0ZW5lcnNTZXJ2aWNlXG4gICkge31cblxuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfbXVsdGlwbGU6IEJvb2xlYW5JbnB1dDtcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2Rpc2FibGVkOiBCb29sZWFuSW5wdXQ7XG5cbiAgb25DaGFuZ2U6IGFueSA9ICh2YWx1ZTogYW55KSA9PiB7fTtcblxuICB3cml0ZVZhbHVlKHZhbHVlOiAoc3RyaW5nIHwgc3RyaW5nW10pKTogdm9pZCB7XG4gICAgaWYgKHZhbHVlICE9PSBudWxsKSB7XG4gICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gIH1cblxuICBASW5wdXQoKSBjbGVhbmVyID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9kaXNhYmxlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gIH1cbiAgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZDtcbiAgfVxuICBwcml2YXRlIF9kaXNhYmxlZCA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHNldCBtdWx0aXBsZSh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX211bHRpcGxlID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgfVxuICBnZXQgbXVsdGlwbGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX211bHRpcGxlO1xuICB9XG4gIHByaXZhdGUgX211bHRpcGxlID0gZmFsc2U7XG5cbiAgQElucHV0KCkgbmF0aXZlTmFtZSA9ICcnO1xuICBASW5wdXQoKSBuYXRpdmVJZCA9ICcnO1xuICAvLyBASW5wdXQoKSBvcHRpb25zID0gW107XG4gIEBJbnB1dCgpIG9wdGlvbnNNYXhIZWlnaHQgPSAnYXV0byc7XG4gIEBJbnB1dCgpIG9wdGlvbnNTdHlsZTogJ2NoZWNrYm94JyB8ICd0ZXh0JyA9ICdjaGVja2JveCc7XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyID0gJ1NlbGVjdC4uLic7XG4gIEBJbnB1dCgpIHNlYXJjaCA9IHRydWU7XG4gIEBJbnB1dCgpIHNlYXJjaE5vUmVzdWx0c0xhYmVsID0gJ25vIGl0ZW1zJztcbiAgQElucHV0KCkgc2VsZWN0QWxsID0gdHJ1ZTtcbiAgQElucHV0KCkgc2VsZWN0QWxsTGFiZWwgPSAnU2VsZWN0IGFsbCBvcHRpb25zJztcbiAgQElucHV0KCkgc2VsZWN0aW9uVHlwZTogJ2NvdW50ZXInIHwgJ3RhZ3MnIHwgJ3RleHQnID0gJ3RhZ3MnO1xuICBASW5wdXQoKSBzZWxlY3Rpb25UeXBlQ291bnRlclRleHQ6IHN0cmluZyA9ICdpdGVtKHMpIHNlbGVjdGVkJztcbiAgQElucHV0KCkgc2VsZWN0aW9uVHlwZUNvdW50ZXJUZXh0UGx1cmFsTWFwPzogSVBsdXJhbE1hcCA9IHsgJz0xJzogJ2l0ZW0gc2VsZWN0ZWQnLCAnb3RoZXInOiAnaXRlbXMgc2VsZWN0ZWQnIH07XG5cbiAgQElucHV0KClcbiAgc2V0IHZhbHVlKHZhbHVlOiBzdHJpbmcgfCBzdHJpbmdbXSkge1xuICAgIGNvbnN0IG5ld1ZhbHVlID0gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyBbLi4udmFsdWVdIDogW3ZhbHVlID8/ICcnXTtcbiAgICBpZiAodGhpcy5fdmFsdWUudG9TdHJpbmcoKSAhPT0gbmV3VmFsdWUudG9TdHJpbmcoKSkge1xuICAgICAgdGhpcy5fdmFsdWUgPSBuZXdWYWx1ZTtcbiAgICAgIHRoaXMub25DaGFuZ2UobmV3VmFsdWUpO1xuICAgICAgdGhpcy51cGRhdGVOYXRpdmVTZWxlY3QoKTtcbiAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh0aGlzLnZhbHVlKTtcbiAgICB9XG4gIH1cbiAgZ2V0IHZhbHVlKCkge1xuICAgIHJldHVybiB0aGlzLm11bHRpcGxlID8gWy4uLnRoaXMuX3ZhbHVlXSA6IHRoaXMuX3ZhbHVlWzBdPy50b1N0cmluZygpID8/ICcnO1xuICB9XG4gIHByaXZhdGUgX3ZhbHVlOiBzdHJpbmdbXSA9IFsnJ107XG5cbiAgQE91dHB1dCgpIHJlYWRvbmx5IHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmcgfCBzdHJpbmdbXT4oKTtcblxuICBASW5wdXQoKVxuICBzZXQgdmlzaWJsZSh2YWx1ZTogYm9vbGVhbikge1xuICAgIGNvbnN0IG5ld1ZhbHVlID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICBpZiAobmV3VmFsdWUgIT09IHRoaXMuX3Zpc2libGUpIHtcbiAgICAgIHRoaXMuX3Zpc2libGUgPSBuZXdWYWx1ZTtcbiAgICAgIHRoaXMubXVsdGlTZWxlY3RTZXJ2aWNlLnRvZ2dsZVZpc2libGUobmV3VmFsdWUpO1xuICAgICAgaWYgKG5ld1ZhbHVlKSB7XG4gICAgICAgIHRoaXMubGlzdEtleU1hbmFnZXIuc2V0Rmlyc3RJdGVtQWN0aXZlKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGdldCB2aXNpYmxlKCkge1xuICAgIHJldHVybiB0aGlzLl92aXNpYmxlO1xuICB9XG4gIHByaXZhdGUgX3Zpc2libGUgPSBmYWxzZTtcblxuICBAT3V0cHV0KCkgcmVhZG9ubHkgdmlzaWJsZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICBpc0Ryb3Bkb3duVmlzaWJsZSA9IGZhbHNlO1xuXG4gIHNldCBzZWxlY3RlZE9wdGlvbnModmFsdWUpIHtcbiAgICB0aGlzLl9zZWxlY3RlZE9wdGlvbnMgPSB2YWx1ZTtcbiAgICB0aGlzLnZhbHVlID0gdGhpcy5zZWxlY3RlZE9wdGlvbnMubWFwKGl0ZW0gPT4gaXRlbS52YWx1ZSk7XG4gICAgdGhpcy5pbnB1dEVsZW1lbnRTaXplKCk7XG4gIH1cbiAgZ2V0IHNlbGVjdGVkT3B0aW9ucygpIHtcbiAgICByZXR1cm4gdGhpcy5fc2VsZWN0ZWRPcHRpb25zO1xuICB9XG4gIHByaXZhdGUgX3NlbGVjdGVkT3B0aW9uczogYW55W10gPSBbXTtcblxuICBnZXQgc2VsZWN0ZWRPcHRpb25zVGV4dCgpIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZE9wdGlvbnMubWFwKChvcHRpb24pID0+IG9wdGlvbi5sYWJlbCkuam9pbignLCAnKTtcbiAgfVxuXG4gIGdldCBjb3VudGVyVGV4dCgpIHtcbiAgICByZXR1cm4gYCR7dGhpcy5zZWxlY3RlZE9wdGlvbnMubGVuZ3RofSAke3RoaXMuc2VsZWN0aW9uVHlwZUNvdW50ZXJUZXh0fWA7XG4gIH1cblxuICBnZXQgY291bnRlclRleHRUeXBlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHR5cGVvZiB0aGlzLnNlbGVjdGlvblR5cGVDb3VudGVyVGV4dFBsdXJhbE1hcCA/PyB0eXBlb2YgdGhpcy5zZWxlY3Rpb25UeXBlQ291bnRlclRleHQ7XG4gIH07XG5cbiAgcHJpdmF0ZSBtdWx0aXNlbGVjdFN0YXRlU3Vic2NyaXB0aW9uITogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIG11bHRpc2VsZWN0VmlzaWJsZVN1YnNjcmlwdGlvbiE6IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSBtdWx0aVNlbGVjdE9wdGlvbnNTdWJzY3JpcHRpb24hOiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgZm9jdXNNb25pdG9yU3Vic2NyaXB0aW9uITogU3Vic2NyaXB0aW9uO1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oTXVsdGlTZWxlY3RPcHRpb25Db21wb25lbnQsIHsgZGVzY2VuZGFudHM6IHRydWUgfSkgbXVsdGlTZWxlY3RPcHRpb25zITogUXVlcnlMaXN0PE11bHRpU2VsZWN0T3B0aW9uQ29tcG9uZW50PjtcblxuICBwcml2YXRlIGxpc3RLZXlNYW5hZ2VyITogRm9jdXNLZXlNYW5hZ2VyPE11bHRpU2VsZWN0T3B0aW9uQ29tcG9uZW50PjtcblxuICBAVmlld0NoaWxkKCdpbnB1dEVsZW1lbnQnKSBpbnB1dEVsZW1lbnQhOiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCdkcm9wZG93bkVsZW1lbnQnKSBkcm9wZG93bkVsZW1lbnQhOiBFbGVtZW50UmVmO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKSBnZXQgaG9zdENsYXNzZXMoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICdmb3JtLW11bHRpLXNlbGVjdCc6IHRydWUsXG4gICAgICAnZm9ybS1tdWx0aS1zZWxlY3Qtc2VsZWN0aW9uLXRhZ3MnOiB0aGlzLnNlbGVjdGlvblR5cGUgPT09ICd0YWdzJyxcbiAgICAgIHNob3c6IHRoaXMudmlzaWJsZSxcbiAgICAgIGRpc2FibGVkOiB0aGlzLmRpc2FibGVkXG4gICAgfTtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnYXR0ci50YWJpbmRleCcpXG4gIHByaXZhdGUgZ2V0IHRhYkluZGV4KCkge1xuICAgIHJldHVybiB0aGlzLl90YWJJbmRleDtcbiAgfVxuICBwcml2YXRlIHNldCB0YWJJbmRleCh2YWx1ZSkge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5fdGFiSW5kZXggPSB0aGlzLmRpc2FibGVkIHx8IHRoaXMuc2VhcmNoID8gJy0xJyA6IHZhbHVlID09PSBudWxsID8gbnVsbCA6ICcwJztcbiAgICB9KTtcbiAgfVxuICBwcml2YXRlIF90YWJJbmRleDogc3RyaW5nIHwgbnVsbCA9ICctMSc7XG5cbiAgQEhvc3RMaXN0ZW5lcigna2V5dXAnLCBbJyRldmVudCddKSBvbktleVVwKCRldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSByZXR1cm47XG5cbiAgICBpZiAoJGV2ZW50LmtleSA9PT0gJ0VzY2FwZScpIHtcbiAgICAgIHRoaXMudmlzaWJsZSA9IGZhbHNlO1xuICAgICAgdGhpcy5zZWFyY2hWYWx1ZSA9ICcnO1xuICAgICAgdGhpcy5zZXRGb2N1cygpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoWydFbnRlcicsICcgJywgJ0Fycm93RG93biddLmluY2x1ZGVzKCRldmVudC5rZXkpICYmIFt0aGlzLmlucHV0RWxlbWVudD8ubmF0aXZlRWxlbWVudCA/PyB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudF0uaW5jbHVkZXMoJGV2ZW50LnRhcmdldCkpIHtcbiAgICAgIHRoaXMudmlzaWJsZSA9IHRydWU7XG4gICAgICBpZiAoIXRoaXMuc2VhcmNoKSB7XG4gICAgICAgIHRoaXMuc2V0Rm9jdXMoKTtcbiAgICAgIH1cbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKCRldmVudC5rZXkgPT09ICdUYWInICYmICRldmVudC50YXJnZXQgPT09IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KSB7XG4gICAgICB0aGlzLnZpc2libGUgPSB0cnVlO1xuICAgICAgaWYgKCF0aGlzLnNlYXJjaCkge1xuICAgICAgICB0aGlzLnNldEZvY3VzKCk7XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bicsIFsnJGV2ZW50J10pIG9uS2V5RG93bigkZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkgcmV0dXJuO1xuICAgIHRoaXMubGlzdEtleU1hbmFnZXIub25LZXlkb3duKCRldmVudCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pIG9uQ2xpY2soJGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHJldHVybjtcbiAgICBpZiAoIXRoaXMudmlzaWJsZSkge1xuICAgICAgdGhpcy52aXNpYmxlID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgdmlzaWJsZU9wdGlvbnMgPSAwO1xuXG4gIHNldCBzZWFyY2hWYWx1ZSh2YWx1ZSkge1xuICAgIHRoaXMuX3NlYXJjaFZhbHVlID0gdmFsdWUudHJpbSgpO1xuICAgIHRoaXMudmlzaWJsZSA9ICEhdGhpcy5zZWFyY2hWYWx1ZS5sZW5ndGggfHwgdGhpcy52aXNpYmxlO1xuICAgIHRoaXMuZmlsdGVyT3B0aW9ucyh0aGlzLnNlYXJjaFZhbHVlKTtcbiAgICB0aGlzLmlucHV0RWxlbWVudFNpemUoKTtcbiAgfVxuICBnZXQgc2VhcmNoVmFsdWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3NlYXJjaFZhbHVlO1xuICB9XG4gIHByaXZhdGUgX3NlYXJjaFZhbHVlOiBzdHJpbmcgPSAnJztcblxuICBnZXQgc3VidHJlZUZvY3VzZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3N1YnRyZWVGb2N1c2VkO1xuICB9XG4gIHNldCBzdWJ0cmVlRm9jdXNlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX3N1YnRyZWVGb2N1c2VkID0gdGhpcy5kaXNhYmxlZCA/IGZhbHNlIDogdmFsdWU7XG4gICAgdGhpcy52aXNpYmxlID0gdmFsdWUgPT09IGZhbHNlID8gZmFsc2UgOiB0aGlzLnZpc2libGU7XG4gIH1cbiAgcHJpdmF0ZSBfc3VidHJlZUZvY3VzZWQgPSB0aGlzLmZvY3VzT3JpZ2luKG51bGwpO1xuXG4gIHByaXZhdGUgbmF0aXZlU2VsZWN0UmVmITogYW55O1xuXG4gIGZvY3VzT3JpZ2luKG9yaWdpbjogRm9jdXNPcmlnaW4pOiBib29sZWFuIHtcbiAgICBjb25zdCBmb2N1c2VkID0gISFvcmlnaW47XG4gICAgdGhpcy5zZWFyY2hWYWx1ZSA9IGZvY3VzZWQgPyB0aGlzLnNlYXJjaFZhbHVlIDogJyc7XG4gICAgcmV0dXJuIGZvY3VzZWQ7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnRhYkluZGV4ID0gJzAnO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5tdWx0aXNlbGVjdFN1YnNjcmliZShmYWxzZSk7XG4gICAgLy8gdGhpcy5jbGVhckxpc3RlbmVycygpO1xuICAgIHRoaXMuZm9jdXNNb25pdG9yLnN0b3BNb25pdG9yaW5nKHRoaXMuZWxlbWVudFJlZik7XG4gICAgdGhpcy5mb2N1c01vbml0b3JTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgdGhpcy52aXNpYmxlT3B0aW9ucyA9IHRoaXMubXVsdGlTZWxlY3RPcHRpb25zLmxlbmd0aDtcbiAgICB0aGlzLm11bHRpU2VsZWN0T3B0aW9ucy5mb3JFYWNoKChvcHRpb24sIGluZGV4KSA9PiB7XG4gICAgICBvcHRpb24ub3B0aW9uc1N0eWxlID0gdGhpcy5vcHRpb25zU3R5bGU7XG4gICAgICBvcHRpb24uc2VsZWN0ZWQgPSBvcHRpb24udmFsdWUgIT09IHVuZGVmaW5lZCA/IHRoaXMudmFsdWUuaW5jbHVkZXMob3B0aW9uLnZhbHVlKSB8fCBvcHRpb24uc2VsZWN0ZWQgOiBvcHRpb24uc2VsZWN0ZWQ7XG4gICAgfSk7XG4gICAgdGhpcy5zZWxlY3RlZE9wdGlvbnNVcGRhdGUoKTtcbiAgICB0aGlzLmlucHV0RWxlbWVudFNpemUoKTtcblxuICAgIHRoaXMubGlzdEtleU1hbmFnZXIgPSBuZXcgRm9jdXNLZXlNYW5hZ2VyKHRoaXMubXVsdGlTZWxlY3RPcHRpb25zKS53aXRoSG9tZUFuZEVuZCgpLndpdGhUeXBlQWhlYWQoKTtcbiAgICB0aGlzLmxpc3RLZXlNYW5hZ2VyLnNraXBQcmVkaWNhdGUoaXRlbSA9PiAoIWl0ZW0udmlzaWJsZSB8fCBpdGVtLmRpc2FibGVkKSk7XG4gICAgdGhpcy5saXN0S2V5TWFuYWdlci5zZXRGaXJzdEl0ZW1BY3RpdmUoKTtcbiAgICB0aGlzLm11bHRpc2VsZWN0U3Vic2NyaWJlKCk7XG4gICAgdGhpcy5jcmVhdGVOYXRpdmVTZWxlY3QoKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAvLyB0aGlzLnNldExpc3RlbmVycygpO1xuICAgIHRoaXMuZm9jdXNNb25pdG9yU3Vic2NyaXB0aW9uID0gdGhpcy5mb2N1c01vbml0b3IubW9uaXRvcih0aGlzLmVsZW1lbnRSZWYsIHRydWUpLnN1YnNjcmliZSgob3JpZ2luKSA9PlxuICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgICAgdGhpcy5zdWJ0cmVlRm9jdXNlZCA9IHRoaXMuZm9jdXNPcmlnaW4ob3JpZ2luKTtcbiAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG4gICAgdGhpcy5pbnB1dEVsZW1lbnRTaXplKCk7XG4gIH1cblxuICBwcml2YXRlIG11bHRpc2VsZWN0U3Vic2NyaWJlKHN1YnNjcmliZTogYm9vbGVhbiA9IHRydWUpIHtcbiAgICBpZiAoc3Vic2NyaWJlKSB7XG4gICAgICB0aGlzLm11bHRpc2VsZWN0VmlzaWJsZVN1YnNjcmlwdGlvbiA9IHRoaXMubXVsdGlTZWxlY3RTZXJ2aWNlLm11bHRpU2VsZWN0VmlzaWJsZSQuc3Vic2NyaWJlKFxuICAgICAgICAodmlzaWJsZSkgPT4ge1xuICAgICAgICAgIHRoaXMuaXNEcm9wZG93blZpc2libGUgPSB2aXNpYmxlO1xuICAgICAgICAgIHRoaXMudmlzaWJsZUNoYW5nZS5lbWl0KHZpc2libGUpO1xuICAgICAgICB9XG4gICAgICApO1xuXG4gICAgICB0aGlzLm11bHRpc2VsZWN0U3RhdGVTdWJzY3JpcHRpb24gPSB0aGlzLm11bHRpU2VsZWN0U2VydmljZS5tdWx0aVNlbGVjdFN0YXRlJC5zdWJzY3JpYmUoXG4gICAgICAgIChvcHRpb24pID0+IHtcbiAgICAgICAgICBpZiAob3B0aW9uLnNlbGVjdGVkID09PSB0cnVlICYmICF0aGlzLm11bHRpcGxlKSB7XG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZE9wdGlvbnMgPSB0aGlzLm11bHRpU2VsZWN0T3B0aW9ucy50b0FycmF5KCkuZmlsdGVyKChpdGVtKSA9PiBpdGVtLnNlbGVjdGVkKTtcbiAgICAgICAgICAgIHNlbGVjdGVkT3B0aW9ucy5yZXZlcnNlKCkuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgICBpZiAoaXRlbSAhPT0gb3B0aW9uKSB7XG4gICAgICAgICAgICAgICAgaXRlbS5zZWxlY3RlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZE9wdGlvbnNVcGRhdGUoKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5tdWx0aXNlbGVjdFZpc2libGVTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgICB0aGlzLm11bHRpU2VsZWN0T3B0aW9uc1N1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICAgIHRoaXMubXVsdGlzZWxlY3RTdGF0ZVN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBjbGVhckFsbE9wdGlvbnMoJGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgdGhpcy5zZWxlY3RlZE9wdGlvbnMuZm9yRWFjaCgob3B0aW9uKSA9PiB7XG4gICAgICBpZiAoIW9wdGlvbi5fZGlzYWJsZWQpIG9wdGlvbi5zZWxlY3RlZCA9IGZhbHNlO1xuICAgIH0pO1xuICAgIHRoaXMuc2V0Rm9jdXMoKTtcbiAgfVxuXG4gIHNlbGVjdEFsbE9wdGlvbnMoKSB7XG4gICAgdGhpcy5tdWx0aVNlbGVjdE9wdGlvbnMuZm9yRWFjaCgob3B0aW9uLCBpbmRleCkgPT4ge1xuICAgICAgaWYgKCFvcHRpb24uZGlzYWJsZWQpIG9wdGlvbi5zZWxlY3RlZCA9IHRydWU7XG4gICAgfSk7XG4gIH1cblxuICAvLyBwcml2YXRlIHNldExpc3RlbmVycygpIHtcbiAgLy8gICBpZiAodGhpcy5zZWFyY2gpIHtcbiAgLy8gICAgIGNvbnN0IGNvbmZpZ0ZvcklucHV0OiBJTGlzdGVuZXJzQ29uZmlnID0ge1xuICAvLyAgICAgICBob3N0RWxlbWVudDogdGhpcy5pbnB1dEVsZW1lbnQgPz8gdGhpcy5lbGVtZW50UmVmLFxuICAvLyAgICAgICB0cmlnZ2VyOiBbJ2ZvY3VzJywgJ2NsaWNrJ10sXG4gIC8vICAgICAgIGNhbGxiYWNrT246ICgpID0+IHtcbiAgLy8gICAgICAgICBjb25zb2xlLmxvZygnZm9jdXMgaW5wdXQnKTtcbiAgLy8gICAgICAgICB0aGlzLnRhYkluZGV4ID0gbnVsbDtcbiAgLy8gICAgICAgICAvLyB0aGlzLnZpc2libGUgPSB0cnVlO1xuICAvLyAgICAgICB9XG4gIC8vICAgICB9O1xuICAvLyAgICAgdGhpcy5saXN0ZW5lcnNTZXJ2aWNlLnNldExpc3RlbmVycyhjb25maWdGb3JJbnB1dCk7XG4gIC8vICAgfVxuICAvL1xuICAvLyAgIGNvbnN0IGNvbmZpZ0Zvckhvc3Q6IElMaXN0ZW5lcnNDb25maWcgPSB7XG4gIC8vICAgICBob3N0RWxlbWVudDogdGhpcy5lbGVtZW50UmVmLFxuICAvLyAgICAgdHJpZ2dlcjogWydmb2N1cyddLFxuICAvLyAgICAgY2FsbGJhY2tPbjogKCkgPT4ge1xuICAvLyAgICAgICBjb25zb2xlLmxvZygnZm9jdXMnKTtcbiAgLy8gICAgICAgaWYgKHRoaXMuaW5wdXRFbGVtZW50KSB7XG4gIC8vICAgICAgICAgdGhpcy5zZXRGb2N1cygpXG4gIC8vICAgICAgIH1cbiAgLy8gICAgICAgLy8gdGhpcy5pbnB1dEVsZW1lbnQ/Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgLy8gICAgIH0sXG4gIC8vICAgICBjYWxsYmFja09mZjogKCkgPT4ge1xuICAvLyAgICAgICBjb25zb2xlLmxvZygnYmx1cicpO1xuICAvLyAgICAgfVxuICAvLyAgIH07XG4gIC8vICAgdGhpcy5saXN0ZW5lcnNTZXJ2aWNlLnNldExpc3RlbmVycyhjb25maWdGb3JIb3N0KTtcbiAgLy8gfVxuXG4gIC8vIHByaXZhdGUgY2xlYXJMaXN0ZW5lcnMoKSB7XG4gIC8vICAgdGhpcy5saXN0ZW5lcnNTZXJ2aWNlLmNsZWFyTGlzdGVuZXJzKCk7XG4gIC8vIH1cblxuICBoYW5kbGVUYWdSZW1vdmUoJGV2ZW50OiBJT3B0aW9uKSB7XG4gICAgdGhpcy5zZXRGb2N1cygpO1xuICB9XG5cbiAgc2V0Rm9jdXMoKSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHJldHVybjtcbiAgICB0aGlzLmZvY3VzTW9uaXRvci5mb2N1c1ZpYSh0aGlzLmlucHV0RWxlbWVudCA/PyB0aGlzLmVsZW1lbnRSZWYsICdwcm9ncmFtJyk7XG4gIH1cblxuICAvLyBzZXRGaXJzdFNlbGVjdGVkT3B0aW9uQWN0aXZlKCkge1xuICAvLyAgIGNvbnN0IGZpcnN0U2VsZWN0ZWRPcHRpb24gPSB0aGlzLnNlbGVjdGVkT3B0aW9ucy5maW5kKChpdGVtKSA9PiBpdGVtLnNlbGVjdGVkKSA/P1xuICAvLyAgICAgdGhpcy5tdWx0aVNlbGVjdE9wdGlvbnMuZmluZCgoaXRlbSwgaW5kZXgpID0+IGluZGV4ID09PSAwKTtcbiAgLy8gICBpZiAoZmlyc3RTZWxlY3RlZE9wdGlvbiAmJiB0aGlzLmlzRHJvcGRvd25WaXNpYmxlKSB7XG4gIC8vICAgICAvLyB0aGlzLmxpc3RLZXlNYW5hZ2VyLnNldEZvY3VzT3JpZ2luKCdrZXlib2FyZCcpO1xuICAvLyAgICAgdGhpcy5saXN0S2V5TWFuYWdlci5zZXRBY3RpdmVJdGVtKGZpcnN0U2VsZWN0ZWRPcHRpb24pO1xuICAvLyAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgLy8gICB9IGVsc2Uge1xuICAvLyAgICAgLy8gdGhpcy5saXN0S2V5TWFuYWdlci5zZXRGb2N1c09yaWdpbigna2V5Ym9hcmQnKTtcbiAgLy8gICAgIHRoaXMubGlzdEtleU1hbmFnZXIuc2V0Rmlyc3RJdGVtQWN0aXZlKCk7XG4gIC8vICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAvLyAgIH1cbiAgLy8gfVxuXG4gIGZpbHRlck9wdGlvbnModmFsdWU6IHN0cmluZykge1xuICAgIGNvbnN0IHNlYXJjaFN0cmluZyA9IHZhbHVlLnRvTG93ZXJDYXNlKCkgPz8gJyc7XG4gICAgdGhpcy5tdWx0aVNlbGVjdE9wdGlvbnM/LmZvckVhY2goKGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICBpZiAoISFzZWFyY2hTdHJpbmcpIHtcbiAgICAgICAgaXRlbS52aXNpYmxlID0gaXRlbS5sYWJlbD8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2hTdHJpbmcpID8/IHRydWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpdGVtLnZpc2libGUgPSB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMudmlzaWJsZU9wdGlvbnMgPSB0aGlzLm11bHRpU2VsZWN0T3B0aW9ucz8uZmlsdGVyKChpdGVtKSA9PiBpdGVtLnZpc2libGUpLmxlbmd0aDtcbiAgfVxuXG4gIGNyZWF0ZU5hdGl2ZVNlbGVjdCgpIHtcbiAgICB0aGlzLnZpZXdDb250YWluZXJSZWYuY2xlYXIoKTtcbiAgICB0aGlzLm5hdGl2ZVNlbGVjdFJlZiA9IHRoaXMudmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQoTXVsdGlTZWxlY3ROYXRpdmVTZWxlY3RDb21wb25lbnQpO1xuICAgIHRoaXMudXBkYXRlTmF0aXZlU2VsZWN0KCk7XG4gIH1cblxuICB1cGRhdGVOYXRpdmVTZWxlY3QoKSB7XG4gICAgaWYgKCF0aGlzLm5hdGl2ZVNlbGVjdFJlZikgcmV0dXJuO1xuXG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuc2VsZWN0ZWRPcHRpb25zLm1hcChpdGVtID0+IHtcbiAgICAgIGNvbnN0IHsgc2VsZWN0ZWQsIHZhbHVlLCBsYWJlbCB9ID0gaXRlbTtcbiAgICAgIHJldHVybiB7IHNlbGVjdGVkLCB2YWx1ZSwgbGFiZWwgfTtcbiAgICB9KTtcblxuICAgIHRoaXMubmF0aXZlU2VsZWN0UmVmLmluc3RhbmNlLm11bHRpcGxlID0gdGhpcy5tdWx0aXBsZTtcbiAgICB0aGlzLm5hdGl2ZVNlbGVjdFJlZi5pbnN0YW5jZS5uYW1lID0gdGhpcy5uYXRpdmVOYW1lO1xuICAgIHRoaXMubmF0aXZlU2VsZWN0UmVmLmluc3RhbmNlLmZvcm0gPSB0aGlzLm5hdGl2ZUlkO1xuICAgIHRoaXMubmF0aXZlU2VsZWN0UmVmLmluc3RhbmNlLm9wdGlvbnMgPSBbLi4ub3B0aW9uc107XG4gICAgdGhpcy5uYXRpdmVTZWxlY3RSZWYuaW5zdGFuY2UuZGlzYWJsZWQgPSB0aGlzLmRpc2FibGVkO1xuICAgIHRoaXMubmF0aXZlU2VsZWN0UmVmLmluc3RhbmNlLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIGlucHV0RWxlbWVudFNpemUoKSB7XG4gICAgaWYgKHRoaXMuaW5wdXRFbGVtZW50KSB7XG4gICAgICBpZiAodGhpcy5zZWxlY3RlZE9wdGlvbnMubGVuZ3RoID4gMCB8fCB0aGlzLnNlbGVjdGlvblR5cGUgPT09ICdjb3VudGVyJykge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LCAnc2l6ZScsICh0aGlzLnNlYXJjaFZhbHVlLmxlbmd0aCArIDIpLnRvU3RyaW5nKCkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVBdHRyaWJ1dGUodGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ3NpemUnKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBoYW5kbGVTZWFyY2hLZXlEb3duKCRldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIGlmICh0aGlzLnNlYXJjaFZhbHVlLmxlbmd0aCB8fCB0aGlzLnNlbGVjdGVkT3B0aW9ucy5sZW5ndGggPT09IDApIHJldHVybjtcblxuICAgIGlmIChbJ0JhY2tzcGFjZScsICdEZWxldGUnXS5pbmNsdWRlcygkZXZlbnQua2V5KSkge1xuICAgICAgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgY29uc3QgbGFzdCA9IHRoaXMuc2VsZWN0ZWRPcHRpb25zLmZpbHRlcihvcHRpb24gPT4gIW9wdGlvbi5kaXNhYmxlZCkucG9wKCk7XG4gICAgICB0aGlzLnNlbGVjdE9wdGlvbihsYXN0LCBmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZWxlY3RPcHRpb24ob3B0aW9uOiBNdWx0aVNlbGVjdE9wdGlvbkNvbXBvbmVudCwgc2VsZWN0ZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLm11bHRpU2VsZWN0T3B0aW9ucy5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgaWYgKGl0ZW0gPT09IG9wdGlvbikge1xuICAgICAgICBvcHRpb24uc2VsZWN0ZWQgPSBzZWxlY3RlZDtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLnNlbGVjdGVkT3B0aW9uc1VwZGF0ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZWxlY3RlZE9wdGlvbnNVcGRhdGUoKSB7XG4gICAgdGhpcy5zZWxlY3RlZE9wdGlvbnMgPSB0aGlzLm11bHRpU2VsZWN0T3B0aW9ucy5maWx0ZXIoKG9wdGlvbikgPT4gISFvcHRpb24uc2VsZWN0ZWQpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZm9ybS1tdWx0aS1zZWxlY3Qtc2VsZWN0aW9uXCI+XG4gIDxuZy10ZW1wbGF0ZSBbbmdJZl09XCJzZWxlY3Rpb25UeXBlID09PSAndGFncydcIj5cbiAgICA8Yy1tdWx0aS1zZWxlY3QtdGFnICpuZ0Zvcj1cImxldCBvcHRpb24gb2Ygc2VsZWN0ZWRPcHRpb25zOyBpbmRleCBhcyBpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChyZW1vdmUpPVwiaGFuZGxlVGFnUmVtb3ZlKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW29wdGlvbl09XCJvcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgdGFiaW5kZXg9XCItMVwiPlxuICAgIDwvYy1tdWx0aS1zZWxlY3QtdGFnPlxuICA8L25nLXRlbXBsYXRlPlxuICA8bmctdGVtcGxhdGUgW25nSWZdPVwic2VsZWN0aW9uVHlwZSA9PT0gJ3RleHQnICYmICEhc2VsZWN0ZWRPcHRpb25zVGV4dFwiPlxuICAgIDxzcGFuPnt7IHNlbGVjdGVkT3B0aW9uc1RleHQgfX08L3NwYW4+XG4gIDwvbmctdGVtcGxhdGU+XG4gIDxuZy10ZW1wbGF0ZSBbbmdJZl09XCJzZWxlY3Rpb25UeXBlID09PSAnY291bnRlcidcIj5cbiAgICA8c3BhbiAqbmdJZj1cImNvdW50ZXJUZXh0VHlwZSA9PT0gJ3N0cmluZyc7IGVsc2UgcGx1cmFsTWFwXCI+e3sgY291bnRlclRleHQgfX08L3NwYW4+XG4gICAgPG5nLXRlbXBsYXRlICNwbHVyYWxNYXA+XG4gICAgICA8c3Bhbj57e3NlbGVjdGVkT3B0aW9ucy5sZW5ndGh9fSB7eyBzZWxlY3RlZE9wdGlvbnMubGVuZ3RoIHwgaTE4blBsdXJhbDogc2VsZWN0aW9uVHlwZUNvdW50ZXJUZXh0UGx1cmFsTWFwID8/IHsgb3RoZXI6IGNvdW50ZXJUZXh0IH0gfX08L3NwYW4+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9uZy10ZW1wbGF0ZT5cbiAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cIiFzZWFyY2ggJiYgc2VsZWN0ZWRPcHRpb25zLmxlbmd0aCA9PT0gMCAmJiBzZWxlY3Rpb25UeXBlICE9PSAnY291bnRlcidcIj5cbiAgICA8c3Bhbj57eyBwbGFjZWhvbGRlciB9fTwvc3Bhbj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvZGl2PlxuXG48aW5wdXRcbiAgI2lucHV0RWxlbWVudFxuICAoa2V5ZG93bik9XCJoYW5kbGVTZWFyY2hLZXlEb3duKCRldmVudClcIlxuICAqbmdJZj1cInNlYXJjaCAmJiAhZGlzYWJsZWRcIlxuICBbKG5nTW9kZWwpXT1cInNlYXJjaFZhbHVlXCJcbiAgW2Rpc2FibGVkXT1cImRpc2FibGVkIHx8ICFzZWFyY2hcIlxuICBbbmdDbGFzc109XCJ7ICdmb3JtLW11bHRpLXNlbGVjdC1zZWFyY2gnOiB0cnVlLCBkaXNhYmxlZDogZGlzYWJsZWQgfVwiXG4gIFtwbGFjZWhvbGRlcl09XCJzZWxlY3RlZE9wdGlvbnMubGVuZ3RoID09PSAwICYmIHNlbGVjdGlvblR5cGUgIT09ICdjb3VudGVyJyA/IHBsYWNlaG9sZGVyIDogJydcIlxuICBhdXRvY29tcGxldGU9XCJvZmZcIlxuICB0YWJpbmRleD1cInt7IGRpc2FibGVkID8gJy0xJyA6ICcwJyB9fVwiXG4gIHR5cGU9XCJ0ZXh0XCJcbj5cblxuPGJ1dHRvblxuICAoY2xpY2spPVwiY2xlYXJBbGxPcHRpb25zKCRldmVudClcIlxuICAqbmdJZj1cImNsZWFuZXIgJiYgc2VsZWN0ZWRPcHRpb25zLmxlbmd0aCA+IDAgJiYgIWRpc2FibGVkXCJcbiAgW2Rpc2FibGVkXT1cImRpc2FibGVkIHx8ICFpc0Ryb3Bkb3duVmlzaWJsZVwiXG4gIGFyaWEtbGFiZWw9XCJDbGVhciBhbGxcIlxuICBjQnV0dG9uQ2xvc2VcbiAgY2xhc3M9XCJmb3JtLW11bHRpLXNlbGVjdC1zZWxlY3Rpb24tY2xlYW5lclwiXG4gIHNpemU9XCJzbVwiXG4+PC9idXR0b24+XG5cbjxkaXYgI2Ryb3Bkb3duRWxlbWVudCAqbmdJZj1cIiFkaXNhYmxlZFwiIGNsYXNzPVwiZm9ybS1tdWx0aS1zZWxlY3QtZHJvcGRvd25cIj5cbiAgPG5nLXRlbXBsYXRlIFtuZ0lmRWxzZV09XCJvcHRpb25zRW1wdHlcIiBbbmdJZl09XCJ2aXNpYmxlT3B0aW9ucyA+IDBcIj5cbiAgICA8YnV0dG9uIChjbGljayk9XCJzZWxlY3RBbGxPcHRpb25zKClcIiAqbmdJZj1cInNlbGVjdEFsbCAmJiBtdWx0aXBsZVwiIGNsYXNzPVwiZm9ybS1tdWx0aS1zZWxlY3QtYWxsXCI+XG4gICAgICB7eyBzZWxlY3RBbGxMYWJlbCB9fVxuICAgIDwvYnV0dG9uPlxuICAgIDxkaXYgI211bHRpc2VsZWN0T3B0aW9uc0RpdlxuICAgICAgICAgW25nU3R5bGVdPVwib3B0aW9uc01heEhlaWdodCAhPT0gJ2F1dG8nID8geyAnbWF4SGVpZ2h0LnB4Jzogb3B0aW9uc01heEhlaWdodCwgb3ZlcmZsb3c6ICdzY3JvbGwnIH0gOiB7fVwiXG4gICAgICAgICBjbGFzcz1cImZvcm0tbXVsdGktc2VsZWN0LW9wdGlvbnNcIlxuICAgID5cbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cbiAgPG5nLXRlbXBsYXRlICNvcHRpb25zRW1wdHk+XG4gICAgPGRpdiBjbGFzcz1cImZvcm0tbXVsdGktc2VsZWN0LW9wdGlvbnMtZW1wdHlcIj57eyBzZWFyY2hOb1Jlc3VsdHNMYWJlbCB9fTwvZGl2PlxuICA8L25nLXRlbXBsYXRlPlxuPC9kaXY+XG4iXX0=
|
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.0.3", ngImport: i0, type: MultiSelectNativeSelectComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
13
|
+
MultiSelectNativeSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", 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\">\n <option\n *ngFor=\"let option of options\"\n [label]=\"option.label\"\n [attr.selected]=\"option.selected ? '' : null\"\n [value]=\"option.value\"\n [disabled]=\"disabled\"\n tabindex=\"-1\"\n ></option>\n</select>\n\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.0.3", 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\">\n <option\n *ngFor=\"let option of options\"\n [label]=\"option.label\"\n [attr.selected]=\"option.selected ? '' : null\"\n [value]=\"option.value\"\n [disabled]=\"disabled\"\n tabindex=\"-1\"\n ></option>\n</select>\n\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktc2VsZWN0LW5hdGl2ZS1zZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi9tdWx0aS1zZWxlY3QvbXVsdGktc2VsZWN0LW5hdGl2ZS1zZWxlY3QvbXVsdGktc2VsZWN0LW5hdGl2ZS1zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi9tdWx0aS1zZWxlY3QvbXVsdGktc2VsZWN0LW5hdGl2ZS1zZWxlY3QvbXVsdGktc2VsZWN0LW5hdGl2ZS1zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFxQixTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBUTdGLE1BQU0sT0FBTyxnQ0FBZ0M7SUFTM0MsWUFDUyxpQkFBb0M7UUFBcEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQVJwQyxTQUFJLEdBQVksRUFBRSxDQUFDO1FBQ25CLE9BQUUsR0FBWSxFQUFFLENBQUM7SUFRdEIsQ0FBQzs7NkhBWE0sZ0NBQWdDO2lIQUFoQyxnQ0FBZ0Msc0xDUjdDLCtXQVdBOzJGREhhLGdDQUFnQztrQkFONUMsU0FBUzsrQkFDRSw4QkFBOEIsbUJBR3ZCLHVCQUF1QixDQUFDLE1BQU07d0dBSXRDLElBQUk7c0JBQVosS0FBSztnQkFDRyxFQUFFO3NCQUFWLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYy1tdWx0aS1zZWxlY3QtbmF0aXZlLXNlbGVjdCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL211bHRpLXNlbGVjdC1uYXRpdmUtc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9tdWx0aS1zZWxlY3QtbmF0aXZlLXNlbGVjdC5jb21wb25lbnQuc2NzcyddLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNdWx0aVNlbGVjdE5hdGl2ZVNlbGVjdENvbXBvbmVudCB7XHJcblxyXG4gIEBJbnB1dCgpIGZvcm0/OiBzdHJpbmcgPSAnJztcclxuICBASW5wdXQoKSBpZD86IHN0cmluZyA9ICcnO1xyXG4gIEBJbnB1dCgpIG11bHRpcGxlPzogYm9vbGVhbjtcclxuICBASW5wdXQoKSBuYW1lPzogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIG9wdGlvbnM/OiBhbnk7XHJcbiAgQElucHV0KCkgZGlzYWJsZWQ/OiBib29sZWFuO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcclxuICApIHsgfVxyXG59XHJcbiIsIjxzZWxlY3QgW211bHRpcGxlXT1cIm11bHRpcGxlXCIgW25hbWVdPVwibmFtZVwiIHN0eWxlPVwiZGlzcGxheTogbm9uZVwiIHRhYmluZGV4PVwiLTFcIiBbaWRdPVwiaWRcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIj5cbiAgPG9wdGlvblxuICAgICpuZ0Zvcj1cImxldCBvcHRpb24gb2Ygb3B0aW9uc1wiXG4gICAgW2xhYmVsXT1cIm9wdGlvbi5sYWJlbFwiXG4gICAgW2F0dHIuc2VsZWN0ZWRdPVwib3B0aW9uLnNlbGVjdGVkID8gJycgOiBudWxsXCJcbiAgICBbdmFsdWVdPVwib3B0aW9uLnZhbHVlXCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgIHRhYmluZGV4PVwiLTFcIlxuICA+PC9vcHRpb24+XG48L3NlbGVjdD5cblxuIl19
|