\n
\n
\n
\n \n
\n
\n @if (header) {\n \n }\n @if (subHeader) {\n \n }\n
\n
\n
\n @if (imageThumbnail) {\n
![]()
\n } @else {\n
\n }\n
\n
\n @if (image) {\n
![]()
\n }\n @if (title || subTitle) {\n
\n }\n @if (withActions) {\n
\n \n \n
\n }\n
\n","import { Directive, HostListener, Input, Renderer2 } from '@angular/core';\n\n@Directive({\n selector: '[ctDropdown]',\n standalone: true,\n})\nexport class DropdownDirective {\n @Input({ required: true }) targetId = '';\n\n isVisible = false;\n\n constructor(\n //private element: ElementRef,\n private readonly renderer: Renderer2\n ) {}\n\n @HostListener('blur')\n @HostListener('focusout')\n onBlur(): void {\n this.close(document.getElementById(this.targetId) as HTMLElement);\n }\n\n @HostListener('click')\n onClick(): void {\n this.toggle(document.getElementById(this.targetId) as HTMLElement);\n }\n\n toggle(element: HTMLElement): void {\n this.isVisible = !this.isVisible;\n this.renderer.addClass(element, this.isVisible ? 'block' : 'hidden');\n this.renderer.removeClass(element, this.isVisible ? 'hidden' : 'block');\n }\n\n close(element: HTMLElement): void {\n this.isVisible = false;\n this.renderer.addClass(element, 'hidden');\n this.renderer.removeClass(element, 'block');\n }\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { MenuItem } from '../../../model/components/menu-item.model';\nimport { MenuItemComponent } from '../../atoms/menu-item/menu-item.component';\nimport { DropdownDirective } from '../../../directives/dropdown.directive';\n\n@Component({\n selector: 'ct-menu',\n standalone: true,\n imports: [MenuItemComponent, DropdownDirective],\n templateUrl: './menu.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MenuComponent {\n @Input({ required: true }) items: MenuItem[] = [];\n @Input() fullSize: boolean = true;\n @Input() direction: string | 'horizontal' | 'vertical' = 'vertical';\n @Input() iconAlone = false;\n @Input() iconDirection: string | 'horizontal' | 'vertical' = 'horizontal';\n}\n","\n @for (error of errors | keyvalue; track error) {\n @if (error.key === 'required') {\n \n } @else {\n \n }\n }\n
\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n OnInit,\n Output,\n signal,\n ViewChild,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ButtonComponent } from '../../components/atoms/button/button.component';\nimport { IconComponent } from '../../components/atoms/icon/icon.component';\nimport { FormOptionBase } from '../../model/forms/form-base.model';\nimport { OptionComponent } from '../option/option.component';\nimport { Subject, debounceTime } from 'rxjs';\nimport { FormGroupDirective } from '@angular/forms';\nimport { LabelComponent } from '../label/label.component';\nimport { AlertComponent } from '../../components/atoms/alert/alert.component';\nimport { TypeEnum } from '../../model/components/type.enum';\nimport { provideControlContainer, provideValueAccessor } from '../../utils/form.util';\nimport { FormGenericComponent } from '../../services/form-generic.abstract';\nimport { FormErrorComponent } from '../error/error.component';\n\n@Component({\n selector: 'ct-select',\n standalone: true,\n imports: [OptionComponent, ButtonComponent, IconComponent, LabelComponent, AlertComponent, FormErrorComponent],\n templateUrl: './select.component.html',\n providers: [provideValueAccessor(forwardRef(() => SelectComponent))],\n viewProviders: [provideControlContainer()],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SelectComponent extends FormGenericComponent implements OnInit {\n focusOut$ = new Subject