@coreui/angular
Version:
CoreUI Components Library for Angular
1 lines • 682 kB
Source Map (JSON)
{"version":3,"file":"coreui-angular.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/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/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/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/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/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/footer/footer.component.ts","../../../projects/coreui-angular/src/lib/footer/footer.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-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/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/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/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/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/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/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/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/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/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.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 // eslint-disable-next-line @angular-eslint/no-input-rename\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\n *ngTemplateOutlet=\"tmpl['accordionHeader'] || defaultAccordionHeaderContentTemplate; context: itemContext\">\n </ng-container>\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\n *ngTemplateOutlet=\"tmpl['accordionBody'] || defaultAccordionBodyContentTemplate; context: itemContext\">\n </ng-container>\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 { 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 * @type InputSignal<Shapes>\n */\n readonly shape: InputSignal<Shapes | undefined> = input<Shapes>();\n\n /**\n * Size the component small or large.\n * @type InputSignal<'sm' | 'lg' | ''>\n */\n readonly size: InputSignal<'' | 'sm' | 'lg'> = input<'' | 'sm' | 'lg'>('');\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 return {\n btn: true,\n [`btn-${this.color()}`]: !!this.color() && !this.variant(),\n [`btn-${this.variant()}`]: !!this.variant() && !this.color(),\n [`btn-${this.variant()}-${this.color()}`]: !!this.variant() && !!this.color(),\n [`btn-${this.size()}`]: !!this.size(),\n [`${this.shape()}`]: !!this.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 return {\n btn: true,\n 'btn-close': true,\n 'btn-close-white': this.white(),\n [`btn-${this.size()}`]: !!this.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 retur