{"version":3,"file":"coreui-angular-pro.mjs","sources":["../../../projects/coreui-angular/src/lib/coreui.types.ts","../../../projects/coreui-angular/src/lib/shared/element-ref.directive.ts","../../../projects/coreui-angular/src/lib/shared/html-attr.directive.ts","../../../projects/coreui-angular/src/lib/shared/template-id.directive.ts","../../../projects/coreui-angular/src/lib/shared/theme.directive.ts","../../../projects/coreui-angular/src/lib/shared/shared.module.ts","../../../projects/coreui-angular/src/lib/accordion/accordion-button/accordion-button.directive.ts","../../../projects/coreui-angular/src/lib/accordion/accordion.service.ts","../../../projects/coreui-angular/src/lib/accordion/accordion/accordion.component.ts","../../../projects/coreui-angular/src/lib/collapse/collapse.animations.ts","../../../projects/coreui-angular/src/lib/collapse/collapse.directive.ts","../../../projects/coreui-angular/src/lib/collapse/collapse.module.ts","../../../projects/coreui-angular/src/lib/accordion/accordion-item/accordion-item.component.ts","../../../projects/coreui-angular/src/lib/accordion/accordion-item/accordion-item.component.html","../../../projects/coreui-angular/src/lib/accordion/accordion.module.ts","../../../projects/coreui-angular/src/lib/autocomplete/autocomplete.utils.ts","../../../projects/coreui-angular/src/lib/dropdown/dropdown-divider/dropdown-divider.directive.ts","../../../projects/coreui-angular/src/lib/dropdown/dropdown-header/dropdown-header.directive.ts","../../../projects/coreui-angular/src/lib/dropdown/dropdown.service.ts","../../../projects/coreui-angular/src/lib/dropdown/dropdown-menu/dropdown-menu.directive.ts","../../../projects/coreui-angular/src/lib/dropdown/dropdown/dropdown.component.ts","../../../projects/coreui-angular/src/lib/dropdown/dropdown-item/dropdown-item.directive.ts","../../../projects/coreui-angular/src/lib/dropdown/dropdown-item/dropdown-item-plain.directive.ts","../../../projects/coreui-angular/src/lib/dropdown/dropdown-close/dropdown-close.directive.ts","../../../projects/coreui-angular/src/lib/dropdown/dropdown.module.ts","../../../projects/coreui-angular/src/lib/spinner/spinner.component.ts","../../../projects/coreui-angular/src/lib/spinner/spinner.component.html","../../../projects/coreui-angular/src/lib/spinner/spinner.module.ts","../../../projects/coreui-angular/src/lib/element-cover/element-cover.component.ts","../../../projects/coreui-angular/src/lib/element-cover/element-cover.component.html","../../../projects/coreui-angular/src/lib/element-cover/element-cover.module.ts","../../../projects/coreui-angular/src/lib/multi-select/multi-select.service.ts","../../../projects/coreui-angular/src/lib/multi-select/multi-select-option/multi-select-option.component.ts","../../../projects/coreui-angular/src/lib/multi-select/multi-select-tag/multi-select-tag.component.ts","../../../projects/coreui-angular/src/lib/multi-select/multi-select-tag/multi-select-tag.component.html","../../../projects/coreui-angular/src/lib/multi-select/multi-select/multi-select-search.directive.ts","../../../projects/coreui-angular/src/lib/multi-select/multi-select/multi-select.component.ts","../../../projects/coreui-angular/src/lib/multi-select/multi-select/multi-select.component.html","../../../projects/coreui-angular/src/lib/services/intersection.service.ts","../../../projects/coreui-angular/src/lib/services/listeners.service.ts","../../../projects/coreui-angular/src/lib/services/class-toggle.service.ts","../../../projects/coreui-angular/src/lib/services/in-memory-storage.service.ts","../../../projects/coreui-angular/src/lib/services/local-storage.service.ts","../../../projects/coreui-angular/src/lib/services/color-mode.service.ts","../../../projects/coreui-angular/src/lib/services/uid.service.ts","../../../projects/coreui-angular/src/lib/services/rtl.service.ts","../../../projects/coreui-angular/src/lib/autocomplete/autocomplete-option/autocomplete-option.component.ts","../../../projects/coreui-angular/src/lib/autocomplete/autocomplete.service.ts","../../../projects/coreui-angular/src/lib/autocomplete/autocomplete-options/autocomplete-options.component.ts","../../../projects/coreui-angular/src/lib/autocomplete/autocomplete-options/autocomplete-options.component.html","../../../projects/coreui-angular/src/lib/autocomplete/autocomplete.component.ts","../../../projects/coreui-angular/src/lib/autocomplete/autocomplete.component.html","../../../projects/coreui-angular/src/lib/autocomplete/autocomplete.directive.ts","../../../projects/coreui-angular/src/lib/autocomplete/autocomplete.module.ts","../../../projects/coreui-angular/src/lib/alert/alert-heading.directive.ts","../../../projects/coreui-angular/src/lib/alert/alert-link.directive.ts","../../../projects/coreui-angular/src/lib/button/button.directive.ts","../../../projects/coreui-angular/src/lib/button/button-close.directive.ts","../../../projects/coreui-angular/src/lib/button/button.module.ts","../../../projects/coreui-angular/src/lib/alert/alert.component.ts","../../../projects/coreui-angular/src/lib/alert/alert.component.html","../../../projects/coreui-angular/src/lib/alert/alert.module.ts","../../../projects/coreui-angular/src/lib/utilities/align.directive.ts","../../../projects/coreui-angular/src/lib/utilities/bg-color.directive.ts","../../../projects/coreui-angular/src/lib/utilities/border.directive.ts","../../../projects/coreui-angular/src/lib/utilities/rounded.directive.ts","../../../projects/coreui-angular/src/lib/utilities/shadow-on-scroll.directive.ts","../../../projects/coreui-angular/src/lib/utilities/text-color.directive.ts","../../../projects/coreui-angular/src/lib/utilities/text-bg-color.directive.ts","../../../projects/coreui-angular/src/lib/utilities/utilities.module.ts","../../../projects/coreui-angular/src/lib/avatar/avatar.component.ts","../../../projects/coreui-angular/src/lib/avatar/avatar.component.html","../../../projects/coreui-angular/src/lib/avatar/avatar.module.ts","../../../projects/coreui-angular/src/lib/badge/badge.component.ts","../../../projects/coreui-angular/src/lib/badge/badge.module.ts","../../../projects/coreui-angular/src/lib/backdrop/backdrop.service.ts","../../../projects/coreui-angular/src/lib/breadcrumb/breadcrumb-item/breadcrumb-item.component.ts","../../../projects/coreui-angular/src/lib/breadcrumb/breadcrumb-item/breadcrumb-item.component.html","../../../projects/coreui-angular/src/lib/breadcrumb/breadcrumb/breadcrumb.component.ts","../../../projects/coreui-angular/src/lib/breadcrumb/breadcrumb-router/breadcrumb-router.service.ts","../../../projects/coreui-angular/src/lib/breadcrumb/breadcrumb-router/breadcrumb-router.component.ts","../../../projects/coreui-angular/src/lib/breadcrumb/breadcrumb-router/breadcrumb-router.component.html","../../../projects/coreui-angular/src/lib/breadcrumb/breadcrumb.module.ts","../../../projects/coreui-angular/src/lib/button-group/button-group/button-group.component.ts","../../../projects/coreui-angular/src/lib/button-group/button-toolbar/button-toolbar.component.ts","../../../projects/coreui-angular/src/lib/button-group/button-group.module.ts","../../../projects/coreui-angular/src/lib/calendar/calendar.utils.ts","../../../projects/coreui-angular/src/lib/calendar/calendar.service.ts","../../../projects/coreui-angular/src/lib/calendar/calendar-navigation/calendar-navigation.component.ts","../../../projects/coreui-angular/src/lib/calendar/calendar-navigation/calendar-navigation.component.html","../../../projects/coreui-angular/src/lib/calendar/calendar-month/calendar-weekday.pipe.ts","../../../projects/coreui-angular/src/lib/calendar/calendar-month/calendar-class-year.pipe.ts","../../../projects/coreui-angular/src/lib/calendar/calendar-month/calendar-class-month.pipe.ts","../../../projects/coreui-angular/src/lib/calendar/calendar-month/calendar-day.pipe.ts","../../../projects/coreui-angular/src/lib/calendar/calendar-month/calendar-day.directive.ts","../../../projects/coreui-angular/src/lib/calendar/calendar-month/calendar-day-title.pipe.ts","../../../projects/coreui-angular/src/lib/calendar/calendar-month/calendar-class-day.pipe.ts","../../../projects/coreui-angular/src/lib/calendar/calendar-month/calendar-row.directive.ts","../../../projects/coreui-angular/src/lib/calendar/calendar-month/calendar-month.component.ts","../../../projects/coreui-angular/src/lib/calendar/calendar-month/calendar-month.component.html","../../../projects/coreui-angular/src/lib/calendar/calendar/calendar-class-view.pipe.ts","../../../projects/coreui-angular/src/lib/calendar/calendar/calendar.component.ts","../../../projects/coreui-angular/src/lib/calendar/calendar/calendar.component.html","../../../projects/coreui-angular/src/lib/calendar/calendar-month/calendar-class-row.pipe.ts","../../../projects/coreui-angular/src/lib/calendar/calendar.module.ts","../../../projects/coreui-angular/src/lib/callout/callout.component.ts","../../../projects/coreui-angular/src/lib/callout/callout.module.ts","../../../projects/coreui-angular/src/lib/card/card.component.ts","../../../projects/coreui-angular/src/lib/card/card-body.component.ts","../../../projects/coreui-angular/src/lib/card/card-footer.component.ts","../../../projects/coreui-angular/src/lib/card/card-group.component.ts","../../../projects/coreui-angular/src/lib/card/card-header.component.ts","../../../projects/coreui-angular/src/lib/card/card-header-actions.component.ts","../../../projects/coreui-angular/src/lib/card/card-img.directive.ts","../../../projects/coreui-angular/src/lib/card/card-img-overlay/card-img-overlay.component.ts","../../../projects/coreui-angular/src/lib/card/card-link.directive.ts","../../../projects/coreui-angular/src/lib/card/card-subtitle.directive.ts","../../../projects/coreui-angular/src/lib/card/card-text.directive.ts","../../../projects/coreui-angular/src/lib/card/card-title.directive.ts","../../../projects/coreui-angular/src/lib/card/card.module.ts","../../../projects/coreui-angular/src/lib/carousel/carousel.service.ts","../../../projects/coreui-angular/src/lib/carousel/carousel-state.ts","../../../projects/coreui-angular/src/lib/carousel/carousel.config.ts","../../../projects/coreui-angular/src/lib/carousel/carousel/carousel.component.ts","../../../projects/coreui-angular/src/lib/carousel/carousel-caption/carousel-caption.component.ts","../../../projects/coreui-angular/src/lib/carousel/carousel-control/carousel-control.component.ts","../../../projects/coreui-angular/src/lib/carousel/carousel-control/carousel-control.component.html","../../../projects/coreui-angular/src/lib/carousel/carousel-indicators/carousel-indicators.component.ts","../../../projects/coreui-angular/src/lib/carousel/carousel-indicators/carousel-indicators.component.html","../../../projects/coreui-angular/src/lib/carousel/carousel-item/carousel-item.component.ts","../../../projects/coreui-angular/src/lib/carousel/carousel-item/carousel-item.component.html","../../../projects/coreui-angular/src/lib/carousel/carousel.animation.ts","../../../projects/coreui-angular/src/lib/carousel/carousel-inner/carousel-inner.component.ts","../../../projects/coreui-angular/src/lib/carousel/carousel.module.ts","../../../projects/coreui-angular/src/lib/form/form/form.directive.ts","../../../projects/coreui-angular/src/lib/form/form-check/form-check-label.directive.ts","../../../projects/coreui-angular/src/lib/form/form-check/form-check.component.ts","../../../projects/coreui-angular/src/lib/form/form-control/form-control.directive.ts","../../../projects/coreui-angular/src/lib/form/form-check/form-check-input.directive.ts","../../../projects/coreui-angular/src/lib/form/form-feedback/form-feedback.component.ts","../../../projects/coreui-angular/src/lib/form/form-floating/form-floating.directive.ts","../../../projects/coreui-angular/src/lib/form/form-label/form-label.directive.ts","../../../projects/coreui-angular/src/lib/form/form-password/form-password-action/form-password-action.component.ts","../../../projects/coreui-angular/src/lib/form/form-password/form-password-action/form-password-action.component.html","../../../projects/coreui-angular/src/lib/form/form-password/form-password.directive.ts","../../../projects/coreui-angular/src/lib/form/form-select/form-select.directive.ts","../../../projects/coreui-angular/src/lib/form/form-text/form-text.directive.ts","../../../projects/coreui-angular/src/lib/form/input-group/input-group.component.ts","../../../projects/coreui-angular/src/lib/form/input-group-text/input-group-text.directive.ts","../../../projects/coreui-angular/src/lib/form/form.module.ts","../../../projects/coreui-angular/src/lib/time-picker/time.utils.ts","../../../projects/coreui-angular/src/lib/time-picker/time-picker-roll-col/time-picker-roll-col.component.ts","../../../projects/coreui-angular/src/lib/time-picker/time-picker-roll-col/time-picker-roll-col.component.html","../../../projects/coreui-angular/src/lib/time-picker/time-picker-roll-col/time-picker-roll-am-pm.component.ts","../../../projects/coreui-angular/src/lib/time-picker/time-picker-roll-col/time-picker-roll-am-pm.component.html","../../../projects/coreui-angular/src/lib/time-picker/time-picker.component.ts","../../../projects/coreui-angular/src/lib/time-picker/time-picker.component.html","../../../projects/coreui-angular/src/lib/time-picker/time-picker.module.ts","../../../projects/coreui-angular/src/lib/date-range-picker/date-range-picker/custom-range-key.pipe.ts","../../../projects/coreui-angular/src/lib/date-range-picker/date-range-picker/date-range-picker.component.ts","../../../projects/coreui-angular/src/lib/date-range-picker/date-range-picker/date-range-picker.component.html","../../../projects/coreui-angular/src/lib/date-range-picker/date-range-picker.module.ts","../../../projects/coreui-angular/src/lib/date-picker/date-picker.component.ts","../../../projects/coreui-angular/src/lib/date-picker/date-picker.module.ts","../../../projects/coreui-angular/src/lib/footer/footer.component.ts","../../../projects/coreui-angular/src/lib/footer/footer.module.ts","../../../projects/coreui-angular/src/lib/grid/container.component.ts","../../../projects/coreui-angular/src/lib/grid/col.directive.ts","../../../projects/coreui-angular/src/lib/grid/col.component.ts","../../../projects/coreui-angular/src/lib/grid/row.directive.ts","../../../projects/coreui-angular/src/lib/grid/row.component.ts","../../../projects/coreui-angular/src/lib/grid/gutter.directive.ts","../../../projects/coreui-angular/src/lib/grid/grid.module.ts","../../../projects/coreui-angular/src/lib/header/header/header.component.ts","../../../projects/coreui-angular/src/lib/header/header/header.component.html","../../../projects/coreui-angular/src/lib/header/header-brand/header-brand.component.ts","../../../projects/coreui-angular/src/lib/header/header-divider/header-divider.component.ts","../../../projects/coreui-angular/src/lib/header/header-nav/header-nav.component.ts","../../../projects/coreui-angular/src/lib/header/header-text/header-text.component.ts","../../../projects/coreui-angular/src/lib/header/header-toggler/header-toggler.directive.ts","../../../projects/coreui-angular/src/lib/header/header.module.ts","../../../projects/coreui-angular/src/lib/image/img.directive.ts","../../../projects/coreui-angular/src/lib/image/img.module.ts","../../../projects/coreui-angular/src/lib/list-group/list-group.directive.ts","../../../projects/coreui-angular/src/lib/list-group/list-group-item.directive.ts","../../../projects/coreui-angular/src/lib/list-group/list-group.module.ts","../../../projects/coreui-angular/src/lib/loading-button/loading-button.animations.ts","../../../projects/coreui-angular/src/lib/loading-button/loading-button.component.ts","../../../projects/coreui-angular/src/lib/loading-button/loading-button.component.html","../../../projects/coreui-angular/src/lib/loading-button/loading-button.module.ts","../../../projects/coreui-angular/src/lib/multi-select/multi-select-optgroup/multi-select-optgroup-label.component.ts","../../../projects/coreui-angular/src/lib/multi-select/multi-select-optgroup/multi-select-optgroup.component.ts","../../../projects/coreui-angular/src/lib/multi-select/multi-select.module.ts","../../../projects/coreui-angular/src/lib/nav/nav-link.directive.ts","../../../projects/coreui-angular/src/lib/nav/nav-item.component.ts","../../../projects/coreui-angular/src/lib/nav/nav.component.ts","../../../projects/coreui-angular/src/lib/nav/nav.module.ts","../../../projects/coreui-angular/src/lib/navbar/navbar.component.ts","../../../projects/coreui-angular/src/lib/navbar/navbar.component.html","../../../projects/coreui-angular/src/lib/navbar/navbar-brand/navbar-brand.directive.ts","../../../projects/coreui-angular/src/lib/navbar/navbar-nav/navbar-nav.component.ts","../../../projects/coreui-angular/src/lib/navbar/navbar-text/navbar-text.component.ts","../../../projects/coreui-angular/src/lib/navbar/navbar-toggler/navbar-toggler.directive.ts","../../../projects/coreui-angular/src/lib/navbar/navbar.module.ts","../../../projects/coreui-angular/src/lib/modal/modal-body/modal-body.component.ts","../../../projects/coreui-angular/src/lib/modal/modal-content/modal-content.component.ts","../../../projects/coreui-angular/src/lib/modal/modal-dialog/modal-dialog.component.ts","../../../projects/coreui-angular/src/lib/modal/modal.service.ts","../../../projects/coreui-angular/src/lib/modal/modal-dismiss/modal-toggle.directive.ts","../../../projects/coreui-angular/src/lib/modal/modal-footer/modal-footer.component.ts","../../../projects/coreui-angular/src/lib/modal/modal-header/modal-header.component.ts","../../../projects/coreui-angular/src/lib/modal/modal-title/modal-title.directive.ts","../../../projects/coreui-angular/src/lib/modal/modal/modal.component.ts","../../../projects/coreui-angular/src/lib/modal/modal/modal.component.html","../../../projects/coreui-angular/src/lib/modal/modal.module.ts","../../../projects/coreui-angular/src/lib/offcanvas/offcanvas.service.ts","../../../projects/coreui-angular/src/lib/offcanvas/offcanvas/offcanvas.component.ts","../../../projects/coreui-angular/src/lib/offcanvas/offcanvas/offcanvas.component.html","../../../projects/coreui-angular/src/lib/offcanvas/offcanvas-body/offcanvas-body.component.ts","../../../projects/coreui-angular/src/lib/offcanvas/offcanvas-header/offcanvas-header.component.ts","../../../projects/coreui-angular/src/lib/offcanvas/offcanvas-title/offcanvas-title.directive.ts","../../../projects/coreui-angular/src/lib/offcanvas/offcanvas-toggle/offcanvas-toggle.directive.ts","../../../projects/coreui-angular/src/lib/offcanvas/offcanvas.module.ts","../../../projects/coreui-angular/src/lib/one-time-password/otp.service.ts","../../../projects/coreui-angular/src/lib/one-time-password/otp.directive.ts","../../../projects/coreui-angular/src/lib/one-time-password/otp.utils.ts","../../../projects/coreui-angular/src/lib/one-time-password/one-time-password.component.ts","../../../projects/coreui-angular/src/lib/one-time-password/one-time-password.module.ts","../../../projects/coreui-angular/src/lib/one-time-password/public_api.ts","../../../projects/coreui-angular/src/lib/pagination/page-link/page-link.directive.ts","../../../projects/coreui-angular/src/lib/pagination/page-item/page-item.directive.ts","../../../projects/coreui-angular/src/lib/pagination/page-item/page-item.component.ts","../../../projects/coreui-angular/src/lib/pagination/pagination/pagination.component.ts","../../../projects/coreui-angular/src/lib/pagination/pagination/pagination.component.html","../../../projects/coreui-angular/src/lib/pagination/pagination.module.ts","../../../projects/coreui-angular/src/lib/placeholder/placeholder.directive.ts","../../../projects/coreui-angular/src/lib/placeholder/placeholder-animation.directive.ts","../../../projects/coreui-angular/src/lib/placeholder/placeholder.module.ts","../../../projects/coreui-angular/src/lib/popover/popover/popover.component.ts","../../../projects/coreui-angular/src/lib/popover/popover/popover.component.html","../../../projects/coreui-angular/src/lib/popover/popover.directive.ts","../../../projects/coreui-angular/src/lib/popover/popover.module.ts","../../../projects/coreui-angular/src/lib/progress/progress.service.ts","../../../projects/coreui-angular/src/lib/progress/progress-bar.directive.ts","../../../projects/coreui-angular/src/lib/progress/progress-bar.component.ts","../../../projects/coreui-angular/src/lib/progress/progress-stacked.component.ts","../../../projects/coreui-angular/src/lib/progress/progress.component.ts","../../../projects/coreui-angular/src/lib/progress/progress.component.html","../../../projects/coreui-angular/src/lib/progress/progress.module.ts","../../../projects/coreui-angular/src/lib/tooltip/tooltip/tooltip.component.ts","../../../projects/coreui-angular/src/lib/tooltip/tooltip/tooltip.component.html","../../../projects/coreui-angular/src/lib/tooltip/tooltip.directive.ts","../../../projects/coreui-angular/src/lib/tooltip/tooltip.module.ts","../../../projects/coreui-angular/src/lib/rating/rating-item-label/rating-item-label.component.ts","../../../projects/coreui-angular/src/lib/rating/rating.component.ts","../../../projects/coreui-angular/src/lib/rating/rating.component.html","../../../projects/coreui-angular/src/lib/rating/rating.module.ts","../../../projects/coreui-angular/src/lib/range-slider/range-slider.utils.ts","../../../projects/coreui-angular/src/lib/range-slider/range-slider-track.pipe.ts","../../../projects/coreui-angular/src/lib/range-slider/range-slider-label-style.pipe.ts","../../../projects/coreui-angular/src/lib/range-slider/range-slider-label-class.pipe.ts","../../../projects/coreui-angular/src/lib/range-slider/range-slider-tooltip-position-style.pipe.ts","../../../projects/coreui-angular/src/lib/range-slider/range-slider.component.ts","../../../projects/coreui-angular/src/lib/range-slider/range-slider.component.html","../../../projects/coreui-angular/src/lib/range-slider/range-slider.module.ts","../../../projects/coreui-angular/src/lib/sidebar/sidebar.service.ts","../../../projects/coreui-angular/src/lib/sidebar/sidebar-backdrop/sidebar-backdrop.service.ts","../../../projects/coreui-angular/src/lib/sidebar/sidebar/sidebar.component.ts","../../../projects/coreui-angular/src/lib/sidebar/sidebar-brand/sidebar-brand.component.ts","../../../projects/coreui-angular/src/lib/sidebar/sidebar-brand/sidebar-brand.component.html","../../../projects/coreui-angular/src/lib/sidebar/sidebar-toggle/sidebar-toggle.directive.ts","../../../projects/coreui-angular/src/lib/sidebar/sidebar-toggler/sidebar-toggler.directive.ts","../../../projects/coreui-angular/src/lib/sidebar/sidebar-header/sidebar-header.component.ts","../../../projects/coreui-angular/src/lib/sidebar/sidebar-footer/sidebar-footer.component.ts","../../../projects/coreui-angular/src/lib/sidebar/sidebar-nav/sidebar-nav.service.ts","../../../projects/coreui-angular/src/lib/sidebar/sidebar-nav/sidebar-nav-group.service.ts","../../../projects/coreui-angular/src/lib/sidebar/sidebar-nav/sidebar-nav-icon.pipe.ts","../../../projects/coreui-angular/src/lib/sidebar/sidebar-nav/sidebar-nav-badge.pipe.ts","../../../projects/coreui-angular/src/lib/sidebar/sidebar-nav/sidebar-nav-link.pipe.ts","../../../projects/coreui-angular/src/lib/sidebar/sidebar-nav/sidebar-nav-link.component.ts","../../../projects/coreui-angular/src/lib/sidebar/sidebar-nav/sidebar-nav-link.component.html","../../../projects/coreui-angular/src/lib/sidebar/sidebar-nav/sidebar-nav-label.component.ts","../../../projects/coreui-angular/src/lib/sidebar/sidebar-nav/sidebar-nav-label.component.html","../../../projects/coreui-angular/src/lib/sidebar/sidebar-nav/sidebar-nav-title.component.ts","../../../projects/coreui-angular/src/lib/sidebar/sidebar-nav/sidebar-nav-divider.component.ts","../../../projects/coreui-angular/src/lib/sidebar/sidebar-nav/sidebar-nav-item-class.pipe.ts","../../../projects/coreui-angular/src/lib/sidebar/sidebar-nav/sidebar-nav.component.ts","../../../projects/coreui-angular/src/lib/sidebar/sidebar-nav/sidebar-nav-group.component.html","../../../projects/coreui-angular/src/lib/sidebar/sidebar-nav/sidebar-nav.component.html","../../../projects/coreui-angular/src/lib/sidebar/sidebar.module.ts","../../../projects/coreui-angular/src/lib/smart-pagination/smart-pagination.component.ts","../../../projects/coreui-angular/src/lib/smart-pagination/smart-pagination.component.html","../../../projects/coreui-angular/src/lib/smart-pagination/smart-pagination.module.ts","../../../projects/coreui-angular/src/lib/smart-table/smart-table-filter/filter-input.directive.ts","../../../projects/coreui-angular/src/lib/smart-table/smart-table-filter/smart-table-filter.component.ts","../../../projects/coreui-angular/src/lib/smart-table/smart-table-filter/smart-table-filter.component.html","../../../projects/coreui-angular/src/lib/smart-table/smart-table.utils.ts","../../../projects/coreui-angular/src/lib/table/table-color.directive.ts","../../../projects/coreui-angular/src/lib/table/table-active.directive.ts","../../../projects/coreui-angular/src/lib/table/table.directive.ts","../../../projects/coreui-angular/src/lib/table/table.module.ts","../../../projects/coreui-angular/src/lib/smart-table/smart-table-column-filter/smart-table-column-filter.component.ts","../../../projects/coreui-angular/src/lib/smart-table/smart-table-column-filter/smart-table-column-filter.component.html","../../../projects/coreui-angular/src/lib/smart-table/smart-table-head/smart-table-column-label.pipe.ts","../../../projects/coreui-angular/src/lib/smart-table/smart-table-head/smart-table-head.component.ts","../../../projects/coreui-angular/src/lib/smart-table/smart-table-head/smart-table-head.component.html","../../../projects/coreui-angular/src/lib/smart-table/smart-table-items-per-page-selector/smart-table-items-per-page-selector.component.ts","../../../projects/coreui-angular/src/lib/smart-table/smart-table-items-per-page-selector/smart-table-items-per-page-selector.component.html","../../../projects/coreui-angular/src/lib/smart-table/smart-table/smart-table.component.ts","../../../projects/coreui-angular/src/lib/smart-table/smart-table/smart-table.component.html","../../../projects/coreui-angular/src/lib/smart-table/smart-table.module.ts","../../../projects/coreui-angular/src/lib/stepper/stepper-step.component.ts","../../../projects/coreui-angular/src/lib/stepper/step-button.directive.ts","../../../projects/coreui-angular/src/lib/stepper/stepper.component.ts","../../../projects/coreui-angular/src/lib/stepper/stepper.component.html","../../../projects/coreui-angular/src/lib/stepper/stepper.module.ts","../../../projects/coreui-angular/src/lib/tabs/tab.service.ts","../../../projects/coreui-angular/src/lib/tabs/tab-pane/tab-pane.component.ts","../../../projects/coreui-angular/src/lib/tabs/tab-content/tab-content.component.ts","../../../projects/coreui-angular/src/lib/tabs/tab-content-ref.directive.ts","../../../projects/coreui-angular/src/lib/tabs/tabs.module.ts","../../../projects/coreui-angular/src/lib/tabs-2/tabs.service.ts","../../../projects/coreui-angular/src/lib/tabs-2/tabs.component.ts","../../../projects/coreui-angular/src/lib/tabs-2/tab/tab.directive.ts","../../../projects/coreui-angular/src/lib/tabs-2/tabs-list/tabs-list.component.ts","../../../projects/coreui-angular/src/lib/tabs-2/tabs-content/tabs-content.component.ts","../../../projects/coreui-angular/src/lib/tabs-2/tab-panel/tab-panel.component.ts","../../../projects/coreui-angular/src/lib/tabs-2/tabs2.module.ts","../../../projects/coreui-angular/src/lib/toast/toaster/toaster.service.ts","../../../projects/coreui-angular/src/lib/toast/toast/toast.component.ts","../../../projects/coreui-angular/src/lib/toast/toast-body/toast-body.component.ts","../../../projects/coreui-angular/src/lib/toast/toast-close.directive.ts","../../../projects/coreui-angular/src/lib/toast/toast-header/toast-header.component.ts","../../../projects/coreui-angular/src/lib/toast/toast-header/toast-header.component.html","../../../projects/coreui-angular/src/lib/toast/toaster/toaster-host.directive.ts","../../../projects/coreui-angular/src/lib/toast/toaster/toaster.component.ts","../../../projects/coreui-angular/src/lib/toast/toaster/toaster.component.html","../../../projects/coreui-angular/src/lib/toast/toast.module.ts","../../../projects/coreui-angular/src/lib/widget/widget-stat-a/widget-stat-a.component.ts","../../../projects/coreui-angular/src/lib/widget/widget-stat-a/widget-stat-a.component.html","../../../projects/coreui-angular/src/lib/widget/widget-stat-b/widget-stat-b.component.ts","../../../projects/coreui-angular/src/lib/widget/widget-stat-b/widget-stat-b.component.html","../../../projects/coreui-angular/src/lib/widget/widget-stat-c/widget-stat-c.component.ts","../../../projects/coreui-angular/src/lib/widget/widget-stat-c/widget-stat-c.component.html","../../../projects/coreui-angular/src/lib/widget/widget-stat-d/widget-stat-d.component.ts","../../../projects/coreui-angular/src/lib/widget/widget-stat-d/widget-stat-d.component.html","../../../projects/coreui-angular/src/lib/widget/widget-stat-e/widget-stat-e.component.ts","../../../projects/coreui-angular/src/lib/widget/widget-stat-e/widget-stat-e.component.html","../../../projects/coreui-angular/src/lib/widget/widget-stat-f/widget-stat-f.component.ts","../../../projects/coreui-angular/src/lib/widget/widget-stat-f/widget-stat-f.component.html","../../../projects/coreui-angular/src/lib/widget/widget.module.ts","../../../projects/coreui-angular/src/public-api.ts","../../../projects/coreui-angular/src/coreui-angular-pro.ts"],"sourcesContent":["import { IsActiveMatchOptions } from '@angular/router';\n\nexport declare type BooleanInput = string | boolean | null | undefined;\nexport declare type NumberInput = string | number | null | undefined;\n\nexport type NgCssClass = string | string[] | Set<string> | { [klass: string]: any };\n\nexport enum BreakpointInfix {\n  xs = 'xs',\n  sm = 'sm',\n  md = 'md',\n  lg = 'lg',\n  xl = 'xl',\n  xxl = 'xxl'\n}\n\nexport type BreakpointInfixStrings = keyof typeof BreakpointInfix;\n\nexport type Breakpoints = BreakpointInfixStrings | string;\n\nexport type Sizes = 'sm' | 'md' | 'lg' | 'xl' | 'xxl' | string;\n\nexport type Colors =\n  | 'primary'\n  | 'secondary'\n  | 'success'\n  | 'danger'\n  | 'warning'\n  | 'info'\n  | 'dark'\n  | 'light'\n  | 'primary-gradient'\n  | 'secondary-gradient'\n  | 'success-gradient'\n  | 'danger-gradient'\n  | 'warning-gradient'\n  | 'info-gradient'\n  | 'dark-gradient'\n  | 'light-gradient'\n  | string;\n\n// export type ColorsGradient =\n//   | Colors\n//   | `${Colors}-gradient`;\n\nexport type BackgroundColors = Colors | 'body' | 'white' | 'transparent';\n\nexport type Directions = 'down' | 'up' | 'start' | 'end' | '';\n\nexport type TextColors =\n  | Colors\n  | 'primary-emphasis'\n  | 'secondary-emphasis'\n  | 'success-emphasis'\n  | 'danger-emphasis'\n  | 'warning-emphasis'\n  | 'info-emphasis'\n  | 'light-emphasis'\n  | 'body'\n  | 'body-emphasis'\n  | 'body-secondary'\n  | 'body-tertiary'\n  | 'black'\n  | 'black-50'\n  | 'white'\n  | 'white-50'\n  | string;\n\nexport type Alignment = 'baseline' | 'top' | 'middle' | 'bottom' | 'text-top' | 'text-bottom';\n\nexport type BadgePositions = 'top-start' | 'top-end' | 'bottom-end' | 'bottom-start' | string | undefined;\n\nexport type Placements =\n  | 'auto'\n  | 'auto-start'\n  | 'auto-end'\n  | 'top-end'\n  | 'top'\n  | 'top-start'\n  | 'bottom-end'\n  | 'bottom'\n  | 'bottom-start'\n  | 'right-start'\n  | 'right'\n  | 'right-end'\n  | 'left-start'\n  | 'left'\n  | 'left-end'\n  | undefined;\n\nexport type Shapes =\n  | 'rounded'\n  | 'rounded-top'\n  | 'rounded-end'\n  | 'rounded-bottom'\n  | 'rounded-start'\n  | 'rounded-circle'\n  | 'rounded-pill'\n  | 'rounded-0'\n  | 'rounded-1'\n  | 'rounded-2'\n  | 'rounded-3'\n  | string;\n\nexport type Triggers = 'hover' | 'focus' | 'click' | 'focusin';\n\nexport type Positions = 'fixed' | 'sticky';\n\nexport type InputType =\n  | 'button'\n  | 'color'\n  | 'date'\n  | 'datetime'\n  | 'datetime-local'\n  | 'email'\n  | 'file'\n  | 'hidden'\n  | 'image'\n  | 'month'\n  | 'number'\n  | 'password'\n  | 'range'\n  | 'reset'\n  | 'search'\n  | 'submit'\n  | 'tel'\n  | 'text'\n  | 'time'\n  | 'url'\n  | 'week'\n  | 'checkbox'\n  | 'radio';\n\nexport interface INavLinkProps {\n  queryParams?: { [k: string]: any };\n  fragment?: string;\n  queryParamsHandling?: 'merge' | 'preserve' | '' | null;\n  preserveFragment?: boolean;\n  skipLocationChange?: boolean;\n  replaceUrl?: boolean;\n  state?: { [k: string]: any };\n  routerLinkActiveOptions?: { exact: boolean } | IsActiveMatchOptions;\n  routerLinkActive?: string | string[];\n  ariaCurrentWhenActive?: 'page' | 'step' | 'location' | 'date' | 'time' | true | false;\n}\n\nexport interface INavAttributes {\n  [propName: string]: any;\n}\n\nexport type ButtonType = 'button' | 'submit' | 'reset';\n","import { Directive, ElementRef, inject } from '@angular/core';\n\n@Directive({\n  selector: '[cElementRef]',\n  exportAs: 'cElementRef'\n})\nexport class ElementRefDirective {\n  public readonly elementRef = inject(ElementRef);\n}\n","import { Directive, effect, ElementRef, inject, input, Renderer2 } from '@angular/core';\n\n@Directive({\n  selector: '[cHtmlAttr]',\n  exportAs: 'cHtmlAttr'\n})\nexport class HtmlAttributesDirective {\n  readonly cHtmlAttr = input<Record<string, any>>();\n\n  readonly #renderer = inject(Renderer2);\n  readonly #elementRef = inject(ElementRef);\n\n  readonly #attrEffect = effect(() => {\n    const attribs = this.cHtmlAttr();\n    for (const attr in attribs) {\n      if (attr === 'style' && typeof attribs[attr] === 'object') {\n        this.setStyle(attribs[attr]);\n      } else if (attr === 'class') {\n        this.addClass(attribs[attr]);\n      } else {\n        this.setAttrib(attr, attribs[attr]);\n      }\n    }\n  });\n\n  private setStyle(styles: Record<string, any>): void {\n    for (const style in styles) {\n      if (style) {\n        this.#renderer.setStyle(this.#elementRef.nativeElement, style, styles[style]);\n      }\n    }\n  }\n\n  private addClass(classes: string | string[]): void {\n    const classArray = Array.isArray(classes) ? classes : classes.split(' ');\n    classArray\n      .filter((element) => element.length > 0)\n      .forEach((element) => {\n        this.#renderer.addClass(this.#elementRef.nativeElement, element);\n      });\n  }\n\n  private setAttrib(key: string, value: string | null): void {\n    value !== null\n      ? this.#renderer.setAttribute(this.#elementRef.nativeElement, key, value)\n      : this.#renderer.removeAttribute(this.#elementRef.nativeElement, key);\n  }\n}\n","import { Directive, inject, input, TemplateRef } from '@angular/core';\n\n@Directive({\n  selector: '[cTemplateId]'\n})\nexport class TemplateIdDirective {\n  readonly templateRef = inject(TemplateRef);\n  readonly cTemplateId = input.required<string>();\n\n  get id() {\n    return this.cTemplateId();\n  }\n}\n","import { booleanAttribute, Directive, effect, ElementRef, inject, input, Renderer2, untracked } from '@angular/core';\n\n@Directive({\n  selector: '[cTheme]',\n  exportAs: 'cTheme'\n})\nexport class ThemeDirective {\n  readonly #hostElement = inject(ElementRef);\n  readonly #renderer = inject(Renderer2);\n\n  /**\n   * Add dark theme attribute.\n   * @return 'dark' | 'light' | undefined\n   */\n  readonly colorScheme = input<'dark' | 'light'>();\n\n  readonly #colorSchemeChange = effect(() => {\n    const colorScheme = this.colorScheme();\n    colorScheme ? this.setTheme(colorScheme) : this.unsetTheme();\n  });\n\n  readonly dark = input(false, { transform: booleanAttribute });\n\n  readonly #darkChange = effect(() => {\n    const darkTheme = this.dark() || untracked(this.colorScheme) === 'dark';\n    darkTheme ? this.setTheme('dark') : this.unsetTheme();\n  });\n\n  setTheme(theme?: string): void {\n    if (theme) {\n      this.#renderer.setAttribute(this.#hostElement.nativeElement, 'data-coreui-theme', theme);\n    }\n  }\n\n  unsetTheme(): void {\n    this.#renderer.removeAttribute(this.#hostElement.nativeElement, 'data-coreui-theme');\n  }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\n\nimport { ElementRefDirective } from './element-ref.directive';\nimport { HtmlAttributesDirective } from './html-attr.directive';\nimport { TemplateIdDirective } from './template-id.directive';\nimport { ThemeDirective } from './theme.directive';\n\n@NgModule({\n  imports: [ElementRefDirective, HtmlAttributesDirective, TemplateIdDirective, ThemeDirective],\n  exports: [ElementRefDirective, HtmlAttributesDirective, TemplateIdDirective, ThemeDirective],\n})\nexport class SharedModule {\n  static forRoot(): ModuleWithProviders<SharedModule> {\n    return {\n      ngModule: SharedModule,\n    };\n  }\n}\n","import { computed, Directive, input } from '@angular/core';\n\n@Directive({\n  selector: '[cAccordionButton]',\n  host: { '[class]': 'hostClasses()', '[attr.type]': 'type()', '[attr.aria-expanded]': 'ariaExpanded()' }\n})\nexport class AccordionButtonDirective {\n  /**\n   * Toggles an accordion button collapsed state. Use in accordionHeaderTemplate. [docs]\n   * @type boolean\n   */\n  readonly collapsed = input<boolean | undefined>(undefined);\n\n  /**\n   * Default type for cAccordionButton. [docs]\n   * @type string\n   * @default 'button'\n   */\n  readonly type = input('button');\n\n  readonly hostClasses = computed(() => {\n    return {\n      'accordion-button': true,\n      collapsed: this.collapsed()\n    } as Record<string, boolean>;\n  });\n\n  readonly ariaExpanded = computed(() => !this.collapsed());\n}\n","import { Injectable } from '@angular/core';\nimport type { AccordionItemComponent } from './accordion-item/accordion-item.component';\n\n@Injectable()\nexport class AccordionService {\n  items: AccordionItemComponent[] = [];\n  alwaysOpen = false;\n\n  addItem(item: AccordionItemComponent): void {\n    this.items.push(item);\n  }\n\n  removeItem(item: AccordionItemComponent): void {\n    const index = this.items.indexOf(item);\n    if (index !== -1) {\n      this.items.splice(index, 1);\n    }\n  }\n\n  toggleItem(item: AccordionItemComponent): void {\n    item.itemVisible.update((value) => !value);\n    this.closeOtherItems(item);\n  }\n\n  closeOtherItems(openItem: AccordionItemComponent): void {\n    if (!this.alwaysOpen) {\n      this.items.forEach((item: AccordionItemComponent) => {\n        if (item !== openItem) {\n          item.itemVisible.set(false);\n        }\n      });\n    }\n  }\n}\n","import { booleanAttribute, Component, computed, effect, inject, input } from '@angular/core';\n\nimport { AccordionService } from '../accordion.service';\n\n@Component({\n  selector: 'c-accordion',\n  template: '<ng-content />',\n  styleUrls: ['./accordion.component.scss'],\n  exportAs: 'cAccordionItem',\n  providers: [AccordionService],\n  host: { '[class]': 'hostClasses()' }\n})\nexport class AccordionComponent {\n  readonly #accordionService = inject(AccordionService);\n\n  /**\n   * Removes the default background-color, some borders, and some rounded corners to render accordions edge-to-edge with their parent container.\n   * @type boolean\n   */\n  readonly flush = input(false, { transform: booleanAttribute });\n\n  /**\n   * Make accordion items stay open when another item is opened\n   * @type boolean\n   */\n  readonly alwaysOpen = input(false, { transform: booleanAttribute });\n\n  readonly #alwaysOpenEffect = effect(() => {\n    this.#accordionService.alwaysOpen = this.alwaysOpen();\n  });\n\n  readonly hostClasses = computed(() => ({\n    accordion: true,\n    'accordion-flush': this.flush()\n  }) as Record<string, boolean>);\n}\n","import { animate, animation, style } from '@angular/animations';\n\nexport const expandAnimation = animation([animate('{{ time }} {{ easing }}')]);\n\nexport const collapseAnimation = animation([\n  style({ height: '*', minHeight: '*' }),\n  animate('{{ time }} {{ easing }}', style({ height: 0, minHeight: 0 }))\n]);\n\nexport const expandHorizontalAnimation = animation([animate('{{ time }} {{ easing }}')]);\n\nexport const collapseHorizontalAnimation = animation([animate('{{ time }} {{ easing }}')]);\n","import { AnimationBuilder, AnimationPlayer, useAnimation } from '@angular/animations';\n\nimport {\n  afterNextRender,\n  booleanAttribute,\n  computed,\n  Directive,\n  effect,\n  ElementRef,\n  inject,\n  input,\n  linkedSignal,\n  OnDestroy,\n  output,\n  Renderer2,\n  signal\n} from '@angular/core';\n\nimport {\n  collapseAnimation,\n  collapseHorizontalAnimation,\n  expandAnimation,\n  expandHorizontalAnimation\n} from './collapse.animations';\n\n@Directive({\n  selector: '[cCollapse]',\n  exportAs: 'cCollapse',\n  host: { '[class]': 'hostClasses()', '[style]': '{ display: \"none\" }' }\n})\nexport class CollapseDirective implements OnDestroy {\n  readonly #animationBuilder = inject(AnimationBuilder);\n  readonly #hostElement = inject(ElementRef);\n  readonly #renderer = inject(Renderer2);\n  #player: AnimationPlayer | undefined = undefined;\n\n  constructor() {\n    afterNextRender({\n      read: () => {\n        this.#initialized.set(true);\n      }\n    });\n  }\n\n  /**\n   * @ignore\n   */\n  readonly animateInput = input(true, { transform: booleanAttribute, alias: 'animate' });\n\n  readonly animate = linkedSignal({\n    source: this.animateInput,\n    computation: (value: boolean) => value\n  });\n\n  /**\n   * Set horizontal collapsing to transition the width instead of height.\n   * @type boolean\n   * @default false\n   */\n  readonly horizontal = input(false, { transform: booleanAttribute });\n\n  /**\n   * Toggle the visibility of collapsible element.\n   * @type boolean\n   * @default false\n   */\n  readonly visibleInput = input(false, { transform: booleanAttribute, alias: 'visible' });\n\n  readonly visibleChange = output<boolean>();\n\n  readonly visible = linkedSignal({ source: this.visibleInput, computation: (value: boolean) => value });\n\n  readonly #initialized = signal(false);\n\n  readonly #visibleEffect = effect(() => {\n    const visible = this.visible();\n    if (this.#initialized()) {\n      this.createPlayer(visible);\n    }\n  });\n\n  /**\n   * Add `navbar` prop for grouping and hiding navbar contents by a parent breakpoint.\n   * @type boolean\n   * @default false\n   */\n  readonly navbar = input(false, { transform: booleanAttribute });\n\n  /**\n   * @ignore\n   */\n  readonly duration = input('350ms');\n\n  /**\n   * @ignore\n   */\n  readonly transition = input('ease');\n\n  /**\n   * Event emitted on visibility change. [docs]\n   * @type string\n   */\n  readonly collapseChange = output<string>();\n\n  readonly hostClasses = computed(() => {\n    return {\n      'navbar-collapse': this.navbar(),\n      'collapse-horizontal': this.horizontal()\n    } as Record<string, boolean>;\n  });\n\n  ngOnDestroy(): void {\n    this.destroyPlayer();\n  }\n\n  toggle(visible = !this.visible()): void {\n    this.visible.set(visible);\n  }\n\n  destroyPlayer(): void {\n    this.#player?.destroy();\n    this.#player = undefined;\n  }\n\n  createPlayer(visible: boolean = this.visible()): void {\n    if (this.#player?.hasStarted()) {\n      this.destroyPlayer();\n    }\n\n    const host: HTMLElement = this.#hostElement.nativeElement;\n\n    if (visible) {\n      this.#renderer.removeStyle(host, 'display');\n    }\n\n    const duration = this.animate() ? this.duration() : '0ms';\n\n    const expand = this.horizontal() ? expandHorizontalAnimation : expandAnimation;\n    const collapse = this.horizontal() ? collapseHorizontalAnimation : collapseAnimation;\n\n    const dimension = this.horizontal() ? 'width' : 'height';\n    const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);\n    const scrollSize = `scroll${capitalizedDimension}`;\n\n    const animationFactory = this.#animationBuilder?.build(\n      useAnimation(visible ? expand : collapse, { params: { time: duration, easing: this.transition() } })\n    );\n\n    this.#player = animationFactory.create(host);\n\n    !visible && host.offsetHeight && host.style[dimension] && host.scrollHeight;\n\n    this.#renderer.setStyle(host, dimension, visible ? 0 : `${host.getBoundingClientRect()[dimension]}px`);\n\n    this.#player.onStart(() => {\n      this.setMaxSize();\n      this.#renderer.removeClass(host, 'collapse');\n      this.#renderer.addClass(host, 'collapsing');\n      this.#renderer.removeClass(host, 'show');\n      this.#renderer.setStyle(host, dimension, visible ? `${(host as any)[scrollSize]}px` : '');\n      if (this.#player) {\n        this.collapseChange?.emit(visible ? 'opening' : 'collapsing');\n      }\n    });\n\n    this.#player.onDone(() => {\n      this.#renderer.removeClass(host, 'collapsing');\n      this.#renderer.addClass(host, 'collapse');\n      if (visible) {\n        this.#renderer.addClass(host, 'show');\n        this.#renderer.setStyle(host, dimension, '');\n      } else {\n        this.#renderer.removeClass(host, 'show');\n      }\n      if (this.#player) {\n        this.collapseChange?.emit(visible ? 'open' : 'collapsed');\n        this.visibleChange?.emit(visible);\n      }\n      this.destroyPlayer();\n    });\n\n    this.#player?.play();\n  }\n\n  setMaxSize() {\n    const host = this.#hostElement.nativeElement;\n    if (this.horizontal()) {\n      host.scrollWidth > 0 && this.#renderer.setStyle(host, 'maxWidth', `${host.scrollWidth}px`);\n      // } else {\n      //   host.scrollHeight > 0 && this.#renderer.setStyle(host, 'maxHeight', `${host.scrollHeight}px`);\n    }\n  }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { CollapseDirective } from './collapse.directive';\n\n@NgModule({\n  exports: [CollapseDirective],\n  imports: [CollapseDirective]\n})\nexport class CollapseModule {\n  static forRoot(): ModuleWithProviders<CollapseModule> {\n    return { ngModule: CollapseModule, providers: [] };\n  }\n}\n","import {\n  booleanAttribute,\n  Component,\n  computed,\n  contentChildren,\n  effect,\n  inject,\n  input,\n  OnDestroy,\n  OnInit,\n  signal,\n  TemplateRef\n} from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\n\nimport { CollapseDirective } from '../../collapse';\nimport { TemplateIdDirective } from '../../shared';\nimport { AccordionButtonDirective } from '../accordion-button/accordion-button.directive';\nimport { AccordionService } from '../accordion.service';\n\nlet nextId = 0;\n\n@Component({\n  selector: 'c-accordion-item',\n  templateUrl: './accordion-item.component.html',\n  styleUrls: ['./accordion-item.component.scss'],\n  exportAs: 'cAccordionItem',\n  imports: [AccordionButtonDirective, NgTemplateOutlet, CollapseDirective],\n  host: { class: 'accordion-item' }\n})\nexport class AccordionItemComponent implements OnInit, OnDestroy {\n  readonly #accordionService = inject(AccordionService);\n\n  /**\n   * Toggle an accordion item programmatically\n   * @return boolean\n   * @default false\n   */\n  readonly visibleInput = input(false, { transform: booleanAttribute, alias: 'visible' });\n\n  readonly itemVisible = signal(false);\n\n  readonly #visibleInputChange = effect(() => {\n    this.visible = this.visibleInput();\n  });\n\n  set visible(value: boolean) {\n    this.itemVisible.set(value);\n  }\n\n  get visible() {\n    return <boolean>this.itemVisible();\n  }\n\n  contentId = `accordion-item-${nextId++}`;\n\n  get itemContext() {\n    return { $implicit: <boolean>this.itemVisible() };\n  }\n\n  readonly contentTemplates = contentChildren(TemplateIdDirective, { descendants: true });\n\n  readonly templates = computed(() => {\n    return this.contentTemplates().reduce(\n      (acc, child) => {\n        acc[child.id] = child.templateRef;\n        return acc;\n      },\n      {} as Record<string, TemplateRef<any>>\n    );\n  });\n\n  ngOnInit(): void {\n    this.#accordionService.addItem(this);\n  }\n\n  ngOnDestroy(): void {\n    this.#accordionService.removeItem(this);\n  }\n\n  toggleItem(): void {\n    this.#accordionService.toggleItem(this);\n  }\n}\n","@let tmpl = templates();\n<ng-container>\n  <div class=\"accordion-header\">\n    <ng-container *ngTemplateOutlet=\"tmpl['accordionHeaderTemplate'] || defaultAccordionHeaderTemplate; context: itemContext\" />\n  </div>\n  <div class=\"accordion-collapse\" cCollapse [visible]=\"itemVisible()\" [attr.aria-expanded]=\"itemVisible()\" [id]=\"contentId\">\n    <ng-container *ngTemplateOutlet=\"tmpl['accordionBodyTemplate'] || defaultAccordionBodyTemplate; context: itemContext\" />\n  </div>\n</ng-container>\n\n<ng-template #defaultAccordionHeaderTemplate>\n  <button cAccordionButton [collapsed]=\"!itemVisible()\" [attr.aria-controls]=\"contentId\" (click)=\"toggleItem()\">\n    <ng-container *ngTemplateOutlet=\"tmpl['accordionHeader'] || defaultAccordionHeaderContentTemplate; context: itemContext\" />\n  </button>\n</ng-template>\n\n<ng-template #defaultAccordionHeaderContentTemplate>\n  <ng-content />\n</ng-template>\n\n<ng-template #defaultAccordionBodyTemplate>\n  <div class=\"accordion-body\">\n    <ng-container *ngTemplateOutlet=\"tmpl['accordionBody'] || defaultAccordionBodyContentTemplate; context: itemContext\" />\n  </div>\n</ng-template>\n\n<ng-template #defaultAccordionBodyContentTemplate>\n  <ng-content />\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { AccordionComponent } from './accordion/accordion.component';\nimport { AccordionButtonDirective } from './accordion-button/accordion-button.directive';\nimport { AccordionItemComponent } from './accordion-item/accordion-item.component';\nimport { AccordionService } from './accordion.service';\n\n@NgModule({\n  imports: [\n    AccordionButtonDirective,\n    AccordionComponent,\n    AccordionItemComponent\n  ],\n  exports: [\n    AccordionComponent,\n    AccordionButtonDirective,\n    AccordionItemComponent\n  ],\n  providers: [\n    AccordionService\n  ]\n})\nexport class AccordionModule {\n}\n","import type { AutocompleteOption, IAutocompleteOption, IAutocompleteOptionNorm, Search } from './autocomplete.types';\n\nexport const normalizeOptionsArray = (options: (string | IAutocompleteOption)[]) => {\n  return options.map((option) => {\n    if (typeof option === 'string') {\n      option = { label: option };\n    }\n    if (option.options) {\n      option.options = [...normalizeOptionsArray(option.options)];\n    }\n    return { ...option };\n  }) as IAutocompleteOptionNorm[];\n};\n\nexport const filterOptions = (options: IAutocompleteOptionNorm[], search: string): IAutocompleteOptionNorm[] => {\n  const result: IAutocompleteOptionNorm[] = [];\n\n  options.forEach((item: IAutocompleteOptionNorm) => {\n    if ('options' in item && Array.isArray(item.options)) {\n      const filteredOptions = filterOptions(item.options, search);\n      if (filteredOptions.length > 0) {\n        result.push({ ...item, options: filteredOptions });\n      }\n    } else if (getOptionLabel(item).toLowerCase().includes(search.toLowerCase())) {\n      result.push(item);\n    }\n  });\n\n  return result;\n};\n\nexport const flattenOptionsArray = (options: IAutocompleteOptionNorm[]): IAutocompleteOptionNorm[] => {\n  const optionsList: IAutocompleteOptionNorm[] = [];\n\n  for (const option of options) {\n    if ('options' in option && Array.isArray(option.options)) {\n      optionsList.push(...option.options);\n    } else {\n      optionsList.push(option);\n    }\n  }\n\n  return optionsList;\n};\n\nexport const isExternalSearch = (search: Search | undefined): boolean => {\n  return (\n    (typeof search === 'string' && search === 'external') || (typeof search === 'object' && search.external === true)\n  );\n};\n\nexport const isGlobalSearch = (search: Search | undefined): boolean => {\n  return (typeof search === 'string' && search === 'global') || (typeof search === 'object' && search.global === true);\n};\n\nexport const getOptionLabel = (option: AutocompleteOption) => (typeof option === 'string' ? option : option.label);\n\nexport const highlightSubstring = (string: string, query?: string) => {\n  if (query) {\n    const regex = new RegExp(query, 'gi');\n    return string.replace(regex, (string) => `<strong>${string}</strong>`);\n  }\n\n  return string;\n};\n\nexport const isOptionDisabled = (option: IAutocompleteOption | string) =>\n  typeof option === 'string' ? false : option.disabled;\n\nexport const isOptionSelected = (option: IAutocompleteOption | string, selected: IAutocompleteOption | null) => {\n  if (!selected) {\n    return false;\n  }\n\n  if (typeof option === 'string' && typeof selected === 'string') {\n    return selected === option;\n  }\n\n  if (typeof option !== 'string' && typeof selected !== 'string') {\n    return selected.label === option.label;\n  }\n\n  return false;\n};\n\nexport const getFirstOptionByLabel = (\n  value: string,\n  options: IAutocompleteOptionNorm[]\n): IAutocompleteOptionNorm | null => {\n  for (const option of options) {\n    if ('options' in option && Array.isArray(option.options)) {\n      const found = getFirstOptionByLabel(value, option.options);\n      if (found) {\n        return found;\n      }\n    }\n\n    if (getOptionLabel(option).toLowerCase() === value.toLowerCase()) {\n      return option;\n    }\n  }\n\n  return null;\n};\n\nexport const getFirstOptionByValue = (\n  value: number,\n  options: IAutocompleteOptionNorm[]\n): IAutocompleteOptionNorm | null => {\n  for (const option of options) {\n    if ('options' in option && Array.isArray(option.options)) {\n      const found = getFirstOptionByValue(value, option.options);\n      if (found) {\n        return found;\n      }\n    }\n\n    if ('value' in option && option.value === value) {\n      return option;\n    }\n  }\n\n  return null;\n};\n\nexport const findHintOption = (\n  searchValue: string,\n  options: IAutocompleteOptionNorm[]\n): IAutocompleteOptionNorm | undefined => {\n  return searchValue.length > 0\n    ? options\n        .flatMap((option) => (Array.isArray(option.options) ? option.options : [option]))\n        .find((option) => getOptionLabel(option).toLowerCase().startsWith(searchValue.toLowerCase()))\n    : undefined;\n};\n","import { Directive } from '@angular/core';\n\n@Directive({\n  selector: '[cDropdownDivider]',\n  host: { class: 'dropdown-divider' }\n})\nexport class DropdownDividerDirective {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n  selector: '[cDropdownHeader]',\n  host: { class: 'dropdown-header' }\n})\nexport class DropdownHeaderDirective {}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\nexport interface IDropdownState {\n  visible?: boolean | 'toggle';\n  dropdown?: any;\n}\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class DropdownService {\n  readonly #dropdownState = new BehaviorSubject<any>({});\n  readonly dropdownState$ = this.#dropdownState.asObservable();\n\n  toggle(state: IDropdownState): void {\n    this.#dropdownState.next(state);\n  }\n}\n","import { FocusKeyManager } from '@angular/cdk/a11y';\nimport {\n  AfterContentInit,\n  booleanAttribute,\n  computed,\n  contentChildren,\n  DestroyRef,\n  Directive,\n  ElementRef,\n  forwardRef,\n  inject,\n  input,\n  linkedSignal,\n  OnInit\n} from '@angular/core';\nimport { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';\nimport { tap } from 'rxjs/operators';\n\nimport { ThemeDirective } from '../../shared/theme.directive';\nimport { DropdownItemDirective } from '../dropdown-item/dropdown-item.directive';\nimport { DropdownService } from '../dropdown.service';\n\n@Directive({\n  selector: '[cDropdownMenu]',\n  exportAs: 'cDropdownMenu',\n  hostDirectives: [{ directive: ThemeDirective, inputs: ['dark'] }],\n  host: {\n    class: 'dropdown-menu',\n    '[class]': 'hostClasses()',\n    '[style]': 'hostStyles()',\n    '(keydown)': 'onKeyDown($event)',\n    '(keyup)': 'onKeyUp($event)'\n  }\n})\nexport class DropdownMenuDirective implements OnInit, AfterContentInit {\n  readonly #destroyRef: DestroyRef = inject(DestroyRef);\n  public readonly elementRef: ElementRef = inject(ElementRef);\n  readonly #dropdownService: DropdownService = inject(DropdownService);\n  #focusKeyManager!: FocusKeyManager<DropdownItemDirective>;\n\n  /**\n   * Set alignment of dropdown menu.\n   * @return 'start' | 'end'\n   */\n  readonly alignment = input<'start' | 'end' | string>();\n\n  /**\n   * Toggle the visibility of dropdown menu component.\n   * @return boolean\n   */\n  readonly visibleInput = input(false, { transform: booleanAttribute, alias: 'visible' });\n\n  readonly visible = linkedSignal({\n    source: this.visibleInput,\n    computation: (value) => value\n  });\n\n  readonly hostClasses = computed(() => {\n    const alignment = this.alignment();\n    const visible = this.visible();\n\n    return {\n      'dropdown-menu': true,\n      [`dropdown-menu-${alignment}`]: !!alignment,\n      show: visible\n    } as Record<string, boolean>;\n  });\n\n  readonly hostStyles = computed(() => {\n    // workaround for popper position calculate (see also: dropdown.component)\n    const visible = this.visible();\n    return {\n      visibility: visible ? null : '',\n      display: visible ? null : ''\n    } as Record<string, any>;\n  });\n\n  onKeyDown($event: KeyboardEvent): void {\n    if (!this.visible()) {\n      return;\n    }\n    if (['Space', 'ArrowDown'].includes($event.code)) {\n      $event.preventDefault();\n    }\n    this.#focusKeyManager.onKeydown($event);\n  }\n\n  onKeyUp($event: KeyboardEvent): void {\n    if (!this.visible()) {\n      return;\n    }\n    if (['Tab'].includes($event.key)) {\n      if (this.#focusKeyManager.activeItem) {\n        $event.shiftKey ? this.#focusKeyManager.setPreviousItemActive() : this.#focusKeyManager.setNextItemActive();\n      } else {\n        this.#focusKeyManager.setFirstItemActive();\n      }\n    }\n  }\n\n  readonly dropdownItemsContent = contentChildren<DropdownItemDirective>(\n    forwardRef(() => DropdownItemDirective),\n    { descendants: true }\n  );\n\n  readonly items$ = toObservable(this.dropdownItemsContent);\n\n  ngAfterContentInit(): void {\n    this.focusKeyManagerInit();\n\n    this.items$\n      .pipe(\n        tap((change) => {\n          this.focusKeyManagerInit();\n        }),\n        takeUntilDestroyed(this.#destroyRef)\n      )\n      .subscribe();\n  }\n\n  ngOnInit(): void {\n    this.#dropdownService.dropdownState$\n      .pipe(\n        tap((state) => {\n          if ('visible' in state) {\n            this.visible.update((visible) => (state.visible === 'toggle' ? !visible : state.visible));\n            if (!this.visible()) {\n              this.#focusKeyManager?.setActiveItem(-1);\n            }\n          }\n        }),\n        takeUntilDestroyed(this.#destroyRef)\n      )\n      .subscribe();\n  }\n\n  private focusKeyManagerInit(): void {\n    this.#focusKeyManager = new FocusKeyManager(this.dropdownItemsContent())\n      .withHomeAndEnd()\n      .withPageUpDown()\n      .withWrap()\n      .skipPredicate((dropdownItem) => dropdownItem.disabled === true);\n  }\n}\n","import {\n  AfterViewInit,\n  booleanAttribute,\n  ChangeDetectorRef,\n  Component,\n  computed,\n  contentChild,\n  DestroyRef,\n  Directive,\n  DOCUMENT,\n  effect,\n  ElementRef,\n  forwardRef,\n  inject,\n  input,\n  linkedSignal,\n  NgZone,\n  OnDestroy,\n  OnInit,\n  output,\n  Renderer2,\n  signal,\n  untracked\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { filter } from 'rxjs/operators';\n\nimport { createPopper, Instance, Options, Placement } from '@popperjs/core';\n\nimport { ThemeDirective } from '../../shared';\nimport { DropdownMenuDirective } from '../dropdown-menu/dropdown-menu.directive';\nimport { DropdownService } from '../dropdown.service';\n\n// lightweight injection token\nexport abstract class DropdownToken {}\n\n@Directive({\n  selector: '[cDropdownToggle]',\n  providers: [{ provide: DropdownToken, useExisting: forwardRef(() => DropdownComponent) }],\n  exportAs: 'cDropdownToggle',\n  host: {\n    '[class]': 'hostClasses()',\n    '[attr.aria-expanded]': 'ariaExpanded',\n    '(click)': 'onClick($event)'\n  }\n})\nexport class DropdownToggleDirective implements AfterViewInit {\n  // injections\n  readonly #destroyRef = inject(DestroyRef);\n  public readonly elementRef = inject(ElementRef);\n  #dropdownService = inject(DropdownService);\n  public dropdown = inject(DropdownToken, { optional: true });\n\n  /**\n   * Reference to dropdown component.\n   * @return DropdownComponent | undefined\n   * @default undefined\n   */\n  readonly dropdownComponent = input<DropdownComponent>();\n\n  /**\n   * Disables the toggler.\n   * @return boolean\n   * @default false\n   */\n  readonly disabled = input<boolean, unknown>(false, { transform: booleanAttribute });\n\n  /**\n   * Enables pseudo element caret on toggler.\n   * @return boolean\n   */\n  readonly caret = input(true);\n\n  /**\n   * Create split button dropdowns with virtually the same markup as single button dropdowns,\n   * but with the addition of `.dropdown-toggle-split` class for proper spacing around the dropdown caret.\n   * @return boolean\n   * @default false\n   */\n  readonly split = input<boolean, unknown>(false, { transform: booleanAttribute });\n\n  readonly hostClasses = computed(() => {\n    return {\n      'dropdown-toggle': this.caret(),\n      'dropdown-toggle-split': this.split(),\n      disabled: this.disabled()\n    } as Record<string, boolean>;\n  });\n\n  readonly #ariaExpanded = signal(false);\n\n  get ariaExpanded() {\n    return this.#ariaExpanded();\n  }\n\n  public onClick($event: MouseEvent): void {\n    $event.preventDefault();\n    !this.disabled() && this.#dropdownService.toggle({ visible: 'toggle', dropdown: this.dropdown });\n  }\n\n  ngAfterViewInit(): void {\n    const dropdownComponent = this.dropdownComponent();\n    if (dropdownComponent) {\n      this.dropdown = dropdownComponent;\n      this.#dropdownService = dropdownComponent?.dropdownService;\n    }\n    if (this.dropdown) {\n      const dropdown = <DropdownComponent>this.dropdown;\n      dropdown?.visibleChange?.subscribe((visible) => {\n        this.#ariaExpanded.set(visible);\n      });\n    }\n  }\n}\n\n@Component({\n  selector: 'c-dropdown',\n  template: '<ng-content />',\n  styleUrls: ['./dropdown.component.scss'],\n  exportAs: 'cDropdown',\n  providers: [DropdownService],\n  hostDirectives: [{ directive: ThemeDirective, inputs: ['dark'] }],\n  host: {\n    '[class]': 'hostClasses()',\n    '[style]': 'hostStyle()',\n    '(click)': 'onHostClick($event)'\n  }\n})\nexport class DropdownComponent implements OnDestroy, OnInit {\n  readonly #destroyRef = inject(DestroyRef);\n  readonly #document = inject(DOCUMENT);\n  readonly #elementRef = inject(ElementRef);\n  readonly #renderer = inject(Renderer2);\n  readonly #ngZone = inject(NgZone);\n  readonly #changeDetectorRef = inject(ChangeDetectorRef);\n  readonly dropdownService = inject(DropdownService);\n\n  constructor() {\n    this.dropdownStateSubscribe();\n  }\n\n  /**\n   * Set alignment of dropdown menu.\n   * @return {'start' | 'end' | { xs: 'start' | 'end' } | { sm: 'start' | 'end' } | { md: 'start' | 'end' } | { lg: 'start' | 'end' } | { xl: 'start' | 'end'} | { xxl: 'start' | 'end'}}\n   */\n  readonly alignment = input<string>();\n\n  /**\n   * Automatically close dropdown when clicking outside the dropdown menu.\n   */\n  readonly autoClose = input<boolean | 'inside' | 'outside'>(true);\n\n  /**\n   * Sets a specified  direction and location of the dropdown menu.\n   * @return 'dropup' | 'dropend' | 'dropstart'\n   */\n  readonly direction = input<'center' | 'dropup' | 'dropup-center' | 'dropend' | 'dropstart'>();\n\n  /**\n   * Describes the placement of your component after Popper.js has applied all the modifiers\n   * that may have flipped or altered the originally provided placement property.\n   * @return Placement\n   */\n  readonly placement = input<Placement>('bottom-start');\n\n  /**\n   * If you want to disable dynamic positioning set this property to `false`.\n   * @return boolean\n   * @default true\n   */\n  readonly popper = input<boolean, unknown>(true, { transform: booleanAttribute });\n\n  /**\n   * Optional popper Options object, placement prop takes precedence over\n   * @return Partial<Options>\n   */\n  readonly popperOptionsInput = input<Partial<Options>>({}, { alias: 'popperOptions' });\n\n  readonly #popperOptionsEffect = effect(() => {\n    this.popperOptions = { ...untracked(this.#popperOptions), ...this.popperOptionsInput() };\n  });\n\n  set popperOptions(value: Partial<Options>) {\n    this.#popperOptions.update((popperOptions) => ({ ...popperOptions, ...value }));\n  }\n\n  get popperOptions(): Partial<Options> {\n    let placement = this.placement();\n    switch (this.direction()) {\n      case 'dropup': {\n        placement = 'top-start';\n        break;\n      }\n      case 'dropend': {\n        placement = 'right-start';\n        break;\n      }\n      case 'dropstart': {\n        placement = 'left-start';\n        break;\n      }\n      case 'center': {\n        placement = 'bottom';\n        break;\n      }\n      case 'dropup-center': {\n        placement = 'top';\n        break;\n      }\n    }\n    if (this.alignment() === 'end') {\n      placement = 'bottom-end';\n    }\n    this.#popperOptions.update((value) => ({ ...value, placement: placement }));\n    return this.#popperOptions();\n  }\n\n  readonly #popperOptions = signal<Partial<Options>>({\n    placement: this.placement(),\n    modifiers: [],\n    strategy: 'absolute'\n  });\n\n  /**\n   * Set the dropdown variant to a btn-group, dropdown, input-group, and nav-item.\n   */\n  readonly variant = input<('btn-group' | 'dropdown' | 'input-group' | 'nav-item') | undefined>('dropdown');\n\n  /**\n   * Toggle the visibility of dropdown menu component.\n   * @return boolean\n   * @default false\n   */\n  readonly visibleInput = input(false, { transform: booleanAttribute, alias: 'visible' });\n\n  readonly visible = linkedSignal({\n    source: this.visibleInput,\n    computation: (value) => value\n  });\n\n  readonly #visibleEffect = effect(() => {\n    const visible = this.visible();\n    untracked(() => {\n      this.activeTrap = visible;\n      visible ? this.createPopperInstance() : this.destroyPopperInstance();\n      this.setVisibleState(visible);\n      this.visibleChange?.emit(visible);\n    });\n  });\n\n  readonly visibleChange = output<boolean>();\n\n  dropdownContext = { $implicit: this.visible() };\n  readonly _toggler = contentChild(DropdownToggleDirective);\n  readonly _menu = contentChild(DropdownMenuDirective);\n  readonly _menuElementRef = contentChild(DropdownMenuDirective, { read: ElementRef });\n\n  public activeTrap = false;\n\n  private popperInstance!: Instance | undefined;\n  private listeners: (() => void)[] = [];\n\n  readonly hostClasses = computed(() => {\n    const direction = this.direction();\n    const variant = this.variant();\n    return {\n      dropdown: (variant === 'dropdown' || variant === 'nav-item') && !direction,\n      [`${direction}`]: !!direction,\n      [`${variant}`]: !!variant,\n      dropup: direction === 'dropup' || direction === 'dropup-center',\n      show: this.visible()\n    } as Record<string, boolean>;\n  });\n\n  // todo: find better solution\n  readonly hostStyle = computed(() => {\n    return this.variant() === 'input-group' ? { display: 'contents' } : {};\n  });\n\n  private clickedTarget!: HTMLElement;\n\n  onHostClick($event: MouseEvent): void {\n    this.clickedTarget = $event.target as HTMLElement;\n  }\n\n  dropdownStateSubscribe(): void {\n    this.dropdownService.dropdownState$\n      .pipe(\n        filter((state) => {\n          return this === state.dropdown;\n        }),\n        takeUntilDestroyed(this.#destroyRef)\n      )\n      .subscribe((state) => {\n        if ('visible' in state) {\n          state?.visible === 'toggle' ? this.toggleDropdown() : this.visible.set(state.visible);\n        }\n      });\n  }\n\n  toggleDropdown(): void {\n    this.visible.update((visible) => !visible);\n  }\n\n  onClick(event: any): void {\n    if (!this._toggler()?.elementRef.nativeElement.contains(event.target?.closest('[cDropdownToggle]'))) {\n      this.toggleDropdown();\n    }\n  }\n\n  readonly #togglerEffect = effect(() => {\n    const variant = this.variant();\n    const _toggler = this._toggler();\n    if (variant === 'nav-item' && _toggler) {\n      this.#renderer.addClass(_toggler.elementRef.nativeElement, 'nav-link');\n    }\n  });\n\n  ngOnInit(): void {\n    this.setVisibleState(this.visible());\n  }\n\n  ngOnDestroy(): void {\n    this.clearListeners();\n    this.destroyPopperInstance();\n  }\n\n  setVisibleState(value: boolean): void {\n    this.dropdownService.toggle({ visible: value, dropdown: this });\n  }\n\n  // todo: turn off popper in navbar-nav\n  createPopperInstance(): void {\n    const _toggler = this._toggler();\n    const _menu = this._menu();\n    if (_toggler && _menu) {\n      this.#ngZone.runOutsideAngular(() => {\n        // workaround for popper position calculate (see also: dropdown-menu.component)\n        _menu.elementRef.nativeElement.style.visibility = 'hidden';\n        _menu.elementRef.nativeElement.style.display = 'block';\n        if (this.popper()) {\n          this.popperInstance = createPopper(_toggler.elementRef.nativeElement, _menu.elementRef.nativeElement, {\n            ...this.popperOptions\n          });\n        }\n        this.#ngZone.run(() => {\n          this.setListeners();\n          this.#changeDetectorRef.markForCheck();\n          this.#changeDetectorRef.detectChanges();\n        });\n      });\n    }\n  }\n\n  destroyPopperInstance(): void {\n    this.clearListeners();\n    this.popperInstance?.destroy();\n    this.popperInstance = undefined;\n    this.#changeDetectorRef.markForCheck();\n  }\n\n  private setListeners(): void {\n    this.listeners.push(\n      this.#renderer.listen(this.#document, 'click', (event) => {\n        const target = event.target as HTMLElement;\n        if (this._menuElementRef()?.nativeElement.contains(event.target)) {\n          this.clickedTarget = target;\n        }\n        if (this._toggler()?.elementRef.nativeElement.contains(event.target)) {\n          return;\n        }\n        const autoClose = this.autoClose();\n        if (autoClose === true) {\n          this.setVisibleState(false);\n          return;\n        }\n        if (this.clickedTarget === target && autoClose === 'inside') {\n          this.setVisibleState(false);\n          return;\n        }\n        if (this.clickedTarget !== target && autoClose === 'outside') {\n          this.setVisibleState(false);\n          return;\n        }\n      })\n    );\n    this.listeners.push(\n      this.#renderer.listen(this.#elementRef.nativeElement, 'keyup', (event) => {\n        if (event.key === 'Escape' && this.autoClose() !== false) {\n          event.stopPropagation();\n          this.setVisibleState(false);\n          return;\n        }\n      })\n    );\n    this.listeners.push(\n      this.#renderer.listen(this.#document, 'keyup', (event) => {\n        if (\n          event.key === 'Tab' &&\n          this.autoClose() !== false &&\n          !this.#elementRef.nativeElement.contains(event.target)\n        ) {\n          this.setVisibleState(false);\n          return;\n        }\n      })\n    );\n  }\n\n  private clearListeners(): void {\n    this.listeners.forEach((unListen) => {\n      unListen();\n    });\n    // @ts-ignore\n    this.listeners.fill(undefined);\n    this.listeners = [];\n  }\n}\n","import { FocusableOption, FocusOrigin } from '@angular/cdk/a11y';\nimport { booleanAttribute, computed, Directive, ElementRef, inject, input, linkedSignal } from '@angular/core';\nimport { DropdownService } from '../dropdown.service';\nimport { DropdownComponent } from '../dropdown/dropdown.component';\n\n@Directive({\n  selector: '[cDropdownItem]',\n  exportAs: 'cDropdownItem',\n  host: {\n    class: 'dropdown-item',\n    '[class]': 'hostClasses()',\n    '[attr.tabindex]': 'tabIndex()',\n    '[attr.aria-current]': 'ariaCurrent()',\n    '[attr.aria-disabled]': 'disabled || null',\n    '[attr.role]': 'role()',\n    '(click)': 'onClick($event)',\n    '(keyup)': 'onKeyUp($event)'\n  }\n})\nexport class DropdownItemDirective implements FocusableOption {\n  readonly #elementRef: ElementRef = inject(ElementRef);\n  readonly #dropdownService = inject(DropdownService);\n  dropdown? = inject(DropdownComponent, { optional: true });\n\n  /**\n   * Set active state to a dropdown-item.\n   * @return boolean\n   * @default undefined\n   */\n  readonly active = input<boolean>();\n\n  /**\n   * Configure dropdown-item close dropdown behavior.\n   * @return boolean\n   * @default true\n   */\n  readonly autoClose = input<boolean>(true);\n\n  /**\n   * Disables a dropdown-item.\n   * @return boolean\n   * @default undefined\n   */\n  readonly disabledInput = input(false, { transform: booleanAttribute, alias: 'disabled' });\n\n  readonly #disabled = linkedSignal({\n    source: this.disabledInput,\n    computation: (value) => value\n  });\n\n  set disabled(value) {\n    this.#disabled.set(value);\n  }\n\n  get disabled() {\n    return this.#disabled();\n  }\n\n  readonly role = input<string>('list-item');\n\n  readonly tabIndexInput = input<string | number | null>('0', { alias: 'tabIndex' });\n\n  readonly tabIndex = linkedSignal({\n    source: this.tabIndexInput,\n    computation: (value) => (this.disabled ? '-1' : value)\n  });\n\n  focus(origin?: FocusOrigin | undefined): void {\n    this.#elementRef?.nativeElement?.focus();\n  }\n\n  getLabel?(): string {\n    return this.#elementRef?.nativeElement?.textContent.trim();\n  }\n\n  readonly ariaCurrent = computed(() => {\n    return this.active() ? 'true' : null;\n  });\n\n  readonly hostClasses = computed(() => {\n    return {\n      'dropdown-item': true,\n      active: this.active(),\n      disabled: this.disabled\n    } as Record<string, boolean>;\n  });\n\n  onClick($event: MouseEvent): void {\n    this.handleInteraction();\n  }\n\n  onKeyUp($event: KeyboardEvent): void {\n    if ($event.key === 'Enter') {\n      this.handleInteraction();\n    }\n  }\n\n  private handleInteraction(): void {\n    if (this.autoClose()) {\n      this.#dropdownService.toggle({ visible: 'toggle', dropdown: this.dropdown });\n    }\n  }\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n  selector: '[cDropdownItemPlain]',\n  host: { class: 'dropdown-item-text' }\n})\nexport class DropdownItemPlainDirective {}\n","import { AfterViewInit, booleanAttribute, Directive, inject, input, linkedSignal } from '@angular/core';\nimport { DropdownService } from '../dropdown.service';\nimport { DropdownComponent } from '../dropdown/dropdown.component';\n\n@Directive({\n  selector: '[cDropdownClose]',\n  exportAs: 'cDropdownClose',\n  host: {\n    '[class.disabled]': 'disabled()',\n    '[attr.aria-disabled]': 'disabled() || null',\n    '[attr.tabindex]': 'tabIndex()',\n    '(click)': 'onClick($event)',\n    '(keyup)': 'onKeyUp($event)'\n  }\n})\nexport class DropdownCloseDirective implements AfterViewInit {\n  #dropdownService = inject(DropdownService);\n  dropdown? = inject(DropdownComponent, { optional: true });\n\n  /**\n   * Disables a dropdown-close directive.\n   * @return boolean\n   * @default false\n   */\n  readonly disabledInput = input(false, { transform: booleanAttribute, alias: 'disabled' });\n\n  readonly disabled = linkedSignal({\n    source: this.disabledInput,\n    computation: (value) => value || null\n  });\n\n  readonly dropdownComponent = input<DropdownComponent>();\n\n  ngAfterViewInit(): void {\n    const dropdownComponent = this.dropdownComponent();\n    if (dropdownComponent) {\n      this.dropdown = dropdownComponent;\n      this.#dropdownService = dropdownComponent?.dropdownService;\n    }\n  }\n\n  readonly tabIndexInput = input<string | number | null>(null, { alias: 'tabIndex' });\n\n  readonly tabIndex = linkedSignal({\n    source: this.tabIndexInput,\n    computation: (value) => (this.disabled() ? '-1' : value)\n  });\n\n  onClick($event: MouseEvent): void {\n    this.handleToggle();\n  }\n\n  onKeyUp($event: KeyboardEvent): void {\n    if ($event.key === 'Enter') {\n      this.handleToggle();\n    }\n  }\n\n  private handleToggle(): void {\n    if (!this.disabled()) {\n      this.#dropdownService.toggle({ visible: false, dropdown: this.dropdown });\n    }\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { DropdownComponent, DropdownToggleDirective } from './dropdown/dropdown.component';\nimport { DropdownDividerDirective } from './dropdown-divider/dropdown-divider.directive';\nimport { DropdownHeaderDirective } from './dropdown-header/dropdown-header.directive';\nimport { DropdownItemDirective } from './dropdown-item/dropdown-item.directive';\nimport { DropdownItemPlainDirective } from './dropdown-item/dropdown-item-plain.directive';\nimport { DropdownMenuDirective } from './dropdown-menu/dropdown-menu.directive';\nimport { DropdownService } from './dropdown.service';\nimport { DropdownCloseDirective } from './dropdown-close/dropdown-close.directive';\n\n@NgModule({\n  imports: [\n    DropdownComponent,\n    DropdownCloseDirective,\n    DropdownDividerDirective,\n    DropdownHeaderDirective,\n    DropdownItemDirective,\n    DropdownItemPlainDirective,\n    DropdownMenuDirective,\n    DropdownToggleDirective\n  ],\n  exports: [\n    DropdownComponent,\n    DropdownCloseDirective,\n    DropdownDividerDirective,\n    DropdownHeaderDirective,\n    DropdownItemDirective,\n    DropdownItemPlainDirective,\n    DropdownMenuDirective,\n    DropdownToggleDirective\n  ],\n  providers: [DropdownService]\n})\nexport class DropdownModule {}\n","import { Component, computed, input } from '@angular/core';\n\nimport { Colors } from '../coreui.types';\n\n@Component({\n  selector: 'c-spinner',\n  templateUrl: './spinner.component.html',\n  host: {\n    '[attr.role]': 'role()',\n    '[class]': 'hostClasses()'\n  }\n})\nexport class SpinnerComponent {\n  /**\n   * Sets the color context of the component to one of CoreUI’s themed colors.\n   * @type Colors\n   */\n  readonly color = input<Colors>();\n\n  /**\n   * Label for accessibility.\n   * @type string\n   * @default 'Loading...'\n   */\n  readonly label = input('Loading...');\n\n  /**\n   * Size the component small.\n   * @return string\n   * @values 'sm'\n   */\n  readonly size = input<'sm'>();\n\n  /**\n   * Set the button variant to an outlined button or a ghost button.\n   * @values 'border' | 'grow'\n   * @default 'border'\n   */\n  readonly variant = input<'border' | 'grow'>('border');\n  /**\n   * Default role attr for Spinner. [docs]\n   * @type string\n   * @default 'status'\n   */\n  readonly role = input('status');\n\n  readonly hostClasses = computed(() => {\n    const color = this.color();\n    const size = this.size();\n    const variant = this.variant();\n\n    return {\n      [`spinner-${variant}`]: true,\n      [`text-${color}`]: !!color,\n      [`spinner-${variant}-${size}`]: !!size\n    } as Record<string, boolean>;\n  });\n}\n","<ng-content>\n  <span class=\"visually-hidden\">{{ label() }}</span>\n</ng-content>\n","import { NgModule } from '@angular/core';\n\nimport { SpinnerComponent } from './spinner.component';\n\n@NgModule({\n  exports: [\n    SpinnerComponent\n  ],\n  imports: [\n    SpinnerComponent\n  ]\n})\nexport class SpinnerModule {}\n","import {\n  afterNextRender,\n  ChangeDetectorRef,\n  Component,\n  computed,\n  ElementRef,\n  inject,\n  input,\n  signal\n} from '@angular/core';\n\nimport { SpinnerComponent } from '../spinner';\n\n@Component({\n  selector: 'c-element-cover, [cElementCover]',\n  templateUrl: './element-cover.component.html',\n  styleUrls: ['./element-cover.component.scss'],\n  imports: [SpinnerComponent],\n  host: {\n    '[style]': 'hostStyles()'\n  }\n})\nexport class ElementCoverComponent {\n  readonly elementRef = inject(ElementRef);\n  readonly changeDetectorRef = inject(ChangeDetectorRef);\n\n  readonly #parent = signal<any>(undefined);\n\n  constructor() {\n    afterNextRender({\n      read: () => {\n        this.#parent.set(this.elementRef.nativeElement.parentElement);\n        this.changeDetectorRef.detectChanges();\n      }\n    });\n  }\n\n  /**\n   * Array of custom boundaries. Use to create custom cover area (instead of parent element area). Area is defined by four sides: 'top', 'bottom', 'right', 'left'. If side is not defined by any custom boundary it is equal to parent element boundary. Each custom boundary is object with keys:\n   * - sides (array) - select boundaries of element to define boundaries. Side names: 'top', 'bottom', 'right', 'left'.\n   * - query (string) - query used to get element which define boundaries. Search will be done only inside parent element, by parent.querySelector(query) function. [docs]\n   * @type {sides: string[], query: string}[]\n   */\n  readonly boundaries = input<{ sides: ('top' | 'bottom' | 'right' | 'left')[]; query: string }[]>();\n\n  /**\n   * Opacity of cover. [docs]\n   * @type <number>\n   */\n  readonly opacity = input(0.4);\n\n  readonly #customBoundaries = computed(() => {\n    if (!this.boundaries() || this.elementRef === null) {\n      return {};\n    }\n    if (!this.#parent()) {\n      return {};\n    }\n    const parentCoords = this.#parent()?.getBoundingClientRect();\n    const _customBoundaries: Record<string, string> = {};\n    this.boundaries()?.forEach((value) => {\n      const element = this.#parent()?.querySelector(value.query);\n      if (!element || !value.sides) {\n        return;\n      }\n      const coords = element.getBoundingClientRect();\n      value.sides.forEach((side: string) => {\n        const sideMargin = Math.abs(coords[side] - parentCoords[side]);\n        _customBoundaries[side] = `${sideMargin}px`;\n      });\n    });\n    return _customBoundaries;\n  });\n\n  readonly #containerCoords = computed(() => {\n    return {\n      top: 0,\n      left: 0,\n      right: 0,\n      bottom: 0,\n      ...this.#customBoundaries()\n    };\n  });\n\n  readonly hostStyles = computed((): Record<string, unknown> => {\n    return {\n      ...this.#containerCoords(),\n      position: 'absolute',\n      backgroundColor: `rgb(255,255,255,${this.opacity()})`\n    };\n  });\n}\n","<div [style]=\"{position: 'absolute', 'top.%': '50', 'left.%': '50', transform: 'translateX(-50%) translateY(-50%)'}\">\n  <ng-content>\n    <c-spinner color=\"primary\" variant=\"grow\" />\n  </ng-content>\n</div>\n","import { NgModule } from '@angular/core';\nimport { ElementCoverComponent } from './element-cover.component';\n\n@NgModule({\n  imports: [ElementCoverComponent],\n  exports: [ElementCoverComponent]\n})\nexport class ElementCoverModule {}\n","import { SelectionChange, SelectionModel } from '@angular/cdk/collections';\nimport { computed, DestroyRef, inject, Injectable, signal } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { distinctUntilChanged } from 'rxjs/operators';\nimport { MultiSelectOptionComponent } from './multi-select-option/multi-select-option.component';\nimport { IOption } from './multi-select.types';\n\n@Injectable()\nexport class MultiSelectService {\n  readonly #destroyRef = inject(DestroyRef);\n  readonly optionsStyle = signal<'checkbox' | 'text'>('checkbox');\n\n  selectionModel: SelectionModel<any> = new SelectionModel<any>(true);\n  readonly selectionModelChanged$ = new Subject<SelectionChange<any>>();\n\n  setSelectionModel(multiple = true, initiallySelectedValues: string[] = []) {\n    if (this.selectionModel.isMultipleSelection() === !multiple) {\n      this.selectionModel = new SelectionModel<any>(multiple);\n    }\n    this.selectionModel.changed\n      .pipe(\n        distinctUntilChanged((previous, current) => {\n          return (\n            previous.added.length === current.added.length &&\n            previous.removed.length === current.removed.length &&\n            JSON.stringify(previous.added) === JSON.stringify(current.added) &&\n            JSON.stringify(previous.removed) === JSON.stringify(current.removed)\n          );\n        }),\n        takeUntilDestroyed(this.#destroyRef)\n      )\n      .subscribe((change) => {\n        this.selectionModelChanged$.next(change);\n      });\n  }\n\n  private readonly multiSelectVisible = new BehaviorSubject<boolean>(false);\n  readonly multiSelectVisible$ = this.multiSelectVisible.asObservable();\n\n  toggleVisible(visible: boolean): void {\n    this.multiSelectVisible.next(visible);\n  }\n\n  private readonly multiSelectFocus = new Subject<MultiSelectOptionComponent>();\n  readonly multiSelectFocus$ = this.multiSelectFocus.asObservable();\n\n  focusChange(option: MultiSelectOptionComponent) {\n    this.multiSelectFocus.next(option);\n  }\n\n  public readonly userOptionsSignal = signal<IOption[]>([]);\n\n  getUserOptions() {\n    return computed(this.userOptionsSignal);\n  }\n\n  addUserOption(option: IOption) {\n    this.userOptionsSignal.update((options) => [...options, option]);\n  }\n\n  removeUserOption(value: string) {\n    const updatedOptions = this.userOptionsSignal().filter((option) => option.value !== value);\n    this.userOptionsSignal.set(updatedOptions);\n  }\n\n  removeAllUserOptions() {\n    this.userOptionsSignal.set([]);\n  }\n\n  readonly #optionsArray = new BehaviorSubject<IOption[]>([]);\n  readonly optionsArray$ = this.#optionsArray.asObservable();\n\n  getOptionsArray() {\n    return this.optionsArray$;\n  }\n\n  updateOptionsArray(options: IOption[]) {\n    this.#optionsArray.next(options);\n  }\n}\n","import {\n  AfterViewInit,\n  booleanAttribute,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  computed,\n  DestroyRef,\n  ElementRef,\n  inject,\n  input,\n  Input,\n  linkedSignal,\n  output,\n  signal,\n  ViewRef,\n  WritableSignal\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FocusableOption, FocusMonitor, FocusOrigin } from '@angular/cdk/a11y';\nimport { distinctUntilChanged, filter, tap } from 'rxjs/operators';\n\nimport { MultiSelectService } from '../multi-select.service';\n\n@Component({\n  selector: 'c-multi-select-option',\n  template: `\n    <div>\n      <ng-content>\n        {{ text ?? label ?? value?.toString() }}\n      </ng-content>\n    </div>\n  `,\n  styleUrls: ['./multi-select-option.component.scss'],\n  exportAs: 'cMultiSelectOption',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: true,\n  host: {\n    '[attr.disabled]': 'ariaDisabled',\n    '[attr.aria-disabled]': 'ariaDisabled',\n    '[attr.aria-selected]': 'ariaSelected()',\n    '[attr.role]': 'role()',\n    '[attr.tabindex]': 'tabIndex',\n    '[class]': 'hostClasses()',\n    '(blur)': 'onBlur()',\n    '(focus)': 'onFocus()',\n    '(keydown)': 'onKeyDown($event)',\n    '(keyup)': 'onKeyUp($event)',\n    '(click)': 'onClick($event)'\n  }\n})\nexport class MultiSelectOptionComponent implements AfterViewInit, FocusableOption {\n  public readonly elementRef = inject(ElementRef);\n  readonly #changeDetectorRef = inject(ChangeDetectorRef);\n  readonly #destroyRef = inject(DestroyRef);\n  readonly #focusMonitor = inject(FocusMonitor);\n  readonly #multiSelectService = inject(MultiSelectService);\n\n  /**\n   * Option style\n   * @return ('checkbox' | 'text')\n   * @default 'checkbox'\n   */\n  readonly optionsStyleInput = input<string | undefined>(undefined, { alias: 'optionsStyle' });\n\n  readonly optionsStyle = linkedSignal(() => this.optionsStyleInput() ?? this.#multiSelectService.optionsStyle());\n\n  /**\n   * Option label\n   * @type string\n   * @default undefined\n   */\n  @Input() label?: string;\n\n  /**\n   * Option inner text\n   * @type string\n   * @default undefined\n   */\n  @Input() text?: string;\n\n  /**\n   * Option visible.\n   * @type boolean\n   * @default true\n   */\n  @Input({ transform: booleanAttribute })\n  set visible(value: boolean) {\n    this.#visible.set(value);\n  }\n\n  get visible() {\n    return this.#visible();\n  }\n\n  readonly #visible = signal(true);\n\n  /**\n   * Option disabled.\n   * @type boolean\n   * @default false\n   */\n  @Input({ transform: booleanAttribute }) disabled: boolean = false;\n\n  /**\n   * Option selected.\n   * @type boolean\n   * @default false\n   */\n  @Input()\n  set selected(value: boolean | undefined) {\n    if (value !== undefined) {\n      const selected = booleanAttribute(value);\n      if (this.#selected() !== selected) {\n        this.#selected.set(selected);\n        if (this.value !== undefined) {\n          selected\n            ? this.#multiSelectService.selectionModel?.select(this.value)\n            : this.#multiSelectService.selectionModel?.deselect(this.value);\n        }\n      }\n    }\n  }\n\n  get selected() {\n    return this.#selected();\n  }\n\n  readonly #selected = signal<boolean | undefined>(undefined);\n\n  /**\n   * Emits option selected change\n   * @return boolean\n   */\n  readonly selectedChange = output<boolean>();\n\n  /**\n   * Option value.\n   * @type string | number\n   * @default undefined\n   */\n  @Input()\n  set value(value: string | number) {\n    if (this.#value() !== value) {\n      this.#value.set(value);\n    }\n  }\n\n  get value() {\n    return this.#value();\n  }\n\n  readonly #value: WritableSignal<any> = signal(undefined);\n\n  readonly #dropdownVisible = signal(false);\n\n  @Input({ transform: booleanAttribute })\n  set active(value: boolean) {\n    const active = value && this.#visible() && !this.disabled;\n    if (this.#active() !== active) {\n      this.#active.set(active);\n    }\n  }\n\n  get active() {\n    return this.#active() && this.#visible();\n  }\n\n  readonly role = input('option');\n\n  readonly #active = signal(false);\n\n  readonly #focused = signal(false);\n\n  readonly focusChange = output<MultiSelectOptionComponent>();\n\n  readonly hostClasses = computed(() => {\n    const optionsStyle = this.optionsStyle();\n    return {\n      'form-multi-select-option': true,\n      'form-multi-selected': this.#selected(),\n      [`form-multi-select-option-with-${optionsStyle}`]: !!optionsStyle,\n      disabled: this.disabled,\n      'd-none': !this.#visible(),\n      active: this.#active(),\n      focused: this.#focused()\n    } as Record<string, boolean>;\n  });\n\n  protected get tabIndex() {\n    return this.disabled || !this.#visible() ? -1 : this.#tabIndex();\n  }\n\n  readonly #tabIndex = computed(() => {\n    return this.#active() && this.#visible() ? 0 : -1;\n  });\n\n  protected get ariaDisabled() {\n    return this.disabled || null;\n  }\n\n  readonly ariaSelected = computed(() => {\n    const value = this.#value();\n    const selected = this.#selected();\n    if (value !== undefined && selected !== undefined) {\n      selected\n        ? this.#multiSelectService.selectionModel?.select(value)\n        : this.#multiSelectService.selectionModel?.deselect(value);\n      this.selectedChange.emit(selected);\n      this.#changeDetectorRef.markForCheck();\n    }\n    return selected ?? false;\n  });\n\n  protected onBlur() {\n    this.#focused.set(false);\n  }\n\n  protected onFocus() {\n    this.#focused.set(true);\n  }\n\n  protected onKeyDown($event: KeyboardEvent): void {\n    if (['Space'].includes($event.code)) {\n      $event.preventDefault();\n    }\n    if (['Tab'].includes($event.code)) {\n      $event.preventDefault();\n    }\n  }\n\n  protected onKeyUp($event: KeyboardEvent): void {\n    if (this.#dropdownVisible()) {\n      if (['Enter', 'Space'].includes($event.code)) {\n        $event.stopImmediatePropagation();\n        $event.preventDefault();\n        this.selected = this.disabled ? this.#selected() : !this.#selected();\n        this.focus('keyboard');\n      }\n    }\n  }\n\n  protected onClick($event: MouseEvent): void {\n    $event.stopPropagation();\n    this.selected = this.disabled ? this.#selected() : !this.#selected();\n    this.focus('mouse');\n  }\n\n  ngAfterViewInit(): void {\n    this.setSubscriptions();\n\n    if (this.text === undefined) {\n      const innerText =\n        this.elementRef.nativeElement.textContent.trim() || this.elementRef.nativeElement.innerText.trim();\n      this.text = innerText || this.value?.toString().trim();\n    }\n\n    if (this.label === undefined) {\n      this.label = this.text?.trim();\n    }\n\n    if (this.value === undefined) {\n      this.value = this.label?.trim() || '...';\n    }\n\n    if (!(this.#changeDetectorRef as ViewRef).destroyed) {\n      // setTimeout(() => {\n      this.selected = this.isSelected(this.value);\n      this.#changeDetectorRef.markForCheck();\n      // });\n    }\n  }\n\n  /** Get the label for this element which is required by the FocusableOption interface. */\n  getLabel(): string {\n    return <string>(this.label ?? this.value);\n  }\n\n  focus(origin: FocusOrigin = 'program'): void {\n    if (this.#dropdownVisible() && !this.disabled) {\n      this.#focusMonitor.focusVia(this.elementRef.nativeElement, origin, { preventScroll: false });\n      this.#multiSelectService.focusChange(this);\n      this.#changeDetectorRef.markForCheck();\n      this.focusChange.emit(this);\n    }\n  }\n\n  private setSubscriptions() {\n    this.#multiSelectService.multiSelectVisible$\n      .pipe(\n        tap((visible) => {\n          this.#dropdownVisible.set(visible);\n        }),\n        takeUntilDestroyed(this.#destroyRef)\n      )\n      .subscribe();\n\n    this.#multiSelectService.multiSelectFocus$\n      .pipe(\n        distinctUntilChanged(),\n        filter((option) => this.active !== (this.value === option.value)),\n        tap((option) => {\n          this.active = this.value === option.value;\n          this.#changeDetectorRef.markForCheck();\n        }),\n        takeUntilDestroyed(this.#destroyRef)\n      )\n      .subscribe();\n\n    if (!(this.#changeDetectorRef as ViewRef).destroyed) {\n      this.#multiSelectService.selectionModelChanged$\n        .pipe(\n          filter((change) => change.added.includes(this.value) || change.removed.includes(this.value)),\n          tap((change) => {\n            this.selected = change.added.includes(this.value);\n            this.#changeDetectorRef.markForCheck();\n          }),\n          takeUntilDestroyed(this.#destroyRef)\n        )\n        .subscribe();\n    }\n  }\n\n  isSelected(value = this.value): boolean {\n    return (this.#selected() || this.#multiSelectService.selectionModel?.isSelected(value)) ?? false;\n  }\n}\n","import { ChangeDetectionStrategy, Component, computed, inject, input, output } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\n\nimport { MultiSelectService } from '../multi-select.service';\nimport { IOption } from '../multi-select.types';\n\n@Component({\n  selector: 'c-multi-select-tag',\n  templateUrl: './multi-select-tag.component.html',\n  styleUrls: ['./multi-select-tag.component.scss'],\n  standalone: true,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  host: {\n    class: 'form-multi-select-tag',\n    '[class]': 'hostClasses()'\n  }\n})\nexport class MultiSelectTagComponent {\n  readonly #multiSelectService = inject(MultiSelectService);\n  readonly multiselectVisible = toSignal(this.#multiSelectService.multiSelectVisible$);\n\n  readonly option = input<IOption>();\n\n  readonly disabled = input(true);\n  readonly label = input<string>();\n  readonly value = input<any>();\n\n  readonly remove = output<IOption>();\n\n  readonly hostClasses = computed<Record<string, boolean>>(() => ({\n    'pe-none': this.disabled()\n  }));\n\n  handleRemove($event: MouseEvent): void {\n    $event.stopPropagation();\n    if (this.value()) {\n      this.remove.emit(this.value());\n    }\n  }\n}\n","<span class=\"text-truncate\">{{ label() ?? value()?.toString() ?? '???' }}</span>\n@if (!disabled()) {\n  <button (click)=\"handleRemove($event)\"\n          [disabled]=\"((multiselectVisible()) ?? true) === false\"\n          aria-label=\"Clear\"\n          class=\"form-multi-select-tag-delete\"\n          type=\"button\">\n  </button>\n}\n","import { AfterViewInit, DestroyRef, Directive, effect, ElementRef, inject, input, output } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { BehaviorSubject, fromEvent } from 'rxjs';\nimport { debounceTime, distinctUntilChanged, filter, map, tap } from 'rxjs/operators';\n\n@Directive({\n  selector: '[cMultiSelectSearch]',\n  exportAs: 'cMultiSelectSearch',\n  standalone: true\n})\nexport class MultiSelectSearchDirective implements AfterViewInit {\n  readonly #elementRef = inject(ElementRef);\n  readonly #destroyRef = inject(DestroyRef);\n\n  readonly #value$ = new BehaviorSubject<string>('');\n\n  readonly delay = input(300);\n  readonly value = input<string>('');\n\n  readonly #valueEffect = effect(() => {\n    this.#value$.next(this.value());\n  });\n\n  readonly valueChange = output<string>();\n\n  readonly #backspace$ = fromEvent<KeyboardEvent>(this.#elementRef.nativeElement, 'keydown')\n    .pipe(\n      filter(($event) => ['Backspace', 'Delete'].includes($event.key)),\n      tap(($event) => {\n        if (($event.target as HTMLInputElement).value !== '') {\n          $event.stopImmediatePropagation();\n        }\n      }),\n      takeUntilDestroyed(this.#destroyRef)\n    )\n    .subscribe();\n\n  readonly #input$ = fromEvent<Event>(this.#elementRef.nativeElement, 'input').pipe(\n    debounceTime(this.delay()),\n    map((event) => {\n      return (event.target as HTMLInputElement).value;\n    }),\n    takeUntilDestroyed(this.#destroyRef)\n  );\n\n  ngAfterViewInit(): void {\n    this.setSubscription();\n  }\n\n  private setSubscription() {\n    this.#value$.pipe(distinctUntilChanged(), takeUntilDestroyed(this.#destroyRef)).subscribe((value) => {\n      this.valueChange.emit(value);\n    });\n\n    this.#input$.pipe(takeUntilDestroyed(this.#destroyRef)).subscribe((value) => {\n      this.#value$.next(value);\n    });\n  }\n}\n","import { FocusableOption, FocusKeyManager, FocusMonitor, FocusOrigin } from '@angular/cdk/a11y';\nimport { BooleanInput, NumberInput } from '@angular/cdk/coercion';\nimport { CdkFixedSizeVirtualScroll, CdkVirtualForOf, CdkVirtualScrollViewport } from '@angular/cdk/scrolling';\nimport { AsyncPipe, I18nPluralPipe, NgStyle, NgTemplateOutlet } from '@angular/common';\nimport {\n  AfterViewInit,\n  booleanAttribute,\n  ChangeDetectorRef,\n  Component,\n  computed,\n  ContentChildren,\n  DestroyRef,\n  DOCUMENT,\n  effect,\n  ElementRef,\n  forwardRef,\n  inject,\n  Input,\n  input,\n  IterableDiffer,\n  IterableDiffers,\n  linkedSignal,\n  NgZone,\n  numberAttribute,\n  OnChanges,\n  OnDestroy,\n  OnInit,\n  output,\n  QueryList,\n  Renderer2,\n  signal,\n  SimpleChanges,\n  TemplateRef,\n  ViewChild,\n  ViewChildren\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { BehaviorSubject, Observable, skip, Subject, Subscription } from 'rxjs';\nimport { combineLatestWith, debounceTime, delay, distinctUntilChanged, filter, map, take, tap } from 'rxjs/operators';\nimport { Modifier, ModifierArguments, Options } from '@popperjs/core';\n\nimport { DropdownComponent, DropdownMenuDirective, DropdownToggleDirective } from '../../dropdown';\nimport { ElementCoverComponent } from '../../element-cover';\nimport { TemplateIdDirective } from '../../shared';\nimport { MultiSelectService } from '../multi-select.service';\nimport { MultiSelectOptionComponent } from '../multi-select-option/multi-select-option.component';\nimport { MultiSelectTagComponent } from '../multi-select-tag/multi-select-tag.component';\nimport { MultiSelectSearchDirective } from './multi-select-search.directive';\nimport type { IMultiSelect, IOption, OptionsMap, SearchFn } from '../multi-select.types';\n\ninterface IPluralMap {\n  [k: string]: string;\n}\n\nexport const observeReferenceResizeModifier: Modifier<string, Options> = {\n  name: 'observeReferenceResizeModifier',\n  enabled: true,\n  phase: 'main',\n  fn({ state }) {\n    /* empty */\n  },\n  effect: ({ state, instance }: ModifierArguments<Options>) => {\n    const RO_PROP = '__popperjsRO__';\n    const { reference } = state.elements;\n\n    let resizeObserver: ResizeObserver | null = new ResizeObserver((entries) => {\n      if (entries.find((entry) => entry.target === reference)) {\n        instance.update();\n      }\n    }) satisfies ResizeObserver;\n\n    resizeObserver.observe(<Element>reference);\n    return () => {\n      resizeObserver?.disconnect();\n      resizeObserver = null;\n    };\n  }\n};\n\nexport const sameAsReferenceWidthModifier: Modifier<string, Options> = {\n  name: 'sameAsReferenceWidthModifier',\n  enabled: true,\n  fn: ({ state }) => {\n    state.styles['popper'].minWidth = `${state.rects.reference.width}px`;\n  },\n  phase: 'beforeWrite',\n  requires: ['computeStyles']\n};\n\nexport const defaultPopperOptions: Partial<Options> = {\n  strategy: 'fixed',\n  modifiers: [\n    observeReferenceResizeModifier,\n    sameAsReferenceWidthModifier,\n    {\n      name: 'offset',\n      options: {\n        offset: () => [0, 4]\n      }\n    }\n  ]\n};\n\n@Component({\n  selector: 'c-multi-select',\n  templateUrl: './multi-select.component.html',\n  styleUrls: ['./multi-select.component.scss'],\n  exportAs: 'cMultiSelect',\n  providers: [\n    I18nPluralPipe,\n    MultiSelectService,\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => MultiSelectComponent),\n      multi: true\n    }\n  ],\n  imports: [\n    AsyncPipe,\n    NgTemplateOutlet,\n    CdkFixedSizeVirtualScroll,\n    CdkVirtualScrollViewport,\n    CdkVirtualForOf,\n    FormsModule,\n    MultiSelectTagComponent,\n    MultiSelectOptionComponent,\n    MultiSelectSearchDirective,\n    DropdownComponent,\n    DropdownMenuDirective,\n    DropdownToggleDirective,\n    ElementCoverComponent,\n    NgStyle\n  ],\n  host: {\n    '[class]': 'hostClasses()',\n    '(click)': 'onClick($event)',\n    '(keyup)': 'onKeyUp($event)',\n    '(keydown)': 'onKeyDown($event)',\n    '[attr.aria-multiselectable]': 'multiple()',\n    '[attr.aria-expanded]': 'visible()',\n    '[attr.aria-disabled]': 'disabled()',\n    '[attr.tabindex]': 'tabIndex'\n  }\n})\nexport class MultiSelectComponent<TValue extends string | number>\n  implements IMultiSelect<TValue>, ControlValueAccessor, AfterViewInit, OnChanges, OnDestroy, OnInit\n{\n  static ngAcceptInputType_allowCreateOptions: BooleanInput;\n  static ngAcceptInputType_clearSearchOnSelect: BooleanInput;\n  static ngAcceptInputType_disabled: BooleanInput;\n  static ngAcceptInputType_itemSize: NumberInput;\n  static ngAcceptInputType_itemMinWidthInput: NumberInput;\n  static ngAcceptInputType_loading: BooleanInput;\n  static ngAcceptInputType_multiple: BooleanInput;\n  static ngAcceptInputType_resetSelectionOnOptionsChange: BooleanInput;\n  static ngAcceptInputType_selectAll: BooleanInput;\n  static ngAcceptInputType_virtualScroller: BooleanInput;\n  static ngAcceptInputType_visibleInput: BooleanInput;\n\n  private readonly elementRef = inject(ElementRef);\n  private readonly renderer = inject(Renderer2);\n  private readonly ngZone = inject(NgZone);\n  private readonly changeDetectorRef = inject(ChangeDetectorRef);\n  private readonly focusMonitor = inject(FocusMonitor);\n  protected readonly multiSelectService = inject(MultiSelectService);\n  private readonly iterableDiffers = inject(IterableDiffers);\n\n  readonly #destroyRef = inject(DestroyRef);\n  readonly #document = inject(DOCUMENT);\n  readonly #i18nPlural = inject(I18nPluralPipe);\n\n  constructor() {\n    this.differ = this.iterableDiffers.find(this.#value()).create();\n  }\n\n  private readonly differ!: IterableDiffer<any>;\n\n  readonly #destroy$ = new Subject<void>();\n  readonly #optionsReady$ = new Subject<void>();\n  readonly userOptionsArray$ = new BehaviorSubject<IOption[]>([]);\n  readonly #options: OptionsMap<string | number> = new Map();\n  readonly optionTags = signal<IOption[]>([]);\n  readonly optionsSelected = signal<Map<any, IOption>>(new Map());\n  readonly value$ = new BehaviorSubject<TValue[]>([]);\n  #optionsContent: any[] = [];\n\n  onChange = (value: any) => {\n    /* empty */\n  };\n  onTouched = () => {\n    /* empty */\n  };\n\n  writeValue(value: TValue | TValue[]): void {\n    if (value !== undefined && value !== null) {\n      this.value = Array.isArray(value) ? [...value] : [value];\n    } else {\n      this.value = Array(0);\n    }\n  }\n\n  registerOnChange(fn: any): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: any): void {\n    this.onTouched = fn;\n  }\n\n  setDisabledState(isDisabled: boolean): void {\n    this.disabled.set(isDisabled);\n  }\n\n  /**\n   * Allow users to create options if they are not in the list of options.\n   * @return boolean\n   * @default false\n   * @since 4.5.11\n   */\n  readonly allowCreateOptions = input(false, { transform: booleanAttribute });\n\n  /**\n   * Enables selection cleaner element\n   * @return boolean\n   * @default true | 'active'\n   */\n  readonly cleaner = input<boolean | 'active'>(true);\n\n  /**\n   * Clear current search on selecting an item\n   * @return boolean\n   * @default false\n   * @since 4.5.11\n   */\n  readonly clearSearchOnSelect = input(false, { transform: booleanAttribute });\n\n  /**\n   * Disables multi-select component\n   * @return boolean\n   * @default false\n   */\n  readonly disabledInput = input(false, { alias: 'disabled', transform: booleanAttribute });\n  readonly disabled = linkedSignal(this.disabledInput);\n  readonly #disabledEffect = effect(() => {\n    this.setFocusMonitor(!this.disabled());\n  });\n\n  /**\n   * Add loading spinner and reduced opacity.\n   * @return boolean\n   * @default false\n   * @since 4.5.2\n   */\n  readonly loading = input(false, { transform: booleanAttribute });\n\n  /**\n   * Specifies that multiple options can be selected at once\n   * @returns boolean\n   * @default false\n   */\n  readonly multiple = input(false, { transform: booleanAttribute });\n\n  readonly #multipleEffect = effect(() => {\n    const multiple = this.multiple();\n    this.multiSelectService.setSelectionModel(multiple);\n    if (!multiple) {\n      this.multiSelectService.selectionModelChanged$\n        .pipe(\n          filter(() => !multiple),\n          delay(0),\n          tap((change) => {\n            if (change.added.length > 0) {\n              // close dropdown for single select (!multiple)\n              this.visible.set(false);\n              this.searchValue = '';\n            }\n          }),\n          skip(1),\n          tap((change) => {\n            this.setFocus('program', 'selectionModel.changed (single)');\n          }),\n          takeUntilDestroyed(this.#destroyRef)\n        )\n        .subscribe();\n    }\n  });\n\n  /**\n   * List of option elements\n   * @type IOption[]\n   * @default []\n   */\n  @Input()\n  set options(options: IOption[]) {\n    if (Array.isArray(options)) {\n      this.#options.clear();\n      this.makeOptions(options);\n    }\n  }\n\n  get options() {\n    return [...this.#options.values()];\n  }\n\n  /**\n   * Sets maxHeight of options list in px\n   * @return string | number\n   * @default 'auto'\n   */\n  readonly optionsMaxHeightInput = input<string | number>('auto', { alias: 'optionsMaxHeight' });\n  readonly optionsMaxHeight = linkedSignal(this.optionsMaxHeightInput);\n\n  /**\n   * Sets option style\n   * @return 'checkbox' | 'text'\n   * @default 'checkbox'\n   */\n  readonly optionsStyle = input<'checkbox' | 'text'>('checkbox');\n  readonly #optionsStyleEffect = effect(() => {\n    this.multiSelectService.optionsStyle.set(this.optionsStyle());\n  });\n\n  /**\n   * Specifies a short hint that is visible in the search input\n   * @return string\n   * @default 'Select...'\n   */\n  readonly placeholder = input('Select...');\n\n  /**\n   * Resets selection when options are changed\n   * When set to true, any previously selected options will be reset whenever the options list undergoes a change.\n   * This ensures that outdated selections are not retained when new options are provided.\n   * @default false\n   * */\n  readonly resetSelectionOnOptionsChange = input(false, { transform: booleanAttribute });\n\n  /**\n   * Enables search input element\n   * @return boolean | SearchFn | 'external'\n   * @default true\n   */\n  readonly search = input<boolean | 'external' | SearchFn>(true);\n\n  /**\n   * Sets the label for no results when filtering\n   * @return string\n   * @default 'no items'\n   */\n  readonly searchNoResultsLabel = input('no items');\n\n  /**\n   * Sets initial search string\n   * @type string\n   * @default ''\n   */\n  @Input()\n  set searchValue(value) {\n    if (this._searchValue !== value.trimStart()) {\n      this._searchValue = value.trimStart();\n      this.visible.set(this.searchValue.length > 0 && this.subtreeFocused ? true : this.visible());\n      this.filterOptions(this.searchValue);\n      this.inputElementSize();\n      this.searchValueChange.emit(this._searchValue);\n    }\n  }\n\n  get searchValue() {\n    return this._searchValue;\n  }\n\n  private _searchValue: string = '';\n\n  /**\n   * Emits searchValue string for external filtering\n   * @return string\n   */\n  readonly searchValueChange = output<string>();\n\n  /**\n   * Enables select all button\n   * @return boolean\n   * @default true\n   */\n  readonly selectAll = input(true, { transform: booleanAttribute });\n\n  /**\n   * Sets the select all button label\n   * @return string\n   * @default 'Select all options'\n   */\n  readonly selectAllLabel = input('Select all options');\n\n  /**\n   * Selection type\n   * @return 'counter' | 'tags' | 'text'\n   * @default 'tags'\n   */\n  readonly selectionType = input<'counter' | 'tags' | 'text'>('tags');\n\n  /**\n   * Counter selection label value\n   * @return string\n   * @default 'item(s) selected'\n   */\n  readonly selectionTypeCounterText = input('item(s) selected');\n\n  /**\n   * Counter selection label plural map for I18nPluralPipe\n   * @return IPluralMap\n   * @default { '=1': 'item selected', 'other': 'items selected' }\n   */\n  readonly selectionTypeCounterTextPluralMap = input<IPluralMap | undefined>({\n    '=1': 'item selected',\n    other: 'items selected'\n  });\n\n  /**\n   * Size the component small or large.\n   * @return 'sm' | 'lg' | undefined\n   */\n  readonly size = input<'' | 'sm' | 'lg' | string>();\n\n  /**\n   * Initial value of multi-select\n   * @type (TValue | TValue[])\n   */\n  @Input() set value(value: TValue | TValue[]) {\n    const newValue = Array.isArray(value) ? [...value] : [value];\n    // if (this.differ) {\n    const changes = this.differ?.diff(newValue);\n    if (changes) {\n      if (newValue.length === 0) {\n        this.multiSelectService.selectionModel.clear();\n      }\n      this.value$.next([...newValue]);\n      this.onChange(this.value);\n    }\n    // }\n  }\n\n  get value(): TValue | TValue[] {\n    const value: TValue[] = this.multiSelectService.selectionModel?.selected ?? [...this.#value()];\n    return this.multiple() ? [...value] : value[0];\n  }\n\n  readonly #value = signal<TValue[]>([]);\n\n  /**\n   * Emits valueChange\n   * @return TValue | TValue[]\n   */\n  readonly valueChange = output<TValue | TValue[]>();\n\n  /**\n   * Toggle visual validation feedback.\n   * @return boolean | undefined\n   * @default undefined\n   */\n  readonly valid = input<boolean | undefined>();\n\n  /**\n   * Enable virtual scroller for options list.\n   * @return boolean\n   * @default false\n   */\n  readonly virtualScroller = input(false, { transform: booleanAttribute });\n\n  /**\n   * Amount of visible options, if set - overwrites optionsMaxHeight\n   * @return number\n   * @default 8\n   */\n  readonly visibleItemsInput = input(8, { alias: 'visibleItems', transform: numberAttribute });\n\n  readonly visibleItems = computed(() => {\n    const visibleItems = this.visibleItemsInput();\n    return visibleItems > 0 ? visibleItems : 8;\n  });\n\n  readonly #visibleItemsEffect = effect(() => {\n    this.optionsMaxHeight.set((this.itemSize() * this.visibleItems() + 16).toString());\n  });\n\n  /**\n   * The size of the option item in the list (in pixels).\n   * @return number\n   * @default 40\n   */\n  readonly itemSize = input(40, { transform: numberAttribute });\n\n  /**\n   * Min width of the options list (in pixels).\n   * @return number\n   * @default 196\n   */\n  readonly itemMinWidthInput = input(196, { alias: 'itemMinWidth', transform: numberAttribute });\n  readonly itemMinWidth = linkedSignal(this.itemMinWidthInput);\n  readonly minWidth = linkedSignal(this.itemMinWidth);\n\n  /**\n   * Toggle the visibility of the dropdown select component.\n   * @type boolean\n   * @default false\n   */\n  readonly visibleInput = input(false, { alias: 'visible', transform: booleanAttribute });\n\n  readonly visible = linkedSignal(this.visibleInput);\n\n  readonly #visibleEffect = effect(() => {\n    const visible = this.visible();\n    this.multiSelectService.toggleVisible(visible);\n  });\n\n  /**\n   * Emits visibleChange\n   * @return boolean\n   */\n  readonly visibleChange = output<boolean>();\n\n  /**\n   * Optional popper Options object\n   * @type Partial<Options>\n   */\n  readonly popperOptionsInput = input<Partial<Options>>(defaultPopperOptions, { alias: 'popperOptions' });\n\n  readonly popperOptions = computed(() => {\n    const options = this.popperOptionsInput();\n    const prevOptions = defaultPopperOptions;\n    const { modifiers: prevModifiers = [] } = prevOptions;\n    const { modifiers: currModifiers = [] } = options;\n    const currOptions: Partial<Options> = {\n      ...options,\n      modifiers: [\n        ...prevModifiers.filter(\n          (prevModifier) => !currModifiers.find((currModifier) => currModifier.name === prevModifier.name)\n        ),\n        ...currModifiers\n      ]\n    };\n    return { ...prevOptions, ...currOptions };\n  });\n\n  readonly isDropdownVisible = signal(false);\n\n  readonly selectedOptions = computed(() => {\n    return [...this.optionsSelected().values()];\n  });\n\n  get selectedOptionsText() {\n    return this.selectedOptions()\n      .map((option) => option.label)\n      .join(', ');\n  }\n\n  readonly counterText = computed(() => {\n    return `${this.selectedOptions().length} ${this.selectionTypeCounterText()}`;\n  });\n\n  readonly counterTextType = computed(() => {\n    return typeof (this.selectionTypeCounterTextPluralMap() ?? this.selectionTypeCounterText());\n  });\n\n  readonly counterPlaceholderText = computed(() => {\n    const selectedOptions = this.selectedOptions();\n    if (selectedOptions.length === 0 || this.selectionType() !== 'counter') {\n      return null;\n    }\n    if (this.counterTextType() === 'string') {\n      return this.counterText();\n    } else {\n      return `${selectedOptions.length} ${this.#i18nPlural.transform(selectedOptions.length, this.selectionTypeCounterTextPluralMap() ?? { other: this.selectionTypeCounterText() ?? '+' })}`;\n    }\n  });\n\n  private focusMonitorSubscription!: Subscription;\n\n  @ContentChildren(MultiSelectOptionComponent, { descendants: true })\n  multiSelectOptionsContent!: QueryList<MultiSelectOptionComponent>;\n  @ViewChildren(MultiSelectOptionComponent) multiSelectOptionsView!: QueryList<MultiSelectOptionComponent>;\n  @ViewChildren('scrollViewport') scrollViewportView!: QueryList<CdkVirtualScrollViewport>;\n  @ViewChild('options') optionsElementRef!: ElementRef;\n\n  protected scrollViewport!: CdkVirtualScrollViewport;\n\n  protected templates: { [id: string]: TemplateRef<any> } = {};\n  @ContentChildren(TemplateIdDirective, { descendants: true }) contentTemplates!: QueryList<TemplateIdDirective>;\n\n  private focusKeyManager!: FocusKeyManager<MultiSelectOptionComponent>;\n\n  @ViewChild('inputElement') inputElement!: ElementRef<HTMLInputElement>;\n  @ViewChild(DropdownMenuDirective, { read: ElementRef }) dropdownMenu!: ElementRef;\n  @ViewChild(DropdownComponent, { read: ElementRef }) dropdown!: ElementRef;\n  @ViewChild(DropdownToggleDirective, { read: ElementRef }) dropdownToggle!: ElementRef;\n\n  readonly hostClasses = computed(() => {\n    const valid = this.valid();\n    return {\n      'form-multi-select': true,\n      disabled: this.disabled(),\n      'is-valid': valid === true,\n      'is-invalid': valid === false\n    } as Record<string, boolean>;\n  });\n\n  readonly multiselectClasses = computed(() => {\n    const size = this.size();\n    const valid = this.valid();\n    return {\n      'form-multi-select': true,\n      [`form-multi-select-${size}`]: !!size,\n      show: this.visible(),\n      disabled: this.disabled(),\n      'is-valid': valid === true,\n      'is-invalid': valid === false,\n      dropdown: false\n    } as Record<string, boolean>;\n  });\n\n  readonly multiselectSelectionClasses = computed(() => {\n    const valid = this.valid();\n    return {\n      'form-multi-select-selection': true,\n      // 'form-multi-select-selection-tags': this.selectionType() === 'tags' && this.selectedOptions.length,\n      'form-control': valid === true || valid === false,\n      'is-valid': valid === true,\n      'is-invalid': valid === false\n    } as Record<string, boolean>;\n  });\n\n  protected get tabIndex() {\n    return this._tabIndex;\n  }\n\n  protected set tabIndex(value) {\n    setTimeout(() => {\n      this._tabIndex = this.disabled() || this.search() ? -1 : value === null ? null : 0;\n    });\n  }\n\n  private _tabIndex: number | null = -1;\n\n  onBlur() {\n    this.onTouched();\n  }\n\n  onKeyUp($event: KeyboardEvent): void {\n    if (this.disabled()) {\n      return;\n    }\n    const targetTagName = ($event.target as HTMLElement).tagName;\n    if ($event.key === 'Escape') {\n      this.visible.set(false);\n      this.searchValue = '';\n      this.setFocus('keyboard', 'onKeyUp');\n      return;\n    }\n    if (\n      ['Enter', 'Space', 'ArrowDown'].includes($event.code) &&\n      [this.inputElement?.nativeElement, this.elementRef.nativeElement].includes($event.target)\n    ) {\n      $event.stopPropagation();\n      this.visible.set(true);\n      if (!this.search()) {\n        this.setFocus('keyboard', 'onKeyUp');\n      }\n      return;\n    }\n\n    if (['Tab'].includes($event.key)) {\n      // todo focus on input when tab in\n      // if ($event.target === this.inputElement?.nativeElement) {\n      //   console.log($event.key, $event.target)\n      // }\n\n      if ($event.target === this.elementRef.nativeElement) {\n        this.visible.set(true);\n        if (!this.search()) {\n          this.setFocus('keyboard', 'onKeyUp');\n        }\n        this.tabTarget = targetTagName;\n        return;\n      }\n\n      if (this.visible() && this.subtreeFocused) {\n        if (targetTagName === 'C-MULTI-SELECT-OPTION') {\n          if (this.tabTarget === 'C-MULTI-SELECT-OPTION') {\n            if (\n              $event.shiftKey &&\n              this.focusKeyManager.activeItem?.value ===\n                this.options.filter((option) => option.visible && !option.disabled).slice(0)[0].value\n            ) {\n              this.setFocus('keyboard', 'onKeyUp');\n              this.tabTarget = targetTagName;\n              return;\n            }\n\n            if (\n              !$event.shiftKey &&\n              this.focusKeyManager.activeItem?.value ===\n                this.options.filter((option) => option.visible && !option.disabled).slice(-1)[0].value\n            ) {\n              this.setFocus('keyboard', 'onKeyUp');\n              this.tabTarget = targetTagName;\n              this.updateActiveItem(0);\n              return;\n            }\n          }\n\n          if (!this.focusKeyManager.activeItem || this.tabTarget !== targetTagName) {\n            if (this.activeOption) {\n              this.focusKeyManager.setActiveItem(this.activeOption);\n            } else {\n              this.setFirstItemActive();\n            }\n          } else {\n            $event.shiftKey ? this.focusKeyManager.setPreviousItemActive() : this.focusKeyManager.setNextItemActive();\n          }\n        }\n        this.tabTarget = targetTagName;\n        return;\n      }\n    }\n  }\n\n  onKeyDown($event: KeyboardEvent) {\n    const targetTagName = ($event.target as HTMLElement).tagName;\n    if ($event.key === 'Enter' && targetTagName === 'INPUT') {\n      $event.preventDefault();\n    }\n    if ($event.key === 'Tab') {\n      this.tabTarget = targetTagName;\n      return;\n    }\n    if ($event.key === 'ArrowDown' && targetTagName !== 'C-MULTI-SELECT-OPTION') {\n      $event.preventDefault();\n      return;\n    }\n    if ($event.key === 'Escape') {\n      this.visible.set(false);\n      this.searchValue = '';\n      this.setFocus('keyboard', 'onKeyDown');\n      return;\n    }\n    if (this.disabled()) {\n      return;\n    }\n    // avoid setting focus to option while on input element\n    if ($event.target === this.inputElement?.nativeElement) {\n      return;\n    }\n    if ($event.key !== 'Tab') {\n      this.focusKeyManager?.onKeydown($event);\n    }\n  }\n\n  onClick($event: MouseEvent): void {\n    if (this.disabled()) {\n      return;\n    }\n    if ([this.dropdown.nativeElement].includes($event.target)) {\n      this.visible.update((visible) => !visible);\n    } else {\n      this.visible.set(true);\n    }\n    this.setFocus('mouse', 'onClick');\n  }\n\n  readonly visibleOptions = signal(false);\n\n  get subtreeFocused() {\n    return this._subtreeFocused;\n  }\n\n  set subtreeFocused(focused: boolean) {\n    this._subtreeFocused = this.disabled() ? false : focused;\n    if (!focused) {\n      this.searchValue = '';\n    }\n    if (!this.virtualScroller()) {\n      this.visible.set(focused === false ? false : this.visible());\n    }\n  }\n\n  private _subtreeFocused = this.focusOrigin(null);\n\n  focusOrigin(origin: FocusOrigin): boolean {\n    if (this.disabled()) {\n      return false;\n    }\n    return !!origin;\n  }\n\n  ngOnInit(): void {\n    this.multiSelectService.setSelectionModel(this.multiple());\n    this.#optionsReady$\n      .pipe(\n        filter(() => !this.virtualScroller()),\n        delay(0),\n        tap(() => {\n          this.setFocusKeyManager([...this.multiSelectOptionsContent, ...this.multiSelectOptionsView]);\n        }),\n        takeUntilDestroyed(this.#destroyRef)\n      )\n      .subscribe();\n\n    // this.multiSelectService.selectionModelChanged$\n    //   .pipe(\n    //     tap((change) => {\n    //       const { added } = { ...change };\n    //       if (added.length > 0 && this.clearSearchOnSelect()) {\n    //         this.searchValue = '';\n    //       }\n    //     }),\n    //     takeUntilDestroyed(this.#destroyRef)\n    //   )\n    //   .subscribe();\n\n    this.multiSelectService.selectionModelChanged$\n      .pipe(\n        // delay(0),\n        tap((change) => {\n          const { added } = { ...change };\n          if (added.length > 0 && this.clearSearchOnSelect()) {\n            this.searchValue = '';\n          }\n        }),\n        combineLatestWith(this.#optionsReady$),\n        tap(([change, ready]) => {\n          const { removed } = { ...change };\n          removed?.length &&\n            this.optionsSelected.update((optSelected) => {\n              const newOptSelected = new Map(optSelected);\n              removed.forEach((value) => {\n                newOptSelected.delete(value);\n              });\n              return newOptSelected;\n            });\n          this.multiSelectService.selectionModel.selected.forEach((key) => {\n            const value = this.#options.get(key);\n            if (value) {\n              this.optionsSelected.update((optSelected) => {\n                const newOptSelected = new Map(optSelected);\n                newOptSelected.set(key, value);\n                return newOptSelected;\n              });\n            }\n          });\n          this.optionTags.set(Array.from(this.optionsSelected().values()));\n          this.value = [...this.multiSelectService.selectionModel.selected];\n\n          this.inputElementSize();\n        }),\n        takeUntilDestroyed(this.#destroyRef)\n      )\n      .subscribe();\n\n    // set initial values\n    this.multiSelectService.selectionModel?.select(...this.#value());\n\n    this.value$.pipe(takeUntilDestroyed(this.#destroyRef)).subscribe((value) => {\n      if (!value.length) {\n        this.clearAllOptions();\n        return;\n      }\n      this.multiSelectService.selectionModel.setSelection(...value);\n      this.#value.set(this.multiSelectService.selectionModel.selected);\n    });\n\n    this.value$\n      .pipe(\n        debounceTime(100),\n        distinctUntilChanged(),\n        tap((value) => {\n          this.valueChange.emit(this.value);\n        }),\n        takeUntilDestroyed(this.#destroyRef)\n      )\n      .subscribe();\n\n    this.multiSelectService.optionsArray$\n      .pipe(\n        combineLatestWith(this.userOptionsArray$),\n        tap(([options, userOptions]) => {\n          this.visibleOptions.set(options.some((item) => item.visible) || userOptions.some((item) => item.visible));\n          this.activeOption = null;\n\n          if (this.virtualScroller()) {\n            this.multiSelectOptionsContent?.forEach((option) => {\n              option.active = false;\n            });\n            this.scrollViewport?.setRenderedRange({ start: 0, end: this.visibleItems() });\n            this.scrollViewport?.scrollToIndex(0);\n          } else {\n            this.multiSelectOptionsContent?.forEach((option) => {\n              const found = options.find((item) => item.value === option.value);\n              option.visible = found?.visible ?? false;\n              option.active = false;\n            });\n            const firstFocusable = this.firstFocusableItem;\n            if (firstFocusable) {\n              this.updateActiveItem(firstFocusable);\n            }\n          }\n          if (!this.activeOption) {\n            setTimeout(() => {\n              this.updateActiveItem(0);\n            });\n          }\n          this.multiSelectOptionsContent?.notifyOnChanges();\n        }),\n        takeUntilDestroyed(this.#destroyRef)\n      )\n      .subscribe();\n\n    this.tabIndex = 0;\n  }\n\n  ngOnDestroy(): void {\n    this.#destroy$.next();\n    this.#destroy$.complete();\n    this.setFocusMonitor(false);\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (changes['value']) {\n      const valueChanges = changes['value'];\n      if (valueChanges.currentValue.length === 0) {\n        this.clearAllOptions();\n      }\n      this.inputElementSize();\n    }\n  }\n\n  makeOptions(options: IOption[]) {\n    if (this.resetSelectionOnOptionsChange() && this.search() !== 'external') {\n      this.clearAllOptions();\n    }\n    if (this.search() === 'external' && this.searchValue.length) {\n      this.#options.forEach((option, key) => {\n        option.visible = false;\n      });\n    }\n\n    options.forEach((option) => {\n      const key = option.value;\n      const value = {\n        value: option.value ?? option.label,\n        label: option.label ?? option.value?.toString(),\n        disabled: option.disabled === true,\n        visible:\n          this.search() === 'external'\n            ? true\n            : option.custom && option.selected\n              ? option.visible\n              : option.visible !== false,\n        text: option.text ?? option.label ?? option.value?.toString(),\n        selected: option.selected,\n        custom: option.custom\n        // selected: this.multiSelectService.selectionModel.isSelected(option.value),\n        // id: option.id\n      };\n      this.#options.set(key, { ...value });\n    });\n\n    this.filterOptions(this.searchValue);\n\n    this.multiSelectOptionsContent?.notifyOnChanges();\n    this.multiSelectOptionsView?.notifyOnChanges();\n    this.#optionsReady$.next();\n  }\n\n  readonly userOptions = this.multiSelectService.getUserOptions();\n\n  // #effectUserOptions = effect(() => {\n  //   if (this.allowCreateOptions) {\n  //     this.userOptionsArray$.next(Array.from(this.userOptions().filter(option => option.visible)));\n  //   }\n  // });\n\n  addUserOption() {\n    const allowCreateOptions = this.allowCreateOptions();\n    if (allowCreateOptions) {\n      if (this.userOptions().some((option) => option.value === this.searchValue)) {\n        return;\n      }\n      if (this.#options.get(this.searchValue)) {\n        return;\n      }\n      const userOption: IOption = {\n        value: this.searchValue,\n        label: this.searchValue,\n        text: this.searchValue,\n        visible: true,\n        custom: true,\n        selected: true\n      };\n      this.searchValue = this.clearSearchOnSelect() || allowCreateOptions ? '' : this.searchValue;\n      this.multiSelectService.addUserOption(userOption);\n      this.multiSelectService.selectionModel.select(userOption.value);\n      this.optionsSelected.update((optSelected) => {\n        const newOptSelected = new Map(optSelected);\n        newOptSelected.set(userOption.value, userOption);\n        return newOptSelected;\n      });\n      this.makeOptions([...this.options, ...this.userOptions()]);\n    }\n  }\n\n  removeAllUserOptions() {\n    this.multiSelectService.removeAllUserOptions();\n  }\n\n  ngAfterViewInit(): void {\n    this.setVirtualScroller();\n\n    this.multiSelectOptionsContent?.changes\n      .pipe(\n        delay(0),\n        distinctUntilChanged((previous: QueryList<MultiSelectOptionComponent>, current) => {\n          const prev = previous.toArray().map((option) => option.value);\n          const curr = current.toArray().map((option) => option.value);\n          if (this.virtualScroller()) {\n            return JSON.stringify(prev) === JSON.stringify(curr);\n          }\n          return JSON.stringify(this.#optionsContent) === JSON.stringify(curr);\n        }),\n        tap((changes) => {\n          this.#optionsContent = changes.toArray().map((option) => option.value);\n        }),\n        takeUntilDestroyed(this.#destroyRef)\n      )\n      .subscribe((next) => {\n        this.visibleOptions.set(this.multiSelectOptionsContent?.some((option) => option.visible));\n        if (!this.virtualScroller() || !this.visibleOptions()) {\n          this.#options.clear();\n          this.makeOptions(this.multiSelectOptionsContent.toArray());\n        }\n      });\n\n    this.visibleOptions.set(this.multiSelectOptionsContent?.length > 0 || this.multiSelectOptionsView?.length > 0);\n    if (this.visibleOptions()) {\n      this.multiSelectOptionsContent.notifyOnChanges();\n    }\n\n    this.multiselectSubscribe();\n\n    this.setFocusMonitor(!this.disabled());\n\n    this.setListKeyManager();\n\n    this.inputElementSize();\n\n    this.multiSelectOptionsContent.notifyOnChanges();\n\n    this.multiSelectService.multiSelectFocus$\n      .pipe(takeUntilDestroyed(this.#destroyRef))\n      .subscribe((option: MultiSelectOptionComponent) => {\n        if (this.activeOption && this.activeOption.value !== option.value) {\n          this.focusKeyManager.setActiveItem(option);\n        }\n      });\n  }\n\n  private tabTarget!: string;\n\n  private multiselectSubscribe(subscribe: boolean = true) {\n    this.multiSelectService.multiSelectVisible$\n      .pipe(debounceTime(100), distinctUntilChanged(), takeUntilDestroyed(this.#destroyRef))\n      .subscribe((visible) => {\n        if (this.isDropdownVisible() !== visible) {\n          this.isDropdownVisible.set(visible);\n          this.visibleChange.emit(visible);\n          if (!visible) {\n            /* empty */\n          } else {\n            if (this.virtualScroller()) {\n              {\n                const dropdownMinWidth = parseInt(this.dropdownMenu.nativeElement.style.minWidth, 10);\n                const minWidth = this.itemMinWidth();\n                this.minWidth.set(minWidth > dropdownMinWidth ? minWidth : dropdownMinWidth);\n              }\n              this.scrollViewport?.setRenderedRange({ start: 0, end: this.visibleItems() });\n              this.scrollViewport?.scrollToIndex(0);\n            }\n          }\n          this.multiSelectOptionsContent.notifyOnChanges();\n        }\n        this.updateActiveItem(0);\n      });\n  }\n\n  clearAllOptions($event?: MouseEvent) {\n    const enabledOptions = Array.from(this.optionsSelected().values())\n      .filter((option) => !option.disabled)\n      .map((option) => option.value);\n    this.multiSelectService.selectionModel?.deselect(...enabledOptions);\n    this.removeAllUserOptions();\n    setTimeout(() => {\n      this.searchValue = '';\n      if ($event) {\n        this.setFocus('program', 'clearAllOptions');\n      }\n    });\n  }\n\n  selectAllOptions() {\n    const enabledOptions = Array.from(this.#options.values())\n      .filter((option) => option.visible && !option.disabled)\n      .map((option) => option.value);\n    this.multiSelectService.selectionModel.select(...enabledOptions);\n    this.inputElementSize();\n  }\n\n  handleTagRemove(value: any) {\n    this.multiSelectService.selectionModel.deselect(value);\n    this.setFocus('program', 'handleTagRemove');\n  }\n\n  setFocus(origin: FocusOrigin = 'program', methodName?: string) {\n    if (this.disabled() || (origin === 'program' && !this.subtreeFocused)) {\n      return;\n    }\n    const element = <HTMLElement>(this.inputElement?.nativeElement ?? this.elementRef.nativeElement);\n    const preventScroll = origin === 'program';\n    this.focusMonitor?.focusVia(element, origin, { preventScroll: preventScroll });\n    // console.log('setFocus', origin, methodName, 'preventScroll:', preventScroll, element.tagName, this.value);\n  }\n\n  filterOptions(value: string) {\n    const searchString = value.toLowerCase() ?? '';\n    this.#options.forEach((item, index) => {\n      if (searchString === '') {\n        item.visible = true;\n        return;\n      }\n      if (typeof this.search() === 'function') {\n        const searchFn = this.search() as SearchFn;\n        item.visible = searchFn(item, searchString);\n        return;\n      }\n      if ((this.search() === 'external' && !item.custom) || !searchString) {\n        // item.visible = true;\n        return;\n      }\n      item.visible = item.label?.toLowerCase().includes(searchString) ?? true;\n    });\n\n    this.multiSelectService.updateOptionsArray(Array.from(this.#options.values()).filter((item) => item.visible));\n    this.userOptionsArray$.next(Array.from(this.#options.values()).filter((item) => item.custom));\n  }\n\n  inputElementSize() {\n    if (this.inputElement) {\n      if (!this.inputElement?.nativeElement?.disabled) {\n        this.renderer.setAttribute(this.inputElement?.nativeElement, 'size', (this.searchValue.length + 2).toString());\n      } else {\n        // this.renderer.removeAttribute(this.inputElement?.nativeElement, 'size');\n        this.renderer.setAttribute(this.inputElement?.nativeElement, 'size', '2');\n      }\n    }\n  }\n\n  handleSearchKeyDown($event: KeyboardEvent) {\n    if (['Enter'].includes($event.key) && this.searchValue.length && this.allowCreateOptions()) {\n      $event.preventDefault();\n      $event.stopPropagation();\n      $event.stopImmediatePropagation();\n      this.addUserOption();\n      this.changeDetectorRef.markForCheck();\n      return;\n    }\n\n    if (this.searchValue.length || this.optionsSelected().size === 0) {\n      return;\n    }\n\n    if (['Backspace', 'Delete'].includes($event.key)) {\n      $event.stopPropagation();\n      const last = this.selectedOptions()\n        .filter((option) => !option.disabled)\n        .pop();\n      if (last) {\n        this.multiSelectService.selectionModel.deselect(last.value);\n      }\n    }\n  }\n\n  private setFocusMonitor(monitor: boolean) {\n    if (monitor && !this.disabled()) {\n      // todo focus on input when tab in\n      // this.focusMonitor?.monitor(this.elementRef, false)\n      //   .pipe(\n      //     tap(origin => {\n      //       if (origin === 'keyboard' && this.search() && this.selectedOptions.length) {\n      //         this.inputElement.nativeElement.focus();\n      //       }\n      //     }),\n      //     takeUntilDestroyed(this.#destroyRef)\n      //   )\n      //   .subscribe();\n      this.focusMonitorSubscription = this.focusMonitor\n        ?.monitor(this.elementRef, true)\n        .pipe(\n          // to avoid focus lost on speed scrolling with virtualScroll\n          debounceTime(100),\n          takeUntilDestroyed(this.#destroyRef)\n        )\n        .subscribe((origin) => {\n          this.ngZone.run(() => {\n            this.subtreeFocused = this.focusOrigin(origin);\n            if (!this.subtreeFocused) {\n              this.onBlur();\n            }\n            this.changeDetectorRef?.markForCheck();\n          });\n        });\n    } else {\n      this.focusMonitor?.stopMonitoring(this.elementRef);\n      this.focusMonitorSubscription?.unsubscribe();\n    }\n  }\n\n  activeOption: (FocusableOption & MultiSelectOptionComponent) | null = null;\n\n  handleScrolledIndexChange(scrolledIndex: number, scrollViewport: CdkVirtualScrollViewport) {\n    if (!this.scrollViewport) {\n      this.scrollViewport = scrollViewport;\n    }\n\n    const availableOptions = this.options.filter((option) => option.visible);\n    const firstVisibleOption = availableOptions[scrolledIndex];\n    const activeOptionIndex = availableOptions.findIndex((option) => option.value === this.activeOption?.value);\n    const optionsArray = this.multiSelectOptionsContent.toArray();\n\n    if (scrolledIndex > activeOptionIndex) {\n      const firstVisibleItem = optionsArray.find((option) => option.value === firstVisibleOption?.value);\n      if (firstVisibleItem && scrolledIndex) {\n        this.focusKeyManager.setActiveItem(firstVisibleItem);\n      }\n      return;\n    }\n    const visibleItems = this.visibleItems() - 2;\n    if (scrolledIndex + visibleItems <= activeOptionIndex) {\n      const lastVisibleItem = optionsArray.findIndex((option) => option.value === firstVisibleOption.value);\n      if (lastVisibleItem > -1) {\n        this.focusKeyManager.setActiveItem(lastVisibleItem + visibleItems);\n      }\n      return;\n    }\n  }\n\n  trackByFn(index: number, option: IOption) {\n    return option.value;\n  }\n\n  handleSearchValueChange(searchValue: string) {\n    this.searchValue = searchValue;\n    if (!searchValue) {\n      this.scrollViewport?.scrollToIndex(0);\n      this.multiSelectOptionsContent.notifyOnChanges();\n      if (this.subtreeFocused) {\n        this.setFocus('program', 'handleSearchValueChange');\n      }\n    }\n  }\n\n  private setVirtualScroller() {\n    if (!this.virtualScroller()) {\n      return;\n    }\n\n    // multiSelectOptionTemplate for virtualScroller\n    this.contentTemplates.forEach((child: TemplateIdDirective) => {\n      this.templates[child.id] = child.templateRef;\n    });\n\n    // if no template found, get defaultMultiSelectOptionTemplate from view\n    if (!this.templates['multiSelectOptionTemplate']) {\n      this.multiSelectOptionsContent = this.multiSelectOptionsView;\n      this.multiSelectOptionsContent.notifyOnChanges();\n    }\n\n    // multiSelectOptionsContent gets out of order on changes\n    // do sort() and reset()\n    const indexOfOption = (option: MultiSelectOptionComponent) => {\n      return [...option.elementRef.nativeElement.parentElement.children]?.indexOf(option.elementRef.nativeElement);\n    };\n\n    const optionsChange$: Observable<QueryList<MultiSelectOptionComponent>> = this.multiSelectOptionsContent.changes;\n\n    const sortedOptions$ = optionsChange$.pipe(\n      map((options) => options.toArray()),\n      filter((options) => options.length > 0),\n      map((options) => options.sort((a, b) => indexOfOption(a) - indexOfOption(b))),\n      takeUntilDestroyed(this.#destroyRef)\n    );\n\n    sortedOptions$.pipe(takeUntilDestroyed(this.#destroyRef)).subscribe((sortedOptions) => {\n      return this.multiSelectOptionsContent.reset(sortedOptions);\n    });\n\n    this.scrollViewportView.changes\n      .pipe(\n        take(1),\n        map((changes) => changes.toArray()[0]),\n        tap((scrollViewport) => {\n          if (!this.scrollViewport) {\n            this.scrollViewport = scrollViewport;\n\n            const cdkVirtualScrollContentWrapper = this.scrollViewport.getElementRef().nativeElement?.firstElementChild;\n            if (cdkVirtualScrollContentWrapper) {\n              const style =\n                this.#document.defaultView?.getComputedStyle(cdkVirtualScrollContentWrapper, null) ?? undefined;\n              const padding = parseInt(style?.getPropertyValue('padding-left') ?? '12px') * 3;\n\n              const observer = new MutationObserver((mutationRecords) => {\n                mutationRecords.forEach((child) => {\n                  child.addedNodes.forEach((node) => {\n                    if (node.nodeName === 'C-MULTI-SELECT-OPTION') {\n                      const width = (node as HTMLElement).offsetWidth;\n                      if (width > this.itemMinWidth()) {\n                        this.itemMinWidth.set(width + padding);\n                      }\n                    }\n                  });\n                });\n              });\n\n              observer?.observe(cdkVirtualScrollContentWrapper, { childList: true });\n\n              this.#destroy$.subscribe(() => {\n                observer?.disconnect();\n              });\n            }\n          }\n        }),\n        takeUntilDestroyed(this.#destroyRef)\n      )\n      .subscribe();\n  }\n\n  private setListKeyManager() {\n    // run once on multiSelectOptionsContent first set\n    this.multiSelectOptionsContent.changes\n      .pipe(\n        filter((changes) => this.virtualScroller()),\n        take(1),\n        tap(() => {\n          this.setFocusKeyManager(this.multiSelectOptionsContent);\n        }),\n        takeUntilDestroyed(this.#destroyRef)\n      )\n      .subscribe();\n  }\n\n  setFocusKeyManager(focusableOptions: QueryList<MultiSelectOptionComponent> | MultiSelectOptionComponent[]) {\n    // this.focusKeyManager?.destroy();\n\n    this.focusKeyManager = new FocusKeyManager(focusableOptions)\n      .withHomeAndEnd()\n      .withPageUpDown()\n      .skipPredicate((option) => option.disabled || !option.visible);\n\n    if (!this.virtualScroller()) {\n      this.focusKeyManager.withTypeAhead(300);\n    }\n\n    this.focusKeyManager.tabOut\n      .pipe(\n        takeUntilDestroyed(this.#destroyRef),\n        tap(() => {\n          /* empty */\n        })\n      )\n      .subscribe();\n\n    this.focusKeyManager.change.pipe(takeUntilDestroyed(this.#destroyRef)).subscribe((change) => {\n      if (change < 0) {\n        this.activeOption ? this.focusKeyManager.setActiveItem(this.activeOption) : this.setFirstItemActive();\n      }\n      if (this.focusKeyManager.activeItem) {\n        this.focusKeyManager.activeItem.active = true;\n      }\n      this.activeOption = this.focusKeyManager.activeItem;\n      const option = <MultiSelectOptionComponent>this.activeOption;\n      this.multiSelectService.focusChange(option);\n      this.multiSelectOptionsContent.notifyOnChanges();\n      this.multiSelectOptionsView.notifyOnChanges();\n    });\n\n    // if (!this.focusKeyManager.activeItem) {\n    //   this.setFirstItemActive();\n    // }\n  }\n\n  get firstFocusableItem() {\n    return (\n      this.multiSelectOptionsContent?.find((option) => option.visible && !option.disabled) ??\n      this.multiSelectOptionsView?.find((option) => option.visible && !option.disabled)\n    );\n  }\n\n  private setFirstItemActive() {\n    const firstFocusableItem = this.firstFocusableItem;\n    firstFocusableItem\n      ? this.focusKeyManager?.setActiveItem(firstFocusableItem)\n      : this.focusKeyManager?.setFirstItemActive();\n    this.activeOption = this.focusKeyManager?.activeItem ?? null;\n  }\n\n  updateActiveItem(index: number): void;\n\n  updateActiveItem<TItem extends MultiSelectOptionComponent & FocusableOption>(item: TItem): void;\n\n  updateActiveItem(item: any) {\n    const firstFocusableItem = this.firstFocusableItem ?? item;\n    firstFocusableItem\n      ? this.focusKeyManager?.updateActiveItem(firstFocusableItem)\n      : this.focusKeyManager?.updateActiveItem(0);\n    if (this.focusKeyManager?.activeItem) {\n      this.multiSelectOptionsContent?.forEach((option) => {\n        option.active = false;\n      });\n      this.multiSelectOptionsView?.forEach((option) => {\n        option.active = false;\n      });\n      this.focusKeyManager.activeItem.active = true;\n    }\n    this.activeOption = this.focusKeyManager?.activeItem ?? null;\n  }\n\n  handleIndicatorClick($event: MouseEvent) {\n    $event.preventDefault();\n    $event.stopPropagation();\n    this.visible.update((visible) => !visible);\n  }\n}\n","@let isDisabled = disabled();\n@let placeholderText = placeholder();\n@let searchOn = search();\n@let cleanerBtn = cleaner();\n@let vScroller = virtualScroller();\n@let selType = selectionType();\n@let selectedSize = optionsSelected().size;\n@let selectedOpts = selectedOptions();\n@let counterPlaceholderTxt = counterPlaceholderText();\n<c-dropdown #dropdown=\"cDropdown\"\n            [(visible)]=\"visible\"\n            [autoClose]=\"'outside'\"\n            [class]=\"multiselectClasses()\"\n            [popperOptions]=\"popperOptions()\">\n  <div #dropdownToggle=\"cDropdownToggle\" [caret]=\"false\" [disabled]=\"isDisabled\" cDropdownToggle role=\"button\"\n       class=\"form-multi-select-input-group\">\n    <span [class]=\"multiselectSelectionClasses()\" [class.form-multi-select-selection-tags]=\"selType === 'tags' && selectedOpts.length\">\n      @if (selType === 'tags') {\n        @for (option of optionTags(); track option.value; let i = $index) {\n          <c-multi-select-tag\n            (remove)=\"handleTagRemove($event)\"\n            [disabled]=\"isDisabled || (option.disabled ?? false)\"\n            [label]=\"option.label ?? option.value?.toString()\"\n            [option]=\"option\"\n            [value]=\"option.value\"\n            class=\"form-multi-select-tag text-truncate\"\n            tabindex=\"-1\"\n          />\n        }\n      } @else if (selType === 'text' && !!selectedOpts.length) {\n        @for (option of selectedOpts; track option.value; let i = $index, last = $last) {\n          <span class=\"form-multi-select-text text-truncate\">{{ option.label }}{{ last ? '&nbsp;' : ',&nbsp;' }}</span>\n        }\n      }\n      @if (!searchOn) {\n        <span class=\"text-placeholder text-truncate\">\n          {{ selectedSize === 0 ? placeholderText : counterPlaceholderTxt }}\n        </span>\n      } @else {\n        <input\n          #inputElement\n          (keydown)=\"handleSearchKeyDown($event)\"\n          (valueChange)=\"handleSearchValueChange($event)\"\n          [attr.placeholder]=\"selectedOpts.length === 0 ? placeholderText : counterPlaceholderTxt\"\n          [disabled]=\"isDisabled || !searchOn\"\n          [class]=\"{ 'form-multi-select-search': true, disabled: (isDisabled || !searchOn), 'text-truncate': true }\"\n          [ngModel]=\"searchValue\"\n          [value]=\"searchValue\"\n          autocomplete=\"off\"\n          cMultiSelectSearch\n          size=\"2\"\n          tabindex=\"{{ isDisabled ? -1 : 0 }}\"\n          type=\"text\"\n        >\n      }\n    </span>\n    <div class=\"form-multi-select-buttons\">\n      @if (!!cleanerBtn && selectedSize > 0 && !isDisabled) {\n        <button\n          (click)=\"clearAllOptions($event)\"\n          [disabled]=\"isDisabled || (!isDropdownVisible() && cleanerBtn !== 'active')\"\n          aria-label=\"Clear all\"\n          class=\"form-multi-select-cleaner\"\n          type=\"button\"\n        ></button>\n      }\n      <button (click)=\"handleIndicatorClick($event)\"\n              [disabled]=\"isDisabled\"\n              class=\"form-multi-select-indicator\"\n              type=\"button\">\n      </button>\n    </div>\n  </div>\n  @if (!isDisabled) {\n    <div #dropdownMenu=\"cDropdownMenu\" [visible]=\"dropdown.visible()\" cDropdownMenu\n         class=\"form-multi-select-dropdown\" role=\"menu\">\n      @if (visibleOptions() && options.length > 0) {\n        @if (selectAll() && multiple() && !vScroller) {\n          <button\n            (click)=\"selectAllOptions()\"\n            class=\"form-multi-select-all\"\n            type=\"button\"\n            tabindex=\"0\"\n          >\n            {{ selectAllLabel() }}\n          </button>\n        }\n      }\n      @if ((visibleOptions() && options.length > 0) || loading()) {\n        <ng-container *ngTemplateOutlet=\"vScroller ? multiselectVirtualScroller : multiselectOptionsDiv\" />\n      } @else {\n        <div class=\"form-multi-select-options-empty\">{{ searchNoResultsLabel() }}</div>\n      }\n      @if (loading()) {\n        <c-element-cover [style]=\"{'border-radius': '6px', 'z-index': 2}\" />\n      }\n    </div>\n  }\n</c-dropdown>\n\n<ng-template #multiselectVirtualScroller>\n  @let itemSizePx = itemSize();\n  @let bufferPx = itemSizePx * visibleItems();\n  @defer (on immediate) {\n    @let optionsArray = multiSelectService?.optionsArray$ | async;\n    @if (optionsArray) {\n      @let optMaxHeight = optionsMaxHeight();\n      @let optMinWidth = minWidth();\n      <cdk-virtual-scroll-viewport\n        #scrollViewport\n        (scrolledIndexChange)=\"handleScrolledIndexChange($event, scrollViewport)\"\n        [itemSize]=\"itemSizePx\"\n        [ngStyle]=\"optMaxHeight !== 'auto' ? { 'height.px': optMaxHeight, 'maxHeight.px': optMaxHeight, 'minWidth.px': optMinWidth, overflowX: 'hidden' } : { 'minWidth.px': optMinWidth, overflowX: 'hidden'}\"\n        maxBufferPx=\"{{bufferPx}}\"\n        minBufferPx=\"{{bufferPx}}\"\n        class=\"form-multi-select-options\"\n        tabindex=\"-1\"\n      >\n        <ng-container\n          #cdkVirtualFor\n          *cdkVirtualFor=\"let option of optionsArray; trackBy: trackByFn; templateCacheSize: 0; even as even; odd as odd; index as index; count as count; first as first; last as last;\"\n          [ngTemplateOutletContext]=\"{$implicit: option, even, odd, index, count, first, last}\"\n          [ngTemplateOutlet]=\"templates['multiSelectOptionTemplate'] || defaultMultiSelectOptionTemplate\"\n        />\n      </cdk-virtual-scroll-viewport>\n    }\n  }\n</ng-template>\n\n<ng-template #multiselectOptionsDiv>\n  @let optMaxHeight = optionsMaxHeight();\n  <div [class.form-multi-select-options]=\"visibleOptions()\" [ngStyle]=\"optMaxHeight !== 'auto' ? { 'maxHeight.px': optMaxHeight, overflowY: 'scroll' } : {}\">\n    <ng-content />\n    <ng-container [ngTemplateOutlet]=\"userOptionsTemplate\" />\n  </div>\n</ng-template>\n\n<ng-template #defaultMultiSelectOptionTemplate let-option>\n  <c-multi-select-option\n    [disabled]=\"option.disabled\"\n    [label]=\"option.label\"\n    [text]=\"option.text\"\n    [value]=\"option.value\"\n    [visible]=\"option.visible\"\n  >\n    {{ option.text }}\n  </c-multi-select-option>\n</ng-template>\n\n<ng-template #userOptionsTemplate>\n  @for (option of userOptionsArray$ | async; track option; let even = $even, odd = $odd, index = $index, count = $count, first = $first, last = $last) {\n    <ng-container\n      [ngTemplateOutlet]=\"templates['multiSelectOptionTemplate'] || defaultMultiSelectOptionTemplate\"\n      [ngTemplateOutletContext]=\"{$implicit: option, even, odd, index, count, first, last}\"\n    />\n  }\n</ng-template>\n","import { isPlatformServer } from '@angular/common';\nimport { ElementRef, inject, Injectable, OnDestroy, PLATFORM_ID } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\nexport interface IIntersectionObserverInit {\n  root?: Element | null;\n  rootMargin?: string;\n  threshold?: number | number[];\n}\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class IntersectionService implements OnDestroy {\n\n  platformId = inject(PLATFORM_ID);\n\n  readonly #intersecting: BehaviorSubject<any> = new BehaviorSubject({ isIntersecting: false });\n  readonly intersecting$ = this.#intersecting.asObservable();\n\n  private defaultObserverOptions: IIntersectionObserverInit = {\n    root: null,\n    rootMargin: '0px',\n    threshold: 0.2\n  };\n\n  hostElementRefs: Map<ElementRef, IntersectionObserver | null> = new Map();\n\n  createIntersectionObserver(hostElement: ElementRef, observerOptions = this.defaultObserverOptions) {\n\n    if (isPlatformServer(this.platformId)) {\n      this.#intersecting.next({ isIntersecting: true, hostElement });\n      return;\n    }\n\n    const options: IIntersectionObserverInit = { ...this.defaultObserverOptions, ...observerOptions };\n\n    const handleIntersect = (entries: IntersectionObserverEntry[], observer: IntersectionObserver) => {\n      entries.forEach((entry: any) => {\n        this.#intersecting.next({ isIntersecting: entry.isIntersecting, hostElement });\n      });\n    };\n\n    this.hostElementRefs.set(hostElement, new IntersectionObserver(handleIntersect, options));\n    this.hostElementRefs.get(hostElement)?.observe(hostElement.nativeElement);\n  }\n\n  unobserve(elementRef: ElementRef) {\n    this.hostElementRefs.get(elementRef)?.unobserve(elementRef.nativeElement);\n    this.hostElementRefs.set(elementRef, null);\n    this.hostElementRefs.delete(elementRef);\n  }\n\n  ngOnDestroy(): void {\n    this.hostElementRefs.forEach((observer, elementRef) => {\n      observer?.unobserve(elementRef.nativeElement);\n    });\n  }\n}\n","import { ElementRef, inject, Injectable, Renderer2 } from '@angular/core';\nimport { Triggers } from '../coreui.types';\n\nexport interface IListenersConfig {\n  hostElement: ElementRef;\n  trigger?: Triggers | Triggers[];\n  callbackOn?: () => void;\n  callbackOff?: () => void;\n  callbackToggle?: () => void;\n}\n\n@Injectable()\nexport class ListenersService {\n  readonly renderer = inject(Renderer2);\n\n  private listeners: Map<string, () => void> = new Map();\n\n  setListeners({\n    hostElement,\n    trigger,\n    callbackOn,\n    callbackOff,\n    callbackToggle,\n  }: IListenersConfig): void {\n    const host = hostElement.nativeElement;\n    const triggers = Array.isArray(trigger) ? trigger : trigger?.split(' ') ?? [];\n\n    if (triggers?.includes('click')) {\n      typeof callbackToggle === 'function' &&\n        this.listeners.set('click', this.renderer.listen(host, 'click', callbackToggle));\n    }\n    if (triggers?.includes('focus')) {\n      typeof callbackOn === 'function' &&\n        this.listeners.set('focus', this.renderer.listen(host, 'focus', callbackOn));\n    }\n    if (triggers?.includes('focusin')) {\n      typeof callbackOff === 'function' &&\n        this.listeners.set('focusout', this.renderer.listen(host, 'focusout', callbackOff));\n      typeof callbackOn === 'function' &&\n        this.listeners.set('focusin', this.renderer.listen(host, 'focusin', callbackOn));\n    }\n    if (triggers?.includes('click') || triggers?.includes('focus')) {\n      typeof callbackOff === 'function' &&\n        this.listeners.set('blur', this.renderer.listen(host, 'blur', callbackOff));\n    }\n    if (triggers?.includes('hover')) {\n      typeof callbackOn === 'function' &&\n        this.listeners.set('mouseenter', this.renderer.listen(host, 'mouseenter', callbackOn));\n      typeof callbackOff === 'function' &&\n        this.listeners.set('mouseleave', this.renderer.listen(host, 'mouseleave', callbackOff));\n    }\n  }\n\n  clearListeners(): void {\n    this.listeners.forEach((unListen, key) => {\n      unListen();\n    });\n    this.listeners.forEach((unListen, key) => {\n      // @ts-ignore\n      this.listeners.set(key, null);\n    });\n    this.listeners.clear();\n  }\n}\n","import { DOCUMENT, inject, Injectable, Renderer2, RendererFactory2 } from '@angular/core';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class ClassToggleService {\n  readonly #document = inject<Document>(DOCUMENT);\n  readonly #rendererFactory = inject(RendererFactory2);\n\n  #renderer: Renderer2;\n\n  constructor() {\n    this.#renderer = this.#rendererFactory.createRenderer(null, null);\n  }\n\n  toggle(selector: any, className: string) {\n    const element = this.#document.querySelector(selector);\n    if (element) {\n      element.classList.contains(className)\n        ? this.#renderer.removeClass(element, className)\n        : this.#renderer.addClass(element, className);\n    }\n  }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class InMemoryStorageService implements Storage {\n  #storage = new Map<string, string>();\n\n  public setItem(key: string, data: any): void {\n    this.#storage.set(key, JSON.stringify(data));\n  }\n\n  public getItem(key: string): any {\n    return this.#storage.has(key) ? JSON.parse(this.#storage.get(key) ?? 'null') : undefined;\n  }\n\n  public removeItem(key: string): void {\n    this.#storage.delete(key);\n  }\n\n  public clear() {\n    this.#storage.clear();\n  }\n\n  public get length() {\n    return this.#storage.size;\n  }\n\n  public key(index: number) {\n    return Array.from(this.#storage.keys())[index];\n  }\n}\n","import { isPlatformBrowser } from '@angular/common';\nimport { DOCUMENT, inject, Injectable, PLATFORM_ID } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { InMemoryStorageService } from './in-memory-storage.service';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class LocalStorageService {\n  private platformId = inject(PLATFORM_ID);\n  private document = inject(DOCUMENT);\n\n  constructor() {\n    this.#localStorage =\n      isPlatformBrowser(this.platformId) && this.document.defaultView\n        ? this.document.defaultView?.localStorage\n        : new InMemoryStorageService();\n  }\n\n  #localStorage: Storage;\n  readonly #data$ = new BehaviorSubject<{ key: string; data: any } | null>(null);\n  public readonly data$ = this.#data$.asObservable();\n\n  public setItem(key: string, data: any): void {\n    this.#localStorage.setItem(key, JSON.stringify(data));\n    this.#data$.next({ key, data });\n  }\n\n  public getItem(key: string): any {\n    const data = JSON.parse(this.#localStorage.getItem(key) || 'null');\n    this.#data$.next({ key, data });\n    return data;\n  }\n\n  public removeItem(key: string): void {\n    this.#localStorage.removeItem(key);\n    this.#data$.next({ key, data: null });\n  }\n\n  public clear() {\n    this.#localStorage.clear();\n    this.#data$.next(null);\n  }\n}\n","import {\n  afterNextRender,\n  DestroyRef,\n  DOCUMENT,\n  effect,\n  inject,\n  Injectable,\n  signal,\n  WritableSignal\n} from '@angular/core';\nimport { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';\nimport { tap } from 'rxjs/operators';\nimport { LocalStorageService } from './local-storage.service';\n\nexport type ColorMode = 'light' | 'dark' | 'auto' | string | undefined;\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class ColorModeService {\n  readonly #destroyRef: DestroyRef = inject(DestroyRef);\n  readonly #document: Document = inject(DOCUMENT);\n  readonly #localStorage: LocalStorageService = inject(LocalStorageService);\n\n  readonly eventName = signal('ColorSchemeChange');\n  readonly localStorageItemName: WritableSignal<string | undefined> = signal(undefined);\n  readonly localStorageItemName$ = toObservable(this.localStorageItemName);\n  readonly colorMode: WritableSignal<ColorMode> = signal(undefined);\n\n  readonly #colorModeEffect = effect(() => {\n    const colorMode = this.colorMode();\n    if (colorMode) {\n      const localStorageItemName = this.localStorageItemName();\n      localStorageItemName && this.setStoredTheme(localStorageItemName, colorMode);\n      this.#setTheme(colorMode);\n    }\n  });\n\n  constructor() {\n    afterNextRender({\n      read: () => {\n        this.localStorageItemName$\n          .pipe(\n            tap((params) => {\n              this.colorMode.set(this.getDefaultScheme(params));\n            }),\n            takeUntilDestroyed(this.#destroyRef)\n          )\n          .subscribe();\n      }\n    });\n  }\n\n  getStoredTheme(localStorageItemName: string) {\n    return this.#localStorage.getItem(localStorageItemName);\n  }\n\n  setStoredTheme(localStorageItemName: string, colorMode: string) {\n    return this.#localStorage.setItem(localStorageItemName, colorMode);\n  }\n\n  removeStoredTheme(localStorageItemName: string) {\n    this.#localStorage.removeItem(localStorageItemName);\n  }\n\n  getDefaultScheme(localStorageItemName: string | undefined) {\n    if (this.#document.defaultView === undefined) {\n      return this.getDatasetTheme();\n    }\n\n    const storedTheme = localStorageItemName && this.getStoredTheme(localStorageItemName);\n\n    return storedTheme ?? this.getDatasetTheme();\n  }\n\n  getPrefersColorScheme() {\n    return this.#document.defaultView?.matchMedia('(prefers-color-scheme: dark)').matches\n      ? 'dark'\n      : this.#document.defaultView?.matchMedia('(prefers-color-scheme: light)').matches\n        ? 'light'\n        : undefined;\n  }\n\n  getDatasetTheme(): ColorMode {\n    return <ColorMode>this.#document.documentElement.dataset['coreuiTheme'];\n  }\n\n  #setTheme(colorMode: ColorMode) {\n    this.#document.documentElement.dataset['coreuiTheme'] =\n      colorMode === 'auto' ? this.getPrefersColorScheme() : colorMode;\n\n    const event = new Event(this.eventName());\n    this.#document.documentElement.dispatchEvent(event);\n  }\n}\n","import { DOCUMENT, inject, Injectable } from '@angular/core';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class UIDService {\n  readonly #document = inject(DOCUMENT);\n\n  getUID(prefix: string = 'random-id'): string {\n    let uid = prefix;\n    do {\n      uid = `${prefix}-${Math.floor(Math.random() * 1000000).toString(10)}`;\n    } while (this.#document.getElementById(uid));\n\n    return uid;\n  }\n}\n","import { DOCUMENT, inject, Injectable } from '@angular/core';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class RtlService {\n  readonly #document = inject(DOCUMENT);\n\n  isRTL(element?: HTMLElement | null): boolean {\n    if (element) {\n      return (\n        element.closest('[dir=\"rtl\"]') !== null ||\n        this.#document.defaultView?.getComputedStyle(element).direction === 'rtl'\n      );\n    }\n\n    return [this.#document?.documentElement?.dir, this.#document?.body?.dir].includes('rtl');\n  }\n}\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport { FocusableOption, FocusOrigin } from '@angular/cdk/a11y';\nimport {\n  booleanAttribute,\n  Component,\n  computed,\n  DOCUMENT,\n  effect,\n  ElementRef,\n  inject,\n  input,\n  linkedSignal,\n  signal\n} from '@angular/core';\nimport { IAutocompleteOption } from '../autocomplete.types';\nimport { isOptionDisabled } from '../autocomplete.utils';\n\n@Component({\n  selector: 'c-autocomplete-option',\n  imports: [],\n  template: '<ng-content />',\n  styleUrl: './autocomplete-option.component.scss',\n  host: {\n    class: 'autocomplete-option',\n    '[class]': 'hostClasses()',\n    '[attr.role]': '\"option\"',\n    tabindex: '-1'\n  }\n})\nexport class AutocompleteOptionComponent implements FocusableOption {\n  static ngAcceptInputType_disabled: BooleanInput;\n  readonly #document = inject(DOCUMENT);\n  readonly #elementRef: ElementRef<HTMLButtonElement> = inject(ElementRef);\n\n  readonly disabledInput = input(false, { alias: 'disabled', transform: booleanAttribute });\n\n  readonly #disabled = linkedSignal(this.disabledInput);\n\n  readonly #disabledEffect = effect(() => {\n    this.#elementRef.nativeElement.disabled = this.#disabled();\n  });\n\n  readonly option = input.required<IAutocompleteOption>();\n  readonly selected = input<boolean>(false);\n\n  readonly focusable = signal(false);\n\n  readonly #focusableEffect = effect(() => {\n    this.#elementRef.nativeElement.tabIndex = this.focusable() ? 0 : -1;\n  });\n\n  readonly hostClasses = computed(() => {\n    const option = this.option();\n    const selected = this.selected();\n\n    return {\n      'autocomplete-option': true,\n      disabled: isOptionDisabled(option),\n      selected: selected\n    } as Record<string, boolean>;\n  });\n\n  set disabled(value: boolean) {\n    this.#disabled.set(value);\n  }\n\n  get disabled() {\n    return this.#elementRef.nativeElement.disabled;\n  }\n\n  focus(origin?: FocusOrigin): void {\n    if (!this.disabled && this.#document.activeElement !== this.#elementRef.nativeElement) {\n      this.#elementRef.nativeElement.focus();\n    }\n  }\n\n  getLabel?(): string {\n    return this.#elementRef.nativeElement.innerText ?? this.option()?.label ?? '';\n  }\n}\n","import { Injectable, signal } from '@angular/core';\nimport { IAutocompleteOption } from './autocomplete.types';\nimport { FocusOrigin } from '@angular/cdk/a11y';\nimport { type AutocompleteDirective } from './autocomplete.directive';\n\n@Injectable()\nexport class AutocompleteService {\n  readonly autocompleteDirective = signal<AutocompleteDirective | undefined>(undefined);\n  readonly hint = signal<IAutocompleteOption | undefined>(undefined);\n  readonly searchValue = signal<string | undefined>(undefined);\n  readonly selected = signal<IAutocompleteOption | null | undefined>(undefined);\n  readonly visible = signal(false);\n  readonly subtreeFocused = signal<FocusOrigin | undefined>(undefined);\n}\n","import { FocusKeyManager, FocusMonitor } from '@angular/cdk/a11y';\nimport { BooleanInput, NumberInput } from '@angular/cdk/coercion';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n  booleanAttribute,\n  Component,\n  computed,\n  DestroyRef,\n  effect,\n  ElementRef,\n  inject,\n  input,\n  numberAttribute,\n  OnInit,\n  output,\n  TemplateRef,\n  untracked,\n  viewChildren\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { Subscription } from 'rxjs';\nimport { debounceTime, distinctUntilChanged, tap } from 'rxjs/operators';\n\nimport { IAutocompleteOption, Search } from '../autocomplete.types';\nimport { AutocompleteOptionComponent } from '../autocomplete-option/autocomplete-option.component';\nimport { AutocompleteService } from '../autocomplete.service';\nimport { highlightSubstring, isGlobalSearch, isOptionSelected } from '../autocomplete.utils';\n\n@Component({\n  selector: 'c-autocomplete-options',\n  imports: [AutocompleteOptionComponent, NgTemplateOutlet],\n  templateUrl: './autocomplete-options.component.html',\n  styleUrl: './autocomplete-options.component.scss',\n  host: {\n    class: 'autocomplete-options',\n    '[style]': 'hostStyles()',\n    '[attr.role]': '\"listbox\"'\n  }\n})\nexport class AutocompleteOptionsComponent implements OnInit {\n  static ngAcceptInputType_highlightOptionsOnSearch: BooleanInput;\n  static ngAcceptInputType_loading: BooleanInput;\n  static ngAcceptInputType_visibleItems: NumberInput;\n\n  protected readonly isOptionSelected = isOptionSelected;\n\n  readonly #destroyRef = inject(DestroyRef);\n  readonly #elementRef = inject(ElementRef);\n  readonly #focusMonitor = inject(FocusMonitor);\n  readonly #sanitizer = inject(DomSanitizer);\n  readonly #autocompleteService = inject(AutocompleteService);\n\n  readonly delay = input<number>(300);\n  readonly highlightOptionsOnSearch = input<boolean>();\n  readonly loading = input(false, { transform: booleanAttribute });\n  readonly itemSize = input(40, { transform: numberAttribute });\n  readonly options = input.required<IAutocompleteOption[]>();\n  readonly optionsMaxHeight = input<number | string>();\n  readonly optionTemplate = input<TemplateRef<any>>();\n  readonly optionGroupTemplate = input<TemplateRef<any>>();\n  readonly search = input<Search>();\n  readonly searchNoResultsLabel = input<boolean | string | TemplateRef<any>>();\n  readonly searchValue = input<string>();\n  readonly selected = input<IAutocompleteOption | null>(null);\n  readonly virtualScroller = input<boolean>();\n  readonly visibleItems = input(10, { transform: numberAttribute });\n  readonly optionClick = output<IAutocompleteOption>();\n\n  readonly hostStyles = computed<Record<string, any>>(() => {\n    const maxHeight = this.optionsMaxHeight();\n    const suffix = typeof maxHeight === 'number' ? 'px' : '';\n    return maxHeight !== 'auto' ? { maxHeight: `${maxHeight}${suffix}`, overflowY: 'scroll' } : {};\n  });\n\n  ngOnInit(): void {\n    this.#focusMonitor\n      .monitor(this.#elementRef, false)\n      .pipe(debounceTime(this.delay()), takeUntilDestroyed(this.#destroyRef))\n      .subscribe((value) => {\n        if (value === 'keyboard') {\n          this.focusKeyManager?.setFirstItemActive();\n        }\n      });\n    this.#destroyRef.onDestroy(() => {\n      this.#focusMonitor.stopMonitoring(this.#elementRef);\n      this.#focusKeyChange$?.unsubscribe();\n      this.focusKeyManager?.destroy();\n    });\n  }\n  focusKeyManager!: FocusKeyManager<AutocompleteOptionComponent>;\n  #focusKeyChange$!: Subscription;\n  readonly autocompleteOptions = viewChildren(AutocompleteOptionComponent, { read: AutocompleteOptionComponent });\n\n  readonly #optionsEffect = effect(() => {\n    const options = this.autocompleteOptions();\n    if (this.focusKeyManager) {\n      this.#focusKeyChange$.unsubscribe();\n      this.focusKeyManager?.destroy();\n    }\n\n    this.focusKeyManager = new FocusKeyManager<AutocompleteOptionComponent>(options)\n      .withPageUpDown()\n      .withHomeAndEnd()\n      .skipPredicate((option) => option.disabled)\n      .withVerticalOrientation(true)\n      .withHorizontalOrientation(null);\n\n    untracked(() => {\n      if (!this.virtualScroller() && !isGlobalSearch(this.search())) {\n        this.focusKeyManager.withTypeAhead(this.delay());\n      }\n    });\n    this.#focusKeyChange$ = this.focusKeyManager.change\n      .pipe(\n        distinctUntilChanged(),\n        tap((optionIdx) => {\n          if (!this.searchValue()) {\n            const option = options[optionIdx];\n            this.#autocompleteService.hint.set(option.option());\n          }\n          this.updateFocusableItems();\n        }),\n        takeUntilDestroyed(this.#destroyRef)\n      )\n      .subscribe();\n  });\n\n  protected updateFocusableItems() {\n    const options = this.autocompleteOptions();\n    options\n      .filter((option) => option.focusable())\n      .forEach((option) => {\n        option.focusable.set(false);\n      });\n    options.find((option) => this.focusKeyManager.activeItem === option)?.focusable.set(true);\n  }\n\n  protected handleOptionClick($event: MouseEvent, option: IAutocompleteOption, idx: number) {\n    this.#handleSelect(option, idx);\n  }\n\n  protected handleOptionKeyUp($event: KeyboardEvent, option: IAutocompleteOption, idx: number): void {\n    if (['Enter', 'Space'].includes($event.code)) {\n      $event.stopImmediatePropagation();\n      $event.preventDefault();\n      this.#handleSelect(option, idx);\n    }\n  }\n\n  readonly #handleSelect = (option: IAutocompleteOption, idx: number) => {\n    this.#autocompleteService.selected.set(option);\n    this.focusKeyManager?.setActiveItem(idx);\n    this.#autocompleteService.visible.set(false);\n  };\n\n  protected handleOptionKeyDown($event: KeyboardEvent, option: IAutocompleteOption) {\n    if (['Space'].includes($event.code)) {\n      $event.preventDefault();\n    }\n    if (['ArrowUp', 'ArrowDown', 'Home', 'End'].includes($event.key)) {\n      this.focusKeyManager?.onKeydown($event);\n      return;\n    }\n    if (['Tab'].includes($event.key)) {\n      $event.preventDefault();\n      this.#autocompleteService.visible.set(false);\n      this.focusKeyManager?.tabOut.next();\n    }\n    this.focusKeyManager?.onKeydown($event);\n  }\n\n  // protected handleFocusOption($event: FocusEvent, option: IAutocompleteOption, idx: number) {\n  //   this.focusKeyManager?.updateActiveItem(idx);\n  //   this.focusKeyManager?.setActiveItem(idx);\n  // }\n\n  // protected handleScrolledIndexChange(scrolledIndex: number, scrollViewport: CdkVirtualScrollViewport) {\n  //   console.log('scrolledIndex', scrolledIndex);\n  // }\n\n  // protected trackByFn = (index: number, option: IAutocompleteOption) => option.label;\n\n  protected optionLabel(option: IAutocompleteOption) {\n    const searchValue = this.searchValue() || '';\n    if (this.highlightOptionsOnSearch() && searchValue) {\n      const label = highlightSubstring(option.label, searchValue);\n      return this.#sanitizer.bypassSecurityTrustHtml(label);\n    }\n    return option.label;\n  }\n}\n","<!--@let vScroller = virtualScroller();-->\n@let optionsArray = options() || [];\n@let selectedOption = selected();\n\n<!--<ng-container *ngTemplateOutlet=\"vScroller ? autocompleteVirtualScroller : autocompleteOptionsTemplate\" />-->\n<ng-container *ngTemplateOutlet=\"autocompleteOptionsTemplate\" />\n\n<ng-template #autocompleteOptionsTemplate>\n  @for (option of optionsArray; track idx; let idx = $index) {\n    @if ('options' in option) {\n      <div class=\"autocomplete-optgroup-label\">\n        <ng-container *ngTemplateOutlet=\"optionGroupTemplate() || defaultGroupTemplate; context: { $implicit: option, idx: idx }\" />\n      </div>\n      @for (opt of option.options; track oIdx; let oIdx = $index) {\n        <ng-container *ngTemplateOutlet=\"defaultAutocompleteOptionTemplate; context: { $implicit: opt, idx: oIdx }\" />\n      }\n    } @else {\n      <ng-container *ngTemplateOutlet=\"defaultAutocompleteOptionTemplate; context: { $implicit: option, idx }\" />\n    }\n  }\n</ng-template>\n\n<ng-template #defaultAutocompleteOptionTemplate let-idx=\"idx\" let-option>\n  @let isSelected = isOptionSelected(option, selectedOption);\n  <c-autocomplete-option\n    #optionRef\n    (click)=\"handleOptionClick($event, option, idx)\"\n    (keydown)=\"handleOptionKeyDown($event, option)\"\n    (keyup)=\"handleOptionKeyUp($event, option, idx)\"\n    [disabled]=\"option.disabled || null\"\n    [option]=\"option\"\n    [selected]=\"isSelected\"\n  >\n    <ng-container *ngTemplateOutlet=\"optionTemplate() || defaultOptionTemplate; context: { $implicit: option, selected: isSelected, idx: idx }\" />\n  </c-autocomplete-option>\n  <!--  [tabIndex]=\"isSelected || optionRef.focusable() ? '0' : '-1'\"-->\n  <!--  (focus)=\"handleFocusOption($event, option, idx)\"-->\n\n</ng-template>\n\n<ng-template #defaultGroupTemplate let-idx=\"idx\" let-option>\n  {{ option.label }}\n</ng-template>\n\n<ng-template #defaultOptionTemplate let-idx=\"idx\" let-option>\n  <div [innerHTML]=\"optionLabel(option)\"></div>\n</ng-template>\n\n@if (false) {\n  <!--  todo: virtual scroll-->\n    <!--<ng-template #autocompleteVirtualScroller>-->\n    <!--  @let itemSizePx = itemSize();-->\n    <!--  @let bufferPx = itemSizePx * visibleItems();-->\n    <!--  @defer (on immediate) {-->\n    <!--    @if (optionsArray) {-->\n    <!--      @let optMaxHeight = optionsMaxHeight();-->\n    <!--      @let optMinWidth = 196;-->\n    <!--&lt;!&ndash;      @let optMinWidth = minWidth();&ndash;&gt;-->\n\n    <!--      <cdk-virtual-scroll-viewport-->\n    <!--        #scrollViewport-->\n    <!--            (scrolledIndexChange)=\"handleScrolledIndexChange($event, scrollViewport)\"-->\n    <!--        [itemSize]=\"itemSizePx\"-->\n    <!--        [style]=\"optMaxHeight !== 'auto' ? { 'height.px': 400, 'maxHeight.px': optMaxHeight, 'minWidth.px': optMinWidth, overflowX: 'hidden' } : { 'minWidth.px': optMinWidth, overflowX: 'hidden'}\"-->\n    <!--        maxBufferPx=\"{{bufferPx}}\"-->\n    <!--        minBufferPx=\"{{bufferPx}}\"-->\n    <!--        class=\"autocomplete-options\"-->\n    <!--        tabindex=\"-1\"-->\n    <!--      >-->\n    <!--        <ng-container-->\n    <!--          #cdkVirtualFor-->\n    <!--          *cdkVirtualFor=\"let option of optionsArray; trackBy: trackByFn; templateCacheSize: 0; even as even; odd as odd; index as index; count as count; first as first; last as last;\"-->\n    <!--          [ngTemplateOutletContext]=\"{$implicit: option, even, odd, index, count, first, last}\"-->\n    <!--          [ngTemplateOutlet]=\"defaultAutocompleteOptionTemplate\"-->\n    <!--        />-->\n    <!--      </cdk-virtual-scroll-viewport>-->\n    <!--    }-->\n    <!--  }-->\n    <!--</ng-template>-->\n}\n","import { FocusMonitor } from '@angular/cdk/a11y';\nimport { BooleanInput, NumberInput } from '@angular/cdk/coercion';\nimport { CdkPortalOutlet, DomPortal } from '@angular/cdk/portal';\nimport {\n  AfterViewInit,\n  booleanAttribute,\n  Component,\n  computed,\n  DestroyRef,\n  DOCUMENT,\n  effect,\n  ElementRef,\n  inject,\n  input,\n  linkedSignal,\n  numberAttribute,\n  OnDestroy,\n  output,\n  signal,\n  TemplateRef,\n  viewChild\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { debounceTime, tap } from 'rxjs/operators';\nimport { type Options } from '@popperjs/core';\n\nimport { DropdownComponent, DropdownMenuDirective, DropdownToggleDirective } from '../dropdown';\nimport { ElementCoverComponent } from '../element-cover';\nimport { AutocompleteOptionsComponent } from './autocomplete-options/autocomplete-options.component';\nimport { IAutocompleteOption, IAutocompleteOptionNorm, Search } from './autocomplete.types';\nimport { findHintOption, getOptionLabel, isExternalSearch, isGlobalSearch } from './autocomplete.utils';\nimport { AutocompleteService } from './autocomplete.service';\n\n@Component({\n  selector: 'c-autocomplete',\n  exportAs: 'cAutocompleteWrapper',\n  imports: [\n    CdkPortalOutlet,\n    AutocompleteOptionsComponent,\n    DropdownComponent,\n    DropdownToggleDirective,\n    DropdownMenuDirective,\n    ElementCoverComponent\n  ],\n  templateUrl: './autocomplete.component.html',\n  styleUrl: './autocomplete.component.scss',\n  host: {\n    class: 'autocomplete',\n    '[class]': 'hostClasses()',\n    '(keydown)': 'handleGlobalSearch($event)',\n    ngSkipHydration: 'true'\n  },\n  providers: [AutocompleteService]\n})\nexport class AutocompleteComponent implements AfterViewInit, OnDestroy {\n  static ngAcceptInputType_allowOnlyDefinedOptions: BooleanInput;\n  static ngAcceptInputType_cleaner: BooleanInput;\n  static ngAcceptInputType_clearSearchOnSelect: BooleanInput;\n  static ngAcceptInputType_disabled: BooleanInput;\n  static ngAcceptInputType_highlightOptionsOnSearch: BooleanInput;\n  static ngAcceptInputType_indicator: BooleanInput;\n  static ngAcceptInputType_loading: BooleanInput;\n  static ngAcceptInputType_readOnly: BooleanInput;\n  // static ngAcceptInputType_resetSelectionOnOptionsChange: BooleanInput;\n  static ngAcceptInputType_showHints: BooleanInput;\n  static ngAcceptInputType_virtualScroller: BooleanInput;\n  static ngAcceptInputType_visible: BooleanInput;\n  static ngAcceptInputType_visibleItems: NumberInput;\n\n  protected readonly isExternalSearch = isExternalSearch;\n\n  readonly #document = inject(DOCUMENT);\n  readonly #destroyRef = inject(DestroyRef);\n  readonly #elementRef = inject(ElementRef);\n  readonly #focusMonitor = inject(FocusMonitor);\n  readonly autocompleteService: AutocompleteService = inject(AutocompleteService);\n\n  readonly dropdownMenuRef = viewChild('dropdownMenuRef', { read: ElementRef });\n  readonly togglerRef = viewChild('dropdownToggleRef', { read: ElementRef });\n  readonly cleanerRef = viewChild('cleanerRef', { read: ElementRef });\n  readonly indicatorRef = viewChild('indicatorRef', { read: ElementRef });\n  readonly optionsRef = viewChild(AutocompleteOptionsComponent);\n\n  readonly #optionsRefEffect = effect(() => {\n    const optionsRef = this.optionsRef();\n    if (!optionsRef && this.#elementRef.nativeElement.contains(this.#document.activeElement)) {\n      this.inputPortalContent().nativeElement.focus();\n    }\n  });\n\n  protected readonly domTogglerPortal = signal<DomPortal<HTMLDivElement> | null>(null);\n  protected readonly domDropdownMenuPortal = signal<DomPortal<HTMLDivElement> | null>(null);\n  protected readonly domInputPortal = signal<DomPortal<HTMLInputElement> | null>(null);\n  protected readonly inputPortalContent = input.required<ElementRef<HTMLInputElement>>();\n\n  ngOnDestroy(): void {\n    this.setFocusMonitor(false);\n  }\n  ngAfterViewInit(): void {\n    const dropdownMenuElement = this.dropdownMenuRef()?.nativeElement as HTMLDivElement;\n    this.domDropdownMenuPortal.set(new DomPortal(dropdownMenuElement));\n\n    const togglerElement = this.togglerRef()?.nativeElement as HTMLDivElement;\n    this.domTogglerPortal.set(new DomPortal(togglerElement));\n\n    const inputPortalContent = this.inputPortalContent().nativeElement;\n    this.domInputPortal.set(new DomPortal(inputPortalContent));\n\n    this.setFocusMonitor(true);\n    this.#destroyRef.onDestroy(() => {\n      this.#focusMonitor?.stopMonitoring(this.#elementRef);\n    });\n  }\n\n  private setFocusMonitor(monitor: boolean) {\n    if (monitor && !this.disabled()) {\n      this.#focusMonitor\n        ?.monitor(this.#elementRef, true)\n        .pipe(\n          tap((origin) => {\n            this.indicatorRef()?.nativeElement.setAttribute('tabindex', origin ? '0' : '-1');\n            this.cleanerRef()?.nativeElement.setAttribute('tabindex', origin ? '0' : '-1');\n          }),\n          // to avoid focus lost on speed scrolling with virtualScroll\n          debounceTime(100),\n          tap((origin) => {\n            this.autocompleteService.subtreeFocused.set(origin);\n          }),\n          takeUntilDestroyed(this.#destroyRef)\n        )\n        .subscribe();\n    } else {\n      this.#focusMonitor?.stopMonitoring(this.#elementRef);\n    }\n  }\n\n  /**\n   * Only allow selection of predefined options.\n   * When `true`, users cannot enter custom values that are not in the options list.\n   * When `false`, users can enter and select custom values.\n   *\n   * @default false\n   */\n  readonly allowOnlyDefinedOptions = input(false, { transform: booleanAttribute });\n\n  /**\n   * Enables selection cleaner element.\n   * When `true`, displays a clear button that allows users to reset the selection.\n   * The cleaner button is only shown when there is a selection and the component is not disabled or read-only.\n   *\n   * @default false\n   */\n  readonly cleaner = input(false, { transform: booleanAttribute });\n\n  /**\n   * Whether to clear the internal search state after selecting an option.\n   *\n   * When set to `true`, the internal search value used for filtering options is cleared\n   * after a selection is made. This affects only the component's internal logic.\n   *\n   * Note: This does **not** clear the visible input field if the component is using external search\n   * or is controlled via the `searchValue` prop. In such cases, clearing must be handled externally.\n   *\n   * @default true\n   */\n  readonly clearSearchOnSelect = input(false, { transform: booleanAttribute });\n\n  /**\n   * Debounce delay in milliseconds for filtering options based on search input.\n   * Controls how quickly the options list updates as the user types.\n   * Higher values reduce update frequency for better performance with large datasets.\n   * @default 150\n   */\n  readonly delay = input(150, { transform: numberAttribute });\n\n  /**\n   * Toggle the disabled state for the component.\n   * When `true`, the Angular autocomplete is non-interactive and appears visually disabled.\n   * Users cannot type, select options, or trigger the dropdown.\n   */\n  readonly disabledInput = input(false, { transform: booleanAttribute, alias: 'disabled' });\n\n  readonly disabled = linkedSignal({\n    source: this.disabledInput,\n    computation: (isDisabled) => {\n      this.#elementRef.nativeElement.disabled = isDisabled;\n      return isDisabled || null;\n    }\n  });\n\n  /**\n   * Highlight options that match the search criteria.\n   * When `true`, matching portions of option labels are visually highlighted\n   * based on the current search input value.\n   *\n   * @default false\n   */\n  readonly highlightOptionsOnSearch = input(false, { transform: booleanAttribute });\n\n  /**\n   * Show dropdown indicator/arrow button.\n   * When `true`, displays a dropdown arrow button that can be clicked\n   * to manually show or hide options dropdown.\n   */\n  readonly indicator = input(false, { transform: booleanAttribute });\n\n  /**\n   * The size of the option item in the list (in pixels).\n   * @return number\n   * @default 40\n   */\n  readonly itemSize = input(40, { transform: numberAttribute });\n\n  /**\n   * When set, the options list will have a loading style: loading spinner and reduced opacity.\n   * Use this to indicate that options are being fetched asynchronously.\n   * The dropdown remains functional but shows visual loading indicators.\n   */\n  readonly loading = input(false, { transform: booleanAttribute });\n\n  /**\n   * List of option elements.\n   * Can contain Option objects, OptionsGroup objects, or plain strings.\n   * Plain strings are converted to simple Option objects internally.\n   * This is a required prop - the Angular autocomplete needs options to function.\n   */\n  readonly options = input.required<IAutocompleteOptionNorm[]>();\n\n  /**\n   * Sets maxHeight of options list.\n   * Controls the maximum height of the dropdown options container.\n   * Can be a number (pixels) or a CSS length string (e.g., '200px', '10rem').\n   * When content exceeds this height, a scrollbar will appear.\n   * @default 'auto'\n   */\n  readonly optionsMaxHeight = input<number | string>('auto');\n\n  /**\n   * Custom template for rendering individual options.\n   * Allows complete customization of how each option appears in the dropdown.\n   */\n  readonly optionTemplate = input<TemplateRef<any>>();\n\n  /**\n   * Custom template for rendering option groups.\n   * Allows customization of how option group headers appear in the dropdown.\n   */\n  readonly optionGroupTemplate = input<TemplateRef<any>>();\n\n  readonly popperOptions = input.required<Partial<Options>>();\n\n  /**\n   * Specifies a short hint that is visible in the search input.\n   * Displayed when the input is empty to guide user interaction.\n   * Standard HTML input placeholder behavior.\n   */\n  // readonly placeholder = input<string>();\n\n  /**\n   * Toggle the readonly state for the component.\n   * When `true`, users can view and interact with the dropdown but cannot\n   * type in the search input or modify the selection through typing.\n   * Selection via clicking options may still be possible.\n   */\n  readonly readOnly = input(false, { transform: booleanAttribute });\n\n  /**\n   * Determines whether the selected options should be cleared when the options list is updated.\n   * When `true`, any previously selected options will be reset whenever the options\n   * list undergoes a change. This ensures that outdated selections are not retained\n   * when new options are provided.\n   *\n   * @default false\n   */\n  // readonly resetSelectionOnOptionsChange = input(false, { transform: booleanAttribute });\n\n  /**\n   * Enables and configures search functionality.\n   * - `'external'`: Search is handled externally, filtering is not applied internally\n   * - `'global'`: Enables global keyboard search when dropdown is closed\n   * - Object with `external` and `global` boolean properties for fine-grained control\n   */\n  readonly search = input<Search>();\n\n  /**\n   * Sets the label for no results when filtering.\n   * - `false`: Don't show any message when no results found\n   * - `true`: Show default \"No results found\" message\n   * - `string`: Show custom text message\n   * - `TemplateRef`: Show custom component/element\n   * @default false\n   */\n  readonly searchNoResultsLabel = input<boolean | string | TemplateRef<any>>(false);\n\n  /**\n   * Show hint options based on the current input value.\n   * When `true`, displays a preview/hint of the first matching option\n   * as semi-transparent text in the input field, similar to browser autocomplete.\n   *\n   * @default false\n   */\n  readonly showHints = input(false, { transform: booleanAttribute });\n\n  /**\n   * Size the component small or large.\n   * - `'sm'`: Small size variant\n   * - `'lg'`: Large size variant\n   * - `undefined`: Default/medium size\n   */\n  readonly sizing = input<'' | 'sm' | 'lg' | string>();\n\n  /**\n   * Set form input validation state to valid.\n   * @default undefined\n   */\n  readonly valid = input<boolean>();\n\n  /**\n   * Sets the initially selected value for the Angular autocomplete component.\n   * Can be a string (matched against option labels) or number (matched against option values).\n   * The component will attempt to find and select the matching option on mount.\n   */\n  // readonly valueInput = input<number | string>(undefined, { alias: 'value' });\n\n  // readonly value = linkedSignal(this.valueInput);\n\n  /**\n   * Enable virtual scroller for the options list.\n   * When `true`, only visible options are rendered in the DOM for better performance\n   * with large option lists. Works in conjunction with `visibleItems` prop.\n   *\n   * @default false\n   */\n  readonly virtualScroller = input(false, { transform: booleanAttribute });\n\n  /**\n   * Toggle the visibility of autocomplete dropdown.\n   * Controls whether the dropdown is initially visible.\n   * The dropdown visibility can still be toggled through user interaction.\n   */\n  readonly visibleInput = input(false, { transform: booleanAttribute, alias: 'visible' });\n\n  readonly visible = linkedSignal(this.visibleInput);\n\n  readonly #visibleEffect = effect(() => {\n    this.visible.set(this.autocompleteService.visible());\n  });\n\n  readonly show = computed(() => {\n    return this.visible() && !!this.options().length;\n  });\n\n  /**\n   * Amount of visible items when virtualScroller is enabled.\n   * Determines how many option items are rendered at once when virtual scrolling is active.\n   * Higher values show more items but use more memory. Lower values improve performance.\n   * @default 8\n   */\n  readonly visibleItems = input(8, { transform: numberAttribute });\n\n  /**\n   * Emits an event when the filter/search value changes.\n   * Called whenever the user types in the search input.\n   * Useful for implementing external search functionality or analytics.\n   *\n   * @param value - The current search input value\n   */\n  readonly inputChange = output<string>();\n\n  /**\n   * Emits an event when a user changes the selected option.\n   * Called with the selected option object or `undefined` when cleared.\n   * This is the primary callback for handling selection changes.\n   *\n   * @param option - The selected option object, or `undefined` if cleared\n   */\n  readonly optionChange = output<IAutocompleteOption | null>();\n\n  readonly valueChange = output<string | null>();\n\n  /**\n   * The callback is fired when the dropdown requests to be hidden.\n   * Called when the dropdown closes due to user interaction, clicks outside,\n   * escape key, or programmatic changes.\n   */\n  readonly visibleChange = output<boolean>();\n\n  readonly #visibleEffect2 = effect(() => {\n    const visible = this.visible();\n    this.autocompleteService.visible.set(visible);\n    if (!visible && !this.searchValue()) {\n      this.autocompleteService.hint.set(undefined);\n    }\n    this.visibleChange.emit(visible);\n  });\n\n  readonly searchValue = computed(() => {\n    return this.autocompleteService.searchValue() ?? '';\n  });\n\n  readonly selected = this.autocompleteService.selected;\n\n  handleClear($event: MouseEvent) {\n    $event.preventDefault();\n    $event.stopImmediatePropagation();\n    $event.stopPropagation();\n    // this.selected.set(null);\n    this.autocompleteService.autocompleteDirective()?.handleClear();\n    this.inputPortalContent().nativeElement.focus();\n  }\n\n  handleIndicatorClick($event: MouseEvent) {\n    $event.preventDefault();\n    $event.stopImmediatePropagation();\n    $event.stopPropagation();\n    // todo\n    if (this.disabled() || this.readOnly()) {\n      return;\n    }\n    this.visible.update((value) => !value);\n    this.inputPortalContent().nativeElement.focus();\n  }\n\n  readonly hostClasses = computed(() => {\n    const sizing = this.sizing();\n    const valid = this.valid();\n\n    return {\n      autocomplete: true,\n      [`autocomplete-${sizing}`]: !!sizing,\n      disabled: this.disabled(),\n      'is-valid': valid === true,\n      'is-invalid': valid === false,\n      show: this.show()\n    } as Record<string, boolean>;\n  });\n\n  handleGlobalSearch($event: KeyboardEvent) {\n    if (this.visible() && $event.key === 'Tab' && !$event.shiftKey) {\n      $event.preventDefault();\n      this.optionsRef()?.focusKeyManager?.setFirstItemActive();\n      return;\n    }\n    const global = isGlobalSearch(this.search());\n    if (global && ['Space'].includes($event.code)) {\n      return;\n    }\n    const inputRef = this.inputPortalContent().nativeElement;\n    if (global && inputRef && ($event.key.length === 1 || ['Backspace', 'Delete'].includes($event.key))) {\n      inputRef.focus();\n    }\n  }\n\n  readonly dropdownMenuClasses = computed((): Record<string, boolean> => {\n    return { 'autocomplete-dropdown': true, 'dropdown-menu': false };\n  });\n\n  readonly hintValue = computed(() => {\n    const hintOption = this.autocompleteService.hint();\n    const searchValue = this.searchValue();\n    const optionLabel = hintOption ? getOptionLabel(hintOption) : '';\n    if (optionLabel && !searchValue) {\n      return optionLabel;\n    }\n    return optionLabel ? `${searchValue}${optionLabel.slice(searchValue.length)}` : '';\n  });\n\n  readonly #hintsEffect = effect(() => {\n    if (!this.showHints()) {\n      return;\n    }\n    const findOption = findHintOption(this.searchValue(), this.options());\n    this.autocompleteService.hint.set(findOption);\n  });\n}\n","@let inputElementId = inputPortalContent().nativeElement.getAttribute('id');\n@let allOptions = options();\n@let isDisabled = disabled();\n@let searchVal = searchValue();\n@let selectedVal = selected() ?? null;\n@let hint = hintValue();\n@let hasCleaner = cleaner();\n@let hasIndicator = indicator();\n\n<ng-template [cdkPortalOutlet]=\"domTogglerPortal()\" />\n<ng-template [cdkPortalOutlet]=\"domDropdownMenuPortal()\" />\n\n<c-dropdown\n  #dropdownRef=\"cDropdown\"\n  [(visible)]=\"visible\"\n  [autoClose]=\"'outside'\"\n  [popperOptions]=\"popperOptions()\"\n  class=\"d-flex\"\n>\n  <div\n    #dropdownToggleRef=\"cDropdownToggle\"\n    [caret]=\"false\"\n    [disabled]=\"isDisabled\"\n    cDropdownToggle\n    class=\"autocomplete-input-group\"\n    role=\"button\"\n  >\n    @if (showHints() && (!!searchVal || (hint && !searchVal && !selectedVal))) {\n      <input\n        #inputHintRef\n        [id]=\"`${inputElementId}-hint`\"\n        [value]=\"hint\"\n        aria-hidden=\"true\"\n        autoComplete=\"off\"\n        class=\"autocomplete-input autocomplete-input-hint\"\n        readOnly\n        tabIndex=\"-1\"\n      />\n    }\n\n    <span style=\"display: contents\">\n      <ng-template [cdkPortalOutlet]=\"domInputPortal()\" />\n    </span>\n\n    @if (hasCleaner || hasIndicator) {\n      <div class=\"autocomplete-buttons\">\n        @if (!isDisabled && !readOnly() && hasCleaner && selectedVal) {\n          <button\n            #cleanerRef\n            (click)=\"handleClear($event)\"\n            class=\"autocomplete-cleaner\"\n            tabindex=\"-1\"\n            type=\"button\"\n          ></button>\n        }\n        @if (hasIndicator) {\n          <button\n            #indicatorRef\n            (click)=\"handleIndicatorClick($event)\"\n            [disabled]=\"isDisabled || !(searchNoResultsLabel() || allOptions.length > 0) && isExternalSearch(search())\"\n            class=\"autocomplete-indicator\"\n            tabindex=\"-1\"\n            type=\"button\"\n          ></button>\n        }\n      </div>\n    }\n  </div>\n\n  <div #dropdownMenuRef>\n    @let showDropdown = show();\n    @let noResultsLabel = searchNoResultsLabel();\n    @let isLoading = loading();\n    @let isVisible = dropdownRef.visible();\n    @let showOptions = allOptions.length && !isLoading;\n    @let showLoadingWithResults = isLoading && searchVal && allOptions.length;\n    @let showNoResults = !isLoading && noResultsLabel && searchVal && !allOptions.length;\n    @if (!isDisabled) {\n      <div\n        #dropdownMenu=\"cDropdownMenu\"\n        [attr.aria-labelledby]=\"inputElementId\"\n        [class]=\"dropdownMenuClasses()\"\n        [id]=\"`${inputElementId}-listbox`\"\n        [class.show]=\"isVisible && (showOptions || showLoadingWithResults || showNoResults)\"\n        cDropdownMenu\n        role=\"listbox\"\n      >\n        @if (showDropdown) {\n          <c-autocomplete-options\n            #optionsRef\n            [delay]=\"delay()\"\n            [highlightOptionsOnSearch]=\"highlightOptionsOnSearch()\"\n            [itemSize]=\"itemSize()\"\n            [loading]=\"isLoading\"\n            [optionGroupTemplate]=\"optionGroupTemplate()\"\n            [optionTemplate]=\"optionTemplate()\"\n            [optionsMaxHeight]=\"optionsMaxHeight()\"\n            [options]=\"allOptions\"\n            [searchNoResultsLabel]=\"searchNoResultsLabel()\"\n            [searchValue]=\"searchVal\"\n            [search]=\"search()\"\n            [selected]=\"selectedVal\"\n            [virtualScroller]=\"virtualScroller()\"\n            [visibleItems]=\"visibleItems()\"\n            tabindex=\"-1\"\n          />\n        } @else if (showNoResults) {\n          <div class=\"autocomplete-options-empty\">{{ noResultsLabel }}</div>\n        }\n        @if (showLoadingWithResults) {\n          <c-element-cover [style]=\"{'border-radius': '6px', 'z-index': 2}\" />\n        }\n      </div>\n    }\n  </div>\n</c-dropdown>\n","import { BooleanInput, NumberInput } from '@angular/cdk/coercion';\nimport {\n  booleanAttribute,\n  ComponentRef,\n  computed,\n  DestroyRef,\n  Directive,\n  effect,\n  ElementRef,\n  forwardRef,\n  inject,\n  input,\n  inputBinding,\n  linkedSignal,\n  numberAttribute,\n  OnInit,\n  output,\n  outputBinding,\n  signal,\n  TemplateRef,\n  untracked,\n  ViewContainerRef\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { fromEvent, switchMap, timer } from 'rxjs';\nimport { filter, map, tap } from 'rxjs/operators';\nimport { Options, Placement } from '@popperjs/core';\n\nimport {\n  filterOptions,\n  findHintOption,\n  flattenOptionsArray,\n  getFirstOptionByLabel,\n  getFirstOptionByValue,\n  getOptionLabel,\n  isExternalSearch,\n  normalizeOptionsArray\n} from './autocomplete.utils';\nimport { defaultPopperOptions } from '../multi-select/multi-select/multi-select.component';\nimport { RtlService, UIDService } from '../services';\nimport { AutocompleteComponent } from './autocomplete.component';\nimport { AutocompleteService } from './autocomplete.service';\nimport { AutocompleteOption, IAutocompleteOption, Search } from './autocomplete.types';\n\n@Directive({\n  selector: 'input[cAutocomplete]',\n  exportAs: 'cAutocomplete',\n  host: {\n    class: 'autocomplete-input',\n    type: 'text',\n    '[attr.autocomplete]': '\"off\"',\n    '[attr.aria-autocomplete]': '\"list\"',\n    '[attr.aria-haspopup]': '\"listbox\"',\n    '[attr.aria-expanded]': 'visible()',\n    '[attr.aria-controls]': '`${id()}-listbox`',\n    '[attr.aria-activedescendant]': 'null',\n    '[attr.aria-owns]': '`${id()}-listbox`',\n    '[attr.disabled]': 'disabledState() || null',\n    '[attr.id]': 'id()',\n    '[attr.readonly]': 'readOnly() || null',\n    '[attr.role]': '\"combobox\"'\n    // '(blur)': 'onBlur($event)'\n  },\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => AutocompleteDirective),\n      multi: true\n    }\n  ]\n})\nexport class AutocompleteDirective implements OnInit, ControlValueAccessor {\n  writeValue(value: string): void {\n    if (this.#initialValue) {\n      return;\n    }\n    if (value === null || value === undefined || value === '') {\n      if (this.value() !== undefined) {\n        this.handleClear();\n      }\n    }\n    this.value.set(value);\n  }\n  registerOnChange(fn: any): void {\n    this.onChange = fn;\n  }\n  registerOnTouched(fn: any): void {\n    this.onTouched = fn;\n  }\n  setDisabledState?(isDisabled: boolean): void {\n    this.disabledState.set(isDisabled);\n  }\n  onChange = (value: any) => {\n    /* empty */\n  };\n  onTouched = () => {\n    /* empty */\n  };\n  static ngAcceptInputType_allowOnlyDefinedOptions: BooleanInput;\n  static ngAcceptInputType_cleaner: BooleanInput;\n  static ngAcceptInputType_clearSearchOnSelect: BooleanInput;\n  static ngAcceptInputType_delay: NumberInput;\n  static ngAcceptInputType_disabled: BooleanInput;\n  static ngAcceptInputType_highlightOptionsOnSearch: BooleanInput;\n  static ngAcceptInputType_indicator: BooleanInput;\n  static ngAcceptInputType_loading: BooleanInput;\n  static ngAcceptInputType_readOnly: BooleanInput;\n  static ngAcceptInputType_resetSelectionOnOptionsChange: BooleanInput;\n  static ngAcceptInputType_showHints: BooleanInput;\n  static ngAcceptInputType_virtualScroller: BooleanInput;\n  static ngAcceptInputType_visible: BooleanInput;\n  static ngAcceptInputType_visibleItems: NumberInput;\n\n  readonly #destroyRef = inject(DestroyRef);\n  readonly #hostElement = inject(ElementRef) as ElementRef<HTMLInputElement>;\n  readonly #viewContainerRef = inject(ViewContainerRef);\n  readonly #RtlService = inject(RtlService);\n  readonly #UIDService = inject(UIDService);\n  #autocompleteService!: AutocompleteService;\n  #autocompleteComponentRef!: ComponentRef<AutocompleteComponent>;\n\n  /**\n   * Optional popper Options object\n   * @return Partial<Options>\n   */\n  readonly popperOptionsInput = input<Partial<Options>>(defaultPopperOptions, { alias: 'popperOptions' });\n\n  readonly #popperOptionsEffect = effect(() => {\n    const options = this.popperOptionsInput();\n    const isRTL = this.#RtlService.isRTL(this.#hostElement.nativeElement);\n    options.placement = (isRTL ? 'bottom-end' : 'bottom-start') as Placement;\n    const prevOptions = untracked(this.#popperOptions);\n    const { modifiers: prevModifiers = [] } = prevOptions;\n    const { modifiers: currModifiers = [] } = options;\n    const currOptions: Partial<Options> = {\n      ...options,\n      modifiers: [\n        ...prevModifiers.filter(\n          (prevModifier) => !currModifiers.find((currModifier) => currModifier.name === prevModifier.name)\n        ),\n        ...currModifiers\n      ]\n    };\n\n    this.#popperOptions.set({ ...prevOptions, ...currOptions });\n  });\n\n  readonly popperOptions = computed(() => {\n    return this.#popperOptions();\n  });\n\n  readonly #popperOptions = signal(defaultPopperOptions);\n\n  /**\n   * Only allow selection of predefined options.\n   * When `true`, users cannot enter custom values that are not in the options list.\n   * When `false`, users can enter and select custom values.\n   * @default false\n   */\n  readonly allowOnlyDefinedOptions = input(false, { transform: booleanAttribute });\n\n  /**\n   * Enables selection cleaner element.\n   * When `true`, displays a clear button that allows users to reset the selection.\n   * The cleaner button is only shown when there is a selection and the component is not disabled or read-only.\n   * @default false\n   */\n  readonly cleaner = input(false, { transform: booleanAttribute });\n\n  /**\n   * Whether to clear the internal search state after selecting an option.\n   *\n   * When set to `true`, the internal search value used for filtering options is cleared\n   * after a selection is made. This affects only the component's internal logic.\n   *\n   * Note: This does **not** clear the visible input field if the component is using external search\n   * or is controlled via the `searchValue` prop. In such cases, clearing must be handled externally.\n   * @default true\n   */\n  readonly clearSearchOnSelect = input(true, { transform: booleanAttribute });\n\n  /**\n   * Debounce delay in milliseconds for filtering options based on search input.\n   * Controls how quickly the options list updates as the user types.\n   * Higher values reduce update frequency for better performance with large datasets.\n   * @default 150\n   */\n  readonly delay = input(150, { transform: numberAttribute });\n\n  /**\n   * Toggle the disabled state for the component.\n   * When `true`, the Angular autocomplete is non-interactive and appears visually disabled.\n   * Users cannot type, select options, or trigger the dropdown.\n   */\n  readonly disabled = input(false, { transform: booleanAttribute });\n\n  readonly disabledState = linkedSignal({\n    source: this.disabled,\n    computation: (isDisabled): boolean | null => {\n      this.#hostElement.nativeElement.disabled = isDisabled;\n      return isDisabled || null;\n    }\n  });\n\n  /**\n   * Highlight options that match the search criteria.\n   * When `true`, matching portions of option labels are visually highlighted\n   * based on the current search input value.\n   *\n   * @default false\n   */\n  readonly highlightOptionsOnSearch = input(false, { transform: booleanAttribute });\n\n  /**\n   * Unique identifier for the Autocomplete component.\n   * If not provided, a default ID will be generated.\n   * @return string\n   * @default 'autocomplete-<nextId>'\n   */\n  readonly idInput = input<string | undefined>(undefined, { alias: 'id' });\n\n  /**\n   * Unique identifier for the Autocomplete component.\n   * If `idInput` is not provided, a default ID will be generated.\n   * @return string\n   */\n  readonly id = computed(() => this.idInput() ?? this.#UIDService.getUID('autocomplete'));\n\n  /**\n   * Show dropdown indicator/arrow button.\n   * When `true`, displays a dropdown arrow button that can be clicked\n   * to manually show or hide options dropdown.\n   */\n  readonly indicator = input(false, { transform: booleanAttribute });\n\n  /**\n   * The size of the option item in the list (in pixels).\n   * @return number\n   * @default 40\n   */\n  readonly itemSize = input(40, { transform: numberAttribute });\n\n  /**\n   * When set, the options list will have a loading style: loading spinner and reduced opacity.\n   * Use this to indicate that options are being fetched asynchronously.\n   * The dropdown remains functional but shows visual loading indicators.\n   */\n  readonly loading = input(false, { transform: booleanAttribute });\n\n  /**\n   * List of option elements.\n   * Can contain Option objects, OptionsGroup objects, or plain strings.\n   * Plain strings are converted to simple Option objects internally.\n   * This is a required prop - the Angular autocomplete needs options to function.\n   */\n  readonly optionsInput = input.required<AutocompleteOption[]>({ alias: 'options' });\n\n  readonly options = computed(() => {\n    const options = this.optionsInput();\n    return normalizeOptionsArray(options);\n  });\n\n  readonly #optionsEffect = effect(() => {\n    const options = this.options();\n    untracked(() => {\n      if (this.resetSelectionOnOptionsChange() && options.length) {\n        this.handleClear();\n      }\n    });\n  });\n\n  /**\n   * Sets maxHeight of options list.\n   * Controls the maximum height of the dropdown options container.\n   * Can be a number (pixels) or a CSS length string (e.g., '200px', '10rem').\n   * When content exceeds this height, a scrollbar will appear.\n   * @default 'auto'\n   */\n  readonly optionsMaxHeightInput = input<string | number>('auto', { alias: 'optionsMaxHeight' });\n  readonly optionsMaxHeight = linkedSignal(this.optionsMaxHeightInput);\n\n  /**\n   * Custom template for rendering individual options.\n   * Allows complete customization of how each option appears in the dropdown.\n   */\n  readonly optionTemplate = input<TemplateRef<any>>();\n\n  /**\n   * Custom template for rendering option groups.\n   * Allows customization of how option group headers appear in the dropdown.\n   */\n  readonly optionGroupTemplate = input<TemplateRef<any>>();\n\n  /**\n   * Specifies a short hint that is visible in the search input.\n   * Displayed when the input is empty to guide user interaction.\n   * Standard HTML input placeholder behavior.\n   */\n  readonly placeholder = input<string>();\n\n  /**\n   * Toggle the readonly state for the component.\n   * When `true`, users can view and interact with the dropdown but cannot\n   * type in the search input or modify the selection through typing.\n   * Selection via clicking options may still be possible.\n   */\n  readonly readOnly = input(false, { transform: booleanAttribute });\n\n  /**\n   * Determines whether the selected options should be cleared when the options list is updated.\n   * When `true`, any previously selected options will be reset whenever the options\n   * list undergoes a change. This ensures that outdated selections are not retained\n   * when new options are provided.\n   *\n   * @default false\n   */\n  readonly resetSelectionOnOptionsChange = input(false, { transform: booleanAttribute });\n\n  /**\n   * Enables and configures search functionality.\n   * - `'external'`: Search is handled externally, filtering is not applied internally\n   * - `'global'`: Enables global keyboard search when dropdown is closed\n   * - Object with `external` and `global` boolean properties for fine-grained control\n   */\n  readonly search = input<Search>();\n\n  /**\n   * Sets the label for no results when filtering.\n   * - `false`: Don't show any message when no results found\n   * - `true`: Show default \"No results found\" message\n   * - `string`: Show custom text message\n   * - `TemplateRef`: Show custom component/element\n   *\n   * @default false\n   */\n  readonly searchNoResultsLabel = input<boolean | string | TemplateRef<any>>(false);\n\n  /**\n   * Show hint options based on the current input value.\n   * When `true`, displays a preview/hint of the first matching option\n   * as semi-transparent text in the input field, similar to browser autocomplete.\n   *\n   * @default false\n   */\n  readonly showHints = input(false, { transform: booleanAttribute });\n\n  /**\n   * Size the component small or large.\n   * - `'sm'`: Small size variant\n   * - `'lg'`: Large size variant\n   * - `undefined`: Default/medium size\n   */\n  readonly sizing = input<'' | 'sm' | 'lg' | string>();\n\n  /**\n   * Set form input validation state to valid.\n   * @default undefined\n   */\n  readonly valid = input<boolean>();\n\n  /**\n   * Sets the initially selected value for the Angular autocomplete component.\n   * Can be a string (matched against option labels) or number (matched against option values).\n   * The component will attempt to find and select the matching option on mount.\n   */\n  readonly valueInput = input<number | string>(undefined, { alias: 'value' });\n\n  readonly value = linkedSignal(this.valueInput);\n\n  #initialValue: string | number | undefined = undefined;\n\n  readonly #valueEffect = effect(() => {\n    this.#initialValue ??= this.value();\n  });\n\n  readonly #optionsValueEffect = effect(() => {\n    const value = this.value();\n    const options = this.options();\n    untracked(() => {\n      if (typeof value === 'string' && value) {\n        const foundOption = getFirstOptionByLabel(value, options) ?? { label: value };\n        this.handleSelect(foundOption);\n        return;\n      }\n\n      if (typeof value === 'number') {\n        const foundOption = getFirstOptionByValue(value, options);\n        if (foundOption) {\n          this.handleSelect(foundOption);\n        }\n        return;\n      }\n\n      const filteredOptions = untracked(this.filteredOptions);\n      const selected = flattenOptionsArray(filteredOptions).find((option) => option.selected === true);\n\n      if (selected) {\n        this.handleSelect(selected);\n      }\n    });\n  });\n\n  /**\n   * Enable virtual scroller for the options list.\n   * When `true`, only visible options are rendered in the DOM for better performance\n   * with large option lists. Works in conjunction with `visibleItems` prop.\n   * @default false\n   */\n  readonly virtualScroller = input(false, { transform: booleanAttribute });\n\n  /**\n   * Toggle the visibility of autocomplete dropdown.\n   * Controls whether the dropdown is initially visible.\n   * The dropdown visibility can still be toggled through user interaction.\n   */\n  readonly visibleInput = input(false, { transform: booleanAttribute, alias: 'visible' });\n\n  readonly visible = linkedSignal(this.visibleInput);\n\n  /**\n   * Amount of visible items when virtualScroller is enabled.\n   * Determines how many option items are rendered at once when virtual scrolling is active.\n   * Higher values show more items but use more memory. Lower values improve performance.\n   * @default 8\n   */\n  readonly visibleItemsInput = input(8, { alias: 'visibleItems', transform: numberAttribute });\n\n  readonly visibleItems = computed(() => {\n    const visibleItems = this.visibleItemsInput();\n    return visibleItems > 0 ? visibleItems : 8;\n  });\n\n  readonly #visibleItemsEffect = effect(() => {\n    const optionsMaxHeight = this.optionsMaxHeight();\n    if (optionsMaxHeight === 'auto') {\n      this.optionsMaxHeight.set((this.itemSize() * this.visibleItems() + 16).toString() + 'px');\n    }\n  });\n\n  /**\n   * Emits an event when the filter/search value changes.\n   * Called whenever the user types in the search input.\n   * Useful for implementing external search functionality or analytics.\n   * @param value - The current search input value\n   */\n  readonly inputChange = output<string>();\n\n  /**\n   * Emits an event when a user changes the selected option.\n   * Called with the selected option object or `undefined` when cleared.\n   * This is the primary callback for handling selection changes.\n   * @param option - The selected option object, or `undefined` if cleared\n   */\n  readonly optionChange = output<IAutocompleteOption | null>();\n\n  readonly valueChange = output<string | null>();\n\n  /**\n   * The callback is fired when the dropdown requests to be hidden.\n   * Called when the dropdown closes due to user interaction, clicks outside,\n   * escape key, or programmatic changes.\n   */\n  readonly visibleChange = output<boolean>();\n\n  readonly #inputEvent$ = fromEvent<InputEvent>(this.#hostElement.nativeElement, 'input')\n    .pipe(\n      map((event) => {\n        return (event.target as HTMLInputElement)?.value ?? '';\n      }),\n      // debounceTime(this.delay()),\n      tap((value) => {\n        if (this.showHints()) {\n          const findOption = findHintOption(value, this.options());\n          this.#autocompleteService.hint.set(findOption);\n        }\n      }),\n      switchMap((event) => {\n        // this.#autocompleteService.hint.set(undefined);\n        const delay = this.delay();\n        return timer(delay).pipe(\n          // Keep the original event data\n          switchMap(() => [event])\n        );\n      }),\n      tap((value) => {\n        this.handleSelect(null);\n        this.handleSearch(value);\n        this.#inputValue.set({ value, origin: 'event' });\n      }),\n      takeUntilDestroyed(this.#destroyRef)\n    )\n    .subscribe();\n\n  ngOnInit(): void {\n    this.#initialValue ??= this.value();\n    this.#autocompleteComponentRef = this.#viewContainerRef.createComponent(AutocompleteComponent, {\n      bindings: [\n        inputBinding('inputPortalContent', () => this.#hostElement as ElementRef<HTMLInputElement>),\n        inputBinding('allowOnlyDefinedOptions', this.allowOnlyDefinedOptions),\n        inputBinding('cleaner', this.cleaner),\n        inputBinding('clearSearchOnSelect', this.clearSearchOnSelect),\n        inputBinding('delay', this.delay),\n        inputBinding('disabled', this.disabledState),\n        inputBinding('highlightOptionsOnSearch', this.highlightOptionsOnSearch),\n        inputBinding('itemSize', this.itemSize),\n        inputBinding('indicator', this.indicator),\n        inputBinding('loading', this.loading),\n        inputBinding('options', this.filteredOptions),\n        inputBinding('optionsMaxHeight', this.optionsMaxHeight),\n        inputBinding('optionTemplate', this.optionTemplate),\n        inputBinding('optionGroupTemplate', this.optionGroupTemplate),\n        // inputBinding('placeholder', this.placeholder),\n        inputBinding('readOnly', this.readOnly),\n        // inputBinding('resetSelectionOnOptionsChange', this.resetSelectionOnOptionsChange),\n        inputBinding('search', this.search),\n        // inputBinding('searchValue', this.searchValue),\n        inputBinding('searchNoResultsLabel', this.searchNoResultsLabel),\n        inputBinding('showHints', this.showHints),\n        inputBinding('sizing', this.sizing),\n        inputBinding('valid', this.valid),\n        // inputBinding('value', this.value),\n        inputBinding('virtualScroller', this.virtualScroller),\n        inputBinding('visible', this.visible),\n        inputBinding('visibleItems', this.visibleItems),\n        inputBinding('popperOptions', this.popperOptions),\n        outputBinding('visibleChange', (visible: boolean) => this.visibleChange.emit(visible))\n      ]\n    });\n\n    this.#autocompleteService = this.#autocompleteComponentRef.instance.autocompleteService;\n    this.#autocompleteService.autocompleteDirective.set(this);\n  }\n\n  readonly #placeholderEffect = effect(() => {\n    this.#hostElement.nativeElement.placeholder =\n      this.showHints() && this.#autocompleteService.hint() ? '' : (this.placeholder() ?? '');\n  });\n\n  readonly #inputKeydown$ = fromEvent<KeyboardEvent>(this.#hostElement.nativeElement, 'keydown')\n    .pipe(\n      filter(($event) => ['Tab', 'Enter', 'Backspace', 'Delete', 'Escape', 'Down', 'ArrowDown'].includes($event.key)),\n      tap(($event) => {\n        if ($event.key === 'Escape') {\n          this.handleDropdownHide();\n          return;\n        }\n\n        if (\n          ['Down', 'ArrowDown'].includes($event.key) &&\n          this.#hostElement.nativeElement.value.length === this.#hostElement.nativeElement.selectionStart\n        ) {\n          $event.preventDefault();\n          this.handleDropdownShow();\n\n          this.#autocompleteComponentRef?.instance.optionsRef()?.focusKeyManager?.setFirstItemActive();\n          return;\n        }\n\n        if ($event.key === 'Tab') {\n          $event.stopImmediatePropagation();\n          const hint = this.#autocompleteService?.hint();\n          if (this.showHints() && hint && !this.#autocompleteService.selected()) {\n            $event.preventDefault();\n            this.handleSelect(hint);\n            this.handleDropdownHide();\n          }\n          return;\n        }\n\n        if ($event.key === 'Enter') {\n          const input = $event.target as HTMLInputElement;\n          const foundOptions = getFirstOptionByLabel(input.value, this.filteredOptions());\n          if (foundOptions) {\n            this.handleSelect(foundOptions);\n          } else {\n            if (!this.allowOnlyDefinedOptions()) {\n              const value = input.value;\n              const select = !!value ? { label: value } : null;\n              this.handleSelect(select);\n            }\n          }\n          this.handleDropdownHide();\n          return;\n        }\n        if (\n          ['Backspace', 'Delete'].includes($event.key)\n          // && (this.#hostElement.nativeElement as HTMLInputElement).value !== ''\n        ) {\n          if (this.#autocompleteService.selected() !== null) {\n            // this.handleSelect(null);\n          }\n          return;\n        }\n      }),\n      takeUntilDestroyed(this.#destroyRef)\n    )\n    .subscribe();\n\n  protected onBlur($event?: FocusEvent): void {\n    // $event.preventDefault();\n    // $event.stopPropagation();\n    const selected = this.#autocompleteService.selected();\n    if (this.allowOnlyDefinedOptions() && selected === null && this.filteredOptions().length === 0) {\n      this.handleClear();\n    }\n    this.handleSelect(selected);\n    this.handleSearch('');\n    this.#autocompleteService.hint.set(undefined);\n    this.onTouched();\n  }\n\n  readonly #visibleEffect = effect(() => {\n    const visible = this.#autocompleteService.visible();\n    untracked(() => {\n      this.visible.set(visible);\n    });\n  });\n\n  #label: string = '';\n\n  readonly #selectedEffect = effect(() => {\n    const selected = this.#autocompleteService.selected();\n    const label = selected ? getOptionLabel(selected) : '';\n    untracked(() => {\n      if (selected !== undefined && label !== this.#label) {\n        // this.handleSelect(selected);\n        // if (this.#initialValue !== label)\n        this.#label = label;\n        this.valueChange.emit(label);\n        this.optionChange.emit(selected);\n        this.onChange(label);\n        // }\n        this.#initialValue = undefined;\n        if (this.value() !== label) {\n          this.value.set(label);\n        }\n      }\n    });\n  });\n\n  readonly #searchValue = computed(() => {\n    return this.#autocompleteService.searchValue() ?? '';\n  });\n\n  readonly #subtreeFocusedEffect = effect(() => {\n    const subtreeFocused = this.#autocompleteService.subtreeFocused();\n    if (subtreeFocused === null) {\n      this.onBlur();\n    } else {\n      // this.onTouched();\n    }\n  });\n\n  readonly filteredOptions = computed(() => {\n    const search = this.search();\n    const options = this.options();\n    const searchValue = this.#searchValue();\n    return isExternalSearch(search) ? options : filterOptions(options, searchValue);\n  });\n\n  readonly #filteredOptionsEffect = effect(() => {\n    const filteredOptions = this.filteredOptions();\n    untracked(() => {\n      const searchValue = this.#searchValue();\n      const visible = this.visible();\n      const searchNoResultsLabel = this.searchNoResultsLabel();\n      if (!searchNoResultsLabel && searchValue.length > 0 && filteredOptions.length === 0 && visible) {\n        this.handleDropdownHide();\n        return;\n      }\n      if (searchValue.length > 0 && filteredOptions.length > 0 && !visible) {\n        this.handleDropdownShow();\n      }\n    });\n  });\n\n  protected handleSearch(value: string | undefined) {\n    this.#autocompleteService.searchValue.set(value);\n  }\n\n  handleClear() {\n    this.dispatchInputEvent('');\n  }\n\n  protected handleSelect(option?: IAutocompleteOption | null) {\n    if (option?.disabled) {\n      return;\n    }\n\n    if (this.clearSearchOnSelect() && option !== null) {\n      this.handleSearch('');\n    } else {\n      // this.#autocompleteService.hint.set(undefined);\n    }\n    this.#inputValue.set({\n      value: option ? getOptionLabel(option) : (this.#autocompleteService.searchValue() ?? ''),\n      origin: 'program'\n    });\n\n    this.#autocompleteService.selected.set(option ?? null);\n  }\n\n  readonly #inputValue = signal<{ value: string; origin: string }>({ value: '', origin: 'init' });\n  #inputValuePrev = '';\n\n  readonly #inputValueEffect = effect(() => {\n    const { value = '', origin } = { ...this.#inputValue() };\n    if (this.#inputValuePrev !== value) {\n      this.#inputValuePrev = value;\n      this.#hostElement.nativeElement.value = value;\n      if (origin === 'event' || value === '') {\n        this.inputChange.emit(value);\n      }\n    }\n  });\n\n  protected dispatchInputEvent(value: string) {\n    const inputEvent = new InputEvent('input', {\n      inputType: 'insertReplacementText',\n      data: value\n    });\n    this.#hostElement.nativeElement.value = value;\n    this.#hostElement.nativeElement.dispatchEvent(inputEvent);\n  }\n\n  protected handleDropdownHide() {\n    this.#autocompleteService.visible.set(false);\n    this.#hostElement.nativeElement.focus();\n  }\n\n  protected handleDropdownShow() {\n    if (this.disabledState() || this.readOnly() || this.visible()) {\n      return;\n    }\n    if (\n      !isExternalSearch(this.search()) &&\n      this.filteredOptions().length === 0 &&\n      this.searchNoResultsLabel() === false\n    ) {\n      return;\n    }\n    this.#autocompleteService.visible.set(true);\n    this.#hostElement.nativeElement.focus();\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { AutocompleteDirective } from './autocomplete.directive';\n\n@NgModule({\n  imports: [AutocompleteDirective],\n  exports: [AutocompleteDirective]\n})\nexport class AutocompleteModule {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n  selector: '[cAlertHeading]',\n  host: { class: 'alert-heading' }\n})\nexport class AlertHeadingDirective {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n  selector: '[cAlertLink]',\n  host: { class: 'alert-link' }\n})\nexport class AlertLinkDirective {}\n","import {\n  booleanAttribute,\n  computed,\n  Directive,\n  input,\n  InputSignal,\n  InputSignalWithTransform,\n  numberAttribute\n} from '@angular/core';\n\nimport { BooleanInput, ButtonType, Colors, Shapes } from '../coreui.types';\n\n@Directive({\n  selector: '[cButton]',\n  exportAs: 'cButton',\n  host: {\n    class: 'btn',\n    '[class]': 'hostClasses()',\n    '[attr.aria-disabled]': 'ariaDisabled()',\n    '[attr.aria-pressed]': 'isActive()',\n    '[attr.disabled]': 'attrDisabled()',\n    '[attr.tabindex]': 'tabIndex()',\n    '[attr.type]': 'type()'\n  }\n})\nexport class ButtonDirective {\n  static ngAcceptInputType_active: BooleanInput;\n  static ngAcceptInputType_disabled: BooleanInput;\n\n  /**\n   * Toggle the active state for the component. [docs]\n   * @type InputSignalWithTransform<boolean, unknown>\n   */\n  readonly active: InputSignalWithTransform<boolean, unknown> = input(false, { transform: booleanAttribute });\n\n  /**\n   * Sets the color context of the component to one of CoreUI’s themed colors. [docs]\n   * @type InputSignal<Colors>\n   */\n  readonly color: InputSignal<Colors> = input<Colors>('primary');\n\n  /**\n   * Toggle the disabled state for the component.\n   * @type InputSignalWithTransform<boolean, unknown>\n   */\n  readonly disabled: InputSignalWithTransform<boolean, unknown> = input(false, { transform: booleanAttribute });\n\n  /**\n   * Select the shape of the component.\n   * @return Shapes\n   */\n  readonly shape = input<Shapes>();\n\n  /**\n   * Size the component small or large.\n   * @return  sm' | 'lg' | ''\n   */\n  readonly size = input<'' | 'sm' | 'lg' | string>('');\n\n  /**\n   * The tabindex attribute specifies the tab order of an element (when the \"tab\" button is used for navigating).\n   */\n  readonly tabindex = input(undefined, { transform: numberAttribute });\n\n  /**\n   * Specifies the type of button. Always specify the type attribute for the `<button>` element.\n   * Different browsers may use different default types for the `<button>` element.\n   * @type InputSignal<ButtonType>\n   * @default 'button'\n   */\n  readonly type: InputSignal<ButtonType> = input<ButtonType>('button');\n\n  /**\n   * Set the button variant to an outlined button or a ghost button.\n   * @type InputSignal<'ghost' | 'outline' | undefined>\n   */\n  readonly variant: InputSignal<'ghost' | 'outline' | undefined> = input<'ghost' | 'outline'>();\n\n  readonly hostClasses = computed(() => {\n    const color = this.color();\n    const variant = this.variant();\n    const size = this.size();\n    const shape = this.shape();\n\n    return {\n      btn: true,\n      [`btn-${color}`]: !!color && !variant,\n      [`btn-${variant}`]: !!variant && !color,\n      [`btn-${variant}-${color}`]: !!variant && !!color,\n      [`btn-${size}`]: !!size,\n      [`${shape}`]: !!shape,\n      active: this.active(),\n      disabled: this._disabled()\n    } as Record<string, boolean>;\n  });\n\n  readonly _disabled = computed(() => this.disabled());\n\n  readonly ariaDisabled = computed(() => {\n    return this._disabled() ? true : null;\n  });\n\n  readonly attrDisabled = computed(() => {\n    return this._disabled() ? '' : null;\n  });\n\n  readonly tabIndex = computed(() => {\n    return this._disabled() ? '-1' : (this.tabindex() ?? null);\n  });\n\n  readonly isActive = computed(() => {\n    return <boolean>this.active() || null;\n  });\n}\n","import { booleanAttribute, computed, Directive, input, InputSignalWithTransform } from '@angular/core';\nimport { ThemeDirective } from '../shared/theme.directive';\nimport { ButtonDirective } from './button.directive';\n\n@Directive({\n  selector: '[cButtonClose]',\n  hostDirectives: [{ directive: ThemeDirective, inputs: ['dark'] }],\n  host: {\n    class: 'btn btn-close',\n    '[class]': 'hostClasses()',\n    '[attr.aria-disabled]': 'ariaDisabled()',\n    '[attr.aria-pressed]': 'isActive()',\n    '[attr.disabled]': 'attrDisabled()',\n    '[attr.tabindex]': 'tabIndex()',\n    '[attr.type]': 'type()'\n  }\n})\nexport class ButtonCloseDirective extends ButtonDirective {\n  /**\n   * Change the default color to white.\n   * @type boolean\n   * @deprecated 5.0.0. Use `cButtonClose.dark` instead.\n   */\n  readonly white: InputSignalWithTransform<boolean, unknown> = input(false, { transform: booleanAttribute });\n\n  override readonly hostClasses = computed(() => {\n    const size = this.size();\n\n    return {\n      btn: true,\n      'btn-close': true,\n      'btn-close-white': this.white(),\n      [`btn-${size}`]: !!size,\n      active: this.active(),\n      disabled: this._disabled()\n    } as Record<string, boolean>;\n  });\n}\n","import { NgModule } from '@angular/core';\n\nimport { ButtonDirective } from './button.directive';\nimport { ButtonCloseDirective } from './button-close.directive';\n\n@NgModule({\n  imports: [\n    ButtonDirective,\n    ButtonCloseDirective\n  ],\n  exports: [\n    ButtonDirective,\n    ButtonCloseDirective\n  ]\n})\nexport class ButtonModule {}\n","import {\n  booleanAttribute,\n  Component,\n  computed,\n  contentChildren,\n  input,\n  linkedSignal,\n  output,\n  signal,\n  TemplateRef\n} from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { animate, AnimationEvent, state, style, transition, trigger } from '@angular/animations';\n\nimport { Colors } from '../coreui.types';\nimport { TemplateIdDirective } from '../shared';\nimport { ButtonCloseDirective } from '../button';\n\ntype AnimateType = 'hide' | 'show';\n\n@Component({\n  selector: 'c-alert',\n  templateUrl: './alert.component.html',\n  styleUrls: ['./alert.component.scss'],\n  exportAs: 'cAlert',\n  imports: [NgTemplateOutlet, ButtonCloseDirective],\n  animations: [\n    trigger('fadeInOut', [\n      state('show', style({ opacity: 1, height: '*', padding: '*', border: '*', margin: '*' })),\n      state('hide', style({ opacity: 0, height: 0, padding: 0, border: 0, margin: 0 })),\n      state('void', style({ opacity: 0, height: 0, padding: 0, border: 0, margin: 0 })),\n      transition('show => hide', [animate('.3s ease-out')]),\n      transition('hide => show', [animate('.3s ease-in')]),\n      transition('show => void', [animate('.3s ease-out')]),\n      transition('void => show', [animate('.3s ease-in')])\n    ])\n  ],\n  host: {\n    '[@.disabled]': '!fade()',\n    '[@fadeInOut]': 'animateType',\n    '[attr.role]': 'role()',\n    '[class]': 'hostClasses()',\n    '(@fadeInOut.start)': 'onAnimationStart($event)',\n    '(@fadeInOut.done)': 'onAnimationDone($event)'\n  }\n})\nexport class AlertComponent {\n  /**\n   * Sets the color context of the component to one of CoreUI’s themed colors.\n   * @return Colors\n   * @default 'primary'\n   */\n  readonly color = input<Colors>('primary');\n\n  /**\n   * Default role for alert. [docs]\n   * @return string\n   * @default 'alert'\n   */\n  readonly role = input('alert');\n\n  /**\n   * Set the alert variant to a solid.\n   * @return string\n   */\n  readonly variant = input<'solid'>();\n\n  /**\n   * Optionally adds a close button to alert and allow it to self dismiss.\n   * @return boolean\n   * @default false\n   */\n  readonly dismissibleInput = input(false, { transform: booleanAttribute, alias: 'dismissible' });\n\n  readonly #dismissible = linkedSignal({\n    source: this.dismissibleInput,\n    computation: (value) => {\n      return value;\n    }\n  });\n\n  set dismissible(value: boolean) {\n    this.#dismissible.set(value);\n  }\n\n  get dismissible() {\n    return this.#dismissible();\n  }\n\n  /**\n   * Adds animation for dismissible alert.\n   * @return boolean\n   */\n  readonly fade = input(false, { transform: booleanAttribute });\n\n  /**\n   * Toggle the visibility of alert component.\n   * @return boolean\n   */\n  readonly visibleInput = input(true, { transform: booleanAttribute, alias: 'visible' });\n\n  readonly #visible = linkedSignal({\n    source: this.visibleInput,\n    computation: (value) => {\n      return value;\n    }\n  });\n\n  set visible(value: boolean) {\n    if (this.#visible() !== value) {\n      this.#visible.set(value);\n      this.visibleChange?.emit(value);\n    }\n  }\n\n  get visible() {\n    return this.#visible();\n  }\n\n  readonly hide = signal<boolean>(false);\n\n  /**\n   * Event triggered on the alert dismiss.\n   */\n  readonly visibleChange = output<boolean>();\n\n  readonly contentTemplates = contentChildren(TemplateIdDirective, { descendants: true });\n\n  readonly templates = computed(() => {\n    return this.contentTemplates().reduce(\n      (acc, child) => {\n        acc[child.id] = child.templateRef;\n        return acc;\n      },\n      {} as Record<string, TemplateRef<any>>\n    );\n  });\n\n  get animateType(): AnimateType {\n    return this.visible ? 'show' : 'hide';\n  }\n\n  readonly hostClasses = computed(() => {\n    const color = this.color();\n    const variant = this.variant();\n\n    return {\n      alert: true,\n      'alert-dismissible': this.dismissible,\n      fade: this.fade(),\n      show: !this.hide(),\n      [`alert-${color}`]: !!color && variant !== 'solid',\n      [`bg-${color}`]: !!color && variant === 'solid',\n      'text-white': !!color && variant === 'solid'\n    } as Record<string, boolean>;\n  });\n\n  onAnimationStart($event: AnimationEvent): void {\n    this.onAnimationEvent($event);\n  }\n\n  onAnimationDone($event: AnimationEvent): void {\n    this.onAnimationEvent($event);\n  }\n\n  onAnimationEvent(event: AnimationEvent): void {\n    this.hide.set(event.phaseName === 'start' && event.toState === 'show');\n    if (event.phaseName === 'done') {\n      this.hide.set(event.toState === 'hide' || event.toState === 'void');\n      if (event.toState === 'show') {\n        this.hide.set(false);\n      }\n    }\n  }\n}\n","@if (visible || !hide()) {\n  @if (dismissible) {\n    <ng-container *ngTemplateOutlet=\"templates()?.['alertButtonCloseTemplate'] || defaultAlertButtonCloseTemplate\" />\n  }\n  <ng-content />\n}\n<ng-template #defaultAlertButtonCloseTemplate>\n  <button (click)=\"visible=false\" aria-label=\"Close\" cButtonClose></button>\n</ng-template>\n","import { NgModule } from '@angular/core';\n\nimport { AlertComponent } from './alert.component';\nimport { AlertHeadingDirective } from './alert-heading.directive';\nimport { AlertLinkDirective } from './alert-link.directive';\n\n@NgModule({\n  imports: [\n    AlertComponent,\n    AlertHeadingDirective,\n    AlertLinkDirective\n  ],\n  exports: [\n    AlertComponent,\n    AlertHeadingDirective,\n    AlertLinkDirective\n  ]\n})\nexport class AlertModule {}\n","import { computed, Directive, input } from '@angular/core';\nimport { Alignment } from '../coreui.types';\n\n@Directive({\n  selector: '[cAlign]',\n  exportAs: 'cAlign',\n  host: { '[class]': 'hostClasses()' }\n})\nexport class AlignDirective {\n  /**\n   * Set vertical alignment of inline, inline-block, inline-table, and table cell elements\n   * @return Alignment\n   */\n  readonly align = input<Alignment | undefined>(undefined, { alias: 'cAlign' });\n\n  readonly hostClasses = computed(() => {\n    const align = this.align();\n    return {\n      [`align-${align}`]: !!align\n    } as Record<string, boolean>;\n  });\n}\n","import { computed, Directive, input } from '@angular/core';\nimport { BackgroundColors } from '../coreui.types';\n\n@Directive({\n  selector: '[cBgColor]',\n  exportAs: 'cBgColor',\n  host: { '[class]': 'hostClasses()' }\n})\nexport class BgColorDirective {\n  /**\n   * Set the background of an element to any contextual class\n   */\n  readonly cBgColor = input<BackgroundColors>('');\n\n  /**\n   * Add linear gradient as background image to the backgrounds.\n   * @return boolean\n   */\n  readonly gradient = input<boolean>();\n\n  readonly hostClasses = computed(() => {\n    const color = this.cBgColor();\n    return {\n      [`bg-${color}`]: !!color,\n      'bg-gradient': this.gradient()\n    } as Record<string, boolean>;\n  });\n}\n","import { computed, Directive, input } from '@angular/core';\nimport { Border } from './border.type';\n\n@Directive({\n  selector: '[cBorder]',\n  exportAs: 'cBorder',\n  host: { '[class]': 'hostClasses()' }\n})\nexport class BorderDirective {\n  /**\n   * Add or remove an element’s borders\n   * @return Border\n   */\n  readonly cBorder = input<Border>(true);\n\n  readonly hostClasses = computed<Record<string, boolean>>(() => {\n    const border = this.cBorder();\n    if (typeof border === 'boolean') {\n      return { border: border };\n    }\n    if (typeof border === 'number' || typeof border === 'string') {\n      return {\n        border: true,\n        [`border-${border}`]: true\n      };\n    }\n    if (typeof border === 'object') {\n      const borderObj = {\n        top: undefined,\n        end: undefined,\n        bottom: undefined,\n        start: undefined,\n        color: undefined,\n        ...border\n      };\n      // @ts-ignore\n      const keys = Object.keys(borderObj).filter((key) => borderObj[key] !== undefined);\n      const classes = {};\n      keys.forEach((key) => {\n        // @ts-ignore\n        const val = borderObj[key];\n        if (typeof val === 'boolean') {\n          // @ts-ignore\n          classes[`border-${key}`] = true;\n        } else if (typeof val === 'number' || typeof val === 'string') {\n          // @ts-ignore\n          classes[`border-${key}-${val}`] = true;\n        } else if (typeof val === 'object') {\n          if ('color' in val) {\n            // @ts-ignore\n            classes[`border-${key}-${val.color}`] = true;\n          }\n          if ('width' in val) {\n            // @ts-ignore\n            classes[`border-${key}-${val.width}`] = true;\n          }\n        }\n      });\n      return Object.entries(classes).length === 0 ? { border: false } : classes;\n    }\n    return { border: false };\n  });\n}\n","import { computed, Directive, input } from '@angular/core';\nimport { Rounded } from './rounded.type';\n\n@Directive({\n  selector: '[cRounded]',\n  exportAs: 'cRounded',\n  host: { '[class]': 'hostClasses()' }\n})\nexport class RoundedDirective {\n  /**\n   * Set border radius variant and radius size\n   * @type Rounded\n   */\n  readonly cRounded = input<Rounded>(true);\n\n  readonly hostClasses = computed<Record<string, boolean>>(() => {\n    const rounded = this.cRounded();\n    if (typeof rounded === 'boolean') {\n      return { rounded: rounded };\n    }\n    if (typeof rounded === 'number' || typeof rounded === 'string') {\n      return {\n        [`rounded-${rounded}`]: true\n      };\n    }\n    if (typeof rounded === 'object') {\n      const roundedObj = {\n        top: undefined,\n        end: undefined,\n        bottom: undefined,\n        start: undefined,\n        circle: undefined,\n        pill: undefined,\n        size: undefined,\n        ...rounded\n      };\n      // @ts-ignore\n      const keys = Object.keys(roundedObj).filter((key) => roundedObj[key] !== undefined);\n      const classes = {};\n      keys.forEach((key) => {\n        // @ts-ignore\n        const val = roundedObj[key];\n        if (typeof val === 'boolean') {\n          // @ts-ignore\n          classes[`rounded-${key}`] = val;\n        } else {\n          // @ts-ignore\n          classes[`rounded-${val}`] = true;\n        }\n      });\n      // console.log('rounded keys', keys, classes);\n      return Object.entries(classes).length === 0 ? { rounded: false } : classes;\n    }\n    return { rounded: false };\n  });\n}\n","import {\n  DestroyRef,\n  Directive,\n  DOCUMENT,\n  effect,\n  ElementRef,\n  inject,\n  input,\n  signal,\n  untracked,\n  WritableSignal\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { fromEvent, Subscription } from 'rxjs';\n\n@Directive({\n  selector: '[cShadowOnScroll]',\n  exportAs: 'cShadowOnScroll'\n})\nexport class ShadowOnScrollDirective {\n  readonly #destroyRef: DestroyRef = inject(DestroyRef);\n  readonly #document: Document = inject(DOCUMENT);\n  readonly #elementRef: ElementRef = inject(ElementRef);\n  readonly #scrolled: WritableSignal<boolean> = signal(false);\n\n  readonly #scrollEffect = effect(() => {\n    this.#elementRef.nativeElement.classList.toggle(this.#shadowClass, this.#scrolled());\n  });\n\n  #observable!: Subscription;\n  #shadowClass = 'shadow-sm';\n\n  constructor() {\n    this.#destroyRef.onDestroy(() => {\n      this.#scrollEffect?.destroy();\n    });\n  }\n\n  readonly cShadowOnScroll = input<'sm' | 'lg' | 'none' | boolean>(true);\n\n  readonly #shadowOnScrollEffect = effect(() => {\n    const value = this.cShadowOnScroll();\n    untracked(() => {\n      this.#scrolled.set(false);\n      if (value) {\n        this.#shadowClass = value === true ? 'shadow' : `shadow-${value}`;\n        this.#observable = fromEvent(this.#document, 'scroll')\n          .pipe(takeUntilDestroyed(this.#destroyRef))\n          .subscribe((scrolled) => {\n            this.#scrolled.set(this.#document.documentElement.scrollTop > 0);\n          });\n      } else {\n        this.#observable?.unsubscribe();\n      }\n    });\n  });\n}\n","import { computed, Directive, input, InputSignal } from '@angular/core';\nimport { TextColors } from '../coreui.types';\n\n@Directive({\n  selector: '[cTextColor]',\n  host: {\n    '[class]': 'hostClasses()'\n  }\n})\nexport class TextColorDirective {\n  /**\n   * Set text-color of element\n   * @type TextColors\n   */\n  readonly color: InputSignal<TextColors> = input('', { alias: 'cTextColor' });\n\n  readonly hostClasses = computed(() => {\n    const color = this.color();\n    return {\n      [`text-${color}`]: !!color\n    };\n  });\n}\n","import { computed, Directive, input, InputSignal } from '@angular/core';\nimport { Colors } from '../coreui.types';\n\n@Directive({\n  selector: '[cTextBgColor]',\n  host: {\n    '[class]': 'hostClasses()'\n  }\n})\nexport class TextBgColorDirective {\n  /**\n   * Set text-bg-color of element\n   * @type Colors\n   */\n  readonly textBgColor: InputSignal<Colors> = input('', { alias: 'cTextBgColor' });\n\n  readonly hostClasses = computed(() => {\n    const color = this.textBgColor();\n    return {\n      [`text-bg-${color}`]: !!color\n    } as Record<string, boolean>;\n  });\n}\n","import { NgModule } from '@angular/core';\n\nimport {\n  AlignDirective,\n  BgColorDirective,\n  BorderDirective,\n  RoundedDirective,\n  ShadowOnScrollDirective,\n  TextBgColorDirective,\n  TextColorDirective\n} from './public_api';\n\nconst UTILITY_DIRECTIVES = [\n  AlignDirective,\n  BgColorDirective,\n  BorderDirective,\n  RoundedDirective,\n  ShadowOnScrollDirective,\n  TextColorDirective,\n  TextBgColorDirective\n];\n\n@NgModule({\n  imports: [...UTILITY_DIRECTIVES],\n  exports: [...UTILITY_DIRECTIVES]\n})\nexport class UtilitiesModule {}\n","import { Component, computed, input, InputSignal } from '@angular/core';\n\nimport { Colors, Shapes, Sizes, TextColors } from '../coreui.types';\nimport { TextColorDirective } from '../utilities';\n\n@Component({\n  selector: 'c-avatar',\n  templateUrl: './avatar.component.html',\n  styleUrls: ['./avatar.component.scss'],\n  hostDirectives: [\n    {\n      directive: TextColorDirective,\n      inputs: ['cTextColor: textColor']\n    }\n  ],\n  host: { class: 'avatar', '[class]': 'hostClasses()' }\n})\nexport class AvatarComponent {\n  /**\n   * Sets the background color context of the component to one of CoreUI’s themed colors.\n   * @type Colors\n   */\n  readonly color: InputSignal<Colors | undefined> = input();\n\n  /**\n   * Select the shape of the component.\n   * @type Shapes\n   */\n  readonly shape: InputSignal<Shapes | undefined> = input();\n\n  /**\n   * Size the component small, large, or extra large.\n   * @default 'md'\n   */\n  readonly size = input<Omit<Sizes, 'xxl'>>('');\n\n  /**\n   * The alt attribute for the img element alternate text.\n   * @type string\n   */\n  readonly alt: InputSignal<string> = input('');\n\n  /**\n   * The src attribute for the img element.\n   * @type string\n   */\n  readonly src: InputSignal<string | undefined> = input();\n\n  /**\n   * Sets the color context of the status indicator to one of CoreUI’s themed colors.\n   * @type Colors\n   */\n  readonly status: InputSignal<Colors | undefined> = input();\n\n  /**\n   * Sets the text color of the component to one of CoreUI’s themed colors.\n   * via TextColorDirective\n   * @type TextColors\n   */\n  readonly textColor: InputSignal<TextColors | undefined> = input();\n\n  readonly statusClass = computed(() => {\n    return {\n      'avatar-status': true,\n      [`bg-${this.status()}`]: !!this.status()\n    } as Record<string, boolean>;\n  });\n\n  readonly hostClasses = computed(() => {\n    const size = this.size();\n    const color = this.color();\n    const shape = this.shape();\n\n    return {\n      avatar: true,\n      [`avatar-${size}`]: !!size,\n      [`bg-${color}`]: !!color,\n      [`${shape}`]: !!shape\n    } as Record<string, boolean>;\n  });\n}\n","<ng-content>\n  @if (src()) {\n    @defer (prefetch on idle) {\n      <img src=\"{{src() ?? ''}}\" class=\"avatar-img\" alt=\"{{alt()}}\" />\n    } @placeholder () {\n      <svg aria-label=\"Avatar placeholder\"\n           focusable=\"false\"\n           preserveAspectRatio=\"xMidYMid slice\"\n           role=\"img\"\n           xmlns=\"http://www.w3.org/2000/svg\"\n           class=\"avatar-img\"\n           style=\"position: absolute; width: 100%; height: 100%; inset: 0;\">\n        <rect fill=\"#868e96\" height=\"100%\" width=\"100%\"></rect>\n      </svg>\n    }\n  }\n</ng-content>\n@if (!!status()) {\n  <span [class]=\"statusClass()\"></span>\n}\n\n","import { NgModule } from '@angular/core';\nimport { AvatarComponent } from './avatar.component';\n\n@NgModule({\n  imports: [\n    AvatarComponent\n  ],\n  exports: [\n    AvatarComponent\n  ]\n})\nexport class AvatarModule {}\n","import { Component, computed, input, InputSignal } from '@angular/core';\nimport { BadgePositions, Colors, Shapes, TextColors } from '../coreui.types';\nimport { TextBgColorDirective, TextColorDirective } from '../utilities';\n\n@Component({\n  selector: 'c-badge',\n  template: '<ng-content />',\n  hostDirectives: [\n    { directive: TextColorDirective, inputs: ['cTextColor: textColor'] },\n    { directive: TextBgColorDirective, inputs: ['cTextBgColor: textBgColor'] }\n  ],\n  host: {\n    class: 'badge',\n    '[class]': 'hostClasses()'\n  }\n})\nexport class BadgeComponent {\n  /**\n   * Sets the color context of the component to one of CoreUI’s themed colors.\n   * @type Colors\n   */\n  readonly color: InputSignal<Colors | undefined> = input();\n  /**\n   * Position badge in one of the corners of a link or button.\n   * @type BadgePositions\n   */\n  readonly position: InputSignal<BadgePositions | undefined> = input();\n\n  /**\n   * Select the shape of the component.\n   * @type Shapes\n   */\n  readonly shape: InputSignal<Shapes | undefined> = input();\n\n  /**\n   * Size the component small.\n   */\n  readonly size = input<'sm'>();\n\n  /**\n   * Sets the text color of the component to one of CoreUI’s themed colors.\n   * via TextColorDirective\n   * @type TextColors\n   */\n  readonly textColor: InputSignal<TextColors | undefined> = input();\n\n  /**\n   * Sets the component's color scheme to one of CoreUI's themed colors, ensuring the text color contrast adheres to the WCAG 4.5:1 contrast ratio standard for accessibility.\n   * via TextBgColorDirective\n   * @type Colors\n   * @since 5.0.0\n   */\n  readonly textBgColor: InputSignal<Colors | undefined> = input();\n\n  readonly hostClasses = computed(() => {\n    const position = this.position();\n    const positionClasses = {\n      'position-absolute': !!position,\n      'translate-middle': !!position,\n      'top-0': position?.includes('top'),\n      'top-100': position?.includes('bottom'),\n      'start-100': position?.includes('end'),\n      'start-0': position?.includes('start')\n    };\n\n    const color = this.color();\n    const size = this.size();\n    const shape = this.shape();\n\n    return Object.assign(\n      {\n        badge: true,\n        [`bg-${color}`]: !!color,\n        [`badge-${size}`]: !!size,\n        [`${shape}`]: !!shape\n      },\n      !!position ? positionClasses : {}\n    ) as Record<string, boolean>;\n  });\n}\n","import { NgModule } from '@angular/core';\nimport { BadgeComponent } from './badge.component';\n\n@NgModule({\n  imports: [\n    BadgeComponent\n  ],\n  exports: [\n    BadgeComponent\n  ]\n})\nexport class BadgeModule {}\n","import { DOCUMENT, inject, Injectable } from '@angular/core';\n\nimport { Subject } from 'rxjs';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class BackdropService {\n  readonly #backdropClick = new Subject<boolean>();\n  readonly backdropClick$ = this.#backdropClick.asObservable();\n\n  readonly #document = inject(DOCUMENT);\n\n  activeBackdrop: any;\n\n  get #scrollbarWidth() {\n    // https://developer.mozilla.org/en-US/docs/Web/API/Window/innerWidth#usage_notes\n    const documentWidth = this.#document.documentElement.clientWidth;\n    const scrollbarWidth = Math.abs((this.#document.defaultView?.innerWidth ?? documentWidth) - documentWidth);\n    return `${scrollbarWidth}px`;\n  }\n\n  scrollbarWidth = this.#scrollbarWidth;\n\n  setBackdrop(type: string = 'modal'): HTMLDivElement {\n    const backdropElement = this.#document.createElement('div');\n    backdropElement.classList.add(`${type}-backdrop`);\n    backdropElement.classList.add('fade');\n    this.#document.body.appendChild(backdropElement);\n\n    const clickHandler = () => {\n      this.onClickHandler();\n    };\n    (backdropElement as any).__backdropClickHandler = clickHandler;\n    backdropElement.addEventListener('click', clickHandler);\n\n    this.scrollbarWidth = this.#scrollbarWidth;\n    setTimeout(() => {\n      backdropElement.classList.add('show');\n      // this.hideScrollbar();\n    });\n    this.activeBackdrop = backdropElement;\n    return backdropElement;\n  }\n\n  clearBackdrop(backdropElement: HTMLElement): any {\n    if (backdropElement) {\n      const storedHandler = (backdropElement as any).__backdropClickHandler;\n      if (storedHandler) {\n        backdropElement.removeEventListener('click', storedHandler);\n        delete (backdropElement as any).__backdropClickHandler;\n      }\n      backdropElement.classList.remove('show');\n      setTimeout(() => {\n        if (this.activeBackdrop === backdropElement) {\n          this.resetScrollbar();\n        }\n        this.#document.body.removeChild(backdropElement);\n      }, 300);\n    }\n    return undefined;\n  }\n\n  get #isRTL() {\n    return [this.#document.documentElement.dir, this.#document.body.dir].includes('rtl');\n  }\n\n  get #padding() {\n    return `padding-${this.#isRTL ? 'left' : 'right'}`;\n  }\n\n  #scrollBarVisible = true;\n\n  hideScrollbar(): void {\n    if (this.#scrollBarVisible) {\n      this.#document.body.style.setProperty('overflow', 'hidden');\n      this.#document.body.style.setProperty(this.#padding, this.scrollbarWidth);\n      this.#scrollBarVisible = false;\n    }\n  }\n\n  resetScrollbar(): void {\n    this.#document.body.style.removeProperty('overflow');\n    this.#document.body.style.removeProperty(this.#padding);\n    this.#scrollBarVisible = true;\n  }\n\n  onClickHandler(): void {\n    this.#backdropClick.next(true);\n  }\n}\n","import { booleanAttribute, Component, computed, effect, input } from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { RouterModule } from '@angular/router';\n\nimport { HtmlAttributesDirective } from '../../shared';\nimport { INavAttributes, INavLinkProps } from './breadcrumb-item';\n\n@Component({\n  selector: 'c-breadcrumb-item',\n  templateUrl: './breadcrumb-item.component.html',\n  styleUrls: ['./breadcrumb-item.component.scss'],\n  imports: [RouterModule, NgTemplateOutlet, HtmlAttributesDirective],\n  exportAs: 'breadcrumbItem',\n  host: {\n    '[attr.aria-current]': 'ariaCurrent()',\n    '[class]': 'hostClasses()'\n  }\n})\nexport class BreadcrumbItemComponent {\n  /**\n   * Toggle the active state for the component. [docs]\n   * @return boolean\n   */\n  readonly active = input<boolean, unknown>(undefined, { transform: booleanAttribute });\n\n  /**\n   * The `url` prop for the inner `[routerLink]` directive. [docs]\n   * @return string\n   */\n  readonly url = input<string | any[]>();\n\n  /**\n   * Additional html attributes for link. [docs]\n   * @return INavAttributes\n   */\n  readonly attribs = input<INavAttributes>();\n  protected readonly _attributes = input<INavAttributes>(undefined, { alias: 'attributes' });\n\n  readonly #attributesEffect = effect(() => {\n    if (this._attributes()) {\n      console.error('c-breadcrumb-item: [attributes] prop is removed, use [attribs] instead:', this._attributes());\n    }\n  });\n\n  /**\n   * Some `NavigationExtras` props for the inner `[routerLink]` directive and `routerLinkActiveOptions`. [docs]\n   * @return INavLinkProps\n   */\n  readonly linkProps = input<INavLinkProps>();\n\n  readonly ariaCurrent = computed((): string | null => {\n    return this.active() ? 'page' : null;\n  });\n\n  readonly hostClasses = computed(() => {\n    return {\n      'breadcrumb-item': true,\n      active: this.active()\n    } as Record<string, boolean>;\n  });\n}\n","@if (!active()) {\n  <a [routerLink]=\"url()\"\n     [cHtmlAttr]=\"attribs() ?? {}\"\n     [target]=\"attribs()?.['target']\"\n     [queryParams]=\"linkProps()?.queryParams ?? null\"\n     [fragment]=\"linkProps()?.fragment\"\n     [queryParamsHandling]=\"linkProps()?.queryParamsHandling ?? null\"\n     [preserveFragment]=\"linkProps()?.preserveFragment ?? false\"\n     [skipLocationChange]=\"linkProps()?.skipLocationChange ?? false\"\n     [replaceUrl]=\"linkProps()?.replaceUrl ?? false\"\n     [state]=\"linkProps()?.state ?? {}\"\n  >\n    <ng-container *ngTemplateOutlet=\"defaultBreadcrumbItemContentTemplate\" />\n  </a>\n} @else {\n  <span [cHtmlAttr]=\"attribs() ?? {}\">\n      <ng-container *ngTemplateOutlet=\"defaultBreadcrumbItemContentTemplate\" />\n  </span>\n}\n\n<ng-template #defaultBreadcrumbItemContentTemplate>\n  <ng-content />\n</ng-template>\n","import { Component, input } from '@angular/core';\n\n@Component({\n  selector: 'c-breadcrumb',\n  template: '<ng-content />',\n  host: {\n    class: 'breadcrumb',\n    '[attr.aria-label]': 'ariaLabel()',\n    '[attr.role]': 'role()'\n  }\n})\nexport class BreadcrumbComponent {\n  /**\n   * Default aria-label for breadcrumb. [docs]\n   * @return string\n   * @default 'breadcrumb'\n   */\n  readonly ariaLabel = input('breadcrumb');\n\n  /**\n   * Default role for breadcrumb. [docs]\n   * @return string\n   * @default 'navigation'\n   */\n  readonly role = input('navigation');\n}\n","import { inject, Injectable } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ActivatedRoute, NavigationEnd, Router } from '@angular/router';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { filter } from 'rxjs/operators';\nimport { IBreadcrumbItem } from '../breadcrumb-item/breadcrumb-item';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class BreadcrumbRouterService {\n  readonly #router = inject(Router);\n  readonly #activatedRoute = inject(ActivatedRoute);\n\n  public outlet = 'primary';\n\n  readonly #breadcrumbsBehaviorSubject: BehaviorSubject<IBreadcrumbItem[]> = new BehaviorSubject<IBreadcrumbItem[]>(\n    new Array<IBreadcrumbItem>()\n  );\n  readonly breadcrumbs$: Observable<IBreadcrumbItem[]> = this.#breadcrumbsBehaviorSubject.asObservable();\n\n  constructor() {\n    this.#router.events\n      .pipe(\n        takeUntilDestroyed(),\n        filter((event) => event instanceof NavigationEnd)\n      )\n      .subscribe((event) => {\n        const breadcrumbs: any[] = [];\n        let currentRoute: ActivatedRoute | null = this.#activatedRoute.root;\n        let url = '';\n        do {\n          const childrenRoutes: ActivatedRoute[] = currentRoute.children;\n          currentRoute = null;\n          childrenRoutes.forEach((childRoute) => {\n            // console.log('breadcrumb event', event, 'route', route);\n            if (childRoute.outlet === this.outlet) {\n              const routeSnapshot = childRoute.snapshot;\n              url += '/' + routeSnapshot.url.map((segment) => segment.path).join('/');\n              breadcrumbs.push({\n                label: routeSnapshot.data['title'] ?? routeSnapshot.title ?? '',\n                url,\n                queryParams: routeSnapshot.queryParams\n              });\n              currentRoute = childRoute;\n            }\n          });\n        } while (currentRoute);\n\n        this.#breadcrumbsBehaviorSubject.next(Object.assign([], breadcrumbs));\n\n        return breadcrumbs;\n      });\n  }\n}\n","import { Component, computed, inject, input } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\n\nimport { IBreadcrumbItem } from '../breadcrumb-item/breadcrumb-item';\nimport { BreadcrumbComponent } from '../breadcrumb/breadcrumb.component';\nimport { BreadcrumbRouterService } from './breadcrumb-router.service';\nimport { BreadcrumbItemComponent } from '../breadcrumb-item/breadcrumb-item.component';\n\n@Component({\n  selector: 'c-breadcrumb-router, [cBreadcrumbRouter]',\n  templateUrl: './breadcrumb-router.component.html',\n  imports: [BreadcrumbComponent, BreadcrumbItemComponent]\n})\nexport class BreadcrumbRouterComponent {\n  readonly #breadcrumbRouterService = inject(BreadcrumbRouterService);\n\n  /**\n   * Optional array of IBreadcrumbItem to override default BreadcrumbRouter behavior. [docs]\n   * @return IBreadcrumbItem[]\n   */\n  readonly items = input<IBreadcrumbItem[]>();\n\n  readonly #breadcrumbs = toSignal(this.#breadcrumbRouterService.breadcrumbs$);\n\n  readonly breadcrumbs = computed(() => {\n    return this.items() ?? this.#breadcrumbs() ?? [];\n  });\n}\n","<c-breadcrumb class=\"m-0\">\n  @for (breadcrumb of breadcrumbs(); track breadcrumb; let last = $last) {\n    @if (breadcrumb?.label && (breadcrumb?.url?.slice(-1) === '/' || last)) {\n      <c-breadcrumb-item\n        [active]=\"last\"\n        [url]=\"breadcrumb?.url\"\n        [attribs]=\"breadcrumb?.attributes\"\n        [linkProps]=\"breadcrumb?.linkProps\"\n      >\n        {{ breadcrumb?.label }}\n      </c-breadcrumb-item>\n    }\n  }\n</c-breadcrumb>\n","import { NgModule } from '@angular/core';\n\n// CoreUI Breadcrumb Component\nimport { BreadcrumbComponent } from './breadcrumb/breadcrumb.component';\nimport { BreadcrumbItemComponent } from './breadcrumb-item/breadcrumb-item.component';\nimport { BreadcrumbRouterComponent } from './breadcrumb-router/breadcrumb-router.component';\nimport { BreadcrumbRouterService } from './breadcrumb-router/breadcrumb-router.service';\n\n@NgModule({\n  imports: [\n    BreadcrumbComponent,\n    BreadcrumbItemComponent,\n    BreadcrumbRouterComponent\n  ],\n  exports: [\n    BreadcrumbComponent,\n    BreadcrumbItemComponent,\n    BreadcrumbRouterComponent\n  ],\n  providers: [BreadcrumbRouterService]\n})\nexport class BreadcrumbModule {}\n","import { booleanAttribute, Component, computed, input, InputSignalWithTransform } from '@angular/core';\n\n@Component({\n  selector: 'c-button-group',\n  template: '<ng-content />',\n  host: { '[attr.role]': 'role()', '[class]': 'hostClasses()' }\n})\nexport class ButtonGroupComponent {\n  /**\n   * Size the component small or large.\n   * @return { 'sm' | 'lg' }\n   */\n  readonly size = input<'' | 'sm' | 'lg' | string>();\n\n  /**\n   * Create a set of buttons that appear vertically stacked rather than horizontally. Split button dropdowns are not supported here.\n   * @type boolean\n   */\n  readonly vertical: InputSignalWithTransform<boolean, unknown> = input(false, { transform: booleanAttribute });\n\n  /**\n   * Default role attr for ButtonGroup. [docs]\n   * @return string\n   * @default 'group'\n   */\n  readonly role = input<string>('group');\n\n  readonly hostClasses = computed(() => {\n    const size = this.size();\n    const vertical = this.vertical();\n    return {\n      'btn-group': !vertical,\n      'btn-group-vertical': vertical,\n      [`btn-group-${size}`]: !!size\n    } as Record<string, boolean>;\n  });\n}\n","import { Component, input, InputSignal } from '@angular/core';\n\n@Component({\n  selector: 'c-button-toolbar',\n  template: '<ng-content />',\n  host: { class: 'btn-toolbar', '[attr.role]': 'role()' }\n})\nexport class ButtonToolbarComponent {\n  /**\n   * Default role attr for ButtonToolbar. [docs]\n   * @type InputSignal<string>\n   * @default 'toolbar'\n   */\n  role: InputSignal<string> = input('toolbar');\n}\n","import { NgModule } from '@angular/core';\nimport { ButtonGroupComponent } from './button-group/button-group.component';\nimport { ButtonToolbarComponent } from './button-toolbar/button-toolbar.component';\n\n@NgModule({\n  imports: [ButtonGroupComponent, ButtonToolbarComponent],\n  exports: [ButtonGroupComponent, ButtonToolbarComponent]\n})\nexport class ButtonGroupModule {}\n","import { DateFilterType, SelectionType } from './calendar.service';\n\nexport function dateTransform(value: Date | number) {\n  return tryDate(value, 'dateTransform');\n}\n\nexport const convertIsoWeekToDate = (isoWeek: string) => {\n  const [year, week] = isoWeek.split(/w/i);\n  // Get date for 4th of January for year\n  const date = new Date(parseInt(year), 0, 4);\n  // Get previous Monday, add 7 days for each week after first\n  date.setDate(date.getDate() - (date.getDay() || 7) + 1 + (parseInt(week ?? 1) - 1) * 7);\n  return date;\n};\n\nexport const convertToDateObject = (date: Date | string | number, selectionType?: SelectionType, propName?: string) => {\n  if (date instanceof Date) {\n    return new Date(date);\n  }\n\n  if (isValidDate(date)) {\n    return new Date(date);\n  }\n\n  if (selectionType === 'week') {\n    return convertIsoWeekToDate(date as string);\n  }\n\n  return tryDate(date, propName ?? 'convertToDateObject');\n  // return new Date(Date.parse(date));\n};\n\nexport const convertToLocalDate = (d: Date, locale: string, options = {}) => d.toLocaleDateString(locale, options);\n\nexport const convertToLocalTime = (d: Date, locale: string, options = {}) => d.toLocaleTimeString(locale, options);\n\nexport const createGroupsInArray = <T>(arr: T[], numberOfGroups: number): T[][] => {\n  const perGroup = Math.ceil(arr.length / numberOfGroups);\n  return Array.from({ length: numberOfGroups })\n    .fill('')\n    .map((_, i) => arr.slice(i * perGroup, (i + 1) * perGroup));\n};\n\nexport const getCalendarDate = (calendarDate: Date, order: number, view: 'days' | 'months' | 'years') => {\n  if (order !== 0 && view === 'days') {\n    return new Date(calendarDate.getFullYear(), calendarDate.getMonth() + order, 1);\n  }\n\n  if (order !== 0 && view === 'months') {\n    return new Date(calendarDate.getFullYear() + order, calendarDate.getMonth(), 1);\n  }\n\n  if (order !== 0 && view === 'years') {\n    return new Date(calendarDate.getFullYear() + 12 * order, calendarDate.getMonth(), 1);\n  }\n\n  return calendarDate;\n};\n\nexport const getCurrentYear = () => new Date().getFullYear();\n\nexport const getCurrentMonth = () => new Date().getMonth();\n\nexport const getDateBySelectionType = (date: Date | null, selectionType: SelectionType) => {\n  if (date === null) {\n    return null;\n  }\n\n  if (selectionType === 'week') {\n    return `${date.getFullYear()}W${getWeekNumber(date)}`;\n  }\n\n  if (selectionType === 'month') {\n    const monthNumber = `0${date.getMonth() + 1}`.slice(-2);\n    return `${date.getFullYear()}-${monthNumber}`;\n  }\n\n  if (selectionType === 'year') {\n    return `${date.getFullYear()}`;\n  }\n\n  return date;\n};\n\n//\n\nexport const getLocalDateFromString = (string: string, locale: string, time?: boolean) => {\n  const date = new Date(2013, 11, 31, 17, 19, 22);\n  let regex = time ? date.toLocaleString(locale) : date.toLocaleDateString(locale);\n  regex = regex\n    .replace('2013', '(?<year>[0-9]{2,4})')\n    .replace('12', '(?<month>[0-9]{1,2})')\n    .replace('31', '(?<day>[0-9]{1,2})');\n\n  if (time) {\n    regex = regex\n      .replace('5', '(?<hour>[0-9]{1,2})')\n      .replace('17', '(?<hour>[0-9]{1,2})')\n      .replace('19', '(?<minute>[0-9]{1,2})')\n      .replace('22', '(?<second>[0-9]{1,2})')\n      .replace('PM', '(?<ampm>[A-Z]{2})');\n  }\n\n  const rgx = RegExp(`${regex}`);\n  const partials = string.match(rgx);\n\n  if (partials === null) {\n    return;\n  }\n\n  const newDate =\n    partials.groups &&\n    (time\n      ? new Date(\n          Number(partials.groups['year']),\n          Number(partials.groups['month']) - 1,\n          Number(partials.groups['day']),\n          partials.groups['ampm']\n            ? partials.groups['ampm'] === 'PM'\n              ? Number(partials.groups['hour']) + 12\n              : Number(partials.groups['hour'])\n            : Number(partials.groups['hour']),\n          Number(partials.groups['minute']),\n          Number(partials.groups['second'])\n        )\n      : new Date(\n          Number(partials.groups['year']),\n          Number(partials.groups['month']) - 1,\n          Number(partials.groups['day'])\n        ));\n\n  return newDate;\n};\n\nexport const getMonthName = (month: number, locale: string) => {\n  const d = new Date();\n  d.setDate(1);\n  d.setMonth(month);\n  return d.toLocaleString(locale, { month: 'long' });\n};\n\nexport const getMonthsNames = (locale: string, year: number) => {\n  const months = [];\n  const d = new Date(year);\n  d.setDate(1);\n\n  for (let i = 0; i < 12; i++) {\n    d.setMonth(i);\n    months.push({ year, month: d.toLocaleDateString(locale, { month: 'short' }) });\n  }\n\n  return months;\n};\n\nexport const getYears = (year: number) => {\n  const years = [];\n  for (let _year = year - 6; _year < year + 6; _year++) {\n    years.push(_year);\n  }\n\n  return years;\n};\n\nconst getLeadingDays = (year: number, month: number, firstDayOfWeek: number) => {\n  // 0: sunday\n  // 1: monday\n  const dates = [];\n  const d = new Date(year, month);\n  const y = d.getFullYear();\n  const m = d.getMonth();\n  const firstWeekday = new Date(y, m, 1).getDay();\n  let leadingDays = 6 - (6 - firstWeekday) - firstDayOfWeek;\n\n  if (firstDayOfWeek) {\n    leadingDays = leadingDays < 0 ? 7 + leadingDays : leadingDays;\n  }\n\n  for (let i = leadingDays * -1; i < 0; i++) {\n    dates.push({\n      date: new Date(y, m, i + 1),\n      month: 'previous'\n    });\n  }\n\n  return dates;\n};\n\nconst getMonthDays = (year: number, month: number) => {\n  const dates = [];\n  const lastDay = new Date(year, month + 1, 0).getDate();\n  for (let i = 1; i <= lastDay; i++) {\n    dates.push({\n      date: new Date(year, month, i),\n      month: 'current'\n    });\n  }\n  return dates;\n};\n\nconst getTrailingDays = (\n  year: number,\n  month: number,\n  leadingDays: { date: Date; month: string }[],\n  monthDays: { date: Date; month: string }[]\n) => {\n  const dates = [];\n  const days = 42 - (leadingDays.length + monthDays.length);\n  for (let i = 1; i <= days; i++) {\n    dates.push({\n      date: new Date(year, month + 1, i),\n      month: 'next'\n    });\n  }\n  return dates;\n};\n\nexport const getDayNumber = (date: Date) =>\n  Math.ceil((Number(date) - Number(new Date(date.getFullYear(), 0, 0))) / 1000 / 60 / 60 / 24);\n\nexport const getWeekNumber = (date: Date) => {\n  const week1 = new Date(date.getFullYear(), 0, 4);\n  return 1 + Math.round(((date.getTime() - week1.getTime()) / 86400000 - 3 + ((week1.getDay() + 6) % 7)) / 7);\n};\n\nexport const getMonthDetails = (year: number, month: number, firstDayOfWeek: number) => {\n  const daysPrevMonth = getLeadingDays(year, month, firstDayOfWeek);\n  const daysThisMonth = getMonthDays(year, month);\n  const daysNextMonth = getTrailingDays(year, month, daysPrevMonth, daysThisMonth);\n  const days = [...daysPrevMonth, ...daysThisMonth, ...daysNextMonth];\n\n  const weeks: { weekNumber: number; days: { date: Date; month: string }[] }[] = [];\n\n  days.forEach((day, index) => {\n    if (index % 7 === 0 || weeks.length === 0) {\n      weeks.push({ weekNumber: -1, days: [] });\n    }\n\n    if ((index + 1) % 7 === 0) {\n      weeks[weeks.length - 1].weekNumber = getWeekNumber(day.date);\n    }\n\n    weeks[weeks.length - 1].days.push(day);\n  });\n\n  return [...weeks];\n};\n\nexport const isDateDisabled = (date: Date | null, min?: Date | null, max?: Date | null, dates?: (Date | Date[])[]) => {\n  if (!date) {\n    return false;\n  }\n  if (!min && !max && (!dates || !dates.length)) {\n    return false;\n  }\n  if (min && date < min) {\n    return true;\n  }\n  if (max && date > max) {\n    return true;\n  }\n\n  let disabled = false;\n  if (dates) {\n    for (const _date of dates) {\n      if (Array.isArray(_date)) {\n        if (isDateInRange(date, _date[0], _date[1])) {\n          disabled = true;\n          break;\n        }\n      }\n      if (_date instanceof Date) {\n        if (isSameDateAs(date, _date)) {\n          disabled = true;\n          break;\n        }\n      }\n    }\n  }\n\n  return disabled;\n};\n\nexport const isDateInRange = (date: Date | null, start: Date | null, end: Date | null) => {\n  return date && start && end && start <= date && date <= end;\n};\n\nexport const isYearInRange = (date: Date | null, start: Date | null, end: Date | null) => {\n  return date && start && end && start.getFullYear() <= date.getFullYear() && date.getFullYear() <= end.getFullYear();\n};\n\nexport const isDateBetweenMinMax = (date: Date | null, min: Date | null, max: Date | null) => {\n  if (date && min && max) {\n    return min <= date && date <= max;\n  }\n  if (date && min) {\n    return min <= date;\n  }\n  if (date && max) {\n    return date <= max;\n  }\n  return true;\n};\n\nexport const isDateSelected = (date: Date | null, start: Date | null, end: Date | null) => {\n  return date && ((start && isSameDateAs(start, date)) || (end && isSameDateAs(end, date)));\n};\n\nexport const isMonthSelected = (date: Date | null, start: Date | null, end: Date | null) => {\n  return date && ((start && isSameMonthAs(start, date)) || (end && isSameMonthAs(end, date)));\n};\n\nexport const isYearSelected = (date: Date | null, start: Date | null, end: Date | null) => {\n  return date && ((start && isSameYearAs(start, date)) || (end && isSameYearAs(end, date)));\n};\n\nexport const isEndDate = (date: Date | null, start: Date | null, end: Date | null) => {\n  return date && start && end && isSameDateAs(end, date) && start < end;\n};\n\nexport const isLastDayOfMonth = (date: Date) => {\n  const test = new Date(date.getTime());\n  const month = test.getMonth();\n\n  test.setDate(test.getDate() + 1);\n  return test.getMonth() !== month;\n};\n\nexport const equalDates = (a: Date | null, b: Date | null) => {\n  return (a && b && a.getTime() === b.getTime()) || (a === null && b === null);\n};\n\nexport const isSameDateAs = (date: Date, date2: Date) => {\n  return (\n    date.getDate() == date2.getDate() &&\n    date.getMonth() == date2.getMonth() &&\n    date.getFullYear() == date2.getFullYear()\n  );\n};\n\nexport const isSameMonthAs = (date: Date, date2: Date) => {\n  return date.getMonth() == date2.getMonth() && date.getFullYear() == date2.getFullYear();\n};\n\nexport const isSameYearAs = (date: Date, date2: Date) => {\n  return date.getFullYear() == date2.getFullYear();\n};\n\nexport const isStartDate = (date: Date | null, start: Date | null, end: Date | null) => {\n  return date && start && end && isSameDateAs(start, date) && start < end;\n};\n\nexport const isToday = (date: Date) => {\n  const today = new Date();\n  return (\n    date.getDate() == today.getDate() &&\n    date.getMonth() == today.getMonth() &&\n    date.getFullYear() == today.getFullYear()\n  );\n};\n\nexport const isThisMonth = (date: Date, index: number) => {\n  const today = new Date();\n  return index == today.getMonth() && date.getFullYear() == today.getFullYear();\n};\n\nexport const isThisYear = (year: number) => {\n  const today = new Date();\n  return year == today.getFullYear();\n};\n\nexport const isValidDate = (date: number | string | Date): boolean => {\n  if (date instanceof Date || typeof date === 'number' || typeof date === 'string') {\n    // Try to create a Date object from Date or timestamp or string\n    const dateObj = new Date(date);\n    return !isNaN(dateObj.getTime());\n  }\n\n  // If none of the above conditions are met, it's not a valid date\n  return false;\n};\n\nexport const tryDate = (value: string | number | Date, propName: string = 'date') => {\n  let _value;\n  try {\n    if (!isValidDate(value)) {\n      throw value;\n    }\n    _value = new Date(value);\n  } catch (err) {\n    console.warn(`Invalid ${propName}`, err);\n    _value = new Date();\n    _value.setHours(0, 0, 0, 0);\n  }\n  return _value;\n};\n\nexport const isDateInRangeDisabled = (\n  startDate?: Date | null,\n  endDate?: Date | null,\n  dates?: (Date | Date[])[],\n  dateFilter?: DateFilterType\n) => {\n  if ((!dates || !dates.length) && !dateFilter) {\n    return false;\n  }\n  if (startDate && endDate) {\n    const date = new Date(startDate);\n    let disabled = false;\n\n    while (date <= endDate) {\n      disabled = isDateDisabled(date, null, null, dates) || (dateFilter ? !dateFilter(date) : false);\n      if (disabled) {\n        break;\n      }\n      date.setDate(date.getDate() + 1);\n    }\n    return disabled;\n  }\n  return false;\n};\n\nexport const getUtcTime = (value: Date | null) => {\n  const hours = value?.getUTCHours() ?? 0;\n  const minutes = value?.getUTCMinutes() ?? 0;\n  const seconds = value?.getUTCSeconds() ?? 0;\n  const ms = value?.getUTCMilliseconds() ?? 0;\n  const offset = value?.getTimezoneOffset() ?? 0;\n  const utcTimeObj: Record<string, number> = { hours, minutes, seconds, ms, offset };\n\n  Object.entries(utcTimeObj).forEach(([key, value]) => {\n    if (value && Number.isNaN(value)) {\n      utcTimeObj[key] = 0;\n    }\n  });\n  Object.freeze(utcTimeObj);\n  return utcTimeObj;\n};\n\nexport const setUtcTime = (value: Date | null, time: Record<string, number>, withTime: boolean) => {\n  if (!value || Number.isNaN(value?.getTime() ?? NaN) || !withTime) {\n    return value;\n  }\n  const date = new Date(value);\n  date.setUTCHours(time['hours'], time['minutes'], time['seconds'], time['ms']);\n  return new Date(date);\n};\n\n// export const stringToDateConvert = (date: string, locales: string) => {\n//   const formatter = new Intl.DateTimeFormat('fr-FR');\n//   const parts = formatter.formatToParts();\n//   console.log(date, parts, formatter.format(), formatter.resolvedOptions(), formatter.format());\n// };\n\n// declare namespace Intl {\n//   type DateTimeFormatPartTypes = \"day\" | \"dayPeriod\" | \"era\" | \"fractionalSecond\" | \"hour\" | \"literal\" | \"minute\" | \"month\" | \"second\" | \"timeZoneName\" | \"weekday\" | \"year\";\n//\n//   interface DateTimeFormatPart {\n//     type: DateTimeFormatPartTypes;\n//     value: string;\n//   }\n//\n//   interface DateTimeFormat {\n//     formatToParts(date?: Date | number): DateTimeFormatPart[];\n//   }\n// }\n\ntype DateTimeFormatPartTypes =\n  | 'day'\n  | 'dayPeriod'\n  | 'era'\n  | 'fractionalSecond'\n  | 'hour'\n  | 'literal'\n  | 'minute'\n  | 'month'\n  | 'second'\n  | 'timeZoneName'\n  | 'weekday'\n  | 'year';\n\ntype DateFormatPartTypes = 'day' | 'month' | 'year' | 'literal';\n\n// type DateParts = {\n//   [key in DateTimeFormatPartTypes]?: string;\n// };\n\n// type DateParts = {\n//   year: number, month: number, day: number, literal: string\n// };\n//\n// export const cvtDate = (dateAsString: string, locale = 'pl-PL') => {\n//   const dateString = dateAsString ?? new Date().toLocaleDateString(locale);\n//   const dateSplit = dateString.split(/[.\\-\\/\\s\\D]/gi).filter(item => !!item.length);\n//   const formatter = new Intl.DateTimeFormat(locale);\n//   const parts = formatter.formatToParts().filter(part => ['year', 'month', 'day'].includes(part.type));\n//   const dateShim = {\n//     day: undefined, month: undefined, year: undefined\n//   };\n//   parts.forEach((part, index) => {\n//     const { type, value } = { ...part };\n//     // @ts-ignore\n//     dateShim[type] = dateSplit[index];\n//   });\n//\n//   return dateShim;\n//\n//   // const dateParts: DateParts = {\n//   //   year: 0,\n//   //   month: 0,\n//   //   day: 0,\n//   //   literal: '/'\n//   // };\n//   //\n//   // const literal = parts.find(part => part.type === 'literal')?.value ?? '/';\n//   // // const year = parseInt(parts.find(part => part.type === 'year')?.value ?? '0');\n//   // // const month = parseInt(parts.find(part => part.type === 'year')?.value ?? '0');\n//   // // const day = parseInt(parts.find(part => part.type === 'year')?.value ?? '0');\n//   //\n//   // const dateArray = dateString.split(literal);\n//   //\n//   // parts.forEach(part => {\n//   //   const {type, value} = {...part};\n//   //   if (type === 'day') {\n//   //\n//   //   }\n//   // })\n//   //\n//   // parts.filter(part => part.type in dateParts).map(part => {\n//   //   const {type, value} = {...part};\n//   //   // @ts-ignore\n//   //   dateParts[type] = parseInt(part.value);\n//   //   //\n//   //   // switch (type) {\n//   //   //   case 'day':\n//   //   //     day = parseInt(value);\n//   //   //     break;\n//   //   //   case 'month':\n//   //   //     month = parseInt(value);\n//   //   //     break;\n//   //   //   case 'year':\n//   //   //     year = parseInt(value);\n//   //   //     break;\n//   //   // }\n//   // })\n//   // // const { year, month, day } = {...dateParts}\n//   // return new Date(year, month - 1, day);\n// };\n//\n// // function getDateX(dateAsString) {\n// //   const [day, month, year] = dateAsString.split('/');\n// //   return new Date(year, month - 1, day);\n// // }\n//\n// // getDate('12/07/1997');\n","import { inject, Injectable, KeyValueDiffer, KeyValueDiffers } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { isValidDate } from './calendar.utils';\n\nexport type DateFilterType = (date: Date) => boolean;\nexport type DayFormatType = 'numeric' | '2-digit' | ((date: Date) => string | number);\nexport type WeekdayFormatType = number | 'long' | 'narrow' | 'short' | ((date: Date) => string | number);\nexport type SelectionType = 'day' | 'week' | 'month' | 'year';\nexport type DaysOfWeek = 0 | 1 | 2 | 3 | 4 | 5 | 6;\nexport type MonthDetails = { weekNumber: number; days: { date: Date; month: string }[] }[];\n\nexport interface ICalendarState {\n  [key: string]: any;\n\n  calendarDate?: Date | null;\n  hoverDate?: Date | null;\n  startDate?: Date | null;\n  endDate?: Date | null;\n  maxDate?: Date | null;\n  minDate?: Date | null;\n  disabledDates?: (Date | Date[])[];\n  range?: boolean;\n  view?: string;\n  locale?: string;\n  dateFilter?: DateFilterType;\n  dayFormat?: DayFormatType;\n  weekdayFormat?: WeekdayFormatType;\n  navYearFirst?: boolean;\n  showAdjacentDays?: boolean;\n  selectAdjacentDays?: boolean;\n  selectionType?: SelectionType;\n  showWeekNumber?: boolean;\n  weekNumbersLabel?: string;\n  firstDayOfWeek?: DaysOfWeek;\n}\n\n@Injectable()\nexport class CalendarService {\n  readonly #keyValueDiffers = inject(KeyValueDiffers);\n  readonly #differ!: KeyValueDiffer<any, any>;\n\n  constructor() {\n    this.#differ = this.#keyValueDiffers.find(this.calendarStateObject).create();\n  }\n\n  public calendarStateObject: ICalendarState = {\n    calendarDate: new Date(),\n    hoverDate: null,\n    startDate: null,\n    endDate: null,\n    maxDate: null,\n    minDate: null,\n    disabledDates: [],\n    range: false,\n    view: 'days',\n    locale: 'default',\n    dateFilter: undefined,\n    weekdayFormat: 'short',\n    dayFormat: 'numeric',\n    navYearFirst: false,\n    showAdjacentDays: true,\n    selectAdjacentDays: false,\n    selectionType: 'day',\n    showWeekNumber: false,\n    weekNumbersLabel: undefined,\n    firstDayOfWeek: 1\n  };\n\n  readonly #calendarState = new BehaviorSubject<ICalendarState>(this.calendarStateObject);\n  readonly calendarState$ = this.#calendarState.asObservable();\n\n  update(state: ICalendarState): void {\n    const keys = Object.keys(state);\n    for (const key of keys) {\n      const entry = this.calendarStateObject[key];\n      if (entry === state[key]) {\n        continue;\n      }\n      if (isValidDate(state[key]) && entry ? entry.getTime() === state[key]?.getTime() : false) {\n        continue;\n      }\n      this.calendarStateObject[key] = state[key];\n    }\n\n    if (this.#differ) {\n      const changes = this.#differ.diff(this.calendarStateObject);\n      if (changes) {\n        const newState: ICalendarState = { ...this.calendarStateObject };\n        changes.forEachChangedItem((item) => {\n          // console.log('changes', item.key, item);\n          newState[item.key] = item.currentValue;\n        });\n        this.#calendarState.next(newState);\n      }\n    }\n  }\n}\n","import { Component, computed, DestroyRef, inject, input, numberAttribute, output, signal } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { ButtonDirective } from '../../button';\nimport { CalendarService, SelectionType } from '../calendar.service';\n\ninterface INavigationClick {\n  direction: 'prev' | 'next';\n  years: boolean;\n}\n\n@Component({\n    selector: 'c-calendar-navigation',\n    templateUrl: './calendar-navigation.component.html',\n    styleUrls: ['./calendar-navigation.component.scss'],\n    imports: [ButtonDirective],\n    host: {\n        class: 'calendar-nav'\n    }\n})\nexport class CalendarNavigationComponent {\n  readonly #destroyRef = inject(DestroyRef);\n  readonly #calendarService = inject(CalendarService);\n\n  constructor() {\n    this.calendarStateSubscribe();\n  }\n\n  readonly pageIndex = input(0, { transform: numberAttribute });\n  readonly addMonths = computed(() => {\n    const view = this.view();\n    const pageIndex = this.pageIndex();\n    return pageIndex * (view === 'years' ? 144 : view === 'months' ? 12 : 1);\n  });\n  readonly navigation = input(true);\n  readonly maxDate = signal<Date | null>(null);\n  readonly minDate = signal<Date | null>(null);\n  readonly calendarDate = signal(new Date());\n  readonly navYearFirst = signal(false);\n  readonly locale = signal('default');\n  readonly view = signal<'days' | 'months' | 'years'>('days');\n  readonly selectionType = signal<SelectionType>('day');\n\n  readonly ariaNextMonthLabel = input<string>('Next month');\n  readonly ariaNextYearLabel = input<string>('Next year');\n  readonly ariaPrevMonthLabel = input<string>('Previous month');\n  readonly ariaPrevYearLabel = input<string>('Previous year');\n\n  readonly navigationClick = output<INavigationClick>();\n\n  readonly date = computed(() => {\n    return new Date(this.calendarDate().getFullYear(), this.calendarDate().getMonth() + this.addMonths());\n  });\n  readonly disableNextMonth = computed(() => {\n    const maxDate = this.maxDate();\n    return maxDate ? this.date() >= maxDate : false;\n  });\n  readonly disablePrevMonth = computed(() => {\n    const minDate = this.minDate();\n    return minDate ? this.date() <= minDate : false;\n  });\n  readonly disableNextYear = computed(() => {\n    const maxDate = this.maxDate();\n    return maxDate ? this.date().getFullYear() + 1 >= maxDate.getFullYear() : false;\n  });\n  readonly disablePrevYear = computed(() => {\n    const minDate = this.minDate();\n    return minDate ? this.date().getFullYear() - 1 <= minDate.getFullYear() : false;\n  });\n\n  calendarStateSubscribe(): void {\n    this.#calendarService.calendarState$.pipe(takeUntilDestroyed(this.#destroyRef)).subscribe((state) => {\n      const keys = Object.keys(state);\n      for (const key of keys) {\n        if (key in this) {\n          // @ts-ignore\n          typeof this[key] === 'function' ? this[key].set(state[key]) : (this[key] = state[key]);\n          // this[key] = state[key];\n        }\n      }\n    });\n  }\n\n  setView(view: 'days' | 'months' | 'years') {\n    this.view.set(view);\n    this.#calendarService.update({ view: view });\n  }\n\n  handleNavigationClick(direction: 'prev' | 'next', years = false) {\n    this.navigationClick.emit({ direction, years: years });\n  }\n\n  handleNavigationKeyUp($event: KeyboardEvent, direction: 'prev' | 'next', years?: boolean) {\n    if (['Space'].includes($event.code)) {\n      $event.preventDefault();\n      this.handleNavigationClick(direction, years);\n    }\n  }\n}\n","@if (navigation()) {\n  <div class=\"calendar-nav-prev\">\n    <button\n      (click)=\"handleNavigationClick('prev', true)\"\n      (keyup)=\"handleNavigationKeyUp($event, 'prev', true)\"\n      cButton\n      [disabled]=\"disablePrevYear()\"\n      color=\"transparent\"\n      size=\"sm\"\n      tabindex=\"0\"\n      [attr.aria-label]=\"ariaPrevYearLabel()\"\n    >\n      <span class=\"calendar-nav-icon calendar-nav-icon-double-prev\"></span>\n    </button>\n    @if (view() === 'days') {\n      <button\n        (click)=\"handleNavigationClick('prev')\"\n        (keyup)=\"handleNavigationKeyUp($event, 'prev')\"\n        cButton\n        [disabled]=\"disablePrevMonth()\"\n        color=\"transparent\"\n        size=\"sm\"\n        tabindex=\"0\"\n        [attr.aria-label]=\"ariaPrevMonthLabel()\"\n      >\n        <span class=\"calendar-nav-icon calendar-nav-icon-prev\"></span>\n      </button>\n    }\n  </div>\n}\n<div [style]=\"navYearFirst() ? { display: 'flex', justifyContent: 'center' } : {}\" aria-live=\"polite\" class=\"calendar-nav-date\">\n  @if (view() === 'days') {\n    <button\n      (click)=\"setView('months')\"\n      cButton\n      color=\"transparent\"\n      size=\"sm\"\n      tabindex=\"0\"\n    >\n      {{ date().toLocaleDateString(locale(), { month: 'long' }) }}\n    </button>\n  }\n  <button\n    (click)=\"setView('years')\"\n    [style]=\"navYearFirst() ? { order: '-1' } : {}\"\n    cButton\n    color=\"transparent\"\n    size=\"sm\"\n    tabindex=\"0\"\n  >\n    {{ date().toLocaleDateString(locale(), { year: 'numeric' }) }}\n  </button>\n</div>\n@if (navigation()) {\n  <div class=\"calendar-nav-next\">\n    @if (view() === 'days') {\n      <button\n        (click)=\"handleNavigationClick('next')\"\n        (keyup)=\"handleNavigationKeyUp($event, 'next')\"\n        [disabled]=\"disableNextMonth()\"\n        cButton\n        color=\"transparent\"\n        size=\"sm\"\n        tabindex=\"0\"\n        [attr.aria-label]=\"ariaNextMonthLabel()\"\n      >\n        <span class=\"calendar-nav-icon calendar-nav-icon-next\"></span>\n      </button>\n    }\n    <button\n      (click)=\"handleNavigationClick('next', true)\"\n      (keyup)=\"handleNavigationKeyUp($event, 'next', true)\"\n      cButton\n      [disabled]=\"disableNextYear()\"\n      color=\"transparent\"\n      size=\"sm\"\n      tabindex=\"0\"\n      [attr.aria-label]=\"ariaNextYearLabel()\"\n    >\n      <span class=\"calendar-nav-icon calendar-nav-icon-double-next\"></span>\n    </button>\n  </div>\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { WeekdayFormatType } from '../calendar.service';\n\n@Pipe({\n  name: 'calendarWeekday',\n  standalone: true\n})\nexport class CalendarWeekdayPipe implements PipeTransform {\n\n  transform(date: Date, weekdayFormat: WeekdayFormatType = 'short', locale: string = 'default'): (string | number) {\n    return typeof weekdayFormat === 'function'\n      ? weekdayFormat(date)\n      : typeof weekdayFormat === 'string'\n        ? date.toLocaleDateString(locale, { weekday: weekdayFormat })\n        : date.toLocaleDateString(locale, { weekday: 'long' }).slice(0, weekdayFormat);\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { isThisYear } from '../calendar.utils';\n\n@Pipe({\n  name: 'calendarClassYear',\n  standalone: true\n})\nexport class CalendarClassYearPipe implements PipeTransform {\n\n  transform(year: number, args?: any): any {\n    return {\n      'calendar-cell': true,\n      year: true,\n      today: isThisYear(year)\n    };\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { isThisMonth } from '../calendar.utils';\n\n@Pipe({\n  name: 'calendarClassMonth',\n  standalone: true\n})\nexport class CalendarClassMonthPipe implements PipeTransform {\n  transform(calendarDate: string | number | Date, monthIndex: number): any {\n    const year = new Date(calendarDate).getFullYear();\n    const date = new Date(year, monthIndex, 1);\n\n    return {\n      'calendar-cell': true,\n      month: true,\n      today: isThisMonth(date, monthIndex)\n    };\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DayFormatType } from '../calendar.service';\n\n@Pipe({\n  name: 'calendarDay',\n  standalone: true\n})\nexport class CalendarDayPipe implements PipeTransform {\n\n  transform(date: Date, dayFormat: DayFormatType = 'numeric', locale: string = 'default'): (string | number) {\n    return typeof dayFormat === 'function' ?\n      dayFormat(date) :\n      date.toLocaleDateString(locale, { day: dayFormat });\n  }\n}\n","import { computed, DestroyRef, Directive, ElementRef, inject, input, signal } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FocusableOption, FocusMonitor, FocusOrigin } from '@angular/cdk/a11y';\nimport { tap } from 'rxjs/operators';\nimport {\n  isDateDisabled,\n  isDateInRange,\n  isDateInRangeDisabled,\n  isDateSelected,\n  isEndDate,\n  isMonthSelected,\n  isStartDate,\n  isYearInRange,\n  isYearSelected\n} from '../calendar.utils';\nimport { CalendarService, ICalendarState } from '../calendar.service';\n\n@Directive({\n  selector: '[cCalendarDay]',\n  standalone: true,\n  exportAs: 'cCalendarDay',\n  host: { '[class]': 'hostClasses()', '[attr.aria-selected]': 'ariaSelected()' }\n})\nexport class CalendarDayDirective implements FocusableOption {\n  readonly #destroyRef = inject(DestroyRef);\n  readonly #calendarService = inject(CalendarService);\n  readonly elementRef = inject(ElementRef);\n  readonly focusMonitor = inject(FocusMonitor);\n\n  readonly #calendarState = signal<ICalendarState>({ ...this.#calendarService.calendarStateObject });\n\n  constructor() {\n    this.#calendarService.calendarState$\n      .pipe(\n        tap((state) => {\n          this.#calendarState.set(state);\n        }),\n        takeUntilDestroyed(this.#destroyRef)\n      )\n      .subscribe();\n  }\n\n  readonly date = input<Date>();\n  readonly month = input('current');\n  disabled = false;\n  // @Input() calendarDate = new Date();\n\n  readonly #selectEndDate = computed(() => {\n    const state = this.#calendarState();\n    return <boolean>(state.range && !!state.startDate && !state.endDate);\n  });\n\n  readonly disabled$ = computed(() => {\n    const state = { ...this.#calendarState() };\n\n    const date = this.date();\n    if (!date) {\n      return true;\n    }\n    const dateYear = date.getFullYear();\n\n    switch (state.view) {\n      case 'months': {\n        const dateMonth = dateYear * 100 + date.getMonth();\n        const minDate = state.minDate ? state.minDate.getFullYear() * 100 + state.minDate?.getMonth() : undefined;\n        const maxDate = state.maxDate ? state.maxDate.getFullYear() * 100 + state.maxDate?.getMonth() : undefined;\n        this.disabled = (minDate ? dateMonth < minDate : false) || (maxDate ? dateMonth > maxDate : false);\n        break;\n      }\n      case 'years': {\n        const minYear = state.minDate?.getFullYear();\n        const maxYear = state.maxDate?.getFullYear();\n        this.disabled = (minYear ? dateYear < minYear : false) || (maxYear ? dateYear > maxYear : false);\n        break;\n      }\n    }\n    return this.disabled;\n  });\n\n  readonly hostClasses = computed(() => {\n    const date = this.date();\n    if (!date) {\n      return;\n    }\n\n    const selectEndDate = this.#selectEndDate();\n    const month = this.month();\n    const state = this.#calendarState();\n    state.startDate = state.startDate ?? null;\n    state.hoverDate = state.hoverDate ?? null;\n    state.endDate = state.endDate ?? null;\n\n    const start = isStartDate(date, state.startDate, state.endDate);\n    const end = isEndDate(date, state.startDate, state.endDate);\n\n    let selected: boolean = false;\n    let clickable: boolean = false;\n    let rangeHover: boolean = false;\n    let inRange: boolean = false;\n    let disabledRange: boolean = false;\n    let disabledDate: boolean = false;\n    let disabledByFilter: boolean = false;\n\n    switch (state.view) {\n      case 'months':\n        if (state.selectionType === 'month') {\n          selected = !!isMonthSelected(date, state.startDate, state.endDate);\n          inRange = !!isDateInRange(date, state.startDate, state.endDate);\n          rangeHover = selectEndDate && !!isDateInRange(date, state.startDate, state.hoverDate);\n        }\n        break;\n      case 'years':\n        if (state.selectionType === 'year') {\n          selected = !!isYearSelected(date, state.startDate, state.endDate);\n          inRange = !!isDateInRange(date, state.startDate, state.endDate);\n          rangeHover = selectEndDate && !!isYearInRange(date, state.startDate, state.hoverDate);\n        }\n        break;\n      default:\n        selected = state.selectionType === 'day' && !!isDateSelected(date, state.startDate, state.endDate);\n        clickable = month !== 'current' && !!state.selectAdjacentDays;\n        rangeHover =\n          state.selectionType === 'day' &&\n          month === 'current' &&\n          selectEndDate &&\n          !!isDateInRange(date, state.startDate, state.hoverDate);\n        inRange = month === 'current' && (isDateInRange(date, state.startDate, state.endDate) || !!start || !!end);\n        disabledRange = isDateInRangeDisabled(state.startDate, date, state.disabledDates, state.dateFilter);\n        disabledDate = isDateDisabled(date, state.minDate, state.maxDate, state.disabledDates);\n        disabledByFilter = typeof state.dateFilter === 'function' && date ? !state.dateFilter(date) : false;\n        this.disabled = disabledDate || disabledByFilter;\n    }\n\n    return {\n      'range-hover': rangeHover && (!disabledRange || !disabledByFilter),\n      selected: selected,\n      range: inRange,\n      start: !!start,\n      end: !!end,\n      disabled: this.disabled,\n      clickable: clickable\n    } as Record<string, boolean>;\n  });\n\n  readonly ariaSelected = computed(() => {\n    return this.hostClasses()?.['selected'] ? true : null;\n  });\n\n  focus(origin?: FocusOrigin): void {\n    this.focusMonitor.focusVia(this.elementRef.nativeElement, origin ?? 'keyboard');\n  }\n\n  getLabel(): string {\n    return this.date()?.toLocaleDateString(this.#calendarState().locale) ?? '';\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'calendarDayTitle',\n  standalone: true\n})\nexport class CalendarDayTitlePipe implements PipeTransform {\n\n  transform(date: Date, locale: string = 'default'): string {\n    return date.toLocaleDateString(locale);\n  }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { isDateDisabled, isLastDayOfMonth, isToday } from '../calendar.utils';\n\n@Pipe({\n  name: 'calendarClassDay',\n  standalone: true\n})\nexport class CalendarClassDayPipe implements PipeTransform {\n\n  transform(dateObj: { date: Date; month: string; }, datesConfig?: { minDate: any; maxDate: any; disabledDates: any; dateFilter: any; }): any {\n    const { date, month } = { ...dateObj };\n    const { minDate, maxDate, disabledDates, dateFilter } = { ...datesConfig };\n    // @ts-ignore\n    const disabled = isDateDisabled(date, minDate, maxDate, disabledDates) || (dateFilter ? !dateFilter(date) : false);\n\n    return {\n      'calendar-cell': true,\n      today: isToday(date),\n      disabled: disabled,\n      next: month === 'next',\n      previous: month === 'previous',\n      current: month === 'current',\n      last: isLastDayOfMonth(date)\n    };\n  }\n}\n","import { DestroyRef, Directive, ElementRef, HostBinding, inject, Input, signal } from '@angular/core';\nimport { FocusableOption, FocusMonitor, FocusOrigin } from '@angular/cdk/a11y';\nimport { CalendarService, DateFilterType, SelectionType } from '../calendar.service';\nimport { convertToDateObject, isDateDisabled, isDateInRange, isDateSelected } from '../calendar.utils';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { distinctUntilChanged } from 'rxjs/operators';\n\n@Directive({\n  selector: '[cCalendarRow]',\n  standalone: true,\n  exportAs: 'cCalendarRow',\n  host: { '[attr.aria-selected]': 'ariaSelected', '[attr.tabindex]': 'tabindex()' }\n})\nexport class CalendarRowDirective implements FocusableOption {\n  #destroyRef = inject(DestroyRef);\n  #calendarService = inject(CalendarService);\n  elementRef = inject(ElementRef);\n  focusMonitor = inject(FocusMonitor);\n\n  constructor() {\n    this.#calendarService.calendarState$\n      .pipe(distinctUntilChanged(), takeUntilDestroyed(this.#destroyRef))\n      .subscribe((state) => {\n        const {\n          startDate = this.startDate,\n          endDate = this.endDate,\n          hoverDate = this.hoverDate,\n          maxDate = this.maxDate,\n          minDate = this.minDate,\n          range = this.range,\n          disabledDates = this.disabledDates,\n          dateFilter = this.dateFilter,\n          selectionType = this.selectionType,\n          calendarDate = this.calendarDate,\n          locale = this.locale\n        } = { ...state };\n        this.startDate = startDate;\n        this.endDate = endDate;\n        this.hoverDate = hoverDate;\n        this.maxDate = maxDate;\n        this.minDate = minDate;\n        this.range = range;\n        this.disabledDates = disabledDates;\n        this.dateFilter = dateFilter;\n        this.selectionType = selectionType;\n        this.calendarDate = calendarDate ?? new Date();\n        this.locale = locale ?? 'default';\n\n        // this.#tabindex.set(this.selectionType === 'week' && this.current && !this.disabled ? 0 : -1);\n      });\n  }\n\n  @Input({ alias: 'cCalendarRow', required: true })\n  set week(value: { weekNumber: number; days: { date: Date; month: string }[] }) {\n    this.current = value.days.some((day) => day.month === 'current');\n    this.tabindex.set(this.selectionType === 'week' && this.current && !this.disabled ? 0 : -1);\n    this.#week = value;\n  }\n\n  get week() {\n    return this.#week;\n  }\n\n  #week: any;\n\n  public date: Date | null = null;\n  private startDate: Date | null = null;\n  private endDate: Date | null = null;\n  private hoverDate: Date | null = null;\n  private maxDate: Date | null = null;\n  private minDate: Date | null = null;\n  private range: boolean = false;\n  private selectionType: SelectionType = 'week';\n  private disabledDates!: (Date | Date[])[];\n  private dateFilter!: DateFilterType;\n  private calendarDate: Date = new Date();\n  private locale: string = 'default';\n  disabled!: boolean;\n  current!: boolean;\n\n  readonly tabindex = signal(-1);\n\n  get selectEndDate(): boolean {\n    return this.range && !!this.startDate && !this.endDate;\n  }\n\n  @HostBinding('class')\n  get hostClasses(): any {\n    if (!this.week) {\n      return {\n        'calendar-row': true\n      };\n    }\n\n    const week = this.week;\n    const calendarDate = this.calendarDate;\n    const selectionType = this.selectionType;\n\n    this.current = week.days.some((day) => day.month === 'current');\n\n    if (this.selectionType === 'week') {\n      this.date = convertToDateObject(\n        week.weekNumber === 0 ? `${calendarDate.getFullYear()}W53` : `${calendarDate.getFullYear()}W${week.weekNumber}`,\n        'week'\n      );\n\n      const inRange = isDateInRange(this.date, this.startDate, this.endDate);\n      const rangeHover =\n        this.hoverDate &&\n        (this.selectEndDate\n          ? isDateInRange(this.date, this.startDate, this.hoverDate)\n          : isDateInRange(this.date, this.hoverDate, this.endDate));\n      const selected = isDateSelected(this.date, this.startDate, this.endDate);\n      const disabledDate = isDateDisabled(this.date, this.minDate, this.maxDate, this.disabledDates);\n      const disabledByFilter =\n        Object.prototype.toString.call(this.dateFilter) === '[object Function]' && this.date\n          ? !this.dateFilter(this.date)\n          : false;\n\n      this.disabled = disabledDate || disabledByFilter;\n\n      return {\n        'calendar-row': true,\n        disabled: this.disabled,\n        range: inRange,\n        'range-hover': rangeHover,\n        selected: selected,\n        current: this.current\n      };\n    } else {\n      return {\n        'calendar-row': true,\n        current: this.current\n      };\n    }\n  }\n\n  get ariaSelected() {\n    return this.hostClasses?.['selected'] ? true : null;\n  }\n\n  focus(origin?: FocusOrigin): void {\n    this.focusMonitor.focusVia(this.elementRef.nativeElement, origin ?? 'keyboard');\n  }\n\n  getLabel(): string {\n    return this.date?.toLocaleDateString(this.locale) ?? '';\n  }\n}\n","import {\n  Component,\n  computed,\n  DestroyRef,\n  effect,\n  inject,\n  input,\n  numberAttribute,\n  QueryList,\n  signal,\n  ViewChildren\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { take } from 'rxjs/operators';\n\nimport {\n  convertToDateObject,\n  createGroupsInArray,\n  equalDates,\n  getMonthDetails,\n  getMonthsNames,\n  getYears,\n  isDateDisabled,\n  isDateInRangeDisabled\n} from '../calendar.utils';\n\nimport { CalendarService, DateFilterType, DayFormatType, MonthDetails, SelectionType } from '../calendar.service';\nimport { CalendarWeekdayPipe } from './calendar-weekday.pipe';\nimport { CalendarClassYearPipe } from './calendar-class-year.pipe';\nimport { CalendarClassMonthPipe } from './calendar-class-month.pipe';\nimport { CalendarDayPipe } from './calendar-day.pipe';\nimport { CalendarDayDirective } from './calendar-day.directive';\nimport { CalendarDayTitlePipe } from './calendar-day-title.pipe';\nimport { CalendarClassDayPipe } from './calendar-class-day.pipe';\nimport { CalendarRowDirective } from './calendar-row.directive';\n\n@Component({\n  selector: 'c-calendar-month',\n  templateUrl: './calendar-month.component.html',\n  styleUrls: ['./calendar-month.component.scss'],\n  exportAs: 'cCalendarMonth',\n  imports: [\n    CalendarDayDirective,\n    CalendarDayPipe,\n    CalendarDayTitlePipe,\n    CalendarRowDirective,\n    CalendarClassDayPipe,\n    CalendarClassMonthPipe,\n    CalendarClassYearPipe,\n    CalendarWeekdayPipe\n  ]\n})\nexport class CalendarMonthComponent {\n  #destroyRef = inject(DestroyRef);\n  #calendarService = inject(CalendarService);\n\n  constructor() {\n    this.calendarStateSubscribe();\n  }\n\n  readonly pageIndex = input(0, { transform: numberAttribute });\n\n  readonly addMonths = computed(() => {\n    const view = this.view();\n    const pageIndex = this.pageIndex();\n    return pageIndex * (view === 'years' ? 144 : view === 'months' ? 12 : 1);\n  });\n\n  /**\n   * Initial selected date.\n   * @type  (Date | null)\n   */\n  readonly startDate = signal<Date | null>(null, { equal: equalDates });\n\n  /**\n   * Initial selected to date (range).\n   * @type  Date | null\n   */\n  readonly endDate = signal<Date | null>(null, { equal: equalDates });\n\n  readonly datesEffect = effect(() => {\n    const startDate = this.startDate();\n    const endDate = startDate && this.range() ? this.endDate() : null;\n    this.#calendarService.update({ startDate: startDate, endDate: endDate });\n  });\n\n  /**\n   * Specify the list of dates that cannot be selected.\n   * @type  Date[] | Date[][]\n   */\n  readonly disabledDates = signal<(Date[] | Date)[]>([]);\n\n  /**\n   * Sets the day of start week.\n   * - 0 - Sunday,\n   * - 1 - Monday,\n   * - 2 - Tuesday,\n   * - 3 - Wednesday,\n   * - 4 - Thursday,\n   * - 5 - Friday,\n   * - 6 - Saturday,\n   */\n  readonly firstDayOfWeek = signal(1);\n\n  /**\n   * Sets the default locale for components. If not set, it is inherited from the browser.\n   * @default 'default'\n   */\n  readonly locale = signal('default');\n\n  /**\n   * Allow range selection.\n   * @type boolean\n   * @default false\n   */\n  readonly range = signal(false);\n\n  /**\n   * Set length or format of day name.\n   * @type number | 'long' | 'narrow' | 'short'\n   * @default 'short'\n   */\n  readonly weekdayFormat = signal<number | 'long' | 'narrow' | 'short'>('short');\n\n  /**\n   * Set calendar view.\n   * @type 'days' | 'months' | 'years'\n   * @default 'days'\n   */\n  readonly view = signal<'days' | 'months' | 'years'>('days');\n\n  /**\n   * Max selectable date.\n   */\n  readonly maxDate = signal<Date | null>(null, { equal: equalDates });\n\n  /**\n   * Min selectable date.\n   */\n  readonly minDate = signal<Date | null>(null, { equal: equalDates });\n\n  readonly listOfMonths = computed<{ year: number; month: string }[][]>(() => {\n    return createGroupsInArray(getMonthsNames(this.locale(), this.date().getFullYear()), 4);\n  });\n\n  readonly listOfYears = computed<number[][]>(() => createGroupsInArray(getYears(this.date().getFullYear()), 4));\n\n  /**\n   * Default date of the component\n   * @type Date\n   */\n\n  readonly calendarDate = signal<Date>(new Date(), { equal: equalDates });\n\n  readonly date = computed(\n    () => {\n      const date = this.calendarDate();\n      return new Date(date.getFullYear(), date.getMonth() + this.addMonths(), 1, 0, 0, 0, 0);\n    },\n    { equal: (a: Date, b: Date) => a.getTime() === b.getTime() }\n  );\n\n  readonly calendarDateEffect = effect(() => {\n    this.#calendarService.update({ calendarDate: this.calendarDate() });\n  });\n\n  // readonly calendarDays = viewChildren(CalendarDayDirective);\n  // readonly calendarRows = viewChildren(CalendarRowDirective);\n  //\n  // readonly calendarDays$ = toObservable(this.calendarDays);\n  // readonly calendarRows$ = toObservable(this.calendarRows);\n\n  @ViewChildren(CalendarDayDirective) calendarDays!: QueryList<CalendarDayDirective>;\n  @ViewChildren(CalendarRowDirective) calendarRows!: QueryList<CalendarRowDirective>;\n\n  readonly dateFilter = signal<DateFilterType | undefined>(undefined);\n  readonly dayFormat = signal<DayFormatType>('numeric');\n  readonly selectAdjacentDays = signal<boolean>(false);\n  readonly showAdjacentDays = signal<boolean>(true);\n  readonly selectionType = signal<SelectionType>('day');\n  readonly showWeekNumber = signal(false);\n  readonly weekNumbersLabel = signal<string>('');\n\n  readonly monthDetails = computed<MonthDetails>(() => {\n    const date = this.date();\n    return getMonthDetails(date.getFullYear(), date.getMonth(), this.firstDayOfWeek());\n  });\n\n  readonly weekDays = computed(() => {\n    const monthDetails = this.monthDetails();\n    return monthDetails[0].days;\n  });\n\n  yearNumber(year: any) {\n    return new Date(year, 0).toLocaleDateString(this.locale(), { year: 'numeric' });\n  }\n\n  isDateDisabled(date: Date) {\n    const selectionType = this.selectionType();\n    const disabledDates = this.disabledDates();\n    const dateFilterFn = this.dateFilter();\n    const maxDate = this.maxDate();\n    const minDate = this.minDate();\n    if (selectionType === 'year') {\n      const min = minDate ? new Date(minDate.getFullYear(), 0, 1, 0, 0, 0, 0) : null;\n      const max = maxDate ? new Date(maxDate.getFullYear(), 11, 31, 0, 0, 0, 0) : null;\n      return isDateDisabled(date, min, max, disabledDates) || (dateFilterFn ? !dateFilterFn(date) : false);\n    }\n    if (selectionType === 'month') {\n      const min = minDate ? new Date(minDate.getFullYear(), minDate.getMonth(), 1, 0, 0, 0, 0) : null;\n      const max = maxDate ? new Date(maxDate.getFullYear(), maxDate.getMonth() + 1, 1, 0, 0, -1, 0) : null;\n      return isDateDisabled(date, min, max, disabledDates) || (dateFilterFn ? !dateFilterFn(date) : false);\n    }\n    return isDateDisabled(date, minDate, maxDate, disabledDates) || (dateFilterFn ? !dateFilterFn(date) : false);\n  }\n\n  calendarCellTitle(date: Date) {\n    return date.toLocaleDateString(this.locale());\n  }\n\n  handleCellMouseEnter(hoverDate: Date | undefined): void {\n    if (!hoverDate) {\n      return;\n    }\n    const selectionType = this.selectionType();\n    const updateHoverValue =\n      (['day', 'week'].includes(selectionType) && this.view() === 'days') ||\n      (['month'].includes(selectionType) && this.view() === 'months') ||\n      (['year'].includes(selectionType) && this.view() === 'years');\n\n    // if (updateHoverValue) {\n    const hoverValue = this.isDateDisabled(hoverDate) || !updateHoverValue ? null : hoverDate;\n    this.#calendarService.update({ hoverDate: hoverValue });\n    // }\n  }\n\n  handleYearCellClick(year: number) {\n    if (this.selectionType() === 'year') {\n      let date = new Date(year, 0, 1, 0, 0, 0, 0);\n      if (this.range() && this.startDate() && !this.endDate()) {\n        date = new Date(date.getFullYear(), 12, 1, 0, 0, -1, 0);\n      }\n      this.handleDayCellClick(date);\n      return;\n    }\n    const calendarDate = new Date(year, 0, 1, 0, 0, 0, 0);\n    this.view.set('months');\n    this.#calendarService.update({ view: this.view(), calendarDate: calendarDate });\n  }\n\n  handleYearCellKeyUp($event: KeyboardEvent, date: Date | undefined) {\n    if (!date) {\n      return;\n    }\n    if (['Space', 'Enter'].includes($event.code)) {\n      this.handleYearCellClick(date.getFullYear());\n      return;\n    }\n    if (['Tab', 'ArrowRight', 'ArrowLeft', 'ArrowUp', 'ArrowDown'].includes($event.code)) {\n      this.handleCellMouseEnter(new Date(date));\n      return;\n    }\n  }\n\n  handleMonthCellKeyUp($event: KeyboardEvent, date: Date | undefined) {\n    if (!date) {\n      return;\n    }\n    if (['Space', 'Enter'].includes($event.code)) {\n      this.handleMonthCellClick(date);\n      return;\n    }\n    if (['Tab', 'ArrowRight', 'ArrowLeft', 'ArrowUp', 'ArrowDown'].includes($event.code)) {\n      this.handleCellMouseEnter(date);\n      return;\n    }\n  }\n\n  handleMonthCellClick(value: Date | undefined) {\n    if (!value) {\n      return;\n    }\n    if (this.selectionType() === 'month') {\n      let date = new Date(value.getFullYear(), value.getMonth(), 1, 0, 0, 0, 0);\n      if (this.range() && this.startDate() && !this.endDate()) {\n        date = new Date(date.getFullYear(), date.getMonth() + 1, 1, 0, 0, -1, 0);\n      }\n      this.handleDayCellClick(date);\n      return;\n    }\n    this.view.set('days');\n    this.#calendarService.update({ view: this.view() });\n    // this.setCalendarPage(0, 0, value.getMonth() - this.addMonths());\n    const calendarDate = new Date(value.getFullYear(), value.getMonth() - this.addMonths(), 1, 0, 0, 0, 0);\n    this.#calendarService.update({ calendarDate: calendarDate });\n  }\n\n  setCalendarPage(years: number, months = 0, setMonth?: number) {\n    const year = this.date().getFullYear();\n    const month = this.date().getMonth();\n    const d = new Date(year, month, 1, 0, 0, 0, 0);\n\n    years && d.setFullYear(d.getFullYear() + years);\n    months && d.setMonth(d.getMonth() + months);\n    typeof setMonth === 'number' && d.setMonth(setMonth);\n\n    this.#calendarService.update({ calendarDate: d });\n  }\n\n  handleDayCellKeyDown($event: KeyboardEvent, date: Date | undefined) {\n    if (!date) {\n      return;\n    }\n    if (!['Tab', 'ArrowRight', 'ArrowLeft', 'ArrowUp', 'ArrowDown'].includes($event.code)) {\n      return;\n    }\n    $event.preventDefault();\n    this.handleCellMouseEnter(date);\n\n    const eventKey = $event.key === 'Tab' ? ($event.shiftKey ? 'ArrowLeft' : 'ArrowRight') : $event.key;\n    const selectionType = this.selectionType();\n    const view = this.view();\n    const maxDate = this.maxDate();\n    if (\n      maxDate &&\n      date >= convertToDateObject(maxDate, selectionType) &&\n      ['ArrowRight', 'ArrowDown'].includes(eventKey)\n    ) {\n      return;\n    }\n    const minDate = this.minDate();\n    if (minDate && date <= convertToDateObject(minDate, selectionType) && ['ArrowLeft', 'ArrowUp'].includes(eventKey)) {\n      return;\n    }\n\n    let element = $event.target as HTMLElement;\n\n    if (selectionType === 'week' && view === 'days' && element.tabIndex === -1) {\n      element = element.closest('tr[tabindex=\"0\"]') as HTMLElement;\n    }\n\n    const elements = ['week'].includes(selectionType) && view === 'days' ? this.calendarRows : this.calendarDays;\n\n    const list = elements\n      .toArray()\n      .map((calendarCell) => calendarCell.elementRef.nativeElement as HTMLElement)\n      // .filter((element) => this.selectionType === 'week' ? element?.tabIndex === 0 : element?.classList.contains('current'))\n      .filter((element) => element?.tabIndex === 0);\n\n    const index = list.indexOf(element);\n    const first = index === 0;\n    const last = index === list.length - 1;\n\n    const toBoundary = {\n      start: index,\n      end: list.length - (index + 1)\n    };\n\n    const gap = {\n      ArrowRight: 1,\n      ArrowLeft: -1,\n      ArrowUp: selectionType === 'week' && view === 'days' ? -1 : view === 'days' ? -7 : -3,\n      ArrowDown: selectionType === 'week' && view === 'days' ? 1 : view === 'days' ? 7 : 3\n    };\n\n    if (\n      (eventKey === 'ArrowRight' && last) ||\n      (eventKey === 'ArrowDown' && toBoundary.end < gap.ArrowDown) ||\n      (eventKey === 'ArrowLeft' && first) ||\n      (eventKey === 'ArrowUp' && toBoundary.start < Math.abs(gap.ArrowUp))\n    ) {\n      elements.changes\n        .pipe(take(1), takeUntilDestroyed(this.#destroyRef))\n        .subscribe((change: QueryList<CalendarRowDirective | CalendarDayDirective>) => {\n          const _list = change\n            .toArray()\n            // .filter(element => this.selectionType === 'week' ? element?.elementRef.nativeElement.tabIndex === 0 : element?.elementRef.nativeElement.classList.contains('current'));\n            .filter((directive) => directive?.elementRef.nativeElement.tabIndex === 0);\n\n          if (_list.length) {\n            let dayToFocus: CalendarDayDirective | CalendarRowDirective | undefined;\n            switch (eventKey) {\n              case 'ArrowRight': {\n                dayToFocus = _list[0];\n                break;\n              }\n              case 'ArrowLeft': {\n                dayToFocus = _list[_list.length - 1];\n                break;\n              }\n              case 'ArrowDown': {\n                dayToFocus = _list[gap.ArrowDown - (list.length - index)];\n                break;\n              }\n              case 'ArrowUp': {\n                dayToFocus = _list[_list.length - (Math.abs(gap.ArrowUp) + 1 - (index + 1))];\n                break;\n              }\n            }\n            if (!dayToFocus?.disabled) {\n              // console.log('dayToFocus', dayToFocus?.date);\n              dayToFocus?.focus('keyboard');\n            }\n          }\n        });\n\n      switch (view) {\n        case 'days':\n          this.setCalendarPage(0, ['ArrowRight', 'ArrowDown'].includes(eventKey) ? 1 : -1);\n          break;\n        case 'months':\n          this.setCalendarPage(['ArrowRight', 'ArrowDown'].includes(eventKey) ? 1 : -1);\n          break;\n        case 'years':\n          this.setCalendarPage(['ArrowRight', 'ArrowDown'].includes(eventKey) ? 12 : -12);\n          break;\n      }\n\n      return;\n    }\n\n    // @ts-ignore\n    const nextElement = list[index + gap[eventKey]];\n    if (nextElement?.tabIndex === 0) {\n      nextElement.focus();\n      return;\n    }\n\n    for (let i = index; i < list.length; list.length && ['ArrowRight', 'ArrowDown'].includes(eventKey) ? i++ : i--) {\n      // @ts-ignore\n      const nextElement = list[i + gap[eventKey]];\n      if (nextElement?.tabIndex === 0) {\n        // @ts-ignore\n        nextElement?.focus();\n        break;\n      }\n      // @ts-ignore\n      if (!nextElement) {\n        break;\n      }\n    }\n  }\n\n  handleCellMouseLeave() {\n    this.#calendarService.update({ hoverDate: null });\n  }\n\n  handleDayCellKeyUp($event: KeyboardEvent, date: Date) {\n    if (['Space', 'Enter'].includes($event.code)) {\n      this.handleDayCellClick(date);\n      return;\n    }\n    if (['Tab', 'ArrowRight', 'ArrowLeft', 'ArrowUp', 'ArrowDown'].includes($event.code)) {\n      this.handleCellMouseEnter(date);\n      return;\n    }\n  }\n\n  handleDayCellClick(date: Date) {\n    if (this.selectionType() === 'day' && this.isDateDisabled(date)) {\n      return;\n    }\n\n    if (!this.range()) {\n      this.endDate.set(null);\n      this.startDate.set(date);\n      return;\n    }\n\n    const startDate = this.startDate();\n    const endDate = this.endDate();\n\n    if (startDate && endDate) {\n      this.startDate.set(null);\n      this.endDate.set(null);\n      return;\n    }\n\n    if (!!startDate && !endDate) {\n      if (startDate && date < startDate) {\n        this.endDate.set(null);\n        this.startDate.set(date);\n      } else {\n        const addDays = this.selectionType() !== 'week' ? 1 : 7;\n        this.endDate.set(new Date(date.getFullYear(), date.getMonth(), date.getDate() + addDays, 0, 0, -1, 0));\n      }\n    } else {\n      this.endDate.set(null);\n      this.startDate.set(date);\n    }\n    {\n      const startDate = this.startDate();\n      const endDate = this.endDate();\n      if (startDate && endDate) {\n        const dateFilterFn = this.dateFilter();\n        if (isDateInRangeDisabled(startDate, endDate, this.disabledDates(), dateFilterFn)) {\n          this.startDate.set(null);\n          this.endDate.set(null);\n          return;\n        }\n      }\n    }\n  }\n\n  calendarStateSubscribe(): void {\n    this.#calendarService.calendarState$.pipe(takeUntilDestroyed(this.#destroyRef)).subscribe((state) => {\n      const keys = Object.keys(state);\n\n      for (const key of keys) {\n        if (key in this) {\n          // @ts-ignore\n          const isWritableSignal = typeof this[key] === 'function' && typeof this[key].set === 'function';\n          // @ts-ignore\n          isWritableSignal ? this[key].set(state[key]) : (this[key] = state[key]);\n        }\n      }\n    });\n  }\n\n  getMonthStart(index: number) {\n    return new Date(this.calendarDate().getFullYear(), index + this.addMonths(), 1, 0, 0, 0, 0);\n  }\n\n  getMonthEnd(index: number) {\n    return new Date(this.calendarDate().getFullYear(), index + 1 + this.addMonths(), 1, 0, 0, -1, 0);\n  }\n\n  getYearStart(year: number) {\n    return new Date(year, 0, 1);\n  }\n\n  getYearEnd(year: number) {\n    return new Date(year, 11, 1, 0, 0, -1, 0);\n  }\n}\n","<table>\n  @if (view() === 'days') {\n    <thead>\n    <tr>\n      @if (showWeekNumber()) {\n        <th class=\"calendar-cell\">\n          <div class=\"calendar-header-cell-inner\">{{ weekNumbersLabel() }}</div>\n        </th>\n      }\n      @for (weekDay of weekDays(); track weekDay.date; let i = $index) {\n        @let date = weekDay.date ;\n        <th class=\"calendar-cell\" abbr=\"{{date | calendarWeekday:'long':locale()}}\">\n          <div class=\"calendar-header-cell-inner\">\n            {{ date | calendarWeekday:weekdayFormat():locale() }}\n          </div>\n        </th>\n      }\n    </tr>\n    </thead>\n  }\n  <tbody (mouseleave)=\"handleCellMouseLeave()\">\n    @switch (view()) {\n      @case ('years') {\n        @for (yearsRow of listOfYears(); track yearsRow[0]; let rowIdx = $index) {\n          <tr>\n            @for (year of yearsRow; track year; let idx = $index) {\n              <td\n                #calendarYear=\"cCalendarDay\"\n                (click)=\"!calendarYear.disabled$() && handleYearCellClick(year)\"\n                (keydown)=\"calendarYear.date() && handleDayCellKeyDown($event, calendarYear.date())\"\n                (keyup)=\"handleYearCellKeyUp($event, calendarYear.date())\"\n                (mouseenter)=\"calendarYear.date() && handleCellMouseEnter(calendarYear.date())\"\n                [attr.aria-label]=\"calendarYear.date()?.getFullYear()\"\n                [date]=\"getYearStart(year)\"\n                [class]=\"year | calendarClassYear\"\n                [tabindex]=\"calendarYear.disabled$() ? -1 : 0\"\n                cCalendarDay\n              >\n                <div class=\"calendar-cell-inner\">\n                  {{ yearNumber(year) }}\n                </div>\n              </td>\n            }\n          </tr>\n        }\n      }\n      @case ('months') {\n        @for (monthsRow of listOfMonths(); track monthsRow[0]; let rowIdx = $index) {\n          <tr>\n            @for (month of monthsRow; track month; let idx = $index) {\n              @let monthStart = getMonthStart(rowIdx*3+idx);\n              <td\n                #calendarMonth=\"cCalendarDay\"\n                (click)=\"!calendarMonth.disabled$() && handleMonthCellClick(calendarMonth.date())\"\n                (keydown)=\"calendarMonth.date() && handleDayCellKeyDown($event, calendarMonth.date())\"\n                (keyup)=\"handleMonthCellKeyUp($event, calendarMonth.date())\"\n                (mouseenter)=\"calendarMonth.date() && handleCellMouseEnter(calendarMonth.date())\"\n                [attr.aria-label]=\"calendarMonth.date()?.getFullYear()+' '+month.month\"\n                [date]=\"monthStart\"\n                [class]=\"monthStart | calendarClassMonth:(rowIdx*3+idx)\"\n                [tabindex]=\"calendarMonth.disabled$() ? -1 : 0\"\n                cCalendarDay\n              >\n                <div class=\"calendar-cell-inner\">\n                  {{ month.month }}\n                </div>\n              </td>\n            }\n          </tr>\n        }\n\n      }\n      @default {\n        @let weekSelection = selectionType() === 'week';\n        @let daySelection = selectionType() === 'day';\n        @for (week of monthDetails(); track week.days[0]; let i = $index) {\n          <tr #calendarRow=\"cCalendarRow\"\n              (click)=\"weekSelection && (calendarRow.current) && calendarRow.date && handleDayCellClick(calendarRow.date)\"\n              (keydown)=\"weekSelection && (calendarRow.current) && calendarRow.date && handleDayCellKeyDown($event, calendarRow.date)\"\n              (keyup)=\"weekSelection && (calendarRow.current) && calendarRow.date && handleDayCellKeyUp($event, calendarRow.date)\"\n              (mouseenter)=\"weekSelection && calendarRow.date && handleCellMouseEnter(calendarRow.date)\"\n              [cCalendarRow]=\"week\"\n          >\n            @if (showWeekNumber()) {\n              <th class=\"calendar-cell-week-number\">\n                {{ week.weekNumber === 0 ? 53 : week.weekNumber }}\n              </th>\n            }\n            @for (dateObj of week.days; track dateObj.date; let idx = $index) {\n              @let currentMonth = dateObj.month === 'current';\n              @if (currentMonth || showAdjacentDays()) {\n                @let selectable = daySelection && (currentMonth || selectAdjacentDays());\n                <td #calendarCell=\"cCalendarDay\"\n                    (click)=\"selectable && handleDayCellClick(dateObj.date)\"\n                    (keydown)=\"selectable && handleDayCellKeyDown($event, dateObj.date)\"\n                    (keyup)=\"selectable && handleDayCellKeyUp($event, dateObj.date)\"\n                    (mouseenter)=\"selectable && handleCellMouseEnter(dateObj.date)\"\n                    [attr.aria-label]=\"dateObj.date | calendarDayTitle:locale()\"\n                    [date]=\"dateObj.date\"\n                    [month]=\"dateObj.month\"\n                    [class]=\"dateObj | calendarClassDay:{minDate: minDate(), maxDate: maxDate(), disabledDates: disabledDates(), dateFilter: dateFilter()}\"\n                    [tabindex]=\"selectable && !isDateDisabled(dateObj.date) ? 0 : -1\"\n                    cCalendarDay\n                >\n                  <div class=\"calendar-cell-inner\">\n                    {{ dateObj.date | calendarDay:dayFormat():locale() }}\n                  </div>\n                </td>\n              } @else {\n                <td class=\"calendar-cell\"></td>\n              }\n            }\n          </tr>\n        }\n      }\n    }\n  </tbody>\n</table>\n\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'calendarClassView',\n  standalone: true\n})\nexport class CalendarClassViewPipe implements PipeTransform {\n\n  transform(view: string): any {\n    return {\n      calendar: true,\n      [`${view}`]: !!view\n    };\n  }\n}\n","import {\n  AfterViewInit,\n  booleanAttribute,\n  Component,\n  computed,\n  DestroyRef,\n  effect,\n  inject,\n  input,\n  model,\n  numberAttribute,\n  OnInit,\n  output,\n  signal\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { A11yModule, FocusOrigin } from '@angular/cdk/a11y';\nimport { debounceTime } from 'rxjs/operators';\n\nimport {\n  CalendarService,\n  DateFilterType,\n  DayFormatType,\n  DaysOfWeek,\n  SelectionType,\n  WeekdayFormatType\n} from '../calendar.service';\nimport { convertToDateObject, equalDates } from '../calendar.utils';\nimport { CalendarMonthComponent } from '../calendar-month/calendar-month.component';\nimport { CalendarNavigationComponent } from '../calendar-navigation/calendar-navigation.component';\nimport { CalendarClassViewPipe } from './calendar-class-view.pipe';\n\n@Component({\n  selector: 'c-calendar',\n  templateUrl: './calendar.component.html',\n  styleUrls: ['./calendar.component.scss'],\n  exportAs: 'cCalendar',\n  providers: [CalendarService],\n  imports: [CalendarNavigationComponent, CalendarClassViewPipe, CalendarMonthComponent, A11yModule],\n  host: { class: 'calendar', '[class]': 'hostClasses()' }\n})\nexport class CalendarComponent implements OnInit, AfterViewInit {\n  readonly #destroyRef = inject(DestroyRef);\n  readonly #calendarService = inject(CalendarService);\n\n  readonly calendarDateChange = output<Date>();\n\n  /**\n   * Default date of the component\n   * @type  Date | string\n   */\n  readonly calendarDateModel = model<Date | number | string>(new Date(new Date().setDate(1)).setHours(0, 0, 0, 0), {\n    alias: 'calendarDate'\n  });\n\n  readonly calendarDate = computed(\n    () => {\n      const date =\n        convertToDateObject(\n          this.calendarDateModel() ?? this.startDate() ?? new Date(),\n          this.selectionType(),\n          'calendarDate'\n        ) ?? new Date();\n      const calendarDate = new Date(new Date(date.setDate(1)).setHours(0, 0, 0, 0));\n      return convertToDateObject(calendarDate, this.selectionType(), 'calendarDate');\n    },\n    { equal: equalDates }\n  );\n\n  readonly calendarDateEffect = effect(() => {\n    this.#calendarService.update({ calendarDate: this.calendarDate() });\n    this.calendarDateChange.emit(this.calendarDate());\n  });\n\n  /**\n   * The number of calendars that render on desktop devices.\n   * @type number\n   * default 1\n   */\n  readonly calendars = input(1, { transform: numberAttribute });\n\n  readonly calendarsArray = computed(() => {\n    const calendars = ['month', 'year'].includes(this.selectionType()) ? 1 : this.calendars();\n    return Array.from({ length: calendars }, (v, i) => i);\n  });\n\n  /**\n   * Set the format of day name.\n   * @default 'numeric'\n   * @type DayFormatType\n   */\n  readonly dayFormat = input<DayFormatType>('numeric');\n\n  readonly dayFormatEffect = effect(() => {\n    this.#calendarService.update({ dayFormat: this.dayFormat() });\n  });\n\n  /**\n   * Specify the list of dates that cannot be selected.\n   * @type (Date | Date[])[]\n   */\n  readonly disabledDates = input<(Date[] | Date)[]>([]);\n\n  readonly disabledDatesEffect = effect(() => {\n    this.#calendarService.update({ disabledDates: this.disabledDates() });\n  });\n\n  readonly endDateChange = output<Date | null>();\n  readonly startDateChange = output<Date | null>();\n\n  /**\n   * Initial selected date.\n   * @type  (Date | null)\n   */\n  readonly startDateModel = model<Date | number | string | null>(null, { alias: 'startDate' });\n\n  readonly startDate = computed(\n    () => {\n      const date = this.startDateModel() ?? null;\n      return !!date ? convertToDateObject(date, this.selectionType(), 'startDate') : null;\n    },\n    { equal: equalDates }\n  );\n\n  /**\n   * Initial selected to date (range).\n   * @type Date | null\n   */\n  readonly endDateModel = model<Date | number | string | null>(null, { alias: 'endDate' });\n\n  readonly endDate = computed(\n    () => {\n      const date = this.endDateModel() ?? null;\n      return !!date && this.range() ? convertToDateObject(date, this.selectionType(), 'endDate') : null;\n    },\n    { equal: equalDates }\n  );\n\n  readonly #datesEffect = effect(() => {\n    const startDate = this.startDate();\n    const endDate = this.endDate();\n    this.#calendarService.update({ startDate: startDate, endDate: endDate });\n    this.startDateChange.emit(startDate);\n    this.endDateChange.emit(endDate);\n  });\n\n  /**\n   * Sets the day of start week.\n   * - 0 - Sunday,\n   * - 1 - Monday,\n   * - 2 - Tuesday,\n   * - 3 - Wednesday,\n   * - 4 - Thursday,\n   * - 5 - Friday,\n   * - 6 - Saturday,\n   *\n   * @type number\n   * @default 1\n   */\n  readonly firstDayOfWeek = input<DaysOfWeek>(1);\n\n  readonly firstDayOfWeekEffect = effect(() => {\n    this.#calendarService.update({ firstDayOfWeek: this.firstDayOfWeek() });\n  });\n\n  /**\n   * Sets the default locale for components. If not set, it is inherited from the browser.\n   * @default 'default'\n   */\n  readonly locale = input<string>('default');\n\n  readonly localeEffect = effect(() => {\n    this.#calendarService.update({ locale: this.locale() });\n  });\n\n  /**\n   * Max selectable date.\n   */\n  readonly maxDateInput = input<Date | string | number | null>(null, { alias: 'maxDate' });\n\n  readonly maxDateEffect = effect(() => {\n    const date = this.maxDateInput();\n    const maxDate = !!date ? convertToDateObject(date, undefined, 'maxDate') : null;\n    this.#calendarService.update({ maxDate: maxDate });\n  });\n\n  /**\n   * Min selectable date.\n   */\n  readonly minDateInput = input<Date | string | number | null>(null, { alias: 'minDate' });\n\n  readonly minDateEffect = effect(() => {\n    const date = this.minDateInput();\n    const minDate = !!date ? convertToDateObject(date, undefined, 'minDate') : null;\n    this.#calendarService.update({ minDate: minDate });\n  });\n\n  /**\n   * Show navigation.\n   * @type boolean\n   */\n  readonly navigation = input(true, { transform: booleanAttribute });\n\n  /**\n   * Reorder year-month navigation, and render year first.\n   * @type boolean\n   * @default false\n   */\n  readonly navYearFirst = input(false, { transform: booleanAttribute });\n\n  readonly navYearFirstEffect = effect(() => {\n    this.#calendarService.update({ navYearFirst: this.navYearFirst() });\n  });\n\n  /**\n   * Allow range selection.\n   * @type boolean\n   * @default false\n   */\n  readonly range = input(false, { transform: booleanAttribute });\n\n  readonly rangeEffect = effect(() => {\n    this.#calendarService.update({ range: this.range() });\n  });\n\n  /**\n   * Set calendar view.\n   * @type 'days' | 'months' | 'years'\n   * @default 'days'\n   */\n  readonly view = model<'days' | 'months' | 'years'>('days');\n\n  readonly #viewEffect = effect(() => {\n    this.#calendarService.update({ view: this.view() });\n  });\n\n  /**\n   * Set length or format of day name.\n   * @type number | 'long' | 'narrow' | 'short'\n   * @default 'short'\n   */\n  readonly weekdayFormat = input<WeekdayFormatType>('short');\n\n  readonly weekdayFormatEffect = effect(() => {\n    this.#calendarService.update({ weekdayFormat: this.weekdayFormat() });\n  });\n\n  readonly dateFilter = input<DateFilterType>();\n\n  readonly dateFilterEffect = effect(() => {\n    this.#calendarService.update({ dateFilter: this.dateFilter() });\n  });\n\n  /**\n   * Set whether days in adjacent months shown before or after the current month are selectable. This only applies if the `showAdjacentDays` option is set to true.\n   * @type boolean\n   * @default false\n   * @since 4.4.10\n   */\n  readonly selectAdjacentDays = input(false, { transform: booleanAttribute });\n\n  readonly selectAdjacentDaysEffect = effect(() => {\n    this.#calendarService.update({ selectAdjacentDays: this.selectAdjacentDays() });\n  });\n\n  /**\n   * Set whether to display dates in adjacent months (non-selectable) at the start and end of the current month.\n   * @type boolean\n   * @default true\n   * @since 4.4.10\n   */\n  readonly showAdjacentDays = input(true, { transform: booleanAttribute });\n\n  readonly showAdjacentDaysEffect = effect(() => {\n    this.#calendarService.update({ showAdjacentDays: this.showAdjacentDays() });\n  });\n\n  /**\n   * Specify the type of date selection as day, week, month, or year.\n   * @type 'day' | 'week' | 'month' | 'year'\n   * @default 'day'\n   * @since 5.0.0\n   */\n  readonly selectionType = input<SelectionType>('day');\n\n  readonly selectionTypeEffect = effect(() => {\n    const selectionType = this.selectionType();\n    const view = ['day', 'week'].includes(selectionType) ? 'days' : selectionType === 'month' ? 'months' : 'years';\n    this.#calendarService.update({ selectionType: selectionType, view: view });\n  });\n\n  /**\n   * Set whether to display week numbers in the calendar.\n   * @type boolean\n   * @default false\n   * @since 5.0.0\n   */\n  readonly showWeekNumber = input(false, { transform: booleanAttribute });\n\n  readonly showWeekNumberEffect = effect(() => {\n    this.#calendarService.update({ showWeekNumber: this.showWeekNumber() });\n  });\n\n  /**\n   * Label displayed over week numbers in the calendar.\n   * @type string\n   * @default undefined\n   * @since 5.0.0\n   */\n  readonly weekNumbersLabel = input<string>();\n\n  readonly weekNumbersLabelEffect = effect(() => {\n    this.#calendarService.update({ weekNumbersLabel: this.weekNumbersLabel() });\n  });\n\n  readonly ariaNextMonthLabel = input<string>('Next month');\n  readonly ariaNextYearLabel = input<string>('Next year');\n  readonly ariaPrevMonthLabel = input<string>('Previous month');\n  readonly ariaPrevYearLabel = input<string>('Previous year');\n\n  readonly calendarCellHover = output<Date | null>();\n\n  // used with calendarService\n  readonly hoverDate = signal<Date | null>(null);\n\n  readonly hoverDateEffect = effect(() => {\n    this.calendarCellHover.emit(this.hoverDate());\n  });\n\n  readonly hostClasses = computed(() => {\n    const selectionType = this.selectionType();\n    const view = this.view();\n\n    return {\n      calendars: true,\n      [`select-${selectionType}`]: selectionType && view === 'days',\n      'show-week-numbers': this.showWeekNumber()\n    } as Record<string, boolean>;\n  });\n\n  // @ViewChildren(CalendarMonthComponent) calendarMonths!: QueryList<CalendarMonthComponent>;\n\n  ngOnInit(): void {\n    this.#calendarService.update({\n      locale: this.locale() ?? 'default',\n      view: this.view(),\n      range: this.range(),\n      selectionType: this.selectionType()\n      // showAdjacentDays: this.showAdjacentDays,\n      // selectAdjacentDays: this.selectAdjacentDays\n    });\n  }\n\n  ngAfterViewInit(): void {\n    // setTimeout(() => {\n    this.calendarStateSubscribe();\n    // });\n  }\n\n  calendarStateSubscribe(): void {\n    const inputs = [\n      'dateFilter',\n      'dayFormat',\n      'disabledDates',\n      'firstDayOfWeek',\n      'locale',\n      'maxDate',\n      'minDate',\n      'navYearFirst',\n      'range',\n      'selectAdjacentDays',\n      'selectionType',\n      'showAdjacentDays',\n      'showWeekNumber',\n      'weekdayFormat',\n      'weekNumbersLabel'\n    ];\n    // const models = ['startDate', 'endDate', 'calendarDate'];\n    this.#calendarService?.calendarState$\n      .pipe(debounceTime(1), takeUntilDestroyed(this.#destroyRef))\n      .subscribe((state) => {\n        const keys = Object.keys(state);\n        for (const key of keys) {\n          if (key in this) {\n            if (inputs.includes(key)) {\n              continue;\n            }\n            // if (models.includes(key) && state[key] !== undefined) {\n            //   const model = `${key}Model`;\n            //   // @ts-ignore\n            //   this[model].set(state[key]);\n            // }\n            if (key === 'startDate') {\n              this.startDateModel.set(state[key] as Date | null);\n              continue;\n            }\n            if (key === 'endDate') {\n              this.endDateModel.set(state[key] as Date | null);\n              continue;\n            }\n            if (key === 'calendarDate') {\n              this.calendarDateModel.set(state[key] as Date);\n              continue;\n            }\n            if (key === 'view') {\n              this.view.set(state[key] as 'days' | 'months' | 'years');\n              continue;\n            }\n\n            // @ts-ignore\n            const isWritableSignal = typeof this[key] === 'function' && typeof this[key].set === 'function';\n            // @ts-ignore\n            const isReadonlySignal = typeof this[key] === 'function' && typeof this[key].set === 'undefined';\n            // @ts-ignore\n            if (isWritableSignal && !isReadonlySignal ? this[key]() !== state[key] : this[key] !== state[key]) {\n              // @ts-ignore\n              isWritableSignal ? this[key].set(state[key]) : (this[key] = state[key]);\n              // this[key] = state[key];\n            }\n          }\n        }\n      });\n  }\n\n  setCalendarPage(years: number, months = 0, setMonth?: number) {\n    const calendarDate = this.calendarDate();\n    const year = calendarDate.getFullYear();\n    const month = calendarDate.getMonth();\n    const d = new Date(year, month, 1);\n\n    years && d.setFullYear(d.getFullYear() + years);\n    months && d.setMonth(d.getMonth() + months);\n    typeof setMonth === 'number' && d.setMonth(setMonth);\n\n    this.calendarDateModel.set(d);\n  }\n\n  handleNavigationClick(direction: 'prev' | 'next', years = false) {\n    const view = this.view();\n    if (direction === 'prev') {\n      if (years) {\n        this.setCalendarPage(view === 'years' ? -10 : -1);\n        return;\n      }\n\n      if (view !== 'days') {\n        this.setCalendarPage(-1);\n        return;\n      }\n\n      this.setCalendarPage(0, -1);\n      return;\n    }\n    if (direction === 'next') {\n      if (years) {\n        this.setCalendarPage(view === 'years' ? 10 : 1);\n        return;\n      }\n\n      if (view !== 'days') {\n        this.setCalendarPage(1);\n        return;\n      }\n\n      this.setCalendarPage(0, 1);\n      return;\n    }\n  }\n\n  /**\n   * Clear startDate and endDate\n   * @type void\n   */\n  public clearDates() {\n    this.#calendarService.update({ startDate: null, endDate: null });\n  }\n\n  handleFocusChange($event: FocusOrigin) {\n    if ($event === null) {\n      this.#calendarService.update({ hoverDate: null });\n    }\n  }\n}\n","@for (calendar of calendarsArray(); track calendar; let i = $index) {\n  <div [class]=\"view() | calendarClassView\">\n    <c-calendar-navigation\n      (navigationClick)=\"handleNavigationClick($event.direction, $event.years)\"\n      [pageIndex]=\"i\"\n      [navigation]=\"navigation()\"\n      [ariaNextMonthLabel]=\"ariaNextMonthLabel()\"\n      [ariaNextYearLabel]=\"ariaNextYearLabel()\"\n      [ariaPrevMonthLabel]=\"ariaPrevMonthLabel()\"\n      [ariaPrevYearLabel]=\"ariaPrevYearLabel()\"\n    />\n\n    <c-calendar-month\n      [pageIndex]=\"i\"\n      cdkMonitorSubtreeFocus\n      (cdkFocusChange)=\"handleFocusChange($event)\"\n    />\n  </div>\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { convertToDateObject, isDateDisabled } from '../calendar.utils';\nimport { SelectionType } from '../calendar.service';\n\n@Pipe({\n  name: 'calendarClassRow',\n  standalone: true\n})\nexport class CalendarClassRowPipe implements PipeTransform {\n  transform(\n    week: { weekNumber: number; days: { date: Date; month: string }[] },\n    datesConfig?: {\n      minDate: any;\n      maxDate: any;\n      disabledDates: any;\n      dateFilter: any;\n      calendarDate: any;\n      selectionType: SelectionType;\n    }\n  ) {\n    const { minDate, maxDate, disabledDates, dateFilter, calendarDate, selectionType } = { ...datesConfig };\n\n    const date = convertToDateObject(\n      week.weekNumber === 0 ? `${calendarDate.getFullYear()}W53` : `${calendarDate.getFullYear()}W${week.weekNumber}`,\n      selectionType\n    );\n    const isDisabled =\n      isDateDisabled(date, minDate, maxDate, disabledDates) || (dateFilter ? !dateFilter(date) : false);\n\n    return {\n      'calendar-row': true,\n      disabled: isDisabled\n    };\n  }\n}\n","import { NgModule } from '@angular/core';\n\nimport { CalendarComponent } from './calendar/calendar.component';\nimport { CalendarClassViewPipe } from './calendar/calendar-class-view.pipe';\nimport { CalendarClassYearPipe } from './calendar-month/calendar-class-year.pipe';\nimport { CalendarDayDirective } from './calendar-month/calendar-day.directive';\nimport { CalendarClassDayPipe } from './calendar-month/calendar-class-day.pipe';\nimport { CalendarClassMonthPipe } from './calendar-month/calendar-class-month.pipe';\nimport { CalendarMonthComponent } from './calendar-month/calendar-month.component';\nimport { CalendarNavigationComponent } from './calendar-navigation/calendar-navigation.component';\nimport { CalendarDayPipe } from './calendar-month/calendar-day.pipe';\nimport { CalendarWeekdayPipe } from './calendar-month/calendar-weekday.pipe';\nimport { CalendarDayTitlePipe } from './calendar-month/calendar-day-title.pipe';\nimport { CalendarClassRowPipe } from './calendar-month/calendar-class-row.pipe';\n\n@NgModule({\n  imports: [\n    CalendarComponent,\n    CalendarClassYearPipe,\n    CalendarClassDayPipe,\n    CalendarClassMonthPipe,\n    CalendarDayDirective,\n    CalendarClassViewPipe,\n    CalendarNavigationComponent,\n    CalendarMonthComponent,\n    CalendarDayPipe,\n    CalendarWeekdayPipe,\n    CalendarDayTitlePipe,\n    CalendarClassRowPipe\n  ],\n  exports: [\n    CalendarComponent,\n    CalendarMonthComponent,\n    CalendarNavigationComponent\n  ]\n})\nexport class CalendarModule {}\n","import { Component, computed, input } from '@angular/core';\nimport { Colors } from '../coreui.types';\n\n@Component({\n  selector: 'c-callout, [cCallout]',\n  template: '<ng-content />',\n  styleUrls: ['./callout.component.scss'],\n  host: { class: 'callout', '[class]': 'hostClasses()' }\n})\nexport class CalloutComponent {\n  /**\n   * Sets the color context of the component to one of CoreUI’s themed colors.\n   * @type Colors\n   */\n  readonly color = input<Colors>();\n\n  readonly hostClasses = computed(() => {\n    const color = this.color();\n\n    return {\n      callout: true,\n      [`callout-${color}`]: !!color\n    } as Record<string, boolean>;\n  });\n}\n","import { NgModule } from '@angular/core';\n\nimport { CalloutComponent } from './callout.component';\n\n@NgModule({\n  exports: [CalloutComponent],\n  imports: [CalloutComponent]\n})\nexport class CalloutModule {}\n","import { Component, computed, input, InputSignal } from '@angular/core';\nimport { Colors, TextColors } from '../coreui.types';\nimport { TextBgColorDirective, TextColorDirective } from '../utilities';\n\n@Component({\n  selector: 'c-card, [c-card]',\n  template: '<ng-content />',\n  hostDirectives: [\n    { directive: TextColorDirective, inputs: ['cTextColor: textColor'] },\n    { directive: TextBgColorDirective, inputs: ['cTextBgColor: textBgColor'] }\n  ],\n  host: { class: 'card', '[class]': 'hostClasses()' }\n})\nexport class CardComponent {\n  /**\n   * Sets the color context of the component to one of CoreUI’s themed colors.\n   * @type Colors\n   */\n  readonly color: InputSignal<Colors | undefined> = input();\n\n  /**\n   * Sets the text color context of the component to one of CoreUI’s themed colors.\n   * via TextColorDirective\n   * @type TextColors\n   */\n  readonly textColor: InputSignal<TextColors | undefined> = input();\n\n  /**\n   * Sets the component's color scheme to one of CoreUI themed colors, ensuring the text color contrast adheres to the WCAG 4.5:1 contrast ratio standard for accessibility.\n   * via TextBgColorDirective\n   * @type Colors\n   * @since 5.0.0\n   */\n  readonly textBgColor: InputSignal<Colors | undefined> = input();\n\n  readonly hostClasses = computed(() => {\n    const color = this.color();\n\n    return {\n      card: true,\n      [`bg-${color}`]: !!color\n    } as Record<string, boolean>;\n  });\n}\n","import { Component } from '@angular/core';\n\n@Component({\n  selector: 'c-card-body, [c-card-body]',\n  template: '<ng-content />',\n  host: { class: 'card-body' }\n})\nexport class CardBodyComponent {}\n","import { Component } from '@angular/core';\n\n@Component({\n  selector: 'c-card-footer, [c-card-footer]',\n  template: '<ng-content />',\n  host: { class: 'card-footer' }\n})\nexport class CardFooterComponent {}\n","import { Component } from '@angular/core';\n\n@Component({\n  selector: 'c-card-group, [c-card-group]',\n  template: '<ng-content />',\n  host: { class: 'card-group' }\n})\nexport class CardGroupComponent {}\n","import { Component } from '@angular/core';\n\n@Component({\n  selector: 'c-card-header, [c-card-header]',\n  template: '<ng-content />',\n  host: { class: 'card-header' }\n})\nexport class CardHeaderComponent {}\n","import { Component } from '@angular/core';\n\n@Component({\n  selector: 'c-card-header-actions, [c-card-header-actions]',\n  template: '<ng-content />',\n  host: { class: 'card-header-actions' }\n})\nexport class CardHeaderActionsComponent {}\n","import { computed, Directive, input } from '@angular/core';\n\n@Directive({\n  selector: '[cCardImg]',\n  host: { '[class]': 'hostClasses()' }\n})\nexport class CardImgDirective {\n  /**\n   * Optionally orientate the image to the top, bottom, or make it overlaid across the card.\n   * @type {'top | 'bottom'}\n   */\n  readonly orientation = input<'top' | 'bottom' | 'start' | 'end' | undefined>(undefined, { alias: 'cCardImg' });\n\n  readonly hostClasses = computed(() => {\n    const orientation = this.orientation();\n    const suffix = !!orientation ? `-${orientation}` : '';\n    const horizontal = ['start', 'end'].includes(orientation ?? '-') ? orientation : undefined;\n    return {\n      [`card-img${suffix}`]: !horizontal,\n      'img-fluid': !!horizontal,\n      [`rounded-${horizontal}`]: !!horizontal\n    } as Record<string, boolean>;\n  });\n}\n","import { Component } from '@angular/core';\n\n@Component({\n  selector: 'c-card-img-overlay',\n  template: '<ng-content />',\n  styleUrls: ['./card-img-overlay.component.scss'],\n  host: { class: 'card-img-overlay' }\n})\nexport class CardImgOverlayComponent {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n  selector: '[cCardLink]',\n  host: { class: 'card-link' }\n})\nexport class CardLinkDirective {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n  selector: '[cCardSubtitle]',\n  host: { class: 'card-subtitle' }\n})\nexport class CardSubtitleDirective {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n  selector: '[cCardText]',\n  host: { class: 'card-text' }\n})\nexport class CardTextDirective {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n  selector: '[cCardTitle]',\n  host: { class: 'card-title' }\n})\nexport class CardTitleDirective {}\n","import { NgModule } from '@angular/core';\n\nimport { CardComponent } from './card.component';\nimport { CardBodyComponent } from './card-body.component';\nimport { CardFooterComponent } from './card-footer.component';\nimport { CardHeaderComponent } from './card-header.component';\nimport { CardHeaderActionsComponent } from './card-header-actions.component';\nimport { CardGroupComponent } from './card-group.component';\nimport { CardImgDirective } from './card-img.directive';\nimport { CardLinkDirective } from './card-link.directive';\nimport { CardSubtitleDirective } from './card-subtitle.directive';\nimport { CardTextDirective } from './card-text.directive';\nimport { CardTitleDirective } from './card-title.directive';\nimport { CardImgOverlayComponent } from './card-img-overlay/card-img-overlay.component';\n\n@NgModule({\n  imports: [\n    CardComponent,\n    CardBodyComponent,\n    CardFooterComponent,\n    CardGroupComponent,\n    CardHeaderComponent,\n    CardHeaderActionsComponent,\n    CardImgDirective,\n    CardImgOverlayComponent,\n    CardLinkDirective,\n    CardSubtitleDirective,\n    CardTextDirective,\n    CardTitleDirective\n  ],\n  exports: [\n    CardComponent,\n    CardBodyComponent,\n    CardFooterComponent,\n    CardGroupComponent,\n    CardHeaderComponent,\n    CardHeaderActionsComponent,\n    CardImgDirective,\n    CardImgOverlayComponent,\n    CardLinkDirective,\n    CardSubtitleDirective,\n    CardTextDirective,\n    CardTitleDirective\n  ]\n})\nexport class CardModule {}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\nexport interface ICarouselIndex {\n  active?: number;\n  interval?: number;\n  lastItemIndex?: number;\n}\n\n@Injectable()\nexport class CarouselService {\n  readonly #carouselIndex = new BehaviorSubject<ICarouselIndex>({});\n  readonly carouselIndex$ = this.#carouselIndex.asObservable();\n\n  setIndex(index: ICarouselIndex): void {\n    this.#carouselIndex.next(index);\n  }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { ICarouselState } from './carousel-state.type';\nimport { CarouselService } from './carousel.service';\nimport { CarouselItemComponent } from './carousel-item/carousel-item.component';\n\n@Injectable()\nexport class CarouselState {\n  readonly #carouselService = inject(CarouselService);\n\n  #state = <ICarouselState>{\n    activeItemIndex: -1,\n    animate: true,\n    items: [],\n    direction: 'next',\n    transition: 'slide',\n    interval: 0\n  };\n\n  get state(): ICarouselState {\n    return this.#state;\n  }\n\n  set state(state) {\n    const prevState = { ...this.#state };\n    const nextState = { ...this.#state, ...state };\n    this.#state = nextState;\n    if (prevState.activeItemIndex !== nextState.activeItemIndex) {\n      const activeItemIndex = this.state.activeItemIndex || 0;\n      const itemInterval = (this.state.items && this.state.items[activeItemIndex]?.interval()) || -1;\n      this.#carouselService.setIndex({\n        active: nextState.activeItemIndex,\n        interval: itemInterval,\n        lastItemIndex: (nextState.items?.length ?? 0) - 1\n      });\n    }\n  }\n\n  setItems(newItems: any): void {\n    if (newItems.length) {\n      const itemsArray = newItems;\n      itemsArray.forEach((item: CarouselItemComponent, i: number) => {\n        item.index = i;\n      });\n      this.state = {\n        items: [...itemsArray]\n      };\n    } else {\n      this.reset();\n    }\n  }\n\n  setNextIndex(nextIndex: any): void {\n    this.#carouselService.setIndex(nextIndex);\n  }\n\n  direction(direction: 'next' | 'prev' = 'next'): number {\n    this.state = { direction };\n    const { activeItemIndex = -1, items } = this.state;\n    const itemsCount = items?.length ?? 0;\n    if (itemsCount > 0) {\n      return direction === 'next'\n        ? activeItemIndex === itemsCount - 1\n          ? 0\n          : activeItemIndex + 1\n        : activeItemIndex === 0\n          ? itemsCount - 1\n          : activeItemIndex - 1;\n    } else {\n      return 0;\n    }\n  }\n\n  reset(): void {\n    this.state = {\n      activeItemIndex: -1,\n      animate: true,\n      items: [],\n      direction: 'next',\n      transition: 'slide',\n      interval: 0\n    };\n  }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class CarouselConfig {\n  /* Animate transition of slides */\n  activeIndex = 0;\n  /* Animate transition of slides */\n  animate = true;\n  /* Default direction of auto changing of slides */\n  direction: 'next' | 'prev' = 'next';\n  /* Default interval of auto changing of slides */\n  interval?: number;\n}\n","import {\n  AfterContentInit,\n  Component,\n  DestroyRef,\n  effect,\n  ElementRef,\n  inject,\n  input,\n  linkedSignal,\n  numberAttribute,\n  OnDestroy,\n  OnInit,\n  output\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { fromEvent, Subscription } from 'rxjs';\nimport { filter, finalize, withLatestFrom, zipWith } from 'rxjs/operators';\n\nimport { IListenersConfig, IntersectionService, ListenersService } from '../../services';\n\nimport { Triggers } from '../../coreui.types';\nimport { ThemeDirective } from '../../shared/theme.directive';\nimport { CarouselState } from '../carousel-state';\nimport { CarouselService } from '../carousel.service';\nimport { CarouselConfig } from '../carousel.config';\n\n@Component({\n  selector: 'c-carousel',\n  template: '<ng-content />',\n  styleUrls: ['./carousel.component.scss'],\n  providers: [CarouselService, CarouselState, ListenersService],\n  hostDirectives: [{ directive: ThemeDirective, inputs: ['dark'] }],\n  exportAs: 'cCarousel',\n  host: {\n    class: 'carousel slide',\n    '[class.carousel-fade]': 'transition() === \"crossfade\" && animate()'\n  }\n})\nexport class CarouselComponent implements OnInit, OnDestroy, AfterContentInit {\n  private config = inject<CarouselConfig>(CarouselConfig);\n\n  readonly #hostElement = inject(ElementRef);\n  readonly #carouselService = inject(CarouselService);\n  readonly #carouselState = inject(CarouselState);\n  readonly #intersectionService = inject(IntersectionService);\n  readonly #listenersService = inject(ListenersService);\n\n  constructor() {\n    this.loadConfig();\n  }\n\n  loadConfig() {\n    this.activeIndex.update((activeIndex) => this.config?.activeIndex ?? activeIndex);\n    this.animate.update((animate) => this.config?.animate ?? animate);\n    this.direction.update((direction) => this.config?.direction ?? direction);\n    this.interval.update((interval) => this.config?.interval ?? interval);\n  }\n\n  /**\n   * Index of the active item.\n   * @return number\n   */\n  readonly activeIndexInput = input(0, { alias: 'activeIndex', transform: numberAttribute });\n\n  readonly activeIndex = linkedSignal({\n    source: this.activeIndexInput,\n    computation: (value: number) => value\n  });\n\n  /**\n   * Carousel automatically starts cycle items.\n   * @return boolean\n   */\n  readonly animateInput = input<boolean>(true, { alias: 'animate' });\n\n  readonly animate = linkedSignal({\n    source: this.animateInput,\n    computation: (value: boolean) => value\n  });\n\n  /**\n   * Carousel direction. [docs]\n   * @return {'next' | 'prev'}\n   */\n  readonly directionInput = input<'next' | 'prev'>('next', { alias: 'direction' });\n\n  readonly direction = linkedSignal({\n    source: this.directionInput,\n    computation: (value: 'next' | 'prev') => value\n  });\n\n  /**\n   * The amount of time to delay between automatically cycling an item. If false, carousel will not automatically cycle.\n   * @return number\n   * @default 0\n   */\n  readonly intervalInput = input(-1, { alias: 'interval', transform: numberAttribute });\n\n  readonly interval = linkedSignal({\n    source: this.intervalInput,\n    computation: (value: number) => value\n  });\n\n  readonly #intervalEffect = effect(() => {\n    const interval = this.interval();\n    this.#carouselState.state = { interval: interval };\n    interval ? this.setTimer() : this.resetTimer();\n  });\n\n  /**\n   * Sets which event handlers you’d like provided to your pause prop. You can specify one trigger or an array of them.\n   * @return {'hover' | 'focus' | 'click'}\n   */\n  readonly pause = input<Triggers | Triggers[] | false>('hover');\n\n  /**\n   * Support left/right swipe interactions on touchscreen devices.\n   * @return boolean\n   * @default true\n   */\n  readonly touch = input<boolean>(true);\n\n  /**\n   * Set type of the transition.\n   * @return {'slide' | 'crossfade'}\n   * @default 'slide'\n   */\n  readonly transition = input<'slide' | 'crossfade'>('slide');\n\n  /**\n   * Set whether the carousel should cycle continuously or have hard stops.\n   * @return boolean\n   * @default true\n   */\n  readonly wrap = input<boolean>(true);\n\n  /**\n   * Event emitted on carousel item change. [docs]\n   * @return number\n   */\n  readonly itemChange = output<number>();\n\n  private timerId: ReturnType<typeof setTimeout> | undefined;\n  private activeItemInterval = 0;\n  private swipeSubscription?: Subscription;\n  readonly #destroyRef = inject(DestroyRef);\n\n  ngOnInit(): void {\n    this.carouselStateSubscribe();\n  }\n\n  ngOnDestroy(): void {\n    this.resetTimer();\n    this.clearListeners();\n    this.swipeSubscribe(false);\n  }\n\n  ngAfterContentInit(): void {\n    this.intersectionServiceSubscribe();\n    this.#carouselState.state = {\n      activeItemIndex: this.activeIndex(),\n      animate: this.animate(),\n      interval: this.interval(),\n      transition: this.transition()\n    };\n    this.setListeners();\n    this.swipeSubscribe();\n  }\n\n  private setListeners(): void {\n    const config: IListenersConfig = {\n      hostElement: this.#hostElement,\n      trigger: this.pause() || [],\n      callbackOff: () => {\n        this.setTimer();\n      },\n      callbackOn: () => {\n        this.resetTimer();\n      }\n    };\n    this.#listenersService.setListeners(config);\n  }\n\n  private clearListeners(): void {\n    this.#listenersService.clearListeners();\n  }\n\n  set visible(value) {\n    this.#visible = value;\n  }\n\n  get visible() {\n    return this.#visible;\n  }\n\n  #visible: boolean = true;\n\n  setTimer(): void {\n    const interval = this.activeItemInterval || this.interval();\n    const direction = this.direction();\n    this.resetTimer();\n    if (interval > 0) {\n      this.timerId = setTimeout(() => {\n        const nextIndex = this.#carouselState.direction(direction);\n        this.#carouselState.state = { activeItemIndex: nextIndex };\n      }, interval);\n    }\n  }\n\n  resetTimer(): void {\n    clearTimeout(this.timerId);\n    this.timerId = undefined;\n  }\n\n  private carouselStateSubscribe(): void {\n    this.#carouselService.carouselIndex$.pipe(takeUntilDestroyed(this.#destroyRef)).subscribe((nextItem) => {\n      if ('active' in nextItem && typeof nextItem.active === 'number') {\n        this.itemChange?.emit(nextItem.active);\n      }\n      this.activeItemInterval =\n        typeof nextItem.interval === 'number' && nextItem.interval > -1 ? nextItem.interval : this.interval();\n      const direction = this.direction();\n      const isLastItem =\n        (nextItem.active === nextItem.lastItemIndex && direction === 'next') ||\n        (nextItem.active === 0 && direction === 'prev');\n      !this.wrap() && isLastItem ? this.resetTimer() : this.setTimer();\n    });\n  }\n\n  private intersectionServiceSubscribe(): void {\n    this.#intersectionService.createIntersectionObserver(this.#hostElement);\n    this.#intersectionService.intersecting$\n      .pipe(\n        filter((next) => next.hostElement === this.#hostElement),\n        finalize(() => {\n          this.#intersectionService.unobserve(this.#hostElement);\n        }),\n        takeUntilDestroyed(this.#destroyRef)\n      )\n      .subscribe((next) => {\n        this.visible = next.isIntersecting;\n        next.isIntersecting ? this.setTimer() : this.resetTimer();\n      });\n  }\n\n  private swipeSubscribe(subscribe: boolean = true): void {\n    if (this.touch() && subscribe) {\n      const carouselElement = this.#hostElement.nativeElement;\n      const touchStart$ = fromEvent<TouchEvent>(carouselElement, 'touchstart');\n      const touchEnd$ = fromEvent<TouchEvent>(carouselElement, 'touchend');\n      const touchMove$ = fromEvent<TouchEvent>(carouselElement, 'touchmove');\n      this.swipeSubscription = touchStart$\n        .pipe(zipWith(touchEnd$.pipe(withLatestFrom(touchMove$))), takeUntilDestroyed(this.#destroyRef))\n        .subscribe(([touchstart, [touchend, touchmove]]) => {\n          touchstart.stopPropagation();\n          touchmove.stopPropagation();\n          const distanceX = touchstart.touches[0]?.clientX - touchmove.touches[0]?.clientX || 0;\n          if (Math.abs(distanceX) > 0.3 * carouselElement.clientWidth && touchstart.timeStamp <= touchmove.timeStamp) {\n            const nextIndex = this.#carouselState.direction(distanceX > 0 ? 'next' : 'prev');\n            this.#carouselState.state = { activeItemIndex: nextIndex };\n          }\n        });\n    } else {\n      this.swipeSubscription?.unsubscribe();\n    }\n  }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n  selector: 'c-carousel-caption',\n  template: '<ng-content />',\n  styleUrls: ['./carousel-caption.component.scss'],\n  host: {\n    '[class.carousel-caption]': 'true'\n  }\n})\nexport class CarouselCaptionComponent {}\n","import { Component, computed, inject, input, linkedSignal } from '@angular/core';\n\nimport { CarouselState } from '../carousel-state';\n\n@Component({\n  selector: 'c-carousel-control',\n  templateUrl: './carousel-control.component.html',\n  exportAs: 'cCarouselControl',\n  host: {\n    '[attr.role]': 'role()',\n    '[class]': 'hostClasses()',\n    '(keyup)': 'onKeyUp($event)',\n    '(click)': 'onClick($event)'\n  }\n})\nexport class CarouselControlComponent {\n  readonly #carouselState = inject(CarouselState);\n\n  /**\n   * Carousel control caption. [docs]\n   * @return string\n   */\n  readonly captionInput = input<string | undefined>(undefined, { alias: 'caption' });\n\n  readonly caption = linkedSignal({\n    source: this.captionInput,\n    computation: (value) => {\n      return !!value ? value : this.direction() === 'prev' ? 'Previous' : 'Next';\n    }\n  });\n\n  /**\n   * Carousel control direction.\n   * @return {'next' | 'prev'}\n   */\n  readonly direction = input<'prev' | 'next'>('next');\n\n  /**\n   * Carousel control role.\n   * @return string\n   */\n  readonly role = input('button');\n\n  readonly hostClasses = computed(() => {\n    return `carousel-control-${this.direction()}`;\n  });\n\n  readonly carouselControlIconClass = computed(() => {\n    return `carousel-control-${this.direction()}-icon`;\n  });\n\n  onKeyUp($event: KeyboardEvent): void {\n    if ($event.key === 'Enter') {\n      this.#play();\n    }\n    if ($event.key === 'ArrowLeft') {\n      this.#play('prev');\n    }\n    if ($event.key === 'ArrowRight') {\n      this.#play('next');\n    }\n  }\n\n  onClick($event: MouseEvent): void {\n    this.#play();\n  }\n\n  #play(direction = this.direction()): void {\n    const nextIndex = this.#carouselState.direction(direction);\n    this.#carouselState.state = { activeItemIndex: nextIndex };\n  }\n}\n","<ng-content>\n  <span [attr.aria-hidden]=\"true\" [class]=\"carouselControlIconClass()\"></span>\n  <span class=\"visually-hidden\">{{ caption() }}</span>\n</ng-content>\n","import { Component, computed, contentChildren, DestroyRef, inject, OnInit, TemplateRef } from '@angular/core';\n\nimport { CarouselState } from '../carousel-state';\nimport { CarouselService } from '../carousel.service';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { TemplateIdDirective } from '../../shared';\n\n@Component({\n  selector: 'c-carousel-indicators',\n  exportAs: 'cCarouselIndicators',\n  imports: [NgTemplateOutlet],\n  templateUrl: './carousel-indicators.component.html',\n  host: { class: 'carousel-indicators' }\n})\nexport class CarouselIndicatorsComponent implements OnInit {\n  readonly #destroyRef = inject(DestroyRef);\n  readonly #carouselService = inject(CarouselService);\n  readonly #carouselState = inject(CarouselState);\n\n  items: (number | undefined)[] = [];\n  active = 0;\n\n  readonly contentTemplates = contentChildren(TemplateIdDirective, { descendants: true });\n\n  readonly templates = computed(() => {\n    return this.contentTemplates().reduce(\n      (acc, child) => {\n        acc[child.id] = child.templateRef;\n        return acc;\n      },\n      {} as Record<string, TemplateRef<any>>\n    );\n  });\n\n  ngOnInit(): void {\n    this.#carouselService.carouselIndex$.pipe(takeUntilDestroyed(this.#destroyRef)).subscribe((nextIndex) => {\n      this.items = this.#carouselState?.state?.items?.map((item) => item.index) ?? [];\n      if ('active' in nextIndex) {\n        this.active = nextIndex.active ?? 0;\n      }\n    });\n  }\n\n  onClick(index: number): void {\n    if (index !== this.active) {\n      const direction = index < this.active ? 'prev' : 'next';\n      this.#carouselState.state = { direction, activeItemIndex: index };\n    }\n  }\n}\n","@let tmpl = templates();\n<ng-container *ngTemplateOutlet=\"tmpl['carouselIndicatorsTemplate'] || defaultCarouselIndicatorsTemplate; context: {$implicit: items, active: active}\" />\n\n<ng-template #defaultCarouselIndicatorsTemplate>\n  @for (item of items; track item; let i = $index) {\n    <button\n      [attr.data-coreui-target]=\"i\"\n      type=\"button\"\n      (click)=\"onClick(i)\"\n      [class]=\"{ active: active === i }\"\n      [attr.aria-current]=\"active === i\">\n    </button>\n  }\n</ng-template>\n","import { booleanAttribute, Component, DestroyRef, inject, input, linkedSignal } from '@angular/core';\n\nimport { CarouselService } from '../carousel.service';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Component({\n  selector: 'c-carousel-item',\n  templateUrl: './carousel-item.component.html',\n  styleUrls: ['./carousel-item.component.scss'],\n  exportAs: 'cCarouselItem',\n  host: {\n    class: 'carousel-item',\n    '[class.active]': 'active()',\n    '[attr.role]': 'role()'\n  }\n})\nexport class CarouselItemComponent {\n  readonly #destroyRef = inject(DestroyRef);\n  readonly #carouselService = inject(CarouselService);\n\n  index?: number;\n\n  /**\n   * @ignore\n   */\n  readonly activeInput = input(false, { transform: booleanAttribute, alias: 'active' });\n\n  readonly active = linkedSignal({\n    source: this.activeInput,\n    computation: (value) => {\n      return value;\n    }\n  });\n\n  /**\n   * Time delay before cycling to next item. If -1, uses carousel interval value.\n   * @return number\n   * @default -1\n   */\n  readonly interval = input<number>(-1);\n\n  /**\n   * Carousel item role.\n   * @return string\n   * @default 'group'\n   */\n  readonly role = input('group');\n\n  constructor() {\n    this.#carouselService.carouselIndex$.pipe(takeUntilDestroyed(this.#destroyRef)).subscribe((nextIndex) => {\n      if ('active' in nextIndex) {\n        this.active.set(nextIndex.active === this.index);\n      }\n    });\n  }\n}\n","@if (active()) {\n  <ng-content />\n}\n","import { animate, animation, group, query, state, style, transition, trigger, useAnimation } from '@angular/animations';\n\nexport function toSlideLeft(fromState: any, toState: any): boolean {\n  return toState.left === true && toState.type === 'slide';\n}\n\nexport function toSlideRight(fromState: any, toState: any): boolean {\n  return toState.left === false && toState.type === 'slide';\n}\n\nexport function toFadeLeft(fromState: any, toState: any): boolean {\n  return toState.left === true && toState.type !== 'slide';\n}\n\nexport function toFadeRight(fromState: any, toState: any): boolean {\n  return toState.left === false && toState.type !== 'slide';\n}\n\nexport const slideAnimationLeft = animation(\n  group([\n    query(\n      ':leave',\n      [\n        animate(\n          '0.6s ease-in-out',\n          style({\n            transform: 'translateX(-100%)'\n          })\n        )\n      ],\n      { optional: true }\n    ),\n    query(\n      ':enter',\n      [\n        style({\n          transform: 'translateX(100%)'\n        }),\n        animate('0.6s ease-in-out', style('*'))\n      ],\n      { optional: true }\n    )\n  ])\n);\n\nexport const slideAnimationRight = animation(\n  group([\n    query(\n      ':enter',\n      [\n        style({\n          transform: 'translateX(-100%)'\n        }),\n        animate('0.6s ease-in-out', style('*'))\n      ],\n      { optional: true }\n    ),\n    query(\n      ':leave',\n      [\n        animate(\n          '0.6s ease-in-out',\n          style({\n            transform: 'translateX(100%)'\n          })\n        )\n      ],\n      { optional: true }\n    )\n  ])\n);\n\nexport const fadeAnimationLeft = animation(\n  group([\n    query(\n      ':leave',\n      [\n        animate(\n          '0.9s ease-in-out',\n          style({\n            zIndex: 0,\n            opacity: 0\n          })\n        )\n      ],\n      { optional: true }\n    ),\n    query(\n      ':enter',\n      [\n        style({\n          zIndex: 1,\n          opacity: 1\n        }),\n        animate('0.6s ease-in-out', style('*'))\n      ],\n      { optional: true }\n    )\n  ])\n);\nexport const fadeAnimationRight = animation(\n  group([\n    query(\n      ':enter',\n      [\n        style({\n          zIndex: 1,\n          opacity: 1\n        }),\n        animate('0.6s ease-in-out', style('*'))\n      ],\n      { optional: true }\n    ),\n    query(\n      ':leave',\n      [\n        animate(\n          '0.9s ease-in-out',\n          style({\n            zIndex: 0,\n            opacity: 0\n          })\n        )\n      ],\n      { optional: true }\n    )\n  ])\n);\n\nexport const carouselPlay = trigger('carouselPlay', [\n  state('*', style({ transform: 'translateX(0)', display: 'block', opacity: 1 })),\n  transition(toFadeLeft, useAnimation(fadeAnimationLeft)),\n  transition(toFadeRight, useAnimation(fadeAnimationRight)),\n  transition(toSlideLeft, useAnimation(slideAnimationLeft)),\n  transition(toSlideRight, useAnimation(slideAnimationRight))\n]);\n","import {\n  AfterContentChecked,\n  AfterContentInit,\n  Component,\n  computed,\n  contentChildren,\n  inject,\n  signal\n} from '@angular/core';\nimport { CarouselItemComponent } from '../carousel-item/carousel-item.component';\nimport { CarouselState } from '../carousel-state';\nimport { carouselPlay } from '../carousel.animation';\n\n@Component({\n  selector: 'c-carousel-inner',\n  styleUrls: ['./carousel-inner.component.scss'],\n  animations: [carouselPlay],\n  template: '<ng-content />',\n  host: {\n    class: 'carousel-inner',\n    '[@carouselPlay]': 'slideType()',\n    '[@.disabled]': '!animate()',\n    '[attr.aria-live]': 'ariaLive()'\n  }\n})\nexport class CarouselInnerComponent implements AfterContentInit, AfterContentChecked {\n  readonly #carouselState = inject(CarouselState);\n\n  readonly activeIndex = signal<number | undefined>(undefined);\n  readonly animate = signal<boolean>(true);\n  readonly interval = signal<number>(0);\n  readonly slide = signal({ left: true });\n  readonly transition = signal('crossfade');\n\n  readonly slideType = computed(() => {\n    return { left: this.slide().left, type: this.transition() };\n  });\n\n  readonly ariaLive = computed(() => {\n    return this.interval() ? 'off' : 'polite';\n  });\n\n  readonly contentItems = contentChildren(CarouselItemComponent);\n  readonly #prevContentItems = signal<CarouselItemComponent[]>([]);\n\n  ngAfterContentInit(): void {\n    this.setItems();\n  }\n\n  ngAfterContentChecked(): void {\n    this.setItems();\n    const state = this.#carouselState?.state;\n    const nextIndex = state?.activeItemIndex;\n    const nextDirection = state?.direction;\n    if (this.activeIndex() !== nextIndex) {\n      this.animate.set(state?.animate ?? false);\n      this.activeIndex.set(state?.activeItemIndex);\n      this.interval.set(state?.interval ?? 0);\n      this.slide.set({ left: nextDirection === 'next' });\n      this.transition.set(state?.transition ?? 'slide');\n    }\n  }\n\n  setItems(): void {\n    const contentItems = this.contentItems();\n    if (this.#prevContentItems() !== contentItems) {\n      this.#prevContentItems.set([...contentItems]);\n      this.#carouselState.setItems(contentItems);\n    }\n  }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\n\nimport { CarouselComponent } from './carousel/carousel.component';\nimport { CarouselCaptionComponent } from './carousel-caption/carousel-caption.component';\nimport { CarouselControlComponent } from './carousel-control/carousel-control.component';\nimport { CarouselIndicatorsComponent } from './carousel-indicators/carousel-indicators.component';\nimport { CarouselInnerComponent } from './carousel-inner/carousel-inner.component';\nimport { CarouselItemComponent } from './carousel-item/carousel-item.component';\nimport { CarouselService } from './carousel.service';\nimport { CarouselState } from './carousel-state';\nimport { CarouselConfig } from './carousel.config';\n\n@NgModule({\n  imports: [\n    CarouselComponent,\n    CarouselCaptionComponent,\n    CarouselControlComponent,\n    CarouselIndicatorsComponent,\n    CarouselInnerComponent,\n    CarouselItemComponent\n  ],\n  providers: [CarouselService, CarouselState, CarouselConfig],\n  exports: [\n    CarouselComponent,\n    CarouselCaptionComponent,\n    CarouselControlComponent,\n    CarouselIndicatorsComponent,\n    CarouselInnerComponent,\n    CarouselItemComponent\n  ]\n})\nexport class CarouselModule {\n  static forRoot(): ModuleWithProviders<CarouselModule> {\n    return { ngModule: CarouselModule, providers: [] };\n  }\n}\n","import { booleanAttribute, Directive, input } from '@angular/core';\n\n@Directive({\n  selector: 'form[cForm]',\n  host: { '[class.was-validated]': 'validated()' }\n})\nexport class FormDirective {\n  /**\n   * Mark a form as validated. If you set it `true`, all validation styles will be applied to the form. [docs]\n   * @return boolean\n   * @default false\n   */\n  readonly validated = input(false, { transform: booleanAttribute });\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n  selector: 'label[cFormCheckLabel]',\n  host: { class: 'form-check-label' }\n})\nexport class FormCheckLabelDirective {}\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport { booleanAttribute, Component, computed, contentChild, input } from '@angular/core';\nimport { FormCheckLabelDirective } from './form-check-label.directive';\n\n@Component({\n  selector: 'c-form-check',\n  template: '<ng-content />',\n  exportAs: 'cFormCheck',\n  host: { '[class]': 'hostClasses()' }\n})\nexport class FormCheckComponent {\n  static ngAcceptInputType_inline: BooleanInput;\n  static ngAcceptInputType_reverse: BooleanInput;\n  static ngAcceptInputType_switch: BooleanInput;\n\n  /**\n   * Group checkboxes or radios on the same horizontal row.\n   * @default false\n   */\n  readonly inline = input(false, { transform: booleanAttribute });\n\n  /**\n   * Put checkboxes or radios on the opposite side.\n   * @default false\n   * @since 4.4.7\n   */\n  readonly reverse = input(false, { transform: booleanAttribute });\n\n  /**\n   * Size the component large or extra large. Works only with `[switch]=\"true\"` [docs]\n   * @default undefined\n   */\n  readonly sizing = input<'' | 'lg' | 'xl' | string>();\n\n  /**\n   * Render a toggle switch on for checkbox.\n   * @returns boolean\n   * @default false\n   */\n  readonly switch = input(false, { transform: booleanAttribute });\n\n  readonly formCheckLabel = contentChild(FormCheckLabelDirective);\n\n  readonly hostClasses = computed(() => {\n    const sizing = this.sizing();\n    const isSwitch = this.switch();\n\n    return {\n      'form-check': !!this.formCheckLabel(),\n      'form-switch': isSwitch,\n      [`form-switch-${sizing}`]: isSwitch && !!sizing,\n      'form-check-inline': this.inline(),\n      'form-check-reverse': this.reverse()\n    } as Record<string, boolean>;\n  });\n}\n","import { booleanAttribute, computed, Directive, ElementRef, inject, input, OnInit } from '@angular/core';\n\nimport { InputType } from '../../coreui.types';\n\n@Directive({\n  selector: 'input[cFormControl], textarea[cFormControl]',\n  host: {\n    '[class]': 'hostClasses()',\n    '[attr.type]': 'type()'\n  }\n})\nexport class FormControlDirective implements OnInit {\n  readonly #hostElement = inject(ElementRef);\n\n  /**\n   * Size the component small or large.\n   * @default undefined\n   */\n  readonly sizing = input<'' | 'sm' | 'lg' | string>();\n\n  /**\n   * Set component validation state to valid.\n   * @default undefined\n   */\n  readonly valid = input<boolean>();\n\n  /**\n   * Specifies the type of input element.\n   */\n  readonly type = input<Omit<InputType, 'checkbox' | 'radio'>>('text');\n\n  /**\n   * Render the component styled as plain text. Removes the default form field styling and preserve the correct margin and padding. Recommend to use alongside `readonly`\n   * @default false\n   */\n  readonly plaintext = input(false, { transform: booleanAttribute });\n\n  readonly hostClasses = computed(() => {\n    const type = this.type();\n    const isRange = type === 'range';\n    const plaintext = this.plaintext();\n    const sizing = this.sizing();\n    const valid = this.valid();\n\n    return {\n      'form-control': !isRange && !plaintext,\n      'form-control-plaintext': !isRange && plaintext,\n      'form-control-color': type === 'color',\n      'form-range': isRange,\n      [`form-control-${sizing}`]: !!sizing && !isRange,\n      'is-valid': valid === true,\n      'is-invalid': valid === false\n    } as Record<string, boolean>;\n  });\n\n  get hostTag(): string {\n    return this.#hostElement.nativeElement.tagName;\n  }\n\n  ngOnInit(): void {\n    const hostTag = this.hostTag.toLowerCase();\n    if (hostTag !== 'input' && hostTag !== 'textarea') {\n      console.warn(`CoreUI [cFormControl] works with '<input>' and '<textarea>' - not with '<${hostTag}>'`);\n    }\n  }\n}\n","import {\n  booleanAttribute,\n  computed,\n  Directive,\n  effect,\n  ElementRef,\n  inject,\n  input,\n  linkedSignal,\n  Renderer2\n} from '@angular/core';\nimport { BooleanInput } from '@angular/cdk/coercion';\n\n@Directive({\n  selector: 'input[cFormCheckInput]',\n  host: {\n    class: 'form-check-input',\n    '[class]': 'hostClasses()',\n    '[attr.type]': 'type()'\n  }\n})\nexport class FormCheckInputDirective {\n  static ngAcceptInputType_indeterminate: BooleanInput;\n\n  readonly #renderer = inject(Renderer2);\n  readonly #hostElement = inject(ElementRef);\n\n  /**\n   * Specifies the type of component.\n   * @default 'checkbox'\n   */\n  readonly type = input<'checkbox' | 'radio'>('checkbox');\n\n  /**\n   * Set component indeterminate state.\n   * @default false\n   */\n  readonly indeterminateInput = input(false, { transform: booleanAttribute, alias: 'indeterminate' });\n\n  readonly #indeterminate = linkedSignal(this.indeterminateInput);\n\n  readonly #indeterminateEffect = effect(() => {\n    if (this.type() === 'checkbox') {\n      const indeterminate = this.#indeterminate();\n      const htmlInputElement = this.#hostElement.nativeElement as HTMLInputElement;\n      if (indeterminate) {\n        this.#renderer.setProperty(htmlInputElement, 'checked', false);\n      }\n      this.#renderer.setProperty(htmlInputElement, 'indeterminate', indeterminate);\n    }\n  });\n\n  get indeterminate() {\n    return this.#indeterminate();\n  }\n\n  /**\n   * Set component validation state to valid.\n   * @default undefined\n   */\n  readonly valid = input<boolean>();\n\n  readonly hostClasses = computed(() => {\n    const valid = this.valid();\n    return {\n      'form-check-input': true,\n      'is-valid': valid === true,\n      'is-invalid': valid === false\n    } as Record<string, boolean>;\n  });\n\n  get checked(): boolean {\n    return this.#hostElement?.nativeElement?.checked;\n  }\n}\n","import { booleanAttribute, Component, computed, input } from '@angular/core';\n\n@Component({\n  selector: 'c-form-feedback',\n  template: '<ng-content />',\n  host: { '[class]': 'hostClasses()' }\n})\nexport class FormFeedbackComponent {\n  /**\n   * If your form layout allows it, you can display validation feedback in a styled tooltip.\n   * @default false\n   */\n  readonly tooltip = input(false, { transform: booleanAttribute });\n\n  /**\n   * Set component validation state to valid.\n   * @default undefined\n   */\n  readonly valid = input<boolean>();\n\n  readonly hostClasses = computed(() => {\n    const status = this.valid() === true ? 'valid' : 'invalid';\n    const type = this.tooltip() ? 'tooltip' : 'feedback';\n    return {\n      [`${status}-${type}`]: true\n      // 'valid-feedback': valid === true && !tooltip,\n      // 'valid-tooltip': valid === true && tooltip,\n      // 'invalid-feedback': valid !== true && !tooltip,\n      // 'invalid-tooltip': valid !== true && tooltip\n    } as Record<string, boolean>;\n  });\n}\n","import { booleanAttribute, Directive, input } from '@angular/core';\n\n@Directive({\n  selector: '[cFormFloating]',\n  host: { '[class.form-floating]': 'floating()' }\n})\nexport class FormFloatingDirective {\n  /**\n   * Enable floating labels\n   * @dafault boolean\n   */\n  readonly floating = input(true, { transform: booleanAttribute, alias: 'cFormFloating' });\n}\n","import { computed, Directive, input } from '@angular/core';\n\n@Directive({\n  selector: '[cLabel]',\n  host: { class: 'form-label', '[class]': 'hostClasses()' }\n})\nexport class FormLabelDirective {\n  /**\n   * For horizontal forms set labels to 'col' and make them vertically centered with their associated form controls.\n   * @default ''\n   */\n  readonly col = input<'col' | ''>('', { alias: 'cLabel' });\n  /**\n   * Size the label small or large.\n   * @default ''\n   */\n  readonly sizing = input<'' | 'sm' | 'lg' | string>();\n\n  readonly hostClasses = computed(() => {\n    const col = this.col();\n    const sizing = this.sizing();\n    return {\n      'form-label': true,\n      'col-form-label': col === 'col',\n      [`col-form-label-${sizing}`]: !!sizing && col === 'col'\n    } as Record<string, boolean>;\n  });\n}\n","import { Component, input } from '@angular/core';\n\n@Component({\n  selector: 'c-form-password-action',\n  templateUrl: './form-password-action.component.html',\n  styleUrl: './form-password-action.component.scss'\n})\nexport class FormPasswordActionComponent {\n  /**\n   * Sets the accessible label (`aria-label`) for the toggle password visibility button. This improves accessibility for screen readers and should describe the action, e.g. `\"Show password\"` or `\"Hide password\"`.\n   * @default 'Toggle password visibility'\n   */\n  readonly ariaLabelToggler = input('Toggle password visibility');\n\n  /**\n   * Sets disabled state of the toggle password visibility button. When `true`, the user cannot interact with the button.\n   * @default false\n   */\n  readonly disabled = input(false);\n\n  handleClick($event: MouseEvent) {\n    // fix for Safari\n    (<HTMLButtonElement>$event.currentTarget)?.focus();\n  }\n}\n","<button\n  [attr.aria-label]=\"ariaLabelToggler()\"\n  class=\"form-password-action\"\n  data-coreui-toggle=\"password\"\n  type=\"button\"\n  [disabled]=\"disabled()\"\n  (click)=\"handleClick($event)\"\n>\n  <span class=\"form-password-action-icon\"></span>\n</button>\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport { FocusMonitor } from '@angular/cdk/a11y';\nimport {\n  afterNextRender,\n  booleanAttribute,\n  computed,\n  DestroyRef,\n  Directive,\n  effect,\n  ElementRef,\n  inject,\n  input,\n  linkedSignal,\n  OnDestroy,\n  OnInit,\n  Renderer2,\n  ViewContainerRef\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { distinctUntilChanged } from 'rxjs/operators';\nimport { FormPasswordActionComponent } from './form-password-action/form-password-action.component';\n\n@Directive({\n  selector: 'input[cFormPassword]',\n  host: {\n    '[class]': 'hostClasses()',\n    '[type]': 'type()',\n    '[disabled]': 'disabled()',\n    '[readonly]': 'readOnly()'\n  }\n})\nexport class FormPasswordDirective implements OnDestroy, OnInit {\n  static ngAcceptInputType_disabled: BooleanInput;\n  static ngAcceptInputType_readOnly: BooleanInput;\n  static ngAcceptInputType_showPassword: BooleanInput;\n\n  readonly #hostElement = inject(ElementRef);\n  readonly #destroyRef = inject(DestroyRef);\n  readonly #renderer = inject(Renderer2);\n  readonly viewContainerRef = inject(ViewContainerRef);\n  readonly #focusMonitor = inject(FocusMonitor);\n\n  readonly #wrapper: HTMLDivElement = this.#renderer.createElement('div');\n  readonly #actionButtonRef = this.viewContainerRef.createComponent(FormPasswordActionComponent);\n  #unListen: (() => void) | undefined;\n\n  readonly #afterNextRender = afterNextRender({\n    write: () => {\n      // this fixes RuntimeError: NG0500: During hydration Angular expected <input> but found <div>.\n      // Find more at https://angular.dev/errors/NG0500\n      const nativeElement: HTMLInputElement = this.#hostElement.nativeElement;\n      const parentNode: HTMLElement = this.#renderer.parentNode(nativeElement);\n      const wrapper: HTMLDivElement = this.#wrapper;\n      const actionButton: HTMLButtonElement = this.#actionButtonRef.location.nativeElement.querySelector('button');\n\n      this.#renderer.addClass(wrapper, 'form-password');\n      this.#renderer.appendChild(parentNode, wrapper);\n      this.#renderer.insertBefore(parentNode, wrapper, nativeElement);\n\n      this.#renderer.appendChild(wrapper, nativeElement);\n      this.#renderer.appendChild(wrapper, actionButton);\n      this.#renderer.removeChild(wrapper, this.#actionButtonRef.location.nativeElement);\n\n      this.#addFloatingLabel();\n    }\n  });\n\n  ngOnInit(): void {\n    const actionButton: HTMLButtonElement = this.#actionButtonRef.location.nativeElement.querySelector('button');\n\n    this.#unListen = this.#renderer.listen(actionButton, 'click', () => {\n      this.#passwordVisible.update((value) => !value);\n    });\n\n    this.#focusMonitor\n      .monitor(this.#wrapper, true)\n      .pipe(distinctUntilChanged(), takeUntilDestroyed(this.#destroyRef))\n      .subscribe((origin) => {\n        this.#passwordVisible.update((value) => (origin ? value : false));\n        this.#renderer.setAttribute(actionButton, 'tabindex', origin ? '0' : '-1');\n      });\n  }\n\n  /**\n   * Sets the accessible label (`aria-label`) for the toggle password visibility button. This improves accessibility for screen readers and should describe the action, e.g. `\"Show password\"` or `\"Hide password\"`.\n   * @default 'Toggle password visibility'\n   */\n  readonly ariaLabelToggler = input('Toggle password visibility');\n\n  readonly #ariaLabelTogglerEffect = effect(() => {\n    this.#actionButtonRef?.setInput(\n      'ariaLabelToggler',\n      this.ariaLabelToggler() ?? this.#actionButtonRef.instance.ariaLabelToggler()\n    );\n  });\n\n  /**\n   * Sets disabled state of the password input field. When `true`, the user cannot interact with the field.\n   * @dafault false\n   */\n  readonly disabled = input(false, { transform: booleanAttribute });\n\n  readonly #disabledEffect = effect(() => {\n    const disabled = this.disabled();\n    this.#actionButtonRef.setInput('disabled', disabled);\n  });\n\n  /**\n   * set form labels that float over the password input fields\n   * @reurnd string | undefined\n   */\n  readonly floatingLabel = input<string>();\n\n  /**\n   * Disables the password input field. When `true`, the user cannot interact with the field.\n   * @default false\n   */\n  readonly readOnly = input(false, { transform: booleanAttribute });\n\n  /**\n   * Size the component small or large.\n   * @default undefined\n   */\n  readonly sizing = input<'' | 'sm' | 'lg' | string>();\n\n  /**\n   * Set component validation state to valid.\n   * @default undefined\n   */\n  readonly valid = input<boolean>();\n\n  /**\n   * Controls the initial visibility of the password. When `true`, the input type is set to `\"text\"` instead of `\"password\"`. This allows **toggling password visibility** in Angular forms.\n   * @default false\n   */\n  readonly showPassword = input(false, { transform: booleanAttribute });\n  readonly #passwordVisible = linkedSignal(this.showPassword);\n\n  /**\n   * Specifies the type of input element.\n   */\n  readonly type = computed(() => {\n    return this.#passwordVisible() ? 'text' : 'password';\n  });\n\n  readonly hostClasses = computed(() => {\n    const sizing = this.sizing();\n    const valid = this.valid();\n\n    return {\n      'form-control': true,\n      [`form-control-${sizing}`]: !!sizing,\n      'is-valid': valid === true,\n      'is-invalid': valid === false\n    } as Record<string, boolean>;\n  });\n\n  readonly #validEffect = effect(() => {\n    const valid = this.valid();\n    this.#renderer.removeClass(this.#wrapper, 'is-valid');\n    this.#renderer.removeClass(this.#wrapper, 'is-invalid');\n    if (valid === true) {\n      this.#renderer.addClass(this.#wrapper, 'is-valid');\n    } else if (valid === false) {\n      this.#renderer.addClass(this.#wrapper, 'is-invalid');\n    }\n  });\n\n  ngOnDestroy(): void {\n    this.#unListen?.();\n    this.#focusMonitor.stopMonitoring(this.#wrapper);\n  }\n\n  #addFloatingLabel() {\n    const floatingLabel = this.floatingLabel();\n    const wrapper = this.#wrapper;\n    if (floatingLabel && !wrapper.classList.contains('form-floating')) {\n      const nativeElement: HTMLInputElement = this.#hostElement.nativeElement;\n      const placeholder = nativeElement.getAttribute('placeholder');\n      if (!placeholder) {\n        nativeElement.setAttribute('placeholder', floatingLabel);\n      }\n      const label = this.#renderer.createElement('label');\n      const text = this.#renderer.createText(floatingLabel);\n      this.#renderer.appendChild(label, text);\n      this.#renderer.addClass(label, 'form-label');\n      this.#renderer.appendChild(wrapper, label);\n      this.#renderer.addClass(wrapper, 'form-floating');\n    }\n  }\n}\n","import { computed, Directive, input } from '@angular/core';\n\n@Directive({\n  selector: 'select[cSelect]',\n  host: { class: 'form-select', '[class]': 'hostClasses()' }\n})\nexport class FormSelectDirective {\n  /**\n   * Size the component small or large.\n   * @default undefined\n   */\n  readonly sizing = input<'' | 'sm' | 'lg' | string>();\n\n  /**\n   * Set component validation state to valid.\n   * @default undefined\n   */\n  readonly valid = input<boolean>();\n\n  readonly hostClasses = computed(() => {\n    const sizing = this.sizing();\n    const valid = this.valid();\n    return {\n      'form-select': true,\n      [`form-select-${sizing}`]: !!sizing,\n      'is-valid': valid === true,\n      'is-invalid': valid === false\n    } as Record<string, boolean>;\n  });\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n  selector: '[cFormText]',\n  host: { class: 'form-text' }\n})\nexport class FormTextDirective {}\n","import { Component, computed, input } from '@angular/core';\n\n@Component({\n  selector: 'c-input-group',\n  template: '<ng-content />',\n  host: { class: 'input-group', '[class]': 'hostClasses()' }\n})\nexport class InputGroupComponent {\n  /**\n   * Size the component small or large.\n   */\n  readonly sizing = input<'' | 'sm' | 'lg' | string>();\n\n  readonly hostClasses = computed(() => {\n    const sizing = this.sizing();\n    return {\n      'input-group': true,\n      [`input-group-${sizing}`]: !!sizing\n    } as Record<string, boolean>;\n  });\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n  selector: '[cInputGroupText]',\n  host: { class: 'input-group-text' }\n})\nexport class InputGroupTextDirective {}\n","import { NgModule } from '@angular/core';\nimport { FormDirective } from './form/form.directive';\nimport { FormControlDirective } from './form-control/form-control.directive';\nimport { FormCheckComponent } from './form-check/form-check.component';\nimport { FormCheckLabelDirective } from './form-check/form-check-label.directive';\nimport { FormCheckInputDirective } from './form-check/form-check-input.directive';\nimport { FormFeedbackComponent } from './form-feedback/form-feedback.component';\nimport { FormFloatingDirective } from './form-floating/form-floating.directive';\nimport { FormLabelDirective } from './form-label/form-label.directive';\nimport { FormPasswordDirective } from './form-password/form-password.directive';\nimport { FormSelectDirective } from './form-select/form-select.directive';\nimport { FormTextDirective } from './form-text/form-text.directive';\nimport { InputGroupComponent } from './input-group/input-group.component';\nimport { InputGroupTextDirective } from './input-group-text/input-group-text.directive';\n\n@NgModule({\n  imports: [\n    FormDirective,\n    FormCheckComponent,\n    FormCheckLabelDirective,\n    FormCheckInputDirective,\n    FormControlDirective,\n    FormFeedbackComponent,\n    FormFloatingDirective,\n    FormLabelDirective,\n    FormPasswordDirective,\n    FormSelectDirective,\n    FormTextDirective,\n    InputGroupComponent,\n    InputGroupTextDirective\n  ],\n  exports: [\n    FormDirective,\n    FormCheckComponent,\n    FormCheckLabelDirective,\n    FormCheckInputDirective,\n    FormControlDirective,\n    FormFeedbackComponent,\n    FormFloatingDirective,\n    FormLabelDirective,\n    FormPasswordDirective,\n    FormSelectDirective,\n    FormTextDirective,\n    InputGroupComponent,\n    InputGroupTextDirective\n  ]\n})\nexport class FormModule {}\n","import { isValidDate } from '../calendar/calendar.utils';\n\nexport interface DateTimeFormatOptions {\n  localeMatcher?: 'best fit' | 'lookup' | undefined;\n  weekday?: 'long' | 'short' | 'narrow' | undefined;\n  era?: 'long' | 'short' | 'narrow' | undefined;\n  year?: 'numeric' | '2-digit' | undefined;\n  month?: 'numeric' | '2-digit' | 'long' | 'short' | 'narrow' | undefined;\n  day?: 'numeric' | '2-digit' | undefined;\n  hour?: 'numeric' | '2-digit' | undefined;\n  minute?: 'numeric' | '2-digit' | undefined;\n  second?: 'numeric' | '2-digit' | undefined;\n  timeZoneName?: 'long' | 'short' | undefined;\n  formatMatcher?: 'best fit' | 'basic' | undefined;\n  hour12?: boolean | undefined;\n  timeZone?: string | undefined;\n}\n\nexport type DayPeriod = ('am' | 'pm');\n\nexport interface ITimeValue {\n  value: number;\n  label: string;\n  dayPeriod?: DayPeriod;\n  disabled?: boolean;\n}\n\nexport interface IDayPeriods {\n  am: string;\n  pm: string;\n}\n\nexport const getSupportedLocale = (locale: string = 'default') => {\n  let supportedLocale: string;\n  try {\n    supportedLocale = Intl.DateTimeFormat.supportedLocalesOf(locale).length ? locale : 'default';\n  } catch (e) {\n    supportedLocale = 'default';\n  }\n  return supportedLocale;\n};\n\nexport const isHour12 = (locale: string = 'default'): boolean => {\n  const supportedLocale = getSupportedLocale(locale);\n  const hour12 = Intl.DateTimeFormat(supportedLocale, { timeStyle: 'short' }).resolvedOptions().hour12;\n  return hour12 ?? false;\n};\n\nexport const convert12hTo24h = (abbr: 'am' | 'pm', hour: number) => {\n  if (abbr === 'am' && hour === 12) {\n    return 0;\n  }\n  if (abbr === 'am') {\n    return hour;\n  }\n  if (abbr === 'pm' && hour === 12) {\n    return 12;\n  }\n  return hour + 12;\n};\n\nexport const convert24hTo12h = (hour: number) => hour % 12 || 12;\n\nexport const convertTimeToDate = (time: Date | string | null | undefined) =>\n  time ? (time instanceof Date ? new Date(time) : new Date(`1970-01-01 ${time}`)) : null;\n\n// export const getAmPm = (date: Date, locale: string) => {\n//   if (date.toLocaleTimeString(locale).includes('AM')) {\n//     return 'am'\n//   }\n//   if (date.toLocaleTimeString(locale).includes('PM')) {\n//     return 'pm'\n//   }\n//   return date.getHours() >= 12 ? 'pm' : 'am'\n// }\n\nexport const getAmPm = (date: Date, locale: string, options: DateTimeFormatOptions = {}): DayPeriod => {\n\n  const dayPeriods = getDayPeriods('en-US', options);\n  const time = new Intl.DateTimeFormat('en-US', { timeStyle: 'short', hour12: true }).format(date);\n\n  const dayPeriod = dayPeriods.find(element => time.includes(element.label));\n\n  return <DayPeriod>(dayPeriod?.value ?? (date.getHours() >= 12 ? 'pm' : 'am'));\n};\n\nexport const isAm = (date: Date) => {\n  return date.getHours() < 12;\n};\nexport const isPm = (date: Date) => {\n  return date.getHours() > 11;\n};\n\nexport const isValidTimeZone = (timeZone: unknown): boolean => {\n  try {\n    if (timeZone === undefined) {\n      return false;\n    }\n\n    if (!Intl || !Intl.DateTimeFormat().resolvedOptions().timeZone) {\n      throw new Error('Time zones not supported.');\n    }\n\n    if (typeof timeZone !== 'string') {\n      throw new Error(`Invalid timeZone type specified: ${timeZone}`);\n    }\n\n    try {\n      // throws an error if timezone is not valid\n      Intl.DateTimeFormat(undefined, { timeZone: timeZone });\n    } catch (error) {\n      throw new Error(`Invalid timeZone string specified: ${timeZone}`);\n    }\n\n    return true;\n  } catch (error) {\n    console.warn(error);\n    return false;\n  }\n};\n\nexport const getListOfHours = (locale: string, options: DateTimeFormatOptions = {}) => {\n  const hour12 = isHour12(locale);\n  const time = new Date(0);\n  return Array.from({ length: 24 }, (_, i) => {\n    time.setHours(i);\n    const dayPeriod = getAmPm(time, locale);\n    return {\n      value: i,\n      dayPeriod: <DayPeriod>dayPeriod,\n      label: time.toLocaleTimeString(locale, {\n        hour: '2-digit',\n        hour12: hour12,\n        minute: '2-digit',\n        second: '2-digit'\n      }).split(':')[0]\n    };\n  });\n};\n\nexport const getListOfMinutes = (locale: string, options: DateTimeFormatOptions = {}, valueAsString = false) => {\n  const d = new Date(0);\n  return Array.from({ length: 60 }, (_, i) => {\n    d.setMinutes(i);\n    return {\n      value: i,\n      // value: valueAsString ? i.toString() : i,\n      label: d.toLocaleTimeString(locale, {\n        // ...options,\n        hour: '2-digit',\n        hour12: false,\n        minute: '2-digit',\n        second: '2-digit'\n      }).split(':')[1]\n    };\n  });\n};\n\nexport const getListOfSeconds = (locale: string, options: DateTimeFormatOptions = {}, valueAsString = false) =>\n  Array.from({ length: 60 }, (_, i) => {\n    const d = new Date(0);\n    d.setSeconds(i);\n    return {\n      value: i,\n      // value: valueAsString ? i.toString() : i,\n      label: d.toLocaleTimeString(locale, {\n        // ...options,\n        hour: '2-digit',\n        hour12: false,\n        minute: '2-digit',\n        second: '2-digit'\n      }).split(':')[2]\n    };\n  });\n\nexport const getSelectedHour = (date: Date | null, locale: string) =>\n  date instanceof Date ? (isHour12(locale) ? convert24hTo12h(date.getHours()) : date.getHours()) : '';\n\nexport const getSelectedMinutes = (date: Date | null) => (date ? date.getMinutes() : '');\n\nexport const getSelectedSeconds = (date: Date | null) => (date ? date.getSeconds() : '');\n\n// export const isAmPm = (locale: string) =>\n//   ['am', 'AM', 'pm', 'PM'].some((el) => new Date().toLocaleString(locale).includes(el))\n\nexport const isAmPm = (locale: string = 'default') => {\n  const supportedLocale = getSupportedLocale(locale);\n  const date = new Date();\n  const time = new Intl.DateTimeFormat(supportedLocale, { timeStyle: 'short' }).format(date);\n  const isAmPm = time.match(/(?:\\p{L}\\p{M}\\p{P}*)+|(?:\\p{L}\\p{P}*)+/gu) ?? [];\n  return isAmPm.length > 0;\n};\n\nexport const isValidTime = (time: string | Date | number | any) => {\n  if (typeof time === 'string') {\n    return isValidDate(time) || isValidDate(new Date(`1970-01-01 ${time}`));\n  }\n  return isValidDate(time);\n  // const d = new Date(`1970-01-01 ${time}`)\n  // return d instanceof Date && d.getTime()\n};\n\n// export const _getDayPeriods = (locale: string = 'default', options: DateTimeFormatOptions = {}) => {\n//   const supportedLocale = getSupportedLocale(locale);\n//\n//   const dayPeriods = { am: 'am', pm: 'pm' };\n//\n//   const hour12 = isHour12(supportedLocale);\n//   if (!hour12) {\n//     return dayPeriods;\n//   }\n//\n//   const am = new Date(Date.UTC(1970, 0, 1, 0, 0, 0));\n//   const pm = new Date(Date.UTC(1970, 0, 1, 13, 0, 0));\n//\n//   const formatter = new Intl.DateTimeFormat(supportedLocale, { hour12: hour12, hour: 'numeric', timeZone: 'UTC' });\n//   dayPeriods.am = formatter.formatToParts(am).find(part => part.type === 'dayPeriod')?.value ?? 'am';\n//   dayPeriods.pm = formatter.formatToParts(pm).find(part => part.type === 'dayPeriod')?.value ?? 'pm'\n//   return dayPeriods;\n// };\n\nexport const getDayPeriods = (locale: string = 'default', options: DateTimeFormatOptions = {}) => {\n  const supportedLocale = getSupportedLocale(locale);\n\n  const dayPeriods = [\n    { value: 'am', label: 'am' },\n    { value: 'pm', label: 'pm' }\n  ];\n\n  const hour12 = isHour12(supportedLocale);\n  if (!hour12) {\n    return dayPeriods;\n  }\n\n  const am = new Date(Date.UTC(1970, 0, 1, 0, 0, 0));\n  const pm = new Date(Date.UTC(1970, 0, 1, 13, 0, 0));\n  const formatter = new Intl.DateTimeFormat(supportedLocale, { hour12: hour12, hour: 'numeric', timeZone: 'UTC' });\n  const formattedAm = formatter.formatToParts(am).find(part => part.type === 'dayPeriod')?.value ?? 'am';\n  const formattedPm = formatter.formatToParts(pm).find(part => part.type === 'dayPeriod')?.value ?? 'pm';\n\n  dayPeriods.forEach((element, index, dayPeriods) => {\n    dayPeriods[index].label = element.value === 'am' ? (formattedAm ?? 'am') : (formattedPm ?? 'pm');\n  });\n\n  return dayPeriods;\n};\n\n// testing\n// const langs = [\n//   ['Abkhazian', 'ab'],\n//   ['Afar', 'aa'],\n//   ['Afrikaans', 'af'],\n//   ['Akan', 'ak'],\n//   ['Albanian', 'sq'],\n//   ['Amharic', 'am'],\n//   ['Arabic', 'ar'],\n//   ['Aragonese', 'an'],\n//   ['Argentina', 'es-ar'],\n//   ['Armenian', 'hy'],\n//   ['Assamese', 'as'],\n//   ['Avaric', 'av'],\n//   ['Avestan', 'ae'],\n//   ['Aymara', 'ay'],\n//   ['Azerbaijani', 'az'],\n//   ['Bambara', 'bm'],\n//   ['Bashkir', 'ba'],\n//   ['Basque', 'eu'],\n//   ['Belarusian', 'be'],\n//   ['Bengali (Bangla)', 'bn'],\n//   ['Bihari', 'bh'],\n//   ['Bislama', 'bi'],\n//   ['Bosnian', 'bs'],\n//   ['Breton', 'br'],\n//   ['Bulgarian', 'bg'],\n//   ['Burmese', 'my'],\n//   ['Catalan', 'ca'],\n//   ['Chamorro', 'ch'],\n//   ['Chechen', 'ce'],\n//   ['Chichewa, Chewa, Nyanja', 'ny'],\n//   ['Chinese', 'zh'],\n//   ['Chinese (Simplified)', 'zh-Hans'],\n//   ['Chinese (Traditional)', 'zh-Hant'],\n//   ['Chuvash', 'cv'],\n//   ['Cornish', 'kw'],\n//   ['Corsican', 'co'],\n//   ['Cree', 'cr'],\n//   ['Croatian', 'hr'],\n//   ['Czech', 'cs'],\n//   ['Danish', 'da'],\n//   ['Divehi, Dhivehi, Maldivian', 'dv'],\n//   ['Dutch', 'nl'],\n//   ['Dzongkha', 'dz'],\n//   ['English', 'en'],\n//   ['Esperanto', 'eo'],\n//   ['Estonian', 'et'],\n//   ['Ewe', 'ee'],\n//   ['Faroese', 'fo'],\n//   ['Fijian', 'fj'],\n//   ['Finnish', 'fi'],\n//   ['French', 'fr'],\n//   ['Fula, Fulah, Pulaar, Pular', 'ff'],\n//   ['Galician', 'gl'],\n//   ['Gaelic (Scottish)', 'gd'],\n//   ['Gaelic (Manx)', 'gv'],\n//   ['Georgian', 'ka'],\n//   ['German', 'de'],\n//   ['Greek', 'el'],\n//   ['Greenlandic', 'kl'],\n//   ['Guarani', 'gn'],\n//   ['Gujarati', 'gu'],\n//   ['Haitian Creole', 'ht'],\n//   ['Hausa', 'ha'],\n//   ['Hebrew', 'he'],\n//   ['Herero', 'hz'],\n//   ['Hindi', 'hi'],\n//   ['Hiri Motu', 'ho'],\n//   ['Hungarian', 'hu'],\n//   ['Icelandic', 'is'],\n//   ['Ido', 'io'],\n//   ['Igbo', 'ig'],\n//   ['Indonesian', 'id', 'in'],\n//   ['Interlingua', 'ia'],\n//   ['Interlingue', 'ie'],\n//   ['Inuktitut', 'iu'],\n//   ['Inupiak', 'ik'],\n//   ['Irish', 'ga'],\n//   ['Italian', 'it'],\n//   ['Japanese', 'ja'],\n//   ['Javanese', 'jv'],\n//   ['Kalaallisut, Greenlandic', 'kl'],\n//   ['Kannada', 'kn'],\n//   ['Kanuri', 'kr'],\n//   ['Kashmiri', 'ks'],\n//   ['Kazakh', 'kk'],\n//   ['Khmer', 'km'],\n//   ['Kikuyu', 'ki'],\n//   ['Kinyarwanda (Rwanda)', 'rw'],\n//   ['Kirundi', 'rn'],\n//   ['Kyrgyz', 'ky'],\n//   ['Komi', 'kv'],\n//   ['Kongo', 'kg'],\n//   ['Korean', 'ko'],\n//   ['Kurdish', 'ku'],\n//   ['Kwanyama', 'kj'],\n//   ['Lao', 'lo'],\n//   ['Latin', 'la'],\n//   ['Latvian (Lettish)', 'lv'],\n//   ['Limburgish (Limburger)', 'li'],\n//   ['Lingala', 'ln'],\n//   ['Lithuanian', 'lt'],\n//   ['Luga-Katanga', 'lu'],\n//   ['Luganda, Ganda', 'lg'],\n//   ['Luxembourgish', 'lb'],\n//   ['Manx', 'gv'],\n//   ['Macedonian', 'mk'],\n//   ['Malagasy', 'mg'],\n//   ['Malay', 'ms'],\n//   ['Malayalam', 'ml'],\n//   ['Maltese', 'mt'],\n//   ['Maori', 'mi'],\n//   ['Marathi', 'mr'],\n//   ['Marshallese', 'mh'],\n//   ['Moldavian', 'mo'],\n//   ['Mongolian', 'mn'],\n//   ['Nauru', 'na'],\n//   ['Navajo', 'nv'],\n//   ['Ndonga', 'ng'],\n//   ['Northern Ndebele', 'nd'],\n//   ['Nepali', 'ne'],\n//   ['Norwegian', 'no'],\n//   ['Norwegian bokmål', 'nb'],\n//   ['Norwegian nynorsk', 'nn'],\n//   ['Nuosu', 'ii'],\n//   ['Occitan', 'oc'],\n//   ['Ojibwe', 'oj'],\n//   ['Old Church Slavonic, Old Bulgarian', 'cu'],\n//   ['Oriya', 'or'],\n//   ['Oromo (Afaan Oromo)', 'om'],\n//   ['Ossetian', 'os'],\n//   ['Pāli', 'pi'],\n//   ['Pashto, Pushto', 'ps'],\n//   ['Persian (Farsi)', 'fa'],\n//   ['Polish', 'pl'],\n//   ['Portuguese', 'pt'],\n//   ['Punjabi (Eastern)', 'pa'],\n//   ['Quechua', 'qu'],\n//   ['Romansh', 'rm'],\n//   ['Romanian', 'ro'],\n//   ['Russian', 'ru'],\n//   ['Sami', 'se'],\n//   ['Samoan', 'sm'],\n//   ['Sango', 'sg'],\n//   ['Sanskrit', 'sa'],\n//   ['Serbian', 'sr'],\n//   ['Serbo-Croatian', 'sh'],\n//   ['Sesotho', 'st'],\n//   ['Setswana', 'tn'],\n//   ['Shona', 'sn'],\n//   ['Sichuan Yi', 'ii'],\n//   ['Sindhi', 'sd'],\n//   ['Sinhalese', 'si'],\n//   ['Siswati', 'ss'],\n//   ['Slovak', 'sk'],\n//   ['Slovenian', 'sl'],\n//   ['Somali', 'so'],\n//   ['Southern Ndebele', 'nr'],\n//   ['Spanish', 'es'],\n//   ['Sundanese', 'su'],\n//   ['Swahili (Kiswahili)', 'sw'],\n//   ['Swati', 'ss'],\n//   ['Swedish', 'sv'],\n//   ['Tagalog', 'tl'],\n//   ['Tahitian', 'ty'],\n//   ['Tajik', 'tg'],\n//   ['Tamil', 'ta'],\n//   ['Tatar', 'tt'],\n//   ['Telugu', 'te'],\n//   ['Thai', 'th'],\n//   ['Tibetan', 'bo'],\n//   ['Tigrinya', 'ti'],\n//   ['Tonga', 'to'],\n//   ['Tsonga', 'ts'],\n//   ['Turkish', 'tr'],\n//   ['Turkmen', 'tk'],\n//   ['Twi', 'tw'],\n//   ['Uyghur', 'ug'],\n//   ['Ukrainian', 'uk'],\n//   ['Urdu', 'ur'],\n//   ['Uzbek', 'uz'],\n//   ['Venda', 've'],\n//   ['Vietnamese', 'vi'],\n//   ['Volapük', 'vo'],\n//   ['Wallon', 'wa'],\n//   ['Welsh', 'cy'],\n//   ['Wolof', 'wo'],\n//   ['Western Frisian', 'fy'],\n//   ['Xhosa', 'xh'],\n//   ['Yiddish', 'yi', 'ji'],\n//   ['Yoruba', 'yo'],\n//   ['Zhuang, Chuang', 'za'],\n//   ['Zulu', 'zu'],\n// ]\n//\n// langs.forEach(lang => {const period = getDayPeriods(lang[1]); if (period.am === 'AM') return; console.log(lang[1], period )})\n\n// Chrome / Opera\n// Amharic am {am: 'ጥዋት', pm: 'ከሰዓት'}\n// Arabic ar {am: 'ص', pm: 'م'}\n// Bulgarian bg {am: 'пр.об.', pm: 'сл.об.'}\n// Chinese (Traditional) zh-Hant {am: '上午', pm: '下午'}\n// Greek el {am: 'π.μ.', pm: 'μ.μ.'}\n// Hindi hi {am: 'am', pm: 'pm'}\n// Kannada kn {am: 'ಪೂರ್ವಾಹ್ನ', pm: 'ಅಪರಾಹ್ನ'}\n// Korean ko {am: '오전', pm: '오후'}\n// Malay ms {am: 'PG', pm: 'PTG'}\n// Tamil ta {am: 'முற்பகல்', pm: 'பிற்பகல்'}\n\n// Edge Chromium\n// Albanian sq {am: 'e paradites', pm: 'e pasdites'}\n// Amharic am {am: 'ጥዋት', pm: 'ከሰዓት'}\n// Arabic ar {am: 'ص', pm: 'م'}\n// Bulgarian bg {am: 'пр.об.', pm: 'сл.об.'}\n// Chinese (Traditional) zh-Hant {am: '上午', pm: '下午'}\n// Greek el {am: 'π.μ.', pm: 'μ.μ.'}\n// Hindi hi {am: 'am', pm: 'pm'}\n// Kannada kn {am: 'ಪೂರ್ವಾಹ್ನ', pm: 'ಅಪರಾಹ್ನ'}\n// Korean ko {am: '오전', pm: '오후'}\n// Malay ms {am: 'PG', pm: 'PTG'}\n// Punjabi (Eastern) pa {am: 'ਪੂ.ਦੁ.', pm: 'ਬਾ.ਦੁ.'}\n// Sindhi sd {am: 'صبح، منجهند', pm: 'منجهند، شام'}\n// Tamil ta {am: 'முற்பகல்', pm: 'பிற்பகல்'}\n\n// Firefox\n// Akan ak { am: \"AN\", pm: \"EW\" }\n// Albanian sq { am: \"e paradites\", pm: \"e pasdites\" }\n// Amharic am { am: \"ጥዋት\", pm: \"ከሰዓት\" }\n// Arabic ar { am: \"ص\", pm: \"م\" }\n// Assamese as { am: \"পূৰ্বাহ্ন\", pm: \"অপৰাহ্ন\" }\n// Bulgarian bg { am: \"пр.об.\", pm: \"сл.об.\" }\n// Chinese (Traditional) zh-Hant { am: \"上午\", pm: \"下午\" }\n// Dzongkha dz { am: \"སྔ་ཆ་\", pm: \"ཕྱི་ཆ་\" }\n// Ewe ee { am: \"ŋdi\", pm: \"ɣetrɔ\" }\n// Greek el { am: \"π.μ.\", pm: \"μ.μ.\" }\n// Hindi hi { am: \"am\", pm: \"pm\" }\n// Kannada kn { am: \"ಪೂರ್ವಾಹ್ನ\", pm: \"ಅಪರಾಹ್ನ\" }\n// Korean ko { am: \"오전\", pm: \"오후\" }\n// Malay ms { am: \"PG\", pm: \"PTG\" }\n// Oromo (Afaan Oromo) om { am: \"WD\", pm: \"WB\" }\n// Punjabi (Eastern) pa { am: \"ਪੂ.ਦੁ.\", pm: \"ਬਾ.ਦੁ.\" }\n// Sanskrit sa { am: \"पूर्वाह्न\", pm: \"अपराह्न\" }\n// Sindhi sd { am: \"صبح، منجهند\", pm: \"منجهند، شام\" }\n// Somali so { am: \"GH\", pm: \"GD\" }\n// Tamil ta { am: \"முற்பகல்\", pm: \"பிற்பகல்\" }\n// Tigrinya ti { am: \"ቅ.ቀ.\", pm: \"ድ.ቀ.\" }\n// Tonga to { am: \"hengihengi\", pm: \"efiafi\" }\n// Twi tw { am: \"AN\", pm: \"EW\" }\n\n// const formats = {\n//   \"ar-SA\" : \"dd/MM/yy\",\n//   \"bg-BG\" : \"dd.M.yyyy\",\n//   \"ca-ES\" : \"dd/MM/yyyy\",\n//   \"zh-TW\" : \"yyyy/M/d\",\n//   \"cs-CZ\" : \"d.M.yyyy\",\n//   \"da-DK\" : \"dd-MM-yyyy\",\n//   \"de-DE\" : \"dd.MM.yyyy\",\n//   \"el-GR\" : \"d/M/yyyy\",\n//   \"en-US\" : \"M/d/yyyy\",\n//   \"fi-FI\" : \"d.M.yyyy\",\n//   \"fr-FR\" : \"dd/MM/yyyy\",\n//   \"he-IL\" : \"dd/MM/yyyy\",\n//   \"hu-HU\" : \"yyyy. MM. dd.\",\n//   \"is-IS\" : \"d.M.yyyy\",\n//   \"it-IT\" : \"dd/MM/yyyy\",\n//   \"ja-JP\" : \"yyyy/MM/dd\",\n//   \"ko-KR\" : \"yyyy-MM-dd\",\n//   \"nl-NL\" : \"d-M-yyyy\",\n//   \"nb-NO\" : \"dd.MM.yyyy\",\n//   \"pl-PL\" : \"yyyy-MM-dd\",\n//   \"pt-BR\" : \"d/M/yyyy\",\n//   \"ro-RO\" : \"dd.MM.yyyy\",\n//   \"ru-RU\" : \"dd.MM.yyyy\",\n//   \"hr-HR\" : \"d.M.yyyy\",\n//   \"sk-SK\" : \"d. M. yyyy\",\n//   \"sq-AL\" : \"yyyy-MM-dd\",\n//   \"sv-SE\" : \"yyyy-MM-dd\",\n//   \"th-TH\" : \"d/M/yyyy\",\n//   \"tr-TR\" : \"dd.MM.yyyy\",\n//   \"ur-PK\" : \"dd/MM/yyyy\",\n//   \"id-ID\" : \"dd/MM/yyyy\",\n//   \"uk-UA\" : \"dd.MM.yyyy\",\n//   \"be-BY\" : \"dd.MM.yyyy\",\n//   \"sl-SI\" : \"d.M.yyyy\",\n//   \"et-EE\" : \"d.MM.yyyy\",\n//   \"lv-LV\" : \"yyyy.MM.dd.\",\n//   \"lt-LT\" : \"yyyy.MM.dd\",\n//   \"fa-IR\" : \"MM/dd/yyyy\",\n//   \"vi-VN\" : \"dd/MM/yyyy\",\n//   \"hy-AM\" : \"dd.MM.yyyy\",\n//   \"az-Latn-AZ\" : \"dd.MM.yyyy\",\n//   \"eu-ES\" : \"yyyy/MM/dd\",\n//   \"mk-MK\" : \"dd.MM.yyyy\",\n//   \"af-ZA\" : \"yyyy/MM/dd\",\n//   \"ka-GE\" : \"dd.MM.yyyy\",\n//   \"fo-FO\" : \"dd-MM-yyyy\",\n//   \"hi-IN\" : \"dd-MM-yyyy\",\n//   \"ms-MY\" : \"dd/MM/yyyy\",\n//   \"kk-KZ\" : \"dd.MM.yyyy\",\n//   \"ky-KG\" : \"dd.MM.yy\",\n//   \"sw-KE\" : \"M/d/yyyy\",\n//   \"uz-Latn-UZ\" : \"dd/MM yyyy\",\n//   \"tt-RU\" : \"dd.MM.yyyy\",\n//   \"pa-IN\" : \"dd-MM-yy\",\n//   \"gu-IN\" : \"dd-MM-yy\",\n//   \"ta-IN\" : \"dd-MM-yyyy\",\n//   \"te-IN\" : \"dd-MM-yy\",\n//   \"kn-IN\" : \"dd-MM-yy\",\n//   \"mr-IN\" : \"dd-MM-yyyy\",\n//   \"sa-IN\" : \"dd-MM-yyyy\",\n//   \"mn-MN\" : \"yy.MM.dd\",\n//   \"gl-ES\" : \"dd/MM/yy\",\n//   \"kok-IN\" : \"dd-MM-yyyy\",\n//   \"syr-SY\" : \"dd/MM/yyyy\",\n//   \"dv-MV\" : \"dd/MM/yy\",\n//   \"ar-IQ\" : \"dd/MM/yyyy\",\n//   \"zh-CN\" : \"yyyy/M/d\",\n//   \"de-CH\" : \"dd.MM.yyyy\",\n//   \"en-GB\" : \"dd/MM/yyyy\",\n//   \"es-MX\" : \"dd/MM/yyyy\",\n//   \"fr-BE\" : \"d/MM/yyyy\",\n//   \"it-CH\" : \"dd.MM.yyyy\",\n//   \"nl-BE\" : \"d/MM/yyyy\",\n//   \"nn-NO\" : \"dd.MM.yyyy\",\n//   \"pt-PT\" : \"dd-MM-yyyy\",\n//   \"sr-Latn-CS\" : \"d.M.yyyy\",\n//   \"sv-FI\" : \"d.M.yyyy\",\n//   \"az-Cyrl-AZ\" : \"dd.MM.yyyy\",\n//   \"ms-BN\" : \"dd/MM/yyyy\",\n//   \"uz-Cyrl-UZ\" : \"dd.MM.yyyy\",\n//   \"ar-EG\" : \"dd/MM/yyyy\",\n//   \"zh-HK\" : \"d/M/yyyy\",\n//   \"de-AT\" : \"dd.MM.yyyy\",\n//   \"en-AU\" : \"d/MM/yyyy\",\n//   \"es-ES\" : \"dd/MM/yyyy\",\n//   \"fr-CA\" : \"yyyy-MM-dd\",\n//   \"sr-Cyrl-CS\" : \"d.M.yyyy\",\n//   \"ar-LY\" : \"dd/MM/yyyy\",\n//   \"zh-SG\" : \"d/M/yyyy\",\n//   \"de-LU\" : \"dd.MM.yyyy\",\n//   \"en-CA\" : \"dd/MM/yyyy\",\n//   \"es-GT\" : \"dd/MM/yyyy\",\n//   \"fr-CH\" : \"dd.MM.yyyy\",\n//   \"ar-DZ\" : \"dd-MM-yyyy\",\n//   \"zh-MO\" : \"d/M/yyyy\",\n//   \"de-LI\" : \"dd.MM.yyyy\",\n//   \"en-NZ\" : \"d/MM/yyyy\",\n//   \"es-CR\" : \"dd/MM/yyyy\",\n//   \"fr-LU\" : \"dd/MM/yyyy\",\n//   \"ar-MA\" : \"dd-MM-yyyy\",\n//   \"en-IE\" : \"dd/MM/yyyy\",\n//   \"es-PA\" : \"MM/dd/yyyy\",\n//   \"fr-MC\" : \"dd/MM/yyyy\",\n//   \"ar-TN\" : \"dd-MM-yyyy\",\n//   \"en-ZA\" : \"yyyy/MM/dd\",\n//   \"es-DO\" : \"dd/MM/yyyy\",\n//   \"ar-OM\" : \"dd/MM/yyyy\",\n//   \"en-JM\" : \"dd/MM/yyyy\",\n//   \"es-VE\" : \"dd/MM/yyyy\",\n//   \"ar-YE\" : \"dd/MM/yyyy\",\n//   \"en-029\" : \"MM/dd/yyyy\",\n//   \"es-CO\" : \"dd/MM/yyyy\",\n//   \"ar-SY\" : \"dd/MM/yyyy\",\n//   \"en-BZ\" : \"dd/MM/yyyy\",\n//   \"es-PE\" : \"dd/MM/yyyy\",\n//   \"ar-JO\" : \"dd/MM/yyyy\",\n//   \"en-TT\" : \"dd/MM/yyyy\",\n//   \"es-AR\" : \"dd/MM/yyyy\",\n//   \"ar-LB\" : \"dd/MM/yyyy\",\n//   \"en-ZW\" : \"M/d/yyyy\",\n//   \"es-EC\" : \"dd/MM/yyyy\",\n//   \"ar-KW\" : \"dd/MM/yyyy\",\n//   \"en-PH\" : \"M/d/yyyy\",\n//   \"es-CL\" : \"dd-MM-yyyy\",\n//   \"ar-AE\" : \"dd/MM/yyyy\",\n//   \"es-UY\" : \"dd/MM/yyyy\",\n//   \"ar-BH\" : \"dd/MM/yyyy\",\n//   \"es-PY\" : \"dd/MM/yyyy\",\n//   \"ar-QA\" : \"dd/MM/yyyy\",\n//   \"es-BO\" : \"dd/MM/yyyy\",\n//   \"es-SV\" : \"dd/MM/yyyy\",\n//   \"es-HN\" : \"dd/MM/yyyy\",\n//   \"es-NI\" : \"dd/MM/yyyy\",\n//   \"es-PR\" : \"dd/MM/yyyy\",\n//   \"am-ET\" : \"d/M/yyyy\",\n//   \"tzm-Latn-DZ\" : \"dd-MM-yyyy\",\n//   \"iu-Latn-CA\" : \"d/MM/yyyy\",\n//   \"sma-NO\" : \"dd.MM.yyyy\",\n//   \"mn-Mong-CN\" : \"yyyy/M/d\",\n//   \"gd-GB\" : \"dd/MM/yyyy\",\n//   \"en-MY\" : \"d/M/yyyy\",\n//   \"prs-AF\" : \"dd/MM/yy\",\n//   \"bn-BD\" : \"dd-MM-yy\",\n//   \"wo-SN\" : \"dd/MM/yyyy\",\n//   \"rw-RW\" : \"M/d/yyyy\",\n//   \"qut-GT\" : \"dd/MM/yyyy\",\n//   \"sah-RU\" : \"MM.dd.yyyy\",\n//   \"gsw-FR\" : \"dd/MM/yyyy\",\n//   \"co-FR\" : \"dd/MM/yyyy\",\n//   \"oc-FR\" : \"dd/MM/yyyy\",\n//   \"mi-NZ\" : \"dd/MM/yyyy\",\n//   \"ga-IE\" : \"dd/MM/yyyy\",\n//   \"se-SE\" : \"yyyy-MM-dd\",\n//   \"br-FR\" : \"dd/MM/yyyy\",\n//   \"smn-FI\" : \"d.M.yyyy\",\n//   \"moh-CA\" : \"M/d/yyyy\",\n//   \"arn-CL\" : \"dd-MM-yyyy\",\n//   \"ii-CN\" : \"yyyy/M/d\",\n//   \"dsb-DE\" : \"d. M. yyyy\",\n//   \"ig-NG\" : \"d/M/yyyy\",\n//   \"kl-GL\" : \"dd-MM-yyyy\",\n//   \"lb-LU\" : \"dd/MM/yyyy\",\n//   \"ba-RU\" : \"dd.MM.yy\",\n//   \"nso-ZA\" : \"yyyy/MM/dd\",\n//   \"quz-BO\" : \"dd/MM/yyyy\",\n//   \"yo-NG\" : \"d/M/yyyy\",\n//   \"ha-Latn-NG\" : \"d/M/yyyy\",\n//   \"fil-PH\" : \"M/d/yyyy\",\n//   \"ps-AF\" : \"dd/MM/yy\",\n//   \"fy-NL\" : \"d-M-yyyy\",\n//   \"ne-NP\" : \"M/d/yyyy\",\n//   \"se-NO\" : \"dd.MM.yyyy\",\n//   \"iu-Cans-CA\" : \"d/M/yyyy\",\n//   \"sr-Latn-RS\" : \"d.M.yyyy\",\n//   \"si-LK\" : \"yyyy-MM-dd\",\n//   \"sr-Cyrl-RS\" : \"d.M.yyyy\",\n//   \"lo-LA\" : \"dd/MM/yyyy\",\n//   \"km-KH\" : \"yyyy-MM-dd\",\n//   \"cy-GB\" : \"dd/MM/yyyy\",\n//   \"bo-CN\" : \"yyyy/M/d\",\n//   \"sms-FI\" : \"d.M.yyyy\",\n//   \"as-IN\" : \"dd-MM-yyyy\",\n//   \"ml-IN\" : \"dd-MM-yy\",\n//   \"en-IN\" : \"dd-MM-yyyy\",\n//   \"or-IN\" : \"dd-MM-yy\",\n//   \"bn-IN\" : \"dd-MM-yy\",\n//   \"tk-TM\" : \"dd.MM.yy\",\n//   \"bs-Latn-BA\" : \"d.M.yyyy\",\n//   \"mt-MT\" : \"dd/MM/yyyy\",\n//   \"sr-Cyrl-ME\" : \"d.M.yyyy\",\n//   \"se-FI\" : \"d.M.yyyy\",\n//   \"zu-ZA\" : \"yyyy/MM/dd\",\n//   \"xh-ZA\" : \"yyyy/MM/dd\",\n//   \"tn-ZA\" : \"yyyy/MM/dd\",\n//   \"hsb-DE\" : \"d. M. yyyy\",\n//   \"bs-Cyrl-BA\" : \"d.M.yyyy\",\n//   \"tg-Cyrl-TJ\" : \"dd.MM.yy\",\n//   \"sr-Latn-BA\" : \"d.M.yyyy\",\n//   \"smj-NO\" : \"dd.MM.yyyy\",\n//   \"rm-CH\" : \"dd/MM/yyyy\",\n//   \"smj-SE\" : \"yyyy-MM-dd\",\n//   \"quz-EC\" : \"dd/MM/yyyy\",\n//   \"quz-PE\" : \"dd/MM/yyyy\",\n//   \"hr-BA\" : \"d.M.yyyy.\",\n//   \"sr-Latn-ME\" : \"d.M.yyyy\",\n//   \"sma-SE\" : \"yyyy-MM-dd\",\n//   \"en-SG\" : \"d/M/yyyy\",\n//   \"ug-CN\" : \"yyyy-M-d\",\n//   \"sr-Cyrl-BA\" : \"d.M.yyyy\",\n//   \"es-US\" : \"M/d/yyyy\"\n// };\n//\n// Object.keys(formats).forEach(lang => {const period = getDayPeriods(lang); if (period.am === 'AM') return; console.log(lang, period )})\n","import {\n  AfterViewInit,\n  booleanAttribute,\n  Component,\n  Directive,\n  ElementRef,\n  inject,\n  input,\n  linkedSignal,\n  OnChanges,\n  output,\n  QueryList,\n  SimpleChanges,\n  ViewChildren\n} from '@angular/core';\n\nimport { ITimeValue } from '../time.utils';\n\nexport interface ITimePickerRollCol {\n  elements: ITimeValue[];\n  onClick?: (value: number | string) => void;\n  selected?: number | string | null;\n}\n\n@Directive({\n  selector: '[cTimeElement]',\n  exportAs: 'cTimeElement',\n  standalone: true\n})\nexport class TimeElementDirective {\n  public readonly elementRef = inject(ElementRef);\n\n  readonly cTimeElement = input.required<ITimeValue>();\n}\n\n@Component({\n  selector: 'c-time-picker-roll-col',\n  templateUrl: './time-picker-roll-col.component.html',\n  styleUrls: ['./time-picker-roll-col.component.scss'],\n  exportAs: 'cTimePickerRollCol',\n  imports: [TimeElementDirective],\n  host: {\n    class: 'time-picker-roll-col',\n    '[class.disabled]': 'disabled()'\n  }\n})\nexport class TimePickerRollColComponent implements OnChanges, AfterViewInit {\n  public readonly elementRef = inject(ElementRef);\n\n  #init = true;\n\n  readonly disabled = input(false, { transform: booleanAttribute });\n  readonly elements = input<ITimeValue[]>([]);\n  readonly onClick = input<(value: number | string) => void>();\n  readonly refresh = input<boolean, unknown>(undefined, { transform: booleanAttribute });\n  readonly selectedInput = input<number | string | null>(null, { alias: 'selected' });\n  readonly selected = linkedSignal(this.selectedInput);\n\n  readonly selectedChange = output<any>();\n\n  @ViewChildren(TimeElementDirective) timeElements!: QueryList<TimeElementDirective>;\n\n  ngAfterViewInit(): void {\n    this.timeElements?.changes.subscribe((state) => {\n      const selectedElement = this.timeElements?.find((element) => {\n        return element.cTimeElement()?.value === <number>this.selected();\n      });\n      this.scrollToElement(selectedElement?.elementRef.nativeElement);\n    });\n    setTimeout(() => {\n      const selectedElement = this.elementRef.nativeElement.querySelector('.selected');\n      this.scrollToElement(selectedElement);\n    }, 1000);\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (\n      (changes['refresh'] && changes['refresh'].currentValue) ||\n      (changes['selectedInput'] && !changes['selectedInput'].firstChange)\n    ) {\n      const selectedElement = this.timeElements?.find((element) => {\n        return element.cTimeElement()?.value === <number>this.selected();\n      });\n      this.#init = !selectedElement;\n      this.scrollToElement(selectedElement?.elementRef.nativeElement);\n    }\n  }\n\n  scrollToElement(element: any) {\n    setTimeout(() => {\n      const elementSelected =\n        element ??\n        this.elementRef.nativeElement.querySelector('.selected') ??\n        this.elementRef.nativeElement.firstElementChild;\n      if (elementSelected) {\n        this.elementRef.nativeElement.scrollTo({\n          top: elementSelected?.offsetTop,\n          behavior: this.#init ? 'auto' : 'smooth'\n        });\n        this.#init = false;\n      }\n    });\n  }\n\n  handleElementClick($event: MouseEvent, element: any) {\n    if (element.disabled) {\n      return;\n    }\n    this.selected.set(element.value);\n    this.scrollToElement($event.target);\n    const onClick = this.onClick();\n    onClick && onClick(element.value);\n    this.selectedChange.emit(element.value);\n  }\n\n  handleElementKeyDown($event: KeyboardEvent, element: ITimeValue) {\n    if ($event.code === 'Space' || $event.code === 'Enter') {\n      $event.preventDefault();\n      this.handleElementClick(<MouseEvent>(<unknown>$event), element);\n    }\n  }\n}\n","@for (element of elements(); track element.value; let i = $index) {\n  @let cellWidth = element.label.length > 2 ? {   '--cui-timepicker-roll-cell-width' : '80px' } : {};\n  <div (click)=\"handleElementClick($event, element)\"\n       (keydown)=\"handleElementKeyDown($event, element)\"\n       [attr.disabled]=\"element.disabled || null\"\n       [cTimeElement]=\"element\"\n       [class]=\"{'time-picker-roll-cell': true, selected: element.value === selected(), disabled: element.disabled}\"\n       [tabindex]=\"element.disabled ? -1 : 0\"\n       role=\"button\"\n       [style]=\"cellWidth\"\n  >\n    {{ element.label }}\n  </div>\n}\n\n","import {\n  AfterViewInit,\n  booleanAttribute,\n  Component,\n  Directive,\n  ElementRef,\n  inject,\n  input,\n  linkedSignal,\n  OnChanges,\n  output,\n  QueryList,\n  SimpleChanges,\n  ViewChildren\n} from '@angular/core';\n\nimport { DayPeriod } from '../time.utils';\n\nexport interface IDayPeriod {\n  value: string;\n  label: string;\n  dayPeriod?: DayPeriod;\n  disabled?: boolean;\n}\n\n@Directive({\n  selector: '[cDayPeriodElement]',\n  exportAs: 'cDayPeriodElement',\n  standalone: true\n})\nexport class DayPeriodElementDirective {\n  public readonly elementRef = inject(ElementRef);\n\n  readonly cDayPeriodElement = input.required<IDayPeriod>();\n}\n\n@Component({\n  selector: 'c-time-picker-roll-am-pm',\n  templateUrl: './time-picker-roll-am-pm.component.html',\n  styleUrls: ['./time-picker-roll-am-pm.component.scss'],\n  imports: [DayPeriodElementDirective],\n  host: {\n    class: 'time-picker-roll-col',\n    '[class.disabled]': 'disabled()'\n  }\n})\nexport class TimePickerRollAmPmComponent implements OnChanges, AfterViewInit {\n  public readonly elementRef = inject(ElementRef);\n\n  #init = true;\n\n  readonly disabled = input(false, { transform: booleanAttribute });\n  readonly elements = input<IDayPeriod[]>([]);\n  readonly onClick = input<(value: number | string) => void>();\n  readonly refresh = input<boolean, unknown>(undefined, { transform: booleanAttribute });\n  readonly selectedInput = input<number | string | null>(null, { alias: 'selected' });\n  readonly selected = linkedSignal(this.selectedInput);\n\n  readonly selectedChange = output<any>();\n\n  @ViewChildren(DayPeriodElementDirective) dayPeriodElements!: QueryList<DayPeriodElementDirective>;\n\n  ngAfterViewInit(): void {\n    this.dayPeriodElements?.changes.subscribe((state) => {\n      const selectedElement = this.dayPeriodElements?.find((element) => {\n        return element.cDayPeriodElement()?.value === <string>this.selected();\n      });\n      this.scrollToElement(selectedElement?.elementRef.nativeElement);\n    });\n    const selectedElement = this.elementRef.nativeElement.querySelector('.selected');\n    this.scrollToElement(selectedElement);\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (\n      (changes['refresh'] && changes['refresh'].currentValue) ||\n      (changes['selectedInput'] && !changes['selectedInput'].firstChange)\n    ) {\n      const selectedElement = this.dayPeriodElements?.find((element) => {\n        return element.cDayPeriodElement()?.value === <string>this.selected();\n      });\n      this.#init = !selectedElement;\n      this.scrollToElement(selectedElement?.elementRef.nativeElement);\n    }\n  }\n\n  scrollToElement(element: any) {\n    setTimeout(() => {\n      const elementSelected = element || this.elementRef.nativeElement.querySelector('.selected');\n      if (elementSelected) {\n        this.elementRef.nativeElement.scrollTo({\n          top: elementSelected?.offsetTop,\n          behavior: this.#init ? 'auto' : 'smooth'\n        });\n        this.#init = false;\n      }\n    });\n  }\n\n  handleElementClick($event: MouseEvent, element: any) {\n    if (element.disabled) {\n      return;\n    }\n    this.selected.set(element.value);\n    this.scrollToElement($event.target);\n    const onClick = this.onClick();\n    onClick && onClick(element.value);\n    this.selectedChange.emit(element.value);\n  }\n\n  handleElementKeyDown($event: KeyboardEvent, element: IDayPeriod) {\n    if ($event.code === 'Space' || $event.code === 'Enter') {\n      $event.preventDefault();\n      this.handleElementClick(<MouseEvent>(<unknown>$event), element);\n    }\n  }\n}\n","@for (element of elements(); track element.value; let i = $index) {\n  <div (click)=\"handleElementClick($event, element)\"\n       (keydown)=\"handleElementKeyDown($event, element)\"\n       [attr.disabled]=\"element.disabled || null\"\n       [cDayPeriodElement]=\"element\"\n       [class]=\"{'time-picker-roll-cell': true, selected: element.value === selected(), disabled: element.disabled}\"\n       [tabindex]=\"element.disabled ? -1 : 0\"\n       role=\"button\"\n  >\n    {{ element.label }}\n  </div>\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n  booleanAttribute,\n  Component,\n  computed,\n  contentChildren,\n  DestroyRef,\n  effect,\n  ElementRef,\n  forwardRef,\n  inject,\n  Input,\n  input,\n  linkedSignal,\n  OnChanges,\n  OnInit,\n  output,\n  SimpleChanges,\n  TemplateRef,\n  viewChild\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n  ControlValueAccessor,\n  FormControl,\n  FormGroup,\n  NG_VALUE_ACCESSOR,\n  ReactiveFormsModule,\n  Validators\n} from '@angular/forms';\nimport { BooleanInput } from '@angular/cdk/coercion';\nimport { filter, tap } from 'rxjs/operators';\n\nimport {\n  convert12hTo24h,\n  convert24hTo12h,\n  convertTimeToDate,\n  DateTimeFormatOptions,\n  DayPeriod,\n  getAmPm,\n  getDayPeriods,\n  getListOfHours,\n  getListOfMinutes,\n  getListOfSeconds,\n  isHour12,\n  isValidTime,\n  ITimeValue\n} from './time.utils';\nimport { DropdownComponent, DropdownMenuDirective, DropdownToggleDirective } from '../dropdown';\nimport { FormSelectDirective } from '../form';\nimport { TemplateIdDirective } from '../shared';\nimport { TimePickerRollColComponent } from './time-picker-roll-col/time-picker-roll-col.component';\nimport { TimePickerRollAmPmComponent } from './time-picker-roll-col/time-picker-roll-am-pm.component';\n\n// todo: Focus management\n\n@Component({\n  selector: 'c-time-picker',\n  templateUrl: './time-picker.component.html',\n  styleUrls: ['./time-picker.component.scss'],\n  exportAs: 'cTimePicker',\n  imports: [\n    NgTemplateOutlet,\n    ReactiveFormsModule,\n    DropdownComponent,\n    DropdownToggleDirective,\n    DropdownMenuDirective,\n    FormSelectDirective,\n    TimePickerRollColComponent,\n    TimePickerRollAmPmComponent\n  ],\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => TimePickerComponent),\n      multi: true\n    }\n  ],\n  host: {\n    '(focusout)': 'onBlur()',\n    '[class]': 'hostClasses()'\n  }\n})\nexport class TimePickerComponent implements OnChanges, OnInit, ControlValueAccessor {\n  static ngAcceptInputType_disabled: BooleanInput;\n  static ngAcceptInputType_inputReadOnly: BooleanInput;\n  static ngAcceptInputType_seconds: BooleanInput;\n  static ngAcceptInputType_visible: BooleanInput;\n\n  readonly #destroyRef = inject(DestroyRef);\n\n  /**\n   * Toggle visibility or set the content of the cleaner button.\n   * @return boolean\n   * @default true\n   */\n  readonly cleaner = input(true, { transform: booleanAttribute });\n\n  /**\n   * Sets DateTime format options including timeZone\n   * @return DateTimeFormatOptions\n   * @default {}\n   * @note The date object doesn't store timeZone, it keeps the local timezone of the browser, regardless if you parsed UTC dates.\n   */\n  readonly dateTimeFormatOptions = input<DateTimeFormatOptions>({});\n\n  /**\n   * Toggle the disabled state for the component.\n   * @return boolean\n   * @default false\n   */\n  readonly disabledInput = input(false, { transform: booleanAttribute, alias: 'disabled' });\n\n  readonly disabled = linkedSignal(this.disabledInput);\n\n  readonly disabledEffect = effect(() => {\n    if (this.disabled()) {\n      this.timeInputCtrl.disable({ emitEvent: false });\n    } else {\n      this.timeInputCtrl.enable({ emitEvent: false });\n    }\n  });\n\n  /**\n   * Filter available hours to pick.\n   * @return (value: number) => boolean;\n   * @default undefined\n   */\n  readonly filterHours = input<(value: number) => boolean>();\n\n  /**\n   * Filter available minutes to pick.\n   * @return (value: number) => boolean;\n   * @default undefined\n   */\n  readonly filterMinutes = input<(value: number) => boolean>();\n\n  /**\n   * Filter available seconds to pick.\n   * @return (value: number) => boolean;\n   * @default undefined\n   */\n  readonly filterSeconds = input<(value: number) => boolean>();\n\n  /**\n   * Toggle visibility or set the content of the input indicator.\n   * @return boolean\n   * @default true\n   */\n  readonly indicator = input(true, { transform: booleanAttribute });\n\n  /**\n   * Toggle the readonly state for the component.\n   * @return boolean\n   * @default false\n   */\n  readonly inputReadOnly = input(false, { transform: booleanAttribute });\n\n  /**\n   * Sets the default locale for components. If not set, it is inherited from the browser.\n   * @return string\n   * @default default\n   */\n  readonly locale = input<string>('default');\n\n  /**\n   * Specifies short hint visible in time input.\n   * @return string\n   * @default 'Select time'\n   */\n  readonly placeholder = input<string>('Select time');\n\n  /**\n   * Toggle seconds visibility.\n   * @return boolean\n   * @default false\n   */\n  readonly seconds = input(false, { transform: booleanAttribute });\n\n  /**\n   * Size the component small or large.\n   * @return 'sm' | 'lg' | undefined\n   * @default undefined\n   */\n  readonly size = input<'' | 'sm' | 'lg' | string>();\n\n  /**\n   * Initial selected time.\n   * @return Date | string | null | number\n   * @default undefined\n   */\n  @Input()\n  set time(value: Date | string | undefined) {\n    if (value && isValidTime(value)) {\n      const time = convertTimeToDate(value);\n      if (!time) {\n        this.clearTime();\n        return;\n      }\n      this.dayPeriod = getAmPm(time, this.locale());\n      if (this._time?.getTime() !== time.getTime()) {\n        this._time = new Date(time.getTime());\n      }\n    } else {\n      this.clearTime();\n    }\n  }\n\n  get time(): Date | undefined {\n    return this._time;\n  }\n\n  private _time?: Date;\n  private _timeInternal?: Date;\n\n  /**\n   * Set the time picker variant to a roll or select.\n   * @return 'roll' | 'select'\n   * @default 'roll'\n   */\n  readonly variant = input<'roll' | 'select'>('roll');\n\n  /**\n   * Toggle visual validation feedback.\n   * @return boolean | undefined\n   * @default undefined\n   */\n  readonly valid = input<boolean>();\n\n  /**\n   * Toggle the visibility of dropdown timepicker menu component.\n   * @return boolean\n   * @default false\n   */\n  readonly visible = input(false, { transform: booleanAttribute });\n\n  readonly timeChange = output<Date | undefined>();\n\n  onBlur() {\n    this.onTouched();\n  }\n\n  readonly dropdownRef = viewChild(DropdownComponent, { read: ElementRef });\n\n  readonly contentTemplates = contentChildren(TemplateIdDirective, { descendants: true });\n\n  readonly templates = computed(() => {\n    return this.contentTemplates().reduce(\n      (acc, child) => {\n        acc[child.id] = child.templateRef;\n        return acc;\n      },\n      {} as Record<string, TemplateRef<any>>\n    );\n  });\n\n  listOfHours!: ITimeValue[];\n  listOfHours12!: ITimeValue[];\n  listOfMinutes!: ITimeValue[];\n  listOfSeconds!: ITimeValue[];\n  hour12: boolean = isHour12(this.locale());\n  dayPeriods = [\n    { value: 'am', label: 'am' },\n    { value: 'pm', label: 'pm' }\n  ];\n\n  getListOfHours12(): ITimeValue[] {\n    const listOfHours12 = this.hour12\n      ? this.listOfHours?.filter((item) => (item.dayPeriod && item.dayPeriod === this.dayPeriod) || !item.dayPeriod)\n      : this.listOfHours;\n    if (this.hour12 && [0, 12].includes(listOfHours12[0].value)) {\n      listOfHours12.push(<ITimeValue>listOfHours12.shift());\n    }\n    return listOfHours12;\n  }\n\n  set timeInputValue(value: string) {\n    this.timeInputCtrl.setValue(value);\n    this._timeInputValue = value;\n  }\n\n  get timeInputValue(): string {\n    return this._timeInputValue;\n  }\n\n  private _timeInputValue: string =\n    this.time?.toLocaleTimeString(this.locale(), { timeStyle: this.seconds() ? 'medium' : 'short' }) ?? '';\n\n  readonly timePickerClasses = computed(() => {\n    const disabled = this.disabled();\n    const size = this.size();\n    const valid = this.valid();\n    const variant = this.variant();\n    return {\n      'time-picker': true,\n      [`time-picker-${size}`]: !!size,\n      'form-control': variant === 'select' && valid !== undefined,\n      'is-valid': valid === true,\n      'is-invalid': valid === false,\n      disabled: disabled,\n      dropdown: false\n    } as Record<string, boolean>;\n  });\n\n  readonly hostClasses = computed(() => {\n    const valid = this.valid();\n    return {\n      'time-picker': true,\n      'is-valid': valid === true,\n      'is-invalid': valid === false\n    } as Record<string, boolean>;\n  });\n\n  readonly selectTime = new FormGroup<{\n    selectHours: FormControl<number | null>;\n    selectMinutes: FormControl<number | null>;\n    selectSeconds?: FormControl<number | null>;\n    selectDayPeriod?: FormControl<'am' | 'pm' | null>;\n  }>(\n    {\n      selectHours: new FormControl(\n        { value: this.hour, disabled: this.disabled() },\n        { validators: [Validators.min(0), Validators.max(this.hour12 ? 11 : 23)] }\n      ),\n      selectMinutes: new FormControl(\n        { value: this.minute, disabled: this.disabled() },\n        { validators: [Validators.min(0), Validators.max(59)] }\n      ),\n      selectSeconds: new FormControl(\n        { value: this.second, disabled: this.disabled() },\n        { validators: [Validators.min(0), Validators.max(59)] }\n      ),\n      selectDayPeriod: new FormControl({ value: this.dayPeriod, disabled: this.disabled() }, Validators.required)\n    },\n    { validators: [Validators.required] }\n  );\n\n  readonly timeInputCtrl = new FormControl(\n    {\n      value: this.timeInputValue,\n      disabled: this.disabled()\n    },\n    { validators: [Validators.required] }\n  );\n\n  set hour(value: number) {\n    if (this._hour !== value) {\n      if (value < 0) {\n        this.clearTime();\n        return;\n      }\n      this._hour = value;\n    }\n  }\n\n  get hour(): number {\n    return this._hour;\n  }\n\n  private _hour = -1;\n\n  set minute(value: number) {\n    if (this._minute !== value) {\n      if (value < 0) {\n        this.clearTime();\n        return;\n      }\n      this._minute = value;\n    }\n  }\n\n  get minute(): number {\n    return this._minute;\n  }\n\n  private _minute = -1;\n\n  set second(value: number) {\n    if (this._second !== value) {\n      if (value < 0) {\n        this.clearTime();\n        return;\n      }\n      this._second = value;\n    }\n  }\n\n  get second(): number {\n    return this._second;\n  }\n\n  private _second = -1;\n\n  set dayPeriod(value) {\n    if (this._dayPeriod !== value) {\n      this._dayPeriod = value;\n      if (this.listOfHours) {\n        this.listOfHours12 = this.getListOfHours12();\n      }\n      this.patchSelectTimeValues();\n    }\n    // this.listOfHours12 = this.hour12\n    //                      ? this.listOfHours?.filter(\n    //     (item) => (item.dayPeriod && item.dayPeriod === value) || !item.dayPeriod\n    //   )\n    //                      : this.listOfHours;\n    // this.patchSelectTimeValues();\n  }\n\n  get dayPeriod() {\n    return this._dayPeriod;\n  }\n\n  private _dayPeriod: DayPeriod = 'am';\n\n  setTime() {\n    this._hour = this._hour < 0 ? 0 : this._hour;\n    this._minute = this._minute < 0 ? 0 : this._minute;\n    this._second = this._second < 0 ? 0 : this._second;\n\n    const time = new Date(this._time?.getTime() || new Date());\n    time.setHours(this.hour, this.minute, this.second, 0);\n    this.time = time;\n    this.emitTime(time);\n  }\n\n  public clearTime() {\n    if (this.time) {\n      this._time = undefined;\n      this.emitTime(undefined);\n    }\n    this._hour = -1;\n    this._minute = -1;\n    this._second = -1;\n    this.dayPeriod = 'am';\n    this.patchSelectTimeValues();\n    this.timeInputValue = '';\n  }\n\n  emitTime(time: Date | undefined) {\n    const timeValue = !!time && isValidTime(time) ? new Date(time.getTime()) : undefined;\n    if (this._timeInternal?.getTime() !== timeValue?.getTime()) {\n      this.timeChange.emit(timeValue);\n      this.onChange(timeValue);\n      this.onTouched();\n      this._timeInternal = timeValue;\n    }\n    this.timeInputValue =\n      this.time?.toLocaleTimeString(this.locale(), {\n        timeStyle: this.seconds() ? 'medium' : 'short'\n      }) ?? '';\n  }\n\n  ngOnInit(): void {\n    this.setTimeLists();\n    this.updateSelectTime();\n    this.setChangeHandlers();\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (changes['time']) {\n      if (!changes['time'].firstChange) {\n        if (this._timeInternal?.getTime() !== changes['time'].currentValue?.getTime()) {\n          this.updateSelectTime();\n        }\n      }\n    }\n  }\n\n  setTimeLists() {\n    this.dayPeriods = getDayPeriods(this.locale(), this.dateTimeFormatOptions());\n    this.hour12 = isHour12(this.locale());\n    this.listOfHours = this.listOfTimeSegments(getListOfHours, this.filterHours());\n    this.listOfMinutes = this.listOfTimeSegments(getListOfMinutes, this.filterMinutes());\n    this.listOfSeconds = this.listOfTimeSegments(getListOfSeconds, this.filterSeconds());\n    if (this.variant() === 'select') {\n      const undefSegment = { value: -1, label: ' --', disabled: true };\n      this.listOfHours.unshift({ ...undefSegment });\n      this.listOfMinutes.unshift({ ...undefSegment });\n      this.listOfSeconds.unshift({ ...undefSegment });\n    }\n    this.listOfHours12 = this.getListOfHours12();\n  }\n\n  updateSelectTime(time = this.time) {\n    if (!!time && isValidTime(time)) {\n      const hour = time.getHours() ?? 0;\n      const minute = time.getMinutes() ?? 0;\n      const second = this.seconds() ? (time.getSeconds() ?? 0) : 0;\n\n      const closestSecond = this.closestTime(this.listOfSeconds, second);\n      const closestMinute = this.closestTime(this.listOfMinutes, minute);\n      const closestHour = this.closestTime(this.listOfHours, hour);\n\n      this.second = this.seconds() ? closestSecond.value : 0;\n      this.minute = closestMinute.value;\n      this.hour = closestHour.value;\n      this.setTime();\n      this.patchSelectTimeValues();\n    }\n  }\n\n  closestTime(timeArray: ITimeValue[], timeSegment: number) {\n    let array = timeArray ?? [{ value: 0, label: '00' }];\n    if (this.time) {\n      array = timeArray.filter((el) => el.value >= 0);\n      array = array.length ? array : timeArray;\n    }\n    return array.reduce((a: ITimeValue, b: ITimeValue) => {\n      return Math.abs(b.value - timeSegment) < Math.abs(a.value - timeSegment) ? b : a;\n    });\n  }\n\n  listOfTimeSegments(\n    getListOfTimeSegments: (locale: string, dateTimeFormatOptions: DateTimeFormatOptions) => ITimeValue[],\n    filterTimeSegments: ((timeSegmentValue: number) => boolean) | undefined\n  ) {\n    const list = getListOfTimeSegments(this.locale(), this.dateTimeFormatOptions()).filter((segment: ITimeValue) => {\n      return typeof filterTimeSegments === 'function' ? filterTimeSegments(segment.value) : true;\n    });\n    return list.length ? list : getListOfTimeSegments(this.locale(), this.dateTimeFormatOptions()).slice(0, 1);\n  }\n\n  handleSelectDayPeriodChange(dayPeriod: DayPeriod) {\n    if (dayPeriod !== this.dayPeriod) {\n      const hrs = this.time?.getHours() ?? (this.hour < 0 ? 0 : this.hour);\n      const hour = hrs > 12 ? convert24hTo12h(hrs) : convert12hTo24h(dayPeriod, hrs);\n      this.hour = this.closestTime(this.listOfHours, hour).value;\n      if (hour >= 0) {\n        this.setTime();\n      }\n      this.updateSelectTime();\n    }\n  }\n\n  handleSelectTimeChange(value: number, segment: 'hour' | 'minute' | 'second') {\n    this[segment] = value;\n    if (value >= 0) {\n      this.setTime();\n    }\n    this.updateSelectTime();\n  }\n\n  patchSelectTimeValues() {\n    const dayPeriod = this.selectTime.get('selectDayPeriod')?.value;\n    if (this.dayPeriod !== dayPeriod) {\n      this.selectTime.patchValue({\n        selectDayPeriod: this.dayPeriod ?? 'am'\n      });\n    }\n    const hours = this.selectTime.get('selectHours')?.value;\n    const minutes = this.selectTime.get('selectMinutes')?.value;\n    const seconds = this.selectTime.get('selectSeconds')?.value;\n    const goUpdate = (this.second < 0 && this.minute < 0) || (this.hour >= 0 && this.minute >= 0 && this.second >= 0);\n    const timeChanged = this.hour !== hours || this.minute !== minutes || this.second !== seconds;\n    if (goUpdate && timeChanged) {\n      if (this.hour !== hours) {\n        this.selectTime.patchValue({\n          selectHours: this.hour ?? 0\n        });\n      }\n      if (this.minute !== minutes) {\n        this.selectTime.patchValue({\n          selectMinutes: this.minute ?? 0\n        });\n      }\n      if (this.second !== seconds) {\n        this.selectTime.patchValue({\n          selectSeconds: this.second ?? 0\n        });\n      }\n    }\n  }\n\n  trackByHour(index: number, hour: ITimeValue) {\n    return hour;\n  }\n\n  onChange = (value: Date | undefined) => {\n    /* empty */\n  };\n  onTouched = () => {\n    /* empty */\n  };\n\n  writeValue(value: any): void {\n    this.time = value;\n    this.updateSelectTime();\n  }\n\n  registerOnChange(fn: any): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: any): void {\n    this.onTouched = fn;\n  }\n\n  setDisabledState(isDisabled: boolean) {\n    this.disabled.set(isDisabled);\n  }\n\n  handleTimeInputChange($event: any) {\n    const value = $event.target?.value;\n    if (!value || !isValidTime(value)) {\n      this.clearTime();\n      return;\n    }\n    const time = convertTimeToDate(value);\n    this.updateSelectTime(time ?? new Date(Date.now()));\n  }\n\n  handleClear($event: MouseEvent) {\n    this.clearTime();\n  }\n\n  handleBlur($event: FocusEvent) {\n    if (this.disabled()) {\n      return;\n    }\n    this.dropdownRef()?.nativeElement?.classList.remove('show');\n    setTimeout(() => {\n      this.onBlur();\n    }, 100);\n  }\n\n  handleFocus($event: FocusEvent) {\n    if (this.disabled()) {\n      return;\n    }\n    this.dropdownRef()?.nativeElement?.classList.add('show');\n  }\n\n  setChangeHandlers() {\n    if (this.variant() !== 'select') {\n      return;\n    }\n\n    this.selectTime\n      .get('selectHours')\n      ?.valueChanges.pipe(\n        tap((value) => {\n          this.handleSelectTimeChange(<number>value, 'hour');\n        }),\n        takeUntilDestroyed(this.#destroyRef)\n      )\n      .subscribe();\n\n    this.selectTime\n      .get('selectMinutes')\n      ?.valueChanges.pipe(\n        tap((value) => {\n          this.handleSelectTimeChange(<number>value, 'minute');\n        }),\n        takeUntilDestroyed(this.#destroyRef)\n      )\n      .subscribe();\n\n    this.selectTime\n      .get('selectSeconds')\n      ?.valueChanges.pipe(\n        filter(() => this.seconds()),\n        tap((value) => {\n          this.handleSelectTimeChange(<number>value, 'second');\n        }),\n        takeUntilDestroyed(this.#destroyRef)\n      )\n      .subscribe();\n\n    this.selectTime\n      .get('selectDayPeriod')\n      ?.valueChanges.pipe(\n        filter(() => this.hour12),\n        tap((value) => {\n          this.handleSelectDayPeriodChange(<DayPeriod>value);\n        }),\n        takeUntilDestroyed(this.#destroyRef)\n      )\n      .subscribe();\n  }\n}\n","@if (variant() === 'select') {\n  <div class=\"date-picker-timepickers\">\n    <div class=\"picker time-picker\">\n      <div [formGroup]=\"selectTime\" [class]=\"timePickerClasses()\" class=\"time-picker-body\">\n        <span class=\"time-picker-inline-icon\"></span>\n        <select (blur)=\"onBlur()\" [attr.disabled]=\"disabled() || null\" [sizing]=\"size() ?? ''\"\n                cSelect class=\"time-picker-inline-select ms-0\" formControlName=\"selectHours\">\n          @for (hour of listOfHours12; track hour.value; let i = $index) {\n            <option [attr.disabled]=\"hour.disabled || null\" [ngValue]=\"hour.value\">\n              {{ hour.label }}\n            </option>\n          }\n        </select>\n        {{ ' :' }}<select (blur)=\"onBlur()\" [attr.disabled]=\"disabled() || null\" [sizing]=\"size() ?? ''\"\n                          cSelect class=\"time-picker-inline-select ms-0\" formControlName=\"selectMinutes\">\n        @for (minute of listOfMinutes; track minute.value; let i = $index) {\n          <option [attr.disabled]=\"minute.disabled || null\" [ngValue]=\"minute.value\">\n            {{ minute.label }}\n          </option>\n        }\n      </select>\n        @if (seconds()) {\n          {{ ' :' }}<select (blur)=\"onBlur()\" [attr.disabled]=\"disabled() || null\" [sizing]=\"size() ?? ''\"\n                            cSelect class=\"time-picker-inline-select ms-0\" formControlName=\"selectSeconds\">\n            @for (second of listOfSeconds; track second.value; let i = $index) {\n              <option [attr.disabled]=\"second.disabled || null\" [ngValue]=\"second.value\">\n                {{ second.label }}\n              </option>\n            }\n          </select>\n        }\n        @if (hour12) {\n          <select (blur)=\"onBlur()\" [attr.disabled]=\"disabled() || null\" [sizing]=\"size() ?? ''\"\n                  cSelect class=\"time-picker-inline-select ms-0\" formControlName=\"selectDayPeriod\">\n            @for (dayPeriod of dayPeriods; track dayPeriod.value) {\n              <option [ngValue]=\"dayPeriod.value\" class=\"time-picker-roll-cell\">\n                {{ dayPeriod.label }}\n              </option>\n            }\n          </select>\n        }\n      </div>\n    </div>\n  </div>\n}\n@if (variant() === 'roll') {\n  <c-dropdown #dropdown=\"cDropdown\" [autoClose]=\"'outside'\" [class]=\"timePickerClasses()\" [visible]=\"visible()\">\n    <div [caret]=\"false\" cDropdownToggle class=\"time-picker-input-group\">\n      <input (blur)=\"handleBlur($event);\"\n             (change)=\"handleTimeInputChange($event)\"\n             (focus)=\"handleFocus($event)\"\n             [attr.pattern]=\"hour12 ? '(((0[1-9])|(1[0-2])):([0-5])([0-9])\\\\s(A|P)M)' : '([01]?[0-9]|2[0-3]):[0-5][0-9]'\"\n             [attr.tabindex]=\"disabled() ? -1 : 0\"\n             [formControl]=\"timeInputCtrl\"\n             [placeholder]=\"placeholder()\"\n             [readonly]=\"inputReadOnly() ?? null\"\n             class=\"time-picker-input\"\n      >\n      @if (indicator()) {\n        <div class=\"time-picker-indicator\"></div>\n      }\n      @if (cleaner() && time && !disabled()) {\n        <div (click)=\"!disabled() && handleClear($event)\" class=\"time-picker-cleaner\" role=\"button\"></div>\n      }\n    </div>\n    <div #dropdownMenu=\"cDropdownMenu\" cDropdownMenu class=\"time-picker-dropdown py-0\">\n      <div class=\"time-picker-body time-picker-roll\" style=\"position: relative;\">\n        <c-time-picker-roll-col\n          (selectedChange)=\"handleSelectTimeChange($event, 'hour')\"\n          [disabled]=\"disabled()\"\n          [elements]=\"listOfHours12\"\n          [refresh]=\"dropdownMenu.visible()\"\n          [selected]=\"hour\"\n          role=\"listbox\"\n        />\n        <c-time-picker-roll-col\n          (selectedChange)=\"handleSelectTimeChange($event, 'minute')\"\n          [disabled]=\"disabled()\"\n          [elements]=\"listOfMinutes\"\n          [refresh]=\"dropdownMenu.visible()\"\n          [selected]=\"minute\"\n          role=\"listbox\"\n        />\n        @if (seconds()) {\n          <c-time-picker-roll-col\n            (selectedChange)=\"handleSelectTimeChange($event, 'second')\"\n            [disabled]=\"disabled()\"\n            [elements]=\"listOfSeconds\"\n            [refresh]=\"dropdownMenu.visible()\"\n            [selected]=\"second\"\n            role=\"listbox\"\n          />\n        }\n        @if (hour12) {\n          <c-time-picker-roll-am-pm\n            (selectedChange)=\"handleSelectDayPeriodChange($event)\"\n            [disabled]=\"disabled()\"\n            [elements]=\"dayPeriods\"\n            [refresh]=\"dropdownMenu.visible()\"\n            [selected]=\"dayPeriod\"\n            role=\"listbox\"\n          />\n        }\n      </div>\n      @let tmpl = templates();\n      @if (tmpl?.['timePickerFooter']) {\n        <div class=\"time-picker-footer\">\n          <ng-container *ngTemplateOutlet=\"tmpl?.['timePickerFooter']; context: {$implicit: dropdown}\" />\n        </div>\n      }\n    </div>\n  </c-dropdown>\n}\n","import { NgModule } from '@angular/core';\nimport { TimePickerComponent } from './time-picker.component';\n\n@NgModule({\n  imports: [TimePickerComponent],\n  exports: [TimePickerComponent]\n})\nexport class TimePickerModule {}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { TCustomRange } from './date-range-picker.component';\n\n@Pipe({\n  name: 'customRangeKey',\n  standalone: true\n})\nexport class CustomRangeKeyPipe implements PipeTransform {\n\n  transform(customRange: TCustomRange, ...args: unknown[]): unknown {\n    return customRange[0];\n  }\n\n}\n","import {\n  booleanAttribute,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  computed,\n  contentChildren,\n  DestroyRef,\n  effect,\n  ElementRef,\n  forwardRef,\n  inject,\n  input,\n  linkedSignal,\n  model,\n  numberAttribute,\n  OnDestroy,\n  OnInit,\n  output,\n  signal,\n  TemplateRef,\n  untracked,\n  viewChild\n} from '@angular/core';\nimport { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';\nimport { formatDate, NgTemplateOutlet } from '@angular/common';\nimport {\n  ControlValueAccessor,\n  FormControl,\n  FormGroup,\n  NG_VALUE_ACCESSOR,\n  ReactiveFormsModule,\n  Validators\n} from '@angular/forms';\nimport { BreakpointObserver } from '@angular/cdk/layout';\nimport { BooleanInput } from '@angular/cdk/coercion';\nimport { Subscription } from 'rxjs';\n\nimport { Options } from '@popperjs/core';\n\nimport { ButtonDirective } from '../../button';\nimport {\n  dateTransform,\n  equalDates,\n  getLocalDateFromString,\n  getUtcTime,\n  isDateDisabled,\n  isValidDate,\n  setUtcTime\n} from '../../calendar/calendar.utils';\nimport {\n  DateFilterType,\n  DayFormatType,\n  DaysOfWeek,\n  SelectionType,\n  WeekdayFormatType\n} from '../../calendar/calendar.service';\nimport { CalendarComponent } from '../../calendar';\nimport { Colors } from '../../coreui.types';\nimport { DropdownComponent, DropdownMenuDirective, DropdownToggleDirective } from '../../dropdown';\nimport { FormControlDirective } from '../../form';\nimport { TemplateIdDirective } from '../../shared';\nimport { TimePickerComponent } from '../../time-picker';\nimport { CustomRangeKeyPipe } from './custom-range-key.pipe';\n\nexport interface ICalendarRanges {\n  [key: string]: Date[];\n}\n\nexport type TCustomRange = [string, Date[]];\n\n/** Must be a valid date string */\n// todo: validation\n// export function invalidDateStringValidator(locale: string): ValidatorFn {\n//   return (control: AbstractControl): ValidationErrors | null => {\n//     // const validDate = !isNaN(Date.parse(control.value));\n//     stringToDateConvert(control.value, locale);\n//     const dateShim = cvtDate(control.value, locale);\n//     // @ts-ignore\n//     // control.setValue(new Date(dateShim.year, dateShim.month, dateShim.day))\n//     console.log('dateShim', dateShim, locale);\n//     const validDate = isValidDate(control.value);\n//     console.log('invalidDateStringValidator', control, control.value, validDate);\n//     return validDate ? { invalidDateStringValidator: { value: control.value } } : null;\n//   };\n// }\n\n@Component({\n  selector: 'c-date-range-picker',\n  templateUrl: './date-range-picker.component.html',\n  styleUrls: ['./date-range-picker.component.scss'],\n  exportAs: 'cDateRangePicker',\n  imports: [\n    NgTemplateOutlet,\n    ReactiveFormsModule,\n    CalendarComponent,\n    TimePickerComponent,\n    ButtonDirective,\n    DropdownComponent,\n    DropdownToggleDirective,\n    DropdownMenuDirective,\n    FormControlDirective,\n    CustomRangeKeyPipe\n  ],\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => DateRangePickerComponent),\n      multi: true\n    }\n  ],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  host: {\n    '[class]': 'datePickerClasses()',\n    '(focusout)': 'onBlur()'\n  }\n})\nexport class DateRangePickerComponent implements OnInit, OnDestroy, ControlValueAccessor {\n  // Treats input as boolean value, even if provided as string or other types. Uses angular coercion mechanism\n  static ngAcceptInputType_closeOnSelect: BooleanInput;\n  static ngAcceptInputType_disabled: BooleanInput;\n  static ngAcceptInputType_inputReadOnly: BooleanInput;\n  static ngAcceptInputType_navYearFirst: BooleanInput;\n  static ngAcceptInputType_withTime: BooleanInput;\n  static ngAcceptInputType_selectAdjacentDays: BooleanInput;\n  static ngAcceptInputType_showWeekNumber: BooleanInput;\n  static ngAcceptInputType_timepicker: BooleanInput;\n  static ngAcceptInputType_visible: BooleanInput;\n\n  readonly #cdr = inject(ChangeDetectorRef);\n  readonly #breakpointObserver = inject(BreakpointObserver);\n  readonly #destroyRef = inject(DestroyRef);\n\n  /**\n   * Set the format of day name.\n   * @default 'numeric'\n   * @return DayFormatType\n   */\n  readonly dayFormat = input<DayFormatType>('numeric');\n\n  /**\n   * The number of calendars that render on desktop devices.\n   * @return number\n   * @default 2\n   */\n  readonly calendars = input(2, { transform: numberAttribute });\n\n  /**\n   * Toggle visibility or set the content of the cleaner button.\n   * @return boolean\n   * @default true\n   */\n  readonly cleaner = input(true, { transform: booleanAttribute });\n\n  /**\n   * Determine if the dropdown should be closed after value setting.\n   * @return boolean\n   * @default false\n   */\n  readonly closeOnSelect = input(false, { transform: booleanAttribute });\n\n  /**\n   * Set date format.\n   * We use Angular formatDate() function, see:\n   * - https://angular.io/api/common/formatDate\n   * - https://angular.io/api/common/DatePipe#pre-defined-format-options\n   */\n  readonly format = input<string>();\n\n  /**\n   * Toggle visibility or set the content of the input indicator.\n   * @return boolean\n   * @default true\n   */\n  readonly indicator = input(true);\n\n  /**\n   * Custom function to format the selected date into a string according to a custom format.\n   * @since v5.0.0\n   */\n  readonly inputDateFormat = input<(date: Date) => string>();\n\n  /**\n   * Custom function to parse the input value into a valid Date object.\n   * @since v5.0.0\n   */\n  readonly inputDateParse = input<(date: string | Date) => Date>();\n\n  /**\n   * Toggle the readonly state for the component.\n   * @return boolean\n   * @default false\n   */\n  readonly inputReadOnlyInput = input(false, { transform: booleanAttribute, alias: 'inputReadOnly' });\n\n  readonly inputReadOnly = computed(() => {\n    return this.inputReadOnlyInput() || typeof this.format() === 'string';\n  });\n\n  /**\n   * Reorder year-month navigation, and render year first.\n   * @return boolean\n   * @default false\n   */\n  readonly navYearFirst = input(false, { transform: booleanAttribute });\n\n  /**\n   * Specifies short hints that are visible in start date and end date inputs.\n   * type string\n   */\n  readonly placeholder = input<string | string[]>(['Start date', 'End date']);\n\n  /**\n   * Predefined date ranges the user can select from.\n   * @return ICalendarRanges\n   */\n  readonly ranges = input<ICalendarRanges>();\n\n  /**\n   * Sets the color context of the cancel button to one of CoreUI’s themed colors.\n   * @return 'primary' | 'secondary' | 'success' | 'danger' | 'warning' | 'info' | 'dark' | 'light' | string\n   * @default 'secondary'\n   */\n  readonly rangesButtonsColor = input<Colors>('secondary');\n\n  /**\n   * Size the ranges button small or large.\n   * @return 'sm' | 'lg' | ''\n   */\n  readonly rangesButtonsSize = input<'sm' | 'lg' | ''>('');\n\n  /**\n   * Set the ranges button variant to an outlined button or a ghost button.\n   * @return 'outline' | 'ghost' | undefined\n   */\n  readonly rangesButtonsVariant = input<'outline' | 'ghost'>('ghost');\n\n  /**\n   * Default icon or character that separates two dates.\n   * @return boolean\n   * @default true\n   */\n  readonly separator = input(true, { transform: booleanAttribute });\n\n  /**\n   * Size the component small or large.\n   * @return 'sm' | 'lg' | undefined\n   * @default undefined\n   */\n  readonly size = input<'' | 'sm' | 'lg' | string>();\n\n  /**\n   * Keep track of the time with the date value.\n   * @return boolean\n   * @default false\n   */\n  readonly withTime = input(false, { transform: booleanAttribute });\n\n  /**\n   * Provide an additional time selection by adding select boxes to choose time.\n   * @return boolean\n   * @default false\n   */\n  readonly timepickerInput = input(false, { transform: booleanAttribute, alias: 'timepicker' });\n\n  get timepicker(): boolean {\n    return false;\n    // return this.timepickerInput();\n  }\n\n  /**\n   * Toggle visual validation feedback.\n   * @return boolean | undefined\n   * @default undefined\n   */\n  readonly valid = input<boolean | undefined>();\n\n  /**\n   * Toggle the visibility of the dropdown date-picker component.\n   * @return boolean\n   * @default false\n   */\n  readonly visibleInput = input(false, { transform: booleanAttribute, alias: 'visible' });\n\n  readonly #visibleInputEffect = effect(() => {\n    this.visible.set(this.visibleInput());\n  });\n\n  readonly visible = signal(false);\n\n  readonly startDateModel = model<Date | null>(null, {\n    alias: 'startDate'\n  });\n\n  readonly #dateModelEffect = effect(() => {\n    this.dateRangeGroup.patchValue({ startDateInput: this.startDateValue(), endDateInput: this.endDateValue() });\n    const startDate = this.startDate();\n    const endDate = this.endDate();\n    this.valueModel.set({ startDate: startDate, endDate: endDate });\n    this.startDateModel.set(startDate);\n    this.endDateModel.set(endDate);\n  });\n\n  readonly startDate = computed(\n    () => {\n      const startDate = this.startDateModel();\n      return startDate ? new Date(startDate) : null;\n    },\n    { equal: equalDates }\n  );\n\n  readonly startTime = computed(() => {\n    return getUtcTime(this.startDate());\n  });\n\n  readonly endTime = computed(() => {\n    return getUtcTime(this.endDate());\n  });\n\n  readonly startDateChange = toObservable(this.startDate);\n\n  public readonly endDateModel = model<Date | null>(null, {\n    alias: 'endDate'\n  });\n\n  readonly endDate = computed(\n    () => {\n      const endDate = this.endDateModel();\n      return endDate ? new Date(endDate) : null;\n    },\n    { equal: equalDates }\n  );\n\n  readonly endDateChange = toObservable(this.endDate);\n\n  readonly calendarDateInput = input(new Date(), { transform: dateTransform, alias: 'calendarDate' });\n\n  readonly calendarDate = linkedSignal(this.calendarDateInput);\n\n  readonly disabledDates = input<(Date[] | Date)[]>([]);\n\n  /**\n   * Set first day of week.\n   * @return DaysOfWeek\n   * @default 1 (Monday)\n   */\n  readonly firstDayOfWeek = input<DaysOfWeek>(1);\n\n  readonly locale = input('default');\n\n  readonly maxDate = input<Date | null>(null);\n  readonly minDate = input<Date | null>(null);\n\n  /**\n   * Show calendar navigation.\n   * @return boolean\n   * @default true\n   */\n  readonly navigation = input(true, { transform: booleanAttribute });\n\n  /**\n   * Allow range selection.\n   * @return boolean\n   * @default true\n   */\n  readonly rangeInput = input(true, { transform: booleanAttribute, alias: 'range' });\n\n  readonly range = computed(() => {\n    return this.rangeInput();\n  });\n\n  readonly dateFilter = input<DateFilterType>();\n\n  readonly disabledInput = input(false, { transform: booleanAttribute, alias: 'disabled' });\n\n  readonly #disabledEffect = effect(() => {\n    this.disabled() ? this.dateRangeGroup.disable() : this.dateRangeGroup.enable();\n  });\n\n  readonly disabled = computed(() => {\n    return this.#disabled() || this.disabledInput();\n  });\n\n  readonly #disabled = signal(false);\n\n  readonly valueModel = model<Date | { startDate?: Date | null; endDate?: Date | null } | null>(null, {\n    alias: 'value'\n  });\n\n  readonly #valueInputEffect = effect(() => {\n    const value = this.valueModel() ?? { startDate: null, endDate: null };\n    const range = this.range();\n    untracked(() => {\n      this.value =\n        value instanceof Date\n          ? { startDate: value, endDate: null }\n          : ({ ...value } as { startDate: Date | null; endDate: Date | null });\n    });\n  });\n\n  set value(value: { startDate: Date | null; endDate: Date | null }) {\n    const newValue = value;\n    if (JSON.stringify(this.#value()) !== JSON.stringify(newValue)) {\n      this.#value.set(newValue);\n      this.valueChange.emit(this.value);\n      this.onChange(this.value);\n      this.#cdr.markForCheck();\n      if (this.closeOnSelect() && this.visible()) {\n        const hasValue = this.range() ? !!(newValue.startDate && newValue.endDate) : !!newValue;\n        this.visible.set(!hasValue);\n      }\n    }\n  }\n\n  get value(): Date | { startDate: Date | null; endDate: Date | null } | null {\n    return this.range() ? this.#value() : this.#value().startDate;\n  }\n\n  readonly #value = signal<{ startDate: Date | null; endDate: Date | null }>({ startDate: null, endDate: null });\n\n  /**\n   * Set length or format of day name.\n   * @return WeekdayFormatType\n   * @default 'short'\n   */\n  readonly weekdayFormat = input<WeekdayFormatType>('short');\n\n  /**\n   * Optional popper Options object\n   * @return Partial<Options>\n   */\n  readonly popperjsOptions = input<Partial<Options>>({ strategy: 'absolute' }, { alias: 'popperOptions' });\n\n  /**\n   * Set whether days in adjacent months shown before or after the current month are selectable. This only applies if the `showAdjacentDays` option is set to true.\n   * @return boolean\n   * @default false\n   * @since 4.4.10\n   */\n  readonly selectAdjacentDays = input(false, { transform: booleanAttribute });\n\n  /**\n   * Set whether to display dates in adjacent months (non-selectable) at the start and end of the current month.\n   * @return boolean\n   * @default true\n   * @since 4.4.10\n   */\n  readonly showAdjacentDays = input(true, { transform: booleanAttribute });\n\n  /**\n   * Specify the type of date selection as day, week, month, or year.\n   * @return 'day' | 'week' | 'month' | 'year'\n   * @default 'day'\n   * @since 5.0.0\n   */\n  readonly selectionType = input<SelectionType>('day');\n\n  /**\n   * Set whether to display week numbers in the calendar.\n   * @return boolean\n   * @default false\n   * @since 5.0.0\n   */\n  readonly showWeekNumber = input(false, { transform: booleanAttribute });\n\n  /**\n   * Label displayed over week numbers in the calendar.\n   * @return string\n   * @default undefined\n   * @since 5.0.0\n   */\n  readonly weekNumbersLabel = input<string>();\n\n  readonly valueChange = output<Date | { startDate?: Date | null; endDate?: Date | null } | undefined | null>();\n\n  readonly calendarCellHover = output<Date | null>();\n  readonly calendarDateChange = output<Date>();\n\n  readonly startDateElementRef = viewChild<ElementRef<HTMLInputElement>>('startDateElementRef');\n  readonly endDateElementRef = viewChild<ElementRef<HTMLInputElement>>('endDateElementRef');\n\n  readonly contentTemplates = contentChildren(TemplateIdDirective, { descendants: true });\n\n  readonly templates = computed(() => {\n    return this.contentTemplates().reduce(\n      (acc, child) => {\n        acc[child.id] = child.templateRef;\n        return acc;\n      },\n      {} as Record<string, TemplateRef<any>>\n    );\n  });\n\n  protected dateChangeSubscriptions: Subscription[] = [];\n\n  protected subscribeDateChange(subscribe: boolean = true): void {\n    if (subscribe) {\n      // todo\n      // this.dateChangeSubscriptions.push(\n      //   this.startDateChange.subscribe((next) => {\n      //     // console.log('startDateChange', next);\n      //     // this.startDate = next;\n      //     // this.onChange(next);\n      //   })\n      // );\n      // this.dateChangeSubscriptions.push(\n      //   this.endDateChange.subscribe((next) => {\n      //     // console.log('endDateChange', next);\n      //     // this.endDate = next;\n      //     // this.onChange(next);\n      //   })\n      // );\n      return;\n    }\n    this.dateChangeSubscriptions.forEach((subscription) => {\n      subscription?.unsubscribe();\n    });\n  }\n\n  onBlur() {\n    this.onTouched();\n  }\n\n  public isMobile = true;\n  public customRanges!: TCustomRange[];\n  public showRanges: boolean = false;\n\n  readonly startDateValue = computed(() => {\n    const locale = this.locale() ?? 'default';\n    return this.formatDate(this.startDate());\n  });\n\n  readonly endDateValue = computed(() => {\n    const locale = this.locale() ?? 'default';\n    return this.formatDate(this.endDate());\n  });\n\n  public get startDatePlaceholder(): string {\n    const placeholder = this.placeholder();\n    return Array.isArray(placeholder) ? placeholder[0] : placeholder;\n  }\n\n  public get endDatePlaceholder(): string {\n    const placeholder = this.placeholder();\n    return Array.isArray(placeholder) ? placeholder[1] : placeholder;\n  }\n\n  // todo: validation\n  // startDateInput = new FormControl({ value: this.startDateValue, disabled: this.disabled }, [\n  //   Validators.required\n  //   // Validators.minLength(8),\n  //   // Validators.maxLength(10),\n  //   // invalidDateStringValidator(this.locale)\n  // ]);\n  // endDateInput = new FormControl({ value: this.endDateValue, disabled: this.disabled }, [\n  //   Validators.required\n  //   // Validators.minLength(8),\n  //   // Validators.maxLength(10),\n  //   // invalidDateStringValidator(this.locale)\n  // ]);\n  readonly dateRangeGroup: FormGroup = new FormGroup({\n    startDateInput: new FormControl({ value: '', disabled: this.disabled() }, [Validators.required]),\n    endDateInput: new FormControl({ value: '', disabled: this.disabled() }, [Validators.required])\n  });\n\n  readonly inputStartHoverValue = signal<Date | null>(null);\n  readonly inputEndHoverValue = signal<Date | null>(null);\n\n  readonly datePickerClasses = computed(() => {\n    const size = this.size();\n    const valid = this.valid();\n    const disabled = this.disabled();\n    return {\n      'date-picker': true,\n      [`date-picker-${size}`]: size,\n      disabled: disabled,\n      'is-valid': valid === true,\n      'is-invalid': valid === false,\n      dropdown: false\n    } as Record<string, boolean>;\n  });\n\n  formatDate(date: Date | null | undefined) {\n    const format = this.format();\n    const inputDateFormat = this.inputDateFormat();\n    const locale = this.locale();\n\n    return !date || !isValidDate(date)\n      ? ''\n      : typeof inputDateFormat === 'function'\n        ? inputDateFormat(date)\n        : !!format && !!locale && locale !== 'default'\n          ? formatDate(date, format, locale)\n          : this.timepicker\n            ? date.toLocaleString(locale)\n            : date.toLocaleDateString(locale);\n  }\n\n  readonly #breakpoints = {\n    OneCalendarRanges: '(min-width: 480px)',\n    TwoCalendars: '(max-width: 650px)',\n    TwoCalendarsRanges: '(max-width: 810px)'\n  };\n\n  ngOnInit(): void {\n    const ranges = this.ranges();\n    this.customRanges = ranges ? Object.entries(ranges) : [];\n\n    const breakpoints = this.#breakpoints;\n\n    this.#breakpointObserver\n      .observe([breakpoints.OneCalendarRanges, breakpoints.TwoCalendars, breakpoints.TwoCalendarsRanges])\n      .pipe(takeUntilDestroyed(this.#destroyRef))\n      .subscribe((result) => {\n        if (result.matches) {\n          this.isMobile =\n            (this.customRanges?.length > 0 && result.breakpoints[breakpoints.TwoCalendarsRanges]) ||\n            result.breakpoints[breakpoints.TwoCalendars];\n          if (this.customRanges?.length > 0) {\n            this.showRanges = !result.breakpoints[breakpoints.OneCalendarRanges];\n          }\n        }\n      });\n\n    this.subscribeDateChange();\n  }\n\n  ngOnDestroy() {\n    this.subscribeDateChange(false);\n  }\n\n  convertValueToDate(value: Date | string | number | undefined | null) {\n    if (!value) {\n      return null;\n    }\n    if (typeof value === 'string') {\n      return this.inputParse(value) ?? null;\n    }\n    return new Date(value);\n  }\n\n  inputParse(date: string) {\n    const inputDateParse = this.inputDateParse();\n\n    if (typeof inputDateParse === 'function') {\n      const parsedDate = inputDateParse(date);\n      if (isValidDate(parsedDate)) {\n        return parsedDate;\n      }\n    }\n    return getLocalDateFromString(date, this.locale(), this.timepicker);\n  }\n\n  getCustomRangeKey(customRange: any) {\n    return customRange[0];\n  }\n\n  setCustomRange(customRange: any) {\n    const key = this.getCustomRangeKey(customRange);\n    this.handleStartDateChange(customRange[1][0]);\n    this.handleEndDateChange(customRange[1][1]);\n  }\n\n  handleCalendarCellHover($event: Date | null) {\n    this.calendarCellHover.emit($event);\n    if (!this.startDate()) {\n      this.setInputValue(this.startDateElementRef(), $event);\n      this.inputStartHoverValue.set($event);\n      this.setInputValue(this.endDateElementRef(), null);\n      this.inputEndHoverValue.set(null);\n      return;\n    }\n    if (!this.endDate()) {\n      this.setInputValue(this.endDateElementRef(), $event);\n      this.inputEndHoverValue.set($event);\n      return;\n    }\n  }\n\n  handleCalendarDateChange($event: Date) {\n    if (this.calendarDate().getTime() !== $event.getTime()) {\n      this.calendarDateChange.emit($event);\n    }\n  }\n\n  handleStartDateChange(date: Date | null) {\n    const newDate = setUtcTime(date, this.startTime(), this.withTime());\n    this.startDateModel.set(newDate ?? null);\n    this.inputStartHoverValue.set(null);\n  }\n\n  handleEndDateChange(date: Date | null) {\n    if (!this.range()) {\n      return;\n    }\n    const newDate = setUtcTime(date, this.endTime(), this.withTime());\n    this.endDateModel.set(newDate ?? null);\n    this.inputEndHoverValue.set(null);\n  }\n\n  handleClear($event?: MouseEvent) {\n    this.handleStartDateChange(null);\n    this.handleEndDateChange(null);\n  }\n\n  handleStartDateInputChange($event: any) {\n    const inputValue = ($event.target as HTMLInputElement).value;\n    const date = this.inputParse(inputValue);\n    if (!date) {\n      this.handleStartDateChange(null);\n      this.handleEndDateChange(null);\n      return;\n    }\n    if (date instanceof Date && date.getTime()) {\n      const endDate = this.endDate();\n      if (!(this.forbiddenDate(date) || (endDate && endDate < date))) {\n        this.calendarDate.set(date);\n        this.handleStartDateChange(date);\n        return;\n      }\n    }\n    this.handleStartDateChange(this.startDate() ?? null);\n  }\n\n  handleEndDateInputChange($event: any) {\n    const inputValue = ($event.target as HTMLInputElement).value;\n    const date = this.inputParse(inputValue);\n    if (!date) {\n      this.handleEndDateChange(null);\n      return;\n    }\n    if (date instanceof Date && date.getTime()) {\n      const startDate = this.startDate();\n      if (!(this.forbiddenDate(date) || (startDate && startDate > date))) {\n        this.calendarDate.set(date);\n        this.handleEndDateChange(date);\n      } else {\n        this.handleEndDateChange(null);\n      }\n    }\n    this.handleEndDateChange(this.endDate() ?? null);\n  }\n\n  forbiddenDate(date: Date) {\n    const dateFilter = this.dateFilter();\n    return (\n      isDateDisabled(date, this.minDate(), this.maxDate(), this.disabledDates()) ||\n      (dateFilter ? !dateFilter(date) : false)\n    );\n  }\n\n  setInputValue = (elementRef: ElementRef | undefined, date: Date | null) => {\n    if (!elementRef) {\n      return;\n    }\n    elementRef.nativeElement.value = this.formatDate(date);\n    // elementRef.nativeElement.valueAsDate = date;\n    return;\n  };\n\n  onChange: any = (value: any) => {\n    /* empty */\n  };\n  onTouched: any = () => {\n    /* empty */\n  };\n\n  registerOnChange(fn: any): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: any): void {\n    this.onTouched = fn;\n  }\n\n  setDisabledState(isDisabled: boolean): void {\n    this.#disabled.set(isDisabled);\n  }\n\n  writeValue(value: any): void {\n    if (!!value) {\n      this.handleStartDateChange(this.range() ? value.startDate : value);\n      this.handleEndDateChange(this.range() ? value.endDate : null);\n    }\n  }\n\n  handleStartTimeChange(time: Date | undefined) {\n    this.startDateModel.set(time ?? this.startDate());\n  }\n\n  handleEndTimeChange(time: Date | undefined) {\n    if (!this.range()) {\n      return;\n    }\n    this.endDateModel.set(time ?? this.endDate());\n  }\n}\n","<fieldset [formGroup]=\"dateRangeGroup\">\n  <c-dropdown #dropdown=\"cDropdown\" [(visible)]=\"visible\" [autoClose]=\"'outside'\" [class]=\"datePickerClasses()\"\n              [popperOptions]=\"popperjsOptions()\" class=\"date-picker\">\n    <div [caret]=\"false\"\n         [disabled]=\"disabled() ?? dropdown.visible\"\n         cDropdownToggle\n         class=\"date-picker-input-group\"\n    >\n      <input #startDateElementRef\n             (change)=\"handleStartDateInputChange($event)\"\n             [attr.tabindex]=\"disabled() ? -1 : 0\"\n             [class.hover]=\"!!inputStartHoverValue()\"\n             [placeholder]=\"startDatePlaceholder\"\n             [readonly]=\"inputReadOnly() ?? null\"\n             [valid]=\"range() ? undefined : valid()\"\n             cFormControl\n             class=\"date-picker-input\"\n             formControlName=\"startDateInput\"\n             pattern=\"[1-9]*\"\n      >\n      @if (range() && separator()) {\n        <div class=\"date-picker-separator\"></div>\n      }\n      @if (range()) {\n        <input #endDateElementRef\n               (change)=\"handleEndDateInputChange($event)\"\n               [attr.tabindex]=\"disabled() ? -1 : 0\"\n               [class.hover]=\"!!inputEndHoverValue()\"\n               [placeholder]=\"endDatePlaceholder\"\n               [readonly]=\"inputReadOnly() ?? null\"\n               [valid]=\"valid() ?? undefined\"\n               cFormControl\n               class=\"date-picker-input\"\n               formControlName=\"endDateInput\"\n               pattern=\"[1-9]*\"\n        >\n      }\n      @if (indicator()) {\n        <div class=\"date-picker-indicator\"></div>\n      }\n      @if (cleaner() && startDateElementRef.value && !disabled()) {\n        <div (click)=\"!disabled() && handleClear($event)\" class=\"date-picker-cleaner\" role=\"button\"></div>\n      }\n    </div>\n    <div cDropdownMenu class=\"date-picker-dropdown py-0\">\n      <div class=\"date-picker-body\">\n        @if (!showRanges) {\n          @if (ranges() && customRanges.length > 0) {\n            <div class=\"date-picker-ranges\">\n              @for (customRange of customRanges; track customRange) {\n                <button (click)=\"setCustomRange(customRange)\"\n                        [color]=\"rangesButtonsColor()\"\n                        [size]=\"rangesButtonsSize()\"\n                        [variant]=\"rangesButtonsVariant()\"\n                        cButton>\n                  {{ customRange | customRangeKey }}\n                </button>\n              }\n            </div>\n          }\n        }\n        <c-calendar\n          (calendarCellHover)=\"handleCalendarCellHover($event)\"\n          (calendarDateChange)=\"handleCalendarDateChange($event)\"\n          (endDateChange)=\"handleEndDateChange($event)\"\n          (startDateChange)=\"handleStartDateChange($event)\"\n          [calendarDate]=\"calendarDate()\"\n          [calendars]=\"isMobile ? 1 : calendars()\"\n          [dateFilter]=\"dateFilter()\"\n          [dayFormat]=\"dayFormat()\"\n          [disabledDates]=\"disabledDates()\"\n          [endDate]=\"endDate()\"\n          [firstDayOfWeek]=\"firstDayOfWeek()\"\n          [locale]=\"locale()\"\n          [maxDate]=\"maxDate()\"\n          [minDate]=\"minDate()\"\n          [navYearFirst]=\"navYearFirst()\"\n          [navigation]=\"navigation()\"\n          [range]=\"range()\"\n          [selectAdjacentDays]=\"selectAdjacentDays()\"\n          [selectionType]=\"selectionType()\"\n          [showAdjacentDays]=\"showAdjacentDays()\"\n          [showWeekNumber]=\"showWeekNumber()\"\n          [startDate]=\"startDate()\"\n          [weekNumbersLabel]=\"weekNumbersLabel()\"\n          [weekdayFormat]=\"weekdayFormat()\"\n          class=\"date-picker-calendars\"\n        />\n        @if (false && timepicker) {\n          <div class=\"date-picker-timepickers\">\n            <!-- todo-->\n            <c-time-picker\n              variant=\"select\"\n              [locale]=\"locale()\"\n              [disabled]=\"!startDate()\"\n              [time]=\"startDate() ?? undefined\"\n              (timeChange)=\"handleStartTimeChange($event)\"\n            />\n            @if (range()) {\n              <c-time-picker\n                variant=\"select\"\n                [locale]=\"locale()\"\n                [disabled]=\"!endDate()\"\n                [time]=\"endDate() ?? undefined\"\n                (timeChange)=\"handleEndTimeChange($event)\"\n              />\n            }\n          </div>\n        }\n      </div>\n      @let footer = templates()?.['datePickerFooter'];\n      @if (footer) {\n        <div class=\"date-picker-footer\">\n          <ng-container *ngTemplateOutlet=\"footer; context: {$implicit: dropdown}\" />\n        </div>\n      }\n    </div>\n    <ng-content />\n  </c-dropdown>\n</fieldset>\n","import { NgModule } from '@angular/core';\n\nimport { DateRangePickerComponent } from './date-range-picker/date-range-picker.component';\n\n@NgModule({\n  imports: [DateRangePickerComponent],\n  exports: [DateRangePickerComponent]\n})\nexport class DateRangePickerModule {}\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  forwardRef,\n  input,\n  model,\n  ModelSignal,\n  numberAttribute,\n  output,\n  signal\n} from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';\n\nimport { ButtonDirective } from '../button';\nimport { DateRangePickerComponent } from '../date-range-picker';\nimport { CalendarComponent } from '../calendar';\nimport { DropdownComponent, DropdownMenuDirective, DropdownToggleDirective } from '../dropdown';\nimport { FormControlDirective } from '../form';\nimport { TimePickerComponent } from '../time-picker';\nimport { CustomRangeKeyPipe } from '../date-range-picker/date-range-picker/custom-range-key.pipe';\n\n@Component({\n  selector: 'c-date-picker',\n  templateUrl: '../date-range-picker/date-range-picker/date-range-picker.component.html',\n  styleUrls: ['../date-range-picker/date-range-picker/date-range-picker.component.scss'],\n  exportAs: 'cDatePicker',\n  imports: [\n    NgTemplateOutlet,\n    ReactiveFormsModule,\n    CalendarComponent,\n    TimePickerComponent,\n    ButtonDirective,\n    DropdownComponent,\n    DropdownToggleDirective,\n    DropdownMenuDirective,\n    FormControlDirective,\n    CustomRangeKeyPipe\n  ],\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => DatePickerComponent),\n      multi: true\n    }\n  ],\n  changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DatePickerComponent extends DateRangePickerComponent {\n  readonly dateChange = output<Date | null | undefined>();\n\n  override readonly calendars = input(1, { transform: numberAttribute });\n\n  override readonly placeholder = input<string | string[]>('Select date');\n\n  override readonly range = signal(false);\n\n  override readonly endDate = signal(null);\n\n  override readonly startDateModel: ModelSignal<Date | null> = model<Date | null>(null, {\n    alias: 'date'\n  });\n\n  get date() {\n    return this.startDate();\n  }\n\n  override writeValue(value: Date | null): void {\n    this.startDateModel.set(value);\n    super.writeValue(value);\n  }\n\n  override subscribeDateChange(subscribe: boolean = true): void {\n    if (subscribe) {\n      this.dateChangeSubscriptions.push(\n        this.startDateChange.subscribe((next) => {\n          if (this.startDateModel()?.getTime() !== next?.getTime()) {\n            this.startDateModel.set(next);\n            this.onChange(next);\n            this.dateChange.emit(next);\n          }\n        })\n      );\n      return;\n    }\n    this.dateChangeSubscriptions.forEach((subscription) => {\n      subscription?.unsubscribe();\n    });\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { DatePickerComponent } from './date-picker.component';\n\n@NgModule({\n  imports: [DatePickerComponent],\n  exports: [DatePickerComponent]\n})\nexport class DatePickerModule {}\n","import { Component, computed, input, InputSignal } from '@angular/core';\n\nimport { Positions } from '../coreui.types';\n\n@Component({\n  selector: 'c-footer, [cFooter]',\n  template: '<ng-content />',\n  host: {\n    class: 'footer',\n    '[class]': 'hostClasses()',\n    '[attr.role]': 'role()'\n  }\n})\nexport class FooterComponent {\n  /**\n   * Place footer in non-static positions. [docs]\n   * @type Positions\n   */\n  readonly position: InputSignal<Positions | undefined> = input();\n\n  /**\n   * Default role for footer. [docs]\n   * @return string\n   * @default 'contentinfo'\n   */\n  readonly role = input<string>('contentinfo');\n\n  readonly hostClasses = computed(() => {\n    const position = this.position();\n    return {\n      footer: true,\n      [`footer-${position}`]: !!position\n    } as Record<string, boolean>;\n  });\n}\n","import { NgModule } from '@angular/core';\n\nimport { FooterComponent } from './footer.component';\n\n@NgModule({\n  imports: [FooterComponent],\n  exports: [FooterComponent]\n})\nexport class FooterModule {}\n","import { booleanAttribute, Component, computed, input } from '@angular/core';\nimport { Breakpoints } from '../coreui.types';\n\n@Component({\n  selector: 'c-container, [cContainer]',\n  template: '<ng-content />',\n  styleUrls: ['./container.component.scss'],\n  host: { '[class]': 'hostClasses()' }\n})\nexport class ContainerComponent {\n  /**\n   * Set container 100% wide until a breakpoint.\n   */\n  readonly breakpoint = input<Exclude<Breakpoints, 'xs'>>('');\n\n  /**\n   * Set container 100% wide, spanning the entire width of the viewport.\n   * @return boolean\n   */\n  readonly fluid = input(false, { transform: booleanAttribute });\n\n  readonly hostClasses = computed(() => {\n    const breakpoint = this.breakpoint();\n    const fluid = this.fluid();\n    return {\n      container: !fluid && !breakpoint,\n      'container-fluid': !!fluid,\n      [`container-${breakpoint}`]: !!breakpoint\n    } as Record<string, boolean>;\n  });\n}\n","import { booleanAttribute, computed, Directive, input, numberAttribute } from '@angular/core';\nimport { BooleanInput, NumberInput } from '@angular/cdk/coercion';\nimport { BreakpointInfix } from '../coreui.types';\nimport { ColOrder } from './col.type';\n\nexport type ColOffsetType = number | { xs?: number; sm?: number; md?: number; lg?: number; xl?: number; xxl?: number };\nexport type ColOrderType =\n  | ColOrder\n  | { xs?: ColOrder; sm?: ColOrder; md?: ColOrder; lg?: ColOrder; xl?: ColOrder; xxl?: ColOrder };\n\n@Directive({\n  selector: '[cCol]',\n  host: {\n    '[class]': 'hostClasses()'\n  }\n})\nexport class ColDirective {\n  static ngAcceptInputType_cCol: BooleanInput | NumberInput;\n  static ngAcceptInputType_xs: BooleanInput | NumberInput;\n  static ngAcceptInputType_sm: BooleanInput | NumberInput;\n  static ngAcceptInputType_md: BooleanInput | NumberInput;\n  static ngAcceptInputType_lg: BooleanInput | NumberInput;\n  static ngAcceptInputType_xl: BooleanInput | NumberInput;\n  static ngAcceptInputType_xxl: BooleanInput | NumberInput;\n\n  /**\n   * The number of columns/offset/order on extra small devices (<576px).\n   * @return { 'auto' | number |  boolean }\n   */\n  readonly cCol = input(false, { transform: this.coerceInput });\n  readonly xs = input(false, { transform: this.coerceInput });\n\n  /**\n   * The number of columns/offset/order on small devices (<768px).\n   * @return { 'auto' | number |  boolean }\n   */\n  readonly sm = input(false, { transform: this.coerceInput });\n\n  /**\n   * The number of columns/offset/order on medium devices (<992px).\n   * @return { 'auto' | number |  boolean }\n   */\n  readonly md = input(false, { transform: this.coerceInput });\n\n  /**\n   * The number of columns/offset/order on large devices (<1200px).\n   * @return { 'auto' | number |  boolean }\n   */\n  readonly lg = input(false, { transform: this.coerceInput });\n\n  /**\n   * The number of columns/offset/order on X-Large devices (<1400px).\n   * @return { 'auto' | number |  boolean }\n   */\n  readonly xl = input(false, { transform: this.coerceInput });\n\n  /**\n   * The number of columns/offset/order on XX-Large devices (≥1400px).\n   * @return { 'auto' | number |  boolean }\n   */\n  readonly xxl = input(false, { transform: this.coerceInput });\n\n  readonly breakpoints = computed(() => {\n    return {\n      xs: this.xs() || this.cCol(),\n      sm: this.sm(),\n      md: this.md(),\n      lg: this.lg(),\n      xl: this.xl(),\n      xxl: this.xxl()\n    } as Record<string, any>;\n  });\n\n  readonly offset = input<ColOffsetType>();\n  readonly order = input<ColOrderType>();\n\n  readonly hostClasses = computed(() => {\n    const classes: Record<string, boolean> = {\n      col: true\n    };\n\n    const breakpoints = this.breakpoints();\n    const offsetInput = this.offset();\n    const orderInput = this.order();\n\n    Object.keys(BreakpointInfix).forEach((breakpoint) => {\n      const value = breakpoints[breakpoint];\n      const infix = breakpoint === 'xs' ? '' : `-${breakpoint}`;\n      classes[`col${infix}`] = value === true;\n      classes[`col${infix}-${value}`] = typeof value === 'number' || typeof value === 'string';\n    });\n\n    if (typeof offsetInput === 'object') {\n      const offset = { ...offsetInput };\n      Object.entries(offset).forEach((entry) => {\n        const [breakpoint, value] = [...entry];\n        const infix = breakpoint === 'xs' ? '' : `-${breakpoint}`;\n        classes[`offset${infix}-${value}`] = value >= 0 && value <= 11;\n      });\n    } else {\n      const offset = numberAttribute(offsetInput);\n      classes[`offset-${offset}`] = typeof offset === 'number' && offset > 0 && offset <= 11;\n    }\n\n    if (typeof orderInput === 'object') {\n      const order = { ...orderInput };\n      Object.entries(order).forEach((entry) => {\n        const [breakpoint, value] = [...entry];\n        const infix = breakpoint === 'xs' ? '' : `-${breakpoint}`;\n        classes[`order${infix}-${value}`] = !!value;\n      });\n    } else {\n      const order = orderInput;\n      classes[`order-${order}`] = !!order;\n    }\n\n    // if there is no 'col' class, add one\n    classes['col'] =\n      !Object.entries(classes).filter((i) => i[0].startsWith('col-') && i[1]).length || breakpoints['xs'] === true;\n    return classes as Record<string, boolean>;\n  });\n\n  coerceInput(value: BooleanInput | NumberInput) {\n    if (value === 'auto') {\n      return value;\n    }\n    if (value === '' || value === undefined || value === null) {\n      return booleanAttribute(value);\n    }\n    if (typeof value === 'boolean') {\n      return value;\n    }\n    return numberAttribute(value);\n  }\n}\n","import { Component } from '@angular/core';\n\nimport { ColDirective } from './col.directive';\n\n@Component({\n  selector: 'c-col',\n  template: '<ng-content />',\n  styleUrls: ['./col.component.scss']\n})\nexport class ColComponent extends ColDirective {}\n","import { computed, Directive, input } from '@angular/core';\n\nimport { BreakpointInfix } from '../coreui.types';\nimport { NumberOfColumns } from './row.type';\n\n@Directive({\n  selector: '[cRow]',\n  host: {\n    class: 'row',\n    '[class]': 'hostClasses()'\n  }\n})\nexport class RowDirective {\n  /**\n   * The number of columns/offset/order on extra small devices (<576px).\n   * @return { cols: 'auto' | number }\n   */\n  readonly xs = input<NumberOfColumns>();\n\n  /**\n   * The number of columns/offset/order on small devices (<768px).\n   * @return { cols: 'auto' | number }\n   */\n  readonly sm = input<NumberOfColumns>();\n\n  /**\n   * The number of columns/offset/order on medium devices (<992px).\n   * @return { cols: 'auto' | number }\n   */\n  readonly md = input<NumberOfColumns>();\n\n  /**\n   * The number of columns/offset/order on large devices (<1200px).\n   * @return { cols: 'auto' | number }\n   */\n  readonly lg = input<NumberOfColumns>();\n\n  /**\n   * The number of columns/offset/order on X-Large devices (<1400px).\n   * @return { cols: 'auto' | number }\n   */\n  readonly xl = input<NumberOfColumns>();\n\n  /**\n   * The number of columns/offset/order on XX-Large devices (≥1400px).\n   * @return { cols: 'auto' | number }\n   */\n  readonly xxl = input<NumberOfColumns>();\n\n  readonly hostClasses = computed(() => {\n    const cols = this.xs();\n\n    const classes: Record<string, boolean> = {\n      row: true,\n      [`row-cols-${cols}`]: !!cols\n    };\n\n    Object.keys(BreakpointInfix).forEach((breakpoint) => {\n      // @ts-ignore\n      const value: any = this[breakpoint]();\n      if (typeof value === 'number' || typeof value === 'string') {\n        const infix: string = breakpoint === 'xs' ? '' : `-${breakpoint}`;\n        classes[`row-cols${infix}-${value}`] = !!value;\n      }\n    });\n\n    return classes;\n  });\n}\n","import { Component } from '@angular/core';\n\nimport { RowDirective } from './row.directive';\n\n@Component({\n  selector: 'c-row',\n  template: '<ng-content />'\n})\nexport class RowComponent extends RowDirective {}\n","import { computed, Directive, input } from '@angular/core';\n\nimport { BreakpointInfix } from '../coreui.types';\nimport { GutterBreakpoints, Gutters, IGutter, IGutterObject } from './gutter.type';\n\n@Directive({\n  // eslint-disable-next-line @angular-eslint/directive-selector\n  selector: '[gutter]',\n  exportAs: 'gutter',\n  host: {\n    '[class]': 'hostClasses()'\n  }\n})\nexport class GutterDirective implements IGutter {\n  /**\n   * Define padding between columns to space and align content responsively in the Bootstrap grid system.\n   */\n  readonly gutter = input<IGutterObject | GutterBreakpoints | Gutters>({});\n\n  readonly hostClasses = computed(() => {\n    let gutterClass: Record<string, boolean>;\n    const gutterInput = this.gutter();\n\n    if (typeof gutterInput === 'number') {\n      gutterClass = GutterDirective.getGutterClasses({ g: gutterInput });\n      return gutterClass;\n    }\n\n    {\n      const { g, gx, gy } = { ...(gutterInput as IGutterObject) };\n      gutterClass = GutterDirective.getGutterClasses({ g, gx, gy });\n    }\n\n    Object.keys(BreakpointInfix).forEach((key) => {\n      // @ts-ignore\n      const gutter: IGutterObject = gutterInput[key] ? { ...gutterInput[key] } : undefined;\n      if (gutter) {\n        const classes = GutterDirective.getGutterClasses(gutter, key);\n        gutterClass = { ...gutterClass, ...classes };\n      }\n    });\n    return gutterClass;\n  });\n\n  private static getGutterClasses(gutter: IGutterObject, breakpoint?: string): any {\n    const { g, gx, gy } = { ...gutter };\n    const infix = breakpoint ? `-${breakpoint}` : '';\n    return {\n      [`g${infix}-${g}`]: typeof g === 'number',\n      [`gx${infix}-${gx}`]: typeof gx === 'number',\n      [`gy${infix}-${gy}`]: typeof gy === 'number'\n    };\n  }\n}\n","import { NgModule } from '@angular/core';\n\nimport { ContainerComponent } from './container.component';\nimport { RowComponent } from './row.component';\nimport { ColComponent } from './col.component';\nimport { RowDirective } from './row.directive';\nimport { ColDirective } from './col.directive';\nimport { GutterDirective } from './gutter.directive';\n\n@NgModule({\n  imports: [\n    ColComponent,\n    ColDirective,\n    ContainerComponent,\n    GutterDirective,\n    RowComponent,\n    RowDirective\n  ],\n  exports: [\n    ColComponent,\n    ColDirective,\n    ContainerComponent,\n    GutterDirective,\n    RowComponent,\n    RowDirective\n  ]\n})\nexport class GridModule {}\n","import { Component, computed, input, InputSignal } from '@angular/core';\n\nimport { Positions } from '../../coreui.types';\n\ntype Container = boolean | 'sm' | 'md' | 'lg' | 'xl' | 'xxl' | 'fluid';\n\n@Component({\n  selector: 'c-header, [c-header]',\n  templateUrl: './header.component.html',\n  exportAs: 'cHeader',\n  host: { '[attr.role]': 'role()', '[class]': 'hostClasses()' }\n})\nexport class HeaderComponent {\n  /**\n   * Defines optional container wrapping children elements.\n   */\n  readonly container = input<Container>();\n  /**\n   * Place header in non-static positions.\n   */\n  readonly position = input<Positions>();\n  /**\n   * Default role for header. [docs]\n   * @type string\n   * @default 'banner'\n   */\n  readonly role: InputSignal<string> = input('banner');\n\n  readonly hostClasses = computed(() => {\n    return !!this.container() ? this.containerClasses() : this.headerClasses();\n  });\n\n  readonly headerClasses = computed(() => {\n    const position = this.position();\n    return {\n      header: true,\n      [`header-${position}`]: !!position\n    } as Record<string, boolean>;\n  });\n\n  readonly containerClasses = computed(() => {\n    const container = this.container();\n    return {\n      container: container === true,\n      [`container-${container}`]: typeof container === 'string'\n    } as Record<string, boolean>;\n  });\n}\n","@if (!!container()) {\n  <div [class]=\"headerClasses()\">\n    <ng-content />\n  </div>\n} @else {\n  <ng-content />\n}\n","import { Component, input } from '@angular/core';\n\n@Component({\n  selector: 'c-header-brand',\n  template: '<ng-content />',\n  exportAs: 'cHeaderBrand',\n  host: {\n    '[attr.role]': 'role()',\n    class: 'header-brand'\n  }\n})\nexport class HeaderBrandComponent {\n  /**\n   * Default role for header-brand. [docs]\n   * @return string\n   * @default 'button'\n   */\n  readonly role = input('button');\n}\n","import { Component } from '@angular/core';\n\n@Component({\n  selector: 'c-header-divider, [cHeaderDivider]',\n  template: ``,\n  host: {\n    class: 'header-divider'\n  }\n})\nexport class HeaderDividerComponent {}\n","import { Component, input } from '@angular/core';\n\n@Component({\n  selector: 'c-header-nav',\n  template: '<ng-content />',\n  styleUrls: ['./header-nav.component.scss'],\n  exportAs: 'cHeaderNav',\n  host: {\n    '[attr.role]': 'role()',\n    class: 'header-nav'\n  }\n})\nexport class HeaderNavComponent {\n  /**\n   * Default role for header-nav. [docs]\n   * @return string\n   * @default 'navigation'\n   */\n  readonly role = input('navigation');\n}\n","import { Component } from '@angular/core';\n\n@Component({\n  selector: 'c-header-text, [cHeaderText]',\n  template: '<ng-content />',\n  host: {\n    class: 'header-text'\n  }\n})\nexport class HeaderTextComponent {}\n","import { AfterContentInit, Directive, ElementRef, inject, input, Renderer2 } from '@angular/core';\n\n@Directive({\n  selector: '[cHeaderToggler]',\n  exportAs: 'cHeaderToggler',\n  host: {\n    '[attr.type]': 'type()',\n    '[attr.aria-label]': 'ariaLabel()',\n    class: 'header-toggler'\n  }\n})\nexport class HeaderTogglerDirective implements AfterContentInit {\n  readonly #renderer = inject(Renderer2);\n  readonly #hostElement = inject(ElementRef);\n\n  /**\n   * Default type for header-toggler button. [docs]\n   * @return string\n   * @default 'button'\n   */\n  readonly type = input('button');\n\n  /**\n   * Default aria-label attr for header-toggler. [docs]\n   * @type string\n   * @default 'Toggle navigation'\n   */\n  readonly ariaLabel = input('Toggle navigation');\n\n  addDefaultIcon(): void {\n    const span = this.#renderer.createElement('span');\n    this.#renderer.addClass(span, 'header-toggler-icon');\n    this.#renderer.appendChild(this.#hostElement.nativeElement, span);\n  }\n\n  ngAfterContentInit(): void {\n    const hasContent = this.#hostElement.nativeElement.childNodes.length > 0;\n    if (!hasContent) {\n      this.addDefaultIcon();\n    }\n  }\n}\n","import { NgModule } from '@angular/core';\n\nimport { HeaderComponent } from './header/header.component';\nimport { HeaderBrandComponent } from './header-brand/header-brand.component';\nimport { HeaderDividerComponent } from './header-divider/header-divider.component';\nimport { HeaderNavComponent } from './header-nav/header-nav.component';\nimport { HeaderTextComponent } from './header-text/header-text.component';\nimport { HeaderTogglerDirective } from './header-toggler/header-toggler.directive';\n\n@NgModule({\n  imports: [\n    HeaderComponent,\n    HeaderBrandComponent,\n    HeaderDividerComponent,\n    HeaderNavComponent,\n    HeaderTextComponent,\n    HeaderTogglerDirective\n  ],\n  exports: [\n    HeaderComponent,\n    HeaderBrandComponent,\n    HeaderDividerComponent,\n    HeaderNavComponent,\n    HeaderTextComponent,\n    HeaderTogglerDirective\n  ]\n})\nexport class HeaderModule {}\n","import { booleanAttribute, computed, Directive, input, InputSignal, InputSignalWithTransform } from '@angular/core';\n\n@Directive({\n  selector: '[cImg]',\n  host: {\n    '[class]': 'hostClasses()',\n    '[style]': 'hostStyles()'\n  }\n})\nexport class ImgDirective {\n  /**\n   * Set the horizontal aligment.\n   * @type {'' | 'start' | 'end' | 'center'}\n   */\n  readonly align: InputSignal<'' | 'start' | 'end' | 'center'> = input<'' | 'start' | 'end' | 'center'>('');\n\n  /**\n   * Make image responsive.\n   * @type boolean\n   */\n  readonly fluid: InputSignalWithTransform<boolean, unknown> = input(false, { transform: booleanAttribute });\n\n  /**\n   * Make image rounded.\n   * @type boolean\n   */\n  readonly rounded: InputSignalWithTransform<boolean, unknown> = input(false, { transform: booleanAttribute });\n\n  /**\n   * Give an image a rounded 1px border appearance.\n   * @type boolean\n   */\n  readonly thumbnail: InputSignalWithTransform<boolean, unknown> = input(false, { transform: booleanAttribute });\n\n  /**\n   * Color for image placeholder.\n   */\n  readonly placeholderColor = input('transparent');\n\n  readonly hostStyles = computed(() => {\n    return { backgroundColor: this.placeholderColor() };\n  });\n\n  readonly hostClasses = computed(() => {\n    const align = this.align();\n    return {\n      [`float-${align}`]: align === 'start' || align === 'end',\n      'd-block': align === 'center',\n      'mx-auto': align === 'center',\n      'img-fluid': this.fluid(),\n      rounded: this.rounded(),\n      'img-thumbnail': this.thumbnail()\n    } as Record<string, boolean>;\n  });\n}\n","import { NgModule } from '@angular/core';\nimport { ImgDirective } from './img.directive';\n\n@NgModule({\n  imports: [ImgDirective],\n  exports: [ImgDirective]\n})\nexport class ImgModule {}\n","import { booleanAttribute, computed, Directive, input, InputSignalWithTransform } from '@angular/core';\nimport { BooleanInput, Sizes } from '../coreui.types';\n\n@Directive({\n  selector: '[cListGroup]',\n  host: {\n    class: 'list-group',\n    '[class]': 'hostClasses()'\n  }\n})\nexport class ListGroupDirective {\n  static ngAcceptInputType_flush: BooleanInput;\n\n  /**\n   * Remove some borders and rounded corners to render list group items edge-to-edge in a parent component (e.g., `<CCard>`).\n   * @type boolean\n   */\n  readonly flush: InputSignalWithTransform<boolean, unknown> = input(false, { transform: booleanAttribute });\n\n  /**\n   * Specify horizontal layout type.\n   */\n  readonly horizontal = input<boolean | Sizes>();\n\n  readonly hostClasses = computed(() => {\n    const horizontal = this.horizontal();\n    return {\n      'list-group': true,\n      'list-group-horizontal': horizontal === true || horizontal === '',\n      [`list-group-horizontal-${horizontal}`]: !!horizontal && typeof horizontal !== 'boolean',\n      'list-group-flush': this.flush()\n    } as Record<string, boolean>;\n  });\n}\n","import {\n  booleanAttribute,\n  computed,\n  Directive,\n  ElementRef,\n  inject,\n  input,\n  InputSignal,\n  InputSignalWithTransform,\n  numberAttribute\n} from '@angular/core';\nimport { BooleanInput, Colors } from '../coreui.types';\n\n@Directive({\n  selector: '[cListGroupItem], c-list-group-item',\n  exportAs: 'cListGroupItem',\n  host: {\n    '[class]': 'hostClasses()',\n    '[attr.aria-disabled]': 'ariaDisabled()',\n    '[attr.aria-current]': 'ariaCurrent()',\n    '[attr.disabled]': 'attrDisabled()',\n    '[attr.tabindex]': 'tabIndex()'\n  }\n})\nexport class ListGroupItemDirective {\n  static ngAcceptInputType_active: BooleanInput;\n  static ngAcceptInputType_disabled: BooleanInput;\n\n  readonly hostElement = inject(ElementRef);\n\n  /**\n   * Toggle the active state for the component.\n   * @type InputSignalWithTransform<boolean, unknown>\n   */\n  readonly active: InputSignalWithTransform<boolean, unknown> = input(false, { transform: booleanAttribute });\n\n  /**\n   * Sets the color context of the component to one of CoreUI’s themed colors.\n   * @type InputSignal<boolean | undefined>\n   */\n  readonly color: InputSignal<Colors | undefined> = input();\n\n  /**\n   * Set disabled attr for the host element. [docs]\n   * @type boolean\n   */\n  readonly disabled: InputSignalWithTransform<boolean, unknown> = input(false, { transform: booleanAttribute });\n\n  /**\n   * The tabindex attribute specifies the tab order of an element (when the \"tab\" button is used for navigating).\n   */\n  readonly tabindex = input(undefined, { transform: numberAttribute });\n\n  readonly hostClasses = computed(() => {\n    const host: HTMLElement = this.hostElement.nativeElement;\n    const color = this.color();\n\n    return {\n      'list-group-item': true,\n      'list-group-item-action': host.nodeName === 'A' || host.nodeName === 'BUTTON',\n      active: this.active(),\n      disabled: this._disabled(),\n      [`list-group-item-${color}`]: !!color\n    } as Record<string, boolean>;\n  });\n\n  readonly _disabled = computed(() => this.disabled());\n\n  readonly ariaDisabled = computed(() => {\n    return this._disabled() ? true : null;\n  });\n\n  readonly attrDisabled = computed(() => {\n    return this._disabled() ? '' : null;\n  });\n\n  readonly tabIndex = computed(() => {\n    return this._disabled() ? '-1' : (this.tabindex() ?? null);\n  });\n\n  readonly ariaCurrent = computed(() => {\n    return this.active() || null;\n  });\n}\n","import { NgModule } from '@angular/core';\n\nimport { ListGroupDirective } from './list-group.directive';\nimport { ListGroupItemDirective } from './list-group-item.directive';\n\n@NgModule({\n  exports: [ListGroupDirective, ListGroupItemDirective],\n  imports: [ListGroupDirective, ListGroupItemDirective]\n})\nexport class ListGroupModule {}\n","import { animate, AnimationTriggerMetadata, style, transition, trigger } from '@angular/animations';\n\nexport const loadingButtonAnimation: AnimationTriggerMetadata =\n  trigger('loadingButton', [\n    transition(':enter', [\n      style({\n        opacity: 0,\n        marginRight: '1rem',\n        marginLeft: '-2rem'\n      }),\n      animate('.15s ease-in-out', style({\n        opacity: 1,\n        marginRight: '1rem',\n        marginLeft: '0rem'\n      }))\n    ]),\n    transition(':leave', [\n      style({\n        opacity: 1\n      }),\n      animate('.15s ease-in-out', style({\n        opacity: 0,\n        marginRight: '1rem',\n        marginLeft: '-2rem'\n      }))\n    ])\n  ]);\n","import {\n  booleanAttribute,\n  Component,\n  computed,\n  effect,\n  input,\n  InputSignal,\n  InputSignalWithTransform,\n  output,\n  OutputEmitterRef\n} from '@angular/core';\n\nimport { ButtonDirective } from '../button';\nimport { SpinnerComponent } from '../spinner';\nimport { loadingButtonAnimation } from './loading-button.animations';\n\n@Component({\n  // eslint-disable-next-line @angular-eslint/component-selector\n  selector: 'button[cLoadingButton], a[cLoadingButton]',\n  templateUrl: './loading-button.component.html',\n  exportAs: 'cLoadingButton',\n  imports: [SpinnerComponent],\n  animations: [loadingButtonAnimation],\n  host: {\n    class: 'btn-loading',\n    '[class]': 'hostClasses()',\n    '[attr.aria-disabled]': 'ariaDisabled()',\n    '[attr.aria-pressed]': 'isActive()',\n    '[attr.disabled]': 'attrDisabled()',\n    '[attr.tabindex]': 'tabIndex()',\n    '[attr.type]': 'type()'\n  }\n})\nexport class LoadingButtonComponent extends ButtonDirective {\n  /**\n   * Makes button disabled when loading.\n   * @type boolean\n   * @default false\n   */\n  disabledOnLoading: InputSignalWithTransform<boolean, unknown> = input(false, { transform: booleanAttribute });\n\n  /**\n   * Loading state (set to true to start animation).\n   * @type boolean\n   */\n  loading: InputSignalWithTransform<boolean, unknown> = input(false, { transform: booleanAttribute });\n\n  /**\n   * Event emitted on loading change\n   * @type boolean\n   */\n  loadingChange: OutputEmitterRef<boolean> = output<boolean>();\n\n  loadingEffect = effect(() => {\n    this.loadingChange.emit(this.loading());\n  });\n\n  /**\n   * Sets type of spinner.\n   * @type {'border' | 'grow'}\n   */\n  spinnerType: InputSignal<'border' | 'grow'> = input<'border' | 'grow'>('border');\n\n  constructor() {\n    super();\n  }\n\n  override hostClasses = computed(() => {\n    const color = this.color();\n    const size = this.size();\n    const variant = this.variant();\n\n    return {\n      btn: true,\n      'btn-loading': true,\n      'is-loading': this.loading(),\n      [`btn-${color}`]: !!color && !variant,\n      [`btn-${variant}`]: !!variant && !color,\n      [`btn-${variant}-${color}`]: !!variant && !!color,\n      [`btn-${size}`]: !!size,\n      active: this.active(),\n      disabled: this._disabled()\n    } as Record<string, boolean>;\n  });\n\n  override _disabled = computed(() => {\n    return this.disabled() || (this.disabledOnLoading() && this.loading());\n  });\n}\n","@if (loading()) {\n  <c-spinner [variant]=\"spinnerType()\" size=\"sm\" class=\"btn-loading-spinner\" @loadingButton />\n}\n<ng-content />\n","import { NgModule } from '@angular/core';\nimport { LoadingButtonComponent } from './loading-button.component';\n\n@NgModule({\n  exports: [LoadingButtonComponent],\n  imports: [LoadingButtonComponent]\n})\nexport class LoadingButtonModule {}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n  selector: 'c-multi-select-optgroup-label',\n  template: '<ng-content />',\n  styles: `\n    :host {\n      display: block;\n    }\n  `,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: true,\n  host: { class: 'form-multi-select-optgroup-label' }\n})\nexport class MultiSelectOptgroupLabelComponent {}\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport {\n  AfterContentInit,\n  booleanAttribute,\n  ChangeDetectionStrategy,\n  Component,\n  computed,\n  contentChildren,\n  DestroyRef,\n  effect,\n  inject,\n  input,\n  signal\n} from '@angular/core';\nimport { tap } from 'rxjs/operators';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { MultiSelectService } from '../multi-select.service';\nimport { MultiSelectOptionComponent } from '../multi-select-option/multi-select-option.component';\nimport { MultiSelectOptgroupLabelComponent } from './multi-select-optgroup-label.component';\n\n@Component({\n  selector: 'c-multi-select-optgroup',\n  template: `\n    @let lbl = label();\n    @if (lbl && visible()) {\n      <c-multi-select-optgroup-label>{{ lbl }}</c-multi-select-optgroup-label>\n    }\n    <ng-content />\n  `,\n  styles: `\n    :host {\n      display: block;\n    }\n  `,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  imports: [MultiSelectOptgroupLabelComponent],\n  host: {\n    '[class]': 'hostClasses()'\n  }\n})\nexport class MultiSelectOptgroupComponent implements AfterContentInit {\n  static ngAcceptInputType_disabled: BooleanInput;\n\n  readonly #destroyRef = inject(DestroyRef);\n  readonly #multiSelectService = inject(MultiSelectService);\n\n  readonly label = input<string>();\n  readonly disabled = input(false, { transform: booleanAttribute });\n\n  readonly visible = signal(true);\n\n  readonly multiSelectOptions = contentChildren(MultiSelectOptionComponent, { descendants: true });\n\n  readonly #optionsEffect = effect(() => {\n    const disabled = this.disabled();\n    const options = this.multiSelectOptions();\n    options?.forEach((option) => {\n      option.disabled = disabled || option.disabled;\n    });\n  });\n\n  readonly hostClasses = computed(() => {\n    return {\n      'form-multi-select-options': true,\n      'd-none': !this.visible()\n    } as Record<string, boolean>;\n  });\n\n  ngAfterContentInit(): void {\n    this.watchOptGroupContent();\n  }\n\n  private watchOptGroupContent() {\n    this.#multiSelectService.optionsArray$\n      .pipe(\n        tap((x) => {\n          this.visible.set(this.multiSelectOptions()?.some((option) => option.visible));\n        }),\n        takeUntilDestroyed(this.#destroyRef)\n      )\n      .subscribe();\n  }\n}\n","import { NgModule } from '@angular/core';\n\nimport { MultiSelectService } from './multi-select.service';\nimport { MultiSelectComponent } from './multi-select/multi-select.component';\nimport { MultiSelectOptionComponent } from './multi-select-option/multi-select-option.component';\nimport { MultiSelectOptgroupComponent } from './multi-select-optgroup/multi-select-optgroup.component';\nimport { MultiSelectOptgroupLabelComponent } from './multi-select-optgroup/multi-select-optgroup-label.component';\n\n@NgModule({\n  imports: [\n    MultiSelectComponent,\n    MultiSelectOptionComponent,\n    MultiSelectOptgroupComponent,\n    MultiSelectOptgroupLabelComponent\n  ],\n  exports: [\n    MultiSelectComponent,\n    MultiSelectOptionComponent,\n    MultiSelectOptgroupComponent,\n    MultiSelectOptgroupLabelComponent\n  ],\n  providers: [MultiSelectService]\n})\nexport class MultiSelectModule {\n}\n","import { booleanAttribute, computed, Directive, effect, input, numberAttribute } from '@angular/core';\nimport { BooleanInput } from '../coreui.types';\n\n@Directive({\n  selector: '[cNavLink]',\n  host: {\n    '[class]': 'hostClasses()',\n    '[attr.aria-current]': 'ariaCurrent()',\n    '[attr.aria-disabled]': 'ariaDisabled',\n    '[attr.disabled]': 'attrDisabled',\n    '[attr.tabindex]': 'attrTabindex',\n    '[style.cursor]': 'styleCursor'\n  }\n})\nexport class NavLinkDirective {\n  static ngAcceptInputType_disabled: BooleanInput;\n\n  /**\n   * Sets .nav-link class to the host. [docs]\n   * @default true\n   */\n  readonly cNavLink = input(true, { transform: booleanAttribute });\n\n  /**\n   * Toggle the active state for the component. [docs]\n   * @default undefined\n   */\n  readonly active = input<boolean>();\n\n  /**\n   * Set disabled attr for the host element. [docs]\n   * @default false\n   */\n  readonly disabled = input(false, { transform: booleanAttribute });\n\n  /**\n   * The tabindex attribute specifies the tab order of an element (when the \"tab\" button is used for navigating).\n   */\n  readonly tabindex = input(undefined, { transform: numberAttribute });\n\n  readonly ariaCurrent = computed(() => {\n    return this.active() ? 'page' : null;\n  });\n\n  ariaDisabled: boolean | null = null;\n  attrDisabled: boolean | string | null = null;\n  attrTabindex: number | null = null;\n  styleCursor: 'pointer' | null = null;\n\n  readonly #disabledEffect = effect(() => {\n    const disabled = this.disabled();\n    this.ariaDisabled = disabled || null;\n    this.attrDisabled = disabled ? '' : null;\n    this.attrTabindex = disabled ? -1 : (this.tabindex() ?? null);\n    this.styleCursor = disabled ? null : 'pointer';\n  });\n\n  readonly hostClasses = computed(() => {\n    return {\n      'nav-link': this.cNavLink(),\n      disabled: this.disabled(),\n      active: this.active()\n    } as Record<string, boolean>;\n  });\n}\n","import { Component } from '@angular/core';\n\n@Component({\n  selector: 'c-nav-item',\n  template: '<ng-content />',\n  styleUrls: ['./nav-item.component.scss'],\n  host: { class: 'nav-item' }\n})\nexport class NavItemComponent {}\n","import { Component, computed, input } from '@angular/core';\n\n@Component({\n  selector: 'c-nav',\n  template: '<ng-content />',\n  styleUrls: ['./nav.component.scss'],\n  host: { class: 'nav', '[class]': 'hostClasses()' }\n})\nexport class NavComponent {\n  /**\n   * Specify a layout type for component.\n   * @default undefined\n   */\n  readonly layout = input<'fill' | 'justified'>();\n\n  /**\n   * Set the nav variant to tabs or pills.\n   * @default undefined\n   */\n  readonly variant = input<'tabs' | 'pills' | 'underline' | 'underline-border' | ''>();\n\n  readonly hostClasses = computed(() => {\n    const layout = this.layout();\n    const variant = this.variant();\n    return {\n      nav: true,\n      [`nav-${layout}`]: !!layout,\n      [`nav-${variant}`]: !!variant\n    } as Record<string, boolean>;\n  });\n}\n","import { NgModule } from '@angular/core';\nimport { NavComponent } from './nav.component';\nimport { NavItemComponent } from './nav-item.component';\nimport { NavLinkDirective } from './nav-link.directive';\n\n@NgModule({\n  imports: [\n    NavComponent,\n    NavItemComponent,\n    NavLinkDirective\n  ],\n  exports: [\n    NavComponent,\n    NavItemComponent,\n    NavLinkDirective\n  ]\n})\nexport class NavModule {}\n","import { BreakpointObserver } from '@angular/cdk/layout';\nimport {\n  AfterContentInit,\n  afterEveryRender,\n  Component,\n  computed,\n  contentChild,\n  DOCUMENT,\n  ElementRef,\n  inject,\n  input,\n  OnDestroy,\n  signal\n} from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { Subscription } from 'rxjs';\n\nimport { CollapseDirective } from '../collapse';\nimport { Colors } from '../coreui.types';\nimport { ThemeDirective } from '../shared';\n\n// todo: fix container prop issue not rendering children\n// todo: workaround -  use <c-container> component directly in template\n\n@Component({\n  selector: 'c-navbar',\n  templateUrl: './navbar.component.html',\n  imports: [NgTemplateOutlet],\n  hostDirectives: [{ directive: ThemeDirective, inputs: ['colorScheme'] }],\n  host: { '[class]': 'hostClasses()', '[attr.role]': 'role()' }\n})\nexport class NavbarComponent implements AfterContentInit, OnDestroy {\n  readonly #breakpointObserver = inject(BreakpointObserver);\n  readonly #document = inject(DOCUMENT);\n  readonly #hostElement = inject(ElementRef);\n\n  /**\n   * Sets the color context of the component to one of CoreUI’s themed colors.\n   * @type Colors\n   */\n  readonly color = input<Colors>();\n\n  /**\n   * Defines optional container wrapping children elements.\n   */\n  readonly container = input<boolean | 'sm' | 'md' | 'lg' | 'xl' | 'xxl' | 'fluid'>();\n\n  /**\n   * Defines the responsive breakpoint to determine when content collapses.\n   */\n  readonly expand = input<boolean | 'sm' | 'md' | 'lg' | 'xl' | 'xxl'>();\n\n  /**\n   * Place component in non-static positions.\n   */\n  readonly placement = input<'fixed-top' | 'fixed-bottom' | 'sticky-top'>();\n\n  readonly role = input('navigation');\n\n  readonly collapse = contentChild(CollapseDirective);\n\n  readonly hostClasses = computed(() => {\n    const color = this.color();\n    const expand = this.expand();\n    const expandClassSuffix: string = expand === true ? '' : `-${expand}`;\n    const placement = this.placement();\n    return {\n      navbar: true,\n      [`navbar-expand${expandClassSuffix}`]: !!expand,\n      [`bg-${color}`]: !!color,\n      [`${placement}`]: !!placement\n    } as Record<string, boolean>;\n  });\n\n  readonly containerClass = computed(() => {\n    const container = this.container();\n    return `container${container !== true ? '-' + container : ''}`;\n  });\n\n  readonly computedStyle = signal<string>('');\n\n  readonly #afterEveryRenderFn = afterEveryRender({\n    read: () => {\n      const expand = this.expand();\n      if (typeof expand === 'string') {\n        const computedStyle =\n          this.#document.defaultView\n            ?.getComputedStyle(this.#hostElement.nativeElement)\n            ?.getPropertyValue(`--cui-breakpoint-${expand}`) ?? false;\n        computedStyle && this.computedStyle.set(computedStyle);\n      }\n    }\n  });\n\n  readonly breakpoint = computed(() => {\n    const expand = this.expand();\n    if (typeof expand === 'string') {\n      return this.computedStyle();\n    }\n    return false;\n  });\n\n  #observer!: Subscription;\n\n  ngAfterContentInit(): void {\n    const breakpoint = this.breakpoint();\n    if (breakpoint) {\n      const onBreakpoint = `(min-width: ${breakpoint})`;\n      this.#observer = this.#breakpointObserver\n        .observe([onBreakpoint])\n        .pipe()\n        .subscribe((result) => {\n          const collapse = this.collapse();\n          if (collapse) {\n            const animate = collapse.animate();\n            collapse.animate.set(false);\n            collapse.toggle(false);\n            setTimeout(() => {\n              collapse.toggle(result.matches);\n              setTimeout(() => {\n                collapse.animate.set(animate);\n              });\n            });\n          }\n        });\n    }\n  }\n\n  ngOnDestroy(): void {\n    this.#observer?.unsubscribe();\n  }\n}\n","<ng-container *ngTemplateOutlet=\"container() ? withContainerTemplate : noContainerTemplate\" />\n\n<ng-template #withContainerTemplate>\n  <div [class]=\"containerClass()\">\n    <ng-content />\n  </div>\n</ng-template>\n\n<ng-template #noContainerTemplate>\n  <ng-content />\n</ng-template>\n","import { Directive, input } from '@angular/core';\n\n@Directive({\n  selector: '[cNavbarBrand]',\n  host: { class: 'navbar-brand', '[attr.role]': 'role()' }\n})\nexport class NavbarBrandDirective {\n  readonly role = input('button');\n}\n","import { booleanAttribute, Component, computed, input } from '@angular/core';\n\n@Component({\n  selector: 'c-navbar-nav',\n  template: '<ng-content />',\n  host: { '[class]': 'hostClasses()' }\n})\nexport class NavbarNavComponent {\n  /**\n   * Enable vertical scrolling of a collapsed navbar toggleable contents.\n   * @type boolean\n   */\n  readonly scroll = input(false, { transform: booleanAttribute });\n\n  readonly hostClasses = computed(() => {\n    return {\n      'navbar-nav': true,\n      'navbar-nav-scroll': this.scroll()\n    } as Record<string, boolean>;\n  });\n}\n","import { Component } from '@angular/core';\n\n@Component({\n  selector: 'c-navbar-text',\n  template: '<ng-content />',\n  host: { class: 'navbar-text' }\n})\nexport class NavbarTextComponent {}\n","import { afterNextRender, Directive, ElementRef, inject, input, Renderer2 } from '@angular/core';\nimport { CollapseDirective } from '../../collapse';\n\n@Directive({\n  selector: '[cNavbarToggler]',\n  host: {\n    '[attr.aria-label]': 'ariaLabel()',\n    '[attr.type]': 'type()',\n    class: 'navbar-toggler',\n    '(click)': 'handleClick($event)'\n  }\n})\nexport class NavbarTogglerDirective {\n  readonly #renderer = inject(Renderer2);\n  readonly #hostElement = inject(ElementRef);\n\n  constructor() {\n    afterNextRender({\n      read: () => {\n        const hasContent = this.#hostElement.nativeElement.childNodes.length as boolean;\n        if (!hasContent) {\n          this.addDefaultIcon();\n        }\n      }\n    });\n  }\n\n  /**\n   * Reference to navbar collapse element (via # template variable) . [docs]\n   * @type string\n   * @default 'button'\n   */\n  readonly collapseRef = input<CollapseDirective | undefined>(undefined, { alias: 'cNavbarToggler' });\n\n  /**\n   * Default type for navbar-toggler. [docs]\n   * @type string\n   * @default 'button'\n   */\n  readonly type = input('button');\n\n  /**\n   * Default aria-label attr for navbar-toggler. [docs]\n   * @type string\n   * @default 'Toggle navigation'\n   */\n  readonly ariaLabel = input('Toggle navigation');\n\n  handleClick($event: MouseEvent): void {\n    const collapseRef = this.collapseRef();\n    collapseRef?.toggle(!collapseRef?.visible());\n  }\n\n  addDefaultIcon(): void {\n    const span = this.#renderer.createElement('span');\n    this.#renderer.addClass(span, 'navbar-toggler-icon');\n    this.#renderer.appendChild(this.#hostElement.nativeElement, span);\n  }\n}\n","import { NgModule } from '@angular/core';\n\nimport { NavbarComponent } from './navbar.component';\nimport { NavbarBrandDirective } from './navbar-brand/navbar-brand.directive';\nimport { NavbarNavComponent } from './navbar-nav/navbar-nav.component';\nimport { NavbarTextComponent } from './navbar-text/navbar-text.component';\nimport { NavbarTogglerDirective } from './navbar-toggler/navbar-toggler.directive';\n\n@NgModule({\n  exports: [\n    NavbarBrandDirective,\n    NavbarComponent,\n    NavbarNavComponent,\n    NavbarTextComponent,\n    NavbarTogglerDirective\n  ],\n  imports: [\n    NavbarBrandDirective,\n    NavbarComponent,\n    NavbarNavComponent,\n    NavbarTextComponent,\n    NavbarTogglerDirective\n  ]\n})\nexport class NavbarModule {}\n","import { Component } from '@angular/core';\n\n@Component({\n  selector: 'c-modal-body',\n  template: '<ng-content />',\n  styleUrls: ['./modal-body.component.scss'],\n  host: { class: 'modal-body' }\n})\nexport class ModalBodyComponent {}\n","import { Component } from '@angular/core';\n\n@Component({\n  selector: 'c-modal-content',\n  template: '<ng-content />',\n  host: { class: 'modal-content' }\n})\nexport class ModalContentComponent {}\n","import { booleanAttribute, Component, computed, input } from '@angular/core';\n\n@Component({\n  selector: 'c-modal-dialog',\n  template: '<ng-content />',\n  styleUrls: ['./modal-dialog.component.scss'],\n  host: { class: 'modal-dialog', '[class]': 'hostClasses()' }\n})\nexport class ModalDialogComponent {\n  /**\n   * Align the modal in the center or top of the screen.\n   * @default undefined\n   */\n  readonly alignment = input<'top' | 'center'>();\n\n  /**\n   * Set modal to covers the entire user viewport.\n   * @return {boolean | 'sm' | 'md' | 'lg' | 'xl' | 'xxl'}\n   */\n  readonly fullscreen = input<boolean | 'sm' | 'md' | 'lg' | 'xl' | 'xxl'>();\n\n  /**\n   * Does the modal dialog itself scroll, or does the whole dialog scroll within the window.\n   * @default false\n   * @return {boolean}\n   */\n  readonly scrollable = input(false, { transform: booleanAttribute });\n\n  /**\n   * Size the component small, large, or extra large.\n   * @default undefined\n   * @return {'sm' | 'lg' | 'xl'}\n   */\n  readonly size = input<'sm' | 'lg' | 'xl'>();\n\n  readonly hostClasses = computed(() => {\n    const fullscreen = this.fullscreen();\n    const size = this.size();\n    return {\n      'modal-dialog': true,\n      'modal-dialog-centered': this.alignment() === 'center',\n      'modal-fullscreen': fullscreen === true,\n      [`modal-fullscreen-${fullscreen}-down`]: typeof fullscreen === 'string',\n      'modal-dialog-scrollable': this.scrollable(),\n      [`modal-${size}`]: !!size\n    } as Record<string, boolean>;\n  });\n}\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { ModalComponent } from './modal/modal.component';\n\nexport interface IModalAction {\n  show?: boolean | 'toggle';\n  modal?: ModalComponent;\n  id?: string;\n}\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class ModalService {\n  readonly #modalState = new Subject<any>();\n  readonly modalState$ = this.#modalState.asObservable();\n\n  toggle(action: IModalAction): void {\n    this.#modalState.next(action);\n  }\n}\n","import { Directive, inject, input } from '@angular/core';\n\nimport { ModalService } from '../modal.service';\n\n@Directive({\n  selector: '[cModalToggle]',\n  host: {\n    '(click)': 'dismiss($event)'\n  }\n})\nexport class ModalToggleDirective {\n  readonly #modalService = inject(ModalService);\n\n  /**\n   * Html id attr of modal to dismiss.\n   * @default undefined\n   */\n  readonly toggle = input<string>(undefined, { alias: 'cModalToggle' });\n\n  dismiss($event: Event): void {\n    $event.preventDefault();\n    this.#modalService.toggle({ show: 'toggle', id: this.toggle() });\n  }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n  selector: 'c-modal-footer',\n  template: '<ng-content />',\n  host: { class: 'modal-footer' }\n})\nexport class ModalFooterComponent {}\n","import { Component } from '@angular/core';\n\n@Component({\n  selector: 'c-modal-header',\n  template: '<ng-content />',\n  host: { class: 'modal-header' }\n})\nexport class ModalHeaderComponent {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n  selector: '[cModalTitle]',\n  host: { class: 'modal-title' }\n})\nexport class ModalTitleDirective {}\n","import { animate, AnimationEvent, state, style, transition, trigger } from '@angular/animations';\nimport { A11yModule, FocusMonitor } from '@angular/cdk/a11y';\nimport { BooleanInput } from '@angular/cdk/coercion';\nimport {\n  AfterViewInit,\n  booleanAttribute,\n  Component,\n  computed,\n  DestroyRef,\n  DOCUMENT,\n  effect,\n  ElementRef,\n  inject,\n  input,\n  linkedSignal,\n  OnDestroy,\n  OnInit,\n  output,\n  Renderer2,\n  signal,\n  untracked,\n  viewChild\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { ModalService } from '../modal.service';\nimport { BackdropService } from '../../backdrop/backdrop.service';\nimport { ModalContentComponent } from '../modal-content/modal-content.component';\nimport { ModalDialogComponent } from '../modal-dialog/modal-dialog.component';\n\n@Component({\n  selector: 'c-modal',\n  animations: [\n    trigger('showHide', [\n      state(\n        'visible',\n        style({\n          // display: 'block'\n        })\n      ),\n      state(\n        'hidden',\n        style({\n          // display: 'none'\n        })\n      ),\n      transition('visible <=> *', [animate('150ms')])\n    ])\n  ],\n  templateUrl: './modal.component.html',\n  exportAs: 'cModal',\n  imports: [ModalDialogComponent, ModalContentComponent, A11yModule],\n  host: {\n    class: 'modal',\n    '[class]': 'hostClasses()',\n    '[attr.role]': 'role()',\n    '[attr.inert]': 'ariaHidden',\n    '[attr.id]': 'id',\n    '[attr.aria-modal]': 'ariaModal()',\n    '[attr.tabindex]': '-1',\n    '[@showHide]': 'animateTrigger()',\n    '(@showHide.start)': 'animateStart($event)',\n    '(@showHide.done)': 'animateDone($event)',\n    '(mousedown)': 'onMouseDownHandler($event)',\n    '(click)': 'onClickHandler($event)',\n    '(document:keyup)': 'onKeyUpHandler($event)'\n  }\n})\nexport class ModalComponent implements OnInit, OnDestroy, AfterViewInit {\n  static ngAcceptInputType_ariaModalInput: BooleanInput;\n  static ngAcceptInputType_scrollable: BooleanInput;\n  static ngAcceptInputType_visibleInput: BooleanInput;\n\n  readonly #document = inject<Document>(DOCUMENT);\n  readonly #renderer = inject(Renderer2);\n  readonly #hostElement = inject(ElementRef);\n  readonly #modalService = inject(ModalService);\n  readonly #backdropService = inject(BackdropService);\n\n  readonly #destroyRef = inject(DestroyRef);\n  readonly #focusMonitor = inject(FocusMonitor);\n\n  /**\n   * Align the modal in the center or top of the screen.\n   * @return {'top' | 'center'}\n   * @default 'top'\n   */\n  readonly alignment = input<'top' | 'center'>('top');\n\n  /**\n   * Apply a backdrop on body while modal is open.\n   * @return boolean | 'static'\n   * @default true\n   */\n  readonly backdrop = input<boolean | 'static'>(true);\n\n  /**\n   * Set modal to cover the entire user viewport.\n   * @return {boolean | 'sm' | 'md' | 'lg' | 'xl' | 'xxl'}\n   * @default undefined\n   */\n  readonly fullscreen = input<boolean | 'sm' | 'md' | 'lg' | 'xl' | 'xxl'>();\n\n  /**\n   * Closes the modal when escape key is pressed.\n   * @return boolean\n   * @default true\n   */\n  readonly keyboard = input(true, { transform: booleanAttribute });\n\n  readonly attrId = input<string>(undefined, { alias: 'id' });\n\n  get id() {\n    return this.attrId();\n  }\n\n  /**\n   * Size the component small, large, or extra large.\n   * @return {'sm' | 'lg' | 'xl'}\n   * @default undefined\n   */\n  readonly size = input<'sm' | 'lg' | 'xl'>();\n\n  /**\n   * Remove animation to create modal that simply appear rather than fade in to view.\n   */\n  readonly transition = input(true, { transform: booleanAttribute });\n\n  /**\n   * Default role for modal\n   * @return string\n   * @default 'dialog'\n   */\n  readonly role = input('dialog');\n\n  /**\n   * Set aria-modal html attr for modal\n   * @type boolean\n   * @default null\n   */\n  readonly ariaModalInput = input(false, { transform: booleanAttribute, alias: 'ariaModal' });\n\n  readonly ariaModal = computed(() => {\n    return this.visible() || this.ariaModalInput() ? true : null;\n  });\n\n  /**\n   * Create a scrollable modal that allows scrolling the modal body.\n   * @return boolean\n   * @default false\n   */\n  readonly scrollable = input(false, { transform: booleanAttribute });\n\n  /**\n   * Toggle the visibility of modal component.\n   * @return boolean\n   * @default false\n   */\n  readonly visibleInput = input(false, { transform: booleanAttribute, alias: 'visible' });\n\n  readonly visible = linkedSignal(this.visibleInput);\n\n  readonly #visibleInputEffect = effect(() => {\n    const visible = this.visible();\n    untracked(() => {\n      this.setBodyStyles(visible);\n      this.setBackdrop(this.backdrop() !== false && visible);\n      this.visibleChange?.emit(visible);\n    });\n  });\n\n  readonly #activeElement = signal<HTMLElement | null>(null);\n\n  readonly #visibleEffect = effect(() => {\n    const visible = this.visible();\n    const afterViewInit = this.#afterViewInit();\n    untracked(() => {\n      if (visible && afterViewInit) {\n        this.#activeElement.set(this.#document.activeElement as HTMLElement);\n        // this.#activeElement()?.blur();\n        setTimeout(() => {\n          const focusable = this.modalContentRef()?.nativeElement.querySelectorAll(\n            '[tabindex]:not([tabindex=\"-1\"]), button:not([disabled]), [href], input:not([disabled]), select:not([disabled]), textarea:not([disabled])'\n          );\n          if (focusable?.length) {\n            this.#focusMonitor.focusVia(focusable[0], 'keyboard');\n          }\n        });\n      } else {\n        const activeElement = this.#activeElement();\n        if (activeElement && this.#document.contains(activeElement)) {\n          this.#focusMonitor.focusVia(activeElement, 'keyboard');\n          setTimeout(() => {\n            // this.#activeElement()?.focus();\n            this.#activeElement.set(null);\n          });\n        }\n      }\n    });\n  });\n\n  /**\n   * Event triggered on modal dismiss.\n   * @return boolean\n   */\n  readonly visibleChange = output<boolean>();\n\n  // @ViewChild(ModalContentComponent, { read: ElementRef }) modalContent!: ElementRef;\n  // @ViewChild('modalContentRef', { read: ElementRef }) modalContentRef!: ElementRef;\n  // readonly modalContentRef = viewChild(ModalContentComponent, { read: ElementRef });\n  readonly modalContentRef = viewChild('modalContentRef', { read: ElementRef });\n\n  #activeBackdrop!: any;\n\n  // private inBoundingClientRect!: boolean;\n\n  readonly hostClasses = computed(() => {\n    return {\n      modal: true,\n      fade: this.transition(),\n      show: this.show\n    } as Record<string, boolean>;\n  });\n\n  get ariaHidden(): boolean | null {\n    return this.visible() ? null : true;\n  }\n\n  readonly animateTrigger = computed(() => {\n    return this.visible() ? 'visible' : 'hidden';\n  });\n\n  get show(): boolean {\n    return this.visible() && this.#show();\n  }\n\n  set show(value: boolean) {\n    this.#show.set(value);\n  }\n\n  readonly #show = signal(true);\n\n  animateStart(event: AnimationEvent) {\n    if (event.toState === 'visible') {\n      this.#backdropService.hideScrollbar();\n      this.#renderer.setStyle(this.#hostElement.nativeElement, 'display', 'block');\n    } else {\n      if (!this.transition()) {\n        this.#renderer.setStyle(this.#hostElement.nativeElement, 'display', 'none');\n      }\n    }\n  }\n\n  animateDone(event: AnimationEvent) {\n    setTimeout(() => {\n      if (event.toState === 'hidden') {\n        this.#renderer.setStyle(this.#hostElement.nativeElement, 'display', 'none');\n        this.#backdropService.resetScrollbar();\n      }\n    });\n    this.show = this.visible();\n  }\n\n  onKeyUpHandler(event: KeyboardEvent): void {\n    if (event.key === 'Escape' && this.keyboard() && this.visible()) {\n      if (this.backdrop() === 'static') {\n        this.setStaticBackdrop();\n      } else {\n        this.#modalService.toggle({ show: false, modal: this });\n      }\n    }\n  }\n\n  private mouseDownTarget: EventTarget | null = null;\n\n  public onMouseDownHandler($event: MouseEvent): void {\n    this.mouseDownTarget = $event.target;\n  }\n\n  public onClickHandler($event: MouseEvent): void {\n    if (this.mouseDownTarget !== $event.target) {\n      this.mouseDownTarget = null;\n      return;\n    }\n\n    const targetElement = $event.target;\n    if (targetElement === this.#hostElement.nativeElement) {\n      if (this.backdrop() === 'static') {\n        this.setStaticBackdrop();\n        return;\n      }\n\n      this.#modalService.toggle({ show: false, modal: this });\n    }\n  }\n\n  ngOnInit(): void {\n    this.stateToggleSubscribe();\n  }\n\n  readonly #afterViewInit = signal(false);\n\n  ngAfterViewInit(): void {\n    this.#afterViewInit.set(true);\n  }\n\n  ngOnDestroy(): void {\n    this.#modalService.toggle({ show: false, modal: this });\n    this.#afterViewInit.set(false);\n  }\n\n  private stateToggleSubscribe(): void {\n    this.#modalService.modalState$.pipe(takeUntilDestroyed(this.#destroyRef)).subscribe((action) => {\n      if (this === action.modal || this.id === action.id) {\n        if ('show' in action) {\n          this.visible.update((visible) => (action?.show === 'toggle' ? !visible : action.show));\n        }\n      } else {\n        if (this.visible()) {\n          this.visible.set(false);\n        }\n      }\n    });\n  }\n\n  private setBackdrop(setBackdrop: boolean): void {\n    this.#activeBackdrop = setBackdrop\n      ? this.#backdropService.setBackdrop('modal')\n      : this.#backdropService.clearBackdrop(this.#activeBackdrop);\n  }\n\n  private setBodyStyles(open: boolean): void {\n    if (open) {\n      if (this.backdrop() === true) {\n        this.#renderer.addClass(this.#document.body, 'modal-open');\n      }\n    } else {\n      this.#renderer.removeClass(this.#document.body, 'modal-open');\n    }\n  }\n\n  private setStaticBackdrop(): void {\n    if (this.transition()) {\n      this.#renderer.addClass(this.#hostElement.nativeElement, 'modal-static');\n      this.#renderer.setStyle(this.#hostElement.nativeElement, 'overflow-y', 'hidden');\n      setTimeout(() => {\n        this.#renderer.removeClass(this.#hostElement.nativeElement, 'modal-static');\n        this.#renderer.removeStyle(this.#hostElement.nativeElement, 'overflow-y');\n      }, 300);\n    }\n  }\n}\n","<c-modal-dialog\n  [alignment]=\"alignment()\"\n  [fullscreen]=\"fullscreen()\"\n  [scrollable]=\"scrollable()\"\n  [size]=\"size()\">\n  <c-modal-content>\n    @let isVisible = visible();\n    <div [cdkTrapFocus]=\"isVisible\" [cdkTrapFocusAutoCapture]=\"isVisible\" style=\"display: contents;\" #modalContentRef>\n      <ng-content />\n    </div>\n  </c-modal-content>\n</c-modal-dialog>\n","import { NgModule } from '@angular/core';\n\nimport { ModalBodyComponent } from './modal-body/modal-body.component';\nimport { ModalContentComponent } from './modal-content/modal-content.component';\nimport { ModalDialogComponent } from './modal-dialog/modal-dialog.component';\nimport { ModalToggleDirective } from './modal-dismiss/modal-toggle.directive';\nimport { ModalFooterComponent } from './modal-footer/modal-footer.component';\nimport { ModalHeaderComponent } from './modal-header/modal-header.component';\nimport { ModalTitleDirective } from './modal-title/modal-title.directive';\nimport { ModalComponent } from './modal/modal.component';\nimport { ModalService } from './modal.service';\n\n@NgModule({\n  exports: [\n    ModalBodyComponent,\n    ModalComponent,\n    ModalContentComponent,\n    ModalDialogComponent,\n    ModalFooterComponent,\n    ModalHeaderComponent,\n    ModalTitleDirective,\n    ModalToggleDirective\n  ],\n  imports: [\n    ModalBodyComponent,\n    ModalComponent,\n    ModalContentComponent,\n    ModalDialogComponent,\n    ModalFooterComponent,\n    ModalHeaderComponent,\n    ModalTitleDirective,\n    ModalToggleDirective\n  ],\n  providers: [ModalService]\n})\nexport class ModalModule {}\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { OffcanvasComponent } from './offcanvas/offcanvas.component';\n\nexport interface IOffcanvasAction {\n  show?: boolean | 'toggle';\n  offcanvas?: OffcanvasComponent;\n  id?: string;\n}\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class OffcanvasService {\n  private offcanvasState = new Subject<any>();\n  offcanvasState$ = this.offcanvasState.asObservable();\n\n  toggle(action: IOffcanvasAction): void {\n    this.offcanvasState.next(action);\n  }\n}\n","import { animate, AnimationEvent, state, style, transition, trigger } from '@angular/animations';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { BreakpointObserver, BreakpointState } from '@angular/cdk/layout';\nimport { isPlatformBrowser } from '@angular/common';\nimport {\n  booleanAttribute,\n  Component,\n  computed,\n  DestroyRef,\n  DOCUMENT,\n  effect,\n  ElementRef,\n  inject,\n  input,\n  linkedSignal,\n  OnDestroy,\n  OnInit,\n  output,\n  PLATFORM_ID,\n  Renderer2\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { Subscription } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\nimport { BackdropService } from '../../backdrop/backdrop.service';\nimport { ThemeDirective } from '../../shared';\nimport { OffcanvasService } from '../offcanvas.service';\n\nlet nextId = 0;\n\n@Component({\n  selector: 'c-offcanvas',\n  animations: [\n    trigger('showHide', [\n      state(\n        'visible',\n        style({\n          // visibility: 'visible'\n        })\n      ),\n      state(\n        'hidden',\n        style({\n          // visibility: 'hidden'\n        })\n      ),\n      transition('visible <=> *', [animate('300ms')])\n    ])\n  ],\n  templateUrl: './offcanvas.component.html',\n  styleUrls: ['./offcanvas.component.scss'],\n  exportAs: 'cOffcanvas',\n  imports: [A11yModule],\n  hostDirectives: [{ directive: ThemeDirective, inputs: ['dark'] }],\n  host: {\n    ngSkipHydration: 'true',\n    '[@showHide]': 'this.visible() ? \"visible\" : \"hidden\"',\n    '[attr.id]': 'id()',\n    '[attr.inert]': 'ariaHidden() || null',\n    '[attr.role]': 'role()',\n    '[attr.aria-modal]': 'ariaModal()',\n    '[attr.tabindex]': 'tabIndex',\n    '[class]': 'hostClasses()',\n    '(@showHide.start)': 'animateStart($event)',\n    '(@showHide.done)': 'animateDone($event)',\n    '(document:keydown)': 'onKeyDownHandler($event)'\n  }\n})\nexport class OffcanvasComponent implements OnInit, OnDestroy {\n  readonly #document = inject<Document>(DOCUMENT);\n  readonly #platformId = inject(PLATFORM_ID);\n  readonly #renderer = inject(Renderer2);\n  readonly #hostElement = inject(ElementRef);\n  readonly #offcanvasService = inject(OffcanvasService);\n  readonly #backdropService = inject(BackdropService);\n  readonly #breakpointObserver = inject(BreakpointObserver);\n  readonly #destroyRef = inject(DestroyRef);\n\n  /**\n   * Apply a backdrop on body while offcanvas is open.\n   * @return boolean | 'static'\n   * @default true\n   */\n  readonly backdrop = input<boolean | 'static'>(true);\n\n  /**\n   * Closes the offcanvas when escape key is pressed [docs]\n   * @return boolean\n   * @default true\n   */\n  readonly keyboard = input(true, { transform: booleanAttribute });\n\n  /**\n   * Components placement, there’s no default placement.\n   * @return {'start' | 'end' | 'top' | 'bottom'}\n   * @default 'start'\n   */\n  readonly placement = input<string | 'start' | 'end' | 'top' | 'bottom'>('start');\n\n  /**\n   * Responsive offcanvas property hides content outside the viewport from a specified breakpoint and down.\n   * @return boolean | 'sm' | 'md' | 'lg' | 'xl' | 'xxl';\n   * @default true\n   * @since 4.3.10\n   */\n  readonly responsive = input<(boolean | 'sm' | 'md' | 'lg' | 'xl' | 'xxl') | undefined>(true);\n  readonly id = input(`offcanvas-${this.placement()}-${nextId++}`);\n\n  /**\n   * Default role for offcanvas. [docs]\n   * @return string\n   * @default 'dialog'\n   */\n  readonly role = input<string>('dialog');\n\n  /**\n   * Set aria-modal html attr for offcanvas. [docs]\n   * @return boolean\n   * @default true\n   */\n  readonly ariaModal = input(true, { transform: booleanAttribute });\n\n  #activeBackdrop!: HTMLDivElement;\n  #backdropClickSubscription!: Subscription;\n  #layoutChangeSubscription!: Subscription;\n\n  /**\n   * Allow body scrolling while offcanvas is visible.\n   * @return boolean\n   * @default false\n   */\n  readonly scroll = input(false, { transform: booleanAttribute });\n\n  /**\n   * Toggle the visibility of offcanvas component.\n   * @return boolean\n   * @default false\n   */\n  readonly visibleInput = input(false, { transform: booleanAttribute, alias: 'visible' });\n\n  readonly visible = linkedSignal({\n    source: this.visibleInput,\n    computation: (value) => value\n  });\n\n  readonly visibleEffect = effect(() => {\n    const visible = this.visible();\n    if (visible) {\n      this.setBackdrop(this.backdrop());\n      this.setFocus();\n    } else {\n      this.setBackdrop(false);\n    }\n    this.layoutChangeSubscribe(visible);\n    this.visibleChange?.emit(visible);\n  });\n\n  /**\n   * Event triggered on visible change.\n   * @return <boolean>\n   */\n  readonly visibleChange = output<boolean>();\n\n  readonly hostClasses = computed(() => {\n    const responsive = this.responsive();\n    const placement = this.placement();\n    const visible = this.visible();\n    return {\n      offcanvas: typeof responsive === 'boolean',\n      [`offcanvas-${responsive}`]: typeof responsive !== 'boolean',\n      [`offcanvas-${placement}`]: !!placement,\n      show: visible\n    } as Record<string, boolean>;\n  });\n\n  readonly ariaHidden = computed(() => {\n    return this.visible() ? null : true;\n  });\n\n  get tabIndex(): string | null {\n    return '-1';\n  }\n\n  get show(): boolean {\n    return this.visible();\n  }\n\n  set show(value: boolean) {\n    this.visible.set(value);\n  }\n\n  get responsiveBreakpoint(): string | false {\n    const responsive = this.responsive();\n    if (typeof responsive !== 'string') {\n      return false;\n    }\n    const element: Element = this.#document.documentElement;\n    const breakpointValue =\n      this.#document.defaultView\n        ?.getComputedStyle(element)\n        ?.getPropertyValue(`--cui-breakpoint-${responsive.trim()}`) ?? false;\n    return breakpointValue ? `${parseFloat(breakpointValue.trim()) - 0.02}px` : false;\n  }\n\n  animateStart(event: AnimationEvent) {\n    if (event.toState === 'visible') {\n      if (!this.scroll()) {\n        this.#backdropService.hideScrollbar();\n      }\n      this.#renderer.addClass(this.#hostElement.nativeElement, 'showing');\n    } else {\n      this.#renderer.addClass(this.#hostElement.nativeElement, 'hiding');\n    }\n  }\n\n  animateDone(event: AnimationEvent) {\n    setTimeout(() => {\n      if (event.toState === 'visible') {\n        this.#renderer.removeClass(this.#hostElement.nativeElement, 'showing');\n      }\n      if (event.toState === 'hidden') {\n        this.#renderer.removeClass(this.#hostElement.nativeElement, 'hiding');\n        this.#renderer.removeStyle(this.#document.body, 'overflow');\n        this.#renderer.removeStyle(this.#document.body, 'paddingRight');\n      }\n    });\n    this.show = this.visible();\n  }\n\n  onKeyDownHandler(event: KeyboardEvent): void {\n    if (event.key === 'Escape' && this.keyboard() && this.visible() && this.backdrop() !== 'static') {\n      this.#offcanvasService.toggle({ show: false, id: this.id() });\n    }\n  }\n\n  ngOnInit(): void {\n    this.stateToggleSubscribe();\n    setTimeout(() => {\n      // hotfix to avoid offcanvas flicker on the first render\n      this.#renderer.setStyle(this.#hostElement.nativeElement, 'display', 'flex');\n    });\n  }\n\n  ngOnDestroy(): void {\n    this.#offcanvasService.toggle({ show: false, id: this.id() });\n  }\n\n  setFocus(): void {\n    if (isPlatformBrowser(this.#platformId)) {\n      setTimeout(() => this.#hostElement.nativeElement.focus());\n    }\n  }\n\n  private stateToggleSubscribe(): void {\n    this.#offcanvasService.offcanvasState$.pipe(takeUntilDestroyed(this.#destroyRef)).subscribe((action) => {\n      if (this === action.offcanvas || this.id() === action.id) {\n        if ('show' in action) {\n          this.visible.update((value) => (action?.show === 'toggle' ? !value : action.show));\n        }\n      }\n    });\n  }\n\n  private backdropClickSubscribe(subscribe: boolean = true): void {\n    if (subscribe) {\n      this.#backdropClickSubscription = this.#backdropService.backdropClick$\n        .pipe(takeUntilDestroyed(this.#destroyRef))\n        .subscribe((clicked) => {\n          this.#offcanvasService.toggle({ show: !clicked, id: this.id() });\n        });\n    } else {\n      this.#backdropClickSubscription?.unsubscribe();\n    }\n  }\n\n  protected setBackdrop(setBackdrop: boolean | 'static'): void {\n    this.#activeBackdrop = !!setBackdrop\n      ? this.#backdropService.setBackdrop('offcanvas')\n      : this.#backdropService.clearBackdrop(this.#activeBackdrop);\n    setBackdrop === true ? this.backdropClickSubscribe() : this.backdropClickSubscribe(false);\n  }\n\n  private layoutChangeSubscribe(subscribe: boolean = true): void {\n    if (subscribe) {\n      if (!this.responsiveBreakpoint) {\n        return;\n      }\n\n      const responsiveBreakpoint = `(max-width: ${this.responsiveBreakpoint})`;\n\n      const layoutChanges = this.#breakpointObserver.observe([responsiveBreakpoint]);\n\n      this.#layoutChangeSubscription = layoutChanges\n        .pipe(\n          filter((breakpointState) => !breakpointState.matches),\n          takeUntilDestroyed(this.#destroyRef)\n        )\n        .subscribe((breakpointState: BreakpointState) => {\n          this.visible.set(breakpointState.matches);\n        });\n    } else {\n      this.#layoutChangeSubscription?.unsubscribe();\n    }\n  }\n}\n","<div cdkTrapFocus cdkTrapFocusAutoCapture>\n  <ng-content />\n</div>\n\n","import { Component } from '@angular/core';\n\n@Component({\n  selector: 'c-offcanvas-body',\n  template: '<ng-content />',\n  styleUrls: ['./offcanvas-body.component.scss'],\n  host: { class: 'offcanvas-body' }\n})\nexport class OffcanvasBodyComponent {}\n","import { Component } from '@angular/core';\n\n@Component({\n  selector: 'c-offcanvas-header',\n  template: '<ng-content />',\n  host: { class: 'offcanvas-header' }\n})\nexport class OffcanvasHeaderComponent {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n  selector: '[cOffcanvasTitle]',\n  host: { class: 'offcanvas-title' }\n})\nexport class OffcanvasTitleDirective {}\n","import { Directive, inject, input } from '@angular/core';\n\nimport { OffcanvasService } from '../offcanvas.service';\n\n@Directive({\n  selector: '[cOffcanvasToggle]',\n  host: {\n    '(click)': 'toggleOpen($event)'\n  }\n})\nexport class OffcanvasToggleDirective {\n  readonly #offcanvasService = inject(OffcanvasService);\n\n  /**\n   * Html id attr of offcanvas to toggle.\n   * @return string\n   */\n  readonly id = input<string>(undefined, { alias: 'cOffcanvasToggle' });\n\n  protected toggleOpen($event: MouseEvent): void {\n    $event.preventDefault();\n    this.#offcanvasService.toggle({ show: 'toggle', id: this.id() });\n  }\n}\n","import { NgModule } from '@angular/core';\n\nimport { OffcanvasComponent } from './offcanvas/offcanvas.component';\nimport { OffcanvasBodyComponent } from './offcanvas-body/offcanvas-body.component';\nimport { OffcanvasHeaderComponent } from './offcanvas-header/offcanvas-header.component';\nimport { OffcanvasTitleDirective } from './offcanvas-title/offcanvas-title.directive';\nimport { OffcanvasToggleDirective } from './offcanvas-toggle/offcanvas-toggle.directive';\nimport { OffcanvasService } from './offcanvas.service';\nimport { BackdropService } from '../backdrop/backdrop.service';\n\n@NgModule({\n  exports: [\n    OffcanvasBodyComponent,\n    OffcanvasComponent,\n    OffcanvasHeaderComponent,\n    OffcanvasTitleDirective,\n    OffcanvasToggleDirective\n  ],\n  imports: [\n    OffcanvasBodyComponent,\n    OffcanvasComponent,\n    OffcanvasHeaderComponent,\n    OffcanvasTitleDirective,\n    OffcanvasToggleDirective\n  ],\n  providers: [\n    OffcanvasService,\n    BackdropService\n  ]\n})\nexport class OffcanvasModule {}\n","import { computed, Injectable, signal } from '@angular/core';\n\n@Injectable()\nexport class OtpService {\n  readonly disabled = signal(false);\n  readonly masked = signal(false);\n  readonly placeholder = signal('');\n  readonly readOnly = signal(false);\n  readonly type = signal<'number' | 'text'>('number');\n  readonly valid = signal<boolean | undefined>(undefined);\n\n  readonly hostClasses = computed(() => {\n    const valid = this.valid();\n    return {\n      'form-otp-control': true,\n      'is-valid': valid === true,\n      'is-invalid': valid === false,\n      disabled: this.disabled()\n    } as Record<string, boolean>;\n  });\n  readonly inputMode = computed(() => (this.type() === 'number' ? 'numeric' : 'text'));\n  readonly inputType = computed(() => (this.masked() ? 'password' : 'text'));\n  readonly pattern = computed(() => (this.type() === 'text' ? '.*' : '[0-9]*'));\n}\n","import {\n  booleanAttribute,\n  computed,\n  Directive,\n  DOCUMENT,\n  effect,\n  ElementRef,\n  inject,\n  input,\n  linkedSignal,\n  signal\n} from '@angular/core';\nimport { FocusableOption, FocusOrigin } from '@angular/cdk/a11y';\nimport { OtpService } from './otp.service';\n\n@Directive({\n  selector: 'input[cOtp]',\n  host: {\n    '(selectionchange)': 'handleSelectionChange($event)',\n    class: 'form-otp-control',\n    '[class]': 'hostClasses()',\n    '[attr.inputMode]': 'inputMode()',\n    '[attr.maxLength]': '1',\n    '[autocomplete]': '\"one-time-code\"',\n    '[attr.pattern]': 'pattern()',\n    '[placeholder]': 'placeholder()',\n    '[readOnly]': 'readOnly()',\n    '[tabIndex]': 'tabIndex()',\n    '[attr.type]': 'inputType()'\n    // '[value]': 'value()'\n  }\n})\nexport class OtpDirective implements FocusableOption {\n  readonly hostElement = inject(ElementRef<HTMLInputElement>);\n  readonly #document = inject(DOCUMENT);\n  readonly #otpService = inject(OtpService);\n  readonly focusable = signal(false);\n\n  readonly placeholderInput = input<string>('', { alias: 'placeholder' });\n\n  readonly placeholder = computed(() => {\n    const placeholder = this.placeholderInput() || this.#otpService.placeholder();\n    const index = this.index() ?? 0;\n    return placeholder.length > 1 ? placeholder?.charAt(index) : placeholder;\n  });\n\n  readonly valueInput = input<string | number>('', { alias: 'value' });\n  readonly value = linkedSignal(this.valueInput);\n\n  readonly #valueEffect = effect(() => {\n    const value = this.value() ?? '';\n    this.hostElement.nativeElement.value = String(value);\n  });\n\n  readonly disabledInput = input(false, { transform: booleanAttribute, alias: 'disabled' });\n  readonly #disabled = linkedSignal(this.disabledInput);\n\n  readonly #disabledEffect = effect(() => {\n    this.hostElement.nativeElement.disabled = this.#disabled();\n  });\n\n  set disabled(disabled: boolean) {\n    this.#disabled.set(disabled);\n  }\n  get disabled() {\n    return this.hostElement.nativeElement.disabled;\n  }\n\n  readonly tabIndex = signal(0);\n\n  readonly index = signal<number | undefined>(undefined);\n\n  focus(origin?: FocusOrigin): void {\n    if (!this.disabled) {\n      this.hostElement.nativeElement.focus();\n      this.focusable.set(true);\n    }\n    // console.log('focus called with origin:', origin, this.index());\n  }\n\n  readonly #otpServiceEffect = effect(() => {\n    this.#disabled.set(this.#otpService.disabled());\n  });\n\n  protected readonly hostClasses = this.#otpService.hostClasses;\n  protected readonly inputMode = this.#otpService.inputMode;\n  protected readonly inputType = this.#otpService.inputType;\n  protected readonly pattern = this.#otpService.pattern;\n  protected readonly readOnly = this.#otpService.readOnly;\n\n  readonly #focusableEffect = effect(() => {\n    this.tabIndex.set(this.focusable() && !this.disabled ? 0 : -1);\n  });\n\n  protected handleSelectionChange($event: Event): void {\n    const inputElement = this.hostElement.nativeElement;\n\n    if (inputElement.value !== '' && this.#document.activeElement === inputElement) {\n      if (inputElement.selectionStart === inputElement.selectionEnd) {\n        setTimeout(() => {\n          inputElement.select();\n        });\n      }\n    }\n  }\n}\n","export const isValidInput = (inputValue: string, type: 'number' | 'text'): boolean => {\n  if (inputValue.length !== 1) return false\n\n  switch (type) {\n    case 'number': {\n      return /^\\d$/.test(inputValue)\n    }\n    default: {\n      return /^.$/.test(inputValue)\n    }\n  }\n}\n\nexport const extractValidChars = (text: string, type: 'number' | 'text'): string => {\n  switch (type) {\n    case 'number': {\n      return text.replaceAll(/\\D/g, '')\n    }\n    default: {\n      return text\n    }\n  }\n}\n","import {\n  afterEveryRender,\n  booleanAttribute,\n  Component,\n  computed,\n  contentChildren,\n  DestroyRef,\n  effect,\n  ElementRef,\n  forwardRef,\n  inject,\n  input,\n  linkedSignal,\n  output,\n  signal,\n  untracked\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { OtpDirective } from './otp.directive';\nimport { extractValidChars, isValidInput } from './otp.utils';\nimport { FocusKeyManager } from '@angular/cdk/a11y';\nimport { RtlService } from '../services';\nimport { OtpService } from './otp.service';\nimport { fromEvent, Subscription } from 'rxjs';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { BooleanInput } from '@angular/cdk/coercion';\nimport { filter, tap } from 'rxjs/operators';\n\n@Component({\n  selector: 'c-one-time-password',\n  template: '<ng-content />',\n  imports: [],\n  styleUrl: './one-time-password.component.scss',\n  host: {\n    '[class]': 'hostClasses()',\n    role: 'group'\n  },\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => OneTimePasswordComponent),\n      multi: true\n    },\n    OtpService\n  ]\n})\nexport class OneTimePasswordComponent implements ControlValueAccessor {\n  static ngAcceptInputType_autoSubmit: BooleanInput;\n  static ngAcceptInputType_disabledInput: BooleanInput;\n  static ngAcceptInputType_masked: BooleanInput;\n  static ngAcceptInputType_readOnly: BooleanInput;\n\n  writeValue(value: string | number): void {\n    const valueStr = value?.toString() || '';\n    this.#inputValues.set(valueStr.split('').slice(0, this.inputCount() || valueStr.length));\n  }\n  registerOnChange(fn: any): void {\n    this.onChange = fn;\n  }\n  registerOnTouched(fn: any): void {\n    this.onTouched = fn;\n  }\n  setDisabledState?(isDisabled: boolean): void {\n    this.disabled.set(isDisabled);\n  }\n  onChange = (value: any) => {\n    /* empty */\n  };\n  onTouched = () => {\n    /* empty */\n  };\n\n  readonly #destroyRef = inject(DestroyRef);\n  readonly #otpService = inject(OtpService);\n  readonly #hostElement = inject(ElementRef);\n  readonly #rtlService = inject(RtlService);\n  readonly #isRtl = signal(false);\n\n  constructor() {\n    afterEveryRender({\n      read: () => {\n        this.#isRtl.set(this.#rtlService.isRTL(this.#hostElement.nativeElement));\n      }\n    });\n  }\n\n  /**\n   * Function to generate aria-label for each input field. Receives current index (0-based) and total number of inputs.\n   * @default: (index, total) => `Digit ${index + 1} of ${total}`\n   */\n  readonly ariaLabel = input<(index: number, total: number) => string>(\n    (index, total) => `Digit ${index + 1} of ${total}`\n  );\n\n  /**\n   * Automatically submit the form when all one time password fields are filled.\n   * @default: false\n   */\n  readonly autoSubmit = input(false, { transform: booleanAttribute });\n\n  // readonly children = input();\n  /**\n   * Initial value for Angular one time password input.\n   * @default: undefined\n   */\n  readonly defaultValue = input<string | number>();\n\n  /**\n   * Disable all one time password (OTP) input fields.\n   * @default: false\n   */\n  readonly disabledInput = input(false, { transform: booleanAttribute, alias: 'disabled' });\n\n  readonly disabled = linkedSignal(this.disabledInput);\n\n  /**\n   * Enforce sequential input (users must fill fields in order).\n   * @default: true\n   */\n  readonly linear = input(true, { transform: booleanAttribute });\n\n  /**\n   * Show input as password (masked characters).\n   * @default: false\n   */\n\n  readonly masked = input(false, { transform: booleanAttribute });\n\n  /**\n   * Placeholder text for input fields. Single character applies to all fields, longer strings apply character-by-character.\n   * @default: undefined\n   */\n  readonly placeholder = input<string>('');\n\n  /**\n   * Make Angular OTP input component read-only.\n   * @default: false\n   */\n  readonly readOnly = input(false, { transform: booleanAttribute });\n\n  /**\n   * Sets the visual size of the React.js one time password (OTP) input. Use 'sm' for small or 'lg' for large input fields.\n   * @default: undefined\n   */\n  readonly sizing = input<'' | 'sm' | 'lg' | string>();\n\n  /**\n   * Input validation type: 'number' for digits only, or 'text' for free text.\n   * @default: 'number'\n   */\n  readonly type = input<'number' | 'text'>('number');\n\n  /**\n   * Set form input validation state to valid.\n   * @default undefined\n   */\n  readonly valid = input<boolean>();\n\n  /**\n   * Current value for OTP input.\n   * @default: undefined\n   */\n  readonly valueInput = input<string | number>(undefined, { alias: 'value' });\n\n  protected readonly value = linkedSignal(() => this.valueInput()?.toString() ?? '');\n\n  readonly #valueEffect = effect(() => {\n    const value = this.#inputValues().join(''); // non-breaking space to empty\n    untracked(() => {\n      setTimeout(() => {\n        if (!this.#destroyRef.destroyed) {\n          this.valueChange?.emit(value);\n        }\n        this.onChange(value);\n\n        if (value.length === this.inputCount()) {\n          // this.value.set(value);\n          if (!this.#destroyRef.destroyed) {\n            this.complete?.emit(value);\n          }\n          if (this.autoSubmit()) {\n            const form = this.#hostElement.nativeElement.closest('form');\n            if (typeof form?.requestSubmit === 'function') {\n              form.requestSubmit();\n            }\n          }\n        }\n      });\n    });\n  });\n\n  /**\n   * Event triggered when the Angular one time password (OTP) value changes.\n   */\n  readonly valueChange = output<string>();\n\n  /**\n   * Callback triggered when all Angular one time password (OTP) fields are filled.\n   */\n  readonly complete = output<string>();\n\n  readonly #otpServiceEffect = effect(() => {\n    this.#otpService.disabled.set(this.disabled());\n    this.#otpService.masked.set(this.masked());\n    this.#otpService.placeholder.set(this.placeholder());\n    this.#otpService.readOnly.set(this.readOnly());\n    this.#otpService.type.set(this.type());\n    this.#otpService.valid.set(this.valid());\n  });\n\n  protected readonly hostClasses = computed(() => {\n    const sizing = this.sizing();\n    const valid = this.valid();\n    return {\n      'form-otp': true,\n      [`form-otp-${sizing}`]: !!sizing,\n      'is-valid': valid === true,\n      'is-invalid': valid === false\n    };\n  });\n\n  // protected readonly inputElementRefs = contentChildren(OtpDirective, { read: ElementRef<HTMLInputElement>, descendants: true });\n  protected readonly inputRefs = contentChildren(OtpDirective, { descendants: true });\n  protected readonly inputCount = computed(() => this.inputRefs().length);\n\n  readonly #events$: Subscription[] = [];\n\n  readonly #inputRefEffect = effect(() => {\n    this.#events$.forEach((subscription) => {\n      subscription?.unsubscribe();\n    });\n    const inputRefs = this.inputRefs();\n    inputRefs.forEach((inputRef, index) => {\n      inputRef.index.set(index);\n      this.#events$.push(\n        fromEvent(inputRef.hostElement.nativeElement, 'focus')\n          .pipe(takeUntilDestroyed(this.#destroyRef))\n          .subscribe(($event) => {\n            this.handleInputFocus($event as FocusEvent, index);\n          })\n      );\n      this.#events$.push(\n        fromEvent(inputRef.hostElement.nativeElement, 'input')\n          .pipe(takeUntilDestroyed(this.#destroyRef))\n          .subscribe(($event) => {\n            this.handleInputChange($event as InputEvent, index);\n          })\n      );\n      this.#events$.push(\n        fromEvent(inputRef.hostElement.nativeElement, 'paste')\n          .pipe(\n            takeUntilDestroyed(this.#destroyRef),\n            tap(($event) => ($event as ClipboardEvent).preventDefault())\n          )\n          .subscribe(($event) => {\n            this.handlePaste($event as ClipboardEvent, index);\n          })\n      );\n      this.#events$.push(\n        fromEvent(inputRef.hostElement.nativeElement, 'keydown')\n          .pipe(\n            takeUntilDestroyed(this.#destroyRef),\n            filter((keyEvent) =>\n              ['Backspace', 'ArrowRight', 'ArrowLeft', 'Tab'].includes((keyEvent as KeyboardEvent).key)\n            )\n          )\n          .subscribe(($event) => {\n            this.handleKeyDown($event as KeyboardEvent, index);\n          })\n      );\n    });\n  });\n\n  #focusKeyManager!: FocusKeyManager<OtpDirective>;\n\n  readonly #inputRefsEffect = effect(() => {\n    if (untracked(this.disabled)) {\n      return;\n    }\n    const isRtl = this.#isRtl();\n    const inputRefs = this.inputRefs();\n    this.#focusKeyManager?.destroy();\n    this.#focusKeyManager = new FocusKeyManager(inputRefs)\n      .withHorizontalOrientation(isRtl ? 'rtl' : 'ltr')\n      .withVerticalOrientation(false)\n      .skipPredicate((inputElement) => inputElement.disabled);\n\n    this.#focusKeyManager?.change.pipe(takeUntilDestroyed(this.#destroyRef)).subscribe((changeIdx) => {\n      inputRefs.forEach((inputRef, index) => {\n        inputRef.focusable.set(index === changeIdx);\n      });\n    });\n\n    this.#focusKeyManager?.tabOut.pipe(takeUntilDestroyed(this.#destroyRef)).subscribe(() => {\n      if (!this.linear()) return;\n      const firstEmptyInput = this.inputRefs().find((input) => !input?.hostElement.nativeElement.value);\n      if (firstEmptyInput) {\n        this.#focusKeyManager.updateActiveItem(firstEmptyInput);\n        this.#focusKeyManager?.change.next(firstEmptyInput.index() ?? 0);\n      }\n    });\n\n    this.#focusKeyManager?.updateActiveItem(0);\n    this.#focusKeyManager?.change.next(0);\n  });\n\n  readonly #inputValues = linkedSignal(() => {\n    const initialValue = String(this.value() || untracked(this.defaultValue) || '');\n    return Array.from({ length: this.inputCount() }, (_, i) => initialValue[i] || '');\n  });\n\n  readonly #inputsArrayEffect = effect(() => {\n    const inputsArray = this.#inputValues();\n    const inputRefs = this.inputRefs();\n    inputRefs.forEach((inputRef, index) => {\n      inputRef.index.set(index);\n      inputRef.value.set(inputsArray[index]?.trim() || '');\n    });\n  });\n\n  protected handleInputChange($event: Event, index: number) {\n    this.#focusKeyManager.updateActiveItem(index);\n    const inputValue = ($event.target as HTMLInputElement).value;\n    if (inputValue.length === 1 && !isValidInput(inputValue, this.type())) {\n      ($event.target as HTMLInputElement).value = '';\n      this.#inputValues.update((value) => {\n        const chars = [...value];\n        chars[index] = '';\n        return chars;\n      });\n      return;\n    }\n\n    const newValues = [...this.#inputValues()];\n    newValues[index] = inputValue.length === 1 ? inputValue : '';\n\n    untracked(() => {\n      this.#inputValues.set(newValues);\n    });\n    // handle focus to next input if needed\n    if (inputValue.length === 1) {\n      this.#focusKeyManager.setNextItemActive();\n    }\n  }\n\n  protected handleInputFocus($event: FocusEvent, index: number) {\n    this.#focusKeyManager.updateActiveItem(index);\n    const target = $event.target as HTMLInputElement;\n    if (target.value) {\n      setTimeout(() => {\n        target.select();\n      }, 0);\n      return;\n    }\n\n    if (this.linear()) {\n      const firstEmptyInput = this.inputRefs().find((input) => !input?.hostElement.nativeElement.value);\n      if (firstEmptyInput && firstEmptyInput.hostElement.nativeElement !== target) {\n        this.#focusKeyManager.setActiveItem(firstEmptyInput);\n      }\n      return;\n    }\n    this.#focusKeyManager.setActiveItem(index);\n  }\n\n  protected handleKeyDown($event: KeyboardEvent, index: number) {\n    const { key, target } = $event;\n\n    if (key === 'Tab') {\n      this.#focusKeyManager.tabOut.next();\n      return;\n    }\n\n    if (key === 'Backspace' && (target as HTMLInputElement).value === '') {\n      const newValues = [...this.#inputValues()];\n\n      if (index > 0) {\n        newValues[index - 1] = '';\n        this.#inputValues.set(newValues);\n        setTimeout(() => {\n          this.#focusKeyManager.setPreviousItemActive();\n        });\n      }\n\n      return;\n    }\n\n    if (key === 'ArrowRight') {\n      if (!this.#isRtl() && this.linear() && (target as HTMLInputElement).value === '') {\n        return;\n      }\n      !this.#isRtl() ? this.#focusKeyManager.setNextItemActive() : this.#focusKeyManager.setPreviousItemActive();\n      return;\n    }\n\n    if (key === 'ArrowLeft') {\n      if (this.#isRtl() && this.linear() && (target as HTMLInputElement).value === '') {\n        return;\n      }\n      this.#isRtl() ? this.#focusKeyManager.setNextItemActive() : this.#focusKeyManager.setPreviousItemActive();\n      return;\n    }\n  }\n\n  protected handlePaste($event: ClipboardEvent, index: number) {\n    $event.preventDefault();\n    const inputCount = this.inputCount();\n    const pastedData = $event.clipboardData?.getData('text') ?? '';\n    const validChars = extractValidChars(pastedData, this.type());\n\n    if (!validChars) return;\n\n    const newValues = [...this.#inputValues()];\n    const startIndex = index;\n\n    for (let i = 0; i < validChars.length && startIndex + i < inputCount; i++) {\n      newValues[startIndex + i] = validChars[i];\n    }\n\n    // untracked(() => {\n    this.#inputValues.set(newValues);\n    // });\n\n    setTimeout(() => {\n      // Focus the next empty input or the last filled input\n      const nextEmptyIndex = startIndex + validChars.length;\n\n      if (nextEmptyIndex < inputCount) {\n        this.#focusKeyManager.setActiveItem(nextEmptyIndex);\n        // this.#focusKeyManager.setNextItemActive();\n      } else {\n        this.#focusKeyManager.setLastItemActive();\n      }\n    });\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { OneTimePasswordComponent } from './one-time-password.component';\nimport { OtpDirective } from './otp.directive';\n\n@NgModule({\n  imports: [OneTimePasswordComponent, OtpDirective],\n  exports: [OneTimePasswordComponent, OtpDirective]\n})\nexport class OneTimePasswordModule {}\n","export { OtpDirective } from './otp.directive';\nexport { OneTimePasswordComponent } from './one-time-password.component';\nexport { OneTimePasswordModule } from './one-time-password.module';\n// export * from './one-time-password.types';\n","import { booleanAttribute, computed, Directive, input } from '@angular/core';\nimport { BooleanInput } from '@angular/cdk/coercion';\n\n@Directive({\n  selector: '[cPageLink]',\n  host: { class: 'page-link', '[class]': 'hostClasses()' }\n})\nexport class PageLinkDirective {\n  static ngAcceptInputType_disabled: BooleanInput;\n\n  readonly disabled = input(false, { transform: booleanAttribute });\n\n  readonly hostClasses = computed(() => {\n    return {\n      'page-link': true,\n      disabled: this.disabled()\n    } as Record<string, boolean>;\n  });\n}\n","import {\n  booleanAttribute,\n  computed,\n  contentChild,\n  Directive,\n  effect,\n  ElementRef,\n  inject,\n  input,\n  Renderer2\n} from '@angular/core';\nimport { BooleanInput } from '@angular/cdk/coercion';\n\nimport { PageLinkDirective } from '../page-link/page-link.directive';\n\n@Directive({\n  selector: '[cPageItem]',\n  host: {\n    class: 'page-item',\n    '[class]': 'hostClasses()',\n    '[attr.aria-current]': 'ariaCurrent()'\n  }\n})\nexport class PageItemDirective {\n  static ngAcceptInputType_disabled: BooleanInput;\n\n  readonly #renderer = inject(Renderer2);\n\n  /**\n   * Toggle the active state for the component.\n   * @return boolean\n   */\n  readonly active = input<boolean>();\n\n  /**\n   * Toggle the disabled state for the component.\n   * @return boolean\n   */\n  readonly disabled = input(false, { transform: booleanAttribute });\n\n  readonly ariaCurrent = computed(() => {\n    return this.active() ? 'page' : null;\n  });\n\n  readonly hostClasses = computed(() => {\n    return {\n      'page-item': true,\n      disabled: this.disabled(),\n      active: this.active()\n    } as Record<string, boolean>;\n  });\n\n  readonly pageLinkElementRef = contentChild(PageLinkDirective, { read: ElementRef });\n\n  readonly pageLinkElementRefEffect = effect(() => {\n    const pageLinkElementRef = this.pageLinkElementRef();\n    const disabled = this.disabled();\n    if (!pageLinkElementRef) {\n      return;\n    }\n    const pageLinkElement = pageLinkElementRef.nativeElement;\n\n    if (disabled) {\n      this.#renderer.setAttribute(pageLinkElement, 'aria-disabled', 'true');\n      this.#renderer.setAttribute(pageLinkElement, 'tabindex', '-1');\n    } else {\n      this.#renderer.removeAttribute(pageLinkElement, 'aria-disabled');\n      this.#renderer.removeAttribute(pageLinkElement, 'tabindex');\n    }\n  });\n}\n","import { Component } from '@angular/core';\nimport { PageItemDirective } from './page-item.directive';\n\n@Component({\n  selector: 'c-page-item',\n  template: '<ng-content />',\n  styleUrls: ['./page-item.component.scss']\n})\nexport class PageItemComponent extends PageItemDirective {}\n","import { Component, computed, input } from '@angular/core';\n\n@Component({\n  selector: 'c-pagination',\n  templateUrl: './pagination.component.html',\n  host: {\n    '[attr.role]': 'role()'\n  }\n})\nexport class PaginationComponent {\n  /**\n   * Set the alignment of pagination components.\n   * @values 'start', 'center', 'end'\n   */\n  readonly align = input<'start' | 'center' | 'end' | ''>('');\n  /**\n   * Size the component small or large.\n   * @values 'sm', 'lg'\n   */\n  readonly size = input<'' | 'sm' | 'lg' | string>();\n  /**\n   * Default role for pagination. [docs]\n   * @return string\n   * @default 'navigation'\n   */\n  readonly role = input<string>('navigation');\n\n  readonly paginationClass = computed(() => {\n    const size = this.size();\n    const align = this.align();\n    return {\n      pagination: true,\n      [`pagination-${size}`]: !!size,\n      [`justify-content-${align}`]: !!align\n    } as Record<string, boolean>;\n  });\n}\n","<ul [class]=\"paginationClass()\">\n  <ng-content />\n</ul>\n","import { NgModule } from '@angular/core';\nimport { PaginationComponent } from './pagination/pagination.component';\nimport { PageItemComponent } from './page-item/page-item.component';\nimport { PageItemDirective } from './page-item/page-item.directive';\nimport { PageLinkDirective } from './page-link/page-link.directive';\n\n@NgModule({\n  exports: [\n    PageItemComponent,\n    PageItemDirective,\n    PageLinkDirective,\n    PaginationComponent\n  ],\n  imports: [\n    PageItemComponent,\n    PageItemDirective,\n    PageLinkDirective,\n    PaginationComponent\n  ]\n})\nexport class PaginationModule {}\n","import { booleanAttribute, computed, Directive, input, InputSignalWithTransform } from '@angular/core';\n\n@Directive({\n  selector: '[cPlaceholder]',\n  exportAs: 'cPlaceholder',\n  host: {\n    '[class]': 'hostClasses()',\n    '[attr.aria-hidden]': 'ariaHidden()'\n  }\n})\nexport class PlaceholderDirective {\n  /**\n   * placeholder toggler\n   * @type boolean\n   * @default false\n   */\n  readonly visible: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(false, {\n    transform: booleanAttribute,\n    alias: 'cPlaceholder'\n  });\n\n  /**\n   * Size the placeholder xs, small, large.\n   */\n  readonly size = input<'xs' | 'sm' | 'lg'>(undefined, { alias: 'cPlaceholderSize' });\n\n  readonly ariaHidden = computed(() => {\n    return this.visible() ? null : true;\n  });\n\n  readonly hostClasses = computed(() => {\n    const size = this.size();\n    return {\n      placeholder: this.visible(),\n      [`placeholder-${size}`]: !!size\n    } as Record<string, boolean>;\n  });\n}\n","import { computed, contentChild, Directive, input, InputSignal } from '@angular/core';\nimport { PlaceholderDirective } from './placeholder.directive';\n\n@Directive({\n  selector: '[cPlaceholderAnimation]',\n  host: {\n    '[class]': 'hostClasses()'\n  }\n})\nexport class PlaceholderAnimationDirective {\n  /**\n   * Animation type for placeholder\n   * @type 'glow' | 'wave'\n   * @default undefined\n   */\n  readonly animation: InputSignal<'glow' | 'wave' | undefined> = input<'glow' | 'wave' | undefined>(undefined, {\n    alias: 'cPlaceholderAnimation'\n  });\n\n  readonly placeholder = contentChild(PlaceholderDirective);\n\n  readonly hostClasses = computed(() => {\n    const animation = this.animation();\n    return {\n      [`placeholder-${animation}`]: this.placeholder()?.visible() && !!animation\n    } as Record<string, boolean>;\n  });\n}\n","import { NgModule } from '@angular/core';\nimport { PlaceholderDirective } from './placeholder.directive';\nimport { PlaceholderAnimationDirective } from './placeholder-animation.directive';\n\n@NgModule({\n  imports: [\n    PlaceholderDirective,\n    PlaceholderAnimationDirective\n  ],\n  exports: [\n    PlaceholderDirective,\n    PlaceholderAnimationDirective\n  ]\n})\nexport class PlaceholderModule {\n}\n","import {\n  booleanAttribute,\n  Component,\n  computed,\n  effect,\n  inject,\n  input,\n  OnDestroy,\n  Renderer2,\n  TemplateRef,\n  viewChild,\n  ViewContainerRef\n} from '@angular/core';\n\n@Component({\n  selector: 'c-popover',\n  templateUrl: './popover.component.html',\n  host: {\n    class: 'popover fade bs-popover-auto',\n    '[class]': 'hostClasses()',\n    '[attr.role]': 'role()',\n    '[attr.id]': 'id()'\n  }\n})\nexport class PopoverComponent implements OnDestroy {\n  readonly renderer = inject(Renderer2);\n\n  /**\n   * Content of popover\n   * @return {string | TemplateRef}\n   */\n  readonly content = input<string | TemplateRef<any>>('');\n\n  readonly #contentEffect = effect(() => {\n    this.updateView(this.content());\n  });\n\n  /**\n   * Toggle the visibility of popover component.\n   * @return boolean\n   */\n  readonly visible = input(false, { transform: booleanAttribute });\n  readonly id = input<string>();\n  readonly role = input('tooltip');\n\n  readonly viewContainerRef = viewChild('popoverTemplate', { read: ViewContainerRef });\n  private textNode!: Text;\n\n  readonly hostClasses = computed(() => {\n    return {\n      popover: true,\n      fade: true,\n      show: this.visible(),\n      'bs-popover-auto': true\n    } as Record<string, boolean>;\n  });\n\n  ngOnDestroy(): void {\n    this.clear();\n  }\n\n  private clear(): void {\n    this.viewContainerRef()?.clear();\n    if (!!this.textNode) {\n      this.renderer.removeChild(this.textNode.parentNode, this.textNode);\n    }\n  }\n\n  private updateView(content: string | TemplateRef<any>): void {\n    this.clear();\n\n    if (!content) {\n      return;\n    }\n\n    if (content instanceof TemplateRef) {\n      this.viewContainerRef()?.createEmbeddedView(content);\n    } else {\n      const textNodeContent = this.renderer.createText(content);\n      this.textNode = this.renderer.createElement('div');\n      this.renderer.addClass(this.textNode, 'popover-body');\n      this.renderer.appendChild(this.textNode, textNodeContent);\n\n      const element = this.viewContainerRef()?.element.nativeElement;\n      this.renderer.appendChild(element.parentNode, this.textNode);\n    }\n  }\n}\n","<ng-container>\n  <div [class.popover-arrow]=\"!!content()\" data-popper-arrow></div>\n  <ng-container #popoverTemplate />\n</ng-container>\n","import {\n  afterRenderEffect,\n  AfterViewInit,\n  ChangeDetectorRef,\n  ComponentRef,\n  computed,\n  DestroyRef,\n  Directive,\n  DOCUMENT,\n  effect,\n  ElementRef,\n  inject,\n  input,\n  model,\n  OnDestroy,\n  OnInit,\n  Renderer2,\n  TemplateRef,\n  ViewContainerRef\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { debounceTime, filter, finalize } from 'rxjs/operators';\nimport { createPopper, Instance, Options } from '@popperjs/core';\n\nimport { Triggers } from '../coreui.types';\nimport { IListenersConfig, IntersectionService, ListenersService } from '../services';\nimport { ElementRefDirective } from '../shared';\nimport { PopoverComponent } from './popover/popover.component';\n\n@Directive({\n  selector: '[cPopover]',\n  exportAs: 'cPopover',\n  providers: [ListenersService, IntersectionService],\n  host: { '[attr.aria-describedby]': 'ariaDescribedBy' }\n})\nexport class PopoverDirective implements OnDestroy, OnInit, AfterViewInit {\n  readonly #renderer = inject(Renderer2);\n  readonly #hostElement = inject(ElementRef);\n  readonly #viewContainerRef = inject(ViewContainerRef);\n  readonly #listenersService = inject(ListenersService);\n  readonly #changeDetectorRef = inject(ChangeDetectorRef);\n  readonly #intersectionService = inject(IntersectionService);\n  readonly #destroyRef = inject(DestroyRef);\n  readonly #document = inject(DOCUMENT);\n\n  /**\n   * Content of popover\n   * @return {string | TemplateRef}\n   */\n  readonly content = input<string | TemplateRef<any> | undefined>(undefined, { alias: 'cPopover' });\n\n  readonly #contentEffect = effect(() => {\n    if (this.content()) {\n      this.destroyTooltipElement();\n    }\n  });\n\n  /**\n   * Optional popper Options object, takes precedence over cPopoverPlacement prop\n   * @return Partial<Options>\n   */\n  readonly popperOptions = input<Partial<Options>>({}, { alias: 'cPopoverOptions' });\n\n  readonly #popperOptionsEffect = effect(() => {\n    this._popperOptions = {\n      ...this._popperOptions,\n      placement: this.placement(),\n      ...this.popperOptions()\n    };\n  });\n\n  readonly popperOptionsComputed = computed(() => {\n    return { placement: this.placement(), ...this._popperOptions };\n  });\n\n  /**\n   * Describes the placement of your component after Popper.js has applied all the modifiers that may have flipped or altered the originally provided placement property.\n   * @return: 'top' | 'bottom' | 'left' | 'right'\n   * @default: 'top'\n   */\n  readonly placement = input<'top' | 'bottom' | 'left' | 'right'>('top', { alias: 'cPopoverPlacement' });\n\n  /**\n   * ElementRefDirective for positioning the tooltip on reference element\n   * @return: ElementRefDirective\n   * @default: undefined\n   */\n  readonly reference = input<ElementRefDirective | undefined>(undefined, { alias: 'cTooltipRef' });\n\n  readonly referenceRef = computed(() => this.reference()?.elementRef ?? this.#hostElement);\n\n  /**\n   * Sets which event handlers you’d like provided to your toggle prop. You can specify one trigger or an array of them.\n   * @return: Triggers | Triggers[]\n   */\n  readonly trigger = input<Triggers | Triggers[]>('hover', { alias: 'cPopoverTrigger' });\n\n  /**\n   * Toggle the visibility of popover component.\n   * @return boolean\n   */\n  readonly visible = model(false, { alias: 'cPopoverVisible' });\n\n  readonly #visibleEffect = afterRenderEffect({\n    // this fixes RuntimeError: NG0500: During hydration Angular expected <abc> but found <xyz>.\n    // Find more at https://angular.dev/errors/NG0500\n    write: () => {\n      this.visible() ? this.addTooltipElement() : this.removeTooltipElement();\n    }\n  });\n\n  get ariaDescribedBy(): string | null {\n    return this.tooltipId ? this.tooltipId : null;\n  }\n\n  private tooltip!: HTMLDivElement;\n  private tooltipId!: string;\n  private tooltipRef!: ComponentRef<PopoverComponent>;\n  private popperInstance!: Instance;\n\n  private _popperOptions: Partial<Options> = {\n    modifiers: [\n      {\n        name: 'offset',\n        options: {\n          offset: [0, 9]\n        }\n      }\n    ]\n  };\n\n  ngAfterViewInit(): void {\n    this.intersectionServiceSubscribe();\n  }\n\n  ngOnDestroy(): void {\n    this.clearListeners();\n    this.destroyTooltipElement();\n  }\n\n  ngOnInit(): void {\n    this.setListeners();\n  }\n\n  private setListeners(): void {\n    const config: IListenersConfig = {\n      hostElement: this.#hostElement,\n      trigger: this.trigger(),\n      callbackToggle: () => {\n        this.visible.update((visible) => !visible);\n      },\n      callbackOff: () => {\n        this.visible.set(false);\n      },\n      callbackOn: () => {\n        this.visible.set(true);\n      }\n    };\n    this.#listenersService.setListeners(config);\n  }\n\n  private clearListeners(): void {\n    this.#listenersService.clearListeners();\n  }\n\n  private intersectionServiceSubscribe(): void {\n    this.#intersectionService.createIntersectionObserver(this.referenceRef());\n    this.#intersectionService.intersecting$\n      .pipe(\n        filter((next) => next.hostElement === this.referenceRef()),\n        debounceTime(100),\n        finalize(() => {\n          this.#intersectionService.unobserve(this.referenceRef());\n        }),\n        takeUntilDestroyed(this.#destroyRef)\n      )\n      .subscribe((next) => {\n        this.visible.set(next.isIntersecting ? this.visible() : false);\n      });\n  }\n\n  private getUID(prefix: string): string {\n    let uid = prefix ?? 'random-id';\n    do {\n      uid = `${prefix}-${Math.floor(Math.random() * 1000000).toString(10)}`;\n    } while (this.#document.getElementById(uid));\n\n    return uid;\n  }\n\n  private createTooltipElement(): void {\n    if (!this.tooltipRef) {\n      this.tooltipRef = this.#viewContainerRef.createComponent<PopoverComponent>(PopoverComponent);\n      // this.viewContainerRef.detach();\n    }\n  }\n\n  private destroyTooltipElement(): void {\n    this.tooltip?.remove();\n    this.tooltipRef?.destroy();\n    // @ts-ignore\n    this.tooltipRef = undefined;\n    this.popperInstance?.destroy();\n    this.#viewContainerRef?.detach();\n    this.#viewContainerRef?.clear();\n  }\n\n  private addTooltipElement(): void {\n    if (!this.content()) {\n      this.destroyTooltipElement();\n      return;\n    }\n\n    if (!this.tooltipRef) {\n      this.createTooltipElement();\n    }\n\n    this.tooltipRef?.setInput('content', this.content() ?? '');\n\n    this.tooltip = this.tooltipRef?.location.nativeElement;\n    this.#renderer.addClass(this.tooltip, 'd-none');\n    this.#renderer.addClass(this.tooltip, 'fade');\n\n    this.popperInstance?.destroy();\n\n    this.#viewContainerRef.insert(this.tooltipRef.hostView);\n    this.#renderer.appendChild(this.#document.body, this.tooltip);\n\n    this.popperInstance = createPopper(this.referenceRef().nativeElement, this.tooltip, {\n      ...this.popperOptionsComputed()\n    });\n\n    if (!this.visible()) {\n      this.removeTooltipElement();\n      return;\n    }\n    setTimeout(() => {\n      this.tooltipId = this.getUID('popover');\n      this.tooltipRef?.setInput('id', this.tooltipId);\n      this.#renderer.removeClass(this.tooltip, 'd-none');\n      this.tooltipRef?.setInput('visible', this.visible());\n      this.popperInstance?.forceUpdate();\n      this.#changeDetectorRef?.markForCheck();\n    }, 100);\n  }\n\n  private removeTooltipElement(): void {\n    this.tooltipId = '';\n    if (!this.tooltipRef) {\n      return;\n    }\n    this.tooltipRef.setInput('visible', false);\n    this.tooltipRef.setInput('id', undefined);\n    this.#changeDetectorRef.markForCheck();\n    setTimeout(() => {\n      this.#viewContainerRef?.detach();\n    }, 300);\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { PopoverDirective } from './popover.directive';\nimport { PopoverComponent } from './popover/popover.component';\n\n@NgModule({\n  exports: [\n    PopoverDirective,\n    PopoverComponent\n  ],\n  imports: [\n    PopoverDirective,\n    PopoverComponent\n  ]\n})\nexport class PopoverModule {}\n","import { computed, Injectable, signal } from '@angular/core';\n\n@Injectable()\nexport class ProgressService {\n  readonly stacked = signal(false);\n  readonly value = signal<number | undefined>(undefined);\n  readonly precision = signal(0);\n  readonly min = signal(0);\n  readonly max = signal(100);\n\n  readonly percent = computed(() => {\n    return +((((this.value() ?? 0) - this.min()) / (this.max() - this.min())) * 100).toFixed(this.precision());\n  });\n}\n","import {\n  booleanAttribute,\n  Directive,\n  effect,\n  EffectRef,\n  ElementRef,\n  inject,\n  input,\n  numberAttribute,\n  Renderer2\n} from '@angular/core';\nimport { Colors } from '../coreui.types';\nimport { ProgressService } from './progress.service';\n\n@Directive({\n  selector: '[cProgressBar]',\n  exportAs: 'cProgressBar'\n})\nexport class ProgressBarDirective {\n  readonly #renderer = inject(Renderer2);\n  readonly #hostElement = inject(ElementRef);\n  readonly #progressService = inject(ProgressService);\n\n  readonly #valuesEffect: EffectRef = effect(() => {\n    const host: HTMLElement = this.#hostElement.nativeElement;\n    const value = this.#progressService.value();\n    const percent = this.#progressService.percent();\n    const stacked = this.#progressService.stacked();\n    if (value === undefined) {\n      for (const name of ['aria-valuenow', 'aria-valuemax', 'aria-valuemin', 'role']) {\n        this.#renderer.removeAttribute(host, name);\n      }\n    } else {\n      const { min, max } = this.#progressService;\n      this.#renderer.setAttribute(host, 'aria-valuenow', String(value));\n      this.#renderer.setAttribute(host, 'aria-valuemin', String(min()));\n      this.#renderer.setAttribute(host, 'aria-valuemax', String(max()));\n      this.#renderer.setAttribute(host, 'role', this.role());\n    }\n    const tagName = host.tagName;\n    if (percent >= 0 && ((stacked && tagName === 'C-PROGRESS') || (!stacked && tagName !== 'C-PROGRESS'))) {\n      this.#renderer.setStyle(host, 'width', `${percent}%`);\n    } else {\n      this.#renderer.removeStyle(host, 'width');\n    }\n  });\n\n  /**\n   * Use to animate the stripes right to left via CSS3 animations.\n   * @return boolean\n   */\n  readonly animated = input<boolean, unknown>(undefined, { transform: booleanAttribute });\n\n  /**\n   * Sets the color context of the component to one of CoreUI’s themed colors.\n   * @values 'primary', 'secondary', 'success', 'danger', 'warning', 'info', 'dark', 'light'\n   */\n  readonly color = input<Colors>();\n\n  readonly precision = input(0, { transform: numberAttribute });\n\n  /**\n   * The percent value the ProgressBar.\n   * @return number\n   * @default 0\n   */\n  readonly value = input(0, { transform: numberAttribute });\n\n  /**\n   * Set the progress bar variant to optional striped.\n   * @values 'striped'\n   * @default undefined\n   */\n  readonly variant = input<'striped'>();\n\n  /**\n   * The max value of the ProgressBar.\n   * @return number\n   * @default 100\n   */\n  readonly max = input(100, { transform: numberAttribute });\n\n  /**\n   * Set default html role attribute.\n   * @return string\n   */\n  readonly role = input<string>('progressbar');\n\n  readonly #serviceEffect = effect(() => {\n    this.#progressService.precision.set(this.precision());\n    const max = this.max();\n    this.#progressService.max.set(isNaN(max) || max <= 0 ? 100 : max);\n    const value = this.value();\n    this.#progressService.value.set(value && !isNaN(value) ? value : undefined);\n  });\n}\n","import { Component, computed, inject } from '@angular/core';\nimport { ProgressBarDirective } from './progress-bar.directive';\n\n@Component({\n  selector: 'c-progress-bar',\n  template: '<ng-content />',\n  hostDirectives: [\n    {\n      directive: ProgressBarDirective,\n      inputs: ['animated', 'color', 'max', 'role', 'value', 'variant']\n    }\n  ],\n  host: { class: 'progress-bar', '[class]': 'hostClasses()' }\n})\nexport class ProgressBarComponent {\n  readonly #progressBarDirective: ProgressBarDirective | null = inject(ProgressBarDirective, { optional: true });\n\n  readonly hostClasses = computed(() => {\n    const animated = this.#progressBarDirective?.animated();\n    const color = this.#progressBarDirective?.color();\n    const variant = this.#progressBarDirective?.variant();\n    return {\n      'progress-bar': true,\n      'progress-bar-animated': !!animated,\n      [`progress-bar-${variant}`]: !!variant,\n      [`bg-${color}`]: !!color\n    } as Record<string, boolean>;\n  });\n}\n","import { Component, input } from '@angular/core';\n\n@Component({\n  selector: 'c-progress-stacked',\n  exportAs: 'cProgressStacked',\n  template: '<ng-content />',\n  styles: `\n    :host {\n      display: flex;\n    }\n  `,\n  host: { '[class.progress-stacked]': 'stacked()' }\n})\nexport class ProgressStackedComponent {\n  readonly stacked = input(true);\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n  booleanAttribute,\n  Component,\n  computed,\n  contentChildren,\n  ElementRef,\n  inject,\n  input,\n  numberAttribute\n} from '@angular/core';\nimport { ProgressBarComponent } from './progress-bar.component';\nimport { ProgressBarDirective } from './progress-bar.directive';\nimport { ProgressStackedComponent } from './progress-stacked.component';\nimport { ProgressService } from './progress.service';\n\n@Component({\n  selector: 'c-progress',\n  exportAs: 'cProgress',\n  templateUrl: './progress.component.html',\n  imports: [ProgressBarComponent, NgTemplateOutlet],\n  styleUrl: './progress.component.scss',\n  hostDirectives: [\n    {\n      directive: ProgressBarDirective,\n      inputs: ['animated', 'color', 'max', 'role', 'value', 'variant']\n    }\n  ],\n  host: {\n    class: 'progress',\n    '[class]': 'hostClasses()',\n    '[style.height]': 'hostStyle()'\n  },\n  providers: [ProgressService]\n})\nexport class ProgressComponent {\n  readonly #hostElement = inject(ElementRef);\n  protected readonly progressBarDirective: ProgressBarDirective | null = inject(ProgressBarDirective, {\n    optional: true\n  });\n  readonly #stacked: boolean = inject(ProgressStackedComponent, { optional: true })?.stacked() ?? false;\n  readonly #progressService = inject(ProgressService);\n\n  constructor() {\n    this.#progressService.stacked.set(this.#stacked);\n  }\n\n  readonly stacked = this.#progressService.stacked;\n  readonly percent = this.#progressService.percent;\n  readonly barValue = this.#progressService.value;\n\n  readonly contentProgressBars = contentChildren(ProgressBarComponent);\n\n  /**\n   * Sets the height of the component. If you set that value the inner `<CProgressBar>` will automatically resize accordingly.\n   * @return number\n   */\n  readonly height = input(0, { transform: numberAttribute });\n\n  /**\n   * Displays thin progress.\n   * @return boolean\n   */\n  readonly thin = input(false, { transform: booleanAttribute });\n\n  /**\n   * Change the default color to white.\n   * @return boolean\n   */\n  readonly white = input(false, { transform: booleanAttribute });\n\n  readonly hostClasses = computed(() => {\n    return {\n      progress: true,\n      'progress-thin': this.thin(),\n      'progress-white': this.white()\n    } as Record<string, boolean>;\n  });\n\n  readonly hostStyle = computed(() => {\n    const height = this.height();\n    return !!height ? `${height}px` : (this.#hostElement?.nativeElement?.style?.height ?? undefined);\n  });\n}\n","@if (contentProgressBars()?.length) {\n  <ng-container *ngTemplateOutlet=\"defaultContent\" />\n} @else {\n  @let pbd = progressBarDirective;\n  <c-progress-bar [animated]=\"pbd?.animated()\" [variant]=\"pbd?.variant()\" [color]=\"pbd?.color()\" [value]=\"barValue()\">\n    <ng-container *ngTemplateOutlet=\"defaultContent\" />\n  </c-progress-bar>\n}\n\n<ng-template #defaultContent>\n  <ng-content />\n</ng-template>\n\n","import { NgModule } from '@angular/core';\nimport { ProgressComponent } from './progress.component';\nimport { ProgressBarComponent } from './progress-bar.component';\nimport { ProgressBarDirective } from './progress-bar.directive';\nimport { ProgressStackedComponent } from './progress-stacked.component';\n\n@NgModule({\n  exports: [\n    ProgressComponent,\n    ProgressBarComponent,\n    ProgressBarDirective,\n    ProgressStackedComponent\n  ],\n  imports: [\n    ProgressComponent,\n    ProgressBarComponent,\n    ProgressBarDirective,\n    ProgressStackedComponent\n  ]\n})\nexport class ProgressModule {}\n","import {\n  booleanAttribute,\n  Component,\n  computed,\n  effect,\n  inject,\n  input,\n  OnDestroy,\n  Renderer2,\n  TemplateRef,\n  viewChild,\n  ViewContainerRef\n} from '@angular/core';\n\n@Component({\n  selector: 'c-tooltip',\n  templateUrl: './tooltip.component.html',\n  host: {\n    class: 'tooltip fade bs-tooltip-auto',\n    '[class]': 'hostClasses()',\n    '[attr.role]': 'role()',\n    '[attr.id]': 'id()'\n  }\n})\nexport class TooltipComponent implements OnDestroy {\n  readonly renderer = inject(Renderer2);\n\n  /**\n   * Content of tooltip\n   * @type {string | TemplateRef}\n   */\n  readonly content = input<string | TemplateRef<any>>('');\n\n  readonly #contentEffect = effect(() => {\n    this.updateView(this.content());\n  });\n\n  /**\n   * Toggle the visibility of popover component.\n   * @type boolean\n   */\n  readonly visible = input(false, { transform: booleanAttribute });\n  readonly id = input<string>();\n  readonly role = input('tooltip');\n\n  readonly viewContainerRef = viewChild('tooltipTemplate', { read: ViewContainerRef });\n  private textNode!: Text;\n\n  readonly hostClasses = computed(() => {\n    return {\n      tooltip: true,\n      fade: true,\n      show: this.visible(),\n      'bs-tooltip-auto': true\n    } as Record<string, boolean>;\n  });\n\n  ngOnDestroy(): void {\n    this.clear();\n  }\n\n  private clear(): void {\n    this.viewContainerRef()?.clear();\n    if (!!this.textNode) {\n      this.renderer.removeChild(this.textNode.parentNode, this.textNode);\n    }\n  }\n\n  private updateView(content: string | TemplateRef<any>): void {\n    this.clear();\n\n    if (!content) {\n      return;\n    }\n\n    if (content instanceof TemplateRef) {\n      this.viewContainerRef()?.createEmbeddedView(content);\n    } else {\n      this.textNode = this.renderer.createText(content);\n\n      const element = this.viewContainerRef()?.element.nativeElement;\n      this.renderer.appendChild(element.parentNode, this.textNode);\n    }\n  }\n}\n","<ng-container>\n  <div class=\"tooltip-arrow\" data-popper-arrow></div>\n  <div class=\"tooltip-inner\">\n    <ng-container #tooltipTemplate />\n  </div>\n</ng-container>\n","import {\n  afterRenderEffect,\n  AfterViewInit,\n  ChangeDetectorRef,\n  ComponentRef,\n  computed,\n  DestroyRef,\n  Directive,\n  DOCUMENT,\n  effect,\n  ElementRef,\n  inject,\n  input,\n  model,\n  OnDestroy,\n  OnInit,\n  Renderer2,\n  TemplateRef,\n  ViewContainerRef\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { debounceTime, filter, finalize } from 'rxjs/operators';\nimport { createPopper, Instance, Options } from '@popperjs/core';\n\nimport { Triggers } from '../coreui.types';\nimport { IListenersConfig, IntersectionService, ListenersService } from '../services';\nimport { ElementRefDirective } from '../shared';\nimport { TooltipComponent } from './tooltip/tooltip.component';\n\n@Directive({\n  selector: '[cTooltip]',\n  exportAs: 'cTooltip',\n  providers: [ListenersService, IntersectionService],\n  host: { '[attr.aria-describedby]': 'ariaDescribedBy' }\n})\nexport class TooltipDirective implements OnDestroy, OnInit, AfterViewInit {\n  readonly #renderer = inject(Renderer2);\n  readonly #hostElement = inject(ElementRef);\n  readonly #viewContainerRef = inject(ViewContainerRef);\n  readonly #listenersService = inject(ListenersService);\n  readonly #changeDetectorRef = inject(ChangeDetectorRef);\n  readonly #intersectionService = inject(IntersectionService);\n  readonly #destroyRef = inject(DestroyRef);\n  readonly #document = inject(DOCUMENT);\n\n  /**\n   * Content of tooltip\n   * @return {string | TemplateRef}\n   */\n  readonly content = input<string | TemplateRef<any> | undefined>(undefined, { alias: 'cTooltip' });\n\n  readonly #contentEffect = effect(() => {\n    if (this.content()) {\n      this.destroyTooltipElement();\n    }\n  });\n\n  /**\n   * Optional popper Options object, takes precedence over cPopoverPlacement prop\n   * @return Partial<Options>\n   */\n  readonly popperOptions = input<Partial<Options>>({}, { alias: 'cTooltipOptions' });\n\n  readonly #popperOptionsEffect = effect(() => {\n    this._popperOptions = {\n      ...this._popperOptions,\n      placement: this.placement(),\n      ...this.popperOptions()\n    };\n  });\n\n  readonly popperOptionsComputed = computed(() => {\n    return { placement: this.placement(), ...this._popperOptions };\n  });\n\n  /**\n   * Describes the placement of your component after Popper.js has applied all the modifiers that may have flipped or altered the originally provided placement property.\n   * @return: 'top' | 'bottom' | 'left' | 'right'\n   * @default: 'top'\n   */\n  readonly placement = input<'top' | 'bottom' | 'left' | 'right'>('top', { alias: 'cTooltipPlacement' });\n\n  /**\n   * ElementRefDirective for positioning the tooltip on reference element\n   * @return: ElementRefDirective\n   * @default: undefined\n   */\n  readonly reference = input<ElementRefDirective | undefined>(undefined, { alias: 'cTooltipRef' });\n\n  readonly referenceRef = computed(() => this.reference()?.elementRef ?? this.#hostElement);\n\n  /**\n   * Sets which event handlers you’d like provided to your toggle prop. You can specify one trigger or an array of them.\n   * @return: 'Triggers | Triggers[]\n   */\n  readonly trigger = input<Triggers | Triggers[]>('hover', { alias: 'cTooltipTrigger' });\n\n  /**\n   * Toggle the visibility of tooltip component.\n   * @return boolean\n   */\n  readonly visible = model(false, { alias: 'cTooltipVisible' });\n\n  readonly #visibleEffect = afterRenderEffect({\n    // this fixes RuntimeError: NG0500: During hydration Angular expected <abc> but found <xyz>.\n    // Find more at https://angular.dev/errors/NG0500\n    write: () => {\n      this.visible() ? this.addTooltipElement() : this.removeTooltipElement();\n    }\n  });\n\n  get ariaDescribedBy(): string | null {\n    return this.tooltipId ? this.tooltipId : null;\n  }\n\n  private tooltip!: HTMLDivElement;\n  private tooltipId!: string;\n  private tooltipRef!: ComponentRef<TooltipComponent>;\n  private popperInstance!: Instance;\n\n  private _popperOptions: Partial<Options> = {\n    modifiers: [\n      {\n        name: 'offset',\n        options: {\n          offset: [0, 5]\n        }\n      }\n    ]\n  };\n\n  ngAfterViewInit(): void {\n    this.intersectionServiceSubscribe();\n  }\n\n  ngOnDestroy(): void {\n    this.clearListeners();\n    this.destroyTooltipElement();\n  }\n\n  ngOnInit(): void {\n    this.setListeners();\n  }\n\n  private setListeners(): void {\n    const config: IListenersConfig = {\n      hostElement: this.#hostElement,\n      trigger: this.trigger(),\n      callbackToggle: () => {\n        this.visible.update((value) => !value);\n      },\n      callbackOff: () => {\n        this.visible.set(false);\n      },\n      callbackOn: () => {\n        this.visible.set(true);\n      }\n    };\n    this.#listenersService.setListeners(config);\n  }\n\n  private clearListeners(): void {\n    this.#listenersService.clearListeners();\n  }\n\n  private intersectionServiceSubscribe(): void {\n    this.#intersectionService.createIntersectionObserver(this.referenceRef());\n    this.#intersectionService.intersecting$\n      .pipe(\n        filter((next) => next.hostElement === this.referenceRef()),\n        debounceTime(100),\n        finalize(() => {\n          this.#intersectionService.unobserve(this.referenceRef());\n        }),\n        takeUntilDestroyed(this.#destroyRef)\n      )\n      .subscribe((next) => {\n        this.visible.set(next.isIntersecting ? this.visible() : false);\n      });\n  }\n\n  private getUID(prefix: string): string {\n    let uid = prefix ?? 'random-id';\n    do {\n      uid = `${prefix}-${Math.floor(Math.random() * 1000000).toString(10)}`;\n    } while (this.#document.getElementById(uid));\n\n    return uid;\n  }\n\n  private createTooltipElement(): void {\n    if (!this.tooltipRef) {\n      this.tooltipRef = this.#viewContainerRef.createComponent<TooltipComponent>(TooltipComponent);\n      // this.viewContainerRef.detach();\n    }\n  }\n\n  private destroyTooltipElement(): void {\n    this.tooltip?.remove();\n    this.tooltipRef?.destroy();\n    // @ts-ignore\n    this.tooltipRef = undefined;\n    this.popperInstance?.destroy();\n    this.#viewContainerRef?.detach();\n    this.#viewContainerRef?.clear();\n  }\n\n  private addTooltipElement(): void {\n    if (!this.content()) {\n      this.destroyTooltipElement();\n      return;\n    }\n\n    if (!this.tooltipRef) {\n      this.createTooltipElement();\n    }\n\n    this.tooltipRef?.setInput('content', this.content() ?? '');\n\n    this.tooltip = this.tooltipRef?.location.nativeElement;\n    this.#renderer.addClass(this.tooltip, 'd-none');\n    this.#renderer.addClass(this.tooltip, 'fade');\n\n    this.popperInstance?.destroy();\n\n    this.#viewContainerRef.insert(this.tooltipRef.hostView);\n    this.#renderer.appendChild(this.#document.body, this.tooltip);\n\n    this.popperInstance = createPopper(this.referenceRef().nativeElement, this.tooltip, {\n      ...this.popperOptionsComputed()\n    });\n\n    if (!this.visible()) {\n      this.removeTooltipElement();\n      return;\n    }\n    setTimeout(() => {\n      this.tooltipId = this.getUID('tooltip');\n      this.tooltipRef?.setInput('id', this.tooltipId);\n      this.#renderer.removeClass(this.tooltip, 'd-none');\n      this.tooltipRef?.setInput('visible', this.visible());\n      this.popperInstance?.forceUpdate();\n      this.#changeDetectorRef?.markForCheck();\n    }, 100);\n  }\n\n  private removeTooltipElement(): void {\n    this.tooltipId = '';\n    if (!this.tooltipRef) {\n      return;\n    }\n    this.tooltipRef.setInput('visible', false);\n    this.tooltipRef.setInput('id', undefined);\n    this.#changeDetectorRef.markForCheck();\n    setTimeout(() => {\n      this.#viewContainerRef?.detach();\n    }, 300);\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { TooltipComponent } from './tooltip/tooltip.component';\nimport { TooltipDirective } from './tooltip.directive';\n\n@NgModule({\n  exports: [\n    TooltipComponent,\n    TooltipDirective\n  ],\n  imports: [\n    TooltipComponent,\n    TooltipDirective\n  ]\n})\nexport class TooltipModule {}\n","import { Component, effect, ElementRef, inject, input, Renderer2, signal } from '@angular/core';\nimport { FocusableOption, FocusOrigin } from '@angular/cdk/a11y';\n\n@Component({\n  selector: 'c-rating-item-label',\n  standalone: true,\n  template: '<ng-content />'\n})\nexport class RatingItemLabelComponent implements FocusableOption {\n  readonly #elementRef = inject(ElementRef);\n  readonly #renderer = inject(Renderer2);\n  readonly label = input('');\n  readonly value = input.required<number>();\n  readonly focusable = signal(false);\n\n  focusableEffect = effect(() => {\n    this.#renderer.setAttribute(this.#elementRef.nativeElement, 'tabindex', this.focusable() ? '0' : '-1');\n  });\n\n  // @HostBinding('attr.tabindex')\n  // get tabIndex() {\n  //   // console.log('active', this.active(), this.active() ? '0' : '-1')\n  //   console.log('focusable', this.value(), this.focusable(), this.focusable() ? '0' : '-1');\n  //   return this.focusable() ? '0' : '-1';\n  // }\n\n  focus(origin?: FocusOrigin): void {\n    this.#elementRef.nativeElement.focus();\n  }\n\n  getLabel(): string {\n    return this.label() || this.value().toString();\n  }\n}\n","import { FocusKeyManager } from '@angular/cdk/a11y';\nimport { BooleanInput } from '@angular/cdk/coercion';\nimport {\n  afterEveryRender,\n  booleanAttribute,\n  Component,\n  computed,\n  contentChildren,\n  DestroyRef,\n  effect,\n  ElementRef,\n  forwardRef,\n  inject,\n  input,\n  InputSignalWithTransform,\n  linkedSignal,\n  model,\n  numberAttribute,\n  output,\n  signal,\n  untracked,\n  viewChildren\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { fromEvent, merge, takeWhile } from 'rxjs';\nimport { filter, tap } from 'rxjs/operators';\n\nimport { RtlService } from '../services';\nimport { TemplateIdDirective } from '../shared';\nimport { TooltipDirective } from '../tooltip';\nimport { RatingItemLabelComponent } from './rating-item-label/rating-item-label.component';\n\nexport const coerceStringArray = (value: string | string[]): string[] => (Array.isArray(value) ? [...value] : [value]);\nexport const coerceRatingPrecision = (value: number | string): number =>\n  [1, 0.5, 0.25].includes(numberAttribute(value)) ? numberAttribute(value) : 1;\nexport const coerceNumber = (value: number | string | null): number => Number(value ?? 0);\n\n@Component({\n  selector: 'c-rating',\n  exportAs: 'cRating',\n  imports: [NgTemplateOutlet, forwardRef(() => TooltipDirective), RatingItemLabelComponent],\n  templateUrl: './rating.component.html',\n  styleUrl: './rating.component.scss',\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => RatingComponent),\n      multi: true\n    }\n  ],\n  host: {\n    '[attr.aria-disabled]': 'ratingDisabled()',\n    '[attr.aria-valueNow]': 'value()',\n    '[attr.aria-valuemax]': 'itemCount()',\n    '[class]': 'hostClasses()',\n    '(keydown)': 'onKeyDown($event)',\n    role: 'radiogroup'\n  }\n})\nexport class RatingComponent implements ControlValueAccessor {\n  static ngAcceptInputType_allowClear: BooleanInput;\n  static ngAcceptInputType_disabled: BooleanInput;\n  static ngAcceptInputType_highlightOnlySelected: BooleanInput;\n  static ngAcceptInputType_readOnly: BooleanInput;\n\n  readonly #destroyRef = inject(DestroyRef);\n  readonly #elementRef = inject(ElementRef);\n  readonly #rtlService = inject(RtlService);\n  readonly #isRtl = signal(false);\n\n  constructor() {\n    afterEveryRender({\n      read: () => {\n        this.#isRtl.set(this.#rtlService.isRTL(this.#elementRef.nativeElement));\n      }\n    });\n  }\n\n  /**\n   * The default icon to display when the item is selected.\n   * @returns: string | string[]\n   */\n  readonly activeIcon: InputSignalWithTransform<string[], string | string[]> = input([], {\n    transform: coerceStringArray\n  });\n\n  /**\n   * Enables the clearing upon clicking the selected item again.\n   * @returns: boolean\n   * @default: false\n   */\n  readonly allowClear = input(false, { transform: booleanAttribute });\n\n  /**\n   * Toggle the disabled state for the component.\n   * @returns: boolean\n   * @default: false\n   */\n  readonly disabled = input(false, { transform: booleanAttribute });\n  readonly #disabledState = linkedSignal(this.disabled);\n\n  /**\n   * If enabled, only the currently selected icon will be visibly highlighted.\n   * @returns: boolean\n   * @default: false\n   */\n  readonly highlightOnlySelected = input(false, { transform: booleanAttribute });\n\n  /**\n   * The default icon to display when the item is not selected.\n   * @returns: string | string[]\n   */\n  readonly icon: InputSignalWithTransform<string[], string | string[]> = input([], {\n    transform: coerceStringArray\n  });\n\n  /**\n   * Specifies the total number of stars to be displayed in the star rating component. This property determines the scale of the rating,\n   * such as out of 5 stars, 10 stars, etc.\n   * @returns: number\n   * @default: 5\n   */\n  readonly itemCount = input(5, { transform: numberAttribute });\n\n  /**\n   * Minimum increment value change allowed.\n   * @returns: number\n   * @default: 1\n   */\n  readonly precision = input(1, { transform: numberAttribute });\n\n  /**\n   * Allows to click fractions\n   * @returns: boolean\n   * @default: false\n   */\n  // readonly precisionClick = input(false, { transform: booleanAttribute });\n\n  /**\n   * Toggle the readonly state for the component.\n   * @returns: boolean\n   * @default: false\n   */\n  readonly readOnly = input(false, { transform: booleanAttribute });\n\n  /**\n   * Size the component small, large, or custom if you define custom icons with custom height.\n   * @returns: 'sm' | 'lg' | 'custom' | undefined\n   * @default: undefined\n   */\n  readonly size = input<'' | 'sm' | 'lg' | 'custom' | string>();\n\n  /**\n   * Enable tooltips with default values or set specific labels for each icon.\n   * @returns: boolean | string[] | undefined\n   * @default: undefined\n   */\n  readonly tooltips = input<boolean | string[] | undefined>(undefined);\n\n  /**\n   * The `value` attribute of component.\n   * @returns: number | null\n   * @default: null\n   * Emits `valueChange` on value change\n   */\n  readonly value = model<number | null>(null);\n\n  /**\n   * Event emitted on hoverValue change.\n   * @returns: number | null\n   */\n  readonly hoverValue = signal<number | null>(null);\n  readonly hoverValueChange = output<number | null>();\n  readonly hoverValueEffect = effect(() => {\n    this.hoverValueChange.emit(this.hoverValue());\n    if (!this.hoverValue()) {\n      this.hoveredItem.set(undefined);\n    }\n  });\n\n  readonly #cleared = signal(false);\n  readonly hoveredItem = signal<number | undefined>(undefined);\n  readonly tooltipValue = signal<string | number | null>(null);\n\n  readonly ratingDisabled = computed<boolean>(() => this.disabled() || this.readOnly() || this.#disabledState());\n\n  readonly ratingDisabledEffect = effect(() => {\n    if (!this.ratingDisabled()) {\n      const focusIn$ = fromEvent<FocusEvent>(this.#elementRef.nativeElement, 'focusin');\n      const focusOut$ = fromEvent<FocusEvent>(this.#elementRef.nativeElement, 'focusout');\n      const mouseLeave$ = fromEvent<MouseEvent>(this.#elementRef.nativeElement, 'mouseleave');\n\n      merge(focusIn$, focusOut$, mouseLeave$)\n        .pipe(\n          filter((event) => !this.ratingDisabled()),\n          tap(($event) => {\n            switch ($event.type) {\n              case 'focusin':\n                this.onTouched();\n                break;\n              case 'focusout':\n              case 'mouseleave':\n                this.hoverValue.set(null);\n                break;\n            }\n          }),\n          takeWhile(() => !this.ratingDisabled()),\n          takeUntilDestroyed(this.#destroyRef)\n        )\n        .subscribe();\n    }\n  });\n\n  readonly contentTemplates = contentChildren(TemplateIdDirective);\n\n  readonly iconTemplates = computed(() => {\n    const templateArray = this.contentTemplates().map((child: TemplateIdDirective) => {\n      return [[child.id], child.templateRef];\n    });\n    return Object.fromEntries(templateArray);\n  });\n\n  readonly numberOfSubItems = computed(() => {\n    return parseInt((1 / this.precision()).toFixed());\n  });\n\n  readonly ratingItems = computed(() => {\n    return Array.from({ length: this.itemCount() }, (_, itemIndex) => {\n      if (this.numberOfSubItems() === 1) {\n        return [itemIndex + 1];\n      }\n      return Array.from(\n        { length: this.numberOfSubItems() },\n        (_, subIndex) => itemIndex + (subIndex + 1) * this.precision()\n      );\n    });\n  });\n\n  readonly ratingItemLabels = viewChildren(RatingItemLabelComponent);\n  #focusKeyManager!: FocusKeyManager<RatingItemLabelComponent>;\n\n  readonly ratingItemLabelsEffect = effect(() => {\n    if (untracked(this.ratingDisabled)) {\n      return;\n    }\n    const isRtl = this.#isRtl();\n\n    this.#focusKeyManager = new FocusKeyManager(this.ratingItemLabels())\n      .withHorizontalOrientation(isRtl ? 'rtl' : 'ltr')\n      .withVerticalOrientation(false)\n      .withWrap();\n\n    const activeItemIndex = this.ratingItems()\n      .flat()\n      .findIndex((value) => value === coerceNumber(this.value() ?? 0));\n\n    this.#focusKeyManager?.updateActiveItem(activeItemIndex < 0 ? 0 : activeItemIndex);\n\n    this.#focusKeyManager.tabOut\n      .pipe(\n        tap((x) => {\n          const activeItemIndex = untracked(this.ratingItems)\n            .flat()\n            .findIndex((value) => value === coerceNumber(untracked(this.value) ?? 0));\n\n          this.#focusKeyManager.updateActiveItem(activeItemIndex === -1 ? 0 : activeItemIndex);\n          this.updateFocusableItems();\n        }),\n        takeUntilDestroyed(this.#destroyRef)\n      )\n      .subscribe();\n\n    this.#focusKeyManager.change\n      .pipe(\n        tap((value) => {\n          this.ratingItemLabels().forEach((label, index) => {\n            label.focusable.set(index === this.#focusKeyManager.activeItemIndex);\n            if (index === this.#focusKeyManager.activeItemIndex) {\n              const value = untracked(label.value);\n              this.handleClick(value);\n            }\n          });\n        }),\n        takeUntilDestroyed(this.#destroyRef)\n      )\n      .subscribe();\n  });\n\n  readonly hostClasses = computed(() => {\n    const size = this.size();\n    return {\n      rating: true,\n      [`rating-${size}`]: size,\n      disabled: this.disabled() || this.#disabledState(),\n      readonly: this.readOnly()\n    };\n  });\n\n  onKeyDown($event: KeyboardEvent) {\n    if (this.ratingDisabled()) {\n      return;\n    }\n    if (['Space', 'Enter'].includes($event.code)) {\n      $event.preventDefault();\n      const item = this.ratingItemLabels().find((label, index) => index === this.#focusKeyManager?.activeItemIndex);\n      this.handleClick(item?.value() ?? -1);\n      return;\n    }\n    if (['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown'].includes($event.key)) {\n      this.#focusKeyManager.onKeydown($event);\n      return;\n    }\n    if (['Tab'].includes($event.key)) {\n      this.#focusKeyManager?.tabOut.next();\n    }\n    return;\n  }\n\n  onChange = (value: number | null) => {\n    /* empty */\n  };\n  onTouched = () => {\n    /* empty */\n  };\n\n  registerOnChange(fn: any): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: any): void {\n    this.onTouched = fn;\n  }\n\n  setDisabledState(isDisabled: boolean): void {\n    this.#disabledState.set(isDisabled);\n  }\n\n  writeValue(value: number | null): void {\n    this.value.set(value);\n  }\n\n  isItemActive(value: number) {\n    const localValue = this.hoverValue() ?? this.value() ?? -1;\n    return this.highlightOnlySelected() ? localValue === value : localValue >= value;\n  }\n\n  notLastItemStyle(value: number) {\n    return {\n      zIndex: this.numberOfSubItems() - value,\n      position: 'absolute',\n      width: `${this.precision() * (value + 1) * 100}%`,\n      overflow: 'hidden',\n      opacity: 0.1\n    };\n  }\n\n  handleFocusIn($event: FocusEvent, itemValue: number) {\n    this.handleMouseEnter($event as MouseEvent, itemValue);\n  }\n\n  handleClick(value: number) {\n    if (this.ratingDisabled()) {\n      return;\n    }\n    if (this.allowClear() && value === this.value()) {\n      this.#cleared.set(true);\n      this.value.set(null);\n      this.hoverValue.set(null);\n    } else {\n      this.value.set(value);\n    }\n  }\n\n  handleMouseEnter($event: MouseEvent, value: number): void {\n    if (this.ratingDisabled()) {\n      return;\n    }\n    this.hoverValue.set(null);\n    this.hoverValue.set(value);\n    this.tooltipValue.set(value);\n  }\n\n  getTooltipValue(index: number): string | undefined {\n    if (!this.hoverValue() || this.hoveredItem() !== index) {\n      return undefined;\n    }\n    if (Array.isArray(this.tooltips())) {\n      const tooltips = this.tooltips() as string[];\n      return tooltips[index];\n    }\n    return this.precision()\n      ? (this.tooltipValue()?.toString() ?? '')\n      : this.ratingItems()\n        ? (this.ratingItems()[index].at(-1) ?? '').toString()\n        : '';\n  }\n\n  updateFocusableItems() {\n    this.ratingItemLabels().forEach((label, index) => {\n      label.focusable.set(index === this.#focusKeyManager?.activeItemIndex);\n    });\n  }\n\n  // keep it at the bottom of the code\n  readonly valueEffect = effect(() => {\n    const ratingValue = this.value();\n    this.onChange(ratingValue);\n\n    if (untracked(this.ratingDisabled)) {\n      return;\n    }\n\n    if (untracked(this.#cleared)) {\n      this.#cleared.set(false);\n      return;\n    }\n    const activeItemIndex = this.ratingItems()\n      .flat()\n      .findIndex((value) => value === coerceNumber(ratingValue ?? 0));\n\n    this.#focusKeyManager?.updateActiveItem(activeItemIndex < 0 ? 0 : activeItemIndex);\n    this.updateFocusableItems();\n  });\n}\n","@for (item of ratingItems(); track item; let itemIndex = $index, last = $last) {\n  @if (tooltips()) {\n    <div\n      class=\"rating-item\"\n      [cTooltip]=\"getTooltipValue(itemIndex)\"\n      [cTooltipTrigger]=\"['hover', 'focusin']\"\n      (mouseenter)=\"hoveredItem.set(itemIndex)\"\n      (focusin)=\"hoveredItem.set(itemIndex)\"\n    >\n      <ng-container *ngTemplateOutlet=\"ratingItemLabel; context: { $implicit: item, itemIndex }\" />\n    </div>\n  } @else {\n    <div class=\"rating-item\">\n      <ng-container *ngTemplateOutlet=\"ratingItemLabel; context: { $implicit: item, itemIndex }\" />\n    </div>\n  }\n}\n\n<ng-template let-item let-itemIndex=\"itemIndex\" #ratingItemLabel>\n  @for (itemValue of item; track radioIndex; let radioIndex = $index, last = $last) {\n    <c-rating-item-label\n      class=\"rating-item-label d-inline-block\"\n      role=\"radio\"\n      (click)=\"handleClick(itemValue)\"\n      (focus)=\"handleFocusIn($event, itemValue)\"\n      [class.active]=\"isItemActive(itemValue)\"\n      (mouseenter)=\"handleMouseEnter($event, itemValue)\"\n      [style]=\"radioIndex + 1 < numberOfSubItems() ? notLastItemStyle(radioIndex) : {}\"\n      [value]=\"itemValue\"\n      [attr.aria-label]=\"itemValue\"\n      [attr.aria-checked]=\"itemValue === value()\"\n    >\n      @if (iconTemplates()[icon()[itemIndex] ?? icon()]) {\n        <ng-container *ngTemplateOutlet=\"customIconTemplate; context: { $implicit: icon()?.[itemIndex] ?? icon() }\" />\n      } @else {\n        <ng-container *ngTemplateOutlet=\"defaultIconTemplate\" />\n      }\n      @if (iconTemplates()[activeIcon()[itemIndex] ?? activeIcon()]) {\n        <ng-container *ngTemplateOutlet=\"customIconActiveTemplate; context: { $implicit: activeIcon()?.[itemIndex] ?? activeIcon() }\" />\n      }\n    </c-rating-item-label>\n  }\n</ng-template>\n\n<ng-template #tooltipContent>\n  <span>{{ hoverValue() }}</span>\n</ng-template>\n\n<ng-template #defaultIconTemplate>\n  <div class=\"rating-item-icon\"></div>\n</ng-template>\n\n<ng-template #customIconTemplate let-icon>\n  <div class=\"rating-item-custom-icon\">\n    <ng-container *ngTemplateOutlet=\"iconTemplates()?.[icon] || defaultIconTemplate\" />\n  </div>\n</ng-template>\n\n<ng-template #customIconActiveTemplate let-icon>\n  <div class=\"rating-item-custom-icon-active\">\n    <ng-container *ngTemplateOutlet=\"iconTemplates()?.[icon] || customIconTemplate\" />\n  </div>\n</ng-template>\n","import { NgModule } from '@angular/core';\n\nimport { RatingComponent } from './rating.component';\n\n@NgModule({\n  imports: [RatingComponent],\n  exports: [RatingComponent]\n})\nexport class RatingModule {}\n","import { Label, ThumbSize } from './range-slider.type';\n\nexport const calculateClickValue = (\n  event: MouseEvent,\n  container: HTMLDivElement,\n  min: number,\n  max: number,\n  step: number,\n  vertical: boolean,\n  rtl: boolean\n) => {\n  const clickPosition = getClickPosition(event, container, vertical, rtl);\n  const value = min + clickPosition * (max - min);\n  return roundToStep(value, step);\n};\n\nexport const calculateMoveValue = (\n  event: MouseEvent,\n  container: HTMLDivElement,\n  min: number,\n  max: number,\n  step: number,\n  vertical: boolean,\n  rtl: boolean\n) => {\n  const rect = container.getBoundingClientRect();\n  const position = vertical\n    ? calculateVerticalPosition(event.clientY, rect)\n    : calculateHorizontalPosition(event.clientX, rect, rtl);\n\n  if (typeof position === 'string') {\n    return position === 'max' ? max : min;\n  }\n\n  const value = min + position * (max - min);\n\n  return roundToStep(value, step);\n};\n\nexport const calculateVerticalPosition = (mouseY: number, rect: DOMRect) => {\n  if (mouseY < rect.top) {\n    return 'max';\n  }\n\n  if (mouseY > rect.bottom) {\n    return 'min';\n  }\n\n  return Math.min(Math.max((rect.bottom - mouseY) / rect.height, 0), 1);\n};\n\nexport const calculateHorizontalPosition = (mouseX: number, rect: DOMRect, rtl: boolean) => {\n  if (mouseX < rect.left) {\n    return rtl ? 'max' : 'min';\n  }\n\n  if (mouseX > rect.right) {\n    return rtl ? 'min' : 'max';\n  }\n\n  const relativeX = rtl ? rect.right - mouseX : mouseX - rect.left;\n  return Math.min(Math.max(relativeX / rect.width, 0), 1);\n};\n\nexport const calculateLabelPosition = (min: number, max: number, labels: Label[], label: Label, index: number) => {\n  if (typeof label === 'object' && 'value' in label) {\n    return `${((label.value - min) / (max - min)) * 100}%`;\n  }\n\n  return `${(index / (labels.length - 1)) * 100}%`;\n};\n\nexport const calculateTooltipPosition = (\n  min: number,\n  max: number,\n  value: number,\n  thumbSize: ThumbSize,\n  vertical: boolean,\n  rtl: boolean\n) => {\n  const percent = (value - min) / (max - min);\n  const margin =\n    percent > 0.5\n      ? `-${(percent - 0.5) * thumbSize.value}${thumbSize.unit}`\n      : `${(0.5 - percent) * thumbSize.value}${thumbSize.unit}`;\n\n  if (vertical) {\n    return {\n      bottom: `${percent * 100}%`,\n      marginBottom: margin\n    };\n  }\n\n  return rtl ? { right: `${percent * 100}%`, marginRight: margin } : { left: `${percent * 100}%`, marginLeft: margin };\n};\n\nexport const getClickPosition = (event: MouseEvent, container: HTMLDivElement, vertical: boolean, rtl: boolean) => {\n  const { offsetX, offsetY } = event;\n  const { offsetWidth, offsetHeight } = container;\n\n  if (vertical) {\n    return 1 - offsetY / offsetHeight;\n  }\n\n  return rtl ? 1 - offsetX / offsetWidth : offsetX / offsetWidth;\n};\n\nexport const getLabelValue = (min: number, max: number, labels: Label[], label: Label, index: number) =>\n  typeof label === 'object' && 'value' in label ? label.value : min + (index / (labels.length - 1)) * (max - min);\n\nexport const getNearestValueIndex = (value: number, values: number[]) => {\n  const valuesLength = values.length;\n\n  if (value < values[0]) {\n    return 0;\n  }\n\n  if (value > values[valuesLength - 1]) {\n    return valuesLength - 1;\n  }\n\n  const distances = values.map((v) => Math.abs(v - value));\n  const min = Math.min(...distances);\n  const firstIndex = distances.indexOf(min);\n\n  return value < values[firstIndex] ? firstIndex : distances.lastIndexOf(min);\n};\n\nexport const roundToStep = (number: number, step: number) => {\n  const _step = step === 0 ? 1 : step;\n  return Math.round(number / _step) * _step;\n};\n\nexport const updateGradient = (min: number, max: number, values: number[], vertical: boolean, rtl: boolean) => {\n  const minVal = Math.min(...values);\n  const maxVal = Math.max(...values);\n\n  const from = ((minVal - min) / (max - min)) * 100;\n  const to = ((maxVal - min) / (max - min)) * 100;\n\n  const direction = vertical ? 'to top' : rtl ? 'to left' : 'to right';\n\n  return {\n    backgroundImage:\n      values.length === 1\n        ? `linear-gradient(\n    ${direction},\n    var(--cui-range-slider-track-in-range-bg) 0%,\n    var(--cui-range-slider-track-in-range-bg) ${to}%,\n    transparent ${to}%,\n    transparent 100%\n  )`\n        : `linear-gradient(\n    ${direction},\n    transparent 0%,\n    transparent ${from}%,\n    var(--cui-range-slider-track-in-range-bg) ${from}%,\n    var(--cui-range-slider-track-in-range-bg) ${to}%,\n    transparent ${to}%,\n    transparent 100%\n  )`\n  };\n};\n\nexport const updateValue = (value: number, values: number[], distance: number, index: number) => {\n  const newValue = [...values];\n  newValue[index] = validateValue(value, values, distance, index);\n  return newValue;\n};\n\nexport const validateValue = (value: number, values: number[], distance: number, index: number) => {\n  // If there's only one value, return it as is\n  if (values.length === 1) {\n    return value;\n  }\n\n  // Determine previous and next values if they exist\n  const prevValue: number | undefined = index > 0 ? values[index - 1] : undefined;\n  const nextValue: number | undefined = index < values.length - 1 ? values[index + 1] : undefined;\n\n  // If it's the first element, ensure it's not too close to the next value\n  if (index === 0 && nextValue !== undefined) {\n    return Math.min(value, nextValue - distance);\n  }\n\n  // If it's the last element, ensure it's not too close to the previous value\n  if (index === values.length - 1 && prevValue !== undefined) {\n    return Math.max(value, prevValue + distance);\n  }\n\n  // For middle elements, ensure the value is within the allowed distance from both neighbors\n  if (prevValue !== undefined && nextValue !== undefined) {\n    const minVal = prevValue + distance;\n    const maxVal = nextValue - distance;\n    return Math.min(Math.max(value, minVal), maxVal);\n  }\n\n  // Fallback: If for some reason prevValue or nextValue is undefined, return the original value\n  return value;\n};\n\nexport const equalArrays = <T>(a: T[], b: T[]) =>\n  a.length === b.length && a.every((element: T, index: number) => element === b[index]);\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { updateGradient } from './range-slider.utils';\n\n@Pipe({\n  name: 'rangeSliderTrack'\n})\nexport class RangeSliderTrackPipe implements PipeTransform {\n  transform(value: number[], min: number, max: number, vertical: boolean, rtl: boolean = false): Record<string, any> {\n    return updateGradient(min, max, value, vertical, rtl);\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { Label } from './range-slider.type';\nimport { calculateLabelPosition } from './range-slider.utils';\n\n@Pipe({\n  name: 'rangeSliderLabelStyle'\n})\nexport class RangeSliderLabelStylePipe implements PipeTransform {\n  transform(\n    label: Label,\n    min: number,\n    max: number,\n    vertical: boolean,\n    labels: Label[],\n    index: number,\n    isRTL: boolean = false\n  ): Record<string, any> {\n    const labelPosition = calculateLabelPosition(min, max, labels, label, index);\n    return Object.assign(\n      vertical ? { bottom: labelPosition } : isRTL ? { right: labelPosition } : { left: labelPosition },\n      typeof label === 'object' && 'style' in label && label.style\n    );\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { Label } from './range-slider.type';\nimport { NgCssClass } from '../coreui.types';\n\n@Pipe({\n  name: 'rangeSliderLabelClass'\n})\nexport class RangeSliderLabelClassPipe implements PipeTransform {\n  transform(label: Label, clickableLabels: boolean): NgCssClass {\n    const classes: Record<string, boolean> = {\n      'range-slider-label': true,\n      clickable: clickableLabels\n    };\n\n    const labelClasses = typeof label === 'object' && 'class' in label && label.class;\n    let classObj: Record<string, boolean> = {};\n\n    if (typeof labelClasses === 'string') {\n      classObj = { [labelClasses]: true };\n    } else if (Array.isArray(labelClasses)) {\n      classObj = labelClasses.reduce((acc, labelClass) => ({ ...acc, [labelClass]: true }), {});\n    } else if (labelClasses instanceof Set) {\n      classObj = Array.from(labelClasses).reduce((acc, labelClass) => ({ ...acc, [labelClass]: true }), {});\n    } else if (typeof labelClasses === 'object') {\n      classObj = labelClasses;\n    }\n\n    return { ...classes, ...classObj };\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { ThumbSize } from './range-slider.type';\nimport { calculateTooltipPosition } from './range-slider.utils';\n\n@Pipe({\n  name: 'rangeSliderTooltipPositionStyle'\n})\nexport class RangeSliderTooltipPositionStylePipe implements PipeTransform {\n  transform(\n    value: number,\n    min: number,\n    max: number,\n    vertical: boolean,\n    thumbSize: ThumbSize | null,\n    rtl: boolean = false\n  ): Record<string, any> | null {\n    return thumbSize ? calculateTooltipPosition(min, max, value, thumbSize, vertical, rtl) : null;\n  }\n}\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport {\n  afterNextRender,\n  booleanAttribute,\n  Component,\n  computed,\n  DestroyRef,\n  DOCUMENT,\n  effect,\n  ElementRef,\n  forwardRef,\n  inject,\n  input,\n  linkedSignal,\n  model,\n  numberAttribute,\n  OnInit,\n  output,\n  signal,\n  untracked,\n  viewChild,\n  viewChildren\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';\nimport { BehaviorSubject } from 'rxjs';\nimport { debounceTime, distinctUntilChanged } from 'rxjs/operators';\n\nimport { Label, ThumbSize } from './range-slider.type';\nimport { RangeSliderTrackPipe } from './range-slider-track.pipe';\nimport { RangeSliderLabelStylePipe } from './range-slider-label-style.pipe';\nimport { RangeSliderLabelClassPipe } from './range-slider-label-class.pipe';\nimport { RangeSliderTooltipPositionStylePipe } from './range-slider-tooltip-position-style.pipe';\nimport {\n  calculateClickValue,\n  calculateMoveValue,\n  equalArrays,\n  getLabelValue,\n  getNearestValueIndex,\n  updateValue,\n  validateValue\n} from './range-slider.utils';\nimport { RtlService, UIDService } from '../services';\n\n@Component({\n  selector: 'c-range-slider',\n  imports: [\n    RangeSliderTrackPipe,\n    RangeSliderLabelStylePipe,\n    RangeSliderLabelClassPipe,\n    RangeSliderTooltipPositionStylePipe,\n    ReactiveFormsModule,\n    FormsModule\n  ],\n  templateUrl: './range-slider.component.html',\n  styleUrl: './range-slider.component.scss',\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => RangeSliderComponent),\n      multi: true\n    }\n  ],\n  host: {\n    class: 'range-slider',\n    '[class]': 'hostClasses()',\n    '[attr.disabled]': 'disabledState() || null',\n    '[attr.aria-disabled]': 'disabledState() || null',\n    '[attr.aria-orientation]': 'vertical() ? \"vertical\" : \"horizontal\"',\n    '[attr.aria-valuemax]': 'max()',\n    '[attr.aria-valuemin]': 'min()',\n    '[attr.aria-valuenow]': 'valueNow()',\n    '[attr.role]': 'role()'\n  }\n})\nexport class RangeSliderComponent implements ControlValueAccessor, OnInit {\n  static ngAcceptInputType_disabled: BooleanInput;\n  static ngAcceptInputType_vertical: BooleanInput;\n\n  readonly #destroyRef = inject(DestroyRef);\n  readonly #document = inject(DOCUMENT);\n  readonly #elementRef = inject(ElementRef);\n  readonly #UIDService = inject(UIDService);\n  readonly #RtlService = inject(RtlService);\n\n  /**\n   * Enable or disable clickable labels in the Angular Range Slider.\n   * When set to `true`, users can click on labels to adjust the slider's value directly, enhancing interactivity and user experience.\n   * @default true\n   */\n  readonly clickableLabels = input(true, { transform: booleanAttribute });\n\n  /**\n   * Control the interactive state of the Angular Range Slider with the `disabled` prop.\n   * Setting it to `true` will disable all slider functionalities, preventing user interaction and visually indicating a non-interactive state.\n   * @default false\n   */\n  readonly disabled = input(false, { transform: booleanAttribute });\n\n  readonly disabledState = linkedSignal({\n    source: this.disabled,\n    computation: (isDisabled) => {\n      this.#elementRef.nativeElement.disabled = isDisabled;\n      return <boolean>isDisabled;\n      // return isDisabled ? isDisabled : null;\n    }\n  });\n\n  /**\n   * Define the minimum distance between slider handles using the `distance` prop in the Angular Range Slider.\n   * This ensures that the handles maintain a specified separation, preventing overlap and maintaining clear value distinctions.\n   * @default 0\n   */\n  readonly distance = input(0, { transform: numberAttribute });\n\n  /**\n   * Add descriptive labels to your Angular Range Slider by providing an array of `labels`.\n   * These labels enhance the slider's usability by clearly indicating key values and providing contextual information to users.\n   */\n  readonly labels = input<Label[]>([]);\n\n  /**\n   * Specify the maximum value for the Angular Range Slider with the `max` prop.\n   * This determines the upper limit of the slider's range, enabling precise control over the highest selectable value.\n   * @default 100\n   */\n  readonly max = input(100, { transform: numberAttribute });\n\n  /**\n   * Set the minimum value for the Angular Range Slider using the `min` prop.\n   * This defines the lower bound of the slider's range, allowing you to control the starting point of user selection.\n   * @default 0\n   */\n  readonly min = input(0, { transform: numberAttribute });\n\n  /**\n   * Default role for c-range-slider.\n   * @default 'slider'\n   */\n  readonly role = input('slider');\n\n  /**\n   * Control the granularity of the Angular Range Slider by setting the `step` prop.\n   * This defines the increment intervals between selectable values, allowing for precise adjustments based on your application's requirements.\n   * @default 1\n   */\n  readonly step = input(1, { transform: numberAttribute });\n\n  /**\n   * Toggle the visibility of tooltips in the Angular Range Slider with the `tooltips` prop.\n   * When enabled, tooltips display the current value of the slider handles, providing real-time feedback to users.\n   * @default true\n   */\n  readonly tooltips = input(true, { transform: booleanAttribute });\n\n  /**\n   * Customize the display format of tooltips in the Angular Range Slider using the `tooltipsFormat` function.\n   * This allows you to format the tooltip values according to your specific requirements, enhancing the clarity and presentation of information.\n   */\n  readonly tooltipsFormat = input<(value: number) => string>();\n\n  /**\n   * Controls the visual representation of the slider's track. When set to `'fill'`, the track is dynamically filled based on the slider's value(s).\n   * Setting it to `false` disables the filled track.\n   * @default 'fill'\n   */\n  readonly track = input<'fill' | boolean>('fill');\n\n  /**\n   * Set the current value(s) of the Angular Range Slider using the `value` prop.\n   * Whether you're using a single value or an array for multi-handle sliders, this prop controls the slider's position and ensures it reflects the desired state.\n   */\n  readonly value = model<number | number[]>([]);\n\n  readonly valueChange = output<number | number[]>();\n\n  readonly currentValue = computed(\n    () => {\n      const value = this.value();\n      return Array.isArray(value) ? [...value] : [value];\n    }\n    // { equal: equalArrays }\n  );\n\n  readonly valueEffect = effect(() => {\n    const currentValue = this.currentValue();\n    const inputRefs = this.inputRefs();\n    if (inputRefs.length) {\n      inputRefs.forEach((inputRef, index) => {\n        inputRef.nativeElement.value = currentValue[index].toString();\n      });\n    }\n    this.#value$.next(currentValue);\n  });\n\n  readonly #value$ = new BehaviorSubject<number[]>(this.currentValue());\n\n  readonly valueNow = computed(() => {\n    const value = this.currentValue();\n    return value.length === 1 ? value[0] : [...value];\n  });\n\n  readonly inputIds = signal<string[]>([]);\n\n  readonly inputIdsEffect = effect((): void => {\n    const sliders = this.currentValue().length;\n    const inputIds = untracked(this.inputIds);\n\n    if (sliders > 0) {\n      const ids: string[] = new Array(sliders).fill(undefined);\n      for (let i = 0; i < sliders; i++) {\n        ids[i] = inputIds[i] ?? this.#UIDService.getUID(`range-slider-input-${i}`);\n      }\n      this.inputIds.set([...ids]);\n    }\n  });\n\n  /**\n   * Orient the Angular Range Slider vertically by setting the `vertical` prop to `true`.\n   * This changes the slider's layout from horizontal to vertical, providing a different aesthetic and fitting various UI designs.\n   */\n  readonly vertical = input(false, { transform: booleanAttribute });\n\n  readonly hostClasses = computed(() => {\n    return {\n      'range-slider': true,\n      'range-slider-vertical': this.vertical(),\n      disabled: this.disabled() || this.disabledState()\n    };\n  });\n\n  readonly inputRefs = viewChildren<ElementRef>('inputRef');\n  readonly trackRef = viewChild<ElementRef>('trackRef');\n\n  readonly isDragging = signal(false);\n  readonly dragIndex = signal(0);\n  readonly thumbSize = signal<ThumbSize | null>(null);\n\n  readonly isDraggingEffect = effect((onCleanup) => {\n    const removeEventListeners = () => {\n      this.#document.removeEventListener('mousemove', this.handleMouseMove);\n      this.#document.removeEventListener('mouseup', this.handleMouseUp);\n    };\n\n    onCleanup(removeEventListeners);\n\n    if (this.isDragging()) {\n      this.#document.addEventListener('mousemove', this.handleMouseMove);\n      this.#document.addEventListener('mouseup', this.handleMouseUp);\n    } else {\n      removeEventListeners();\n    }\n  });\n\n  #getThumbSize = (element: HTMLDivElement, vertical: boolean): ThumbSize | null => {\n    const computedStyles = this.#document.defaultView?.getComputedStyle(element);\n\n    const value =\n      computedStyles?.getPropertyValue(\n        vertical ? '--cui-range-slider-thumb-height' : '--cui-range-slider-thumb-width'\n      ) ?? '2rem';\n\n    const regex = /^(\\d+\\.?\\d*)([%a-z]*)$/i;\n    const match = value?.match(regex);\n\n    if (match) {\n      return {\n        value: Number.parseFloat(match[1]),\n        unit: match[2] || null\n      };\n    }\n\n    return null;\n  };\n\n  constructor() {\n    this.handleMouseMove = this.handleMouseMove.bind(this);\n    this.handleMouseUp = this.handleMouseUp.bind(this);\n\n    afterNextRender({\n      read: () => {\n        setTimeout(() => {\n          const thumbSize = this.#getThumbSize(this.#elementRef.nativeElement, this.vertical());\n          this.thumbSize.set(thumbSize);\n        }, 1000);\n      }\n    });\n  }\n\n  ngOnInit(): void {\n    this.#value$\n      .pipe(debounceTime(300), distinctUntilChanged(equalArrays), takeUntilDestroyed(this.#destroyRef))\n      .subscribe((value) => {\n        const returnValue = value.length === 1 ? value[0] : [...value];\n        this.onChange(returnValue);\n        this.onTouched();\n        this.valueChange.emit(returnValue);\n      });\n  }\n\n  onChange = (value: number | number[]) => {\n    /* empty */\n  };\n\n  onTouched = () => {\n    /* empty */\n  };\n\n  registerOnChange(fn: any): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: any): void {\n    this.onTouched = fn;\n  }\n\n  setDisabledState(isDisabled: boolean): void {\n    this.disabledState.set(isDisabled);\n    // this.disabledState.set(isDisabled ? isDisabled : null);\n  }\n\n  writeValue(value: number | number[]): void {\n    this.value.set(Array.isArray(value) ? [...value] : [value]);\n  }\n\n  get isRtl(): boolean {\n    return this.#RtlService.isRTL(this.#elementRef.nativeElement);\n  }\n\n  updateNearestValue = (value: number) => {\n    const nearestIndex = getNearestValueIndex(value, this.currentValue());\n    const newCurrentValue = [...this.currentValue()];\n    newCurrentValue[nearestIndex] = validateValue(value, this.currentValue(), this.distance(), nearestIndex);\n\n    setTimeout(() => {\n      this.inputRefs()[nearestIndex].nativeElement.focus();\n    });\n\n    this.value.set(newCurrentValue);\n  };\n\n  handleInputChange(value: number, index: number) {\n    this.isDragging.set(false);\n\n    const newCurrentValue = updateValue(<number>value, this.currentValue(), this.distance(), index);\n\n    this.value.set([...newCurrentValue]);\n  }\n\n  handleInputsContainerMouseDown($event: MouseEvent) {\n    $event.preventDefault();\n\n    if (!this.trackRef() || $event.button !== 0 || this.disabledState()) {\n      return;\n    }\n\n    const validTarget = [...this.inputRefs(), this.trackRef()];\n    if (!validTarget.find((target) => target?.nativeElement === $event.target)) {\n      return;\n    }\n\n    const clickValue = calculateClickValue(\n      $event,\n      this.trackRef()?.nativeElement,\n      this.min(),\n      this.max(),\n      this.step(),\n      this.vertical(),\n      this.isRtl\n    );\n\n    const index = getNearestValueIndex(clickValue, this.currentValue());\n\n    this.isDragging.set(true);\n    this.dragIndex.set(index);\n    this.updateNearestValue(clickValue);\n  }\n\n  handleLabelClick($event: MouseEvent, label: Label) {\n    if (!this.clickableLabels() || this.disabledState() || $event.button !== 0) {\n      return;\n    }\n    const labelValue = getLabelValue(this.min(), this.max(), this.labels(), label, this.labels().indexOf(label));\n    this.updateNearestValue(labelValue);\n  }\n\n  getLabel(label: Label) {\n    return typeof label === 'object' && 'label' in label ? label.label : label;\n  }\n\n  handleMouseMove($event: MouseEvent) {\n    if (!this.isDragging() || !this.trackRef() || this.disabledState()) {\n      return;\n    }\n\n    const moveValue = calculateMoveValue(\n      $event,\n      this.trackRef()?.nativeElement,\n      this.min(),\n      this.max(),\n      this.step(),\n      this.vertical(),\n      this.isRtl\n    );\n\n    const newCurrentValue = updateValue(moveValue, this.currentValue(), this.distance(), this.dragIndex());\n\n    this.value.set(newCurrentValue);\n  }\n\n  handleMouseUp() {\n    this.isDragging.set(false);\n  }\n}\n","<div (mousedown)=\"handleInputsContainerMouseDown($event)\" class=\"range-slider-inputs-container\">\n  @for (value of currentValue(); track index; let index = $index) {\n    <input\n      class=\"range-slider-input\"\n      type=\"range\"\n      [min]=\"min()\"\n      [max]=\"max()\"\n      [step]=\"step()\"\n      [value]=\"value\"\n      [attr.value]=\"value\"\n      [attr.aria-valuemin]=\"min()\"\n      [attr.aria-valuemax]=\"max()\"\n      [attr.aria-valuenow]=\"value\"\n      [attr.aria-orientation]=\"vertical() ? 'vertical' : 'horizontal'\"\n      [disabled]=\"disabledState()\"\n      [ngModel]=\"value\"\n      (ngModelChange)=\"handleInputChange($event, index)\"\n      [attr.id]=\"inputIds()[index]\"\n      role=\"slider\"\n      #inputRef\n    />\n    @if (tooltips()) {\n      <div\n        class=\"range-slider-tooltip\"\n        [style]=\"value | rangeSliderTooltipPositionStyle: min() : max() : vertical() : thumbSize() : isRtl\"\n      >\n        <div class=\"range-slider-tooltip-inner\">\n          @let tooltipsFn = tooltipsFormat();\n          <label for=\"{{inputIds()[index]}}\">\n            {{ tooltipsFn?.(value) ?? value }}\n          </label>\n        </div>\n        <div class=\"range-slider-tooltip-arrow\"></div>\n      </div>\n    }\n  }\n  @if (track()) {\n    <div\n      class=\"range-slider-track\"\n      [style]=\"currentValue() | rangeSliderTrack: min() : max() : vertical() : isRtl\"\n      #trackRef\n    ></div>\n  } @else {\n    <div class=\"range-slider-track\" #trackRef></div>\n  }\n</div>\n\n@if (labels()) {\n  <div class=\"range-slider-labels-container\" #labelsContainerRef>\n    @for (label of labels(); track index; let index = $index) {\n      @let labelValue = getLabel(label);\n      <div\n        #labelRef\n        [class]=\"label | rangeSliderLabelClass: clickableLabels()\"\n        [style]=\"label | rangeSliderLabelStyle: min() : max() : vertical() : labels() : index: isRtl\"\n        (mousedown)=\"handleLabelClick($event, label)\"\n      >\n        {{ labelValue }}\n      </div>\n    }\n  </div>\n}\n","import { NgModule } from '@angular/core';\nimport { RangeSliderComponent } from './range-slider.component';\n\n@NgModule({\n  imports: [RangeSliderComponent],\n  exports: [RangeSliderComponent]\n})\nexport class RangeSliderModule {}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\nimport { SidebarComponent } from './sidebar/sidebar.component';\n\nexport interface ISidebarAction {\n  unfoldable?: boolean | 'toggle';\n  visible?: boolean | 'toggle';\n  toggle?: 'visible' | 'unfoldable';\n  narrow?: boolean;\n  mobile?: boolean;\n  sidebar?: SidebarComponent;\n  id?: string;\n}\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class SidebarService {\n  readonly #sidebarState = new BehaviorSubject<ISidebarAction>({});\n  readonly sidebarState$ = this.#sidebarState.asObservable();\n\n  toggle(action: ISidebarAction): void {\n    this.#sidebarState.next(action);\n  }\n}\n","import { DOCUMENT, inject, Injectable, Renderer2 } from '@angular/core';\nimport { SidebarService } from '../sidebar.service';\nimport { SidebarComponent } from '../sidebar/sidebar.component';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class SidebarBackdropService {\n  readonly #document = inject<Document>(DOCUMENT);\n  readonly #sidebarService = inject(SidebarService);\n\n  #backdrop!: HTMLElement;\n  renderer!: Renderer2;\n  #clickListener = (): void => {\n    /* empty */\n  };\n\n  setBackdrop(sidebar: SidebarComponent): void {\n    const backdrop = this.#document.getElementsByClassName('sidebar-backdrop');\n    // console.log(`sidebar-${this.id}`, ' setBackdrop', backdrop);\n    if (backdrop.length === 0) {\n      this.#backdrop = this.renderer.createElement('div');\n      this.renderer.addClass(this.#backdrop, 'sidebar-backdrop');\n      this.renderer.appendChild(this.#document.body, this.#backdrop);\n      this.#clickListener = this.renderer.listen(this.#backdrop, 'click', (e) => {\n        // console.log(`sidebar-${this.id}`, ' backdrop click', e);\n        this.#sidebarService.toggle({ toggle: 'visible', sidebar });\n      });\n    }\n    // console.log(this.backdrop, sidebar.sidebarState.mobile, sidebar.sidebarState.show);\n    if (this.#backdrop && sidebar.sidebarState.mobile && sidebar.sidebarState.visible) {\n      this.renderer.addClass(this.#backdrop, 'fade');\n      this.renderer.addClass(this.#backdrop, 'show');\n      // this.renderer.removeClass(this.backdrop, 'd-none');\n    } else {\n      this.renderer.removeClass(this.#backdrop, 'show');\n      this.renderer.removeClass(this.#backdrop, 'fade');\n      // this.renderer.addClass(this.backdrop, 'd-none');\n    }\n  }\n\n  clearBackdrop(): void {\n    if (this.#backdrop) {\n      // clear backdrop click Listener\n      this.#clickListener();\n      // this.renderer.listen(this.backdrop, 'click', (e): void => {} );\n      this.renderer.removeChild(this.#document.body, this.#backdrop);\n      // @ts-ignore\n      this.#backdrop = undefined;\n    }\n  }\n}\n","import {\n  booleanAttribute,\n  Component,\n  computed,\n  DOCUMENT,\n  effect,\n  inject,\n  input,\n  linkedSignal,\n  OnChanges,\n  OnDestroy,\n  OnInit,\n  output,\n  Renderer2,\n  signal,\n  SimpleChanges\n} from '@angular/core';\nimport { BreakpointObserver, BreakpointState } from '@angular/cdk/layout';\nimport { Subscription } from 'rxjs';\n\nimport { ISidebarAction, SidebarService } from '../sidebar.service';\nimport { SidebarBackdropService } from '../sidebar-backdrop/sidebar-backdrop.service';\n\n@Component({\n  selector: 'c-sidebar',\n  exportAs: 'cSidebar',\n  template: '<ng-content />',\n  host: {\n    class: 'sidebar',\n    '[class]': 'hostClasses()',\n    '[attr.inert]': '!this.sidebarState.visible || null'\n  }\n})\nexport class SidebarComponent implements OnChanges, OnDestroy, OnInit {\n  readonly #document = inject<Document>(DOCUMENT);\n  readonly #renderer = inject(Renderer2);\n  readonly #breakpointObserver = inject(BreakpointObserver);\n  readonly #sidebarService = inject(SidebarService);\n  readonly #backdropService = inject(SidebarBackdropService);\n\n  #onMobile = false;\n  #layoutChangeSubscription!: Subscription;\n  #stateToggleSubscription!: Subscription;\n\n  readonly state = signal<ISidebarAction>({\n    sidebar: this\n  });\n\n  #stateInitial = {\n    narrow: false,\n    visible: false,\n    unfoldable: false\n  };\n\n  /**\n   * Sets if the color of text should be colored for a light or dark background.\n   * @return 'dark' | 'light'\n   */\n  readonly colorScheme = input<'dark' | 'light'>();\n\n  /**\n   * Sets html attribute id.\n   * @return string\n   */\n  readonly id = input<string>();\n\n  /**\n   * Make sidebar narrow.\n   * @return boolean\n   * @default false\n   */\n  readonly narrowInput = input(false, { transform: booleanAttribute, alias: 'narrow' });\n\n  readonly #narrow = linkedSignal(this.narrowInput);\n\n  set narrow(value) {\n    this.#narrow.set(value);\n  }\n\n  get narrow() {\n    return this.#narrow();\n  }\n\n  /**\n   * Set sidebar to overlaid variant.\n   * @return boolean\n   * @default false\n   */\n  readonly overlaid = input(false, { transform: booleanAttribute });\n\n  /**\n   * Components placement, there’s no default placement.\n   * @return 'start' | 'end'\n   */\n  readonly placement = input<'start' | 'end'>();\n\n  /**\n   * Place sidebar in non-static positions.\n   * @return 'fixed' | 'sticky'\n   * @default 'fixed'\n   */\n  readonly position = input<'fixed' | 'sticky'>('fixed');\n\n  /**\n   * Size the component small, large, or extra large.\n   * @return 'sm' | 'lg' | 'xl'\n   */\n  readonly size = input<'sm' | 'lg' | 'xl'>();\n\n  /**\n   * Expand narrowed sidebar on hover.\n   * @type boolean\n   * @default false\n   */\n  readonly unfoldableInput = input(false, { transform: booleanAttribute, alias: 'unfoldable' });\n\n  readonly unfoldable = linkedSignal({\n    source: this.unfoldableInput,\n    computation: (value) => value\n  });\n\n  /**\n   * Toggle the visibility of sidebar component.\n   * @type boolean\n   * @default false\n   */\n  readonly visibleInput = input(false, { transform: booleanAttribute, alias: 'visible' });\n\n  readonly #visible = linkedSignal(this.visibleInput);\n\n  readonly #visibleEffect = effect(() => {\n    this.visibleChange?.emit(this.#visible());\n  });\n\n  set visible(value: boolean) {\n    this.#visible.set(value);\n  }\n\n  get visible() {\n    return this.#visible();\n  }\n\n  /**\n   * Event emitted on visibility change.\n   * @return boolean\n   */\n  readonly visibleChange = output<boolean>();\n\n  set sidebarState(value: ISidebarAction) {\n    const newState = value;\n    if ('toggle' in newState) {\n      if (newState.toggle === 'visible') {\n        newState.visible = !this.state().visible;\n        this.#visible.set(newState.visible);\n      } else if (newState.toggle === 'unfoldable') {\n        newState.unfoldable = !this.state().unfoldable;\n        this.unfoldable.set(newState.unfoldable);\n      }\n    } else {\n      this.#visible.update((visible) => (newState.visible ?? visible) && !this.overlaid());\n    }\n    this.state.update((state) => ({ ...state, ...newState }));\n    this.state().mobile && this.state().visible\n      ? this.#backdropService.setBackdrop(this)\n      : this.#backdropService.clearBackdrop();\n  }\n\n  get sidebarState(): ISidebarAction {\n    return { ...this.state() };\n  }\n\n  get getMobileBreakpoint(): string {\n    const element: Element = this.#document.documentElement;\n    const mobileBreakpoint =\n      this.#document.defaultView?.getComputedStyle(element)?.getPropertyValue('--cui-mobile-breakpoint') ?? 'md';\n    const breakpointValue =\n      this.#document.defaultView\n        ?.getComputedStyle(element)\n        ?.getPropertyValue(`--cui-breakpoint-${mobileBreakpoint.trim()}`) ?? '768px';\n    return `${parseFloat(breakpointValue.trim()) - 0.02}px`;\n  }\n\n  constructor() {\n    this.#backdropService.renderer = this.#renderer;\n  }\n\n  readonly hostClasses = computed(() => {\n    const { mobile, visible } = { ...this.sidebarState };\n    const unfoldable = this.unfoldable();\n    const placement = this.placement();\n    const colorScheme = this.colorScheme();\n    const size = this.size();\n    return {\n      sidebar: true,\n      'sidebar-fixed': this.position() === 'fixed' && !mobile,\n      'sidebar-narrow': this.#narrow() && !unfoldable,\n      'sidebar-narrow-unfoldable': unfoldable,\n      'sidebar-overlaid': this.overlaid(),\n      [`sidebar-${placement}`]: !!placement,\n      [`sidebar-${colorScheme}`]: !!colorScheme,\n      [`sidebar-${size}`]: !!size,\n      show: visible,\n      // show: visible && this.#onMobile, //todo: check\n      hide: !visible\n    };\n  });\n\n  ngOnInit(): void {\n    this.setInitialState();\n    this.layoutChangeSubscribe();\n    this.stateToggleSubscribe();\n  }\n\n  ngOnDestroy(): void {\n    this.stateToggleSubscribe(false);\n    this.layoutChangeSubscribe(false);\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    const oldStateMap = new Map(Object.entries(this.state()));\n    const newStateMap = new Map();\n    newStateMap.set('sidebar', this);\n\n    const propList = ['visible', 'unfoldable', 'narrow'];\n\n    for (const propName in changes) {\n      if (propList.includes(propName)) {\n        if (changes[propName] && !changes[propName].firstChange) {\n          const value = booleanAttribute(changes[propName].currentValue);\n          if (oldStateMap.get(propName) !== value) {\n            newStateMap.set(propName, value);\n          }\n        }\n      }\n    }\n\n    if (newStateMap.size > 1) {\n      const state = Object.fromEntries(newStateMap.entries());\n      this.#sidebarService.toggle(state);\n    }\n  }\n\n  setInitialState(): void {\n    this.#stateInitial = {\n      narrow: this.#narrow(),\n      visible: this.#visible(),\n      unfoldable: this.unfoldable()\n    };\n    this.#sidebarService.toggle({\n      ...this.#stateInitial,\n      sidebar: this\n    });\n  }\n\n  private stateToggleSubscribe(subscribe: boolean = true): void {\n    if (subscribe) {\n      this.#stateToggleSubscription = this.#sidebarService.sidebarState$.subscribe((state) => {\n        if (this === state.sidebar || this.id() === state.id) {\n          this.sidebarState = { ...state };\n        }\n      });\n    } else {\n      this.#stateToggleSubscription?.unsubscribe();\n    }\n  }\n\n  layoutChangeSubscribe(subscribe: boolean = true): void {\n    const onMobile = `(max-width: ${this.getMobileBreakpoint})`;\n\n    if (subscribe) {\n      const layoutChanges = this.#breakpointObserver.observe([onMobile]);\n\n      this.#layoutChangeSubscription = layoutChanges.subscribe((result: BreakpointState) => {\n        const isOnMobile = result.breakpoints[onMobile];\n        const isUnfoldable = isOnMobile ? false : this.unfoldable();\n        if (this.#onMobile !== isOnMobile) {\n          this.#onMobile = isOnMobile;\n          this.#sidebarService.toggle({\n            mobile: isOnMobile,\n            unfoldable: isUnfoldable,\n            visible: isOnMobile ? !isOnMobile : this.#stateInitial.visible,\n            sidebar: this\n          });\n        }\n      });\n    } else {\n      this.#layoutChangeSubscription?.unsubscribe();\n    }\n  }\n}\n","import { Component, computed, input } from '@angular/core';\nimport { RouterLink, type UrlTree } from '@angular/router';\n\nimport { HtmlAttributesDirective } from '../../shared';\n\n@Component({\n  selector: 'c-sidebar-brand',\n  templateUrl: './sidebar-brand.component.html',\n  imports: [RouterLink, HtmlAttributesDirective],\n  host: { class: 'sidebar-brand' }\n})\nexport class SidebarBrandComponent {\n  readonly brandFull = input<any>();\n  readonly brandNarrow = input<any>();\n\n  readonly routerLink = input<string | any[] | UrlTree | null | undefined>();\n\n  readonly brandImg = computed(() => Boolean(this.brandFull() || this.brandNarrow()));\n}\n","@if (brandImg()) {\n  <a [routerLink]=\"routerLink()\">\n    @if (brandFull()) {\n      <img [cHtmlAttr]=\"brandFull()\" [class]=\"'sidebar-brand-full'\">\n    }\n    @if (brandNarrow()) {\n      <img [cHtmlAttr]=\"brandNarrow()\" [class]=\"'sidebar-brand-narrow'\">\n    }\n  </a>\n} @else {\n  <ng-content />\n}\n","import { Directive, inject, input } from '@angular/core';\n\nimport { SidebarService } from '../sidebar.service';\n\n/**\n * Allows the sidebar to be toggled/folded via click on host element.\n */\n@Directive({\n  selector: '[cSidebarToggle]',\n  exportAs: 'cSidebarToggle',\n  host: {\n    '(click)': 'toggleOpen($event)'\n  }\n})\nexport class SidebarToggleDirective {\n  readonly #sidebarService = inject(SidebarService);\n\n  /**\n   * Id of sidebar for toggle action.\n   * @return string\n   */\n  readonly id = input<string>(undefined, { alias: 'cSidebarToggle' });\n  /**\n   * Sidebar property name for toggle action.\n   *\n   * @return 'visible' | 'unfoldable'\n   * @default 'visible'\n   */\n  readonly toggle = input<'visible' | 'unfoldable'>('visible');\n\n  toggleOpen($event: any): void {\n    $event.preventDefault();\n    this.#sidebarService.toggle({ toggle: this.toggle(), id: this.id() });\n  }\n}\n","import { Directive, input } from '@angular/core';\nimport { SidebarToggleDirective } from '../sidebar-toggle/sidebar-toggle.directive';\n\n@Directive({\n  selector: '[cSidebarToggler]',\n  hostDirectives: [{ directive: SidebarToggleDirective, inputs: ['cSidebarToggle: cSidebarToggler', 'toggle'] }],\n  host: {\n    '[attr.role]': 'role()',\n    class: 'sidebar-toggler',\n    '[style]': 'getStyles'\n  }\n})\nexport class SidebarTogglerDirective {\n  readonly role = input('button');\n\n  get getStyles(): any {\n    return {\n      appearance: 'button',\n      'align-items': 'flex-start',\n      cursor: 'pointer'\n    };\n  }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n  selector: 'c-sidebar-header',\n  template: '<ng-content />',\n  host: { class: 'sidebar-header' }\n})\nexport class SidebarHeaderComponent {}\n","import { Component } from '@angular/core';\n\n@Component({\n  selector: 'c-sidebar-footer',\n  template: '<ng-content />',\n  host: { class: 'sidebar-footer' }\n})\nexport class SidebarFooterComponent {}\n","import { Injectable } from '@angular/core';\n\nimport { INavData } from './sidebar-nav';\n\n@Injectable()\nexport abstract class SidebarNavService {\n  /**\n   * Returns a sidebar-nav items config NavData\n   */\n  abstract getSidebarNavItemsConfig(): INavData[];\n}\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class SidebarNavHelper {\n  itemType(item: INavData): string {\n    if (item.divider) {\n      return 'divider';\n    } else if (item.title) {\n      return 'title';\n    } else if (item.children && item.children.length > 0) {\n      return 'group';\n    } else if (item.label) {\n      return 'label';\n    } else if (!Object.keys(item).length) {\n      return 'empty';\n    } else {\n      return 'link';\n    }\n  }\n\n  public isActive(router: any, item: INavData): boolean {\n    return router.isActive(item.url, false);\n  }\n\n  public hasBadge = (item: INavData) => Boolean(item?.badge);\n  public hasIcon = (item: INavData) => Boolean(item?.icon) || item?.icon === '';\n  public hasIconComponent = (item: INavData) => Boolean(item?.iconComponent);\n\n  public getIconClass(item: INavData): any {\n    const classes = {\n      'nav-icon': true\n    };\n    const icon = item.icon;\n    // @ts-ignore\n    classes[icon] = this.hasIcon(item);\n    return classes;\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\nimport { SidebarNavGroupComponent } from './sidebar-nav.component';\n\nexport interface ISidebarAction {\n  open?: boolean;\n  sidebarNavGroup?: SidebarNavGroupComponent;\n}\n\n@Injectable()\nexport class SidebarNavGroupService {\n  private sidebarNavGroupState = new BehaviorSubject<ISidebarAction>({});\n  sidebarNavGroupState$ = this.sidebarNavGroupState.asObservable();\n\n  toggle(action: ISidebarAction): void {\n    this.sidebarNavGroupState.next(action);\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'cSidebarNavIcon'\n})\nexport class SidebarNavIconPipe implements PipeTransform {\n  transform(item: any, args?: any): any {\n    const icon = item.icon;\n    return {\n      'nav-icon': true,\n      [`${icon}`]: !!icon\n    };\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'cSidebarNavBadge'\n})\nexport class SidebarNavBadgePipe implements PipeTransform {\n  transform(item: any, args?: any): any {\n    const badge = item.badge;\n    return {\n      badge: true,\n      'ms-auto': true,\n      'badge-sm': !badge.size,\n      [`badge-${badge.size}`]: !!badge.size,\n      [`bg-${badge.color}`]: !!badge.color,\n      [`${badge.class}`]: !!badge.class\n    };\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'cSidebarNavLink'\n})\nexport class SidebarNavLinkPipe implements PipeTransform {\n  transform(item: any): any {\n    const disabled = item?.attributes?.disabled;\n\n    return {\n      'nav-link': true,\n      disabled,\n      'btn-link': disabled,\n      [`nav-link-${item.variant}`]: !!item.variant\n    };\n  }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { Component, inject, input, OnDestroy, OnInit, output } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { NavigationEnd, Router, RouterModule } from '@angular/router';\nimport { Observable, Subscription } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\nimport { IconDirective } from '@coreui/icons-angular';\n// import {SidebarService} from '../sidebar.service';\nimport { HtmlAttributesDirective } from '../../shared';\nimport { SidebarNavHelper } from './sidebar-nav.service';\nimport { INavData } from './sidebar-nav';\nimport { SidebarNavLinkPipe } from './sidebar-nav-link.pipe';\nimport { SidebarNavBadgePipe } from './sidebar-nav-badge.pipe';\nimport { SidebarNavIconPipe } from './sidebar-nav-icon.pipe';\n\n@Component({\n  selector: 'c-sidebar-nav-link-content',\n  template: `\n    @let itemLinkContent = item();\n    @if (itemLinkContent) {\n      <ng-container>{{ itemLinkContent?.name ?? '' }}</ng-container>\n    }\n  `,\n  providers: [SidebarNavHelper]\n})\nexport class SidebarNavLinkContentComponent {\n  readonly helper = inject(SidebarNavHelper);\n\n  readonly item = input<INavData>({});\n}\n\n@Component({\n  selector: 'c-sidebar-nav-link',\n  templateUrl: './sidebar-nav-link.component.html',\n  providers: [SidebarNavHelper],\n  imports: [\n    RouterModule,\n    HtmlAttributesDirective,\n    IconDirective,\n    SidebarNavLinkContentComponent,\n    SidebarNavLinkPipe,\n    SidebarNavBadgePipe,\n    SidebarNavIconPipe,\n    NgTemplateOutlet\n  ]\n})\nexport class SidebarNavLinkComponent implements OnInit, OnDestroy {\n  readonly router = inject(Router);\n\n  readonly item = input<INavData>();\n\n  readonly linkClick = output();\n\n  public linkType!: string;\n  public href!: string;\n  public linkActive!: boolean;\n  private url!: string;\n\n  private navigationEndObservable: Observable<NavigationEnd>;\n  private navSubscription!: Subscription;\n\n  constructor() {\n    const router = this.router;\n\n    this.navigationEndObservable = router.events.pipe(\n      filter((event) => {\n        return event instanceof NavigationEnd;\n      }),\n      takeUntilDestroyed()\n    ) as Observable<NavigationEnd>;\n  }\n\n  ngOnInit(): void {\n    const item = this.item() ?? {};\n    this.url =\n      typeof item.url === 'string'\n        ? item.url\n        : this.router.serializeUrl(this.router.createUrlTree((item.url as any[]) ?? ['']));\n    this.linkType = this.getLinkType();\n    this.href = this.isDisabled() ? '' : item.href || this.url;\n    this.linkActive = this.router.url.split(/[?#(;]/)[0] === this.href.split(/[?#(;]/)[0];\n    this.navSubscription = this.navigationEndObservable.subscribe((event) => {\n      const itemUrlArray = this.href.split(/[?#(;]/)[0].split('/');\n      const urlArray = event.urlAfterRedirects.split(/[?#(;]/)[0].split('/');\n      this.linkActive = itemUrlArray.every((value, index) => value === urlArray[index]);\n    });\n  }\n\n  ngOnDestroy(): void {\n    this.navSubscription?.unsubscribe();\n  }\n\n  public getLinkType(): string {\n    return this.isDisabled() ? 'disabled' : this.isExternalLink() ? 'external' : 'link';\n  }\n\n  public isDisabled(): boolean {\n    return this.item()?.attributes?.['disabled'];\n  }\n\n  public isExternalLink(): boolean {\n    const item = this.item() ?? {};\n    const linkPath = Array.isArray(item.url) ? item.url[0] : item.url;\n    return !!item.href || linkPath?.substring(0, 4) === 'http';\n  }\n\n  linkClicked(): void {\n    this.linkClick?.emit();\n  }\n\n  // public hideMobile() {\n  //   // todo: proper scrollIntoView() after NavigationEnd\n  //   setTimeout(() => {\n  //     console.log('scroll')\n  //     this.hostElement.nativeElement.scrollIntoView();\n  //   }, 1000)\n  //   this.sidebarService.toggle({open: false, breakpoint: ''});\n  // }\n}\n","@let linkItem = item() ?? {};\n\n@switch (linkType) {\n  @case ('disabled') {\n    <a [cHtmlAttr]=\"linkItem.attributes ?? {}\" [class]=\"linkItem | cSidebarNavLink\">\n      <ng-container *ngTemplateOutlet=\"iconTemplate; context: {$implicit: linkItem}\" />\n      <c-sidebar-nav-link-content [item]=\"linkItem\" />\n      @if (linkItem.badge) {\n        <span [class]=\"linkItem | cSidebarNavBadge\">{{ linkItem.badge?.text }}</span>\n      }\n    </a>\n  }\n  @case ('external') {\n    <a (click)=\"linkClicked()\" [cHtmlAttr]=\"linkItem.attributes ?? {}\" [href]=\"href\" [class]=\"linkItem | cSidebarNavLink\">\n      <ng-container *ngTemplateOutlet=\"iconTemplate; context: {$implicit: linkItem}\" />\n      <c-sidebar-nav-link-content [item]=\"linkItem\" />\n      @if (linkItem.badge) {\n        <span [class]=\"linkItem | cSidebarNavBadge\">{{ linkItem.badge?.text }}</span>\n      }\n    </a>\n  }\n  @default {\n    <a (click)=\"linkClicked()\"\n       [cHtmlAttr]=\"linkItem.attributes ?? {}\"\n       [fragment]=\"linkItem.linkProps?.fragment\"\n       [class]=\"linkItem | cSidebarNavLink\"\n       [preserveFragment]=\"linkItem.linkProps?.preserveFragment ?? false\"\n       [queryParamsHandling]=\"linkItem.linkProps?.queryParamsHandling\"\n       [queryParams]=\"linkItem.linkProps?.queryParams ?? null\"\n       [replaceUrl]=\"linkItem.linkProps?.replaceUrl ?? false\"\n       [routerLinkActiveOptions]=\"linkItem.linkProps?.routerLinkActiveOptions ?? { exact: false }\"\n       [routerLink]=\"linkItem.url\"\n       [skipLocationChange]=\"linkItem.linkProps?.skipLocationChange ?? false\"\n       [state]=\"linkItem.linkProps?.state ?? {}\"\n       [target]=\"linkItem.attributes?.['target']\"\n       routerLinkActive=\"active\"\n    >\n      <!--    [class.active]=\"linkActive\"-->\n      <ng-container *ngTemplateOutlet=\"iconTemplate ; context: {$implicit: linkItem}\" />\n      <c-sidebar-nav-link-content [item]=\"linkItem\" />\n      @if (linkItem.badge) {\n        <span [class]=\"linkItem | cSidebarNavBadge\">{{ linkItem.badge?.text }}</span>\n      }\n    </a>\n  }\n}\n<ng-template #iconTemplate let-item>\n  <!--  <i *ngIf=\"item?.icon\" [class]=\"item | cSidebarNavIcon\"></i>-->\n  @if (item?.icon) {\n    <span class=\"nav-icon\">\n      <span [class]=\"item.icon ?? ''\"></span>\n    </span>\n  }\n  @if (item?.iconComponent) {\n    <svg\n      [cIcon]=\"item.iconComponent?.content\"\n      [customClasses]=\"item | cSidebarNavIcon\"\n      [name]=\"item.iconComponent?.name\"\n    ></svg>\n  }\n  @if (!item?.icon && !item?.iconComponent) {\n    <span [class]=\"item | cSidebarNavIcon\"></span>\n  }\n</ng-template>\n","import { Component, computed, inject, input } from '@angular/core';\n\nimport { HtmlAttributesDirective } from '../../shared';\nimport { SidebarNavHelper } from './sidebar-nav.service';\nimport { SidebarNavBadgePipe } from './sidebar-nav-badge.pipe';\nimport { INavData } from './sidebar-nav';\n\n@Component({\n  selector: 'c-sidebar-nav-label',\n  templateUrl: './sidebar-nav-label.component.html',\n  imports: [HtmlAttributesDirective, SidebarNavBadgePipe]\n})\nexport class SidebarNavLabelComponent {\n  readonly helper = inject(SidebarNavHelper);\n\n  readonly item = input<INavData>({});\n\n  readonly itemClass = computed(() => {\n    const classes: Record<string, boolean> = {\n      'c-nav-label': true,\n      'c-active': true\n    };\n    const itemClass = this.item().class;\n    if (itemClass) {\n      classes[itemClass] = !!itemClass;\n    }\n    return classes;\n  });\n\n  readonly labelIconClass = computed(() => {\n    const item = this.item();\n    const iconClasses: Record<string, boolean> = this.helper.getIconClass(item);\n    const variant = `text-${item.label?.variant}`;\n    iconClasses[variant] = !!item.label?.variant;\n    const labelClass = item.label?.class ?? '';\n    iconClasses[labelClass] = !!labelClass;\n    return iconClasses;\n  });\n}\n","@let labelItem = item();\n<a [cHtmlAttr]=\"labelItem.attributes\"\n   [class]=\"itemClass()\"\n   href=\"{{labelItem.url}}\">\n  @if (helper.hasIcon(labelItem)) {\n    <i [class]=\"labelIconClass()\"></i>\n  }\n  <ng-container>{{ labelItem.name }}</ng-container>\n  @if (helper.hasBadge(labelItem)) {\n    <span [class]=\"labelItem | cSidebarNavBadge\">{{ labelItem.badge?.text ?? '' }}</span>\n  }\n</a>\n","import { Component, effect, ElementRef, inject, input, Renderer2 } from '@angular/core';\nimport { INavData } from './sidebar-nav';\n\n@Component({\n  selector: 'c-sidebar-nav-title',\n  template: ''\n})\nexport class SidebarNavTitleComponent {\n  readonly #elementRef = inject(ElementRef);\n  readonly #renderer = inject(Renderer2);\n\n  readonly item = input<INavData>();\n\n  readonly #itemEffect = effect(() => {\n    const item = this.item();\n    if (item?.name) {\n      const nativeElement: HTMLElement = this.#elementRef.nativeElement;\n      const name = this.#renderer.createText(item.name);\n\n      if (item?.class) {\n        const classes = item.class;\n        this.#renderer.addClass(nativeElement, classes);\n      }\n\n      if (item?.wrapper) {\n        const wrapper = this.#renderer.createElement(item.wrapper.element);\n        this.addAttribs(item.wrapper.attributes, wrapper);\n        this.#renderer.appendChild(wrapper, name);\n        this.#renderer.appendChild(nativeElement, wrapper);\n      } else {\n        this.#renderer.appendChild(nativeElement, name);\n      }\n    }\n  });\n\n  private addAttribs(attribs: { [x: string]: any }, element: HTMLElement): void {\n    if (attribs) {\n      for (const attr in attribs) {\n        if (attr === 'style' && typeof attribs[attr] === 'object') {\n          this.setStyle(attribs[attr], element);\n        } else if (attr === 'class') {\n          this.addClass(attribs[attr], element);\n        } else {\n          this.setAttrib(attr, attribs[attr], element);\n        }\n      }\n    }\n  }\n\n  private setStyle(styles: { [x: string]: any }, el: any): void {\n    for (const style in styles) {\n      if (style) {\n        this.#renderer.setStyle(el, style, styles[style]);\n      }\n    }\n  }\n\n  private addClass(classes: string | string[], el: any): void {\n    const classArray = Array.isArray(classes) ? classes : classes.split(' ');\n    classArray\n      .filter((element) => element.length > 0)\n      .forEach((element) => {\n        this.#renderer.addClass(el, element);\n      });\n  }\n\n  private setAttrib(key: string, value: string, el: any): void {\n    this.#renderer.setAttribute(el, key, value);\n  }\n}\n","import { Component, input } from '@angular/core';\nimport { INavData } from './sidebar-nav';\n\n@Component({\n  selector: 'c-sidebar-nav-divider',\n  template: ``\n})\nexport class SidebarNavDividerComponent {\n  readonly item = input<INavData>();\n}\n","import { inject, Pipe, PipeTransform } from '@angular/core';\n\nimport { SidebarNavHelper } from './sidebar-nav.service';\n\n@Pipe({\n  name: 'cSidebarNavItemClass'\n})\nexport class SidebarNavItemClassPipe implements PipeTransform {\n  readonly helper = inject(SidebarNavHelper);\n\n  // transform(item: any, ...args: any[]): any {\n  transform(item: any, args?: any[]): any {\n    const itemType = this.helper.itemType(item);\n    let itemClass;\n    if (['divider', 'title'].includes(itemType)) {\n      itemClass = `nav-${itemType}`;\n    } else if (itemType === 'group') {\n      // itemClass = 'c-sidebar-nav-group' ;\n      itemClass = '';\n    } else {\n      itemClass = 'nav-item';\n    }\n    return item.class ? `${itemClass} ${item.class}` : itemClass;\n  }\n}\n","import { animate, AnimationEvent, state, style, transition, trigger } from '@angular/animations';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n  booleanAttribute,\n  Component,\n  computed,\n  ElementRef,\n  forwardRef,\n  inject,\n  input,\n  OnChanges,\n  OnDestroy,\n  OnInit,\n  Renderer2,\n  signal,\n  SimpleChanges,\n  viewChild\n} from '@angular/core';\nimport { NavigationEnd, Router, RouterModule } from '@angular/router';\nimport { Observable, Subscription } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\nimport { SidebarService } from '../sidebar.service';\nimport { SidebarComponent } from '../sidebar/sidebar.component';\nimport { INavData } from './sidebar-nav';\nimport { SidebarNavHelper } from './sidebar-nav.service';\nimport { SidebarNavGroupService } from './sidebar-nav-group.service';\nimport { HtmlAttributesDirective } from '../../shared';\nimport { SidebarNavIconPipe } from './sidebar-nav-icon.pipe';\nimport { SidebarNavBadgePipe } from './sidebar-nav-badge.pipe';\nimport { SidebarNavLinkComponent } from './sidebar-nav-link.component';\nimport { SidebarNavLabelComponent } from './sidebar-nav-label.component';\nimport { SidebarNavTitleComponent } from './sidebar-nav-title.component';\nimport { SidebarNavDividerComponent } from './sidebar-nav-divider.component';\nimport { SidebarNavItemClassPipe } from './sidebar-nav-item-class.pipe';\nimport { IconDirective } from '@coreui/icons-angular';\n\n@Component({\n  selector: 'c-sidebar-nav-group',\n  templateUrl: './sidebar-nav-group.component.html',\n  styleUrls: ['./sidebar-nav-group.component.scss'],\n  providers: [SidebarNavHelper, SidebarNavGroupService],\n  imports: [\n    HtmlAttributesDirective,\n    IconDirective,\n    NgTemplateOutlet,\n    SidebarNavIconPipe,\n    SidebarNavBadgePipe,\n    forwardRef(() => SidebarNavComponent)\n  ],\n  animations: [\n    trigger('openClose', [\n      state(\n        'open',\n        style({\n          height: '*'\n        })\n      ),\n      state(\n        'closed',\n        style({\n          height: '0px'\n        })\n      ),\n      transition('open <=> closed', [animate('.15s ease')])\n    ])\n  ],\n  host: {\n    '[class]': 'hostClasses()'\n  }\n})\nexport class SidebarNavGroupComponent implements OnInit, OnDestroy {\n  readonly #router = inject(Router);\n  readonly #renderer = inject(Renderer2);\n  readonly #hostElement = inject(ElementRef);\n  readonly #sidebarNavGroupService = inject(SidebarNavGroupService);\n  public readonly helper = inject(SidebarNavHelper);\n\n  constructor() {\n    const router = this.#router;\n\n    this.navigationEndObservable = router.events.pipe(\n      filter((event: any) => event instanceof NavigationEnd)\n    ) as Observable<NavigationEnd>;\n  }\n\n  readonly item = input<INavData>();\n  readonly dropdownMode = input<'path' | 'none' | 'close'>('path');\n  readonly show = input<boolean>();\n  readonly compact = input<boolean, unknown>(undefined, { transform: booleanAttribute });\n\n  readonly hostClasses = computed(() => {\n    return {\n      'nav-group': true,\n      show: this.open()\n    };\n  });\n\n  readonly sidebarNav = viewChild.required(\n    forwardRef(() => SidebarNavComponent),\n    { read: ElementRef }\n  );\n\n  navigationEndObservable: Observable<NavigationEnd>;\n  navSubscription!: Subscription;\n  navGroupSubscription!: Subscription;\n\n  readonly open = signal<boolean | undefined>(undefined);\n  readonly navItems = signal<INavData[]>([]);\n  readonly display = signal<any>({ display: 'block' });\n\n  ngOnInit(): void {\n    this.navItems.set([...(this.item()?.children ?? [])]);\n\n    this.navSubscription = this.navigationEndObservable.subscribe((event: NavigationEnd) => {\n      if (this.dropdownMode() !== 'none') {\n        const samePath = this.samePath(event.url);\n        this.openGroup(samePath);\n      }\n    });\n\n    if (this.samePath(this.#router.routerState.snapshot.url)) {\n      this.openGroup(true);\n    }\n\n    this.navGroupSubscription = this.#sidebarNavGroupService.sidebarNavGroupState$.subscribe((next) => {\n      if (this.dropdownMode() === 'close' && next.sidebarNavGroup && next.sidebarNavGroup !== this) {\n        const url = next.sidebarNavGroup.item()?.url ?? [];\n        const normUrl = Array.isArray(url) ? this.#router.createUrlTree(url).toString() : url;\n        const itemUrl = this.item()?.url ?? [];\n        const normItemUrl = Array.isArray(normUrl) ? this.#router.createUrlTree(normUrl).toString() : normUrl;\n        if (normUrl.startsWith(normItemUrl)) {\n          return;\n        }\n        if (this.samePath(this.#router.routerState.snapshot.url)) {\n          this.openGroup(true);\n          return;\n        }\n        this.openGroup(false);\n      }\n    });\n  }\n\n  samePath(url: string): boolean {\n    // console.log('item:', this.item.name, this.item.url, 'url:', url);\n    const itemUrl = this.item()?.url ?? [];\n    const itemArray = Array.isArray(itemUrl) ? itemUrl : itemUrl.split('/');\n    const urlArray = url.split('/');\n    return itemArray?.every((value: string, index: number) => {\n      // console.log(value === urlArray[index], 'value:', value, 'index:', index, urlArray[index], url);\n      return value === urlArray[index];\n    });\n  }\n\n  openGroup(open: boolean): void {\n    this.open.set(open);\n  }\n\n  toggleGroup($event: any): void {\n    $event.preventDefault();\n    this.openGroup(!this.open());\n    if (this.open()) {\n      this.#sidebarNavGroupService.toggle({ open: this.open(), sidebarNavGroup: this });\n    }\n  }\n\n  ngOnDestroy(): void {\n    this.navSubscription?.unsubscribe();\n  }\n\n  onAnimationStart($event: AnimationEvent) {\n    this.display.set({ display: 'block' });\n    setTimeout(() => {\n      const host = this.sidebarNav()?.nativeElement;\n      if ($event.toState === 'open' && host) {\n        this.#renderer.setStyle(host, 'height', `${host['scrollHeight']}px`);\n      }\n    });\n  }\n\n  onAnimationDone($event: AnimationEvent) {\n    setTimeout(() => {\n      const host = this.sidebarNav()?.nativeElement;\n      if ($event.toState === 'open' && host) {\n        this.#renderer.setStyle(host, 'height', 'auto');\n      }\n      if ($event.toState === 'closed') {\n        setTimeout(() => {\n          this.display.set(null);\n        });\n      }\n    });\n  }\n}\n\n@Component({\n  selector: 'c-sidebar-nav',\n  templateUrl: './sidebar-nav.component.html',\n  imports: [\n    HtmlAttributesDirective,\n    SidebarNavLinkComponent,\n    SidebarNavLabelComponent,\n    SidebarNavTitleComponent,\n    SidebarNavDividerComponent,\n    forwardRef(() => SidebarNavGroupComponent),\n    SidebarNavItemClassPipe,\n    RouterModule\n  ],\n  host: {\n    '[class]': 'hostClasses()',\n    '[attr.role]': 'role()'\n  }\n})\nexport class SidebarNavComponent implements OnChanges {\n  readonly sidebar = inject(SidebarComponent, { optional: true });\n  readonly helper = inject(SidebarNavHelper);\n  readonly router = inject(Router);\n  readonly #renderer = inject(Renderer2);\n  readonly #hostElement = inject(ElementRef);\n  readonly #sidebarService = inject(SidebarService);\n\n  readonly navItems = input<INavData[] | undefined>([]);\n  readonly dropdownMode = input<'path' | 'none' | 'close'>('path');\n  readonly groupItems = input<boolean, unknown>(undefined, { transform: booleanAttribute });\n  readonly compact = input<boolean, unknown>(undefined, { transform: booleanAttribute });\n  readonly role = input('navigation');\n\n  readonly hostClasses = computed(() => {\n    const groupItems = this.groupItems();\n    return {\n      'sidebar-nav': !groupItems,\n      'nav-group-items': groupItems,\n      compact: groupItems && this.compact()\n    };\n  });\n\n  // @HostBinding('class.nav-group-items')\n  // get sidebarNavGroupItemsClass(): boolean {\n  //   return !!this.groupItems;\n  // }\n\n  readonly navItemsArray = signal<INavData[]>([]);\n\n  public ngOnChanges(changes: SimpleChanges): void {\n    const navItems = this.navItems();\n    this.navItemsArray.set(Array.isArray(navItems) ? navItems.slice() : []);\n  }\n\n  public hideMobile(): void {\n    // todo: proper scrollIntoView() after NavigationEnd\n    if (this.sidebar && this.sidebar.sidebarState.mobile) {\n      this.#sidebarService.toggle({ toggle: 'visible', sidebar: this.sidebar });\n    }\n  }\n}\n","@let grpItem = item();\n<a (click)=\"toggleGroup($event)\"\n   [cHtmlAttr]=\"grpItem?.attributes\"\n   class=\"nav-link nav-group-toggle\"\n   href>\n  <ng-container *ngTemplateOutlet=\"iconTemplate ; context: {$implicit: grpItem}\" />\n  <ng-container>{{ grpItem?.name }}</ng-container>\n  @if (grpItem?.badge) {\n    <span [class]=\"grpItem | cSidebarNavBadge\">{{ grpItem?.badge?.text }}</span>\n  }\n</a>\n<c-sidebar-nav\n  (@openClose.done)=\"onAnimationDone($event)\"\n  (@openClose.start)=\"onAnimationStart($event)\"\n  [@openClose]=\"open() ? 'open' : 'closed'\"\n  [compact]=\"compact()\"\n  [dropdownMode]=\"dropdownMode()\"\n  [groupItems]=\"true\"\n  [navItems]=\"navItems()\"\n  [style]=\"display()\"\n/>\n\n<ng-template #iconTemplate let-item>\n  <!--  <i *ngIf=\"item?.icon\" [class]=\"item | cSidebarNavIcon\"></i>-->\n  @if (item?.icon) {\n    <span class=\"nav-icon\">\n    <span [class]=\"item.icon ?? ''\"></span>\n  </span>\n  }\n  @if (item?.iconComponent) {\n    <svg\n      [cIcon]=\"item.iconComponent?.content\"\n      [customClasses]=\"item | cSidebarNavIcon\"\n      [name]=\"item.iconComponent?.name\"\n    />\n  }\n  @if (!item?.icon && !item?.iconComponent) {\n    <span [class]=\"item | cSidebarNavIcon\"></span>\n  }\n</ng-template>\n","@for (nItem of navItemsArray(); track nItem) {\n  @switch (helper.itemType(nItem)) {\n    @case ('group') {\n      <c-sidebar-nav-group\n        #rla=\"routerLinkActive\"\n        [dropdownMode]=\"dropdownMode()\"\n        [item]=\"nItem\"\n        [class]=\"nItem | cSidebarNavItemClass\"\n        [routerLinkActiveOptions]=\"{exact: true}\"\n        routerLinkActive=\"show\"\n        [compact]=\"compact()\"\n      />\n    }\n    @case ('divider') {\n      <c-sidebar-nav-divider\n        [cHtmlAttr]=\"nItem.attributes ?? {}\"\n        [item]=\"nItem\"\n        [class]=\"nItem | cSidebarNavItemClass\"\n      />\n    }\n    @case ('title') {\n      <c-sidebar-nav-title\n        [cHtmlAttr]=\"nItem.attributes ?? {}\"\n        [item]=\"nItem\"\n        [class]=\"nItem | cSidebarNavItemClass\"\n      />\n    }\n    @case ('label') {\n      <c-sidebar-nav-label\n        [item]=\"nItem\"\n        [class]=\"nItem | cSidebarNavItemClass\"\n      />\n    }\n    @case ('empty') {\n      <ng-container />\n    }\n    @default {\n      <c-sidebar-nav-link\n        (linkClick)=\"hideMobile()\"\n        [item]=\"nItem\"\n        [class]=\"nItem | cSidebarNavItemClass\"\n      />\n    }\n  }\n}\n<ng-content />\n","import { NgModule } from '@angular/core';\n\nimport { SidebarComponent } from './sidebar/sidebar.component';\nimport { SidebarService } from './sidebar.service';\nimport { SidebarBrandComponent } from './sidebar-brand/sidebar-brand.component';\nimport { SidebarToggleDirective } from './sidebar-toggle/sidebar-toggle.directive';\nimport { SidebarTogglerDirective } from './sidebar-toggler/sidebar-toggler.directive';\nimport { SidebarHeaderComponent } from './sidebar-header/sidebar-header.component';\nimport { SidebarFooterComponent } from './sidebar-footer/sidebar-footer.component';\nimport { SidebarNavGroupService } from './sidebar-nav/sidebar-nav-group.service';\n\nimport {\n  SidebarNavBadgePipe,\n  SidebarNavComponent,\n  SidebarNavDividerComponent,\n  SidebarNavGroupComponent,\n  SidebarNavHelper,\n  SidebarNavIconPipe,\n  SidebarNavItemClassPipe,\n  SidebarNavLabelComponent,\n  SidebarNavLinkComponent,\n  SidebarNavLinkContentComponent,\n  SidebarNavLinkPipe,\n  SidebarNavTitleComponent\n} from './sidebar-nav';\n\n@NgModule({\n  imports: [\n    SidebarComponent,\n    SidebarBrandComponent,\n    SidebarFooterComponent,\n    SidebarHeaderComponent,\n    SidebarNavComponent,\n    SidebarNavBadgePipe,\n    SidebarNavDividerComponent,\n    SidebarNavGroupComponent,\n    SidebarNavIconPipe,\n    SidebarNavItemClassPipe,\n    SidebarNavLabelComponent,\n    SidebarNavLinkComponent,\n    SidebarNavLinkContentComponent,\n    SidebarNavLinkPipe,\n    SidebarNavTitleComponent,\n    SidebarToggleDirective,\n    SidebarTogglerDirective\n  ],\n  exports: [\n    SidebarComponent,\n    SidebarToggleDirective,\n    SidebarTogglerDirective,\n    SidebarBrandComponent,\n    SidebarNavComponent,\n    SidebarHeaderComponent,\n    SidebarFooterComponent\n  ],\n  providers: [\n    SidebarService,\n    SidebarNavHelper,\n    SidebarNavGroupService\n  ]\n})\nexport class SidebarModule {}\n","import { Component, computed, input, linkedSignal, numberAttribute, output, TemplateRef } from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\n\nimport { PageItemDirective, PageLinkDirective } from '../pagination';\n\n@Component({\n  selector: 'c-smart-pagination',\n  templateUrl: './smart-pagination.component.html',\n  exportAs: 'cSmartPagination',\n  imports: [PageItemDirective, PageLinkDirective, NgTemplateOutlet],\n  host: {\n    '[attr.role]': 'role()'\n  }\n})\nexport class SmartPaginationComponent {\n  /**\n   * Current page number.\n   * @default 1\n   * @returns number\n   */\n  readonly activePageInput = input<number, unknown>(1, { transform: numberAttribute, alias: 'activePage' });\n\n  readonly activePage = linkedSignal(this.activePageInput);\n\n  /**\n   * Event triggered on activePage change.\n   * @return number\n   */\n  readonly activePageChange = output<number>();\n\n  /**\n   * Show/hide arrows\n   * @default true\n   * @returns boolean\n   */\n  readonly arrows = input<boolean>(true);\n\n  /**\n   * Show double arrows buttons\n   * @default true\n   * @returns boolean\n   */\n  readonly doubleArrows = input<boolean>(true);\n\n  /**\n   * Show/hide dots.\n   * @default true\n   * returns boolean\n   */\n  readonly dots = input<boolean>(true);\n\n  /**\n   * Maximum items number.\n   * @default 5\n   * @return number\n   */\n  readonly limit = input<number, unknown>(5, { transform: numberAttribute });\n\n  /**\n   * Number of pages.\n   * @default 1\n   * @return number\n   */\n  readonly pages = input<number, unknown>(1, { transform: numberAttribute });\n\n  /**\n   * The content of 'firstButton' button.\n   * @default '&laquo'\n   */\n  readonly firstButton = input<(string | TemplateRef<any>) | undefined>('«');\n\n  protected readonly firstBtnRef = computed(() => {\n    const firstBtn = this.firstButton();\n    return firstBtn instanceof TemplateRef ? firstBtn : undefined;\n  });\n\n  /**\n   * The content of 'lastButton' button.\n   * @default '&raquo'\n   */\n  readonly lastButton = input<(string | TemplateRef<any>) | undefined>('»');\n\n  protected readonly lastBtnRef = computed(() => {\n    const lastBtn = this.lastButton();\n    return lastBtn instanceof TemplateRef ? lastBtn : undefined;\n  });\n\n  /**\n   * The content of 'nextButton' button.\n   * @default '&lsaquo'\n   */\n  readonly nextButton = input<(string | TemplateRef<any>) | undefined>('›');\n\n  protected readonly nextBtnRef = computed(() => {\n    const nextBtn = this.nextButton();\n    return nextBtn instanceof TemplateRef ? nextBtn : undefined;\n  });\n\n  /**\n   * The content of 'previousButton' button.\n   * @default '&rsaquo'\n   */\n  readonly previousButton = input<(string | TemplateRef<any>) | undefined>('‹');\n\n  protected readonly prevBtnRef = computed(() => {\n    const prevBtn = this.previousButton();\n    return prevBtn instanceof TemplateRef ? prevBtn : undefined;\n  });\n\n  /**\n   * Set the alignment of pagination components.\n   * @values 'start', 'center', 'end'\n   */\n  readonly align = input<('start' | 'center' | 'end' | '') | undefined>('start');\n\n  /**\n   * Size the component small or large.\n   * @values 'sm', 'lg'\n   */\n  readonly size = input<'' | 'sm' | 'lg' | string>();\n\n  /**\n   * Default role for pagination.\n   * @return string\n   * @default 'navigation'\n   */\n  readonly role = input<string>('navigation');\n\n  readonly paginationClass = computed(() => {\n    const align = this.align();\n    const size = this.size();\n\n    return {\n      pagination: true,\n      [`pagination-${size}`]: !!size,\n      [`justify-content-${align}`]: !!align\n    } as Record<string, boolean>;\n  });\n\n  readonly maxPrevItems = computed(() => {\n    return Math.floor((this.limit() - 1) / 2);\n  });\n\n  readonly maxNextItems = computed(() => {\n    return Math.ceil((this.limit() - 1) / 2);\n  });\n\n  readonly range = computed(() => {\n    return this.activePage() + this.maxNextItems();\n  });\n\n  readonly lastItem = computed(() => {\n    const range = this.range();\n    const pages = this.pages();\n    return range >= pages ? pages : range - (this.afterDots() ? 1 : 0);\n  });\n\n  readonly computedLimit = computed(() => {\n    return this.limit() - (this.afterDots() ? 1 : 0) - (this.beforeDots() ? 1 : 0);\n  });\n\n  readonly itemsLimit = computed(() => {\n    const pages = this.pages();\n    return pages < this.computedLimit() ? pages : this.computedLimit();\n  });\n\n  readonly showDots = computed(() => {\n    const limit = this.limit();\n    return this.dots() && limit > 4 && limit < this.pages();\n  });\n\n  readonly beforeDots = computed(() => {\n    return this.showDots() && this.activePage() > this.maxPrevItems() + 1;\n  });\n\n  readonly afterDots = computed(() => {\n    return this.showDots() && this.activePage() < this.pages() - this.maxNextItems();\n  });\n\n  readonly items = computed<number[]>(() => {\n    const itemsLimit = this.itemsLimit();\n    if (this.activePage() - this.maxPrevItems() <= 1) {\n      return Array.from(\n        {\n          length: itemsLimit\n        },\n        (_item, i) => i + 1\n      );\n    } else {\n      return Array.from(\n        {\n          length: itemsLimit\n        },\n        (_item, i) => this.lastItem() - i\n      ).reverse();\n    }\n  });\n\n  setPage(page: number) {\n    if (page !== this.activePage()) {\n      this.activePage.set(page);\n      this.activePageChange.emit(page);\n    }\n  }\n}\n","@let activePg = activePage();\n@let arrow = arrows();\n@let dblArrows = doubleArrows();\n@let pageCnt = pages();\n\n<ul [class]=\"paginationClass()\">\n  @if (dblArrows) {\n    <li cPageItem>\n      <button\n        (click)=\"setPage(1)\"\n        [disabled]=\"activePg === 1\"\n        [class.disabled]=\"activePg === 1\"\n        aria-label=\"First page\"\n        cPageLink\n      >\n        <ng-container *ngTemplateOutlet=\"firstBtnRef() || firstBtn\" />\n      </button>\n    </li>\n  }\n  @if (arrow) {\n    <li cPageItem>\n      <button\n        (click)=\"setPage(activePg - 1)\"\n        [disabled]=\"activePg === 1\"\n        [class.disabled]=\"activePg === 1\"\n        aria-label=\"Previous page\"\n        cPageLink\n      >\n        <ng-container *ngTemplateOutlet=\"prevBtnRef() || prevBtn\" />\n      </button>\n    </li>\n  }\n  @if (beforeDots()) {\n    <li cPageItem disabled>\n      <a cPageLink disabled role=\"separator\">\n        ...\n      </a>\n    </li>\n  }\n  @for (item of items(); track (item).toString(); let i = $index) {\n    <li [active]=\"activePg === item\" cPageItem>\n      <button\n        (click)=\"setPage(item)\"\n        [title]=\"(activePg === item ? 'Current page ' : 'Go to page ') + (item).toString()\"\n        cPageLink\n      >\n        {{ item }}\n      </button>\n    </li>\n  }\n  @if (afterDots()) {\n    <li cPageItem disabled>\n      <a cPageLink disabled role=\"separator\">\n        ...\n      </a>\n    </li>\n  }\n  @if (arrow) {\n    <li cPageItem>\n      <button\n        (click)=\"setPage(activePg + 1)\"\n        [disabled]=\"activePg === pageCnt\"\n        [class.disabled]=\"activePg === pageCnt\"\n        aria-label=\"Next page\"\n        cPageLink\n      >\n        <ng-container *ngTemplateOutlet=\"nextBtnRef() || nextBtn\" />\n      </button>\n    </li>\n  }\n  @if (dblArrows) {\n    <li cPageItem>\n      <button\n        (click)=\"setPage(pageCnt)\"\n        [disabled]=\"activePg === pageCnt\"\n        [class.disabled]=\"activePg === pageCnt\"\n        aria-label=\"Last page\"\n        cPageLink\n      >\n        <ng-container *ngTemplateOutlet=\"lastBtnRef() || lastBtn\" />\n      </button>\n    </li>\n  }\n</ul>\n\n<ng-template #firstBtn>\n  <span aria-hidden=\"true\">{{ firstButton() }}</span>\n</ng-template>\n\n<ng-template #prevBtn>\n  <span aria-hidden=\"true\">{{ previousButton() }}</span>\n</ng-template>\n\n<ng-template #nextBtn>\n  <span aria-hidden=\"true\">{{ nextButton() }}</span>\n</ng-template>\n\n<ng-template #lastBtn>\n  <span aria-hidden=\"true\">{{ lastButton() }}</span>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { SmartPaginationComponent } from './smart-pagination.component';\n\n@NgModule({\n  exports: [SmartPaginationComponent],\n  imports: [SmartPaginationComponent]\n})\nexport class SmartPaginationModule {\n}\n","import {\n  AfterViewInit,\n  DestroyRef,\n  Directive,\n  effect,\n  ElementRef,\n  inject,\n  input,\n  linkedSignal,\n  output,\n  signal,\n  untracked\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { debounceTime, fromEvent, map } from 'rxjs';\nimport { IColumn } from '../smart-table.type';\n\n@Directive({\n  selector: '[cFilterInput]',\n  exportAs: 'cFilterInput',\n  standalone: true\n})\nexport class FilterInputDirective implements AfterViewInit {\n  readonly #elementRef = inject(ElementRef);\n  readonly #destroyRef = inject(DestroyRef);\n\n  #value = '';\n\n  readonly emitObject = signal<{ value: string; type?: string; column?: string | IColumn }>({\n    value: '',\n    type: '',\n    column: ''\n  });\n\n  readonly delay = input(300);\n  readonly onEvent = input<'change' | 'input'>('input');\n\n  readonly valueInput = input<string>('', { alias: 'value' });\n  readonly value = linkedSignal(this.valueInput);\n\n  readonly #valueEffect = effect(() => {\n    const value = this.value();\n    if (this.#value !== value) {\n      untracked(() => {\n        this.#value = this.value();\n        this.emitObject.update((emitObj) => ({ ...emitObj, value: value, type: this.onEvent() }));\n        this.valueChange.emit({ ...this.emitObject() });\n      });\n    }\n  });\n\n  readonly valueChange = output<any>();\n\n  ngAfterViewInit(): void {\n    this.setSubscription();\n  }\n\n  private setSubscription() {\n    const dueTime = this.onEvent() === 'change' ? 0 : this.delay();\n\n    fromEvent<Event>(this.#elementRef.nativeElement, this.onEvent())\n      .pipe(\n        map((event) => {\n          return (event.target as HTMLInputElement).value;\n        }),\n        debounceTime(dueTime),\n        takeUntilDestroyed(this.#destroyRef)\n      )\n      .subscribe((value) => {\n        if (value !== this.#value) {\n          this.value.set(value);\n        }\n      });\n  }\n}\n","import { ChangeDetectionStrategy, Component, computed, inject, input } from '@angular/core';\n\nimport { FormControlDirective, FormLabelDirective } from '../../form';\nimport { FilterInputDirective } from './filter-input.directive';\n\n@Component({\n  selector: 'c-smart-table-filter',\n  templateUrl: './smart-table-filter.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  imports: [FormControlDirective, FormLabelDirective],\n  host: {\n    class: 'row mb-2'\n  }\n  // hostDirectives: [\n  //   {\n  //     directive: FilterInputDirective,\n  //     inputs: ['value', 'delay', 'onEvent'],\n  //     outputs: ['valueChange']\n  //   }\n  // ]\n})\nexport class SmartTableFilterComponent {\n  readonly #filterInputDirective = inject(FilterInputDirective);\n  readonly value = this.#filterInputDirective.value;\n\n  readonly filterLabel = input('Filter:');\n  readonly filterPlaceholder = input('Filter');\n  readonly sizing = input<'sm' | 'lg'>();\n\n  readonly labelClasses = computed(() => {\n    const sizing = this.sizing();\n    return {\n      'col-form-label': true,\n      [`col-form-label-${sizing}`]: !!sizing\n    } as Record<string, boolean>;\n  });\n}\n","@let filterLbl = filterLabel();\n@if (!!filterLbl) {\n  <label [class]=\"labelClasses()\" cLabel=\"col\" class=\"col-auto\">\n    {{ filterLbl }}\n  </label>\n}\n<div class=\"col-auto\">\n  <input\n    [placeholder]=\"filterPlaceholder()\"\n    [sizing]=\"sizing()\"\n    [value]=\"value()\"\n    autocomplete=\"off\"\n    cFormControl\n    size=\"10\"\n  />\n</div>\n","import { IColumn, IGroup, IItem, ISorter } from './smart-table.type';\n\nexport const getClickedColumnName = (\n  target: HTMLTextAreaElement,\n  columnNames: string[],\n  selectable: boolean\n): string => {\n\n  const closest = target.closest('tr');\n  const children = closest ? Array.from(closest.children) : [];\n  const clickedCell = children.filter((child) => child.contains(target))[0];\n  return columnNames[children.indexOf(clickedCell) - (selectable ? 1 : 0)];\n};\n\nexport const getColumnKey = (column: IColumn | string) =>\n  typeof column === 'object' ? (column.key ?? column.group) : column;\n\nexport const getColumnLabel = (column: IColumn | string) =>\n  typeof column === 'object' && column.label !== undefined ? column.label : prettifyName(getColumnKey(column));\n\nexport const getColumnName = getColumnKey;\n\nexport const getColumnNames = (columns: (string | IColumn)[] | undefined, items: IItem[]): string[] => {\n  if (columns?.length) {\n    const _columns: string[] = [];\n\n    for (const column of columns) {\n      if (typeof column === 'object' && column.children) {\n        _columns.push(...getColumnNames(column.children, []));\n        continue;\n      }\n\n      typeof column === 'object' ? _columns.push(column.key) : _columns.push(column);\n    }\n\n    return _columns;\n  }\n\n  return getColumnNamesFromItems(items);\n};\n\nexport const getColumns = (_columns: (IColumn | IGroup)[]): IColumn[] => {\n  const columns: IColumn[] = [];\n\n  for (const column of _columns) {\n    if (typeof column === 'object' && column.group && column.children) {\n      columns.push(...getColumns(column.children));\n      continue;\n    }\n\n    if (typeof column === 'object' && column.children) {\n      columns.push(...getColumns(column.children));\n    }\n\n    columns.push(column);\n  }\n\n  return columns;\n};\n\nexport const countColumns = (columns: IColumn[], counter = 0) => {\n  let _counter = counter;\n  for (const column of columns) {\n    if (!column.children) {\n      _counter++;\n    }\n\n    if (column.children) {\n      _counter = countColumns(column.children, _counter);\n    }\n  }\n\n  return _counter;\n};\n\nexport const getColumnGroups = (columns: (string | IColumn)[] | undefined): IGroup[][] => {\n  const groups: IGroup[][] = [];\n\n  const traverseColumns = (column: IColumn, deep = 0, colSpan = 0): IGroup[] => {\n    const groups = [];\n\n    if (column.children) {\n      for (const _column of column.children) {\n        if (!_column.group) {\n          colSpan++;\n        }\n        groups.push(...traverseColumns(_column, deep + 1, colSpan));\n      }\n    }\n\n    if (typeof column === 'object' && column.group) {\n      const { children, group, ...rest } = column;\n      groups.push({\n        deep: deep,\n        label: group,\n        ...(children && { colspan: countColumns(children) }),\n        ...rest\n      });\n    }\n\n    return groups as IGroup[];\n  };\n\n  if (columns) {\n    for (const column of columns) {\n      if (typeof column === 'object' && column.group) {\n        const objects = traverseColumns(column);\n\n        if (objects) {\n          for (const object of objects) {\n            const { deep, ...rest } = object;\n\n            if (deep === undefined) {\n              continue;\n            }\n\n            for (let i = 0; i < deep; i++) {\n              if (groups[i]) {\n                continue;\n              }\n\n              groups.push([]);\n            }\n\n            if (groups[deep]) {\n              groups[deep].push(rest);\n            } else {\n              groups.push([rest]);\n            }\n          }\n        }\n      }\n    }\n  }\n  return groups as IGroup[][];\n};\n\nexport const getColumnNamesFromItems = (items: IItem[]) =>\n  Object.keys(items[0] || {}).filter((el) => el.charAt(0) !== '_');\n\nexport const getColumnValues = (items: IItem[], key: string) => {\n  return items.map((item) => item[key]);\n};\n\nexport const convertNgClassToObj = (\n  value: string | string[] | Set<string> | { [klass: string]: any } | null | undefined\n): Record<string, boolean> => {\n\n  const WS_REGEXP = /\\s+/;\n  const rawClass = typeof value === 'string' ? value.trim().split(WS_REGEXP) : value;\n  const objClass: Record<string, boolean> = {};\n\n  if (Array.isArray(rawClass) || rawClass instanceof Set) {\n    for (const klass of rawClass) {\n      objClass[klass] = true;\n    }\n    return objClass;\n  }\n  return (rawClass ?? {}) as Record<string, boolean>;\n};\n\nexport const getTableDataCellClass = (column: IColumn, item: IItem) => {\n  const colClass = convertNgClassToObj(column?._colClass ?? {});\n  const rowClass = convertNgClassToObj(item._class ?? {});\n  const allClass = convertNgClassToObj(item._cellClass?._all ?? {});\n  const cellClass = convertNgClassToObj(item._cellClass?.[column.key ?? column.group] ?? {});\n  return { ...colClass, ...rowClass, ...allClass, ...cellClass };\n};\n\nexport const getTableDataCellProps = (column: IColumn, item: IItem): Record<string, any> => {\n  const props = {};\n\n  if (typeof column === 'object' && column._colProps) {\n    Object.assign(props, column._colProps);\n  }\n\n  if (item._cellProps?._all) {\n    Object.assign(props, item._cellProps._all);\n  }\n\n  if (item._cellProps?.[column.key ?? column.group]) {\n    Object.assign(props, item._cellProps[column.key ?? column.group]);\n  }\n\n  return props;\n};\n\nexport const getTableDataCellStyles = (column: IColumn, item: IItem): Partial<CSSStyleDeclaration> => {\n  const styles: Partial<CSSStyleDeclaration> = {};\n\n  if (typeof column === 'object' && column._colStyle) {\n    Object.assign(styles, column._colStyle);\n  }\n\n  if (item._cellStyle?._all) {\n    Object.assign(styles, item._cellStyle._all);\n  }\n\n  // @ts-ignore\n  if (item._cellStyle?.[column.key]) {\n    // @ts-ignore\n    Object.assign(styles, item._cellStyle[column.key]);\n  }\n  return { ...styles };\n};\n\nexport const getTableHeaderCellProps = (column: IColumn | string) => {\n\n  if (typeof column === 'object' && column._props) {\n    const { color, ...props } = { ...column._props };\n    return props;\n  }\n\n  return {};\n};\n\nexport const getTableHeaderCellClass = (column: IColumn) => {\n  const headerClass = convertNgClassToObj(column?._classes ?? {});\n  return { ...headerClass };\n};\n\nexport const getTableHeaderCellStyles = (\n  column: IColumn,\n  columnSorter: boolean | ISorter | undefined\n): Partial<CSSStyleDeclaration> => {\n\n  const style: Partial<CSSStyleDeclaration> = {\n    verticalAlign: 'middle',\n    overflow: 'hidden',\n    cursor: columnSorter ? 'pointer' : ''\n  };\n\n  if (typeof column === 'object' && column._style) {\n    return { ...style, ...column._style };\n  }\n  return { ...style };\n};\n\nexport const prettifyName = (name: string) => {\n  return name\n    .replace(/[-_.]/g, ' ')\n    .replace(/ +/g, ' ')\n    .replace(/([a-z0-9])([A-Z])/g, '$1 $2')\n    .split(' ')\n    .map((word) => word.charAt(0).toUpperCase() + word.slice(1))\n    .join(' ');\n};\n","import { computed, Directive, input } from '@angular/core';\nimport { Colors } from '../coreui.types';\n\n@Directive({\n  selector: '[cTableColor]',\n  exportAs: 'cTableColor',\n  host: {\n    '[class]': 'hostClasses()'\n  }\n})\nexport class TableColorDirective {\n  /**\n   * Use contextual color for tables, table rows or individual cells.\n   * @return Colors\n   */\n  readonly color = input<Colors | undefined>(undefined, { alias: 'cTableColor' });\n\n  readonly hostClasses = computed(() => {\n    const color = this.color();\n    return {\n      [`table-${color}`]: !!color\n    } as Record<string, boolean>;\n  });\n}\n","import { booleanAttribute, Directive, input } from '@angular/core';\n\n@Directive({\n  selector: '[cTableActive]',\n  exportAs: 'cTableActive',\n  host: {\n    '[class.table-active]': 'active()'\n  }\n})\nexport class TableActiveDirective {\n  /**\n   * Highlight a table row or cell\n   * @return boolean\n   */\n  readonly active = input(false, { alias: \"cTableActive\", transform: booleanAttribute });\n}\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport {\n  afterRenderEffect,\n  booleanAttribute,\n  computed,\n  Directive,\n  ElementRef,\n  inject,\n  input,\n  Renderer2\n} from '@angular/core';\nimport { Breakpoints, Colors } from '../coreui.types';\n\n@Directive({\n  selector: 'table[cTable]',\n  exportAs: 'cTable',\n  host: {\n    class: 'table',\n    '[class]': 'hostClasses()'\n  }\n})\nexport class TableDirective {\n  static ngAcceptInputType_bordered: BooleanInput;\n  static ngAcceptInputType_borderless: BooleanInput;\n  static ngAcceptInputType_hover: BooleanInput;\n  static ngAcceptInputType_small: BooleanInput;\n  static ngAcceptInputType_striped: BooleanInput;\n  static ngAcceptInputType_stripedColumns: BooleanInput;\n\n  readonly #renderer = inject(Renderer2);\n  readonly #hostElement = inject(ElementRef);\n\n  /**\n   * Set the vertical alignment.\n   * @return string\n   * @values 'bottom' | 'middle' | 'top'\n   */\n  readonly align = input<'bottom' | 'middle' | 'top'>();\n\n  /**\n   * Sets the border color of the component to one of CoreUI’s themed colors.\n   * @return Colors\n   */\n  readonly borderColor = input<Colors>();\n\n  /**\n   * Add borders on all sides of the table and cells.\n   * @return boolean\n   */\n  readonly bordered = input(false, { transform: booleanAttribute });\n\n  /**\n   * Remove borders on all sides of the table and cells.\n   * @return boolean\n   */\n  readonly borderless = input(false, { transform: booleanAttribute });\n\n  /**\n   * Put the `<caption>` on the top of the table.\n   * @return 'top'\n   * @values 'top'\n   */\n  readonly caption = input<'top'>();\n\n  /**\n   * Sets the color context of the component to one of CoreUI’s themed colors.\n   * @return Colors\n   */\n  readonly color = input<Colors>();\n\n  /**\n   * Enable a hover state on table rows within table body.\n   * @return boolean\n   */\n  readonly hover = input(false, { transform: booleanAttribute });\n\n  /**\n   * Make table responsive across all viewports or pick a maximum breakpoint with which to have a responsive table up to.\n   * @values: {boolean | 'sm' | 'md' | 'lg' | 'xl' | 'xxl'}\n   */\n  readonly responsive = input<boolean | Omit<Breakpoints, 'xs'>>();\n\n  /**\n   * Make table more compact by cutting all cell `padding` in half.\n   * @return boolean\n   */\n  readonly small = input(false, { transform: booleanAttribute });\n\n  /**\n   * Add zebra-striping to any table row within the table body.\n   * @return boolean\n   */\n  readonly striped = input(false, { transform: booleanAttribute });\n\n  /**\n   * Add zebra-striping to any table column.\n   * @return boolean\n   * @since 4.2.4\n   */\n  readonly stripedColumns = input(false, { transform: booleanAttribute });\n\n  readonly hostClasses = computed(() => {\n    const align = this.align();\n    const caption = this.caption();\n    const borderColor = this.borderColor();\n    const bordered = this.bordered();\n    const borderless = this.borderless();\n    const color = this.color();\n    const hover = this.hover();\n    const small = this.small();\n    const striped = this.striped();\n    const stripedColumns = this.stripedColumns();\n\n    return {\n      table: true,\n      [`align-${align}`]: !!align,\n      [`caption-${caption}`]: !!caption,\n      [`border-${borderColor}`]: !!borderColor,\n      'table-bordered': bordered,\n      'table-borderless': borderless,\n      [`table-${color}`]: !!color,\n      'table-hover': hover,\n      'table-sm': small,\n      'table-striped': striped,\n      'table-striped-columns': stripedColumns\n    } as Record<string, boolean>;\n  });\n\n  readonly #responsiveWrapperEffect = afterRenderEffect({\n    // this fixes RuntimeError: NG0500: During hydration Angular expected <abc> but found <xyz>.\n    // Find more at https://angular.dev/errors/NG0500\n    write: () => {\n      const responsive = this.responsive();\n      if (!!responsive) {\n        const nativeElement: HTMLElement = this.#hostElement.nativeElement;\n        const wrapper = this.#renderer.createElement('div');\n        const className = responsive === true ? 'table-responsive' : `table-responsive-${responsive}`;\n        this.#renderer.addClass(wrapper, className);\n        const parentNode = this.#renderer.parentNode(nativeElement);\n        this.#renderer.appendChild(parentNode, wrapper);\n        this.#renderer.insertBefore(parentNode, wrapper, nativeElement);\n        this.#renderer.appendChild(wrapper, nativeElement);\n      }\n    }\n  });\n}\n","import { NgModule } from '@angular/core';\nimport { TableDirective } from './table.directive';\nimport { TableColorDirective } from './table-color.directive';\nimport { TableActiveDirective } from './table-active.directive';\n\n@NgModule({\n  exports: [\n    TableDirective,\n    TableColorDirective,\n    TableActiveDirective\n  ],\n  imports: [\n    TableDirective,\n    TableColorDirective,\n    TableActiveDirective\n  ]\n})\nexport class TableModule {}\n","import { ChangeDetectionStrategy, Component, effect, inject, input } from '@angular/core';\n\nimport { FilterInputDirective } from '../smart-table-filter/filter-input.directive';\nimport { IColumn } from '../smart-table.type';\nimport { FormControlDirective } from '../../form';\n\n@Component({\n  selector: 'c-smart-table-column-filter',\n  templateUrl: './smart-table-column-filter.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  imports: [FormControlDirective]\n})\nexport class SmartTableColumnFilterComponent {\n  readonly #filterInputDirective = inject(FilterInputDirective);\n  readonly value = this.#filterInputDirective.value;\n\n  readonly column = input<string | IColumn | undefined>();\n\n  readonly #columnEffect = effect(() => {\n    this.#filterInputDirective.emitObject.update((emitObj) => ({ ...emitObj, column: this.column() }));\n  });\n\n  readonly sizing = input<('sm' | 'lg') | undefined>('sm');\n}\n","<input\n  [sizing]=\"sizing()\"\n  [value]=\"value()\"\n  autocomplete=\"off\"\n  cFormControl\n/>\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { IColumn } from '../smart-table.type';\nimport { getColumnLabel } from '../smart-table.utils';\n\n@Pipe({\n  name: 'columnLabel',\n  standalone: true\n})\nexport class SmartTableColumnLabelPipe implements PipeTransform {\n\n  transform(column: IColumn | string, ...args: unknown[]): unknown {\n    return getColumnLabel(column);\n  }\n\n}\n","import {\n  booleanAttribute,\n  ChangeDetectionStrategy,\n  Component,\n  computed,\n  input,\n  Input,\n  linkedSignal,\n  OnInit,\n  output,\n  signal,\n  TemplateRef,\n  WritableSignal\n} from '@angular/core';\nimport { AsyncPipe, NgTemplateOutlet } from '@angular/common';\nimport { BehaviorSubject } from 'rxjs';\n\nimport {\n  IColumn,\n  IColumnFilter,\n  IColumnFilterValue,\n  IGroup,\n  ISorter,\n  ISorterValue,\n  SortOrder\n} from '../smart-table.type';\nimport {\n  getColumns,\n  getTableHeaderCellClass,\n  getTableHeaderCellProps,\n  getTableHeaderCellStyles\n} from '../smart-table.utils';\n\nimport { Colors } from '../../coreui.types';\nimport { HtmlAttributesDirective } from '../../shared';\nimport { TableColorDirective } from '../../table';\nimport { FormCheckInputDirective } from '../../form';\nimport { SmartTableColumnFilterComponent } from '../smart-table-column-filter/smart-table-column-filter.component';\nimport { FilterInputDirective } from '../smart-table-filter/filter-input.directive';\nimport { SmartTableColumnLabelPipe } from './smart-table-column-label.pipe';\n\n// todo - add support for column groups\n\n@Component({\n  selector: 'c-smart-table-head',\n  templateUrl: './smart-table-head.component.html',\n  styleUrls: ['./smart-table-head.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  imports: [\n    FilterInputDirective,\n    FormCheckInputDirective,\n    HtmlAttributesDirective,\n    SmartTableColumnFilterComponent,\n    TableColorDirective,\n    AsyncPipe,\n    NgTemplateOutlet,\n    SmartTableColumnLabelPipe\n  ],\n  host: {\n    '[class]': 'hostClasses()'\n  }\n})\nexport class SmartTableHeadComponent implements OnInit {\n  protected readonly getTableHeaderCellStyles = getTableHeaderCellStyles;\n  protected readonly getTableHeaderCellProps = getTableHeaderCellProps;\n  protected readonly getTableHeaderCellClass = getTableHeaderCellClass;\n\n  readonly columnFilter = input<boolean | IColumnFilter>();\n\n  readonly columnFilterStateInput = input<IColumnFilterValue>({}, { alias: 'columnFilterState' });\n  readonly columnFilterState = linkedSignal(this.columnFilterStateInput);\n\n  readonly columnSorter = input<(boolean | ISorter) | undefined>(true);\n  readonly component = input<string | undefined>('thead');\n\n  @Input()\n  set columns(value: (IColumn | IGroup)[] | undefined) {\n    const columns = value ? getColumns(value) : [];\n    this.#columns.set(columns);\n  }\n\n  get columns() {\n    return this.#columns();\n  }\n  readonly #columns: WritableSignal<(IColumn | IGroup)[] | undefined> = signal(undefined);\n\n  readonly columnGroupsInput = input<IGroup[][]>(undefined, { alias: 'columnGroups' });\n  readonly columnGroups = linkedSignal(this.columnGroupsInput);\n\n  readonly selectable = input<boolean, unknown>(undefined, { transform: booleanAttribute });\n\n  readonly selectAll = input(true, { transform: booleanAttribute });\n\n  #selectedAllPreviousValue?: boolean;\n\n  @Input()\n  set selectedAll(value: boolean | 'indeterminate') {\n    this.indeterminate$.next(value === 'indeterminate');\n\n    this.#selectedAll = value === 'indeterminate' ? false : booleanAttribute(value);\n    if (value !== 'indeterminate') {\n      this.#selectedAllPreviousValue = this.#selectedAll;\n    }\n  }\n\n  get selectedAll() {\n    return this.#selectedAll;\n  }\n\n  #selectedAll: boolean | 'indeterminate' = false;\n\n  readonly showGroups = input(false, { transform: booleanAttribute });\n\n  readonly sorterValue = input<ISorterValue>();\n\n  @Input()\n  set columnFilterTemplates(value) {\n    this.#columnFilterTemplates = { ...value };\n  }\n\n  get columnFilterTemplates() {\n    return this.#columnFilterTemplates;\n  }\n\n  #columnFilterTemplates?: any = {};\n\n  @Input()\n  set columnLabelTemplates(value) {\n    this.#columnLabelTemplates = { ...value };\n  }\n\n  get columnLabelTemplates() {\n    return this.#columnLabelTemplates;\n  }\n\n  #columnLabelTemplates?: any = {};\n\n  @Input()\n  set summaryRowTemplate(value) {\n    this.#summaryRowTemplate = value;\n  }\n\n  get summaryRowTemplate() {\n    return this.#summaryRowTemplate;\n  }\n\n  #summaryRowTemplate: TemplateRef<unknown> | null = null;\n\n  // todo\n  // @Input() sortingIcon?: string | TemplateRef<any>;\n  // @Input() sortingIconAscending?: string | TemplateRef<any>;\n  // @Input() sortingIconDescending?: string | TemplateRef<any>;\n\n  readonly indeterminate$ = new BehaviorSubject(false);\n\n  readonly columnFilterStateChange = output<any>();\n  readonly sorterStateChange = output<any>();\n  readonly selectAllChange = output<boolean>();\n\n  readonly hostClasses = computed(() => {\n    const component = this.component();\n    return {\n      thead: component === 'thead',\n      tfoot: component === 'tfoot'\n    };\n  });\n\n  ngOnInit(): void {\n    this.columns?.forEach((column, index) => {\n      const columnKey = this.columnKey(column);\n      this.columnFilterState()[columnKey] = this.columnFilterState()[columnKey] ?? '';\n    });\n  }\n\n  tableHeaderCellColor(column: IColumn | string): Colors {\n    if (typeof column === 'object' && column._props) {\n      const { color } = { ...column._props };\n      return <Colors | string>color;\n    }\n    return '';\n  }\n\n  columnKey(column: IColumn | string) {\n    return typeof column === 'object' ? (column.key ?? column.group) : column;\n  }\n\n  getColumnSorterState(column: IColumn | string) {\n    const columnKey = this.columnKey(column);\n    const sorterValue = this.sorterValue();\n    if (sorterValue?.column === columnKey) {\n      return sorterValue?.state ?? 0;\n    }\n    return 0;\n  }\n\n  handleSortClick(column: IColumn | string, i: number, order?: SortOrder) {\n    if (this.columnSorterEnabled(column)) {\n      const columnKey = this.columnKey(column);\n      this.sorterStateChange.emit({ columnKey, index: i, order });\n    }\n  }\n\n  handleSortKeyDown($event: KeyboardEvent, column: IColumn | string, i: number) {\n    const eventCode = $event.code;\n    if (['Enter', 'Space', 'ArrowUp', 'ArrowDown'].includes(eventCode)) {\n      $event.preventDefault();\n      const order: SortOrder = eventCode === 'ArrowUp' ? 'asc' : eventCode === 'ArrowDown' ? 'desc' : undefined;\n      this.handleSortClick(column, i, order);\n    }\n  }\n\n  columnFilterEnabled(column: IColumn | string) {\n    return typeof column !== 'object' ? true : typeof column.filter === 'undefined' ? true : column.filter;\n  }\n\n  columnSorterEnabled(column: IColumn | string) {\n    if (!this.columnSorter()) {\n      return false;\n    }\n    return typeof column !== 'object' ? true : typeof column.sorter === 'undefined' ? true : column.sorter;\n  }\n\n  handleColumnFilterValueChange($event: { value: string; type?: string; column: IColumn | string }) {\n    const { value, type: eventType, column } = { ...$event };\n    const columnKey = this.columnKey(column);\n    const columnFilterValue = value;\n    const columnFilter = this.columnFilter();\n    const isLazy = typeof columnFilter === 'object' && columnFilter.lazy === true;\n    if (((isLazy && eventType === 'input') || (!isLazy && eventType === 'change')) && columnFilterValue.length !== 0) {\n      return;\n    }\n    this.columnFilterState()[columnKey] = columnFilterValue;\n    this.columnFilterStateChange.emit({ column: columnKey, value: columnFilterValue, type: eventType });\n  }\n\n  handleSelectAllChecked($event: Event) {\n    $event.preventDefault();\n    ($event.target as HTMLInputElement).checked = !this.#selectedAllPreviousValue;\n    // ($event.target as HTMLInputElement).checked = !this.selectedAll;\n    const selectAll = ($event.target as HTMLInputElement).checked;\n    this.selectAllChange.emit(selectAll);\n  }\n\n  getColumnFilter(column: IColumn | string) {\n    return `columnFilter_${this.columnKey(column) ?? '_undefined'}`;\n  }\n\n  getColumnLabel(column: IColumn | string) {\n    if (typeof column === 'object' && column._labelTemplateId) {\n      return `columnLabel_${column._labelTemplateId ?? '_undefined'}`;\n    }\n    return `columnLabel_${this.columnKey(column) ?? '_undefined'}`;\n  }\n\n  get columnFilterEvent(): 'change' | 'input' {\n    const columnFilter = this.columnFilter();\n    return typeof columnFilter === 'object' && columnFilter.lazy ? 'change' : 'input';\n  }\n\n  getAriaSort(column: IColumn | string) {\n    const sort = this.getColumnSorterState(column);\n    return sort === 'asc' ? 'ascending' : sort === 'desc' ? 'descending' : null;\n  }\n}\n","@let colSorter = columnSorter();\n@let selectableRows = selectable();\n\n@if (component() === 'tfoot') {\n  <ng-container *ngTemplateOutlet=\"summaryRowTemplate\" />\n}\n@if (showGroups()) {\n  @for (row of columnGroups(); track row; let i = $index) {\n    <tr>\n      @if (selectableRows) {\n        <th></th>\n      }\n      @for (cell of row; track cell; let i = $index) {\n        <th [cHtmlAttr]=\"getTableHeaderCellProps(cell)\"\n            [cTableColor]=\"tableHeaderCellColor(cell)\"\n            [colSpan]=\"cell.colspan ?? 1\"\n            [style]=\"getTableHeaderCellStyles(cell, colSorter)\"\n        >\n          {{ cell.label }}\n        </th>\n      }\n    </tr>\n  }\n}\n\n<tr>\n  @if (selectableRows) {\n    <th>\n      <input\n        (change)=\"handleSelectAllChecked($event)\"\n        [checked]=\"selectedAll === true\"\n        [disabled]=\"!selectAll()\"\n        [indeterminate]=\"indeterminate$ | async\"\n        autocomplete=\"off\"\n        cFormCheckInput\n        type=\"checkbox\"\n      >\n    </th>\n  }\n  @for (column of columns; track column; let i = $index) {\n    <th\n      (click)=\"handleSortClick(column, i)\"\n      (keydown)=\"handleSortKeyDown($event, column, i)\"\n      [attr.aria-sort]=\"getAriaSort(column)\"\n      [cHtmlAttr]=\"getTableHeaderCellProps(column)\"\n      [cTableColor]=\"tableHeaderCellColor(column)\"\n      [class]=\"getTableHeaderCellClass(column)\"\n      [style]=\"getTableHeaderCellStyles(column, colSorter)\"\n      [tabindex]=\"colSorter && columnSorterEnabled(column) ? 0 : -1\"\n    >\n      @if (colSorter && columnSorterEnabled(column)) {\n        <ng-container\n          *ngTemplateOutlet=\"columnSorterIconTemplate; context: { $implicit: getColumnSorterState(column) }\"\n        />\n      }\n      <ng-container\n        *ngTemplateOutlet=\"columnLabelTemplates[getColumnLabel(column)] ?? defaultColumnLabel; context: {$implicit: column, header: this}\"\n      />\n    </th>\n  }\n</tr>\n@if (columnFilter()) {\n  <tr>\n    @if (selectableRows) {\n      <th></th>\n    }\n    @for (column of columns; track column; let i = $index) {\n      <th [cHtmlAttr]=\"getTableHeaderCellProps(column)\"\n          [cTableColor]=\"tableHeaderCellColor(column)\"\n          [style]=\"getTableHeaderCellStyles(column, colSorter)\"\n      >\n        <ng-container\n          *ngTemplateOutlet=\"columnFilterTemplates[getColumnFilter(column)] ?? defaultColumnFilter; context: {$implicit: column, header: this}\"\n        />\n      </th>\n    }\n  </tr>\n}\n\n<ng-template #defaultColumnLabel let-column>\n  <div class=\"d-inline\">{{ column | columnLabel }}</div>\n</ng-template>\n\n<ng-template #defaultColumnFilter let-column>\n  @if (columnFilterEnabled(column)) {\n    <c-smart-table-column-filter\n      (valueChange)=\"handleColumnFilterValueChange($event)\"\n      [column]=\"column\"\n      [delay]=\"300\"\n      [onEvent]=\"columnFilterEvent\"\n      [value]=\"columnFilterState()[columnKey(column)] ?? ''\"\n      cFilterInput\n      sizing=\"sm\"\n    />\n  }\n</ng-template>\n\n<ng-template #columnSorterIconTemplate let-columnSorterState>\n  @switch (columnSorterState) {\n    @case ('asc') {\n      <span class=\"float-end mx-1\">\n        <ng-container *ngTemplateOutlet=\"sortingIconAscendingTemplate\" />\n      </span>\n    }\n    @case ('desc') {\n      <span class=\"float-end mx-1\">\n        <ng-container *ngTemplateOutlet=\"sortingIconDescendingTemplate\" />\n      </span>\n    }\n    @default {\n      <span class=\"opacity-25 float-end mx-1\">\n        <ng-container *ngTemplateOutlet=\"sortingIconTemplate\" />\n      </span>\n    }\n  }\n</ng-template>\n\n<!--todo: sortingIconCustom Templates-->\n<ng-template #sortingIconTemplate>\n  <svg\n    class=\"icon icon-custom-size\"\n    role=\"img\"\n    viewBox=\"0 0 512 512\"\n    width=\"18\"\n    xmlns=\"http://www.w3.org/2000/svg\"\n  >\n    <polygon\n      class=\"ci-primary\"\n      fill=\"var(--ci-primary-color, currentColor)\"\n      points=\"384 433.373 384 160 352 160 352 434.51 282.177 364.687 259.55 387.313 367.432 495.196 475.313 387.313 452.687 364.687 384 433.373\"\n    ></polygon>\n    <polygon\n      class=\"ci-primary\"\n      fill=\"var(--ci-primary-color, currentColor)\"\n      points=\"159.432 17.372 51.55 125.255 74.177 147.882 144 78.059 144 352 176 352 176 79.195 244.687 147.882 267.313 125.255 159.432 17.372\"\n    ></polygon>\n  </svg>\n</ng-template>\n\n<ng-template #sortingIconAscendingTemplate>\n  <svg\n    class=\"icon icon-custom-size\"\n    role=\"img\"\n    viewBox=\"0 0 512 512\"\n    width=\"18\"\n    xmlns=\"http://www.w3.org/2000/svg\"\n  >\n    <polygon\n      class=\"ci-primary\"\n      fill=\"var(--ci-primary-color, currentColor)\"\n      points=\"390.624 150.625 256 16 121.376 150.625 144.004 173.252 240.001 77.254 240.001 495.236 272.001 495.236 272.001 77.257 367.996 173.252 390.624 150.625\"\n    ></polygon>\n  </svg>\n</ng-template>\n\n<ng-template #sortingIconDescendingTemplate>\n  <svg\n    class=\"icon icon-custom-size\"\n    role=\"img\"\n    viewBox=\"0 0 512 512\"\n    width=\"18\"\n    xmlns=\"http://www.w3.org/2000/svg\"\n  >\n    <polygon\n      class=\"ci-primary\"\n      fill=\"var(--ci-primary-color, currentColor)\"\n      points=\"367.997 338.75 271.999 434.747 271.999 17.503 239.999 17.503 239.999 434.745 144.003 338.75 121.376 361.377 256 496 390.624 361.377 367.997 338.75\"\n    ></polygon>\n  </svg>\n</ng-template>\n","import { Component, input, model } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { FormLabelDirective, FormSelectDirective } from '../../form';\n\n@Component({\n  selector: 'c-smart-table-items-per-page-selector',\n  templateUrl: './smart-table-items-per-page-selector.component.html',\n  imports: [FormSelectDirective, FormLabelDirective, FormsModule],\n  host: {\n    '[class.row]': 'true'\n  }\n})\nexport class SmartTableItemsPerPageSelectorComponent {\n  readonly itemsPerPage = model<number>(5);\n  readonly itemsPerPageLabel = input<string>('Items per page:');\n  readonly itemsPerPageOptions = input<number[]>([5, 10, 20, 50]);\n}\n","<label cLabel=\"col\" class=\"col-sm-auto\">{{ itemsPerPageLabel() }}</label>\n<div class=\"col-auto\">\n  <select [(ngModel)]=\"itemsPerPage\" cSelect name=\"itemsPerPageSelector\">\n    @for (option of itemsPerPageOptions(); track option; let i = $index) {\n      <option [ngValue]=\"option\">{{ option }}</option>\n    }\n  </select>\n</div>\n","import {\n  AfterContentInit,\n  booleanAttribute,\n  Component,\n  computed,\n  ContentChildren,\n  inject,\n  input,\n  Input,\n  IterableDiffer,\n  IterableDiffers,\n  KeyValueDiffer,\n  KeyValueDiffers,\n  numberAttribute,\n  OnChanges,\n  output,\n  QueryList,\n  signal,\n  SimpleChanges,\n  TemplateRef,\n  Type,\n  WritableSignal\n} from '@angular/core';\nimport { AsyncPipe, NgTemplateOutlet } from '@angular/common';\nimport { BehaviorSubject } from 'rxjs';\n\nimport { ITable } from '../../table/table.type';\nimport {\n  IColumn,\n  IColumnFilter,\n  IColumnFilterValue,\n  IGroup,\n  IItem,\n  IItemInternal,\n  ISmartTable,\n  ISorter,\n  ISorterValue,\n  ITableFilter,\n  ITableSectionProps,\n  ItemsPerPageSelect,\n  SortOrder\n} from '../smart-table.type';\n\nimport {\n  getClickedColumnName,\n  getColumnGroups,\n  getColumnKey,\n  getColumnNames,\n  getColumnNamesFromItems,\n  getColumns,\n  getTableDataCellClass,\n  getTableDataCellProps,\n  getTableDataCellStyles\n} from '../smart-table.utils';\n\nimport { ButtonDirective } from '../../button';\nimport { FormCheckInputDirective } from '../../form';\nimport { ElementCoverComponent } from '../../element-cover';\nimport { HtmlAttributesDirective, TemplateIdDirective } from '../../shared';\nimport { SmartPaginationComponent } from '../../smart-pagination';\nimport { TableActiveDirective, TableColorDirective, TableDirective } from '../../table';\nimport { AlignDirective } from '../../utilities';\nimport { SmartTableFilterComponent } from '../smart-table-filter/smart-table-filter.component';\nimport { FilterInputDirective } from '../smart-table-filter/filter-input.directive';\nimport { SmartTableHeadComponent } from '../smart-table-head/smart-table-head.component';\nimport { SmartTableItemsPerPageSelectorComponent } from '../smart-table-items-per-page-selector/smart-table-items-per-page-selector.component';\n\n@Component({\n  selector: 'c-smart-table',\n  templateUrl: './smart-table.component.html',\n  styleUrls: ['./smart-table.component.scss'],\n  exportAs: 'cSmartTable',\n  imports: [\n    AsyncPipe,\n    NgTemplateOutlet,\n    AlignDirective,\n    ButtonDirective,\n    ElementCoverComponent,\n    FilterInputDirective,\n    FormCheckInputDirective,\n    HtmlAttributesDirective,\n    SmartPaginationComponent,\n    SmartTableFilterComponent,\n    SmartTableHeadComponent,\n    SmartTableItemsPerPageSelectorComponent,\n    TableActiveDirective,\n    TableColorDirective,\n    TableDirective\n  ],\n  host: {\n    ngSkipHydration: 'true'\n  }\n})\nexport class SmartTableComponent implements ISmartTable, AfterContentInit, OnChanges {\n  private readonly keyValueDiffers = inject(KeyValueDiffers);\n  private readonly iterableDiffers = inject(IterableDiffers);\n\n  constructor() {\n    this.itemsDiffer = this.iterableDiffers.find(this.items).create();\n    this.itemsFilteredDiffer = this.iterableDiffers.find(this._columnFiltered).create();\n    this.columFilterValueDiffer = this.keyValueDiffers.find(this.columnFilterValue).create();\n    this.sorterValueDiffer = this.keyValueDiffers.find(this.sorterValue).create();\n  }\n\n  readonly getColumnKey = getColumnKey;\n  readonly getTableDataCellClass = getTableDataCellClass;\n  readonly getTableDataCellProps = getTableDataCellProps;\n  readonly getTableDataCellStyles = getTableDataCellStyles;\n\n  readonly selectedAllSubject = new BehaviorSubject<boolean | 'indeterminate'>(false);\n\n  private readonly itemsDiffer: IterableDiffer<any> | null;\n  private readonly itemsFilteredDiffer: IterableDiffer<any> | null;\n  private readonly columFilterValueDiffer: KeyValueDiffer<any, any> | null;\n  private readonly sorterValueDiffer: KeyValueDiffer<any, any> | null;\n\n  @Input({ transform: numberAttribute })\n  set activePage(value: number) {\n    this._activePage = value || 1;\n    this.activePageChange.emit(this._activePage);\n  }\n\n  get activePage(): number {\n    return this._activePage;\n  }\n\n  private _activePage = 1;\n\n  @Input({ transform: booleanAttribute }) cleaner = false;\n\n  @Input({ transform: booleanAttribute }) clickableRows = false;\n\n  @Input()\n  set columns(value: (string | IColumn | IGroup)[]) {\n    const colObjects = value.map((column) => (typeof column === 'string' ? { key: column } : { ...column }));\n    const columns: IColumn[] = getColumns(colObjects);\n    this.columns$.set(columns);\n\n    // todo: Input columnGroups - separation?\n    // console.log(getColumnGroups(colObjects ?? []));\n    const groups = getColumnGroups(value ?? []);\n    this.columnGroups$.set(groups);\n  }\n\n  get columns(): IColumn[] {\n    return this.columns$();\n  }\n\n  columns$: WritableSignal<IColumn[]> = signal([]);\n  columnGroups$: WritableSignal<IGroup[][]> = signal([]);\n  showGroups$ = computed(() => !!this.columnGroups$().length);\n\n  @Input() columnFilter?: boolean | IColumnFilter;\n\n  @Input()\n  set columnFilterValue(value: IColumnFilterValue) {\n    if (this.columFilterValueDiffer) {\n      const changes = this.columFilterValueDiffer.diff(value);\n      if (changes) {\n        this._columnFilterValue = { ...value };\n        this.columnFilterValueChange.emit({ ...this._columnFilterValue });\n        this.tableFiltered; // emits tableFiltered change\n      }\n    }\n  }\n\n  get columnFilterValue(): IColumnFilterValue {\n    return this._columnFilterValue;\n  }\n\n  private _columnFilterValue: IColumnFilterValue = {};\n\n  readonly columnSorter = input<boolean | ISorter>(false);\n\n  @Input({ transform: booleanAttribute }) footer = false;\n\n  @Input({ transform: booleanAttribute }) header = false;\n\n  @Input()\n  set items(value: IItem[]) {\n    if (this.itemsDiffer) {\n      const changes = this.itemsDiffer.diff(value);\n      if (changes) {\n        this._items = this.setItems(value) as Type<IItemInternal>[];\n        this.items$.set(this._items);\n        if (!this.columns.length) {\n          this.columns = getColumnNamesFromItems(this.items$());\n        }\n      }\n    }\n  }\n\n  get items() {\n    return this._items;\n  }\n\n  readonly items$ = signal([] as IItemInternal[]);\n  private _items: IItemInternal[] = [] as Type<IItemInternal>[];\n\n  @Input({ transform: numberAttribute })\n  set itemsPerPage(value: number) {\n    this._itemsPerPage = value;\n  }\n\n  get itemsPerPage(): number {\n    return this._itemsPerPage;\n  }\n\n  private _itemsPerPage: number = 10;\n\n  @Input() itemsPerPageLabel: string = 'Items per page:';\n  @Input() itemsPerPageOptions: number[] = [5, 10, 20, 50];\n  @Input() itemsPerPageSelect?: boolean | ItemsPerPageSelect;\n  @Input() loading?: boolean;\n  @Input() noItemsLabel: string | TemplateRef<any> = 'No items found';\n\n  @Input({ transform: booleanAttribute }) pagination = false;\n\n  @Input({ transform: booleanAttribute })\n  set selectable(value: boolean) {\n    this._selectable = value;\n  }\n\n  get selectable(): boolean {\n    return this._selectable;\n  }\n\n  private _selectable: boolean = false;\n\n  @Input({ transform: booleanAttribute }) selectAll = true;\n\n  @Input()\n  set sorterValue(value: ISorterValue) {\n    if (this.sorterValueDiffer) {\n      const changes = this.sorterValueDiffer.diff(value);\n      if (changes) {\n        this._sorterValue = value;\n        this.sorterValueChange.emit({ ...value });\n      }\n    }\n  }\n\n  get sorterValue(): ISorterValue {\n    return this._sorterValue;\n  }\n\n  private _sorterValue: ISorterValue = {};\n\n  @Input()\n  set tableFilter(filter) {\n    this._tableFilter = filter;\n    if (typeof filter === 'object') {\n      this.tableFilterLabel = typeof filter.label === 'string' ? filter.label : this.tableFilterLabel;\n      this.tableFilterPlaceholder =\n        typeof filter.placeholder === 'string' ? filter.placeholder : this.tableFilterPlaceholder;\n      this.tableFilterValue = typeof filter.value === 'string' ? filter.value : this.tableFilterValue;\n    }\n  }\n\n  get tableFilter() {\n    return this._tableFilter;\n  }\n\n  private _tableFilter?: boolean | ITableFilter;\n\n  @Input() tableFilterLabel = 'Filter:';\n  @Input() tableFilterPlaceholder = 'type string...';\n\n  @Input()\n  set tableFilterValue(value: string) {\n    if (this._tableFilterValue !== value) {\n      this._tableFilterValue = value;\n      this.tableFilterValueChange.emit(value);\n      this.tableFiltered; // emits tableFiltered change\n    }\n  }\n\n  get tableFilterValue(): string {\n    return this._tableFilterValue;\n  }\n\n  private _tableFilterValue: string = '';\n\n  @Input() tableBodyProps?: ITableSectionProps = {};\n  @Input() tableFootProps?: ITableSectionProps = {};\n  @Input() tableHeadProps?: ITableSectionProps = {};\n  @Input() tableProps?: ITable = {};\n\n  readonly selectedItemsChange = output<IItem[]>();\n  readonly sorterValueChange = output<ISorterValue>();\n  readonly activePageChange = output<number>();\n  readonly itemsPerPageChange = output<number>();\n  readonly rowClick = output<any>();\n  readonly columnFilterValueChange = output<IColumnFilterValue>();\n  readonly filteredItemsChange = output<IItemInternal[]>();\n  readonly tableFilterValueChange = output<string>();\n  readonly cleanerClick = output<void>();\n\n  @ContentChildren(TemplateIdDirective) columnTemplates!: QueryList<TemplateIdDirective>;\n  templates: { [key: string]: TemplateRef<any> | null } = { tableDetails: null, tableData: null };\n  columnFilterTemplates: { [key: string]: TemplateRef<any> | null } = {};\n  columnLabelTemplates: { [key: string]: TemplateRef<any> | null } = {};\n  summaryRowTemplate: TemplateRef<unknown> | null = null;\n\n  ngAfterContentInit(): void {\n    this.columnTemplates.forEach((child: TemplateIdDirective) => {\n      if (child.id.startsWith('columnFilter_')) {\n        this.columnFilterTemplates[child.id] = child.templateRef;\n        return;\n      }\n      if (child.id.startsWith('columnLabel_')) {\n        this.columnLabelTemplates[child.id] = child.templateRef;\n        return;\n      }\n      if (child.id === 'tableSummaryRow') {\n        this.summaryRowTemplate = child.templateRef;\n        return;\n      }\n      this.templates[child.id] = child.templateRef;\n    });\n    this.columnFilterTemplates = { ...this.columnFilterTemplates };\n    this.columnLabelTemplates = { ...this.columnLabelTemplates };\n\n    setTimeout(() => {\n      this.selectedAllSubject.next(this.selectedAll);\n    }, 0);\n  }\n\n  get selectedAll() {\n    const selected = this.items.some((item) => item._selected === true);\n    const unselected = this.items.some((item) => item._selected !== true);\n    return selected && unselected ? 'indeterminate' : selected;\n  }\n\n  get tableFilterState() {\n    return this.tableFilterValue ? this.tableFilterValue : '';\n  }\n\n  get columnFilterState() {\n    return this.columnFilterValue ? this.columnFilterValue : {};\n  }\n\n  get numberOfPages(): number {\n    return this._itemsPerPage ? Math.ceil(this.sortedItems.length / this._itemsPerPage) : 1;\n  }\n\n  get colspan(): number {\n    return this._selectable ? this.rawColumnNames$().length + 1 : this.rawColumnNames$().length;\n  }\n\n  get firstItemOnActivePageIndex(): number {\n    return this._activePage ? (this._activePage - 1) * this._itemsPerPage : 0;\n  }\n\n  get itemsOnActivePage(): IItemInternal[] {\n    return this.sortedItems.slice(\n      this.firstItemOnActivePageIndex,\n      this.firstItemOnActivePageIndex + this._itemsPerPage\n    );\n  }\n\n  get currentItems(): IItemInternal[] {\n    return this._activePage ? this.itemsOnActivePage : (this.sortedItems ?? []);\n  }\n\n  rawColumnNames$ = computed(() => {\n    return getColumnNames(this.columns$(), this.items$());\n  });\n\n  itemsDataColumns$ = computed(() =>\n    this.rawColumnNames$().filter((name) => getColumnNamesFromItems(this.items$()).includes(name))\n  );\n\n  get sortedItems(): IItemInternal[] {\n    const columnKey = this.sorterValue.column;\n    const currentColumn = this.columns.find((column) => column.key === columnKey);\n    const columnSorter = this.columnSorter();\n\n    if (\n      !columnKey ||\n      (!this.itemsDataColumns$().includes(columnKey) && typeof currentColumn?.sorter !== 'function') ||\n      (typeof columnSorter === 'object' && columnSorter.external)\n    ) {\n      return this.tableFiltered;\n    }\n    const tableFiltered = [...this.tableFiltered];\n\n    // if values in column are to be sorted by numeric value they all have to be a type of number\n    const flip = this.sorterValue.state === 'asc' ? 1 : this.sorterValue.state === 'desc' ? -1 : 0;\n\n    if (flip === 0) {\n      return tableFiltered;\n    }\n\n    if (typeof currentColumn?.sorter === 'function') {\n      const sorted = tableFiltered.slice().sort(currentColumn.sorter);\n      return flip < 0 ? sorted.reverse() : sorted;\n    }\n\n    const compareFn = (item1: { [x: string]: any }, item2: { [x: string]: any }) => {\n      const value1 = item1[columnKey];\n      const value2 = item2[columnKey];\n      const a = typeof value1 === 'number' ? value1 : String(value1).toLowerCase();\n      const b = typeof value2 === 'number' ? value2 : String(value2).toLowerCase();\n      return a > b ? 1 * flip : b > a ? -1 * flip : 0;\n    };\n\n    return tableFiltered.slice().sort(compareFn);\n  }\n\n  get tableFilterEvent(): 'change' | 'input' {\n    return typeof this.tableFilter === 'object' && this.tableFilter.lazy ? 'change' : 'input';\n  }\n\n  private _columnFiltered: IItemInternal[] = [];\n\n  get columnFiltered(): IItemInternal[] {\n    let _items = this._items;\n    if (this.columnFilter && typeof this.columnFilter === 'object' && this.columnFilter.external) {\n      this._columnFiltered = _items;\n      return _items;\n    }\n    Object.entries(this.columnFilterState).forEach(([key, value]) => {\n      if (value instanceof Function) {\n        _items = _items.filter((item) => value(item[key]));\n        return;\n      }\n\n      const currentColumn = this.columns.find((column) => column.key === key);\n      if (typeof currentColumn?.filter === 'function') {\n        _items = _items.filter(\n          (item) => (typeof currentColumn.filter === 'function' && currentColumn.filter(item, value)) ?? !value\n        );\n        return;\n      }\n\n      const columnFilter = String(value).toLowerCase();\n      if (columnFilter && this.itemsDataColumns$().includes(key)) {\n        _items = _items.filter((item) => String(item[key]).toLowerCase().includes(columnFilter));\n      }\n    });\n    this._columnFiltered = _items;\n    return _items;\n  }\n\n  get tableFiltered(): IItemInternal[] {\n    let items = this.columnFiltered;\n    if (\n      !this.tableFilterState ||\n      (this.tableFilter && typeof this.tableFilter === 'object' && this.tableFilter.external)\n    ) {\n      if (this.itemsFilteredDiffer) {\n        const changes = this.itemsFilteredDiffer.diff(items);\n        if (changes) {\n          this.filteredItemsChange.emit(items);\n        }\n      }\n      return items;\n    }\n    const filter = this.tableFilterState.toLowerCase();\n    const valueContainFilter = (val: any) => String(val).toLowerCase().includes(filter);\n    // @ts-ignore\n    items = items.filter((item: { [x: string]: any }) => {\n      return !!this.itemsDataColumns$().find((key) => valueContainFilter(item[key]));\n    });\n    if (this.itemsFilteredDiffer) {\n      const changes = this.itemsFilteredDiffer.diff(items);\n      if (changes) {\n        this.filteredItemsChange.emit(items);\n      }\n    }\n    return items;\n  }\n\n  get isFiltered() {\n    return this.tableFilterState || this.sorterValue?.column || Object.values(this.columnFilterState).join('');\n  }\n\n  private setItems(items: IItem[]) {\n    if (Array.isArray(items)) {\n      return items.map((item: IItem, index: number) => {\n        return { ...item, ___id: item['___id'] ?? index };\n      });\n    }\n    return <IItemInternal>[];\n  }\n\n  handleSortChange($event: { columnKey: string; index: number; order?: SortOrder }) {\n    this.handleSorterChange($event.columnKey, $event.index, $event.order);\n  }\n\n  isSortable(i: number): boolean | undefined {\n    const columnSorter = this.columnSorter();\n\n    if (!columnSorter) {\n      return false;\n    }\n\n    const columnKey = this.rawColumnNames$()[i];\n    const isDataColumn = this.itemsDataColumns$().includes(columnKey);\n    const column = this.columns[i];\n\n    const isColumnSortable = !this.columns.length || typeof column !== 'object' || column.sorter !== false;\n    const isExternalSorter = typeof columnSorter === 'object' && columnSorter.external;\n\n    return (isColumnSortable && (isDataColumn || typeof column?.sorter === 'function')) || isExternalSorter;\n  }\n\n  handleSorterChange(column: string, index: number, order?: SortOrder): void {\n    if (!this.isSortable(index)) {\n      return;\n    }\n    //if column changed or sort was descending change asc to true\n    const sorterState = { ...this.sorterValue };\n\n    if (sorterState.column === column) {\n      const columnSorter = this.columnSorter();\n      const resettable =\n        columnSorter === true ||\n        (typeof columnSorter === 'object' && columnSorter.resetable !== false && columnSorter.resettable !== false);\n      const state = sorterState.state;\n      if (order === undefined) {\n        sorterState.state = state === 0 ? 'asc' : state === 'asc' ? 'desc' : resettable ? 0 : 'asc';\n      } else {\n        sorterState.state = order === 0 && !resettable ? state : order;\n      }\n    } else {\n      sorterState.column = column;\n      sorterState.state = 'asc';\n    }\n    this.sorterValue = { ...sorterState };\n  }\n\n  setActivePage($event: number) {\n    this.activePage = $event;\n  }\n\n  handleColumnFilterChange($event: any) {\n    const { column, value, type } = $event;\n    this.setActivePage(1);\n    this.columnFilterValue = { ...this.columnFilterValue, [`${column}`]: value };\n  }\n\n  handleTableFilterChange($event: { value: string; type: string }) {\n    const { value, type } = $event;\n    const isLazy = typeof this.tableFilter === 'object' && this.tableFilter.lazy === true;\n    if (((isLazy && type === 'input') || (!isLazy && type === 'change')) && value.length !== 0) {\n      return;\n    }\n    this.setActivePage(1);\n    this.tableFilterValue = value;\n  }\n\n  clean($event: MouseEvent) {\n    this.columnFilterValue = {};\n    this.tableFilterValue = '';\n    this.sorterValue = {};\n    this.tableFiltered; //emits tableFiltered change\n    this.cleanerClick.emit();\n  }\n\n  handleItemsPerPageChange(value: number) {\n    if (value !== this._itemsPerPage) {\n      this.setActivePage(1);\n      this._itemsPerPage = value;\n      this.itemsPerPageChange.emit(value);\n    }\n  }\n\n  handleRowChecked($event: Event, item: IItemInternal) {\n    item._selected = item._selectable !== false && ($event.target as HTMLInputElement).checked;\n    this.selectedItemsChange.emit(this.items.filter((item) => item._selected === true));\n    setTimeout(() => {\n      this.selectedAllSubject.next(this.selectedAll);\n    }, 0);\n  }\n\n  handleSelectAllChange($event: boolean) {\n    const tableFiltered = [...this.tableFiltered];\n    this._items = this.items.map((item: IItemInternal) => {\n      if (!tableFiltered.includes(item)) {\n        return { ...item };\n      }\n      return { ...item, _selected: item._selectable !== false ? $event : !!item._selected };\n    });\n    this.selectedAllSubject.next($event);\n    setTimeout(() => {\n      this.selectedItemsChange.emit(this.items.filter((item) => item._selected === true));\n      this.selectedAllSubject.next(this.selectedAll);\n    }, 0);\n  }\n\n  handleRowClick(param: { $event: MouseEvent; item: IItemInternal; i: number }) {\n    const { $event, item, i } = { ...param };\n    const target = $event.target as HTMLTextAreaElement;\n    const columnNames = this.rawColumnNames$();\n    const selectable = this._selectable;\n    const columnName = getClickedColumnName(target, columnNames, selectable);\n    this.rowClick.emit({ item: item, index: i + this.firstItemOnActivePageIndex, columnName, event: $event });\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (changes['columnFilterValue']) {\n      const columnFilterValueChange = changes['columnFilterValue'];\n      const currentValue = columnFilterValueChange.currentValue;\n      if (typeof currentValue === 'object' && Object.keys(currentValue ?? {}).length) {\n        this.setActivePage(1);\n      }\n    }\n    if (changes['tableFilterValue']) {\n      const tableFilterValueChange = changes['tableFilterValue'];\n      const currentValue = tableFilterValueChange.currentValue;\n      if (currentValue.length) {\n        this.setActivePage(1);\n      }\n    }\n  }\n}\n","@if (itemsPerPageSelect || tableFilter || cleaner || templates['tableCustomHeader']) {\n  <div class=\"row my-2 mx-0\">\n    @if (tableFilter) {\n      <div class=\"col-auto p-0\">\n        <ng-container *ngTemplateOutlet=\"tableFilterTemplate\" />\n      </div>\n    }\n    @if (cleaner) {\n      <div class=\"col-auto p-0\">\n        <ng-container *ngTemplateOutlet=\"tableCleanerTemplate\" />\n      </div>\n    }\n    <ng-container *ngTemplateOutlet=\"templates['tableCustomHeader'] || tableCustomHeaderTemplate\" />\n\n    <ng-template #tableFilterTemplate>\n      @if (tableFilter) {\n        <c-smart-table-filter\n          (valueChange)=\"handleTableFilterChange($event)\"\n          [delay]=\"300\"\n          [filterLabel]=\"tableFilterLabel\"\n          [filterPlaceholder]=\"tableFilterPlaceholder\"\n          [onEvent]=\"tableFilterEvent\"\n          [value]=\"tableFilterState\"\n          cFilterInput\n        />\n      }\n    </ng-template>\n\n    <ng-template #tableCleanerTemplate>\n      @if (cleaner) {\n        <button\n          (click)=\"clean($event)\"\n          [disabled]=\"!isFiltered\"\n          [class.ms-1]=\"tableFilter\"\n          cButton\n          color=\"transparent\"\n          tabindex=\"0\"\n        >\n          <ng-container *ngTemplateOutlet=\"filterIconTemplate\" />\n        </button>\n      }\n    </ng-template>\n\n    <ng-template #tableCustomHeaderTemplate>\n      <div class=\"col-auto p-0 ms-auto\">\n        <ng-content select=\"[customHeader]\" />\n      </div>\n    </ng-template>\n  </div>\n}\n<div class=\"position-relative\">\n  <table [align]=\"tableProps?.align\"\n         [borderColor]=\"tableProps?.borderColor\"\n         [bordered]=\"tableProps?.bordered ?? undefined\"\n         [borderless]=\"tableProps?.borderless ?? undefined\"\n         [cHtmlAttr]=\"tableProps?.attributes ?? {}\"\n         [cTableColor]=\"tableProps?.color\"\n         [caption]=\"tableProps?.caption\"\n         [color]=\"tableProps?.color\"\n         [hover]=\"tableProps?.hover ?? undefined\"\n         [responsive]=\"tableProps?.responsive\"\n         [small]=\"tableProps?.small ?? undefined\"\n         [striped]=\"tableProps?.striped ?? undefined\"\n         cTable\n  >\n    @if (header) {\n      <c-smart-table-head\n        (columnFilterStateChange)=\"handleColumnFilterChange($event)\"\n        (selectAllChange)=\"handleSelectAllChange($event)\"\n        (sorterStateChange)=\"handleSortChange($event)\"\n        [cAlign]=\"tableHeadProps?.align\"\n        [cHtmlAttr]=\"tableHeadProps?.attributes ?? {}\"\n        [cTableColor]=\"tableHeadProps?.color\"\n        [columnFilterState]=\"columnFilterState\"\n        [columnFilterTemplates]=\"columnFilterTemplates\"\n        [columnFilter]=\"columnFilter\"\n        [columnGroups]=\"columnGroups$()\"\n        [columnLabelTemplates]=\"columnLabelTemplates\"\n        [columnSorter]=\"columnSorter()\"\n        [columns]=\"columns$()\"\n        [selectAll]=\"selectAll\"\n        [selectable]=\"selectable\"\n        [selectedAll]=\"(selectedAllSubject | async) ?? false\"\n        [showGroups]=\"showGroups$()\"\n        [sorterValue]=\"sorterValue\"\n      />\n    }\n\n    <ng-container *ngTemplateOutlet=\"tbodyDefaultTemplate\" />\n\n    @if (summaryRowTemplate && !footer) {\n      <tfoot>\n      <ng-container *ngTemplateOutlet=\"summaryRowTemplate\" />\n      </tfoot>\n    }\n    @if (footer) {\n      <c-smart-table-head\n        (selectAllChange)=\"handleSelectAllChange($event)\"\n        (sorterStateChange)=\"handleSortChange($event)\"\n        [cAlign]=\"tableFootProps?.align\"\n        [cHtmlAttr]=\"tableFootProps?.attributes ?? {}\"\n        [cTableColor]=\"tableFootProps?.color\"\n        [columnFilterTemplates]=\"columnFilterTemplates\"\n        [columnLabelTemplates]=\"columnLabelTemplates\"\n        [columnSorter]=\"columnSorter()\"\n        [columns]=\"columns$()\"\n        [selectAll]=\"selectAll\"\n        [selectable]=\"selectable\"\n        [selectedAll]=\"(selectedAllSubject | async) ?? false\"\n        [sorterValue]=\"sorterValue\"\n        [summaryRowTemplate]=\"summaryRowTemplate\"\n        component=\"tfoot\"\n      />\n    }\n\n  </table>\n  @if (loading) {\n    <c-element-cover\n      [boundaries]=\"[\n        { sides: ['top'], query: 'td' },\n        { sides: ['bottom'], query: 'tbody' }\n      ]\"\n    />\n  }\n</div>\n\n@if (pagination || itemsPerPageSelect) {\n  <div class=\"row\">\n    <div class=\"col\">\n      @if (pagination && numberOfPages > 1) {\n        <c-smart-pagination\n          (activePageChange)=\"setActivePage($event)\"\n          [activePage]=\"activePage\"\n          [pages]=\"numberOfPages\"\n        />\n      }\n    </div>\n    <div class=\"col-auto ms-auto\">\n      @if (itemsPerPageSelect) {\n        <c-smart-table-items-per-page-selector\n          (itemsPerPageChange)=\"handleItemsPerPageChange($event)\"\n          [itemsPerPageLabel]=\"itemsPerPageLabel\"\n          [itemsPerPageOptions]=\"itemsPerPageOptions\"\n          [itemsPerPage]=\"itemsPerPage\"\n        />\n      }\n    </div>\n  </div>\n}\n<ng-template #tbodyDefaultTemplate>\n  <tbody [cAlign]=\"tableBodyProps?.align\"\n         [cHtmlAttr]=\"tableBodyProps?.attributes ?? {}\"\n         [cTableColor]=\"tableBodyProps?.color\"\n  >\n    @for (item of currentItems; track item; let i = $index, cnt = $count, isEven = $even, isOdd = $odd) {\n      <tr (click)=\"handleRowClick({$event, item, i})\"\n          [cAlign]=\"item._props?.align\"\n          [cTableActive]=\"item._props?.active ?? undefined\"\n          [cTableColor]=\"item._props?.color\"\n          [style.cursor]=\"clickableRows ? 'pointer' : 'auto'\"\n          [tabindex]=\"clickableRows ? 0 : -1\"\n      >\n        @if (selectable) {\n          <td [cAlign]=\"item?.['_cellProps']?._all?.align\"\n              [cTableActive]=\"item?.['_cellProps']?._all?.active ?? undefined\"\n              [cTableColor]=\"item?.['_cellProps']?._all?.color\"\n          >\n            <input (change)=\"handleRowChecked($event, item)\"\n                   [checked]=\"item._selected ?? false\"\n                   [disabled]=\"(item?._selectable === false)\"\n                   autocomplete=\"off\"\n                   cFormCheckInput\n            >\n          </td>\n        }\n        @for (column of columns$(); track column; let i = $index) {\n          @let columnKey = getColumnKey(column);\n          <ng-container\n            *ngTemplateOutlet=\"templates['tableData'] || columnDefaultTemplate; context: {column, item, columnName: getColumnKey(column), tdContent: item[columnKey], cellProps: getTableDataCellProps(column, item) }\"\n          />\n        }\n      </tr>\n      @if (templates['tableDetails']) {\n        <!--      <ng-container *ngTemplateOutlet=\"rowDetailsDefaultTemplate\"></ng-container>-->\n        <tr>\n          <td [colSpan]=\"colspan\" [style.border-bottom-width]=\"0\" class=\"p-0\" tabindex=\"-1\"></td>\n        </tr>\n        <tr class=\"p-0\">\n          <td [colSpan]=\"colspan\" [style.border]=\"0\" class=\"p-0\">\n            <ng-container *ngTemplateOutlet=\"templates['tableDetails']; context: {item, index: i}\" />\n          </td>\n        </tr>\n      }\n    }\n  <ng-container *ngTemplateOutlet=\"noItemsDefaultTemplate\" />\n  </tbody>\n</ng-template>\n\n<ng-template\n  #columnDefaultTemplate\n  let-cellProps=\"cellProps\"\n  let-column=\"column\"\n  let-columnName=\"columnName\"\n  let-item=\"item\"\n  let-tdContent=\"tdContent\"\n>\n  @if (tdContent !== undefined) {\n    <td [cAlign]=\"cellProps?.align\"\n        [cHtmlAttr]=\"cellProps?.['_attributes'] ?? undefined\"\n        [cTableActive]=\"cellProps?.['active']\"\n        [cTableColor]=\"cellProps?.color ?? column[columnName]?._colProps?.color ?? undefined\"\n        [class]=\"getTableDataCellClass(column, item)\"\n        [style]=\"getTableDataCellStyles(column, item)\"\n    >\n      {{ tdContent }}\n    </td>\n  }\n</ng-template>\n\n<!--<ng-template #rowDetailsDefaultTemplate let-item let-index>-->\n<!--  <tr><td [colSpan]=\"colspan\" class=\"p-0\" tabindex=\"-1\" [style]=\"{borderBottomWidth: 0}\"></td></tr>-->\n<!--  <tr class=\"p-0\">-->\n<!--    <td [colSpan]=\"colspan\" class=\"p-0\" [style]=\"{border: 0}\">-->\n<!--      <ng-container *ngTemplateOutlet=\"templates?.tableDetails\"></ng-container>-->\n<!--    </td>-->\n<!--  </tr>-->\n<!--</ng-template>-->\n\n<ng-template #noItemsDefaultTemplate>\n  @if (!currentItems.length) {\n    <tr>\n      <td [colSpan]=\"colspan\" class=\"justify-content-center\">{{ noItemsLabel }}</td>\n    </tr>\n  }\n</ng-template>\n\n<!--todo: filterIconCustomTemplate-->\n<ng-template #filterIconTemplate>\n  <svg class=\"icon icon-custom-size\" pointer-events=\"none\" role=\"img\" viewBox=\"0 0 512 512\"\n       width=\"18\" xmlns=\"http://www.w3.org/2000/svg\">\n    <polygon\n      class=\"ci-primary\"\n      fill=\"var(--ci-primary-color, currentColor)\"\n      points=\"40 16 40 53.828 109.024 136 150.815 136 76.896 48 459.51 48 304 242.388 304 401.373 241.373 464 240 464 240 368 208 368 208 496 254.627 496 336 414.627 336 253.612 496 53.612 496 16 40 16\">\n    </polygon>\n    <polygon\n      class=\"ci-primary\"\n      fill=\"var(--ci-primary-color, currentColor)\"\n      points=\"166.403 248.225 226.864 187.763 204.237 165.135 143.775 225.597 83.313 165.135 60.687 187.763 121.148 248.225 60.687 308.687 83.313 331.314 143.775 270.852 204.237 331.314 226.864 308.687 166.403 248.225\">\n    </polygon>\n  </svg>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { SmartTableComponent } from './smart-table/smart-table.component';\nimport { SmartTableFilterComponent } from './smart-table-filter/smart-table-filter.component';\n\n@NgModule({\n  exports: [SmartTableComponent, SmartTableFilterComponent],\n  imports: [SmartTableComponent, SmartTableFilterComponent]\n})\nexport class SmartTableModule {\n}\n","import { booleanAttribute, Component, inject, input, TemplateRef, viewChild, ViewContainerRef } from '@angular/core';\nimport { BooleanInput } from '@angular/cdk/coercion';\n\n@Component({\n  selector: 'c-stepper-step',\n  exportAs: 'cStepperStep',\n  template: `\n    <ng-template #contentTpl>\n      <ng-content />\n    </ng-template>\n  `,\n  host: {\n    '[style]': '{ display: \"none\" }'\n  }\n})\nexport class StepperStepComponent {\n  static ngAcceptInputType_disabled: BooleanInput;\n  static ngAcceptInputType_optional: BooleanInput;\n  static ngAcceptInputType_editable: BooleanInput;\n\n  /**\n   * ViewContainerRef to render the step content.\n   * This allows dynamic rendering of templates within the step.\n   */\n  readonly viewContainerRef = inject(ViewContainerRef);\n\n  /**\n   * Whether the step is disabled.\n   * @return boolean\n   * @default false\n   */\n  readonly disabled = input(false, { transform: booleanAttribute });\n\n  /**\n   * Unique identifier for the step.\n   * @return string\n   * @default undefined\n   */\n  readonly id = input<string>();\n\n  /**\n   * Optional indicator to display in the step.\n   * Can be a string or a TemplateRef for custom icons.\n   * @return string | TemplateRef<any>\n   * @default (step index will be used if not provided)\n   */\n  readonly indicator = input<string | TemplateRef<any>>();\n\n  /**\n   * Context for the indicator template.\n   * If `indicator` is a TemplateRef, this context will be passed to it.\n   * @return unknown\n   * @default undefined\n   */\n  readonly indicatorCtx = input<unknown>();\n\n  /**\n   * Label for the step, which is required.\n   * Can be a string or a TemplateRef for custom labels.\n   * @return string | TemplateRef<any>\n   */\n  readonly label = input.required<string | TemplateRef<any>>();\n\n  /**\n   * Context for the label template.\n   * If `label` is a TemplateRef, this context will be passed to it.\n   * @return unknown\n   * @default undefined\n   */\n  readonly labelCtx = input<unknown>();\n\n  /**\n   * Whether the step is valid.\n   * This can be used to indicate if the step has been completed successfully.\n   * @return boolean | undefined | null\n   * @default undefined\n   */\n  readonly valid = input<boolean | undefined | null>();\n\n  /**\n   * Whether the step is editable.\n   * If true, the step can be modified by the user.\n   * @return boolean\n   * @default true\n   * todo - implement editable functionality\n   */\n  readonly editable = input(true, { transform: booleanAttribute });\n\n  /**\n   * Whether the step is optional.\n   * If true, the step does not need to be completed for the overall process to succeed.\n   * @return boolean\n   * @default false\n   * todo - implement optional functionality\n   */\n  readonly optional = input(false, { transform: booleanAttribute });\n\n  /**\n   * Template reference for the content of the step.\n   * This is where the main content of the step will be rendered.\n   */\n  readonly templateRef = viewChild.required('contentTpl', { read: TemplateRef });\n}\n","import { Directive, ElementRef, inject } from '@angular/core';\nimport { FocusableOption, FocusOrigin } from '@angular/cdk/a11y';\n\n@Directive({\n  selector: 'button[cStepButton]',\n  exportAs: 'cStepButton'\n})\nexport class StepButtonDirective implements FocusableOption {\n  readonly hostElement: ElementRef<HTMLButtonElement> = inject(ElementRef);\n\n  focus(origin?: FocusOrigin): void {\n    this.hostElement.nativeElement.focus();\n  }\n  get disabled() {\n    return this.hostElement.nativeElement.disabled;\n  }\n\n  getLabel(): string {\n    return this.hostElement.nativeElement.innerText;\n  }\n}\n","import { FocusKeyManager } from '@angular/cdk/a11y';\nimport { BooleanInput, NumberInput } from '@angular/cdk/coercion';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n  afterEveryRender,\n  booleanAttribute,\n  Component,\n  computed,\n  contentChildren,\n  DestroyRef,\n  effect,\n  ElementRef,\n  inject,\n  input,\n  linkedSignal,\n  numberAttribute,\n  output,\n  signal,\n  TemplateRef,\n  untracked,\n  viewChildren\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { Observable } from 'rxjs';\nimport { distinctUntilChanged, tap } from 'rxjs/operators';\nimport { CollapseDirective } from '../collapse';\nimport { RtlService } from '../services';\nimport { StepperStepData } from './stepper.type';\nimport { StepperStepComponent } from './stepper-step.component';\nimport { StepButtonDirective } from './step-button.directive';\n\nlet nextId = 0;\n\n@Component({\n  selector: 'c-stepper',\n  exportAs: 'cStepper',\n  imports: [NgTemplateOutlet, StepButtonDirective, CollapseDirective],\n  templateUrl: './stepper.component.html',\n  styleUrl: './stepper.component.scss',\n  host: {\n    class: 'stepper',\n    '[class]': 'hostClasses()',\n    '[id]': 'id()'\n  }\n})\nexport class StepperComponent {\n  static ngAcceptInputType_defaultActiveStepIndex: NumberInput;\n  static ngAcceptInputType_linear: BooleanInput;\n  static ngAcceptInputType_validation: BooleanInput;\n\n  readonly #destroyRef = inject(DestroyRef);\n  readonly #elementRef = inject(ElementRef);\n  readonly #rtlService = inject(RtlService);\n  readonly #isRtl = signal(false);\n\n  constructor() {\n    afterEveryRender({\n      read: () => {\n        this.#isRtl.set(this.#rtlService.isRTL(this.#elementRef.nativeElement));\n      }\n    });\n  }\n\n  /**\n   * Currently active step index\n   * @returns number\n   * @default 0\n   */\n  readonly activeStepIndexInput = input<number | undefined>(undefined, { alias: 'activeStepIndex' });\n\n  /**\n   * Linked signal for the active step index.\n   * This signal updates based on the input value and emits changes.\n   */\n  readonly activeStepIndex = linkedSignal<number | undefined, number>({\n    source: this.activeStepIndexInput,\n    computation: (newIndex, previous): number => {\n      if (previous === undefined && newIndex === undefined) {\n        return this.defaultActiveStepIndex();\n      }\n      const prevValue: number = previous?.value ?? newIndex ?? this.defaultActiveStepIndex();\n      // Return previous value in these cases\n      if (previous?.source === undefined || this.isStepOutOfScope(newIndex ?? -1) || !this.isStepValid(prevValue)) {\n        this.activeStepIndexChange.emit(prevValue);\n        return prevValue;\n      }\n      return newIndex ?? this.defaultActiveStepIndex();\n    }\n  });\n\n  readonly #activeStepIdxEffect = effect(() => {\n    const activeStepIndex = this.activeStepIndex() ?? untracked(this.defaultActiveStepIndex);\n    if (this.#focusKeyManagerInit()) {\n      const focusManager = this.#focusKeyManager;\n      if (this.linear() && activeStepIndex > (focusManager?.activeItemIndex ?? -1)) {\n        focusManager?.setNextItemActive();\n      } else if (focusManager?.activeItemIndex !== activeStepIndex) {\n        focusManager?.setActiveItem(activeStepIndex);\n      } else {\n        focusManager?.updateActiveItem(activeStepIndex);\n      }\n    }\n  });\n\n  /**\n   * Initial active step index\n   * @return number\n   * @default 0\n   */\n  readonly defaultActiveStepIndex = input(0, { transform: numberAttribute });\n\n  /**\n   * Unique identifier for the Stepper component.\n   * If not provided, a default ID will be generated.\n   * @return string\n   * @default 'stepper-<nextId>'\n   */\n  readonly idInput = input<string | undefined>(undefined, { alias: 'id' });\n\n  /**\n   * Unique identifier for the Stepper component.\n   * If `idInput` is not provided, a default ID will be generated.\n   * @return string\n   */\n  readonly id = computed(() => this.idInput() ?? `stepper-${nextId++}`);\n\n  /**\n   * Layout orientation\n   * - `'horizontal'`: Step indicators and content are placed horizontally (default).\n   * - `'vertical'`: Step indicators and content are stacked vertically.\n   *\n   * Choose `'vertical'` layout for mobile or narrow designs.\n   * @return 'horizontal' | 'vertical'\n   * @default 'horizontal'\n   */\n  readonly layout = input<'horizontal' | 'vertical'>('horizontal');\n\n  /**\n   * Enforces linear progression (cannot skip steps).\n   * - `true`: Users must complete steps sequentially.\n   * - `false`: Users can jump freely between steps.\n   * @return boolean\n   * @default true\n   */\n  readonly linear = input(true, { transform: booleanAttribute });\n\n  /**\n   * Layout of the step indicator (icon and label)\n   * - `'vertical'` – Places the label below the indicator icon.\n   * - `'horizontal'` – Places the label beside the indicator icon (default).\n   * This prop has no effect when `layout=\"vertical\"` is used.\n   * @return 'vertical' | 'horizontal'\n   * @default 'horizontal'\n   */\n  readonly stepButtonLayout = input<'vertical' | 'horizontal'>('horizontal');\n\n  /**\n   * Enforces validation of steps.\n   * Each step must be valid before advancing to the next.\n   * @return boolean\n   * @default false\n   */\n  readonly validation = input(false, { transform: booleanAttribute });\n\n  /**\n   * Event fired when the user completes the last step of the Form Wizard.\n   * Use this to trigger a submit action or redirect after the final step.\n   * @return boolean\n   */\n  readonly finished = output<boolean>();\n\n  /**\n   * Event fired when the user triggers the reset() action.\n   * Use this to reset or clear related form data.\n   * @return void\n   */\n  // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n  readonly onReset = output();\n\n  /**\n   * Indicates if the Stepper is currently resetting.\n   * This is set to `true` when the reset() method is called.\n   * @return boolean\n   */\n  readonly resetting = signal(false);\n\n  /**\n   * Event fired when the active step changes in the Angular Stepper component.\n   * @return number\n   */\n  readonly activeStepIndexChange = output<number>();\n\n  /**\n   * Event fired after a validation check completes for a specific step in the Form Wizard.\n   * Receives an object with the step index and the validation result (`true` or `false`).\n   * Useful for custom validation handling across multistep forms.\n   * todo - implement validation logic\n   */\n  // readonly stepValidationComplete = output<StepperStepValidationResult>();\n\n  protected readonly stepsContent = contentChildren(StepperStepComponent, { descendants: true });\n\n  protected readonly steps = computed(() => {\n    const stepsContent = this.stepsContent();\n    return stepsContent.map((step, index) => {\n      const { disabled, editable, id, indicator, indicatorCtx, label, labelCtx, optional, templateRef, valid } = {\n        ...step\n      };\n      return {\n        templateRef: templateRef(),\n        disabled: disabled(),\n        editable: editable(),\n        id: `${id() ?? this.id()}-step-${index}`,\n        indicator: indicator() ?? index + 1,\n        indicatorRef: indicator() instanceof TemplateRef ? indicator() : undefined,\n        indicatorCtx: indicatorCtx() ?? {},\n        label: label(),\n        labelRef: label() instanceof TemplateRef ? label() : undefined,\n        labelCtx: labelCtx() ?? {},\n        optional: optional(),\n        valid: valid()\n      } as StepperStepData;\n    });\n  });\n\n  /**\n   * Returns the number of steps in the Stepper.\n   * This is useful for determining how many steps are available.\n   * @return number\n   */\n  readonly stepsCount = computed(() => {\n    return this.steps().length;\n  });\n\n  /**\n   * Indicates if the Stepper is currently finishing.\n   * This is set to `true` when the finish() method is called and all steps are valid.\n   * @return boolean\n   */\n  readonly finishing = signal(false);\n\n  readonly #isFinishedEffect = effect(() => {\n    this.finished.emit(this.finishing());\n  });\n\n  #focusKeyManager!: FocusKeyManager<StepButtonDirective>;\n  #focusKeyChange$!: Observable<number>;\n\n  readonly #focusKeyManagerInit = signal(false);\n\n  private readonly stepButtons = viewChildren(StepButtonDirective);\n\n  readonly #stepButtonEffect = effect(() => {\n    const isRtl = this.#isRtl();\n    const isVertical = this.layout() === 'vertical';\n    const linear = this.linear();\n\n    if (untracked(this.#focusKeyManagerInit)) {\n      this.#focusKeyManager\n        .withHomeAndEnd(!linear)\n        .withHorizontalOrientation(isVertical ? null : isRtl ? 'rtl' : 'ltr')\n        .withVerticalOrientation(isVertical);\n      return;\n    }\n    const stepButtons = this.stepButtons();\n    if (stepButtons.length === 0) {\n      return;\n    }\n\n    this.#focusKeyManager = new FocusKeyManager(stepButtons)\n      .skipPredicate((item) => item.disabled)\n      .withHomeAndEnd(!linear)\n      .withHorizontalOrientation(isVertical ? null : isRtl ? 'rtl' : 'ltr')\n      .withVerticalOrientation(isVertical);\n\n    untracked(() => {\n      this.#focusKeyChange$ = this.#focusKeyManager.change.pipe(\n        distinctUntilChanged((previous, current) => {\n          if (this.resetting()) {\n            this.resetting.set(false);\n            this.onReset.emit();\n            return false; // Resetting should always trigger a change\n          }\n          if (this.isStepOutOfScope(current)) {\n            return true;\n          }\n          if (this.isStepDisabled(current)) {\n            return true;\n          }\n          if (current > previous && this.linear() && !this.validation()) {\n            const nextIndex = this.findNextStepIndex(previous);\n            if (current !== nextIndex) {\n              this.#focusKeyManager.setActiveItem(previous);\n              return true;\n            }\n          }\n          if (current > previous && this.linear() && !this.previousStepsValid(current) && this.validation()) {\n            this.#focusKeyManager.setActiveItem(previous);\n            return true;\n          }\n          if (current > previous && !this.isStepValid(previous)) {\n            this.activeStepIndex.set(previous);\n            this.#focusKeyManager.setActiveItem(previous);\n            return true;\n          }\n          return false;\n        }),\n        tap((value) => {\n          this.activeStepIndex.set(value);\n          this.activeStepIndexChange.emit(value);\n        }),\n        takeUntilDestroyed(this.#destroyRef)\n      );\n\n      this.#focusKeyChange$.subscribe();\n\n      this.#focusKeyManagerInit.set(!!this.#focusKeyManager);\n\n      this.activeStepIndex.update((prevIdx) => {\n        return prevIdx ?? this.defaultActiveStepIndex();\n      });\n\n      // this.#focusKeyManager?.setFirstItemActive();\n    });\n  });\n\n  protected readonly hostClasses = computed(() => {\n    return {\n      stepper: true,\n      'stepper-vertical': this.layout() === 'vertical'\n    };\n  });\n\n  /**\n   * Finish action. Attempts to finish the Stepper.\n   */\n  finish() {\n    if (this.allStepsValid()) {\n      this.finishing.set(true);\n    }\n  }\n\n  /**\n   * Next action. Moves to the next step in the Stepper.\n   * If already on the last step, it will attempt to finish().\n   */\n  next() {\n    const activeStepIndex = this.activeStepIndex();\n    const stepsCount = this.stepsCount();\n    if (activeStepIndex < stepsCount - 1) {\n      this.#focusKeyManager?.setNextItemActive();\n    } else {\n      this.finish(); // Attempt finish if already on last step\n    }\n  }\n\n  /**\n   * Previous action. Moves to the previous step in the Stepper.\n   * If already on the first step, it will do nothing.\n   */\n  prev() {\n    if (this.activeStepIndex() > 0) {\n      this.#focusKeyManager?.setPreviousItemActive();\n    }\n  }\n\n  /**\n   * Reset action. Resets the Stepper to its initial state.\n   * This will reset the active step index and emit the onReset event.\n   */\n  reset() {\n    this.finishing.set(false);\n    this.resetting.set(true);\n    setTimeout(() => {\n      this.#focusKeyManager.setFirstItemActive();\n    });\n  }\n\n  protected handleStepClick($event: MouseEvent, idx: number) {\n    this.#focusKeyManager?.setActiveItem(idx);\n  }\n\n  protected handleKeyDown($event: KeyboardEvent) {\n    if (['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown', 'Home', 'End'].includes($event.key)) {\n      this.#focusKeyManager?.onKeydown($event);\n      return;\n    }\n    if (['Tab'].includes($event.key)) {\n      this.#focusKeyManager?.tabOut.next();\n    }\n    return;\n  }\n\n  protected isStepDisabled(index: number) {\n    return this.stepsContent()[index]?.disabled() ?? false;\n  }\n\n  protected isStepOutOfScope(index: number) {\n    return index < 0 || index > this.stepsCount() - 1;\n  }\n\n  protected isStepValid(index: number) {\n    if (!this.validation()) {\n      return true;\n    }\n    return this.stepsContent()[index]?.valid() ?? true;\n  }\n\n  protected findNextStepIndex(startIndex: number): number {\n    const nextStepIndex = this.stepsContent().findIndex(\n      (step, index) => index > startIndex && !step.disabled() //&& step.valid() !== false\n    );\n    return nextStepIndex > startIndex ? nextStepIndex : startIndex;\n  }\n\n  protected previousStepsValid(index: number) {\n    return !this.stepsContent()\n      .slice(0, index)\n      .find((step) => step.valid() === false && !step.disabled());\n  }\n\n  protected readonly allStepsValid = computed(() => {\n    if (!this.validation()) {\n      return true;\n    }\n    return !this.stepsContent().find((step) => step.valid() === false && !step.disabled());\n  });\n}\n","@let isVertical = layout() === 'vertical';\n@let activeIdx = activeStepIndex();\n@let finished = finishing();\n<ol [attr.aria-orientation]=\"layout()\" class=\"stepper-steps\" role=\"tablist\">\n  @for (step of steps(); track step.id; let idx = $index, last = $last) {\n    @let isActive = !finished && activeIdx === idx;\n    @let isComplete = finished || idx < activeIdx;\n    @let isDisabled = step.disabled || finished || (linear() && idx > activeIdx + 1 && step.disabled);\n    @let stepId = step.id;\n    @let panelId = `${step.id}-panel`;\n    <li [class]=\"['stepper-step', stepButtonLayout()]\" role=\"presentation\">\n      <button\n        #stepButton\n        cStepButton\n        [attr.inert]=\"step.disabled || null\"\n        [attr.aria-selected]=\"isActive || null\"\n        [attr.aria-controls]=\"panelId\"\n        [tabindex]=\"isActive ? 0 : -1\"\n        [disabled]=\"isDisabled\"\n        [class]=\"{ 'stepper-step-button': true, active: isActive, complete: isComplete }\"\n        id=\"{{ stepId }}\"\n        type=\"button\"\n        role=\"tab\"\n        (click)=\"step.disabled || handleStepClick($event, idx)\"\n        (keydown)=\"handleKeyDown($event)\"\n      >\n        <span class=\"stepper-step-indicator\">\n          @if (isComplete) {\n            <span class=\"stepper-step-indicator-icon\"></span>\n          } @else {\n            <span class=\"stepper-step-indicator-text\">\n              <ng-container\n                [ngTemplateOutlet]=\"step.indicatorRef || indicatorTpl\"\n                [ngTemplateOutletContext]=\"step.indicatorCtx\"\n              />\n              <ng-template #indicatorTpl>{{ step.indicator }}</ng-template>\n            </span>\n          }\n        </span>\n        <span class=\"stepper-step-label\">\n          <ng-container [ngTemplateOutlet]=\"step.labelRef || labelTpl\" [ngTemplateOutletContext]=\"step.labelCtx\" />\n          <ng-template #labelTpl>{{ step.label }}</ng-template>\n        </span>\n      </button>\n      @if (!last) {\n        <div class=\"stepper-step-connector\"></div>\n      }\n      @if (isVertical) {\n        <div\n          class=\"stepper-step-content\"\n          cCollapse\n          [visible]=\"!resetting() && isActive\"\n          [attr.inert]=\"isActive ? null : true\"\n          id=\"{{ panelId }}\"\n          role=\"tabpanel\"\n          [attr.aria-hidden]=\"!isActive || null\"\n          [attr.aria-labelledby]=\"stepId\"\n          aria-live=\"polite\"\n        >\n          <ng-container *ngTemplateOutlet=\"step.templateRef ?? emptyTpl\" />\n        </div>\n      }\n    </li>\n  }\n</ol>\n@if (!isVertical) {\n  <div class=\"stepper-content\">\n    @for (step of steps(); track step.id; let idx = $index) {\n      @let isActive = !finished && activeIdx === idx;\n      @let stepId = step.id;\n      @let panelId = `${step.id}-panel`;\n      <div\n        [attr.inert]=\"isActive ? null : true\"\n        [class]=\"{ 'stepper-pane': true, show: isActive, active: isActive }\"\n        id=\"{{ panelId }}\"\n        role=\"tabpanel\"\n        [attr.aria-hidden]=\"!isActive || null\"\n        [attr.aria-labelledby]=\"stepId\"\n        aria-live=\"polite\"\n      >\n        <ng-container *ngTemplateOutlet=\"step.templateRef ?? emptyTpl\" />\n      </div>\n    }\n  </div>\n}\n\n<ng-template #contentTpl>\n  <ng-content />\n</ng-template>\n<ng-template #emptyTpl />\n","import { NgModule } from '@angular/core';\n\nimport { StepperComponent } from './stepper.component';\nimport { StepButtonDirective } from './step-button.directive';\nimport { StepperStepComponent } from './stepper-step.component';\n\n@NgModule({\n  imports: [StepperComponent, StepperStepComponent, StepButtonDirective],\n  exports: [StepperComponent, StepperStepComponent, StepButtonDirective]\n})\nexport class StepperModule {}\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { TabContentComponent } from './tab-content/tab-content.component';\n\nexport interface ITabContentState {\n  activeIdx: number;\n  tabContent: TabContentComponent;\n}\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class TabService {\n  private activeTabPaneIdx = new Subject<ITabContentState>();\n  activeTabPaneIdx$ = this.activeTabPaneIdx.asObservable();\n\n  setActiveTabIdx(tabContentState: ITabContentState) {\n    this.activeTabPaneIdx.next(tabContentState);\n  }\n}\n","import { booleanAttribute, ChangeDetectorRef, Component, HostBinding, inject, Input, OnDestroy } from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { TabContentComponent } from '../tab-content/tab-content.component';\nimport { ITabContentState, TabService } from '../tab.service';\n\n@Component({\n  selector: 'c-tab-pane',\n  template: '<ng-content />',\n  styleUrls: ['./tab-pane.component.scss'],\n  exportAs: 'cTabPane',\n  host: { class: 'tab-pane' }\n})\nexport class TabPaneComponent implements OnDestroy {\n  readonly #changeDetectorRef = inject(ChangeDetectorRef);\n  readonly #tabService = inject(TabService);\n\n  constructor() {\n    this.subscribeTabService();\n  }\n\n  public tabPaneIdx!: number;\n  public tabContent!: TabContentComponent;\n  #tabServiceSubscription!: Subscription;\n\n  set active(value: boolean) {\n    const newValue = booleanAttribute(value);\n    if (this.#active !== newValue) {\n      this.#active = newValue;\n      this.#changeDetectorRef.markForCheck();\n    }\n  }\n\n  get active(): boolean {\n    return this.#active;\n  }\n\n  #active: boolean = false;\n\n  @HostBinding('class')\n  get hostClasses() {\n    return {\n      'tab-pane': true,\n      fade: true,\n      show: this.active,\n      active: this.active\n    };\n  }\n\n  @Input()\n  @HostBinding('attr.role')\n  role = 'tabpanel';\n\n  ngOnDestroy(): void {\n    this.subscribeTabService(false);\n  }\n\n  subscribeTabService(subscribe: boolean = true) {\n    if (subscribe) {\n      this.#tabServiceSubscription = this.#tabService.activeTabPaneIdx$.subscribe(\n        (tabContentState: ITabContentState) => {\n          if (tabContentState.tabContent === this.tabContent) {\n            this.active = tabContentState.activeIdx === this.tabPaneIdx;\n          }\n        }\n      );\n    } else {\n      this.#tabServiceSubscription?.unsubscribe();\n    }\n  }\n}\n","import {\n  AfterContentChecked,\n  AfterContentInit,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ContentChildren,\n  inject,\n  Input,\n  numberAttribute,\n  OnChanges,\n  OnDestroy,\n  output,\n  QueryList,\n  SimpleChanges\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { TabPaneComponent } from '../tab-pane/tab-pane.component';\nimport { TabService } from '../tab.service';\n\n@Component({\n  selector: 'c-tab-content',\n  template: '<ng-content />',\n  styleUrls: ['./tab-content.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  exportAs: 'cTabContent',\n  host: { class: 'tab-content' }\n})\nexport class TabContentComponent implements AfterContentChecked, AfterContentInit, OnChanges, OnDestroy {\n  readonly #changeDetectorRef = inject(ChangeDetectorRef);\n  readonly #tabService = inject(TabService);\n\n  /**\n   * Set active tabPane index\n   * @type number\n   */\n  @Input({ transform: numberAttribute })\n  set activeTabPaneIdx(value: number) {\n    const newValue = value;\n    if (this.#activeTabPaneIdx != newValue) {\n      this.#activeTabPaneIdx = newValue;\n      this.activeTabPaneIdxChange?.emit(newValue);\n      this.#changeDetectorRef.markForCheck();\n      this.#changeDetectorRef.detectChanges();\n    }\n  }\n\n  get activeTabPaneIdx() {\n    return this.#activeTabPaneIdx;\n  }\n\n  #activeTabPaneIdx = -1;\n\n  /**\n   * Event emitted on the active tab pane index change.\n   */\n  readonly activeTabPaneIdxChange = output<number>();\n\n  @ContentChildren(TabPaneComponent) public panes!: QueryList<TabPaneComponent>;\n  #tabServiceSubscription!: Subscription;\n\n  ngAfterContentInit(): void {\n    this.subscribeTabService();\n  }\n\n  ngAfterContentChecked(): void {\n    this.panes?.forEach((tabPane, index) => {\n      tabPane.tabContent = this;\n      tabPane.tabPaneIdx = index;\n    });\n    this.refreshTabPaneActive(this.activeTabPaneIdx);\n    this.#tabService.setActiveTabIdx({ tabContent: this, activeIdx: this.activeTabPaneIdx });\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (changes['activeTabPaneIdx']?.currentValue) {\n      this.#tabService.setActiveTabIdx({ tabContent: this, activeIdx: changes['activeTabPaneIdx'].currentValue });\n    }\n  }\n\n  ngOnDestroy(): void {\n    this.subscribeTabService(false);\n  }\n\n  subscribeTabService(subscribe: boolean = true) {\n    if (subscribe) {\n      this.#tabServiceSubscription = this.#tabService.activeTabPaneIdx$.subscribe((tabContentState) => {\n        if (this === tabContentState.tabContent) {\n          this.activeTabPaneIdx = tabContentState.activeIdx;\n        }\n      });\n    } else {\n      this.#tabServiceSubscription?.unsubscribe();\n    }\n  }\n\n  refreshTabPaneActive(idx: number) {\n    // hack for active state pane refresh todo?\n    this.panes?.forEach((tabPane, index) => {\n      tabPane.active = idx === index;\n    });\n  }\n}\n","import {\n  booleanAttribute,\n  ChangeDetectorRef,\n  Directive,\n  HostBinding,\n  HostListener,\n  inject,\n  Input,\n  numberAttribute,\n  OnChanges,\n  OnDestroy,\n  SimpleChanges\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { TabService } from './tab.service';\n\n@Directive({\n  selector: '[cTabContent]'\n})\nexport class TabContentRefDirective implements OnChanges, OnDestroy {\n  readonly #changeDetectorRef = inject(ChangeDetectorRef);\n  readonly #tabService = inject(TabService);\n\n  constructor() {\n    this.subscribeTabService();\n  }\n\n  #tabServiceSubscription!: Subscription;\n\n  /**\n   * Template Ref\n   * @type TemplateRef\n   */\n  @Input('cTabContent') tabContentRef!: any;\n\n  /**\n   * Set active state of tab content\n   * @type boolean\n   * @default false\n   */\n  @Input({ transform: booleanAttribute })\n  set active(value: boolean) {\n    const newValue = value;\n    if (this.#active !== newValue) {\n      this.#active = newValue;\n      this.#changeDetectorRef.detectChanges();\n    }\n  }\n\n  get active() {\n    return this.#active;\n  }\n\n  #active = false;\n\n  /**\n   * Set disabled state of tab content\n   * @type boolean\n   */\n  @Input({ transform: booleanAttribute })\n  set disabled(value: boolean) {\n    this.#disabled = value;\n  }\n\n  get disabled(): boolean {\n    return this.#disabled || this.tabPaneIdx >= this.tabContentRef?.panes?.length;\n  }\n\n  #disabled = false;\n\n  /**\n   * c-tab-pane index respectively\n   * @type number\n   */\n  @Input({ transform: numberAttribute }) tabPaneIdx = -1;\n\n  @HostBinding('class')\n  get hostClasses() {\n    return {\n      active: this.active,\n      disabled: this.disabled\n    };\n  }\n\n  @HostBinding('attr.aria-disabled')\n  get isDisabled(): boolean | null {\n    return this.disabled || null;\n  }\n\n  @HostBinding('attr.disabled')\n  get attrDisabled() {\n    return this.disabled ? '' : null;\n  }\n\n  @HostBinding('attr.aria-selected')\n  private get ariaSelected() {\n    return this.active;\n  }\n\n  @Input()\n  @HostBinding('attr.role')\n  role = 'tab';\n\n  @HostBinding('attr.tabindex')\n  get getTabindex(): string | null {\n    return this.disabled ? '-1' : null;\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (changes['active']?.currentValue) {\n      this.setActiveTabPane();\n    }\n  }\n\n  @HostListener('click', ['$event'])\n  toggleOpen($event: any): void {\n    $event.preventDefault();\n    this.setActiveTabPane();\n  }\n\n  setActiveTabPane() {\n    setTimeout(() => {\n      if (this.tabPaneIdx < this.tabContentRef.panes.length) {\n        this.active = true;\n        this.#tabService.setActiveTabIdx({ tabContent: this.tabContentRef, activeIdx: this.tabPaneIdx });\n      } else {\n        this.active = false;\n      }\n    });\n  }\n\n  ngOnDestroy(): void {\n    this.subscribeTabService(false);\n  }\n\n  subscribeTabService(subscribe: boolean = true) {\n    if (subscribe) {\n      this.#tabServiceSubscription = this.#tabService.activeTabPaneIdx$.subscribe((tabContentState) => {\n        if (tabContentState.tabContent === this.tabContentRef) {\n          this.active = tabContentState.activeIdx === this.tabPaneIdx;\n        }\n      });\n    } else {\n      this.#tabServiceSubscription?.unsubscribe();\n    }\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { TabContentComponent } from './tab-content/tab-content.component';\nimport { TabPaneComponent } from './tab-pane/tab-pane.component';\nimport { TabService } from './tab.service';\nimport { TabContentRefDirective } from './tab-content-ref.directive';\n\n@NgModule({\n  imports: [\n    TabContentComponent,\n    TabContentRefDirective,\n    TabPaneComponent\n  ],\n  exports: [\n    TabContentComponent,\n    TabPaneComponent,\n    TabContentRefDirective\n  ],\n  providers: [\n    TabService\n  ]\n})\nexport class TabsModule {}\n","import { Injectable, signal } from '@angular/core';\n\n@Injectable()\nexport class TabsService {\n  readonly activeItem = signal<any>(undefined);\n  readonly activeItemKey = signal<string | number | undefined>(undefined);\n  readonly id = signal<string | number | undefined>(undefined);\n}\n","import { Component, effect, inject, input, model, ModelSignal } from '@angular/core';\nimport { TabsService } from './tabs.service';\n\nlet nextId = 0;\n\n@Component({\n  exportAs: 'cTabs',\n  selector: 'c-tabs',\n  imports: [],\n  template: '<ng-content />',\n  styleUrl: './tabs.component.scss',\n  providers: [TabsService],\n  host: {\n    '[id]': 'id()',\n    class: 'tabs'\n  }\n})\nexport class TabsComponent {\n  readonly tabsService = inject(TabsService);\n\n  /**\n   * The active item key.\n   * @type <string | number | undefined>\n   */\n  readonly activeItemKey: ModelSignal<string | number | undefined> = model<number | string>();\n\n  /**\n   * The id attribute\n   * @type string\n   */\n  tabsId = `tabs-${nextId++}`;\n  readonly id = input<string>(this.tabsId);\n\n  readonly #activeItemEffect = effect(() => {\n    this.tabsService.id.set(this.id());\n    this.tabsService.activeItemKey.set(this.activeItemKey());\n  });\n\n  readonly #tabsServiceEffect = effect(() => {\n    this.activeItemKey.set(this.tabsService.activeItemKey());\n  });\n}\n","import { FocusableOption, FocusOrigin } from '@angular/cdk/a11y';\nimport {\n  booleanAttribute,\n  computed,\n  DestroyRef,\n  Directive,\n  effect,\n  ElementRef,\n  inject,\n  Injector,\n  input,\n  InputSignal,\n  linkedSignal,\n  OnInit,\n  runInInjectionContext,\n  signal,\n  untracked\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { fromEvent, merge, takeWhile } from 'rxjs';\nimport { filter, tap } from 'rxjs/operators';\nimport { TabsService } from '../tabs.service';\n\n@Directive({\n  exportAs: 'cTab',\n  selector: 'button[cTab]',\n  host: {\n    '[class]': 'hostClasses()',\n    type: 'button',\n    role: 'tab',\n    '[attr.aria-selected]': 'isActive()',\n    '[attr.aria-controls]': 'attrAriaControls()',\n    '[attr.disabled]': 'attrDisabled() || null',\n    '[id]': 'propId()',\n    '[tabindex]': 'isActive() ? 0 : -1'\n  }\n})\nexport class TabDirective implements FocusableOption, OnInit {\n  readonly #injector = inject(Injector);\n  readonly #destroyRef = inject(DestroyRef);\n  readonly #elementRef = inject(ElementRef);\n  readonly #tabsService = inject(TabsService);\n\n  /**\n   * Disabled attribute\n   * @return boolean\n   * @default false\n   */\n  readonly disabledInput = input(false, { transform: booleanAttribute, alias: 'disabled' });\n\n  readonly #disabled = linkedSignal(this.disabledInput);\n  readonly attrDisabled = computed(() => this.#disabled() || null);\n\n  set disabled(value: boolean) {\n    this.#disabled.set(value);\n  }\n\n  get disabled() {\n    return this.#disabled();\n  }\n\n  /**\n   * Item key.\n   * @type string | number\n   * @required\n   */\n  readonly itemKey: InputSignal<string | number> = input.required<string | number>();\n\n  /**\n   * Element id attribute\n   * @type string\n   * @default undefined\n   */\n  readonly id: InputSignal<string | undefined> = input<string>();\n\n  /**\n   * aria-controls attribute\n   * @type string\n   * @default undefined\n   */\n  readonly ariaControls: InputSignal<string | undefined> = input<string | undefined>(undefined, {\n    alias: 'aria-controls'\n  });\n\n  readonly isActive = signal(false);\n\n  readonly hostClasses = computed(() => {\n    return {\n      'nav-link': true,\n      active: this.isActive(),\n      disabled: this.#disabled()\n    } as Record<string, boolean>;\n  });\n\n  readonly propId = computed(() => this.id() ?? `${this.#tabsService.id()}-tab-${this.itemKey()}`);\n\n  readonly attrAriaControls = computed(\n    () => this.ariaControls() ?? `${this.#tabsService.id()}-panel-${this.itemKey()}`\n  );\n\n  readonly #disabledSignalEffect = effect(() => {\n    const disabled = this.#disabled();\n    if (!disabled) {\n      const click$ = fromEvent<MouseEvent>(this.#elementRef.nativeElement, 'click');\n      const focusIn$ = fromEvent<FocusEvent>(this.#elementRef.nativeElement, 'focusin');\n\n      merge(focusIn$, click$)\n        .pipe(\n          filter(($event) => !disabled),\n          tap(($event) => {\n            this.#tabsService.activeItemKey.set(untracked(this.itemKey));\n          }),\n          takeWhile(() => !disabled),\n          takeUntilDestroyed(this.#destroyRef)\n        )\n        .subscribe();\n    }\n  });\n\n  focus(origin?: FocusOrigin): void {\n    this.#elementRef.nativeElement.focus();\n  }\n\n  ngOnInit(): void {\n    runInInjectionContext(this.#injector, () => {\n      effect(() => {\n        const isActive = !this.#disabled() && this.#tabsService.activeItemKey() === this.itemKey();\n        this.isActive.set(isActive);\n      });\n    });\n  }\n}\n","import { FocusKeyManager } from '@angular/cdk/a11y';\nimport {\n  afterEveryRender,\n  Component,\n  computed,\n  contentChildren,\n  DestroyRef,\n  effect,\n  ElementRef,\n  inject,\n  input,\n  InputSignal,\n  signal,\n  untracked\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { tap } from 'rxjs/operators';\nimport { TabDirective } from '../tab/tab.directive';\nimport { TabsService } from '../tabs.service';\nimport { RtlService } from '../../services';\n\n@Component({\n  exportAs: 'cTabsList',\n  selector: 'c-tabs-list',\n  template: '<ng-content />',\n  host: {\n    '[attr.role]': 'role()',\n    '[class]': 'hostClasses()',\n    '(keydown)': 'onKeyDown($event)'\n  }\n})\nexport class TabsListComponent {\n  readonly #destroyRef = inject(DestroyRef);\n  readonly #elementRef = inject(ElementRef);\n  readonly tabsService = inject(TabsService);\n  readonly #rtlService = inject(RtlService);\n  readonly #isRtl = signal(false);\n\n  constructor() {\n    afterEveryRender({\n      read: () => {\n        this.#isRtl.set(this.#rtlService.isRTL(this.#elementRef.nativeElement));\n      }\n    });\n  }\n\n  /**\n   * Specify a layout type for component.\n   * @type 'fill' | 'justified' | undefined\n   * @default undefined\n   */\n  readonly layout: InputSignal<'fill' | 'justified' | undefined> = input();\n\n  /**\n   * Set the variant to tabs, pills or underline.\n   * @type 'pills' | 'tabs' | 'underline' | 'underline-border' | undefined\n   * @default undefined\n   */\n  readonly variant: InputSignal<'pills' | 'tabs' | 'underline' | 'underline-border' | undefined> = input();\n\n  /**\n   * Set the role to tab list.\n   * @default 'tablist'\n   */\n  readonly role = input('tablist');\n\n  readonly hostClasses = computed(() => {\n    const layout = this.layout();\n    const variant = this.variant();\n\n    return {\n      nav: true,\n      [`nav-${layout}`]: layout,\n      [`nav-${variant}`]: variant\n    } as Record<string, boolean>;\n  });\n\n  readonly tabs = contentChildren(TabDirective);\n  #focusKeyManager!: FocusKeyManager<TabDirective>;\n\n  readonly #tabsEffect = effect(() => {\n    const tabs = this.tabs();\n    if (tabs.length === 0) {\n      return;\n    }\n\n    const isRtl = this.#isRtl();\n\n    this.#focusKeyManager = new FocusKeyManager(tabs)\n      .skipPredicate((tab) => tab.disabled === true)\n      .withHorizontalOrientation(isRtl ? 'rtl' : 'ltr')\n      .withHomeAndEnd()\n      .withWrap();\n\n    this.#focusKeyManager.change\n      .pipe(\n        tap((value) => {\n          this.tabsService.activeItemKey.set(this.#focusKeyManager.activeItem?.itemKey());\n          this.tabsService.activeItem.set(this.#focusKeyManager.activeItem);\n        }),\n        takeUntilDestroyed(this.#destroyRef)\n      )\n      .subscribe();\n\n    untracked(() => {\n      setTimeout(() => {\n        const activeItem = tabs.find((tab) => tab.isActive()) ?? tabs.find((tab) => !tab.disabled);\n        const activeItemIndex = tabs.findIndex((tab) => tab === activeItem);\n        this.#focusKeyManager?.updateActiveItem(activeItemIndex < 0 ? 0 : activeItemIndex);\n        this.tabsService.activeItemKey.set(this.#focusKeyManager.activeItem?.itemKey());\n        this.tabsService.activeItem.set(this.#focusKeyManager.activeItem);\n      });\n    });\n  });\n\n  readonly #tabsServiceEffect = effect(() => {\n    const activeItemIndex = this.tabs().findIndex(\n      (tab) => untracked(tab.isActive) && untracked(tab.itemKey) === this.tabsService.activeItemKey()\n    );\n    this.#focusKeyManager?.updateActiveItem(activeItemIndex < 0 ? 0 : activeItemIndex);\n  });\n\n  onKeyDown($event: any) {\n    if (['ArrowLeft', 'ArrowRight'].includes($event.key)) {\n      this.#focusKeyManager.onKeydown($event);\n      return;\n    }\n    if (['Tab'].includes($event.key)) {\n      this.#focusKeyManager?.tabOut.next();\n    }\n    return;\n  }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n  exportAs: 'cTabsContent',\n  selector: 'c-tabs-content',\n  template: '<ng-content />',\n  host: {\n    class: 'tab-content'\n  }\n})\nexport class TabsContentComponent {}\n","import { animate, animateChild, AnimationEvent, query, state, style, transition, trigger } from '@angular/animations';\nimport {\n  Component,\n  computed,\n  inject,\n  input,\n  InputSignal,\n  InputSignalWithTransform,\n  numberAttribute,\n  output,\n  OutputEmitterRef,\n  signal\n} from '@angular/core';\nimport { TabsService } from '../tabs.service';\n\ntype AnimateType = 'hide' | 'show';\ntype VisibleChangeEvent = { itemKey: string | number; visible: boolean };\n\n@Component({\n  exportAs: 'cTabPanel',\n  selector: 'c-tab-panel',\n  template: '<ng-content />',\n  host: {\n    '[class]': 'hostClasses()',\n    '[tabindex]': 'visible() ? tabindex() : -1',\n    '[attr.aria-labelledby]': 'attrAriaLabelledBy()',\n    '[id]': 'propId()',\n    '[attr.role]': 'role()',\n    '[@.disabled]': '!transition()',\n    '[@fadeInOut]': 'visible() ? \"show\" : \"hide\"',\n    '(@fadeInOut.done)': 'onAnimationDone($event)'\n  },\n  animations: [\n    trigger('fadeInOut', [\n      state('show', style({ opacity: 1 })),\n      state('hide', style({ opacity: 0 })),\n      state('void', style({ opacity: 1 })),\n      transition('* => *', [query('@*', [animateChild()], { optional: true }), animate('150ms linear')])\n    ])\n  ]\n})\nexport class TabPanelComponent {\n  readonly tabsService = inject(TabsService);\n\n  /**\n   * aria-labelledby attribute\n   * @type string\n   * @default undefined\n   */\n  readonly ariaLabelledBy: InputSignal<string | undefined> = input<string | undefined>(undefined, {\n    alias: 'aria-labelledby'\n  });\n\n  /**\n   * Element id attribute\n   * @type string\n   * @default undefined\n   */\n  readonly id: InputSignal<string | undefined> = input<string>();\n\n  /**\n   * Item key.\n   * @type string | number\n   * @required\n   */\n  readonly itemKey: InputSignal<string | number> = input.required();\n\n  /**\n   * Element role.\n   * @type string\n   * @default 'tabpanel'\n   */\n  readonly role: InputSignal<string> = input('tabpanel');\n\n  /**\n   * tabindex attribute.\n   * @type number\n   * @default 0\n   */\n  readonly tabindex: InputSignalWithTransform<number, unknown> = input(0, { transform: numberAttribute });\n\n  /**\n   * Enable fade in transition.\n   * @type boolean\n   * @default true\n   */\n  readonly transition: InputSignal<boolean> = input(true);\n\n  /**\n   * visible change output\n   * @type OutputEmitterRef<VisibleChangeEvent>\n   */\n  readonly visibleChange: OutputEmitterRef<VisibleChangeEvent> = output<VisibleChangeEvent>();\n\n  readonly show = signal(false);\n\n  readonly visible = computed(() => {\n    const visible = this.tabsService.activeItemKey() === this.itemKey() && !this.tabsService.activeItem()?.disabled;\n    this.visibleChange?.emit({ itemKey: this.itemKey(), visible });\n    return visible;\n  });\n\n  readonly propId = computed(() => this.id() ?? `${this.tabsService.id()}-panel-${this.itemKey()}`);\n\n  readonly attrAriaLabelledBy = computed(\n    () => this.ariaLabelledBy() ?? `${this.tabsService.id()}-tab-${this.itemKey()}`\n  );\n\n  readonly hostClasses = computed(\n    () =>\n      ({\n        'tab-pane': true,\n        active: this.show(),\n        fade: this.transition(),\n        show: this.show(),\n        invisible: this.tabsService.activeItem()?.disabled\n      }) as Record<string, boolean>\n  );\n\n  onAnimationDone($event: AnimationEvent): void {\n    this.show.set(this.visible());\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { TabsService } from './tabs.service';\nimport { TabsComponent } from './tabs.component';\nimport { TabDirective } from './tab/tab.directive';\nimport { TabsListComponent } from './tabs-list/tabs-list.component';\nimport { TabsContentComponent } from './tabs-content/tabs-content.component';\nimport { TabPanelComponent } from './tab-panel/tab-panel.component';\n\n@NgModule({\n  imports: [TabsComponent, TabsListComponent, TabDirective, TabsContentComponent, TabPanelComponent],\n  exports: [TabsComponent, TabsListComponent, TabDirective, TabsContentComponent, TabPanelComponent],\n  providers: [TabsService]\n})\nexport class Tabs2Module {}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\nimport { TToasterPlacement } from './toaster.component';\nimport { type ToastComponent } from '../toast/toast.component';\n\nexport interface IToasterAction {\n  placement?: TToasterPlacement;\n  toast?: ToastComponent;\n  show?: boolean;\n}\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class ToasterService {\n  readonly #toasterState = new BehaviorSubject<IToasterAction>({});\n  readonly toasterState$ = this.#toasterState.asObservable();\n\n  setState(state: IToasterAction): void {\n    this.#toasterState.next({ ...state });\n  }\n}\n","import {\n  booleanAttribute,\n  ChangeDetectorRef,\n  Component,\n  computed,\n  effect,\n  ElementRef,\n  inject,\n  input,\n  linkedSignal,\n  numberAttribute,\n  OnDestroy,\n  OnInit,\n  output,\n  Renderer2\n} from '@angular/core';\n\nimport { animate, state, style, transition, trigger } from '@angular/animations';\n\nimport { Colors } from '../../coreui.types';\nimport { ToasterService } from '../toaster/toaster.service';\nimport { TToasterPlacement } from '../toaster/toaster.component';\n\ntype AnimateType = 'hide' | 'show';\n\n@Component({\n  selector: 'c-toast',\n  template: '<ng-content />',\n  styleUrls: ['./toast.component.scss'],\n  exportAs: 'cToast',\n  animations: [\n    trigger('fadeInOut', [\n      state('show', style({ opacity: 1, height: '*', padding: '*', border: '*', margin: '*' })),\n      state('hide', style({ opacity: 0, height: 0, padding: 0, border: 0, margin: 0 })),\n      state('void', style({ opacity: 0, height: 0, padding: 0, border: 0, margin: 0 })),\n      transition('show => hide', [animate('{{ time }} {{ easing }}')], {\n        params: { time: '300ms', easing: 'ease-out' }\n      }),\n      transition('hide => show', [animate('{{ time }} {{ easing }}')], {\n        params: { time: '300ms', easing: 'ease-in' }\n      }),\n      transition('show => void', [animate('{{ time }} {{ easing }}')], {\n        params: { time: '300ms', easing: 'ease-out' }\n      }),\n      transition('void => show', [animate('{{ time }} {{ easing }}')], {\n        params: { time: '300ms', easing: 'ease-in' }\n      })\n    ])\n  ],\n  host: {\n    class: 'toast show',\n    '[class]': 'hostClasses()',\n    '(mouseover)': 'clearTimer()',\n    '(mouseout)': 'setTimer()',\n    '[@fadeInOut]': 'animateType',\n    '[@.disabled]': 'animationDisabled()'\n  }\n})\nexport class ToastComponent implements OnInit, OnDestroy {\n  readonly changeDetectorRef = inject(ChangeDetectorRef);\n  readonly hostElement = inject(ElementRef);\n  readonly renderer = inject(Renderer2);\n  readonly toasterService = inject(ToasterService);\n\n  readonly dynamic = input<boolean>();\n  readonly placementInput = input<TToasterPlacement>(undefined, { alias: 'placement' });\n\n  get placement() {\n    return this.placementInput();\n  }\n\n  /**\n   * Auto hide the toast.\n   * @return boolean\n   */\n  readonly autohide = input(true);\n\n  /**\n   * Sets the color context of the component to one of CoreUI’s themed colors.\n   * @return Colors\n   */\n  readonly color = input<Colors>('');\n\n  /**\n   * Delay hiding the toast (ms).\n   * @return number\n   */\n  readonly delay = input(5000, { transform: numberAttribute });\n\n  /**\n   * Apply fade transition to the toast.\n   * @return boolean\n   */\n  readonly fade = input(true);\n\n  /**\n   * Toggle the visibility of component.\n   * @return boolean\n   */\n  readonly visibleInput = input(false, { transform: booleanAttribute, alias: 'visible' });\n\n  readonly #visible = linkedSignal(this.visibleInput);\n\n  readonly #visibleEffect = effect(() => {\n    const newValue = this.#visible();\n    newValue ? this.setTimer() : this.clearTimer();\n    this.visibleChange?.emit(newValue);\n    this.changeDetectorRef.markForCheck();\n  });\n\n  set visible(value: boolean) {\n    this.#visible.set(value);\n  }\n\n  get visible(): boolean {\n    return this.#visible();\n  }\n\n  /**\n   * @ignore\n   */\n  readonly index = input(0, { transform: numberAttribute });\n\n  /**\n   * Event emitted on visibility change. [docs]\n   * @return <boolean>\n   */\n  readonly visibleChange = output<boolean>();\n\n  /**\n   * Event emitted on timer tick. [docs]\n   * @return number\n   */\n  readonly timer = output<number>();\n\n  private timerId: ReturnType<typeof setTimeout> | undefined;\n  private clockId: ReturnType<typeof setInterval> | undefined;\n  private clockTimerId: ReturnType<typeof setTimeout> | undefined;\n\n  private _clock!: number;\n\n  get clock(): number {\n    return this._clock;\n  }\n\n  set clock(value) {\n    this._clock = value;\n    this.timer?.emit(this._clock);\n    this.changeDetectorRef.markForCheck();\n  }\n\n  readonly animationDisabled = computed(() => {\n    return !this.fade();\n  });\n\n  get animateType(): AnimateType {\n    return this.visible ? 'show' : 'hide';\n  }\n\n  readonly hostClasses = computed(() => {\n    const color = this.color();\n    return {\n      toast: true,\n      show: true,\n      [`bg-${color}`]: !!color,\n      'border-0': !!color\n    } as Record<string, boolean>;\n  });\n\n  ngOnInit(): void {\n    if (this.visible) {\n      this.toasterService.setState({\n        toast: this,\n        show: this.visible,\n        placement: this.placement\n      });\n      this.clearTimer();\n      this.setTimer();\n    }\n  }\n\n  ngOnDestroy(): void {\n    this.clearTimer();\n  }\n\n  setTimer(): void {\n    this.clearTimer();\n    if (this.autohide() && this.visible) {\n      this.timerId = this.delay() > 0 ? setTimeout(() => this.onClose(), this.delay()) : undefined;\n      this.setClock();\n    }\n  }\n\n  clearTimer(): void {\n    this.clearClock();\n    clearTimeout(this.timerId);\n    this.timerId = undefined;\n  }\n\n  onClose(): void {\n    this.clearTimer();\n    this.toasterService.setState({\n      toast: this,\n      show: false,\n      placement: this.placement\n    });\n  }\n\n  setClock(): void {\n    this.clearClock();\n    this.clock = 0;\n    this.clockId = setInterval(() => {\n      this.clock += 1;\n      this.changeDetectorRef.markForCheck();\n    }, 1000);\n    this.clockTimerId = setTimeout(() => {\n      this.clearClock();\n    }, this.delay());\n  }\n\n  clearClock(): void {\n    clearTimeout(this.clockTimerId);\n    clearInterval(this.clockId);\n    this.clockId = undefined;\n  }\n}\n","import { Component, inject } from '@angular/core';\nimport { ToastComponent } from '../toast/toast.component';\n\n@Component({\n  selector: 'c-toast-body',\n  template: '<ng-content />',\n  styleUrls: ['./toast-body.component.scss'],\n  exportAs: 'cToastBody',\n  host: {\n    class: 'toast-body',\n  }\n})\nexport class ToastBodyComponent {\n  readonly toast? = inject(ToastComponent, { optional: true });\n\n}\n","import { Directive, inject, input } from '@angular/core';\nimport { ToasterService } from './toaster/toaster.service';\nimport type { ToastComponent } from './toast/toast.component';\n\n@Directive({\n  selector: '[cToastClose]',\n  exportAs: 'cToastClose',\n  host: {\n    '(click)': 'toggleOpen($event)'\n  }\n})\nexport class ToastCloseDirective {\n  readonly #toasterService = inject(ToasterService);\n\n  readonly cToastClose = input<ToastComponent>();\n\n  toggleOpen($event: MouseEvent): void {\n    $event.preventDefault();\n    this.#toasterService.setState({ show: false, toast: this.cToastClose() });\n  }\n}\n","import { Component, inject, input, signal } from '@angular/core';\n\nimport { ButtonCloseDirective } from '../../button';\nimport { ToastComponent } from '../toast/toast.component';\nimport { ToastCloseDirective } from '../toast-close.directive';\n\n@Component({\n  selector: 'c-toast-header',\n  templateUrl: './toast-header.component.html',\n  exportAs: 'cToastHeader',\n  imports: [ToastCloseDirective, ButtonCloseDirective],\n  host: {\n    class: 'toast-header'\n  }\n})\nexport class ToastHeaderComponent {\n  readonly #toast = inject(ToastComponent, { optional: true });\n\n  readonly toast = signal(this.#toast ?? undefined);\n\n  /**\n   * Add close button to a toast header\n   * @return boolean\n   */\n  readonly closeButton = input(true);\n}\n","<ng-container>\n  <ng-content />\n  @if (closeButton()) {\n    <button [cToastClose]=\"toast()\" [style]=\"{outline: 0}\" aria-label=\"close\" cButtonClose class=\"ms-auto\"></button>\n  }\n</ng-container>\n","import { Directive, inject, ViewContainerRef } from '@angular/core';\n\n@Directive({\n  selector: '[cToasterHost]',\n  exportAs: 'cToasterHost'\n})\nexport class ToasterHostDirective {\n  readonly viewContainerRef = inject(ViewContainerRef);\n}\n","import {\n  Component,\n  ComponentRef,\n  computed,\n  contentChildren,\n  DestroyRef,\n  effect,\n  ElementRef,\n  inject,\n  Injector,\n  input,\n  NgModuleRef,\n  OnInit,\n  Renderer2,\n  viewChild,\n  ViewContainerRef\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { IToasterAction, ToasterService } from './toaster.service';\nimport { ToasterHostDirective } from './toaster-host.directive';\nimport { ToastComponent } from '../toast/toast.component';\n\nexport enum ToasterPlacement {\n  Static = 'static',\n  TopStart = 'top-start',\n  TopCenter = 'top-center',\n  TopEnd = 'top-end',\n  MiddleStart = 'middle-start',\n  MiddleCenter = 'middle-center',\n  MiddleEnd = 'middle-end',\n  BottomStart = 'bottom-start',\n  BottomCenter = 'bottom-center',\n  BottomEnd = 'bottom-end'\n}\n\nexport type TToasterPlacement =\n  | ToasterPlacement.Static\n  | ToasterPlacement.TopStart\n  | ToasterPlacement.TopCenter\n  | ToasterPlacement.TopEnd\n  | ToasterPlacement.MiddleStart\n  | ToasterPlacement.MiddleCenter\n  | ToasterPlacement.MiddleEnd\n  | ToasterPlacement.BottomStart\n  | ToasterPlacement.BottomCenter\n  | ToasterPlacement.BottomEnd\n  | string;\n\n@Component({\n  selector: 'c-toaster',\n  templateUrl: './toaster.component.html',\n  exportAs: 'cToaster',\n  imports: [ToasterHostDirective],\n  host: {\n    class: 'toaster toast-container',\n    '[class]': 'hostClasses()'\n  },\n  providers: [ToasterService]\n})\nexport class ToasterComponent implements OnInit {\n  readonly #hostElement = inject(ElementRef);\n  readonly #renderer = inject(Renderer2);\n  readonly #toasterService = inject(ToasterService);\n  readonly #destroyRef = inject(DestroyRef);\n\n  placements = Object.values(ToasterPlacement);\n  toastsDynamic: ComponentRef<any>[] = [];\n\n  /**\n   * Toaster placement\n   * @return TToasterPlacement\n   */\n  readonly placementInput = input<TToasterPlacement>(ToasterPlacement.TopEnd, { alias: 'placement' });\n\n  get placement() {\n    return this.placementInput();\n  }\n\n  /**\n   * Toaster position\n   * @return (string | 'absolute' | 'fixed' | 'static')\n   */\n  readonly position = input<string | 'absolute' | 'fixed' | 'static'>('absolute');\n\n  readonly toasterHost = viewChild.required(ToasterHostDirective);\n  readonly contentToasts = contentChildren(ToastComponent, { read: ViewContainerRef });\n\n  readonly #contentToastsEffect = effect(() => {\n    // Ensure that the contentToasts is available before accessing it\n    // temp fix for: ASSERTION ERROR: Unexpected state: no hydration info available for a given TNode, which represents a view container. [Expected=> null != undefined <=Actual]\n    this.contentToasts();\n  });\n\n  readonly hostClasses = computed(() => {\n    const placement = this.placement;\n    const position = this.position();\n    return {\n      toaster: true,\n      'toast-container': true,\n      [`position-${position}`]: !!position,\n      'top-0': placement.includes('top'),\n      'top-50': placement.includes('middle'),\n      'bottom-0': placement.includes('bottom'),\n      'start-0': placement.includes('start'),\n      'start-50': placement.includes('center'),\n      'end-0': placement.includes('end'),\n      'translate-middle-x': placement.includes('center') && !placement.includes('middle'),\n      'translate-middle-y': placement.includes('middle') && !placement.includes('center'),\n      'translate-middle': placement.includes('middle') && placement.includes('center')\n    } as Record<string, boolean>;\n  });\n\n  ngOnInit(): void {\n    this.stateToasterSubscribe();\n  }\n\n  public addToast(\n    toast: any,\n    props: any,\n    options?: {\n      index?: number;\n      injector?: Injector;\n      ngModuleRef?: NgModuleRef<unknown>;\n      projectableNodes?: Node[][];\n    }\n  ): ComponentRef<any> {\n    const componentRef: ComponentRef<any> = this.toasterHost().viewContainerRef.createComponent(toast, options);\n    this.toastsDynamic.push(componentRef);\n    const index = this.toastsDynamic.indexOf(componentRef);\n    for (const [key, value] of Object.entries(props)) {\n      componentRef.setInput(key, value);\n    }\n    componentRef.setInput('placement', this.placement);\n    componentRef.setInput('dynamic', true);\n    componentRef.setInput('index', index);\n    componentRef.setInput('visible', true);\n    componentRef.instance['visibleChange']?.emit(true);\n    componentRef.changeDetectorRef?.detectChanges();\n    return componentRef;\n  }\n\n  public removeToast(state: IToasterAction): void {\n    this.toastsDynamic?.forEach((item) => {\n      if (state.toast?.dynamic() && item.instance === state.toast) {\n        item.setInput('visible', false);\n        item.instance['visibleChange'].emit(false);\n        item.destroy();\n      }\n    });\n    this.contentToasts()?.forEach((item) => {\n      if (state.toast && item.element.nativeElement === state.toast.hostElement.nativeElement) {\n        if (!state.toast.dynamic()) {\n          state.toast.visible = false;\n        }\n      }\n    });\n  }\n\n  private stateToasterSubscribe(): void {\n    this.#toasterService.toasterState$.pipe(takeUntilDestroyed(this.#destroyRef)).subscribe((state) => {\n      if (state.show === false) {\n        this.removeToast(state);\n      }\n      // if (state.show === true && state.toast?.dynamic() === undefined) {\n      //   /* empty */\n      // }\n    });\n  }\n}\n","<ng-template cToasterHost />\n<ng-content />\n","import { NgModule } from '@angular/core';\nimport { ToastComponent } from './toast/toast.component';\nimport { ToastHeaderComponent } from './toast-header/toast-header.component';\nimport { ToastBodyComponent } from './toast-body/toast-body.component';\nimport { ToasterComponent } from './toaster/toaster.component';\nimport { ToasterService } from './toaster/toaster.service';\nimport { ToasterHostDirective } from './toaster/toaster-host.directive';\nimport { ToastCloseDirective } from './toast-close.directive';\n\n@NgModule({\n  imports: [\n    ToastBodyComponent,\n    ToastComponent,\n    ToastCloseDirective,\n    ToastHeaderComponent,\n    ToasterComponent,\n    ToasterHostDirective\n  ],\n  providers: [ToasterService],\n  exports: [\n    ToastBodyComponent,\n    ToastComponent,\n    ToastCloseDirective,\n    ToastHeaderComponent,\n    ToasterComponent,\n    ToasterHostDirective\n  ]\n})\nexport class ToastModule {\n}\n","import { Component, computed, contentChildren, effect, input, InputSignal, TemplateRef } from '@angular/core';\n\nimport { Colors } from '../../coreui.types';\nimport { TemplateIdDirective } from '../../shared';\nimport { CardBodyComponent, CardComponent } from '../../card';\nimport { NgTemplateOutlet } from '@angular/common';\n\n@Component({\n  selector: 'c-widget-stat-a',\n  templateUrl: './widget-stat-a.component.html',\n  exportAs: 'cWidgetStatA',\n  imports: [CardBodyComponent, NgTemplateOutlet],\n  host: { class: 'card', '[class]': 'hostClasses()' }\n})\nexport class WidgetStatAComponent extends CardComponent {\n  /**\n   * Sets the color context of the component to one of CoreUI’s themed colors.\n   * @type Colors\n   */\n  // override readonly color = input<Colors>();\n\n  /**\n   * Title of the widget to display\n   * @type string\n   */\n  readonly title: InputSignal<string | undefined> = input();\n\n  /**\n   * Value for your widget to display\n   * @type string\n   */\n  readonly value: InputSignal<string | undefined> = input<string>();\n\n  templates: Record<string, TemplateRef<any>> = {};\n\n  readonly contentTemplates = contentChildren(TemplateIdDirective, { descendants: true });\n\n  readonly #contentTemplatesEffect = effect(() => {\n    this.contentTemplates().forEach((child: TemplateIdDirective) => {\n      this.templates[child.id] = child.templateRef;\n    });\n  });\n\n  override readonly hostClasses = computed(() => {\n    const color = this.color();\n    return {\n      card: true,\n      [`bg-${color}`]: !!color,\n      'text-white': !!color\n    } as Record<string, boolean>;\n  });\n\n  get bodyClasses() {\n    return {\n      'pb-0': true,\n      'd-flex': true,\n      'justify-content-between': true,\n      'align-items-start': true\n    };\n  }\n}\n","<ng-container>\n  <c-card-body [class]=\"bodyClasses\">\n    <div>\n      @if (!!value() || templates?.['widgetValueTemplate']) {\n        <div class=\"fs-4 fw-semibold\">\n          <ng-container *ngTemplateOutlet=\"templates?.['widgetValueTemplate'] || defaultWidgetValueTemplate\" />\n        </div>\n      }\n      @if (!!title() || templates?.['widgetTitleTemplate']) {\n        <div>\n          <ng-container *ngTemplateOutlet=\"templates?.['widgetTitleTemplate'] || defaultWidgetTitleTemplate\" />\n        </div>\n      }\n    </div>\n    <ng-container *ngTemplateOutlet=\"templates?.['widgetActionTemplate'] || defaultWidgetActionTemplate\" />\n  </c-card-body>\n  <ng-container *ngTemplateOutlet=\"templates?.['widgetChartTemplate'] || defaultWidgetChartTemplate\" />\n</ng-container>\n\n<ng-template #defaultWidgetTitleTemplate>\n  {{ title() }}\n</ng-template>\n\n<ng-template #defaultWidgetValueTemplate>\n  {{ value() }}\n</ng-template>\n\n<ng-template #defaultWidgetChartTemplate>\n  <ng-content select=\".chart-wrapper\" />\n</ng-template>\n\n<ng-template #defaultWidgetActionTemplate>\n  <ng-content />\n</ng-template>\n","import { booleanAttribute, Component, computed, input, InputSignal, InputSignalWithTransform } from '@angular/core';\n\nimport { CardBodyComponent, CardComponent } from '../../card';\n\n@Component({\n  selector: 'c-widget-stat-b',\n  templateUrl: './widget-stat-b.component.html',\n  exportAs: 'cWidgetStatB',\n  imports: [CardBodyComponent],\n  host: { class: 'card', '[class]': 'hostClasses()' }\n})\nexport class WidgetStatBComponent extends CardComponent {\n  constructor() {\n    super();\n  }\n\n  /**\n   * Sets the color context of the component to one of CoreUI themed colors.\n   * @type Colors\n   */\n  // override readonly color: InputSignal<Colors | undefined> = input();\n\n  /**\n   * Sets the text-color context of the component to one of CoreUI themed colors.\n   * via TextColorDirective\n   * @type TextColors\n   */\n  // override readonly textColor: InputSignal<TextColors | undefined> = input();\n\n  /**\n   * Title of the widget to display\n   * @type string\n   */\n  readonly title: InputSignal<string | undefined> = input<string>();\n\n  /**\n   * Helper text for your widget.\n   * @type string\n   */\n  readonly text: InputSignal<string | undefined> = input<string>();\n\n  /**\n   * Value for your widget to display\n   * @type string\n   */\n  readonly value: InputSignal<string | undefined> = input<string>();\n\n  /**\n   * Invert colors from their default dark shade.\n   * @type boolean\n   */\n  readonly inverse: InputSignalWithTransform<boolean, unknown> = input(false, { transform: booleanAttribute });\n\n  override readonly hostClasses = computed(() => {\n    const color = this.color();\n    const textColor = this.textColor();\n    return {\n      card: true,\n      [`bg-${color}`]: !!color,\n      [`text-${textColor}`]: !!textColor,\n      'text-white': this.inverse()\n    } as Record<string, boolean>;\n  });\n}\n","<c-card-body>\n  @if (!!value()) {\n    <div class=\"fs-4 fw-semibold\">{{ value() }}</div>\n  }\n  @if (!!title()) {\n    <div>{{ title() }}</div>\n  }\n  <ng-content />\n  @if (text()) {\n    <small [class]=\"inverse() ? 'text-white text-opacity-75' : 'text-body-secondary'\">\n      {{ text() }}\n    </small>\n  }\n</c-card-body>\n","import { booleanAttribute, Component, computed, contentChildren, effect, input, TemplateRef } from '@angular/core';\n\nimport { CardBodyComponent, CardComponent } from '../../card';\nimport { TemplateIdDirective } from '../../shared';\nimport { NgTemplateOutlet } from '@angular/common';\n\n@Component({\n  selector: 'c-widget-stat-c',\n  templateUrl: './widget-stat-c.component.html',\n  exportAs: 'cWidgetStatC',\n  imports: [CardBodyComponent, NgTemplateOutlet],\n  host: { '[class]': 'hostExtendedClass()' }\n})\nexport class WidgetStatCComponent extends CardComponent {\n  constructor() {\n    super();\n  }\n\n  /**\n   * Icon for your component.\n   * @type string\n   */\n  readonly icon = input<string>();\n\n  /**\n   * Title of the widget to display\n   * @type string\n   */\n  readonly title = input<string>();\n\n  /**\n   * Value for your widget to display\n   * @type string|number\n   */\n  readonly value = input<string | number>();\n\n  /**\n   * Invert colors from their default dark shade.\n   * @type boolean\n   */\n  readonly inverse = input(false, { transform: booleanAttribute });\n\n  templates: Record<string, TemplateRef<any>> = {};\n  readonly contentTemplates = contentChildren(TemplateIdDirective, { descendants: true });\n\n  readonly #contentTemplatesEffect = effect(() => {\n    this.contentTemplates().forEach((child: TemplateIdDirective) => {\n      this.templates[child.id] = child.templateRef;\n    });\n  });\n\n  readonly hostExtendedClass = computed(() => {\n    return { ...this.hostClasses(), 'text-white': this.inverse() } as Record<string, boolean>;\n  });\n\n  readonly titleClasses = computed(() => {\n    const inverse = this.inverse();\n    return {\n      'text-body-secondary': !inverse,\n      'text-white': inverse,\n      'text-opacity-75': inverse,\n      [`text-${this.textColor()}`]: !!this.textColor()\n    } as Record<string, boolean>;\n  });\n\n  readonly valueClasses = computed(() => {\n    return {\n      'fs-4': !this.textColor(),\n      'fw-semibold': true,\n      ...this.titleClasses(),\n      'text-opacity-75': false\n    } as Record<string, boolean>;\n  });\n\n  readonly iconClasses = computed(() => {\n    return {\n      'mb-4': !this.textColor(),\n      'text-end': true,\n      ...this.titleClasses()\n    } as Record<string, boolean>;\n  });\n}\n","<c-card-body>\n  @if (icon() || templates?.['widgetIconTemplate']) {\n    <div [class]=\"iconClasses()\">\n      <ng-container *ngTemplateOutlet=\"templates?.['widgetIconTemplate'] || defaultWidgetIconTemplate\" />\n    </div>\n  }\n  @if (!!value()) {\n    <div [class]=\"valueClasses()\">\n      {{ value() }}\n    </div>\n  }\n  @if (!!title()) {\n    <div [class]=\"titleClasses()\">\n      {{ title() }}\n    </div>\n  }\n  @if (templates?.['widgetProgressTemplate']) {\n    <ng-container *ngTemplateOutlet=\"templates?.['widgetProgressTemplate'] || defaultWidgetProgressTemplate\" />\n  }\n</c-card-body>\n\n<ng-template #defaultWidgetIconTemplate>\n  {{ icon() }}\n</ng-template>\n\n<ng-template #defaultWidgetProgressTemplate>\n  <ng-content />\n</ng-template>\n","import { Component, computed, input } from '@angular/core';\nimport { Colors } from '../../coreui.types';\nimport { CardBodyComponent, CardComponent, CardHeaderComponent } from '../../card';\nimport { ColComponent, RowDirective } from '../../grid';\n\nexport type WidgetStatDValue = {\n  title?: string;\n  value?: number | string;\n};\n\n@Component({\n  selector: 'c-widget-stat-d',\n  templateUrl: './widget-stat-d.component.html',\n  exportAs: 'cWidgetStatD',\n  imports: [CardHeaderComponent, CardBodyComponent, ColComponent, RowDirective],\n  host: { class: 'card' }\n})\nexport class WidgetStatDComponent extends CardComponent {\n  /**\n   * Sets the color context of the component to one of CoreUI’s themed colors.\n   * @type Colors\n   */\n  // override readonly color = input<Colors>();\n\n  /**\n   * Values and subtitles for your component.\n   * @type WidgetStatDValue\n   */\n  readonly values = input<WidgetStatDValue[]>();\n\n  readonly headerClasses = computed(() => {\n    return {\n      'position-relative': true,\n      'd-flex': true,\n      'justify-content-center': true,\n      'align-items-center': true,\n      [`bg-${this.color()}`]: this.color()\n    } as Record<string, boolean>;\n  });\n}\n","<c-card-header [class]=\"headerClasses()\">\n  <ng-content />\n</c-card-header>\n<c-card-body cRow class=\"text-center\">\n  @for (item of values(); track item; let i = $index) {\n    @if (i % 2 !== 0) {\n      <div class=\"vr\"></div>\n    }\n    <c-col>\n      <div class=\"fs-5 fw-semibold\">{{ item.value }}</div>\n      <div class=\"text-uppercase text-body-secondary small\">{{ item.title }}</div>\n    </c-col>\n  }\n</c-card-body>\n","import { Component, computed, input } from '@angular/core';\nimport { CardBodyComponent, CardComponent } from '../../card';\n\n@Component({\n  selector: 'c-widget-stat-e',\n  templateUrl: './widget-stat-e.component.html',\n  exportAs: 'cWidgetStatE',\n  imports: [CardBodyComponent]\n})\nexport class WidgetStatEComponent extends CardComponent {\n  constructor() {\n    super();\n  }\n\n  /**\n   * Title of the widget to display\n   * @type string\n   */\n  readonly title = input<string>();\n\n  /**\n   * Value for your widget to display\n   * @type string | number\n   */\n  readonly value = input<string | number>();\n\n  readonly titleClasses = computed(() => {\n    const textColor = this.textColor();\n    return {\n      'text-body-secondary': !textColor,\n      small: true,\n      'text-uppercase': true,\n      'fw-semibold': true,\n      [`text-${textColor}`]: !!textColor\n    } as Record<string, boolean>;\n  });\n}\n","<c-card-body class=\"text-center\">\n  @if (!!title()) {\n    <div [class]=\"titleClasses()\">{{ title() }}</div>\n  }\n  @if (!!value()) {\n    <div class=\"fs-6 fw-semibold py-3\">{{ value() }}</div>\n  }\n  <ng-content />\n</c-card-body>\n","import { booleanAttribute, Component, computed, contentChildren, effect, input, TemplateRef } from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\n\nimport { Colors } from '../../coreui.types';\nimport { TemplateIdDirective } from '../../shared';\nimport { CardBodyComponent, CardComponent, CardFooterComponent } from '../../card';\n\n@Component({\n  selector: 'c-widget-stat-f',\n  templateUrl: './widget-stat-f.component.html',\n  exportAs: 'cWidgetStatB',\n  imports: [CardBodyComponent, CardFooterComponent, NgTemplateOutlet],\n  host: { class: 'card', '[class]': 'hostClasses()' }\n})\nexport class WidgetStatFComponent extends CardComponent {\n  /**\n   * Sets the color context of the component to one of CoreUI’s themed colors.\n   * @type Colors\n   */\n  // override readonly color = input<Colors>();\n\n  /**\n   * Sets the text-color context of the component to one of CoreUI’s themed colors.\n   * @type Colors\n   */\n  // override readonly textColor = input<TextColors | 'white' | 'muted'>();\n\n  /**\n   * Footer for your widget\n   * @type string\n   */\n  readonly footer = input<string>();\n\n  /**\n   * Icon for your widget\n   * @type string\n   */\n  readonly icon = input<string>();\n\n  /**\n   * Set padding of your component.\n   * @type boolean\n   */\n  readonly padding = input(false, { transform: booleanAttribute });\n\n  /**\n   * Title of the widget to display\n   * @type string\n   */\n  readonly title = input<string>();\n\n  /**\n   * Value for your widget to display\n   * @type string\n   */\n  readonly value = input<string | number>();\n\n  templates: Record<string, TemplateRef<any>> = {};\n  readonly contentTemplates = contentChildren(TemplateIdDirective, { descendants: true });\n\n  readonly #contentTemplatesEffect = effect(() => {\n    this.contentTemplates().forEach((child: TemplateIdDirective) => {\n      this.templates[child.id] = child.templateRef;\n    });\n  });\n\n  readonly cardBodyClasses = computed(() => {\n    return {\n      'd-flex': true,\n      'align-items-center': true,\n      'p-0': !this.padding()\n    } as Record<string, boolean>;\n  });\n\n  readonly iconClasses = computed(() => {\n    const color = this.color();\n    const padding = this.padding();\n\n    return {\n      'me-3': !this.textColor(),\n      'text-white': true,\n      [`bg-${color}`]: !!color,\n      'p-3': padding,\n      'p-4': !padding,\n      'rounded-start-1': !padding\n    } as Record<string, boolean>;\n  });\n\n  readonly titleClasses = computed(() => {\n    const textColor = this.textColor();\n    return {\n      'text-body-secondary': !textColor,\n      small: true,\n      'text-uppercase': true,\n      'fw-semibold': true,\n      [`text-${textColor}`]: !!textColor\n    } as Record<string, boolean>;\n  });\n\n  readonly valueClasses = computed(() => {\n    const textColor = this.textColor();\n    return {\n      'fs-6': !textColor,\n      'fw-semibold': true,\n      [`text-${textColor}`]: !!textColor\n    } as Record<string, boolean>;\n  });\n}\n","<ng-container>\n  <c-card-body [class]=\"cardBodyClasses()\">\n    <div [class]=\"iconClasses()\">\n      <ng-container *ngTemplateOutlet=\"templates?.['widgetIconTemplate'] || defaultWidgetIconTemplate\" />\n    </div>\n    <div>\n      <div [class]=\"valueClasses()\">{{ value() }}</div>\n      <div [class]=\"titleClasses()\">{{ title() }}</div>\n    </div>\n  </c-card-body>\n  @if (footer() || templates?.['widgetFooterTemplate']) {\n    <c-card-footer>\n      <ng-container *ngTemplateOutlet=\"templates?.['widgetFooterTemplate'] || defaultFooterIconTemplate\" />\n    </c-card-footer>\n  }\n</ng-container>\n\n<ng-template #defaultWidgetIconTemplate>\n  <span>{{ icon() }}</span>\n</ng-template>\n\n<ng-template #defaultFooterIconTemplate>\n  <span>{{ footer() }}</span>\n</ng-template>\n","import { NgModule } from '@angular/core';\n\nimport { WidgetStatAComponent } from './widget-stat-a/widget-stat-a.component';\nimport { WidgetStatBComponent } from './widget-stat-b/widget-stat-b.component';\nimport { WidgetStatCComponent } from './widget-stat-c/widget-stat-c.component';\nimport { WidgetStatDComponent } from './widget-stat-d/widget-stat-d.component';\nimport { WidgetStatEComponent } from './widget-stat-e/widget-stat-e.component';\nimport { WidgetStatFComponent } from './widget-stat-f/widget-stat-f.component';\n\n@NgModule({\n  imports: [\n    WidgetStatAComponent,\n    WidgetStatBComponent,\n    WidgetStatCComponent,\n    WidgetStatDComponent,\n    WidgetStatEComponent,\n    WidgetStatFComponent\n  ],\n  exports: [\n    WidgetStatAComponent,\n    WidgetStatBComponent,\n    WidgetStatCComponent,\n    WidgetStatDComponent,\n    WidgetStatEComponent,\n    WidgetStatFComponent\n  ]\n})\nexport class WidgetModule {}\n","/*\n * Public API Surface of coreui-angular\n */\n\nexport * from './lib/coreui.types';\nexport * from './lib/shared';\nexport * from './lib/accordion';\nexport * from './lib/autocomplete';\nexport * from './lib/alert';\nexport * from './lib/avatar';\nexport * from './lib/badge';\nexport * from './lib/backdrop';\nexport * from './lib/breadcrumb';\nexport * from './lib/button';\nexport * from './lib/button-group';\nexport * from './lib/calendar';\nexport * from './lib/callout';\nexport * from './lib/card';\nexport * from './lib/carousel';\nexport * from './lib/collapse';\nexport * from './lib/date-picker';\nexport * from './lib/date-range-picker';\nexport * from './lib/dropdown';\nexport * from './lib/element-cover';\nexport * from './lib/footer';\nexport * from './lib/form';\nexport * from './lib/grid';\nexport * from './lib/header';\nexport * from './lib/image';\nexport * from './lib/list-group';\nexport * from './lib/loading-button';\nexport * from './lib/multi-select';\nexport * from './lib/nav';\nexport * from './lib/navbar';\nexport * from './lib/modal';\nexport * from './lib/offcanvas';\nexport * from './lib/one-time-password';\nexport * from './lib/pagination';\nexport * from './lib/placeholder';\nexport * from './lib/popover';\nexport * from './lib/progress';\nexport * from './lib/rating';\nexport * from './lib/range-slider';\nexport * from './lib/services';\nexport * from './lib/sidebar';\nexport * from './lib/smart-pagination';\nexport * from './lib/smart-table';\nexport * from './lib/spinner';\nexport * from './lib/stepper';\nexport * from './lib/table';\nexport * from './lib/tabs';\nexport * from './lib/tabs-2';\nexport * from './lib/time-picker';\nexport * from './lib/toast';\nexport * from './lib/tooltip';\nexport * from './lib/utilities';\nexport * from './lib/widget';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["nextId","i1.ThemeDirective","i1","i2","i1.ProgressBarDirective","i1.SidebarToggleDirective","map","debounceTime"],"mappings":"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K,WAAW,CAAC,EAAE,KAAK,IAAI,IAAI;IAEtG,UAAU,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,UAAU,KAAI;QAChD,UAAU,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,KAAK,IAAI,IAAI,WAAW,IAAI,IAAI,KAAK,WAAW,IAAI,IAAI,CAAC;AAClG,IAAA,CAAC,CAAC;AAEF,IAAA,OAAO,UAAU;AACnB,CAAC;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA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"}