@coreui/angular
Version:
CoreUI for Angular UI components library
1 lines • 619 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/html-attr.directive.ts","../../../projects/coreui-angular/src/lib/shared/template-id.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/accordion/accordion-item/accordion-item.component.ts","../../../projects/coreui-angular/src/lib/accordion/accordion-item/accordion-item.component.html","../../../projects/coreui-angular/src/lib/collapse/collapse.module.ts","../../../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/alert/alert.component.ts","../../../projects/coreui-angular/src/lib/alert/alert.component.html","../../../projects/coreui-angular/src/lib/button/button.module.ts","../../../projects/coreui-angular/src/lib/alert/alert.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.component.html","../../../projects/coreui-angular/src/lib/badge/badge.module.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/breadcrumb.component.html","../../../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-img-overlay/card-img-overlay.component.html","../../../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/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.animation.ts","../../../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-inner/carousel-inner.component.ts","../../../projects/coreui-angular/src/lib/carousel/carousel-inner/carousel-inner.component.html","../../../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-feedback/form-feedback.component.ts","../../../projects/coreui-angular/src/lib/form/input-group/input-group.component.ts","../../../projects/coreui-angular/src/lib/form/form-select/form-select.directive.ts","../../../projects/coreui-angular/src/lib/form/form-label/form-label.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-check/form-check-input.directive.ts","../../../projects/coreui-angular/src/lib/form/form-control/form-control.directive.ts","../../../projects/coreui-angular/src/lib/form/form-text/form-text.directive.ts","../../../projects/coreui-angular/src/lib/form/form-floating/form-floating.directive.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-item.component.html","../../../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/backdrop/backdrop.service.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.component.ts","../../../projects/coreui-angular/src/lib/progress/progress-bar.component.ts","../../../projects/coreui-angular/src/lib/progress/progress.module.ts","../../../projects/coreui-angular/src/lib/services/class-toggle.service.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/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.component.ts","../../../projects/coreui-angular/src/lib/sidebar/sidebar-header/sidebar-header.component.ts","../../../projects/coreui-angular/src/lib/sidebar/sidebar-header/sidebar-header.component.html","../../../projects/coreui-angular/src/lib/sidebar/sidebar-footer/sidebar-footer.component.ts","../../../projects/coreui-angular/src/lib/sidebar/sidebar-footer/sidebar-footer.component.html","../../../projects/coreui-angular/src/lib/sidebar/sidebar-nav/sidebar-nav.service.ts","../../../projects/coreui-angular/src/lib/sidebar/sidebar-nav/sidebar-nav-divider.component.ts","../../../projects/coreui-angular/src/lib/sidebar/sidebar-nav/sidebar-nav-badge.pipe.ts","../../../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-icon.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-title.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.component.html","../../../projects/coreui-angular/src/lib/sidebar/sidebar-nav/sidebar-nav-group.component.html","../../../projects/coreui-angular/src/lib/sidebar/sidebar.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-pane/tab-pane.component.html","../../../projects/coreui-angular/src/lib/tabs/tab-content/tab-content.component.ts","../../../projects/coreui-angular/src/lib/tabs/tab-content/tab-content.component.html","../../../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/toast/toaster/toaster.service.ts","../../../projects/coreui-angular/src/lib/toast/toast/toast.component.ts","../../../projects/coreui-angular/src/lib/toast/toast/toast.component.html","../../../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/utilities/bg-color.directive.ts","../../../projects/coreui-angular/src/lib/utilities/border.directive.ts","../../../projects/coreui-angular/src/lib/utilities/text-color.directive.ts","../../../projects/coreui-angular/src/lib/utilities/rounded.directive.ts","../../../projects/coreui-angular/src/lib/utilities/align.directive.ts","../../../projects/coreui-angular/src/lib/utilities/utilities.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';\r\n\r\nexport enum BreakpointInfix {\r\n xs = 'xs',\r\n sm = 'sm',\r\n md = 'md',\r\n lg = 'lg',\r\n xl = 'xl',\r\n xxl = 'xxl'\r\n}\r\n\r\nexport type BreakpointInfixStrings = keyof typeof BreakpointInfix;\r\n\r\nexport type Breakpoints = BreakpointInfixStrings | string;\r\n\r\nexport type Sizes = 'sm' | 'md' | 'lg' | 'xl' | 'xxl' | string;\r\n\r\nexport type Colors =\r\n | 'primary'\r\n | 'secondary'\r\n | 'success'\r\n | 'danger'\r\n | 'warning'\r\n | 'info'\r\n | 'dark'\r\n | 'light'\r\n | string;\r\n\r\nexport type ColorsGradient =\r\n | `${Colors}-gradient`;\r\n\r\nexport type BackgroundColors = Colors | 'body' | 'white' | 'transparent';\r\n\r\nexport type Directions = 'down' | 'up' | 'start' | 'end' | '';\r\n\r\nexport type TextColors =\r\n | Colors\r\n | 'body'\r\n | 'white'\r\n | 'muted'\r\n | 'black-50'\r\n | 'white-50'\r\n | 'high-emphasis'\r\n | 'medium-emphasis'\r\n | 'disabled'\r\n | 'high-emphasis-inverse'\r\n | 'medium-emphasis-inverse'\r\n | 'disabled-inverse';\r\n\r\nexport type Alignment =\r\n | 'baseline'\r\n | 'top'\r\n | 'middle'\r\n | 'bottom'\r\n | 'text-top'\r\n | 'text-bottom';\r\n\r\nexport type BadgePositions =\r\n | 'top-start'\r\n | 'top-end'\r\n | 'bottom-end'\r\n | 'bottom-start'\r\n | string\r\n | undefined;\r\n\r\nexport type Placements =\r\n | 'auto'\r\n | 'auto-start'\r\n | 'auto-end'\r\n | 'top-end'\r\n | 'top'\r\n | 'top-start'\r\n | 'bottom-end'\r\n | 'bottom'\r\n | 'bottom-start'\r\n | 'right-start'\r\n | 'right'\r\n | 'right-end'\r\n | 'left-start'\r\n | 'left'\r\n | 'left-end'\r\n | undefined;\r\n\r\nexport type Shapes =\r\n | 'rounded'\r\n | 'rounded-top'\r\n | 'rounded-end'\r\n | 'rounded-bottom'\r\n | 'rounded-start'\r\n | 'rounded-circle'\r\n | 'rounded-pill'\r\n | 'rounded-0'\r\n | 'rounded-1'\r\n | 'rounded-2'\r\n | 'rounded-3'\r\n | string;\r\n\r\nexport type Triggers = 'hover' | 'focus' | 'click';\r\n\r\nexport type Positions = 'fixed' | 'sticky';\r\n\r\nexport type InputType =\r\n | 'button'\r\n | 'color'\r\n | 'date'\r\n | 'datetime'\r\n | 'datetime-local'\r\n | 'email'\r\n | 'file'\r\n | 'hidden'\r\n | 'image'\r\n | 'month'\r\n | 'number'\r\n | 'password'\r\n | 'range'\r\n | 'reset'\r\n | 'search'\r\n | 'submit'\r\n | 'tel'\r\n | 'text'\r\n | 'time'\r\n | 'url'\r\n | 'week'\r\n | 'checkbox'\r\n | 'radio';\r\n\r\nexport interface INavLinkProps {\r\n queryParams?: { [k: string]: any };\r\n fragment?: string;\r\n queryParamsHandling?: 'merge' | 'preserve' | '' | null;\r\n preserveFragment?: boolean;\r\n skipLocationChange?: boolean;\r\n replaceUrl?: boolean;\r\n state?: { [k: string]: any };\r\n routerLinkActiveOptions?: { exact: boolean } | IsActiveMatchOptions;\r\n routerLinkActive?: string | string[];\r\n ariaCurrentWhenActive?: 'page' | 'step' | 'location' | 'date' | 'time' | true | false;\r\n}\r\n\r\nexport interface INavAttributes {\r\n [propName: string]: any;\r\n}\r\n\r\nexport type ButtonType = 'button' | 'submit' | 'reset';\r\n","import {Directive, ElementRef, Input, OnInit, Renderer2} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[cHtmlAttr]',\r\n exportAs: 'cHtmlAttr'\r\n})\r\nexport class HtmlAttributesDirective implements OnInit {\r\n\r\n // @ts-ignore\r\n @Input() cHtmlAttr: {[key: string]: any };\r\n\r\n constructor(\r\n private renderer: Renderer2,\r\n private el: ElementRef\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n const attribs = this.cHtmlAttr;\r\n for (const attr in attribs) {\r\n if (attr === 'style' && typeof(attribs[attr]) === 'object' ) {\r\n this.setStyle(attribs[attr]);\r\n } else if (attr === 'class') {\r\n this.addClass(attribs[attr]);\r\n } else {\r\n this.setAttrib(attr, attribs[attr]);\r\n }\r\n }\r\n }\r\n\r\n private setStyle(styles: { [x: string]: any; }): void {\r\n for (const style in styles) {\r\n if (style) {\r\n this.renderer.setStyle(this.el.nativeElement, style, styles[style]);\r\n }\r\n }\r\n }\r\n\r\n private addClass(classes: string): void {\r\n const classArray = (Array.isArray(classes) ? classes : classes.split(' '));\r\n classArray.filter((element) => element.length > 0).forEach(element => {\r\n this.renderer.addClass(this.el.nativeElement, element );\r\n });\r\n }\r\n\r\n private setAttrib(key: string, value: string | null): void {\r\n value !== null ?\r\n this.renderer.setAttribute(this.el.nativeElement, key, value ) :\r\n this.renderer.removeAttribute(this.el.nativeElement, key);\r\n }\r\n}\r\n","import { Directive, Input, TemplateRef } from '@angular/core';\n\n@Directive({\n selector: '[cTemplateId]'\n})\nexport class TemplateIdDirective {\n @Input('cTemplateId') id!: string;\n\n constructor(\n public templateRef: TemplateRef<any>\n ) { }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n// import { OutClickService } from './out-click.service';\n// import { OutClickDirective } from './out-click.directive';\nimport { HtmlAttributesDirective } from './html-attr.directive';\nimport { TemplateIdDirective } from './template-id.directive';\n\n@NgModule({\n imports: [\n CommonModule\n ],\n declarations: [\n // OutClickDirective,\n HtmlAttributesDirective,\n TemplateIdDirective\n ],\n exports: [\n // OutClickDirective,\n HtmlAttributesDirective,\n TemplateIdDirective\n ],\n providers: []\n})\nexport class SharedModule {\n\n static forRoot(): ModuleWithProviders<SharedModule> {\n return {\n ngModule: SharedModule,\n // providers: [\n // {provide: OutClickService}\n // ]\n };\n }\n}\n","import { Directive, HostBinding, Input } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[cAccordionButton]'\r\n})\r\nexport class AccordionButtonDirective {\r\n\r\n /**\r\n * Toggles an accordion button collapsed state. Use in accordionHeaderTemplate. [docs]\r\n * @type boolean\r\n */\r\n @Input() collapsed!: boolean;\r\n\r\n /**\r\n * Default type for cAccordionButton. [docs]\r\n * @type string\r\n * @default 'button'\r\n */\r\n @HostBinding('attr.type')\r\n @Input() type = 'button';\r\n\r\n @HostBinding('class')\r\n get hostClasses(): any {\r\n return {\r\n 'accordion-button': true,\r\n collapsed: this.collapsed\r\n };\r\n }\r\n\r\n @HostBinding('attr.aria-expanded') get ariaExpanded(): boolean {\r\n return !this.collapsed;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { AccordionItemComponent } from './accordion-item/accordion-item.component';\r\n\r\n@Injectable()\r\nexport class AccordionService {\r\n\r\n items: AccordionItemComponent[] = [];\r\n alwaysOpen = false;\r\n\r\n constructor() { }\r\n\r\n addItem(item: AccordionItemComponent): void {\r\n this.items.push(item);\r\n }\r\n\r\n removeItem(item: AccordionItemComponent): void {\r\n const index = this.items.indexOf(item);\r\n if (index !== -1) {\r\n this.items.splice(index, 1);\r\n }\r\n }\r\n\r\n toggleItem(item: AccordionItemComponent): void {\r\n item.visible = !item.visible;\r\n this.closeOtherItems(item);\r\n }\r\n\r\n closeOtherItems(openItem: AccordionItemComponent): void {\r\n if (!this.alwaysOpen) {\r\n this.items.forEach((item: AccordionItemComponent) => {\r\n if (item !== openItem) {\r\n item.visible = false;\r\n }\r\n });\r\n }\r\n }\r\n}\r\n","import { Component, HostBinding, Input } from '@angular/core';\n\nimport { AccordionService } from '../accordion.service';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\n\n@Component({\n selector: 'c-accordion',\n template: `<ng-content></ng-content>`,\n styleUrls: ['./accordion.component.scss'],\n exportAs: 'cAccordionItem',\n providers: [AccordionService]\n})\nexport class AccordionComponent {\n\n static ngAcceptInputType_alwaysOpen: BooleanInput;\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 @Input() flush?: boolean;\n /**\n * Make accordion items stay open when another item is opened\n * @type boolean\n */\n @Input()\n set alwaysOpen(value: boolean) {\n this.accordionService.alwaysOpen = coerceBooleanProperty(value);\n }\n get alwaysOpen(): boolean {\n return this.accordionService.alwaysOpen;\n }\n\n @HostBinding('class')\n get hostClasses(): any {\n return {\n accordion: true,\n 'accordion-flush': !!this.flush\n };\n }\n\n constructor(\n private accordionService: AccordionService\n ) {}\n\n}\n","import { animation, animate, style } from '@angular/animations';\r\n\r\nexport const expandAnimation = animation([\r\n style({ height: 0, visibility: 'hidden', paddingTop: 0, paddingBottom: 0 }),\r\n animate('{{ time }} {{ easing }}', style({ height: '*', visibility: 'visible', paddingTop: '*', paddingBottom: '*', minHeight: '*' })\r\n ),\r\n animate('{{ time }}', style({opacity: '*'})),\r\n]);\r\n\r\nexport const collapseAnimation = animation([\r\n style({ height: '*', visibility: 'visible', paddingTop: '*', paddingBottom: '*', minHeight: '*' }),\r\n animate(\r\n '{{ time }} {{ easing }}',\r\n style({ height: 0, visibility: 'hidden', opacity: 0, paddingTop: 0, paddingBottom: 0, minHeight: 0 })\r\n )\r\n]);\r\n\r\nexport const expandHorizontalAnimation = animation([\r\n style({ width: 0, visibility: 'hidden', paddingLeft: 0, paddingRight: 0 }),\r\n animate('{{ time }} {{ easing }}', style({ width: '*', visibility: 'visible', paddingLeft: '*', paddingRight: '*', minWidth: '*' })\r\n ),\r\n animate('{{ time }}', style({opacity: '*'})),\r\n]);\r\n\r\nexport const collapseHorizontalAnimation = animation([\r\n style({ width: '*', visibility: 'visible', paddingLeft: '*', paddingRight: '*', minWidth: '*' }),\r\n animate(\r\n '{{ time }} {{ easing }}',\r\n style({ width: 0, visibility: 'hidden', opacity: 0, paddingLeft: 0, paddingRight: 0, minWidth: 0 })\r\n )\r\n]);\r\n","import {\r\n AfterViewInit,\r\n Directive,\r\n DoCheck,\r\n ElementRef,\r\n EventEmitter,\r\n HostBinding,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n Output,\r\n Renderer2,\r\n SimpleChanges\r\n} from '@angular/core';\r\nimport { AnimationBuilder, AnimationPlayer, useAnimation } from '@angular/animations';\r\n\r\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\r\n\r\nimport {\r\n collapseAnimation,\r\n collapseHorizontalAnimation,\r\n expandAnimation,\r\n expandHorizontalAnimation\r\n} from './collapse.animations';\r\n\r\n// todo\r\n// tslint:disable-next-line:no-conflicting-lifecycle\r\n@Directive({\r\n selector: '[cCollapse]',\r\n exportAs: 'cCollapse'\r\n})\r\nexport class CollapseDirective implements OnChanges, OnDestroy, DoCheck, AfterViewInit {\r\n\r\n static ngAcceptInputType_horizontal: BooleanInput;\r\n static ngAcceptInputType_navbar: BooleanInput;\r\n\r\n /**\r\n * @ignore\r\n */\r\n @Input()\r\n set animate(value: boolean) {\r\n this._animate = value;\r\n }\r\n get animate(): boolean {\r\n return this._animate;\r\n }\r\n private _animate = true;\r\n\r\n /**\r\n * Set horizontal collapsing to transition the width instead of height.\r\n */\r\n @Input()\r\n set horizontal(value: boolean) {\r\n this._horizontal = coerceBooleanProperty(value);\r\n }\r\n get horizontal(): boolean {\r\n return this._horizontal;\r\n }\r\n private _horizontal: boolean = false;\r\n\r\n /**\r\n * Toggle the visibility of collapsible element.\r\n */\r\n @Input()\r\n set visible(value) {\r\n this._visible = value;\r\n }\r\n get visible(): boolean {\r\n return this._visible;\r\n }\r\n private _visible = false;\r\n\r\n /**\r\n * Add `navbar` prop for grouping and hiding navbar contents by a parent breakpoint.\r\n */\r\n @Input()\r\n set navbar(value: boolean) {\r\n this._navbar = coerceBooleanProperty(value);\r\n };\r\n get navbar() {\r\n return this._navbar;\r\n }\r\n private _navbar = false;\r\n\r\n /**\r\n * @ignore\r\n */\r\n @Input() duration = '350ms';\r\n /**\r\n * @ignore\r\n */\r\n @Input() transition = 'ease';\r\n /**\r\n * Event emitted on visibility change. [docs]\r\n * @type string\r\n */\r\n @Output() collapseChange = new EventEmitter<string>();\r\n\r\n private player!: AnimationPlayer;\r\n private readonly host: HTMLElement;\r\n // private scrollHeight!: number;\r\n private scrollWidth!: number;\r\n private collapsing: boolean = false;\r\n\r\n constructor(\r\n private hostElement: ElementRef,\r\n private renderer: Renderer2,\r\n private animationBuilder: AnimationBuilder\r\n ) {\r\n this.host = this.hostElement.nativeElement;\r\n this.renderer.setStyle(this.host, 'display', 'none');\r\n }\r\n\r\n @HostBinding('class')\r\n get hostClasses(): any {\r\n return {\r\n 'navbar-collapse': this.navbar,\r\n show: this.visible,\r\n 'collapse-horizontal': this.horizontal,\r\n collapsing: this.collapsing\r\n // collapse: !this.collapsing && !this.visible\r\n };\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n if (this.visible) {\r\n this.toggle();\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroyPlayer();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['visible']) {\r\n if (!changes['visible'].firstChange || !changes['visible'].currentValue) {\r\n this.toggle(changes['visible'].currentValue);\r\n }\r\n }\r\n }\r\n\r\n ngDoCheck(): void {\r\n if (this._visible !== this.visible) {\r\n this.toggle();\r\n }\r\n }\r\n\r\n toggle(visible = this.visible): void {\r\n this.createPlayer(visible);\r\n this.player?.play();\r\n }\r\n\r\n destroyPlayer(): void {\r\n this.player?.destroy();\r\n }\r\n\r\n createPlayer(visible: boolean = this.visible): void {\r\n if (this.player?.hasStarted()) {\r\n this.destroyPlayer();\r\n }\r\n\r\n if (visible) {\r\n this.renderer.removeStyle(this.host, 'display');\r\n }\r\n\r\n const duration = this.animate ? this.duration : '0ms';\r\n\r\n const expand = this.horizontal ? expandHorizontalAnimation : expandAnimation;\r\n const collapse = this.horizontal ? collapseHorizontalAnimation : collapseAnimation;\r\n\r\n const animationFactory = this.animationBuilder.build(\r\n useAnimation(visible ? expand : collapse, { params: { time: duration, easing: this.transition } })\r\n );\r\n\r\n this.player = animationFactory.create(this.host);\r\n this.player.onStart(() => {\r\n this.setMaxSize();\r\n this.visible = visible;\r\n this.collapsing = true;\r\n this.collapseChange.emit(visible ? 'opening' : 'collapsing');\r\n });\r\n this.player.onDone(() => {\r\n this.collapsing = false;\r\n this.collapseChange.emit(visible ? 'open' : 'collapsed');\r\n });\r\n }\r\n\r\n setMaxSize() {\r\n setTimeout(() => {\r\n if (this.horizontal) {\r\n this.scrollWidth = this.host.scrollWidth;\r\n this.scrollWidth > 0 && this.renderer.setStyle(this.host, 'maxWidth', `${this.scrollWidth}px`);\r\n // } else {\r\n // this.scrollHeight = this.host.scrollHeight;\r\n // this.scrollHeight > 0 && this.renderer.setStyle(this.host, 'maxHeight', `${this.scrollHeight}px`);\r\n }\r\n });\r\n }\r\n}\r\n","import {\r\n AfterContentInit,\r\n Component,\r\n ContentChildren,\r\n HostBinding,\r\n Input,\r\n OnDestroy,\r\n OnInit, QueryList,\r\n} from '@angular/core';\r\n\r\nimport { AccordionService } from '../accordion.service';\r\nimport { TemplateIdDirective } from '../../shared';\r\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\r\n\r\nlet nextId = 0;\r\n\r\n@Component({\r\n selector: 'c-accordion-item',\r\n templateUrl: './accordion-item.component.html',\r\n styleUrls: ['./accordion-item.component.scss'],\r\n exportAs: 'cAccordionItem',\r\n})\r\nexport class AccordionItemComponent implements OnInit, OnDestroy, AfterContentInit {\r\n\r\n static ngAcceptInputType_visible: BooleanInput;\r\n\r\n /**\r\n * Toggle an accordion item programmatically\r\n * @type boolean\r\n * @default false\r\n */\r\n @Input()\r\n set visible(value: boolean){\r\n this._visible = coerceBooleanProperty(value);\r\n }\r\n get visible() {\r\n return this._visible;\r\n }\r\n private _visible: boolean = false;\r\n\r\n @Input()\r\n set open(value: boolean) {\r\n console.warn('c-accordion-item \"open\" prop is deprecated, use \"visible\" prop instead.')\r\n this.visible = value || this.visible;\r\n }\r\n get open() {\r\n return this.visible;\r\n }\r\n\r\n @HostBinding('class')\r\n get hostClasses(): any {\r\n return {\r\n 'accordion-item': true,\r\n };\r\n }\r\n contentId = `accordion-item-${nextId++}`;\r\n itemContext = { $implicit: this.visible };\r\n templates: any = {};\r\n\r\n @ContentChildren(TemplateIdDirective, {descendants: true}) contentTemplates!: QueryList<TemplateIdDirective>;\r\n\r\n constructor(\r\n private accordionService: AccordionService,\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.accordionService.addItem(this);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.accordionService.removeItem(this);\r\n }\r\n\r\n toggleItem(): void {\r\n this.accordionService.toggleItem(this);\r\n }\r\n\r\n ngAfterContentInit(): void {\r\n this.contentTemplates.forEach((child: TemplateIdDirective) => {\r\n this.templates[child.id] = child.templateRef;\r\n });\r\n }\r\n}\r\n\r\n","<ng-container>\r\n <div class=\"accordion-header\">\r\n <ng-container *ngTemplateOutlet=\"templates['accordionHeaderTemplate'] || defaultAccordionHeaderTemplate; context: itemContext\"></ng-container>\r\n </div>\r\n <div class=\"accordion-collapse\" cCollapse [visible]=\"visible\" [attr.aria-expanded]=\"visible\" [id]=\"contentId\">\r\n <ng-container *ngTemplateOutlet=\"templates['accordionBodyTemplate'] || defaultAccordionBodyTemplate; context: itemContext\"></ng-container>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-template #defaultAccordionHeaderTemplate>\r\n <button cAccordionButton [collapsed]=\"!visible\" [attr.aria-controls]=\"contentId\" (click)=\"toggleItem()\">\r\n <ng-container\r\n *ngTemplateOutlet=\"templates['accordionHeader'] || defaultAccordionHeaderContentTemplate; context: itemContext\">\r\n </ng-container>\r\n </button>\r\n</ng-template>\r\n\r\n<ng-template #defaultAccordionHeaderContentTemplate>\r\n <ng-content></ng-content>\r\n</ng-template>\r\n\r\n<ng-template #defaultAccordionBodyTemplate>\r\n <div class=\"accordion-body\">\r\n <ng-container\r\n *ngTemplateOutlet=\"templates['accordionBody'] || defaultAccordionBodyContentTemplate; context: itemContext\">\r\n </ng-container>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #defaultAccordionBodyContentTemplate>\r\n <ng-content></ng-content>\r\n</ng-template>\r\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { CollapseDirective } from './collapse.directive';\n\n@NgModule({\n declarations: [CollapseDirective],\n exports: [CollapseDirective],\n imports: [\n CommonModule\n ]\n})\nexport class CollapseModule {\n static forRoot(): ModuleWithProviders<CollapseModule> {\n return { ngModule: CollapseModule, providers: [] };\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\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';\nimport { CollapseModule } from '../collapse';\nimport { SharedModule } from '../shared';\n\n@NgModule({\n declarations: [\n AccordionComponent,\n AccordionButtonDirective,\n AccordionItemComponent,\n ],\n imports: [\n CommonModule,\n CollapseModule,\n SharedModule\n ],\n exports: [\n AccordionComponent,\n AccordionButtonDirective,\n AccordionItemComponent,\n ],\n providers: [\n AccordionService\n ]\n})\nexport class AccordionModule {\n}\n","import { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n selector: '[cAlertHeading]'\n})\nexport class AlertHeadingDirective {\n\n @HostBinding('class')\n get hostClasses(): any {\n\n return {\n 'alert-heading': true,\n };\n }\n\n constructor() { }\n\n}\n","import { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n selector: '[cAlertLink]'\n})\nexport class AlertLinkDirective {\n\n @HostBinding('class')\n get hostClasses(): any {\n\n return {\n 'alert-link': true,\n };\n }\n\n constructor() { }\n\n}\n","import { Directive, HostBinding, Input } from '@angular/core';\r\nimport { coerceBooleanProperty, BooleanInput } from '@angular/cdk/coercion';\r\n\r\nimport { ButtonType, Colors, Shapes } from '../coreui.types';\r\n\r\n@Directive({\r\n selector: '[cButton]',\r\n exportAs: 'cButton'\r\n})\r\nexport class ButtonDirective {\r\n\r\n constructor() {}\r\n\r\n static ngAcceptInputType_active: BooleanInput;\r\n private _active = false;\r\n static ngAcceptInputType_disabled: BooleanInput;\r\n private _disabled = false;\r\n\r\n /**\r\n * Toggle the active state for the component. [docs]\r\n * @type boolean\r\n */\r\n @Input()\r\n get active(): boolean {\r\n return this._active;\r\n }\r\n set active(value: boolean) {\r\n this._active = coerceBooleanProperty(value);\r\n }\r\n\r\n /**\r\n * Sets the color context of the component to one of CoreUI’s themed colors. [docs]\r\n * @type Colors\r\n */\r\n @Input() color?: Colors = 'primary';\r\n /**\r\n * Toggle the disabled state for the component.\r\n * @type boolean\r\n */\r\n @Input()\r\n get disabled(): boolean {\r\n return this._disabled;\r\n }\r\n set disabled(value: boolean) {\r\n this._disabled = coerceBooleanProperty(value);\r\n }\r\n /**\r\n * Select the shape of the component.\r\n * @type { 'rounded' | 'rounded-top' | 'rounded-end' | 'rounded-bottom' | 'rounded-start' | 'rounded-circle' | 'rounded-pill' | 'rounded-0' | 'rounded-1' | 'rounded-2' | 'rounded-3' | string }\r\n */\r\n @Input() shape?: Shapes;\r\n /**\r\n * Size the component small or large.\r\n * @type {'sm' | 'lg'}\r\n */\r\n @Input() size?: 'sm' | 'lg' | '' = '';\r\n /**\r\n * Specifies the type of button. Always specify the type attribute for the `<button>` element.\r\n * Different browsers may use different default types for the `<button>` element.\r\n */\r\n @HostBinding('attr.type')\r\n @Input() type: ButtonType = 'button';\r\n /**\r\n * Set the button variant to an outlined button or a ghost button.\r\n * @type {'ghost' | 'outline'}\r\n */\r\n @Input() variant?: 'ghost' | 'outline';\r\n\r\n @HostBinding('class')\r\n get hostClasses(): any {\r\n return {\r\n btn: true,\r\n [`btn-${this.color}`]: !!this.color && !this.variant,\r\n [`btn-${this.variant}`]: !!this.variant && !this.color,\r\n [`btn-${this.variant}-${this.color}`]: !!this.variant && !!this.color,\r\n [`btn-${this.size}`]: !!this.size,\r\n [`${this.shape}`]: !!this.shape,\r\n disabled: this.disabled,\r\n active: this.active\r\n };\r\n }\r\n\r\n @HostBinding('attr.aria-disabled')\r\n get ariaDisabled () {\r\n return this.disabled || null;\r\n };\r\n\r\n @HostBinding('attr.aria-pressed')\r\n get isActive(): boolean | null {\r\n return this.active || null;\r\n }\r\n\r\n @HostBinding('attr.disabled')\r\n get attrDisabled () {\r\n return this.disabled ? '' : null;\r\n };\r\n\r\n @HostBinding('attr.tabindex')\r\n get tabIndex(): string | null {\r\n return this.disabled ? '-1' : null;\r\n }\r\n}\r\n","import { Directive, HostBinding, Input } from '@angular/core';\r\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\r\nimport { ButtonDirective } from './button.directive';\r\n\r\n@Directive({\r\n selector: '[cButtonClose]'\r\n})\r\nexport class ButtonCloseDirective extends ButtonDirective {\r\n\r\n static ngAcceptInputType_white: BooleanInput;\r\n private _white = false;\r\n /**\r\n * Change the default color to white.\r\n * @type boolean\r\n */\r\n @Input()\r\n get white(): boolean {\r\n return this._white;\r\n }\r\n set white(value: boolean) {\r\n this._white = coerceBooleanProperty(value);\r\n }\r\n\r\n @HostBinding('class')\r\n override get hostClasses(): any {\r\n return {\r\n btn: true,\r\n 'btn-close': true,\r\n 'btn-close-white': this.white,\r\n [`btn-${this.size}`]: !!this.size,\r\n disabled: this.disabled,\r\n active: this.active,\r\n };\r\n }\r\n}\r\n","import {\r\n AfterContentInit,\r\n Component,\r\n ContentChildren,\r\n EventEmitter,\r\n HostBinding,\r\n HostListener,\r\n Input,\r\n Output,\r\n QueryList\r\n} from '@angular/core';\r\nimport { animate, AnimationEvent, state, style, transition, trigger } from '@angular/animations';\r\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\r\n\r\nimport { Colors } from '../coreui.types';\r\nimport { TemplateIdDirective } from '../shared';\r\n\r\ntype AnimateType = ('hide' | 'show');\r\n\r\n@Component({\r\n selector: 'c-alert',\r\n templateUrl: './alert.component.html',\r\n styleUrls: ['./alert.component.scss'],\r\n exportAs: 'cAlert',\r\n animations: [\r\n trigger('fadeInOut', [\r\n state('show', style({opacity: 1, height: '*', padding: '*', border: '*', margin: '*'})),\r\n state('hide', style({opacity: 0, height: 0, padding: 0, border: 0, margin: 0})),\r\n state('void', style({opacity: 0, height: 0, padding: 0, border: 0, margin: 0})),\r\n transition('show => hide', [\r\n animate('.3s ease-out'),\r\n ]),\r\n transition('hide => show', [\r\n animate('.3s ease-in'),\r\n ]),\r\n transition('show => void', [\r\n animate('.3s ease-out'),\r\n ]),\r\n transition('void => show', [\r\n animate('.3s ease-in'),\r\n ]),\r\n ])\r\n ]\r\n})\r\nexport class AlertComponent implements AfterContentInit {\r\n\r\n static ngAcceptInputType_dismissible: BooleanInput;\r\n static ngAcceptInputType_fade: BooleanInput;\r\n static ngAcceptInputType_visible: BooleanInput;\r\n\r\n hide!: boolean;\r\n /**\r\n * Sets the color context of the component to one of CoreUI’s themed colors.\r\n *\r\n * @type Colors\r\n * @default 'primary'\r\n */\r\n @Input() color: Colors = 'primary';\r\n\r\n /**\r\n * Optionally adds a close button to alert and allow it to self dismiss.\r\n * @type boolean\r\n */\r\n @Input()\r\n get dismissible(): boolean {\r\n return this._dismissible;\r\n }\r\n set dismissible(value: boolean) {\r\n this._dismissible = coerceBooleanProperty(value);\r\n }\r\n private _dismissible = false;\r\n\r\n /**\r\n * Adds animation for dismissible alert.\r\n * @type boolean\r\n */\r\n @Input()\r\n get fade(): boolean {\r\n return this._fade;\r\n }\r\n set fade(value: boolean) {\r\n this._fade = coerceBooleanProperty(value);\r\n }\r\n private _fade = false;\r\n\r\n /**\r\n * Default role for alert. [docs]\r\n * @type string\r\n * @default 'alert'\r\n */\r\n @HostBinding('attr.role')\r\n @Input() role = 'alert';\r\n\r\n /**\r\n * Set the alert variant to a solid.\r\n * @type string\r\n */\r\n @Input() variant?: 'solid' | string;\r\n\r\n /**\r\n * Toggle the visibility of alert component.\r\n * @type boolean\r\n */\r\n @Input()\r\n set visible(value: boolean) {\r\n if (this._visible !== value) {\r\n this._visible = coerceBooleanProperty(value);\r\n this.visibleChange.emit(value);\r\n }\r\n };\r\n get visible() {\r\n return this._visible;\r\n }\r\n private _visible = true;\r\n\r\n /**\r\n * Event triggered on the alert dismiss.\r\n */\r\n @Output() visibleChange: EventEmitter<boolean> = new EventEmitter();\r\n\r\n templates: any = {};\r\n @ContentChildren(TemplateIdDirective, {descendants: true}) contentTemplates!: QueryList<TemplateIdDirective>;\r\n\r\n @HostBinding('@.disabled')\r\n get animationDisabled(): boolean {\r\n return !this.fade;\r\n }\r\n\r\n @HostBinding('@fadeInOut')\r\n get animateType(): AnimateType {\r\n return this.visible ? 'show' : 'hide';\r\n }\r\n\r\n @HostBinding('class')\r\n get hostClasses(): any {\r\n return {\r\n alert: true,\r\n 'alert-dismissible': this.dismissible,\r\n fade: this.fade,\r\n show: !this.hide,\r\n [`alert-${this.color}`]: !!this.color && this.variant !== 'solid',\r\n [`bg-${this.color}`]: !!this.color && this.variant === 'solid',\r\n 'text-white': !!this.color && this.variant === 'solid'\r\n };\r\n }\r\n\r\n @HostListener('@fadeInOut.start', ['$event'])\r\n onAnimationStart($event: AnimationEvent): void {\r\n this.onAnimationEvent($event);\r\n }\r\n\r\n @HostListener('@fadeInOut.done', ['$event'])\r\n onAnimationDone($event: AnimationEvent): void {\r\n this.onAnimationEvent($event);\r\n }\r\n\r\n ngAfterContentInit(): void {\r\n this.contentTemplates.forEach((child: TemplateIdDirective) => {\r\n this.templates[child.id] = child.templateRef;\r\n });\r\n }\r\n\r\n onAnimationEvent(event: AnimationEvent): void {\r\n this.hide = event.phaseName === 'start' && event.toState === 'show';\r\n if (event.phaseName === 'done') {\r\n this.hide = (event.toState === 'hide' || event.toState === 'void');\r\n if (event.toState === 'show') {\r\n this.hide = false;\r\n }\r\n }\r\n }\r\n}\r\n","<ng-container *ngIf=\"visible || !hide\">\n <ng-template [ngIf]=\"dismissible\">\n <ng-container *ngTemplateOutlet=\"templates?.alertButtonCloseTemplate || defaultAlertButtonCloseTemplate\">\n </ng-container>\n </ng-template>\n <ng-content></ng-content>\n</ng-container>\n\n<ng-template #defaultAlertButtonCloseTemplate>\n <button (click)=\"