skcr-autechre 1.0.8 → 1.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skcr-autechre.mjs","sources":["../../../projects/skcr-autechre/src/lib/enums/sort-direction.enum.ts","../../../projects/skcr-autechre/src/lib/enums/button-color-variant.enum.ts","../../../projects/skcr-autechre/src/lib/enums/confirm-level-variant.enum.ts","../../../projects/skcr-autechre/src/lib/enums/modal-close-condition.enum.ts","../../../projects/skcr-autechre/src/lib/components/multi-select/multi-select.component.ts","../../../projects/skcr-autechre/src/lib/components/multi-select/multi-select.component.html","../../../projects/skcr-autechre/src/lib/components/input/input.component.ts","../../../projects/skcr-autechre/src/lib/components/input/input.component.html","../../../projects/skcr-autechre/src/lib/components/input-number/input-number.component.ts","../../../projects/skcr-autechre/src/lib/components/input-number/input-number.component.html","../../../projects/skcr-autechre/src/lib/components/submit-button/submit-button.component.ts","../../../projects/skcr-autechre/src/lib/components/submit-button/submit-button.component.html","../../../projects/skcr-autechre/src/lib/components/checkbox/checkbox.component.ts","../../../projects/skcr-autechre/src/lib/components/checkbox/checkbox.component.html","../../../projects/skcr-autechre/src/lib/components/checkbox-classic/checkbox-classic.component.ts","../../../projects/skcr-autechre/src/lib/components/checkbox-classic/checkbox-classic.component.html","../../../projects/skcr-autechre/src/lib/components/select/select.component.ts","../../../projects/skcr-autechre/src/lib/components/select/select.component.html","../../../projects/skcr-autechre/src/lib/components/loader/loader.component.ts","../../../projects/skcr-autechre/src/lib/components/loader/loader.component.html","../../../projects/skcr-autechre/src/lib/components/services/tooltip.service.ts","../../../projects/skcr-autechre/src/lib/components/table-header-cell/table-header-cell.component.ts","../../../projects/skcr-autechre/src/lib/components/table-header-cell/table-header-cell.component.html","../../../projects/skcr-autechre/src/lib/components/table/table.component.ts","../../../projects/skcr-autechre/src/lib/components/table/table.component.html","../../../projects/skcr-autechre/src/lib/components/dialog/dialog.component.ts","../../../projects/skcr-autechre/src/lib/components/dialog/dialog.component.html","../../../projects/skcr-autechre/src/lib/components/modal/modal.component.ts","../../../projects/skcr-autechre/src/lib/components/modal/modal.component.html","../../../projects/skcr-autechre/src/lib/components/confirmation-modal/confirmation-modal.component.ts","../../../projects/skcr-autechre/src/lib/components/confirmation-modal/confirmation-modal.component.html","../../../projects/skcr-autechre/src/lib/components/dropdown-menu/dropdown-menu.component.ts","../../../projects/skcr-autechre/src/lib/components/dropdown-menu/dropdown-menu.component.html","../../../projects/skcr-autechre/src/lib/components/date-picker/date-picker.component.ts","../../../projects/skcr-autechre/src/lib/components/date-picker/date-picker.component.html","../../../projects/skcr-autechre/src/lib/components/radio-button/radio-button.component.ts","../../../projects/skcr-autechre/src/lib/components/radio-button/radio-button.component.html","../../../projects/skcr-autechre/src/lib/services/toast.service.ts","../../../projects/skcr-autechre/src/lib/components/toasts/toast/toast.component.ts","../../../projects/skcr-autechre/src/lib/components/toasts/toast/toast.component.html","../../../projects/skcr-autechre/src/lib/components/toasts/toaster/toaster.component.ts","../../../projects/skcr-autechre/src/lib/components/toasts/toaster/toaster.component.html","../../../projects/skcr-autechre/src/skcr-autechre.ts"],"sourcesContent":["export enum ESortDirection {\n Ascending = 'ascending',\n Descending = 'descending',\n None = 'none',\n}\n","export enum EButtonColorVariant {\n Primary = 'btn-primary',\n Danger = 'btn-danger',\n}\n","export enum EConfirmLevelVariant {\n Danger = 'danger',\n Info = 'info',\n Success = 'success',\n}\n","export enum EModalCloseCondition {\n SubmitSuccess = 'SubmitSuccess',\n Close = 'close',\n}\n","import {\n Component,\n computed,\n effect,\n ElementRef,\n inject,\n input,\n InputSignal,\n model,\n ModelSignal,\n OnDestroy,\n Signal,\n signal,\n viewChild,\n WritableSignal,\n} from '@angular/core';\nimport { animate, style, transition, trigger } from '@angular/animations';\nimport { FormsModule } from '@angular/forms';\nimport { NgClass } from '@angular/common';\nimport { ScrollingModule } from '@angular/cdk/scrolling';\nimport { NgIcon } from '@ng-icons/core';\nimport { FormValueControl } from '@angular/forms/signals';\nimport { TSelectOption } from '../../types';\n\n@Component({\n selector: 'skcr-multi-select',\n templateUrl: './multi-select.component.html',\n animations: [\n trigger('AnimationTrigger0', [\n transition(':leave', [\n style({ opacity: 1 }),\n animate('200ms ease-in-out', style({ opacity: 0 })),\n ]),\n ]),\n ],\n imports: [\n FormsModule,\n NgClass,\n NgIcon,\n ScrollingModule,\n ],\n})\nexport class MultiSelectComponent implements FormValueControl<unknown[]>, OnDestroy {\n options: InputSignal<TSelectOption<unknown>[]> = input.required();\n label: InputSignal<string> = input('');\n placeholder: InputSignal<string> = input('');\n searchPlaceholder: InputSignal<string> = input('');\n isInvalid: InputSignal<boolean> = input(false);\n isDisabled: InputSignal<boolean> = input(false);\n isSearchDisplayed: InputSignal<boolean> = input(false);\n isOptional: InputSignal<boolean> = input(false);\n isFullWidth: InputSignal<boolean> = input(false);\n areValueDisplayedOutside: InputSignal<boolean> = input(false);\n tooltipText: InputSignal<string> = input('');\n\n readonly value: ModelSignal<unknown[]> = model<unknown[]>([]);\n\n searchTerm: Signal<string> = signal('');\n isOpen: WritableSignal<boolean> = signal(false);\n dropdownTop = 0;\n dropdownLeft = 0;\n dropdownWidth = 0;\n\n formattedOptions: Signal<TSelectOption<unknown>[]> = computed(() => {\n let formattedOptions: TSelectOption<unknown>[] = this.options() || [];\n\n if (formattedOptions[0]?.value === undefined) {\n formattedOptions = formattedOptions.map(option => {\n return {\n ...option,\n value: option.id,\n };\n });\n }\n\n return formattedOptions;\n });\n\n filteredOptions: Signal<TSelectOption<unknown>[]> = computed(() => {\n const normalizedQuery: string = this.normalizeString(this.searchTerm());\n\n return this.formattedOptions().filter(option => {\n return this.normalizeString(option.name).includes(normalizedQuery);\n });\n });\n\n selectedOptions = computed(() => {\n return this.formattedOptions().filter(option => this.value()!.includes(option.value));\n });\n\n selectedOptionsText = computed(() => {\n return this.selectedOptions()\n .map(option => option.name)\n .join(', ');\n });\n\n private elRef: ElementRef = inject(ElementRef);\n readonly searchInputEl = viewChild<ElementRef<HTMLInputElement>>('searchInput');\n\n constructor() {\n effect(() => {\n const disabledSelectedOptions = this.formattedOptions().filter(\n option => option.isDisabled && this.value()?.includes(option.value),\n );\n\n if (disabledSelectedOptions.length > 0) {\n const updatedValue = this.value()?.filter(\n value => !disabledSelectedOptions.some(option => option.value === value),\n );\n this.value.set(updatedValue || []);\n }\n });\n }\n\n toggleSelect(event?: MouseEvent): void {\n if (event?.defaultPrevented) {\n return;\n }\n\n this.isOpen.update(isOpen => !isOpen);\n\n if (this.isOpen()) {\n this.updateDropdownPosition();\n document.addEventListener('click', this.clickOutsideHandler);\n window.addEventListener('resize', this.resizeHandler);\n window.addEventListener('scroll', this.resizeHandler, true);\n this.focusSearchInput();\n } else {\n document.removeEventListener('click', this.clickOutsideHandler);\n window.removeEventListener('resize', this.resizeHandler);\n window.removeEventListener('scroll', this.resizeHandler, true);\n }\n }\n\n handleOptionClick(item: TSelectOption<unknown>): void {\n if (!item.isDisabled) {\n const itemIndex = this.value()!.indexOf(item.value!);\n const updatedValue = [\n ...this.value()!,\n ];\n\n if (itemIndex >= 0) {\n updatedValue.splice(itemIndex, 1);\n } else {\n updatedValue.push(item.value!);\n }\n\n this.value.set(updatedValue);\n }\n }\n\n isItemSelected(item: TSelectOption<unknown>): boolean {\n return this.value()!.includes(item.value);\n }\n\n clearAllSelections(event: MouseEvent): void {\n this.value.set([]);\n event.stopPropagation();\n }\n\n removeOption(option: TSelectOption<unknown>, event: MouseEvent): void {\n event.stopPropagation();\n event.preventDefault();\n\n const updatedValue = this.value()!.filter(value => value !== option.value);\n this.value.set(updatedValue);\n }\n\n ngOnDestroy(): void {\n document.removeEventListener('click', this.clickOutsideHandler);\n window.removeEventListener('resize', this.resizeHandler);\n window.removeEventListener('scroll', this.resizeHandler, true);\n }\n\n private updateDropdownPosition(): void {\n const buttonElement = this.elRef.nativeElement.querySelector('button');\n if (buttonElement) {\n const rect = buttonElement.getBoundingClientRect();\n this.dropdownTop = rect.bottom + window.scrollY;\n this.dropdownLeft = rect.left + window.scrollX;\n this.dropdownWidth = rect.width;\n }\n }\n\n private resizeHandler = (): void => {\n if (this.isOpen()) {\n this.updateDropdownPosition();\n }\n };\n\n private focusSearchInput(): void {\n if (!this.isOpen() || !this.isSearchDisplayed()) return;\n setTimeout(() => {\n requestAnimationFrame(() => {\n const inputRef = this.searchInputEl();\n const inputEl = inputRef?.nativeElement;\n if (inputEl) {\n inputEl.focus();\n try {\n inputEl.select?.();\n } catch {}\n }\n });\n }, 1);\n }\n\n private clickOutsideHandler: (e: MouseEvent) => void = (e: MouseEvent): void => {\n if (!this.elRef.nativeElement.contains(e.target) && this.isOpen()) {\n this.toggleSelect();\n }\n };\n\n private normalizeString(value: string): string {\n return value\n .normalize('NFD')\n .replace(/[\\u0300-\\u036f]/g, '')\n .toLocaleLowerCase();\n }\n\n trackByValue(index: number, item: TSelectOption<unknown>): unknown {\n return item.value;\n }\n\n protected readonly Math = Math;\n}\n","<div>\n @if (label()) {\n <label\n class=\"flex items-center justify-between\"\n id=\"multiselect-label\"\n >\n <div class=\"flex items-center gap-2\">\n {{ label() }}\n\n @if (isOptional()) {\n <span class=\"text-xs text-slate-500\">Optional</span>\n }\n </div>\n\n @if (tooltipText()) {\n <div class=\"flex items-center has-tooltip\">\n <ng-icon\n class=\"size-4\"\n name=\"heroQuestionMarkCircle\"\n />\n\n <div class=\"tooltip bg-gray-800 text-white -left-50 top-4 p-2 rounded text-xs max-w-md whitespace-normal\">\n {{ tooltipText() }}\n </div>\n </div>\n }\n </label>\n }\n\n <div class=\"relative mt-1\">\n <button\n class=\"grid w-full min-h-9 cursor-default grid-cols-1 rounded-md shadow-sm py-2 px-3 text-left outline-1 -outline-offset-1 outline-border-color focus:outline-2 focus:-outline-offset-2 focus:outline-primary sm:text-body-small/6\"\n (click)=\"toggleSelect($event)\"\n [disabled]=\"isDisabled() || !options().length\"\n [ngClass]=\"{\n 'outline-destructive focus:outline-destructive focus:ring-destructive': isInvalid(),\n 'outline-border-color focus:outline-primaryBlue focus:ring-primaryBlue': !isInvalid(),\n 'cursor-not-allowed bg-slate-50': isDisabled() || !options().length,\n 'cursor-pointer bg-white': !isDisabled() && !!options().length,\n }\"\n type=\"button\"\n aria-expanded=\"true\"\n aria-haspopup=\"listbox\"\n aria-labelledby=\"multiselect-label\"\n >\n <div class=\"col-start-1 row-start-1 block gap-2 truncate pr-12\">\n @if (!selectedOptions()!.length || !!areValueDisplayedOutside()) {\n <span>\n {{ placeholder() }}\n </span>\n } @else {\n <div class=\"flex flex-wrap gap-1 max-h-[4rem] overflow-auto scrollbar-hide relative\">\n @for (selectedOption of selectedOptions(); track selectedOption.value) {\n <span\n class=\"px-2 py-0.5 bg-primary-50 text-primary-800 rounded-lg text-caption font-medium flex items-center gap-1\"\n >\n {{ selectedOption.name }}\n\n <span\n class=\"cursor-pointer text-primary-800 flex items-center\"\n (mousedown)=\"removeOption(selectedOption, $event)\"\n (click)=\"$event.stopPropagation(); $event.preventDefault()\"\n >\n <ng-icon\n class=\"size-4\"\n name=\"heroXMark\"\n />\n </span>\n </span>\n }\n </div>\n }\n </div>\n\n <span class=\"col-start-1 row-start-1 flex items-center gap-2 self-center justify-self-end text-slate-500\">\n <span class=\"size-5 sm:size-4\">\n <ng-icon name=\"heroChevronUpDown\" />\n </span>\n </span>\n </button>\n\n @if (isOpen()) {\n <div\n class=\"fixed z-50 w-full rounded-md bg-white text-base shadow-lg ring-1 ring-black/5 focus:outline-hidden sm:text-body-small overflow-hidden\"\n [style.top.px]=\"dropdownTop\"\n [style.left.px]=\"dropdownLeft\"\n [style.width.px]=\"dropdownWidth\"\n @AnimationTrigger0\n role=\"listbox\"\n aria-labelledby=\"multiselect-label\"\n >\n @if (isSearchDisplayed()) {\n <div class=\"relative cursor-default py-2 px-3 shadow-sm select-none\">\n <div class=\"pointer-events-none absolute inset-y-0 left-1 flex items-center pl-3\">\n <span class=\"flex items-center\">\n <ng-icon name=\"heroMagnifyingGlass\" />\n </span>\n </div>\n\n <input\n class=\"block rounded-md w-full pl-6 pr-3 py-2 text-body-small shadow-sm outline-1 -outline-offset-1 outline-border-color focus:outline-2 focus:-outline-offset-2 focus:outline-primary placeholder:text-slate-500\"\n #searchInput\n type=\"text\"\n [placeholder]=\"searchPlaceholder()\"\n [(ngModel)]=\"searchTerm\"\n (click)=\"$event.stopPropagation()\"\n />\n </div>\n }\n\n <cdk-virtual-scroll-viewport\n class=\"w-full\"\n [itemSize]=\"40\"\n [style.height.px]=\"Math.min(filteredOptions().length * 40, 224)\"\n >\n <div\n class=\"relative cursor-default py-2 pr-9 pl-3 select-none\"\n *cdkVirtualFor=\"let option of filteredOptions(); trackBy: trackByValue; let i = index\"\n (click)=\"handleOptionClick(option)\"\n [class.bg-slate-50]=\"!!option.isDisabled\"\n [class.hover:bg-primary-50]=\"!option.isDisabled\"\n [id]=\"'listbox-option-' + i\"\n role=\"option\"\n >\n <span class=\"block truncate\">\n {{ option.name }}\n </span>\n\n @if (isItemSelected(option)) {\n <span class=\"absolute inset-y-0 right-0 flex items-center pr-4 text-primary\">\n <ng-icon name=\"heroCheck\" />\n </span>\n }\n </div>\n </cdk-virtual-scroll-viewport>\n </div>\n }\n </div>\n</div>\n","import { NgClass } from '@angular/common';\nimport { Component, input, InputSignal, model } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { FormValueControl } from '@angular/forms/signals';\nimport { NgIcon } from '@ng-icons/core';\n\n@Component({\n selector: 'skcr-input',\n templateUrl: './input.component.html',\n styleUrls: [\n './input.component.scss',\n ],\n imports: [\n FormsModule,\n NgClass,\n NgIcon\n ],\n})\nexport class InputComponent implements FormValueControl<string | number | undefined | null> {\n id: InputSignal<string> = input('');\n type: InputSignal<string> = input('text');\n label: InputSignal<string> = input('');\n placeholder: InputSignal<string> = input('');\n isOptional: InputSignal<boolean> = input(false);\n isSearchInput: InputSignal<boolean> = input(false);\n isInvalid: InputSignal<boolean> = input(false);\n isDisabled: InputSignal<boolean> = input(false);\n\n readonly value = model<string | number | undefined | null>();\n\n handleChange(event: Event) {\n const newValue = (event.target as HTMLInputElement).value;\n this.value.set(newValue);\n }\n}\n","<div>\n @if (label()) {\n <label\n class=\"mb-1 flex items-center gap-2\"\n [for]=\"id()\"\n >\n {{ label() }}\n\n @if (isOptional()) {\n <span class=\"text-slate-500\"> Optional </span>\n }\n </label>\n }\n\n <div class=\"relative\">\n @if (isSearchInput()) {\n <div class=\"pointer-events-none absolute inset-y-0 left-0 flex items-center pl-3\">\n <span class=\"flex items-center\">\n <ng-icon name=\"heroMagnifyingGlass\" />\n </span>\n </div>\n }\n\n <input\n class=\"block w-full rounded-md px-3 py-2 text-body-small shadow-sm outline-1 -outline-offset-1 outline-border-color focus:outline-2 focus:-outline-offset-2 focus:outline-primary placeholder:text-slate-500\"\n [id]=\"id() || label()\"\n [name]=\"id()\"\n [type]=\"type()\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"isDisabled()\"\n [(ngModel)]=\"value\"\n (input)=\"handleChange($event)\"\n [ngClass]=\"{\n 'pl-10': isSearchInput(),\n 'outline-destructive placeholder-destructive focus:outline-destructive focus:ring-destructive': isInvalid(),\n 'outline-lightGrey focus:outline-primary focus:ring-primary': !isInvalid(),\n 'cursor-not-allowed bg-slate-50': isDisabled(),\n }\"\n />\n </div>\n</div>\n","import { NgClass } from '@angular/common';\nimport { Component, input, InputSignal, model } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { FormValueControl } from '@angular/forms/signals';\nimport { NgIcon } from '@ng-icons/core';\n\n@Component({\n selector: 'skcr-input-number',\n templateUrl: './input-number.component.html',\n imports: [\n NgClass,\n FormsModule,\n NgIcon,\n ],\n})\nexport class InputNumberComponent implements FormValueControl<number | undefined | null> {\n name: InputSignal<string> = input<string>('');\n label: InputSignal<string> = input<string>('');\n placeholder: InputSignal<string> = input<string>('');\n maxFractionDigits: InputSignal<number> = input<number>(0);\n isInvalid: InputSignal<boolean> = input<boolean>(false);\n tooltipText: InputSignal<string> = input<string>('');\n\n readonly value = model<number | undefined | null>();\n\n inputPattern = `^\\\\d+\\\\.?\\\\d{0,${this.maxFractionDigits()}}$`;\n\n handleKeyDown(event: KeyboardEvent): void {\n if (\n !(\n (event.key >= '0' && event.key <= '9') ||\n [\n 'Backspace',\n 'Tab',\n 'ArrowLeft',\n 'ArrowRight',\n 'Delete',\n 'Home',\n 'End',\n ].includes(event.key)\n )\n ) {\n event.preventDefault();\n }\n }\n\n handleChange(event: Event) {\n const value = (event.target as HTMLInputElement).value;\n\n this.value.set(value === '' ? undefined : +value);\n }\n}\n","<div>\n <label\n class=\"mb-1 flex items-center justify-between\"\n [for]=\"name()\"\n >\n <div class=\"flex items-center gap-2\">\n {{ label() }}\n </div>\n\n @if (tooltipText()) {\n <div class=\"flex items-center has-tooltip\">\n <ng-icon\n class=\"size-4\"\n name=\"heroQuestionMarkCircle\"\n />\n\n <div class=\"tooltip bg-gray-800 text-white -left-50 top-4 p-2 rounded text-xs max-w-md whitespace-normal\">\n {{ tooltipText() }}\n </div>\n </div>\n }\n </label>\n\n <input\n class=\"block w-full rounded-md px-3 py-2 text-body-small shadow-sm outline-1 -outline-offset-1 outline-border-color focus:outline-2 focus:-outline-offset-2 focus:outline-primary placeholder:text-slate-500\"\n [id]=\"name()\"\n [name]=\"name()\"\n type=\"text\"\n inputmode=\"numeric\"\n [pattern]=\"inputPattern\"\n [placeholder]=\"placeholder()\"\n (keydown)=\"handleKeyDown($event)\"\n [(ngModel)]=\"value\"\n (input)=\"handleChange($event)\"\n [ngClass]=\"{\n 'outline-destructive placeholder-destructive focus:outline-destructive focus:ring-destructive': isInvalid(),\n 'outline-lightGrey focus:outline-primary focus:ring-primary': !isInvalid(),\n }\"\n />\n</div>\n","import { NgClass } from '@angular/common';\nimport { Component, effect, input, InputSignal, output, signal, WritableSignal } from '@angular/core';\nimport { NgIcon } from '@ng-icons/core';\n\nenum EButtonColorVariant {\n Primary = 'btn-primary',\n Danger = 'btn-danger',\n}\n\n@Component({\n selector: 'skcr-submit-button',\n templateUrl: './submit-button.component.html',\n styleUrls: [\n './submit-button.component.scss',\n ],\n imports: [\n NgClass,\n NgIcon,\n ],\n})\nexport class SubmitButtonComponent {\n label: InputSignal<string> = input('');\n isLoading: InputSignal<boolean> = input<boolean>(false);\n isFullWidth: InputSignal<boolean> = input<boolean>(false);\n isDisabled: InputSignal<boolean> = input<boolean>(false);\n isSuccess: InputSignal<boolean> = input<boolean>(false);\n colorVariant: InputSignal<EButtonColorVariant> = input<EButtonColorVariant>(EButtonColorVariant.Primary);\n submitClicked = output<void>();\n\n constructor() {\n effect(() => {\n if (this.isSuccess()) {\n this.isSuccessIconDisplayed.set(true);\n\n setTimeout(() => {\n this.isSuccessIconDisplayed.set(false);\n }, 1000);\n }\n });\n }\n\n isSuccessIconDisplayed: WritableSignal<boolean> = signal(false);\n\n handleCLick(): void {\n this.submitClicked.emit();\n }\n}\n","<button\n class=\"btn btn-large w-full\"\n type=\"button\"\n [class]=\"colorVariant()\"\n [ngClass]=\"{\n 'btn-success': isSuccessIconDisplayed(),\n 'btn-full': isFullWidth(),\n }\"\n [disabled]=\"isLoading() || isSuccessIconDisplayed() || isDisabled()\"\n (click)=\"handleCLick()\"\n>\n @if (isLoading()) {\n <span class=\"spinner\"></span>\n }\n\n @if (isSuccessIconDisplayed()) {\n <span class=\"flex items-center justify-center text-inherit\">\n <ng-icon\n name=\"heroCheck\"\n size=\"20px\"\n />\n </span>\n }\n\n @if (!isLoading() && !isSuccessIconDisplayed()) {\n {{ label() }}\n }\n</button>\n","import { NgClass } from '@angular/common';\nimport { Component, input, InputSignal, model } from '@angular/core';\nimport { FormCheckboxControl } from '@angular/forms/signals';\n\n@Component({\n selector: 'skcr-checkbox',\n templateUrl: './checkbox.component.html',\n imports: [\n NgClass,\n ],\n})\nexport class CheckboxComponent implements FormCheckboxControl {\n name: InputSignal<string> = input('');\n label: InputSignal<string> = input('');\n subLabel: InputSignal<string> = input('');\n isDisabled: InputSignal<boolean> = input(false);\n isWithFullSpace: InputSignal<boolean> = input(false);\n isLabelLeft: InputSignal<boolean> = input(false);\n\n readonly checked = model<boolean>(false);\n\n handleToggleClick(): void {\n if (!this.isDisabled()) {\n this.checked.update(currentValue => !currentValue);\n }\n }\n}\n","<div\n class=\"flex items-center gap-2\"\n [class.flex-row-reverse]=\"!isLabelLeft()\"\n [ngClass]=\"{\n 'justify-between': isWithFullSpace(),\n }\"\n>\n <div class=\"flex flex-col gap-1\">\n <label\n [ngClass]=\"{\n 'opacity-50': isDisabled(),\n 'cursor-pointer': !isDisabled(),\n }\"\n [for]=\"name()\"\n >\n {{ label() }}\n </label>\n\n @if (subLabel()) {\n <p class=\"text-slate-500\">\n {{ subLabel() }}\n </p>\n }\n </div>\n\n <button\n class=\"relative inline-flex h-6 w-11 shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors duration-200 ease-in-out focus:ring-2 focus:ring-primary focus:ring-offset-2 focus:outline-hidden\"\n type=\"button\"\n [ngClass]=\"{\n 'bg-primary': checked(),\n 'bg-slate-200': !checked(),\n 'opacity-50 cursor-not-allowed': isDisabled(),\n }\"\n role=\"switch\"\n [attr.aria-checked]=\"checked()\"\n [disabled]=\"isDisabled()\"\n (click)=\"handleToggleClick()\"\n [id]=\"name()\"\n >\n <span class=\"sr-only\">\n {{ label() }}\n </span>\n\n <span\n [class]=\"\n 'pointer-events-none inline-block size-5 transform rounded-full bg-white shadow-sm ring-0 transition duration-200 ease-in-out ' +\n (checked() ? 'translate-x-5' : 'translate-x-0')\n \"\n aria-hidden=\"true\"\n ></span>\n </button>\n</div>\n","import { Component, input, InputSignal, model } from '@angular/core';\nimport { FormCheckboxControl } from '@angular/forms/signals';\n\n@Component({\n selector: 'skcr-checkbox-classic',\n templateUrl: './checkbox-classic.component.html',\n})\nexport class CheckboxClassicComponent implements FormCheckboxControl {\n name: InputSignal<string> = input('');\n label: InputSignal<string> = input('');\n isDisabled: InputSignal<boolean> = input(false);\n\n readonly checked = model<boolean>(false);\n\n handleToggleClick(): void {\n if (!this.isDisabled()) {\n this.checked.set(!this.checked());\n }\n }\n}\n","<div class=\"flex gap-1.5 items-center\" (click)=\"handleToggleClick()\">\n <div class=\"group grid size-4 grid-cols-1\">\n <input\n class=\"col-start-1 row-start-1 appearance-none rounded-sm border border-border-color bg-white checked:border-primary checked:bg-primary indeterminate:border-primary indeterminate:bg-primary focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary disabled:border-border-color disabled:bg-slate-50 disabled:checked:bg-slate-50\"\n type=\"checkbox\"\n [id]=\"name()\"\n [checked]=\"checked()\"\n [disabled]=\"isDisabled()\"\n />\n\n <svg\n class=\"pointer-events-none col-start-1 row-start-1 size-3.5 self-center justify-self-center stroke-white group-has-disabled:stroke-slate-950/25 dark:group-has-disabled:stroke-white/25\"\n viewBox=\"0 0 14 14\"\n fill=\"none\"\n >\n <path\n class=\"opacity-0 group-has-checked:opacity-100\"\n d=\"M3 8L6 11L11 3.5\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n class=\"opacity-0 group-has-indeterminate:opacity-100\"\n d=\"M3 7H11\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </div>\n\n <label\n class=\"leading-none cursor-pointer\"\n [class.cursor-not-allowed]=\"isDisabled()\"\n [class.opacity-50]=\"isDisabled()\"\n >\n {{ label() }}\n </label>\n</div>\n","import {\n Component,\n computed,\n ElementRef,\n forwardRef,\n inject,\n input,\n InputSignal, model,\n Signal,\n signal,\n ViewChild,\n WritableSignal,\n} from '@angular/core';\nimport { animate, style, transition, trigger } from '@angular/animations';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { NgClass } from '@angular/common';\nimport { NgIcon } from '@ng-icons/core';\nimport { FormValueControl } from '@angular/forms/signals';\nimport { TSelectOption } from '../../types';\n\n@Component({\n selector: 'skcr-select',\n templateUrl: './select.component.html',\n animations: [\n trigger('AnimationTrigger0', [\n transition(':leave', [\n style({ opacity: 1 }),\n animate('200ms ease-in-out', style({ opacity: 0 })),\n ]),\n ]),\n ],\n imports: [\n NgClass,\n NgIcon,\n FormsModule,\n ],\n})\nexport class SelectComponent implements FormValueControl<unknown> {\n @ViewChild('searchInput') searchInput!: ElementRef<HTMLInputElement>;\n\n readonly value = model<unknown>();\n\n options: InputSignal<TSelectOption<unknown>[]> = input.required();\n label: InputSignal<string> = input('');\n placeholder: InputSignal<string> = input('');\n isInvalid: InputSignal<boolean> = input(false);\n isSearchDisplayed: InputSignal<boolean> = input(false);\n isDisabled: InputSignal<boolean> = input(false);\n isOptional: InputSignal<boolean> = input(false);\n isFullWidth: InputSignal<boolean> = input(false);\n isShort: InputSignal<boolean> = input(false);\n isResetDisplayed: InputSignal<boolean> = input(true);\n searchTerm: WritableSignal<string> = signal('');\n isOpen: WritableSignal<boolean> = signal(false);\n dropdownTop = 0;\n dropdownLeft = 0;\n dropdownWidth = 0;\n formattedOptions: Signal<TSelectOption<unknown>[]> = computed(() => {\n let formattedOptions: TSelectOption<unknown>[] = this.options() || [];\n\n if (formattedOptions[0]?.value === undefined) {\n formattedOptions = formattedOptions.map(option => {\n return {\n ...option,\n value: option.id,\n };\n });\n }\n\n return formattedOptions;\n });\n displayedValue: Signal<string> = computed(() => {\n let displayedValue: string;\n\n if (this.value() !== null && this.value() !== undefined) {\n displayedValue = this.formattedOptions().find(option => option.value === this.value())!.name;\n } else {\n if (this.placeholder) {\n displayedValue = this.placeholder();\n } else if (this.isOptional()) {\n displayedValue = 'None';\n } else {\n displayedValue = 'To select';\n }\n }\n\n return displayedValue;\n });\n filteredOptions: Signal<TSelectOption<unknown>[]> = computed(() => {\n const normalizedQuery: string = this.normalizeString(this.searchTerm());\n\n return this.formattedOptions().filter(option => {\n return this.normalizeString(option.name).includes(normalizedQuery);\n });\n });\n private elRef: ElementRef = inject(ElementRef);\n\n toggleSelect(): void {\n if (this.isSearchDisplayed()) {\n this.searchTerm.set('');\n }\n this.isOpen.update(isOpen => !isOpen);\n\n if (this.isOpen()) {\n this.updateDropdownPosition();\n document.addEventListener('click', this.clickOutsideHandler);\n setTimeout(() => {\n if (this.isSearchDisplayed()) {\n this.searchInput.nativeElement.focus();\n }\n });\n } else if (!this.isOpen) {\n document.removeEventListener('click', this.clickOutsideHandler);\n }\n }\n\n optionByValue(index: number, option: TSelectOption<unknown>): unknown {\n return option.value;\n }\n\n onSearchTermInput(event: Event) {\n this.searchTerm.set((event.target as HTMLInputElement).value);\n }\n\n handleOptionClick(item: TSelectOption<unknown>, event: MouseEvent): void {\n if (this.isOptional() && this.value() === item.value) {\n this.value.set(null);\n } else {\n this.value.set(item.value);\n }\n\n this.toggleSelect();\n event.preventDefault();\n }\n\n isItemSelected(item: TSelectOption<unknown>): boolean {\n return this.value() === item.value;\n }\n\n getSelectedOption(): TSelectOption<unknown> | undefined {\n return this.formattedOptions().find(option => option.value === this.value());\n }\n\n clearSelection(event: MouseEvent): void {\n this.value.set(null);\n event.stopPropagation();\n }\n\n private normalizeString(value: string): string {\n return value\n .normalize('NFD')\n .replace(/[\\u0300-\\u036f]/g, '')\n .toLocaleLowerCase();\n }\n\n private clickOutsideHandler: (e: MouseEvent) => void = (e: MouseEvent): void => {\n if (!this.elRef.nativeElement.contains(e.target) && this.isOpen()) {\n this.toggleSelect();\n }\n };\n\n private updateDropdownPosition(): void {\n const buttonElement = this.elRef.nativeElement.querySelector('button');\n if (buttonElement) {\n const rect = buttonElement.getBoundingClientRect();\n this.dropdownTop = rect.bottom + window.scrollY;\n this.dropdownLeft = rect.left + window.scrollX;\n this.dropdownWidth = rect.width;\n }\n }\n}\n","<div>\n @if (label()) {\n <label class=\"flex items-center gap-2\">\n {{ label() }}\n\n @if (isOptional()) {\n <span class=\"text-xs text-slate-500\">\n {{ 'Optional' }}\n </span>\n }\n </label>\n }\n\n <div\n class=\"relative\"\n [ngClass]=\"{\n 'w-fit min-w-[180px]': isShort(),\n 'w-full': isFullWidth(),\n 'mt-1': label(),\n }\"\n >\n <button\n class=\"grid w-full shadow-sm cursor-default grid-cols-1 rounded-md py-2 px-3 text-left outline-1 -outline-offset-1 outline-border-color focus:outline-2 focus:-outline-offset-2 focus:outline-primary\"\n (click)=\"toggleSelect()\"\n [disabled]=\"isDisabled() || !options().length\"\n [ngClass]=\"{\n 'border-destructive focus:border-destructive focus:ring-destructive': isInvalid(),\n 'border-border-color focus:border-primaryBlue focus:ring-primaryBlue': !isInvalid(),\n 'cursor-not-allowed bg-slate-50': isDisabled() || !options().length,\n 'cursor-pointer bg-white': !isDisabled() && !!options().length,\n }\"\n type=\"button\"\n aria-expanded=\"true\"\n aria-haspopup=\"listbox\"\n aria-labelledby=\"multiselect-label\"\n >\n <span\n class=\"col-start-1 row-start-1 flex items-center gap-2 truncate pr-6\"\n [ngClass]=\"{\n 'text-slate-400': !this.value(),\n }\"\n >\n {{ this.displayedValue() }}\n </span>\n\n <span class=\"col-start-1 row-start-1 flex items-center gap-2 self-center justify-self-end text-slate-500\">\n @if (isResetDisplayed() && value() !== null && value() !== undefined) {\n <span\n class=\"size-5 sm:size-4 cursor-pointer\"\n (click)=\"clearSelection($event)\"\n >\n <ng-icon name=\"heroXMark\" />\n </span>\n }\n <span class=\"size-5 sm:size-4\">\n <ng-icon name=\"heroChevronUpDown\" />\n </span>\n </span>\n </button>\n\n @if (isOpen()) {\n <ul\n class=\"fixed z-50 max-h-60 overflow-auto rounded-md bg-white py-1 text-base shadow-lg ring-1 ring-black/5 focus:outline-hidden sm:text-body-small\"\n [style.top.px]=\"dropdownTop\"\n [style.left.px]=\"dropdownLeft\"\n [style.width.px]=\"dropdownWidth\"\n @AnimationTrigger0\n role=\"listbox\"\n >\n @if (isSearchDisplayed()) {\n <li class=\"relative cursor-default py-2 px-3 shadow-sm select-none\">\n <div class=\"pointer-events-none absolute inset-y-0 left-1 flex items-center pl-3\">\n <span class=\"flex items-center\">\n <ng-icon name=\"heroMagnifyingGlass\" />\n </span>\n </div>\n\n <input\n class=\"block rounded-md w-full pl-6 pr-3 py-2 text-body-small shadow-sm outline-1 -outline-offset-1 outline-border-color focus:outline-2 focus:-outline-offset-2 focus:outline-primary placeholder:text-slate-500\"\n #searchInput\n type=\"text\"\n [value]=\"searchTerm()\"\n (input)=\"onSearchTermInput($event)\"\n (click)=\"$event.stopPropagation()\"\n />\n </li>\n }\n\n @for (option of filteredOptions(); track optionByValue(i, option); let i = $index) {\n <li\n class=\"relative cursor-pointer select-none py-2 pl-8 pr-4 text-left hover:bg-primary-50\"\n (click)=\"handleOptionClick(option, $event)\"\n [id]=\"'listbox-option-' + i\"\n role=\"option\"\n [attr.aria-selected]=\"isItemSelected(option)\"\n >\n <span\n class=\"flex items-center gap-2 truncate\"\n [ngClass]=\"{\n 'font-semibold': isItemSelected(option),\n 'font-normal': !isItemSelected(option),\n }\"\n >\n {{ option.name }}\n @if (option.icon) {\n <img\n class=\"size-4\"\n [src]=\"'assets/icons/' + option.icon + '.svg'\"\n alt=\"\"\n />\n }\n </span>\n\n @if (isItemSelected(option)) {\n <span class=\"absolute inset-y-0 right-0 flex items-center pr-4 text-primary\">\n <ng-icon name=\"heroCheck\" />\n </span>\n }\n </li>\n }\n </ul>\n }\n </div>\n</div>\n","import { Component, input } from '@angular/core';\n\n@Component({\n selector: 'app-loader',\n templateUrl: './loader.component.html',\n styleUrls: [\n './loader.component.scss',\n ],\n})\nexport class LoaderComponent {\n size = input<string>('xl');\n isNotAbsolute = input<boolean>(false);\n}\n","<div [class]=\"'loader ' + size\"></div>\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TooltipService {\n private activeTooltip: HTMLElement | null = null;\n\n showTooltip(event: MouseEvent, content: string): void {\n this.hideTooltip();\n\n const tooltip = document.createElement('div');\n tooltip.className =\n 'bg-gray-800 text-white p-2 rounded text-xs max-w-md whitespace-normal z-[9999] fixed pointer-events-none';\n tooltip.style.visibility = 'visible';\n tooltip.textContent = content;\n\n tooltip.style.left = event.clientX + 10 + 'px';\n tooltip.style.top = event.clientY - 30 + 'px';\n\n document.body.appendChild(tooltip);\n this.activeTooltip = tooltip;\n }\n\n hideTooltip(): void {\n if (this.activeTooltip) {\n document.body.removeChild(this.activeTooltip);\n this.activeTooltip = null;\n }\n }\n\n updateTooltipPosition(event: MouseEvent): void {\n if (this.activeTooltip) {\n this.activeTooltip.style.left = event.clientX + 10 + 'px';\n this.activeTooltip.style.top = event.clientY - 30 + 'px';\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component, computed,\n inject,\n input,\n InputSignal,\n output,\n OutputEmitterRef, Signal,\n} from '@angular/core';\nimport { animate, style, transition, trigger } from '@angular/animations';\nimport { NgIcon } from '@ng-icons/core';\nimport { TooltipService } from '../services/tooltip.service';\nimport { ESortDirection } from '../../enums';\n\n@Component({\n selector: 'skcr-table-header-cell',\n templateUrl: './table-header-cell.component.html',\n imports: [\n NgIcon,\n ],\n animations: [\n trigger('fadeIn', [\n transition(':enter', [\n style({ opacity: 0 }),\n animate('300ms', style({ opacity: 1 })),\n ]),\n ]),\n ],\n})\nexport class TableHeaderCellComponent {\n private tooltipService: TooltipService = inject(TooltipService);\n\n name: InputSignal<string> = input.required();\n sortDirection: InputSignal<ESortDirection> = input<ESortDirection>(ESortDirection.None);\n isDisabled: InputSignal<boolean> = input<boolean>(false);\n isOrderByDisplayed: InputSignal<boolean> = input<boolean>(false);\n isInFixedCol: InputSignal<boolean> = input<boolean>(false);\n disabledText: InputSignal<string> = input<string>(\n 'Sorting is possible on this value only for query with less than 10000 results.',\n );\n tooltipText: InputSignal<string | undefined> = input<string | undefined>();\n clickEvent: OutputEmitterRef<void> = output<void>();\n\n hasTooltipToDisplay: Signal<boolean> = computed(() => {\n return this.isDisabled() || !!this.tooltipText();\n })\n\n ESortDirection: typeof ESortDirection = ESortDirection;\n\n emitClickEvent(): void {\n if (!this.isDisabled()) {\n this.clickEvent.emit();\n }\n }\n\n showTooltip(event: MouseEvent): void {\n const text = this.isDisabled() ? this.disabledText() : this.tooltipText()!;\n\n this.tooltipService.showTooltip(event, text);\n }\n\n hideTooltip(): void {\n this.tooltipService.hideTooltip();\n }\n\n updateTooltipPosition(event: MouseEvent): void {\n this.tooltipService.updateTooltipPosition(event);\n }\n}\n","<div>\n <button\n class=\"flex items-center gap-1.5 text-start text-caption font-medium text-slate-500\"\n type=\"button\"\n [class.cursor-not-allowed]=\"isDisabled()\"\n [class.opacity-50]=\"isDisabled()\"\n (click)=\"!isDisabled() && emitClickEvent()\"\n (mouseenter)=\"hasTooltipToDisplay() ? showTooltip($event) : null\"\n (mouseleave)=\"hasTooltipToDisplay() ? hideTooltip() : null\"\n (mousemove)=\"hasTooltipToDisplay() ? updateTooltipPosition($event) : null\"\n >\n <span\n class=\"inline-block whitespace-normal break-words leading-tight\"\n [class.w-[150px]]=\"isInFixedCol() && isOrderByDisplayed()\"\n [class.w-[144px]]=\"isInFixedCol() && !isOrderByDisplayed()\"\n >\n <ng-content></ng-content>\n </span>\n\n @if (isOrderByDisplayed()) {\n <div class=\"shrink-0 flex items-center\">\n <div class=\"shrink-0 flex items-center relative\">\n @switch (sortDirection()) {\n @case (ESortDirection.Ascending) {\n <ng-icon\n class=\"absolute transition-opacity duration-300\"\n name=\"heroChevronUp\"\n @fadeIn\n aria-hidden=\"true\"\n ></ng-icon>\n }\n @case (ESortDirection.Descending) {\n <ng-icon\n class=\"absolute transition-opacity duration-300\"\n name=\"heroChevronDown\"\n @fadeIn\n aria-hidden=\"true\"\n ></ng-icon>\n }\n @case (ESortDirection.None) {\n <ng-icon\n class=\"absolute transition-opacity duration-300\"\n name=\"heroChevronUpDown\"\n @fadeIn\n aria-hidden=\"true\"\n ></ng-icon>\n }\n }\n </div>\n </div>\n }\n </button>\n</div>\n","import { NgClass, NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n contentChildren,\n input,\n InputSignal,\n output,\n OutputEmitterRef,\n Signal,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport { CdkVirtualScrollViewport, ScrollingModule } from '@angular/cdk/scrolling';\nimport { LoaderComponent } from '../loader/loader.component';\nimport { TableHeaderCellComponent } from '../table-header-cell/table-header-cell.component';\nimport { ESortDirection } from '../../enums';\n\n@Component({\n selector: 'skcr-table',\n templateUrl: './table.component.html',\n imports: [\n NgClass,\n NgTemplateOutlet,\n ScrollingModule,\n LoaderComponent,\n ],\n})\nexport class TableComponent<T extends Record<string, unknown>> {\n @ViewChild(CdkVirtualScrollViewport, { static: false })\n viewPort!: CdkVirtualScrollViewport;\n\n itemsList: InputSignal<T[]> = input.required();\n isContentLoading: InputSignal<boolean> = input(false);\n columns: InputSignal<Array<string | { property: string; displayName: string }>> = input.required();\n columnCategories: InputSignal<Array<{ label: string; colspan: number }> | undefined> = input();\n noRowsMessage: InputSignal<string> = input('');\n title: InputSignal<string> = input('');\n fixedColumnsCount: InputSignal<number> = input(0);\n selectedItemIds: InputSignal<Set<number> | undefined> = input();\n tableEndClose: OutputEmitterRef<void> = output<void>();\n\n headerCellTemplateRef: Signal<TemplateRef<unknown> | undefined> = contentChild<TemplateRef<unknown>>('headerCell');\n rowCellTemplateRef: Signal<TemplateRef<unknown> | undefined> = contentChild<TemplateRef<unknown>>('rowCell');\n\n sortButtons: Signal<readonly TableHeaderCellComponent[]> =\n contentChildren<TableHeaderCellComponent>(TableHeaderCellComponent);\n\n get inverseOfTranslation(): string {\n if (!this.viewPort || !this.viewPort['_renderedContentOffset']) {\n return '-0px';\n }\n let offset = this.viewPort['_renderedContentOffset'];\n return `-${offset}px`;\n }\n\n sortingItem: Signal<{ column: string; direction: ESortDirection } | null> = computed(() => {\n const sortButtons = this.sortButtons();\n\n const sortingButton = sortButtons.find(button => button.sortDirection() !== ESortDirection.None);\n\n return sortingButton\n ? {\n column: sortingButton.name(),\n direction: sortingButton.sortDirection(),\n }\n : null;\n });\n\n onScroll(index: number): void {\n const bufferZone = 250;\n\n if (index + bufferZone > this.itemsList().length) {\n this.tableEndClose.emit();\n }\n }\n\n scrollToTop(): void {\n this.viewPort.scrollToIndex(0);\n }\n\n refreshViewport(): void {\n if (this.viewPort) {\n this.viewPort.checkViewportSize();\n\n setTimeout(() => {\n this.viewPort.checkViewportSize();\n }, 100);\n }\n }\n\n getColumnLeftPosition(columnIndex: number): string {\n if (columnIndex === 0) {\n return '0px';\n }\n\n const columnWidth = 180;\n\n return `${columnIndex * columnWidth}px`;\n }\n\n isRowSelected(item: T): boolean {\n return this.selectedItemIds()?.has(item['id'] as number) ?? false;\n }\n\n isCategoryStart(columnIndex: number): boolean {\n if (!this.columnCategories() || columnIndex === 0) {\n return false;\n }\n\n const categories = this.columnCategories()!;\n let currentColumnCount = 0;\n\n for (const category of categories) {\n if (currentColumnCount === columnIndex) {\n return true;\n }\n currentColumnCount += category.colspan;\n }\n\n return false;\n }\n}\n","<div class=\"border-collapse overflow-hidden w-full mb-6 flex flex-col h-full\">\n <cdk-virtual-scroll-viewport\n class=\"flex-grow block overflow-y-auto overflow-x-auto\"\n (scrolledIndexChange)=\"onScroll($event)\"\n itemSize=\"52\"\n minBufferPx=\"2080\"\n maxBufferPx=\"4160\"\n >\n <table class=\"w-full relative table-auto whitespace-nowrap\">\n <thead\n class=\"bg-white sticky top-0 z-10 before:content-[''] before:absolute before:bottom-0 before:left-0 before:right-0 before:h-[1px] before:bg-slate-200\"\n [style.top]=\"inverseOfTranslation\"\n >\n @if (columnCategories()) {\n <tr>\n @for (category of columnCategories(); track category; let i = $index) {\n <th\n class=\"py-2 p-3 text-left text-caption text-slate-500\"\n style=\"box-shadow: inset 0 -1px 0 0 rgb(226 232 240)\"\n scope=\"colgroup\"\n [attr.colspan]=\"category.colspan\"\n [style.left]=\"i < fixedColumnsCount() ? getColumnLeftPosition(i) : null\"\n [ngClass]=\"{\n 'pl-5': i === 0,\n 'sticky z-[1] bg-white': i === 0,\n 'border-l border-slate-200': i > 0,\n }\"\n >\n {{ category.label }}\n </th>\n }\n </tr>\n }\n <tr>\n @for (column of columns(); track column; let isLast = $last; let i = $index) {\n <th\n class=\"p-3 text-left text-caption font-medium text-slate-500\"\n style=\"box-shadow: inset 0 -1px 0 0 rgb(226 232 240)\"\n scope=\"col\"\n [attr.aria-sort]=\"sortingItem()?.column === column ? sortingItem()!.direction : null\"\n [ngClass]=\"{\n 'pr-5': isLast,\n 'sticky z-[1] bg-white': i < fixedColumnsCount(),\n 'border-l border-slate-200': isCategoryStart(i),\n }\"\n [style.left]=\"i < fixedColumnsCount() ? getColumnLeftPosition(i) : null\"\n >\n <ng-container *ngTemplateOutlet=\"headerCellTemplateRef()!; context: { column }\"></ng-container>\n </th>\n }\n </tr>\n </thead>\n\n <tbody>\n @if (isContentLoading()) {\n <td\n class=\"pt-10 sm:px-3\"\n [colSpan]=\"columns().length\"\n >\n <div class=\"flex h-[400px] items-center justify-center\">\n <app-loader [isNotAbsolute]=\"true\"></app-loader>\n </div>\n </td>\n } @else if (!!itemsList().length) {\n <tr\n class=\"height-[50px] border-b border-slate-200\"\n *cdkVirtualFor=\"let item of !isContentLoading() ? itemsList() : []; let index = index\"\n >\n @for (column of columns(); track column; let isFirst = $first; let islast = $last; let i = $index) {\n <td\n class=\"py-2 px-3 text-body-small whitespace-nowrap\"\n [ngClass]=\"{\n 'pr-5': islast,\n 'sticky z-[1]': i < fixedColumnsCount(),\n 'border-l border-slate-200': isCategoryStart(i),\n 'bg-white': !isRowSelected(item),\n 'bg-slate-100': isRowSelected(item),\n }\"\n [class.text-end]=\"column === 'actions'\"\n [style.left]=\"i < fixedColumnsCount() ? getColumnLeftPosition(i) : null\"\n >\n <span\n [style.width]=\"i < fixedColumnsCount() ? '150px' : 'auto'\"\n class=\"inline-block whitespace-normal break-words leading-tight\"\n >\n <ng-container *ngTemplateOutlet=\"rowCellTemplateRef()!; context: { column, item }\"></ng-container>\n </span>\n </td>\n }\n </tr>\n } @else {\n <td\n class=\"pt-10 sm:px-3\"\n [ngClass]=\"{\n hidden: isContentLoading(),\n }\"\n [colSpan]=\"columns().length\"\n >\n <span class=\"flex items-center justify-center\"> No results </span>\n </td>\n }\n </tbody>\n </table>\n </cdk-virtual-scroll-viewport>\n</div>\n","import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostBinding,\n input,\n InputSignal,\n InputSignalWithTransform,\n output,\n OutputEmitterRef,\n signal,\n ViewChild,\n WritableSignal,\n} from '@angular/core';\nimport { NgClass } from '@angular/common';\nimport { animate, animateChild, AnimationEvent, group, query, style, transition, trigger } from '@angular/animations';\n\n@Component({\n selector: 'skcr-dialog',\n templateUrl: './dialog.component.html',\n animations: [\n trigger('DialogTrigger', [\n transition(':enter', [\n style({ opacity: 0, transform: 'translateY(1rem)' }),\n animate('300ms ease-out', style({ opacity: 1, transform: 'translateY(0)' })),\n ]),\n transition(':leave', [\n style({ opacity: 1, transform: 'translateY(0)' }),\n animate('200ms ease-in', style({ opacity: 0, transform: 'translateY(1rem)' })),\n ]),\n ]),\n trigger('BackdropTrigger', [\n transition(':enter', [\n style({ opacity: 0 }),\n animate('300ms ease-out', style({ opacity: 1 })),\n ]),\n transition(':leave', [\n style({ opacity: 1 }),\n animate('200ms ease-in', style({ opacity: 0 })),\n ]),\n ]),\n trigger('ModalTrigger', [\n transition(':enter', [\n group([\n query('@DialogTrigger', animateChild()),\n query('@BackdropTrigger', animateChild()),\n ]),\n ]),\n transition(':leave', [\n group([\n query('@DialogTrigger', animateChild()),\n query('@BackdropTrigger', animateChild()),\n ]),\n ]),\n ]),\n ],\n imports: [\n NgClass,\n ],\n})\nexport class DialogComponent {\n @HostBinding('@ModalTrigger') hasAnimation = true;\n\n isLarge: InputSignal<boolean> = input(false);\n isOpen: InputSignalWithTransform<boolean, unknown> = input(true, { transform: booleanAttribute });\n isCloseAnimDone: OutputEmitterRef<void> = output<void>();\n\n private escapeKeyListener: ((event: KeyboardEvent) => void) | null = null;\n\n @ViewChild('dialog', { static: false })\n set dialogElementComponent(dialogElement: ElementRef<HTMLDialogElement> | null) {\n if (dialogElement) {\n this.dialogElement.set(dialogElement);\n dialogElement.nativeElement.showModal();\n\n this.escapeKeyListener = (event: KeyboardEvent) => {\n console.log(event.key);\n if (event.key === 'Escape') {\n event.preventDefault();\n }\n };\n\n dialogElement.nativeElement.addEventListener('keydown', this.escapeKeyListener);\n }\n }\n dialogElement: WritableSignal<ElementRef<HTMLDialogElement> | null> = signal(null);\n\n onDialogAnimDone(e: AnimationEvent): void {\n if (e.toState === 'void') {\n const dialogEl = this.dialogElement()?.nativeElement;\n if (dialogEl && this.escapeKeyListener) {\n dialogEl.removeEventListener('keydown', this.escapeKeyListener);\n this.escapeKeyListener = null;\n }\n\n dialogEl?.close();\n this.dialogElement.set(null);\n this.isCloseAnimDone.emit();\n }\n }\n}\n","@if (isOpen()) {\n <div\n class=\"fixed inset-0 z-50 bg-slate-500/75 transition-opacity\"\n [@BackdropTrigger]\n ></div>\n\n <dialog\n class=\"z-[60] fixed inset-0 m-auto rounded-lg shadow-xl backdrop:invisible max-h-[90vh] flex flex-col overflow-hidden scrollbar-hide\"\n #dialog\n (cancel)=\"$event.preventDefault()\"\n [@DialogTrigger]\n (@DialogTrigger.done)=\"onDialogAnimDone($event)\"\n [ngClass]=\"{\n 'max-w-lg': !isLarge(),\n 'max-w-4xl': isLarge(),\n }\"\n >\n <ng-content></ng-content>\n </dialog>\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n effect,\n input,\n InputSignal,\n output,\n OutputEmitterRef,\n signal,\n WritableSignal,\n} from '@angular/core';\nimport { DialogComponent } from '../dialog/dialog.component';\nimport { NgClass } from '@angular/common';\nimport { NgIcon } from '@ng-icons/core';\nimport { SubmitButtonComponent } from '../submit-button/submit-button.component';\nimport { EButtonColorVariant, EModalCloseCondition } from '../../enums';\n\n@Component({\n selector: 'skcr-modal',\n templateUrl: './modal.component.html',\n imports: [\n DialogComponent,\n SubmitButtonComponent,\n NgClass,\n NgIcon,\n ],\n})\nexport class ModalComponent {\n submitLabel: InputSignal<string> = input('');\n isSubmitting: InputSignal<boolean> = input(false);\n isSuccess: InputSignal<boolean> = input(false);\n isLarge: InputSignal<boolean> = input(false);\n form: InputSignal<string | null> = input<string | null>(null);\n submitColorVariant: InputSignal<EButtonColorVariant> = input<EButtonColorVariant>(EButtonColorVariant.Primary);\n closingCondition: InputSignal<EModalCloseCondition> = input<EModalCloseCondition>(EModalCloseCondition.Close);\n isCancelButtonVisible: InputSignal<boolean> = input(false);\n cancelLabel: InputSignal<string> = input('');\n isCrossButtonVisible: InputSignal<boolean> = input(false);\n isFooterInvisible: InputSignal<boolean> = input(false);\n\n closeEvent: OutputEmitterRef<void> = output();\n submitEvent: OutputEmitterRef<void> = output();\n\n isOpen: WritableSignal<boolean> = signal(true);\n\n constructor() {\n effect(() => {\n const closingCondition = this.closingCondition();\n const isSuccess = this.isSuccess();\n\n if (closingCondition === EModalCloseCondition.SubmitSuccess && isSuccess) {\n setTimeout(() => {\n this.handleCloseClick();\n }, 1000);\n }\n });\n }\n\n handleCloseClick(): void {\n this.isOpen.set(false);\n }\n\n emitCloseEvent(): void {\n this.closeEvent.emit();\n }\n\n emitSubmitEvent(): void {\n this.submitEvent.emit();\n }\n}\n","<skcr-dialog\n [isOpen]=\"isOpen()\"\n (isCloseAnimDone)=\"emitCloseEvent()\"\n [isLarge]=\"isLarge()\"\n>\n <div\n class=\"relative flex flex-col h-full overflow-hidden py-4 sm:py-6\"\n [ngClass]=\"{\n 'px-9': isCrossButtonVisible(),\n 'px-4 sm:px-6': !isCrossButtonVisible(),\n 'max-w-4xl w-4xl': isLarge(),\n 'max-w-lg w-lg': !isLarge(),\n }\"\n >\n @if (isCrossButtonVisible()) {\n <div class=\"absolute right-0 top-0 pr-4 pt-4\">\n <button\n class=\"rounded-md bg-white text-slate-950\"\n type=\"button\"\n [disabled]=\"isSubmitting() || isSuccess() || !isOpen()\"\n (click)=\"handleCloseClick()\"\n >\n <span class=\"sr-only\"> Close </span>\n\n <ng-icon\n name=\"heroXMark\"\n size=\"20px\"\n />\n </button>\n </div>\n }\n\n <div class=\"flex-1 px-1 overflow-y-auto scrollbar-hide\">\n <ng-content></ng-content>\n </div>\n\n @if (!isFooterInvisible()) {\n <div\n class=\"mt-6 flex flex-col justify-center gap-3 pb-1\"\n [ngClass]=\"{\n 'grid grid-flow-row-dense grid-cols-2': isCancelButtonVisible(),\n 'w-full': !isCancelButtonVisible(),\n }\"\n >\n <skcr-submit-button\n [label]=\"submitLabel()\"\n [isLoading]=\"isSubmitting()\"\n [isSuccess]=\"isSuccess()\"\n [colorVariant]=\"submitColorVariant()\"\n (submitClicked)=\"emitSubmitEvent()\"\n [isFullWidth]=\"true\"\n [ngClass]=\"{\n 'col-start-2': isCancelButtonVisible(),\n }\"\n ></skcr-submit-button>\n\n @if (isCancelButtonVisible()) {\n <button\n class=\"btn btn-neutral max-w-full\"\n type=\"button\"\n [disabled]=\"isSubmitting() || isSuccess() || !isOpen()\"\n (click)=\"handleCloseClick()\"\n >\n {{ cancelLabel() || 'Cancel' }}\n </button>\n }\n </div>\n }\n </div>\n</skcr-dialog>\n","import {\n Component,\n computed,\n HostBinding,\n input,\n InputSignal,\n output,\n OutputEmitterRef,\n Signal,\n ViewChild,\n} from '@angular/core';\nimport { ModalComponent } from '../modal/modal.component';\nimport { NgIcon } from '@ng-icons/core';\nimport { EButtonColorVariant, EConfirmLevelVariant, EModalCloseCondition } from '../../enums';\n\n@Component({\n selector: 'skcr-confirmation-modal',\n templateUrl: './confirmation-modal.component.html',\n imports: [\n ModalComponent,\n NgIcon,\n ],\n})\nexport class ConfirmationModalComponent {\n @HostBinding('class') class = 'absolute';\n\n submitLabel: InputSignal<string> = input.required();\n isSubmitting: InputSignal<boolean> = input(false);\n isSuccess: InputSignal<boolean> = input(false);\n form: InputSignal<string | null> = input<string | null>(null);\n isCloseButtonVisible: InputSignal<boolean> = input(false);\n cancelLabel: InputSignal<string> = input('');\n levelVariant: InputSignal<EConfirmLevelVariant> = input<EConfirmLevelVariant>(EConfirmLevelVariant.Info);\n closingCondition: InputSignal<EModalCloseCondition> = input<EModalCloseCondition>(EModalCloseCondition.SubmitSuccess);\n\n closeEvent: OutputEmitterRef<void> = output();\n submitEvent: OutputEmitterRef<void> = output();\n\n iconKey: Signal<string> = computed(() => {\n return this.levelVariant() === EConfirmLevelVariant.Success ? 'heroCheckCircle' : 'heroExclamationTriangle';\n });\n\n submitColorVariant: Signal<EButtonColorVariant> = computed(() => {\n return this.levelVariant() === EConfirmLevelVariant.Danger\n ? EButtonColorVariant.Danger\n : EButtonColorVariant.Primary;\n });\n\n iconColorVariant: Signal<string> = computed(() => {\n return this.levelVariant() === EConfirmLevelVariant.Danger ? 'text-red-500' : 'text-primary-l';\n });\n\n emitCloseEvent(): void {\n this.closeEvent.emit();\n }\n\n emitSubmitEvent(): void {\n this.submitEvent.emit();\n }\n}\n","<skcr-modal\n [submitColorVariant]=\"submitColorVariant()\"\n [submitLabel]=\"submitLabel()\"\n [isSubmitting]=\"isSubmitting()\"\n [isSuccess]=\"isSuccess()\"\n [closingCondition]=\"closingCondition()\"\n [isCancelButtonVisible]=\"isCloseButtonVisible()\"\n (submitEvent)=\"emitSubmitEvent()\"\n (closeEvent)=\"emitCloseEvent()\"\n>\n <div class=\"flex max-w-xl flex-col gap-3\">\n @if (iconKey()) {\n <div [class]=\"'mx-auto flex h-12 w-12 shrink-0 items-center justify-center rounded-full ' + iconColorVariant()\">\n <ng-icon\n [name]=\"iconKey()!\"\n size=\"48px\"\n />\n </div>\n }\n\n <div class=\"flex flex-col gap-8\">\n <ng-content select=\"[title]\"></ng-content>\n\n <ng-content select=\"[content]\"></ng-content>\n </div>\n </div>\n</skcr-modal>\n","import { Component, ElementRef, input, InputSignal, output, OutputEmitterRef, signal, ViewChild } from '@angular/core';\nimport { NgIcon } from '@ng-icons/core';\nimport { animate, style, transition, trigger } from '@angular/animations';\n\n@Component({\n selector: 'skcr-dropdown-menu',\n templateUrl: './dropdown-menu.component.html',\n imports: [\n NgIcon,\n ],\n animations: [\n trigger('dropdownAnimation', [\n transition(':enter', [\n style({ opacity: 0, transform: 'translateY(-10px)' }),\n animate('200ms ease-out', style({ opacity: 1, transform: 'translateY(0)' })),\n ]),\n transition(':leave', [\n style({ opacity: 1 }),\n animate('200ms ease-in', style({ opacity: 0, transform: 'translateY(-10px)' })),\n ]),\n ]),\n ],\n})\nexport class DropdownMenuComponent {\n @ViewChild('dropdownMenu') dropdownMenu!: ElementRef;\n @ViewChild('toggleButton') toggleButton!: ElementRef;\n\n label: InputSignal<string | undefined> = input<string>();\n labelIcon: InputSignal<string | undefined> = input<string>();\n isOpeningOnLeft: InputSignal<boolean> = input<boolean>(false);\n\n menuClosed: OutputEmitterRef<void> = output<void>();\n\n isMenuOpen = signal(false);\n\n toggleMenu(): void {\n this.isMenuOpen.update(isOpen => !isOpen);\n\n if (this.isMenuOpen()) {\n document.addEventListener('click', this.clickOutsideHandler);\n } else {\n document.removeEventListener('click', this.clickOutsideHandler);\n }\n }\n\n closeMenu(): void {\n this.isMenuOpen.set(false);\n document.removeEventListener('click', this.clickOutsideHandler);\n this.menuClosed.emit();\n }\n\n private clickOutsideHandler = (e: MouseEvent): void => {\n const target = e.target as Node;\n const isClickInDropdown = this.dropdownMenu?.nativeElement.contains(target);\n const isClickInToggleButton = this.toggleButton?.nativeElement.contains(target);\n\n if (!isClickInDropdown && !isClickInToggleButton) {\n this.closeMenu();\n }\n };\n}\n","<div class=\"relative h-fit inline-block text-left\">\n <div>\n <button\n class=\"cursor-pointer inline-flex items-center rounded-md gap-1 h-full items-center border-b-2 border-transparent px-3 py-2 hover:bg-slate-100\"\n #toggleButton\n type=\"button\"\n (click)=\"toggleMenu()\"\n >\n {{ label() }}\n\n <ng-icon\n [name]=\"labelIcon() ?? 'heroChevronDown'\"\n [size]=\"labelIcon() ? '1.25rem' : '1rem'\"\n ></ng-icon>\n </button>\n </div>\n\n @if (isMenuOpen()) {\n <div\n class=\"absolute z-10 mt-2 min-w-33 origin-top-right rounded-md bg-white shadow-lg ring-1 ring-black/5 focus:outline-hidden\"\n #dropdownMenu\n role=\"menu\"\n tabindex=\"-1\"\n @dropdownAnimation\n [class.left-0]=\"!isOpeningOnLeft()\"\n [class.right-0]=\"isOpeningOnLeft()\"\n aria-orientation=\"vertical\"\n aria-labelledby=\"menu-button\"\n >\n <div\n class=\"flex flex-col py-1\"\n role=\"none\"\n (click)=\"closeMenu()\"\n >\n <ng-content />\n </div>\n </div>\n }\n</div>\n","import { Component, inject, input, InputSignal, model } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE, MatNativeDateModule } from '@angular/material/core';\nimport { NgClass } from '@angular/common';\nimport { FormValueControl } from '@angular/forms/signals';\n\nexport const DD_MM_YYYY_FORMAT = {\n parse: {\n dateInput: 'DD/MM/YYYY',\n },\n display: {\n dateInput: 'DD/MM/YYYY',\n monthYearLabel: 'MMM YYYY',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMMM YYYY',\n },\n};\n\n@Component({\n selector: 'skcr-date-picker',\n templateUrl: './date-picker.component.html',\n providers: [\n { provide: MAT_DATE_FORMATS, useValue: DD_MM_YYYY_FORMAT },\n { provide: MAT_DATE_LOCALE, useValue: 'fr-FR' },\n ],\n imports: [\n NgClass,\n FormsModule,\n MatDatepickerModule,\n MatInputModule,\n MatFormFieldModule,\n MatNativeDateModule,\n FormsModule,\n MatDatepickerModule,\n MatInputModule,\n MatFormFieldModule,\n MatNativeDateModule,\n ],\n})\nexport class DatePickerComponent implements FormValueControl<Date | null | undefined> {\n name: InputSignal<string> = input<string>('');\n label: InputSignal<string> = input<string>('');\n placeholder: InputSignal<string> = input<string>('dd/mm/yyyy');\n isInvalid: InputSignal<boolean> = input<boolean>(false);\n isDisabled: InputSignal<boolean> = input<boolean>(false);\n\n readonly value = model<Date | null>();\n\n private dateAdapter = inject(DateAdapter<Date>)!;\n\n constructor() {\n this.dateAdapter.setLocale('fr-FR');\n }\n\n formatDate(date: Date | null | undefined): string {\n if (!date) return '';\n\n const day = date.getDate().toString().padStart(2, '0');\n const month = (date.getMonth() + 1).toString().padStart(2, '0');\n const year = date.getFullYear();\n\n return `${day}/${month}/${year}`;\n }\n\n parseDate(dateStr: string): Date | null {\n if (!dateStr) return null;\n\n dateStr = dateStr.replace(/[^\\d/]/g, '');\n\n if (dateStr.length === 2 && !dateStr.includes('/')) {\n dateStr += '/';\n } else if (dateStr.length === 5 && dateStr.indexOf('/', 3) === -1) {\n dateStr += '/';\n }\n\n const parts = dateStr.split('/');\n if (parts.length !== 3) return null;\n\n const day = parseInt(parts[0], 10);\n const month = parseInt(parts[1], 10) - 1;\n const year = parseInt(parts[2], 10);\n\n if (isNaN(day) || isNaN(month) || isNaN(year)) return null;\n\n const date = new Date(year, month, day);\n\n if (date.getFullYear() !== year || date.getMonth() !== month || date.getDate() !== day) {\n return null;\n }\n\n return date;\n }\n\n onDateChange(date: Date | null): void {\n this.value.set(date);\n // this.markAsTouched();\n }\n\n onInputChange(event: Event): void {\n const input = event.target as HTMLInputElement;\n const value = input.value;\n\n let formattedValue = value.replace(/[^\\d/]/g, '');\n\n if (formattedValue.length === 2 && !formattedValue.includes('/')) {\n formattedValue = formattedValue + '/';\n input.value = formattedValue;\n } else if (formattedValue.length === 5 && formattedValue.indexOf('/', 3) === -1) {\n formattedValue = formattedValue + '/';\n input.value = formattedValue;\n }\n\n const date = this.parseDate(formattedValue);\n this.value.set(date);\n }\n}\n","<div>\n <label\n class=\"mb-1 block\"\n [for]=\"name()\"\n >\n {{ label() }}\n </label>\n\n <!-- Custom styled input that looks like other inputs in the project -->\n <div class=\"relative\">\n <input\n class=\"block w-full rounded-md px-3 py-2 text-body-small shadow-sm outline-1 -outline-offset-1 outline-border-color focus:outline-2 focus:-outline-offset-2 placeholder:text-slate-500\"\n [id]=\"name()\"\n [name]=\"name()\"\n type=\"text\"\n [placeholder]=\"placeholder()\"\n [matDatepicker]=\"picker\"\n [value]=\"value()\"\n [attr.value]=\"value() ? formatDate(value()) : ''\"\n (dateChange)=\"onDateChange($event.value)\"\n (input)=\"onInputChange($event)\"\n [disabled]=\"isDisabled()\"\n [ngClass]=\"{\n 'border-destructive placeholder-destructive focus:border-destructive focus:ring-destructive': isInvalid(),\n 'border-lightGrey focus:border-primary focus:ring-primaryBlue': !isInvalid(),\n 'cursor-not-allowed bg-slate-50': isDisabled(),\n }\"\n />\n <button\n class=\"absolute right-2 top-1/2 -translate-y-1/2\"\n type=\"button\"\n (click)=\"picker.open()\"\n [disabled]=\"isDisabled()\"\n >\n <svg\n class=\"h-5 w-5\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n >\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z\"\n />\n </svg>\n </button>\n </div>\n\n <!-- Hidden Material datepicker -->\n <mat-datepicker\n #picker\n [startAt]=\"value()\"\n [disabled]=\"isDisabled()\"\n ></mat-datepicker>\n</div>\n","import { ChangeDetectionStrategy, Component, forwardRef, input, InputSignal, model } from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';\nimport { FormValueControl } from '@angular/forms/signals';\nimport { TSelectOption } from '../../types';\n\nexport interface RadioOption<T> {\n value: T;\n label: string;\n}\n\n@Component({\n selector: 'skcr-radio-button',\n templateUrl: './radio-button.component.html',\n imports: [\n FormsModule,\n ReactiveFormsModule,\n ],\n})\nexport class RadioButtonComponent implements FormValueControl<unknown> {\n options: InputSignal<TSelectOption<unknown>[]> = input<TSelectOption<unknown>[]>([]);\n label: InputSignal<string> = input('');\n isDisabled: InputSignal<boolean> = input(false);\n\n readonly value = model<unknown>();\n\n onRadioChange(value: unknown): void {\n this.value.set(value);\n }\n}\n","<fieldset class=\"flex items-center gap-4 flex-row\">\n <legend>{{ label() }}</legend>\n\n <div class=\"flex gap-4\">\n @for (option of options(); track option.value) {\n <div class=\"flex items-center\">\n <input\n class=\"relative size-4 appearance-none rounded-full border border-border-color bg-white before:absolute before:inset-1 before:rounded-full before:bg-white not-checked:before:hidden checked:border-primary checked:bg-primary focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary-600 disabled:border-border-color disabled:bg-slate-100 disabled:before:bg-slate-400 forced-colors:appearance-auto forced-colors:before:hidden\"\n [id]=\"option.name\"\n type=\"radio\"\n [name]=\"label()\"\n [checked]=\"value() === option.value\"\n [disabled]=\"isDisabled()\"\n (change)=\"onRadioChange(option.value)\"\n />\n\n <label\n class=\"ml-3 block\"\n [for]=\"option.name\"\n >{{ option.name }}</label\n >\n </div>\n }\n </div>\n</fieldset>\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { TToast } from '../types';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ToastService {\n newToastEvent$: Subject<TToast> = new Subject<TToast>();\n}\n","import { Component, HostBinding, input, InputSignal, OnInit, output, OutputEmitterRef } from '@angular/core';\nimport { animate, style, transition, trigger } from '@angular/animations';\nimport { NgIcon } from '@ng-icons/core';\nimport { TToast } from '../../../types';\n\n@Component({\n selector: 'app-toast',\n templateUrl: './toast.component.html',\n animations: [\n trigger('AnimationTrigger0', [\n transition(':enter', [\n style({ transform: 'translateY(0.5rem)', opacity: 0 }),\n animate('300ms ease-out', style({ transform: 'translateY(0)', opacity: 1 })),\n ]),\n transition(':leave', [\n style({ opacity: 1 }),\n animate('100ms ease-in', style({ opacity: 0 })),\n ]),\n ]),\n ],\n imports: [\n NgIcon,\n ],\n})\nexport class ToastComponent implements OnInit {\n @HostBinding('class') class = 'flex w-full flex-col items-center space-y-4 sm:items-end';\n\n toast: InputSignal<TToast> = input.required();\n\n disposeEvent: OutputEmitterRef<TToast> = output<TToast>();\n\n ngOnInit(): void {\n setTimeout(() => {\n this.closeToast();\n }, 5000);\n }\n\n closeToast(): void {\n this.disposeEvent.emit(this.toast());\n }\n}\n","<div\n class=\"ring-opacity/5 pointer-events-auto w-full max-w-sm overflow-hidden rounded-md bg-white shadow-lg\"\n @AnimationTrigger0\n>\n <div class=\"p-4\">\n <div class=\"flex items-center\">\n <ng-icon\n class=\"shrink-0 text-destructive\"\n name=\"heroXCircle\"\n />\n\n <div class=\"ml-3 w-0 flex-1 pt-0.5\">\n <p class=\"text-destructive\">An error occured</p>\n\n @if (!!toast().message || !!toast().key) {\n <p class=\"mt-1 text-body-small text-slate-500\">\n <span>\n {{ toast().message }}\n </span>\n </p>\n }\n </div>\n </div>\n </div>\n</div>\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, inject, OnInit } from '@angular/core';\nimport { ToastService } from '../../../services';\nimport { Subscription } from 'rxjs';\nimport { ToastComponent } from '../toast/toast.component';\nimport { TToast } from '../../../types';\n\n@Component({\n selector: 'skcr-toaster',\n templateUrl: './toaster.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n ToastComponent,\n ],\n})\nexport class ToasterComponent implements OnInit {\n private cdr: ChangeDetectorRef = inject(ChangeDetectorRef);\n private toastService: ToastService = inject(ToastService);\n\n currentToasts: TToast[] = [];\n newToastSub!: Subscription;\n\n ngOnInit(): void {\n this.subscribeToToasts();\n }\n\n subscribeToToasts(): void {\n this.newToastSub = this.toastService.newToastEvent$.subscribe(toast => {\n const currentToast: TToast = {\n id: Date.now(),\n key: toast.key,\n message: toast.message,\n };\n\n this.currentToasts.push(currentToast);\n this.cdr.detectChanges();\n });\n }\n\n dispose(toastToRemove: TToast): void {\n const toastIndex = this.currentToasts.findIndex(toast => toast.id === toastToRemove.id);\n this.currentToasts.splice(toastIndex, 1);\n this.cdr.detectChanges();\n }\n}\n","<div class=\"fixed end-0 top-0 z-100 m-16 px-3 py-2\">\n <div\n class=\"pointer-events-none fixed inset-0 flex items-end px-4 py-6 sm:items-start sm:p-6\"\n aria-live=\"assertive\"\n >\n <div class=\"flex w-full flex-col items-center space-y-4 sm:items-end\">\n @for (toast of currentToasts; track toast; let i = $index) {\n <app-toast\n [toast]=\"toast\"\n (disposeEvent)=\"dispose($event)\"\n ></app-toast>\n }\n </div>\n </div>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["EButtonColorVariant","i1"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"skcr-autechre.mjs","sources":["../../../projects/skcr-autechre/src/lib/enums/sort-direction.enum.ts","../../../projects/skcr-autechre/src/lib/enums/button-color-variant.enum.ts","../../../projects/skcr-autechre/src/lib/enums/confirm-level-variant.enum.ts","../../../projects/skcr-autechre/src/lib/enums/modal-close-condition.enum.ts","../../../projects/skcr-autechre/src/lib/components/multi-select/multi-select.component.ts","../../../projects/skcr-autechre/src/lib/components/multi-select/multi-select.component.html","../../../projects/skcr-autechre/src/lib/components/input/input.component.ts","../../../projects/skcr-autechre/src/lib/components/input/input.component.html","../../../projects/skcr-autechre/src/lib/components/input-number/input-number.component.ts","../../../projects/skcr-autechre/src/lib/components/input-number/input-number.component.html","../../../projects/skcr-autechre/src/lib/components/submit-button/submit-button.component.ts","../../../projects/skcr-autechre/src/lib/components/submit-button/submit-button.component.html","../../../projects/skcr-autechre/src/lib/components/checkbox/checkbox.component.ts","../../../projects/skcr-autechre/src/lib/components/checkbox/checkbox.component.html","../../../projects/skcr-autechre/src/lib/components/checkbox-classic/checkbox-classic.component.ts","../../../projects/skcr-autechre/src/lib/components/checkbox-classic/checkbox-classic.component.html","../../../projects/skcr-autechre/src/lib/components/select/select.component.ts","../../../projects/skcr-autechre/src/lib/components/select/select.component.html","../../../projects/skcr-autechre/src/lib/components/loader/loader.component.ts","../../../projects/skcr-autechre/src/lib/components/loader/loader.component.html","../../../projects/skcr-autechre/src/lib/components/services/tooltip.service.ts","../../../projects/skcr-autechre/src/lib/components/table-header-cell/table-header-cell.component.ts","../../../projects/skcr-autechre/src/lib/components/table-header-cell/table-header-cell.component.html","../../../projects/skcr-autechre/src/lib/components/table/table.component.ts","../../../projects/skcr-autechre/src/lib/components/table/table.component.html","../../../projects/skcr-autechre/src/lib/components/dialog/dialog.component.ts","../../../projects/skcr-autechre/src/lib/components/dialog/dialog.component.html","../../../projects/skcr-autechre/src/lib/components/modal/modal.component.ts","../../../projects/skcr-autechre/src/lib/components/modal/modal.component.html","../../../projects/skcr-autechre/src/lib/components/confirmation-modal/confirmation-modal.component.ts","../../../projects/skcr-autechre/src/lib/components/confirmation-modal/confirmation-modal.component.html","../../../projects/skcr-autechre/src/lib/components/dropdown-menu/dropdown-menu.component.ts","../../../projects/skcr-autechre/src/lib/components/dropdown-menu/dropdown-menu.component.html","../../../projects/skcr-autechre/src/lib/components/date-picker/date-picker.component.ts","../../../projects/skcr-autechre/src/lib/components/date-picker/date-picker.component.html","../../../projects/skcr-autechre/src/lib/components/radio-button/radio-button.component.ts","../../../projects/skcr-autechre/src/lib/components/radio-button/radio-button.component.html","../../../projects/skcr-autechre/src/lib/services/toast.service.ts","../../../projects/skcr-autechre/src/lib/components/toasts/toast/toast.component.ts","../../../projects/skcr-autechre/src/lib/components/toasts/toast/toast.component.html","../../../projects/skcr-autechre/src/lib/components/toasts/toaster/toaster.component.ts","../../../projects/skcr-autechre/src/lib/components/toasts/toaster/toaster.component.html","../../../projects/skcr-autechre/src/skcr-autechre.ts"],"sourcesContent":["export enum ESortDirection {\n Ascending = 'ascending',\n Descending = 'descending',\n None = 'none',\n}\n","export enum EButtonColorVariant {\n Primary = 'btn-primary',\n Danger = 'btn-danger',\n}\n","export enum EConfirmLevelVariant {\n Danger = 'danger',\n Info = 'info',\n Success = 'success',\n}\n","export enum EModalCloseCondition {\n SubmitSuccess = 'SubmitSuccess',\n Close = 'close',\n}\n","import {\n Component,\n computed,\n effect,\n ElementRef,\n inject,\n input,\n InputSignal,\n model,\n ModelSignal,\n OnDestroy,\n Signal,\n signal,\n viewChild,\n WritableSignal,\n} from '@angular/core';\nimport { animate, style, transition, trigger } from '@angular/animations';\nimport { FormsModule } from '@angular/forms';\nimport { NgClass } from '@angular/common';\nimport { ScrollingModule } from '@angular/cdk/scrolling';\nimport { NgIcon } from '@ng-icons/core';\nimport { FormValueControl } from '@angular/forms/signals';\nimport { TSelectOption } from '../../types';\n\n@Component({\n selector: 'skcr-multi-select',\n templateUrl: './multi-select.component.html',\n animations: [\n trigger('AnimationTrigger0', [\n transition(':leave', [\n style({ opacity: 1 }),\n animate('200ms ease-in-out', style({ opacity: 0 })),\n ]),\n ]),\n ],\n imports: [\n FormsModule,\n NgClass,\n NgIcon,\n ScrollingModule,\n ],\n})\nexport class MultiSelectComponent implements FormValueControl<unknown[]>, OnDestroy {\n options: InputSignal<TSelectOption<unknown>[]> = input.required();\n label: InputSignal<string> = input('');\n placeholder: InputSignal<string> = input('');\n searchPlaceholder: InputSignal<string> = input('');\n isInvalid: InputSignal<boolean> = input(false);\n isDisabled: InputSignal<boolean> = input(false);\n isSearchDisplayed: InputSignal<boolean> = input(false);\n isOptional: InputSignal<boolean> = input(false);\n isFullWidth: InputSignal<boolean> = input(false);\n areValueDisplayedOutside: InputSignal<boolean> = input(false);\n tooltipText: InputSignal<string> = input('');\n\n readonly value: ModelSignal<unknown[]> = model<unknown[]>([]);\n\n searchTerm: Signal<string> = signal('');\n isOpen: WritableSignal<boolean> = signal(false);\n dropdownTop = 0;\n dropdownLeft = 0;\n dropdownWidth = 0;\n\n formattedOptions: Signal<TSelectOption<unknown>[]> = computed(() => {\n let formattedOptions: TSelectOption<unknown>[] = this.options() || [];\n\n if (formattedOptions[0]?.value === undefined) {\n formattedOptions = formattedOptions.map(option => {\n return {\n ...option,\n value: option.id,\n };\n });\n }\n\n return formattedOptions;\n });\n\n filteredOptions: Signal<TSelectOption<unknown>[]> = computed(() => {\n const normalizedQuery: string = this.normalizeString(this.searchTerm());\n\n return this.formattedOptions().filter(option => {\n return this.normalizeString(option.name).includes(normalizedQuery);\n });\n });\n\n selectedOptions = computed(() => {\n return this.formattedOptions().filter(option => this.value()!.includes(option.value));\n });\n\n selectedOptionsText = computed(() => {\n return this.selectedOptions()\n .map(option => option.name)\n .join(', ');\n });\n\n private elRef: ElementRef = inject(ElementRef);\n readonly searchInputEl = viewChild<ElementRef<HTMLInputElement>>('searchInput');\n\n constructor() {\n effect(() => {\n const disabledSelectedOptions = this.formattedOptions().filter(\n option => option.isDisabled && this.value()?.includes(option.value),\n );\n\n if (disabledSelectedOptions.length > 0) {\n const updatedValue = this.value()?.filter(\n value => !disabledSelectedOptions.some(option => option.value === value),\n );\n this.value.set(updatedValue || []);\n }\n });\n }\n\n toggleSelect(event?: MouseEvent): void {\n if (event?.defaultPrevented) {\n return;\n }\n\n this.isOpen.update(isOpen => !isOpen);\n\n if (this.isOpen()) {\n this.updateDropdownPosition();\n document.addEventListener('click', this.clickOutsideHandler);\n window.addEventListener('resize', this.resizeHandler);\n window.addEventListener('scroll', this.resizeHandler, true);\n this.focusSearchInput();\n } else {\n document.removeEventListener('click', this.clickOutsideHandler);\n window.removeEventListener('resize', this.resizeHandler);\n window.removeEventListener('scroll', this.resizeHandler, true);\n }\n }\n\n handleOptionClick(item: TSelectOption<unknown>): void {\n if (!item.isDisabled) {\n const itemIndex = this.value()!.indexOf(item.value!);\n const updatedValue = [\n ...this.value()!,\n ];\n\n if (itemIndex >= 0) {\n updatedValue.splice(itemIndex, 1);\n } else {\n updatedValue.push(item.value!);\n }\n\n this.value.set(updatedValue);\n }\n }\n\n isItemSelected(item: TSelectOption<unknown>): boolean {\n return this.value()!.includes(item.value);\n }\n\n clearAllSelections(event: MouseEvent): void {\n this.value.set([]);\n event.stopPropagation();\n }\n\n removeOption(option: TSelectOption<unknown>, event: MouseEvent): void {\n event.stopPropagation();\n event.preventDefault();\n\n const updatedValue = this.value()!.filter(value => value !== option.value);\n this.value.set(updatedValue);\n }\n\n ngOnDestroy(): void {\n document.removeEventListener('click', this.clickOutsideHandler);\n window.removeEventListener('resize', this.resizeHandler);\n window.removeEventListener('scroll', this.resizeHandler, true);\n }\n\n private updateDropdownPosition(): void {\n const buttonElement = this.elRef.nativeElement.querySelector('button');\n if (buttonElement) {\n const rect = buttonElement.getBoundingClientRect();\n this.dropdownTop = rect.bottom + window.scrollY;\n this.dropdownLeft = rect.left + window.scrollX;\n this.dropdownWidth = rect.width;\n }\n }\n\n private resizeHandler = (): void => {\n if (this.isOpen()) {\n this.updateDropdownPosition();\n }\n };\n\n private focusSearchInput(): void {\n if (!this.isOpen() || !this.isSearchDisplayed()) return;\n setTimeout(() => {\n requestAnimationFrame(() => {\n const inputRef = this.searchInputEl();\n const inputEl = inputRef?.nativeElement;\n if (inputEl) {\n inputEl.focus();\n try {\n inputEl.select?.();\n } catch {}\n }\n });\n }, 1);\n }\n\n private clickOutsideHandler: (e: MouseEvent) => void = (e: MouseEvent): void => {\n if (!this.elRef.nativeElement.contains(e.target) && this.isOpen()) {\n this.toggleSelect();\n }\n };\n\n private normalizeString(value: string): string {\n return value\n .normalize('NFD')\n .replace(/[\\u0300-\\u036f]/g, '')\n .toLocaleLowerCase();\n }\n\n trackByValue(index: number, item: TSelectOption<unknown>): unknown {\n return item.value;\n }\n\n protected readonly Math = Math;\n}\n","<div>\n @if (label()) {\n <label\n class=\"flex items-center justify-between\"\n id=\"multiselect-label\"\n >\n <div class=\"flex items-center gap-2\">\n {{ label() }}\n\n @if (isOptional()) {\n <span class=\"text-xs text-slate-500\">Optional</span>\n }\n </div>\n\n @if (tooltipText()) {\n <div class=\"flex items-center has-tooltip\">\n <ng-icon\n class=\"size-4\"\n name=\"heroQuestionMarkCircle\"\n />\n\n <div class=\"tooltip bg-gray-800 text-white -left-50 top-4 p-2 rounded text-xs max-w-md whitespace-normal\">\n {{ tooltipText() }}\n </div>\n </div>\n }\n </label>\n }\n\n <div class=\"relative mt-1\">\n <button\n class=\"grid w-full min-h-9 cursor-default grid-cols-1 rounded-md shadow-sm py-2 px-3 text-left outline-1 -outline-offset-1 outline-border-color focus:outline-2 focus:-outline-offset-2 focus:outline-primary sm:text-body-small/6\"\n (click)=\"toggleSelect($event)\"\n [disabled]=\"isDisabled() || !options().length\"\n [ngClass]=\"{\n 'outline-destructive focus:outline-destructive focus:ring-destructive': isInvalid(),\n 'outline-border-color focus:outline-primaryBlue focus:ring-primaryBlue': !isInvalid(),\n 'cursor-not-allowed bg-slate-50': isDisabled() || !options().length,\n 'cursor-pointer bg-white': !isDisabled() && !!options().length,\n }\"\n type=\"button\"\n aria-expanded=\"true\"\n aria-haspopup=\"listbox\"\n aria-labelledby=\"multiselect-label\"\n >\n <div class=\"col-start-1 row-start-1 block gap-2 truncate pr-12\">\n @if (!selectedOptions()!.length || !!areValueDisplayedOutside()) {\n <span>\n {{ placeholder() }}\n </span>\n } @else {\n <div class=\"flex flex-wrap gap-1 max-h-[4rem] overflow-auto scrollbar-hide relative\">\n @for (selectedOption of selectedOptions(); track selectedOption.value) {\n <span\n class=\"px-2 py-0.5 bg-primary-50 text-primary-800 rounded-lg text-caption font-medium flex items-center gap-1\"\n >\n {{ selectedOption.name }}\n\n <span\n class=\"cursor-pointer text-primary-800 flex items-center\"\n (mousedown)=\"removeOption(selectedOption, $event)\"\n (click)=\"$event.stopPropagation(); $event.preventDefault()\"\n >\n <ng-icon\n class=\"size-4\"\n name=\"heroXMark\"\n />\n </span>\n </span>\n }\n </div>\n }\n </div>\n\n <span class=\"col-start-1 row-start-1 flex items-center gap-2 self-center justify-self-end text-slate-500\">\n <span class=\"size-5 sm:size-4\">\n <ng-icon name=\"heroChevronUpDown\" />\n </span>\n </span>\n </button>\n\n @if (isOpen()) {\n <div\n class=\"fixed z-50 w-full rounded-md bg-white text-base shadow-lg ring-1 ring-black/5 focus:outline-hidden sm:text-body-small overflow-hidden\"\n [style.top.px]=\"dropdownTop\"\n [style.left.px]=\"dropdownLeft\"\n [style.width.px]=\"dropdownWidth\"\n @AnimationTrigger0\n role=\"listbox\"\n aria-labelledby=\"multiselect-label\"\n >\n @if (isSearchDisplayed()) {\n <div class=\"relative cursor-default py-2 px-3 shadow-sm select-none\">\n <div class=\"pointer-events-none absolute inset-y-0 left-1 flex items-center pl-3\">\n <span class=\"flex items-center\">\n <ng-icon name=\"heroMagnifyingGlass\" />\n </span>\n </div>\n\n <input\n class=\"block rounded-md w-full pl-6 pr-3 py-2 text-body-small shadow-sm outline-1 -outline-offset-1 outline-border-color focus:outline-2 focus:-outline-offset-2 focus:outline-primary placeholder:text-slate-500\"\n #searchInput\n type=\"text\"\n [placeholder]=\"searchPlaceholder()\"\n [(ngModel)]=\"searchTerm\"\n (click)=\"$event.stopPropagation()\"\n />\n </div>\n }\n\n <cdk-virtual-scroll-viewport\n class=\"w-full\"\n [itemSize]=\"40\"\n [style.height.px]=\"Math.min(filteredOptions().length * 40, 224)\"\n >\n <div\n class=\"relative cursor-default py-2 pr-9 pl-3 select-none\"\n *cdkVirtualFor=\"let option of filteredOptions(); trackBy: trackByValue; let i = index\"\n (click)=\"handleOptionClick(option)\"\n [class.bg-slate-50]=\"!!option.isDisabled\"\n [class.hover:bg-primary-50]=\"!option.isDisabled\"\n [id]=\"'listbox-option-' + i\"\n role=\"option\"\n >\n <span class=\"block truncate\">\n {{ option.name }}\n </span>\n\n @if (isItemSelected(option)) {\n <span class=\"absolute inset-y-0 right-0 flex items-center pr-4 text-primary\">\n <ng-icon name=\"heroCheck\" />\n </span>\n }\n </div>\n </cdk-virtual-scroll-viewport>\n </div>\n }\n </div>\n</div>\n","import { NgClass } from '@angular/common';\nimport { Component, input, InputSignal, model } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { FormValueControl } from '@angular/forms/signals';\nimport { NgIcon } from '@ng-icons/core';\n\n@Component({\n selector: 'skcr-input',\n templateUrl: './input.component.html',\n styleUrls: [\n './input.component.scss',\n ],\n imports: [\n FormsModule,\n NgClass,\n NgIcon\n ],\n})\nexport class InputComponent implements FormValueControl<string | number | undefined | null> {\n id: InputSignal<string> = input('');\n type: InputSignal<string> = input('text');\n label: InputSignal<string> = input('');\n placeholder: InputSignal<string> = input('');\n isOptional: InputSignal<boolean> = input(false);\n isSearchInput: InputSignal<boolean> = input(false);\n isInvalid: InputSignal<boolean> = input(false);\n isDisabled: InputSignal<boolean> = input(false);\n\n readonly value = model<string | number | undefined | null>();\n\n handleChange(event: Event) {\n const newValue = (event.target as HTMLInputElement).value;\n this.value.set(newValue);\n }\n}\n","<div>\n @if (label()) {\n <label\n class=\"mb-1 flex items-center gap-2\"\n [for]=\"id()\"\n >\n {{ label() }}\n\n @if (isOptional()) {\n <span class=\"text-slate-500\"> Optional </span>\n }\n </label>\n }\n\n <div class=\"relative\">\n @if (isSearchInput()) {\n <div class=\"pointer-events-none absolute inset-y-0 left-0 flex items-center pl-3\">\n <span class=\"flex items-center\">\n <ng-icon name=\"heroMagnifyingGlass\" />\n </span>\n </div>\n }\n\n <input\n class=\"block w-full rounded-md px-3 py-2 text-body-small shadow-sm outline-1 -outline-offset-1 outline-border-color focus:outline-2 focus:-outline-offset-2 focus:outline-primary placeholder:text-slate-500\"\n [id]=\"id() || label()\"\n [name]=\"id()\"\n [type]=\"type()\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"isDisabled()\"\n [(ngModel)]=\"value\"\n (input)=\"handleChange($event)\"\n [ngClass]=\"{\n 'pl-10': isSearchInput(),\n 'outline-destructive placeholder-destructive focus:outline-destructive focus:ring-destructive': isInvalid(),\n 'outline-lightGrey focus:outline-primary focus:ring-primary': !isInvalid(),\n 'cursor-not-allowed bg-slate-50': isDisabled(),\n }\"\n />\n </div>\n</div>\n","import { NgClass } from '@angular/common';\nimport { Component, input, InputSignal, model } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { FormValueControl } from '@angular/forms/signals';\nimport { NgIcon } from '@ng-icons/core';\n\n@Component({\n selector: 'skcr-input-number',\n templateUrl: './input-number.component.html',\n imports: [\n NgClass,\n FormsModule,\n NgIcon,\n ],\n})\nexport class InputNumberComponent implements FormValueControl<number | undefined | null> {\n name: InputSignal<string> = input<string>('');\n label: InputSignal<string> = input<string>('');\n placeholder: InputSignal<string> = input<string>('');\n maxFractionDigits: InputSignal<number> = input<number>(0);\n isInvalid: InputSignal<boolean> = input<boolean>(false);\n tooltipText: InputSignal<string> = input<string>('');\n\n readonly value = model<number | undefined | null>();\n\n inputPattern = `^\\\\d+\\\\.?\\\\d{0,${this.maxFractionDigits()}}$`;\n\n handleKeyDown(event: KeyboardEvent): void {\n if (\n !(\n (event.key >= '0' && event.key <= '9') ||\n [\n 'Backspace',\n 'Tab',\n 'ArrowLeft',\n 'ArrowRight',\n 'Delete',\n 'Home',\n 'End',\n ].includes(event.key)\n )\n ) {\n event.preventDefault();\n }\n }\n\n handleChange(event: Event) {\n const value = (event.target as HTMLInputElement).value;\n\n this.value.set(value === '' ? undefined : +value);\n }\n}\n","<div>\n <label\n class=\"mb-1 flex items-center justify-between\"\n [for]=\"name()\"\n >\n <div class=\"flex items-center gap-2\">\n {{ label() }}\n </div>\n\n @if (tooltipText()) {\n <div class=\"flex items-center has-tooltip\">\n <ng-icon\n class=\"size-4\"\n name=\"heroQuestionMarkCircle\"\n />\n\n <div class=\"tooltip bg-gray-800 text-white -left-50 top-4 p-2 rounded text-xs max-w-md whitespace-normal\">\n {{ tooltipText() }}\n </div>\n </div>\n }\n </label>\n\n <input\n class=\"block w-full rounded-md px-3 py-2 text-body-small shadow-sm outline-1 -outline-offset-1 outline-border-color focus:outline-2 focus:-outline-offset-2 focus:outline-primary placeholder:text-slate-500\"\n [id]=\"name()\"\n [name]=\"name()\"\n type=\"text\"\n inputmode=\"numeric\"\n [pattern]=\"inputPattern\"\n [placeholder]=\"placeholder()\"\n (keydown)=\"handleKeyDown($event)\"\n [(ngModel)]=\"value\"\n (input)=\"handleChange($event)\"\n [ngClass]=\"{\n 'outline-destructive placeholder-destructive focus:outline-destructive focus:ring-destructive': isInvalid(),\n 'outline-lightGrey focus:outline-primary focus:ring-primary': !isInvalid(),\n }\"\n />\n</div>\n","import { NgClass } from '@angular/common';\nimport { Component, effect, input, InputSignal, output, signal, WritableSignal } from '@angular/core';\nimport { NgIcon } from '@ng-icons/core';\n\nenum EButtonColorVariant {\n Primary = 'btn-primary',\n Danger = 'btn-danger',\n}\n\n@Component({\n selector: 'skcr-submit-button',\n templateUrl: './submit-button.component.html',\n styleUrls: [\n './submit-button.component.scss',\n ],\n imports: [\n NgClass,\n NgIcon,\n ],\n})\nexport class SubmitButtonComponent {\n label: InputSignal<string> = input('');\n isLoading: InputSignal<boolean> = input<boolean>(false);\n isFullWidth: InputSignal<boolean> = input<boolean>(false);\n isDisabled: InputSignal<boolean> = input<boolean>(false);\n isSuccess: InputSignal<boolean> = input<boolean>(false);\n colorVariant: InputSignal<EButtonColorVariant> = input<EButtonColorVariant>(EButtonColorVariant.Primary);\n submitClicked = output<void>();\n\n constructor() {\n effect(() => {\n if (this.isSuccess()) {\n this.isSuccessIconDisplayed.set(true);\n\n setTimeout(() => {\n this.isSuccessIconDisplayed.set(false);\n }, 1000);\n }\n });\n }\n\n isSuccessIconDisplayed: WritableSignal<boolean> = signal(false);\n\n handleCLick(): void {\n this.submitClicked.emit();\n }\n}\n","<button\n class=\"btn btn-large w-full\"\n type=\"button\"\n [class]=\"colorVariant()\"\n [ngClass]=\"{\n 'btn-success': isSuccessIconDisplayed(),\n 'btn-full': isFullWidth(),\n }\"\n [disabled]=\"isLoading() || isSuccessIconDisplayed() || isDisabled()\"\n (click)=\"handleCLick()\"\n>\n @if (isLoading()) {\n <span class=\"spinner\"></span>\n }\n\n @if (isSuccessIconDisplayed()) {\n <span class=\"flex items-center justify-center text-inherit\">\n <ng-icon\n name=\"heroCheck\"\n size=\"20px\"\n />\n </span>\n }\n\n @if (!isLoading() && !isSuccessIconDisplayed()) {\n {{ label() }}\n }\n</button>\n","import { NgClass } from '@angular/common';\nimport { Component, input, InputSignal, model } from '@angular/core';\nimport { FormCheckboxControl } from '@angular/forms/signals';\n\n@Component({\n selector: 'skcr-checkbox',\n templateUrl: './checkbox.component.html',\n imports: [\n NgClass,\n ],\n})\nexport class CheckboxComponent implements FormCheckboxControl {\n name: InputSignal<string> = input('');\n label: InputSignal<string> = input('');\n subLabel: InputSignal<string> = input('');\n isDisabled: InputSignal<boolean> = input(false);\n isWithFullSpace: InputSignal<boolean> = input(false);\n isLabelLeft: InputSignal<boolean> = input(false);\n\n readonly checked = model<boolean>(false);\n\n handleToggleClick(): void {\n if (!this.isDisabled()) {\n this.checked.update(currentValue => !currentValue);\n }\n }\n}\n","<div\n class=\"flex items-center gap-2\"\n [class.flex-row-reverse]=\"!isLabelLeft()\"\n [ngClass]=\"{\n 'justify-between': isWithFullSpace(),\n }\"\n>\n <div class=\"flex flex-col gap-1\">\n <label\n [ngClass]=\"{\n 'opacity-50': isDisabled(),\n 'cursor-pointer': !isDisabled(),\n }\"\n [for]=\"name()\"\n >\n {{ label() }}\n </label>\n\n @if (subLabel()) {\n <p class=\"text-slate-500\">\n {{ subLabel() }}\n </p>\n }\n </div>\n\n <button\n class=\"relative inline-flex h-6 w-11 shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors duration-200 ease-in-out focus:ring-2 focus:ring-primary focus:ring-offset-2 focus:outline-hidden\"\n type=\"button\"\n [ngClass]=\"{\n 'bg-primary': checked(),\n 'bg-slate-200': !checked(),\n 'opacity-50 cursor-not-allowed': isDisabled(),\n }\"\n role=\"switch\"\n [attr.aria-checked]=\"checked()\"\n [disabled]=\"isDisabled()\"\n (click)=\"handleToggleClick()\"\n [id]=\"name()\"\n >\n <span class=\"sr-only\">\n {{ label() }}\n </span>\n\n <span\n [class]=\"\n 'pointer-events-none inline-block size-5 transform rounded-full bg-white shadow-sm ring-0 transition duration-200 ease-in-out ' +\n (checked() ? 'translate-x-5' : 'translate-x-0')\n \"\n aria-hidden=\"true\"\n ></span>\n </button>\n</div>\n","import { Component, input, InputSignal, model } from '@angular/core';\nimport { FormCheckboxControl } from '@angular/forms/signals';\n\n@Component({\n selector: 'skcr-checkbox-classic',\n templateUrl: './checkbox-classic.component.html',\n})\nexport class CheckboxClassicComponent implements FormCheckboxControl {\n name: InputSignal<string> = input('');\n label: InputSignal<string> = input('');\n isDisabled: InputSignal<boolean> = input(false);\n\n readonly checked = model<boolean>(false);\n\n handleToggleClick(): void {\n if (!this.isDisabled()) {\n this.checked.set(!this.checked());\n }\n }\n}\n","<div class=\"flex gap-1.5 items-center\" (click)=\"handleToggleClick()\">\n <div class=\"group grid size-4 grid-cols-1\">\n <input\n class=\"col-start-1 row-start-1 appearance-none rounded-sm border border-border-color bg-white checked:border-primary checked:bg-primary indeterminate:border-primary indeterminate:bg-primary focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary disabled:border-border-color disabled:bg-slate-50 disabled:checked:bg-slate-50\"\n type=\"checkbox\"\n [id]=\"name()\"\n [checked]=\"checked()\"\n [disabled]=\"isDisabled()\"\n />\n\n <svg\n class=\"pointer-events-none col-start-1 row-start-1 size-3.5 self-center justify-self-center stroke-white group-has-disabled:stroke-slate-950/25 dark:group-has-disabled:stroke-white/25\"\n viewBox=\"0 0 14 14\"\n fill=\"none\"\n >\n <path\n class=\"opacity-0 group-has-checked:opacity-100\"\n d=\"M3 8L6 11L11 3.5\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n class=\"opacity-0 group-has-indeterminate:opacity-100\"\n d=\"M3 7H11\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </div>\n\n <label\n class=\"leading-none cursor-pointer\"\n [class.cursor-not-allowed]=\"isDisabled()\"\n [class.opacity-50]=\"isDisabled()\"\n >\n {{ label() }}\n </label>\n</div>\n","import {\n Component,\n computed,\n ElementRef,\n forwardRef,\n inject,\n input,\n InputSignal, model,\n Signal,\n signal,\n ViewChild,\n WritableSignal,\n} from '@angular/core';\nimport { animate, style, transition, trigger } from '@angular/animations';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { NgClass } from '@angular/common';\nimport { NgIcon } from '@ng-icons/core';\nimport { FormValueControl } from '@angular/forms/signals';\nimport { TSelectOption } from '../../types';\n\n@Component({\n selector: 'skcr-select',\n templateUrl: './select.component.html',\n animations: [\n trigger('AnimationTrigger0', [\n transition(':leave', [\n style({ opacity: 1 }),\n animate('200ms ease-in-out', style({ opacity: 0 })),\n ]),\n ]),\n ],\n imports: [\n NgClass,\n NgIcon,\n FormsModule,\n ],\n})\nexport class SelectComponent implements FormValueControl<unknown> {\n @ViewChild('searchInput') searchInput!: ElementRef<HTMLInputElement>;\n\n readonly value = model<unknown>();\n\n options: InputSignal<TSelectOption<unknown>[]> = input.required();\n label: InputSignal<string> = input('');\n placeholder: InputSignal<string> = input('');\n isInvalid: InputSignal<boolean> = input(false);\n isSearchDisplayed: InputSignal<boolean> = input(false);\n isDisabled: InputSignal<boolean> = input(false);\n isOptional: InputSignal<boolean> = input(false);\n isFullWidth: InputSignal<boolean> = input(false);\n isShort: InputSignal<boolean> = input(false);\n isResetDisplayed: InputSignal<boolean> = input(true);\n\n searchTerm: WritableSignal<string> = signal('');\n isOpen: WritableSignal<boolean> = signal(false);\n dropdownTop = 0;\n dropdownLeft = 0;\n dropdownWidth = 0;\n formattedOptions: Signal<TSelectOption<unknown>[]> = computed(() => {\n let formattedOptions: TSelectOption<unknown>[] = this.options() || [];\n\n if (formattedOptions[0]?.value === undefined) {\n formattedOptions = formattedOptions.map(option => {\n return {\n ...option,\n value: option.id,\n };\n });\n }\n\n return formattedOptions;\n });\n displayedValue: Signal<string> = computed(() => {\n let displayedValue: string;\n\n if (this.value() !== null && this.value() !== undefined) {\n displayedValue = this.formattedOptions().find(option => option.value === this.value())!.name;\n } else {\n if (this.placeholder) {\n displayedValue = this.placeholder();\n } else if (this.isOptional()) {\n displayedValue = 'None';\n } else {\n displayedValue = 'To select';\n }\n }\n\n return displayedValue;\n });\n filteredOptions: Signal<TSelectOption<unknown>[]> = computed(() => {\n const normalizedQuery: string = this.normalizeString(this.searchTerm());\n\n return this.formattedOptions().filter(option => {\n return this.normalizeString(option.name).includes(normalizedQuery);\n });\n });\n private elRef: ElementRef = inject(ElementRef);\n\n toggleSelect(): void {\n if (this.isSearchDisplayed()) {\n this.searchTerm.set('');\n }\n this.isOpen.update(isOpen => !isOpen);\n\n if (this.isOpen()) {\n this.updateDropdownPosition();\n document.addEventListener('click', this.clickOutsideHandler);\n setTimeout(() => {\n if (this.isSearchDisplayed()) {\n this.searchInput.nativeElement.focus();\n }\n });\n } else if (!this.isOpen) {\n document.removeEventListener('click', this.clickOutsideHandler);\n }\n }\n\n optionByValue(index: number, option: TSelectOption<unknown>): unknown {\n return option.value;\n }\n\n onSearchTermInput(event: Event) {\n this.searchTerm.set((event.target as HTMLInputElement).value);\n }\n\n handleOptionClick(item: TSelectOption<unknown>, event: MouseEvent): void {\n if (this.isOptional() && this.value() === item.value) {\n this.value.set(null);\n } else {\n this.value.set(item.value);\n }\n\n this.toggleSelect();\n event.preventDefault();\n }\n\n isItemSelected(item: TSelectOption<unknown>): boolean {\n return this.value() === item.value;\n }\n\n getSelectedOption(): TSelectOption<unknown> | undefined {\n return this.formattedOptions().find(option => option.value === this.value());\n }\n\n clearSelection(event: MouseEvent): void {\n this.value.set(null);\n event.stopPropagation();\n }\n\n private normalizeString(value: string): string {\n return value\n .normalize('NFD')\n .replace(/[\\u0300-\\u036f]/g, '')\n .toLocaleLowerCase();\n }\n\n private clickOutsideHandler: (e: MouseEvent) => void = (e: MouseEvent): void => {\n if (!this.elRef.nativeElement.contains(e.target) && this.isOpen()) {\n this.toggleSelect();\n }\n };\n\n private updateDropdownPosition(): void {\n const buttonElement = this.elRef.nativeElement.querySelector('button');\n if (buttonElement) {\n const rect = buttonElement.getBoundingClientRect();\n this.dropdownTop = rect.bottom + window.scrollY;\n this.dropdownLeft = rect.left + window.scrollX;\n this.dropdownWidth = rect.width;\n }\n }\n}\n","<div>\n @if (label()) {\n <label class=\"flex items-center gap-2\">\n {{ label() }}\n\n @if (isOptional()) {\n <span class=\"text-xs text-slate-500\">\n {{ 'Optional' }}\n </span>\n }\n </label>\n }\n\n <div\n class=\"relative\"\n [ngClass]=\"{\n 'w-fit min-w-[180px]': isShort(),\n 'w-full': isFullWidth(),\n 'mt-1': label(),\n }\"\n >\n <button\n class=\"grid w-full shadow-sm cursor-default grid-cols-1 rounded-md py-2 px-3 text-left outline-1 -outline-offset-1 outline-border-color focus:outline-2 focus:-outline-offset-2 focus:outline-primary\"\n (click)=\"toggleSelect()\"\n [disabled]=\"isDisabled() || !options().length\"\n [ngClass]=\"{\n 'border-destructive focus:border-destructive focus:ring-destructive': isInvalid(),\n 'border-border-color focus:border-primaryBlue focus:ring-primaryBlue': !isInvalid(),\n 'cursor-not-allowed bg-slate-50': isDisabled() || !options().length,\n 'cursor-pointer bg-white': !isDisabled() && !!options().length,\n }\"\n type=\"button\"\n aria-expanded=\"true\"\n aria-haspopup=\"listbox\"\n aria-labelledby=\"multiselect-label\"\n >\n <span\n class=\"col-start-1 row-start-1 flex items-center gap-2 truncate pr-6\"\n [ngClass]=\"{\n 'text-slate-400': !this.value(),\n }\"\n >\n {{ this.displayedValue() }}\n </span>\n\n <span class=\"col-start-1 row-start-1 flex items-center gap-2 self-center justify-self-end text-slate-500\">\n @if (isResetDisplayed() && value() !== null && value() !== undefined) {\n <span\n class=\"size-5 sm:size-4 cursor-pointer\"\n (click)=\"clearSelection($event)\"\n >\n <ng-icon name=\"heroXMark\" />\n </span>\n }\n <span class=\"size-5 sm:size-4\">\n <ng-icon name=\"heroChevronUpDown\" />\n </span>\n </span>\n </button>\n\n @if (isOpen()) {\n <ul\n class=\"fixed z-50 max-h-60 overflow-auto rounded-md bg-white py-1 text-base shadow-lg ring-1 ring-black/5 focus:outline-hidden sm:text-body-small\"\n [style.top.px]=\"dropdownTop\"\n [style.left.px]=\"dropdownLeft\"\n [style.width.px]=\"dropdownWidth\"\n @AnimationTrigger0\n role=\"listbox\"\n >\n @if (isSearchDisplayed()) {\n <li class=\"relative cursor-default py-2 px-3 shadow-sm select-none\">\n <div class=\"pointer-events-none absolute inset-y-0 left-1 flex items-center pl-3\">\n <span class=\"flex items-center\">\n <ng-icon name=\"heroMagnifyingGlass\" />\n </span>\n </div>\n\n <input\n class=\"block rounded-md w-full pl-6 pr-3 py-2 text-body-small shadow-sm outline-1 -outline-offset-1 outline-border-color focus:outline-2 focus:-outline-offset-2 focus:outline-primary placeholder:text-slate-500\"\n #searchInput\n type=\"text\"\n [value]=\"searchTerm()\"\n (input)=\"onSearchTermInput($event)\"\n (click)=\"$event.stopPropagation()\"\n />\n </li>\n }\n\n @for (option of filteredOptions(); track optionByValue(i, option); let i = $index) {\n <li\n class=\"relative cursor-pointer select-none py-2 pl-8 pr-4 text-left hover:bg-primary-50\"\n (click)=\"handleOptionClick(option, $event)\"\n [id]=\"'listbox-option-' + i\"\n role=\"option\"\n [attr.aria-selected]=\"isItemSelected(option)\"\n >\n <span\n class=\"flex items-center gap-2 truncate\"\n [ngClass]=\"{\n 'font-semibold': isItemSelected(option),\n 'font-normal': !isItemSelected(option),\n }\"\n >\n {{ option.name }}\n @if (option.icon) {\n <img\n class=\"size-4\"\n [src]=\"'assets/icons/' + option.icon + '.svg'\"\n alt=\"\"\n />\n }\n </span>\n\n @if (isItemSelected(option)) {\n <span class=\"absolute inset-y-0 right-0 flex items-center pr-4 text-primary\">\n <ng-icon name=\"heroCheck\" />\n </span>\n }\n </li>\n }\n </ul>\n }\n </div>\n</div>\n","import { Component, input } from '@angular/core';\n\n@Component({\n selector: 'app-loader',\n templateUrl: './loader.component.html',\n styleUrls: [\n './loader.component.scss',\n ],\n})\nexport class LoaderComponent {\n size = input<string>('xl');\n isNotAbsolute = input<boolean>(false);\n}\n","<div [class]=\"'loader ' + size\"></div>\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TooltipService {\n private activeTooltip: HTMLElement | null = null;\n\n showTooltip(event: MouseEvent, content: string): void {\n this.hideTooltip();\n\n const tooltip = document.createElement('div');\n tooltip.className =\n 'bg-gray-800 text-white p-2 rounded text-xs max-w-md whitespace-normal z-[9999] fixed pointer-events-none';\n tooltip.style.visibility = 'visible';\n tooltip.textContent = content;\n\n tooltip.style.left = event.clientX + 10 + 'px';\n tooltip.style.top = event.clientY - 30 + 'px';\n\n document.body.appendChild(tooltip);\n this.activeTooltip = tooltip;\n }\n\n hideTooltip(): void {\n if (this.activeTooltip) {\n document.body.removeChild(this.activeTooltip);\n this.activeTooltip = null;\n }\n }\n\n updateTooltipPosition(event: MouseEvent): void {\n if (this.activeTooltip) {\n this.activeTooltip.style.left = event.clientX + 10 + 'px';\n this.activeTooltip.style.top = event.clientY - 30 + 'px';\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component, computed,\n inject,\n input,\n InputSignal,\n output,\n OutputEmitterRef, Signal,\n} from '@angular/core';\nimport { animate, style, transition, trigger } from '@angular/animations';\nimport { NgIcon } from '@ng-icons/core';\nimport { TooltipService } from '../services/tooltip.service';\nimport { ESortDirection } from '../../enums';\n\n@Component({\n selector: 'skcr-table-header-cell',\n templateUrl: './table-header-cell.component.html',\n imports: [\n NgIcon,\n ],\n animations: [\n trigger('fadeIn', [\n transition(':enter', [\n style({ opacity: 0 }),\n animate('300ms', style({ opacity: 1 })),\n ]),\n ]),\n ],\n})\nexport class TableHeaderCellComponent {\n private tooltipService: TooltipService = inject(TooltipService);\n\n name: InputSignal<string> = input.required();\n sortDirection: InputSignal<ESortDirection> = input<ESortDirection>(ESortDirection.None);\n isDisabled: InputSignal<boolean> = input<boolean>(false);\n isOrderByDisplayed: InputSignal<boolean> = input<boolean>(false);\n isInFixedCol: InputSignal<boolean> = input<boolean>(false);\n disabledText: InputSignal<string> = input<string>(\n 'Sorting is possible on this value only for query with less than 10000 results.',\n );\n tooltipText: InputSignal<string | undefined> = input<string | undefined>();\n clickEvent: OutputEmitterRef<void> = output<void>();\n\n hasTooltipToDisplay: Signal<boolean> = computed(() => {\n return this.isDisabled() || !!this.tooltipText();\n })\n\n ESortDirection: typeof ESortDirection = ESortDirection;\n\n emitClickEvent(): void {\n if (!this.isDisabled()) {\n this.clickEvent.emit();\n }\n }\n\n showTooltip(event: MouseEvent): void {\n const text = this.isDisabled() ? this.disabledText() : this.tooltipText()!;\n\n this.tooltipService.showTooltip(event, text);\n }\n\n hideTooltip(): void {\n this.tooltipService.hideTooltip();\n }\n\n updateTooltipPosition(event: MouseEvent): void {\n this.tooltipService.updateTooltipPosition(event);\n }\n}\n","<div>\n <button\n class=\"flex items-center gap-1.5 text-start text-caption font-medium text-slate-500\"\n type=\"button\"\n [class.cursor-not-allowed]=\"isDisabled()\"\n [class.opacity-50]=\"isDisabled()\"\n (click)=\"!isDisabled() && emitClickEvent()\"\n (mouseenter)=\"hasTooltipToDisplay() ? showTooltip($event) : null\"\n (mouseleave)=\"hasTooltipToDisplay() ? hideTooltip() : null\"\n (mousemove)=\"hasTooltipToDisplay() ? updateTooltipPosition($event) : null\"\n >\n <span\n class=\"inline-block whitespace-normal break-words leading-tight\"\n [class.w-[150px]]=\"isInFixedCol() && isOrderByDisplayed()\"\n [class.w-[144px]]=\"isInFixedCol() && !isOrderByDisplayed()\"\n >\n <ng-content></ng-content>\n </span>\n\n @if (isOrderByDisplayed()) {\n <div class=\"shrink-0 flex items-center\">\n <div class=\"shrink-0 flex items-center relative\">\n @switch (sortDirection()) {\n @case (ESortDirection.Ascending) {\n <ng-icon\n class=\"absolute transition-opacity duration-300\"\n name=\"heroChevronUp\"\n @fadeIn\n aria-hidden=\"true\"\n ></ng-icon>\n }\n @case (ESortDirection.Descending) {\n <ng-icon\n class=\"absolute transition-opacity duration-300\"\n name=\"heroChevronDown\"\n @fadeIn\n aria-hidden=\"true\"\n ></ng-icon>\n }\n @case (ESortDirection.None) {\n <ng-icon\n class=\"absolute transition-opacity duration-300\"\n name=\"heroChevronUpDown\"\n @fadeIn\n aria-hidden=\"true\"\n ></ng-icon>\n }\n }\n </div>\n </div>\n }\n </button>\n</div>\n","import { NgClass, NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n contentChildren,\n input,\n InputSignal,\n output,\n OutputEmitterRef,\n Signal,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport { CdkVirtualScrollViewport, ScrollingModule } from '@angular/cdk/scrolling';\nimport { LoaderComponent } from '../loader/loader.component';\nimport { TableHeaderCellComponent } from '../table-header-cell/table-header-cell.component';\nimport { ESortDirection } from '../../enums';\n\n@Component({\n selector: 'skcr-table',\n templateUrl: './table.component.html',\n imports: [\n NgClass,\n NgTemplateOutlet,\n ScrollingModule,\n LoaderComponent,\n ],\n})\nexport class TableComponent<T> {\n @ViewChild(CdkVirtualScrollViewport, { static: false })\n viewPort!: CdkVirtualScrollViewport;\n\n itemsList: InputSignal<T[]> = input.required();\n isContentLoading: InputSignal<boolean> = input(false);\n columns: InputSignal<Array<string | { property: string; displayName: string }>> = input.required();\n columnCategories: InputSignal<Array<{ label: string; colspan: number }> | undefined> = input();\n noRowsMessage: InputSignal<string> = input('');\n title: InputSignal<string> = input('');\n fixedColumnsCount: InputSignal<number> = input(0);\n selectedItemIds: InputSignal<Set<number> | undefined> = input();\n tableEndClose: OutputEmitterRef<void> = output<void>();\n\n headerCellTemplateRef: Signal<TemplateRef<unknown> | undefined> = contentChild<TemplateRef<unknown>>('headerCell');\n rowCellTemplateRef: Signal<TemplateRef<unknown> | undefined> = contentChild<TemplateRef<unknown>>('rowCell');\n\n sortButtons: Signal<readonly TableHeaderCellComponent[]> =\n contentChildren<TableHeaderCellComponent>(TableHeaderCellComponent);\n\n get inverseOfTranslation(): string {\n if (!this.viewPort || !this.viewPort['_renderedContentOffset']) {\n return '-0px';\n }\n let offset = this.viewPort['_renderedContentOffset'];\n return `-${offset}px`;\n }\n\n sortingItem: Signal<{ column: string; direction: ESortDirection } | null> = computed(() => {\n const sortButtons = this.sortButtons();\n\n const sortingButton = sortButtons.find(button => button.sortDirection() !== ESortDirection.None);\n\n return sortingButton\n ? {\n column: sortingButton.name(),\n direction: sortingButton.sortDirection(),\n }\n : null;\n });\n\n onScroll(index: number): void {\n const bufferZone = 250;\n\n if (index + bufferZone > this.itemsList().length) {\n this.tableEndClose.emit();\n }\n }\n\n scrollToTop(): void {\n this.viewPort.scrollToIndex(0);\n }\n\n refreshViewport(): void {\n if (this.viewPort) {\n this.viewPort.checkViewportSize();\n\n setTimeout(() => {\n this.viewPort.checkViewportSize();\n }, 100);\n }\n }\n\n getColumnLeftPosition(columnIndex: number): string {\n if (columnIndex === 0) {\n return '0px';\n }\n\n const columnWidth = 180;\n\n return `${columnIndex * columnWidth}px`;\n }\n\n isRowSelected(item: any): boolean {\n return this.selectedItemIds()?.has(item['id'] as number) ?? false;\n }\n\n isCategoryStart(columnIndex: number): boolean {\n if (!this.columnCategories() || columnIndex === 0) {\n return false;\n }\n\n const categories = this.columnCategories()!;\n let currentColumnCount = 0;\n\n for (const category of categories) {\n if (currentColumnCount === columnIndex) {\n return true;\n }\n currentColumnCount += category.colspan;\n }\n\n return false;\n }\n}\n","<div class=\"border-collapse overflow-hidden w-full mb-6 flex flex-col h-full\">\n <cdk-virtual-scroll-viewport\n class=\"flex-grow block overflow-y-auto overflow-x-auto\"\n (scrolledIndexChange)=\"onScroll($event)\"\n itemSize=\"52\"\n minBufferPx=\"2080\"\n maxBufferPx=\"4160\"\n >\n <table class=\"w-full relative table-auto whitespace-nowrap\">\n <thead\n class=\"bg-white sticky top-0 z-10 before:content-[''] before:absolute before:bottom-0 before:left-0 before:right-0 before:h-[1px] before:bg-slate-200\"\n [style.top]=\"inverseOfTranslation\"\n >\n @if (columnCategories()) {\n <tr>\n @for (category of columnCategories(); track category; let i = $index) {\n <th\n class=\"py-2 p-3 text-left text-caption text-slate-500\"\n style=\"box-shadow: inset 0 -1px 0 0 rgb(226 232 240)\"\n scope=\"colgroup\"\n [attr.colspan]=\"category.colspan\"\n [style.left]=\"i < fixedColumnsCount() ? getColumnLeftPosition(i) : null\"\n [ngClass]=\"{\n 'pl-5': i === 0,\n 'sticky z-[1] bg-white': i === 0,\n 'border-l border-slate-200': i > 0,\n }\"\n >\n {{ category.label }}\n </th>\n }\n </tr>\n }\n <tr>\n @for (column of columns(); track column; let isLast = $last; let i = $index) {\n <th\n class=\"p-3 text-left text-caption font-medium text-slate-500\"\n style=\"box-shadow: inset 0 -1px 0 0 rgb(226 232 240)\"\n scope=\"col\"\n [attr.aria-sort]=\"sortingItem()?.column === column ? sortingItem()!.direction : null\"\n [ngClass]=\"{\n 'pr-5': isLast,\n 'sticky z-[1] bg-white': i < fixedColumnsCount(),\n 'border-l border-slate-200': isCategoryStart(i),\n }\"\n [style.left]=\"i < fixedColumnsCount() ? getColumnLeftPosition(i) : null\"\n >\n <ng-container *ngTemplateOutlet=\"headerCellTemplateRef()!; context: { column }\"></ng-container>\n </th>\n }\n </tr>\n </thead>\n\n <tbody>\n @if (isContentLoading()) {\n <td\n class=\"pt-10 sm:px-3\"\n [colSpan]=\"columns().length\"\n >\n <div class=\"flex h-[400px] items-center justify-center\">\n <app-loader [isNotAbsolute]=\"true\"></app-loader>\n </div>\n </td>\n } @else if (!!itemsList().length) {\n <tr\n class=\"height-[50px] border-b border-slate-200\"\n *cdkVirtualFor=\"let item of !isContentLoading() ? itemsList() : []; let index = index\"\n >\n @for (column of columns(); track column; let isFirst = $first; let islast = $last; let i = $index) {\n <td\n class=\"py-2 px-3 text-body-small whitespace-nowrap\"\n [ngClass]=\"{\n 'pr-5': islast,\n 'sticky z-[1]': i < fixedColumnsCount(),\n 'border-l border-slate-200': isCategoryStart(i),\n 'bg-white': !isRowSelected(item),\n 'bg-slate-100': isRowSelected(item),\n }\"\n [class.text-end]=\"column === 'actions'\"\n [style.left]=\"i < fixedColumnsCount() ? getColumnLeftPosition(i) : null\"\n >\n <span\n [style.width]=\"i < fixedColumnsCount() ? '150px' : 'auto'\"\n class=\"inline-block whitespace-normal break-words leading-tight\"\n >\n <ng-container *ngTemplateOutlet=\"rowCellTemplateRef()!; context: { column, item }\"></ng-container>\n </span>\n </td>\n }\n </tr>\n } @else {\n <td\n class=\"pt-10 sm:px-3\"\n [ngClass]=\"{\n hidden: isContentLoading(),\n }\"\n [colSpan]=\"columns().length\"\n >\n <span class=\"flex items-center justify-center\"> No results </span>\n </td>\n }\n </tbody>\n </table>\n </cdk-virtual-scroll-viewport>\n</div>\n","import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostBinding,\n input,\n InputSignal,\n InputSignalWithTransform,\n output,\n OutputEmitterRef,\n signal,\n ViewChild,\n WritableSignal,\n} from '@angular/core';\nimport { NgClass } from '@angular/common';\nimport { animate, animateChild, AnimationEvent, group, query, style, transition, trigger } from '@angular/animations';\n\n@Component({\n selector: 'skcr-dialog',\n templateUrl: './dialog.component.html',\n animations: [\n trigger('DialogTrigger', [\n transition(':enter', [\n style({ opacity: 0, transform: 'translateY(1rem)' }),\n animate('300ms ease-out', style({ opacity: 1, transform: 'translateY(0)' })),\n ]),\n transition(':leave', [\n style({ opacity: 1, transform: 'translateY(0)' }),\n animate('200ms ease-in', style({ opacity: 0, transform: 'translateY(1rem)' })),\n ]),\n ]),\n trigger('BackdropTrigger', [\n transition(':enter', [\n style({ opacity: 0 }),\n animate('300ms ease-out', style({ opacity: 1 })),\n ]),\n transition(':leave', [\n style({ opacity: 1 }),\n animate('200ms ease-in', style({ opacity: 0 })),\n ]),\n ]),\n trigger('ModalTrigger', [\n transition(':enter', [\n group([\n query('@DialogTrigger', animateChild()),\n query('@BackdropTrigger', animateChild()),\n ]),\n ]),\n transition(':leave', [\n group([\n query('@DialogTrigger', animateChild()),\n query('@BackdropTrigger', animateChild()),\n ]),\n ]),\n ]),\n ],\n imports: [\n NgClass,\n ],\n})\nexport class DialogComponent {\n @HostBinding('@ModalTrigger') hasAnimation = true;\n\n isLarge: InputSignal<boolean> = input(false);\n isOpen: InputSignalWithTransform<boolean, unknown> = input(true, { transform: booleanAttribute });\n isCloseAnimDone: OutputEmitterRef<void> = output<void>();\n\n private escapeKeyListener: ((event: KeyboardEvent) => void) | null = null;\n\n @ViewChild('dialog', { static: false })\n set dialogElementComponent(dialogElement: ElementRef<HTMLDialogElement> | null) {\n if (dialogElement) {\n this.dialogElement.set(dialogElement);\n dialogElement.nativeElement.showModal();\n\n this.escapeKeyListener = (event: KeyboardEvent) => {\n console.log(event.key);\n if (event.key === 'Escape') {\n event.preventDefault();\n }\n };\n\n dialogElement.nativeElement.addEventListener('keydown', this.escapeKeyListener);\n }\n }\n dialogElement: WritableSignal<ElementRef<HTMLDialogElement> | null> = signal(null);\n\n onDialogAnimDone(e: AnimationEvent): void {\n if (e.toState === 'void') {\n const dialogEl = this.dialogElement()?.nativeElement;\n if (dialogEl && this.escapeKeyListener) {\n dialogEl.removeEventListener('keydown', this.escapeKeyListener);\n this.escapeKeyListener = null;\n }\n\n dialogEl?.close();\n this.dialogElement.set(null);\n this.isCloseAnimDone.emit();\n }\n }\n}\n","@if (isOpen()) {\n <div\n class=\"fixed inset-0 z-50 bg-slate-500/75 transition-opacity\"\n [@BackdropTrigger]\n ></div>\n\n <dialog\n class=\"z-[60] fixed inset-0 m-auto rounded-lg shadow-xl backdrop:invisible max-h-[90vh] flex flex-col overflow-hidden scrollbar-hide\"\n #dialog\n (cancel)=\"$event.preventDefault()\"\n [@DialogTrigger]\n (@DialogTrigger.done)=\"onDialogAnimDone($event)\"\n [ngClass]=\"{\n 'max-w-lg': !isLarge(),\n 'max-w-4xl': isLarge(),\n }\"\n >\n <ng-content></ng-content>\n </dialog>\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n effect,\n input,\n InputSignal,\n output,\n OutputEmitterRef,\n signal,\n WritableSignal,\n} from '@angular/core';\nimport { DialogComponent } from '../dialog/dialog.component';\nimport { NgClass } from '@angular/common';\nimport { NgIcon } from '@ng-icons/core';\nimport { SubmitButtonComponent } from '../submit-button/submit-button.component';\nimport { EButtonColorVariant, EModalCloseCondition } from '../../enums';\n\n@Component({\n selector: 'skcr-modal',\n templateUrl: './modal.component.html',\n imports: [\n DialogComponent,\n SubmitButtonComponent,\n NgClass,\n NgIcon,\n ],\n})\nexport class ModalComponent {\n submitLabel: InputSignal<string> = input('');\n isSubmitting: InputSignal<boolean> = input(false);\n isSuccess: InputSignal<boolean> = input(false);\n isLarge: InputSignal<boolean> = input(false);\n form: InputSignal<string | null> = input<string | null>(null);\n submitColorVariant: InputSignal<EButtonColorVariant> = input<EButtonColorVariant>(EButtonColorVariant.Primary);\n closingCondition: InputSignal<EModalCloseCondition> = input<EModalCloseCondition>(EModalCloseCondition.Close);\n isCancelButtonVisible: InputSignal<boolean> = input(false);\n cancelLabel: InputSignal<string> = input('');\n isCrossButtonVisible: InputSignal<boolean> = input(false);\n isFooterInvisible: InputSignal<boolean> = input(false);\n\n closeEvent: OutputEmitterRef<void> = output();\n submitEvent: OutputEmitterRef<void> = output();\n\n isOpen: WritableSignal<boolean> = signal(true);\n\n constructor() {\n effect(() => {\n const closingCondition = this.closingCondition();\n const isSuccess = this.isSuccess();\n\n if (closingCondition === EModalCloseCondition.SubmitSuccess && isSuccess) {\n setTimeout(() => {\n this.handleCloseClick();\n }, 1000);\n }\n });\n }\n\n handleCloseClick(): void {\n this.isOpen.set(false);\n }\n\n emitCloseEvent(): void {\n this.closeEvent.emit();\n }\n\n emitSubmitEvent(): void {\n this.submitEvent.emit();\n }\n}\n","<skcr-dialog\n [isOpen]=\"isOpen()\"\n (isCloseAnimDone)=\"emitCloseEvent()\"\n [isLarge]=\"isLarge()\"\n>\n <div\n class=\"relative flex flex-col h-full overflow-hidden py-4 sm:py-6\"\n [ngClass]=\"{\n 'px-9': isCrossButtonVisible(),\n 'px-4 sm:px-6': !isCrossButtonVisible(),\n 'max-w-4xl w-4xl': isLarge(),\n 'max-w-lg w-lg': !isLarge(),\n }\"\n >\n @if (isCrossButtonVisible()) {\n <div class=\"absolute right-0 top-0 pr-4 pt-4\">\n <button\n class=\"rounded-md bg-white text-slate-950\"\n type=\"button\"\n [disabled]=\"isSubmitting() || isSuccess() || !isOpen()\"\n (click)=\"handleCloseClick()\"\n >\n <span class=\"sr-only\"> Close </span>\n\n <ng-icon\n name=\"heroXMark\"\n size=\"20px\"\n />\n </button>\n </div>\n }\n\n <div class=\"flex-1 px-1 overflow-y-auto scrollbar-hide\">\n <ng-content></ng-content>\n </div>\n\n @if (!isFooterInvisible()) {\n <div\n class=\"mt-6 flex flex-col justify-center gap-3 pb-1\"\n [ngClass]=\"{\n 'grid grid-flow-row-dense grid-cols-2': isCancelButtonVisible(),\n 'w-full': !isCancelButtonVisible(),\n }\"\n >\n <skcr-submit-button\n [label]=\"submitLabel()\"\n [isLoading]=\"isSubmitting()\"\n [isSuccess]=\"isSuccess()\"\n [colorVariant]=\"submitColorVariant()\"\n (submitClicked)=\"emitSubmitEvent()\"\n [isFullWidth]=\"true\"\n [ngClass]=\"{\n 'col-start-2': isCancelButtonVisible(),\n }\"\n ></skcr-submit-button>\n\n @if (isCancelButtonVisible()) {\n <button\n class=\"btn btn-neutral max-w-full\"\n type=\"button\"\n [disabled]=\"isSubmitting() || isSuccess() || !isOpen()\"\n (click)=\"handleCloseClick()\"\n >\n {{ cancelLabel() || 'Cancel' }}\n </button>\n }\n </div>\n }\n </div>\n</skcr-dialog>\n","import {\n Component,\n computed,\n HostBinding,\n input,\n InputSignal,\n output,\n OutputEmitterRef,\n Signal,\n ViewChild,\n} from '@angular/core';\nimport { ModalComponent } from '../modal/modal.component';\nimport { NgIcon } from '@ng-icons/core';\nimport { EButtonColorVariant, EConfirmLevelVariant, EModalCloseCondition } from '../../enums';\n\n@Component({\n selector: 'skcr-confirmation-modal',\n templateUrl: './confirmation-modal.component.html',\n imports: [\n ModalComponent,\n NgIcon,\n ],\n})\nexport class ConfirmationModalComponent {\n @HostBinding('class') class = 'absolute';\n\n submitLabel: InputSignal<string> = input.required();\n isSubmitting: InputSignal<boolean> = input(false);\n isSuccess: InputSignal<boolean> = input(false);\n form: InputSignal<string | null> = input<string | null>(null);\n isCloseButtonVisible: InputSignal<boolean> = input(false);\n cancelLabel: InputSignal<string> = input('');\n levelVariant: InputSignal<EConfirmLevelVariant> = input<EConfirmLevelVariant>(EConfirmLevelVariant.Info);\n closingCondition: InputSignal<EModalCloseCondition> = input<EModalCloseCondition>(EModalCloseCondition.SubmitSuccess);\n\n closeEvent: OutputEmitterRef<void> = output();\n submitEvent: OutputEmitterRef<void> = output();\n\n iconKey: Signal<string> = computed(() => {\n return this.levelVariant() === EConfirmLevelVariant.Success ? 'heroCheckCircle' : 'heroExclamationTriangle';\n });\n\n submitColorVariant: Signal<EButtonColorVariant> = computed(() => {\n return this.levelVariant() === EConfirmLevelVariant.Danger\n ? EButtonColorVariant.Danger\n : EButtonColorVariant.Primary;\n });\n\n iconColorVariant: Signal<string> = computed(() => {\n return this.levelVariant() === EConfirmLevelVariant.Danger ? 'text-red-500' : 'text-primary-l';\n });\n\n emitCloseEvent(): void {\n this.closeEvent.emit();\n }\n\n emitSubmitEvent(): void {\n this.submitEvent.emit();\n }\n}\n","<skcr-modal\n [submitColorVariant]=\"submitColorVariant()\"\n [submitLabel]=\"submitLabel()\"\n [isSubmitting]=\"isSubmitting()\"\n [isSuccess]=\"isSuccess()\"\n [closingCondition]=\"closingCondition()\"\n [isCancelButtonVisible]=\"isCloseButtonVisible()\"\n (submitEvent)=\"emitSubmitEvent()\"\n (closeEvent)=\"emitCloseEvent()\"\n>\n <div class=\"flex max-w-xl flex-col gap-3\">\n @if (iconKey()) {\n <div [class]=\"'mx-auto flex h-12 w-12 shrink-0 items-center justify-center rounded-full ' + iconColorVariant()\">\n <ng-icon\n [name]=\"iconKey()!\"\n size=\"48px\"\n />\n </div>\n }\n\n <div class=\"flex flex-col gap-8\">\n <ng-content select=\"[title]\"></ng-content>\n\n <ng-content select=\"[content]\"></ng-content>\n </div>\n </div>\n</skcr-modal>\n","import { Component, ElementRef, input, InputSignal, output, OutputEmitterRef, signal, ViewChild } from '@angular/core';\nimport { NgIcon } from '@ng-icons/core';\nimport { animate, style, transition, trigger } from '@angular/animations';\n\n@Component({\n selector: 'skcr-dropdown-menu',\n templateUrl: './dropdown-menu.component.html',\n imports: [\n NgIcon,\n ],\n animations: [\n trigger('dropdownAnimation', [\n transition(':enter', [\n style({ opacity: 0, transform: 'translateY(-10px)' }),\n animate('200ms ease-out', style({ opacity: 1, transform: 'translateY(0)' })),\n ]),\n transition(':leave', [\n style({ opacity: 1 }),\n animate('200ms ease-in', style({ opacity: 0, transform: 'translateY(-10px)' })),\n ]),\n ]),\n ],\n})\nexport class DropdownMenuComponent {\n @ViewChild('dropdownMenu') dropdownMenu!: ElementRef;\n @ViewChild('toggleButton') toggleButton!: ElementRef;\n\n label: InputSignal<string | undefined> = input<string>();\n labelIcon: InputSignal<string | undefined> = input<string>();\n isOpeningOnLeft: InputSignal<boolean> = input<boolean>(false);\n\n menuClosed: OutputEmitterRef<void> = output<void>();\n\n isMenuOpen = signal(false);\n\n toggleMenu(): void {\n this.isMenuOpen.update(isOpen => !isOpen);\n\n if (this.isMenuOpen()) {\n document.addEventListener('click', this.clickOutsideHandler);\n } else {\n document.removeEventListener('click', this.clickOutsideHandler);\n }\n }\n\n closeMenu(): void {\n this.isMenuOpen.set(false);\n document.removeEventListener('click', this.clickOutsideHandler);\n this.menuClosed.emit();\n }\n\n private clickOutsideHandler = (e: MouseEvent): void => {\n const target = e.target as Node;\n const isClickInDropdown = this.dropdownMenu?.nativeElement.contains(target);\n const isClickInToggleButton = this.toggleButton?.nativeElement.contains(target);\n\n if (!isClickInDropdown && !isClickInToggleButton) {\n this.closeMenu();\n }\n };\n}\n","<div class=\"relative h-fit inline-block text-left\">\n <div>\n <button\n class=\"cursor-pointer inline-flex items-center rounded-md gap-1 h-full items-center border-b-2 border-transparent px-3 py-2 hover:bg-slate-100\"\n #toggleButton\n type=\"button\"\n (click)=\"toggleMenu()\"\n >\n {{ label() }}\n\n <ng-icon\n [name]=\"labelIcon() ?? 'heroChevronDown'\"\n [size]=\"labelIcon() ? '1.25rem' : '1rem'\"\n ></ng-icon>\n </button>\n </div>\n\n @if (isMenuOpen()) {\n <div\n class=\"absolute z-10 mt-2 min-w-33 origin-top-right rounded-md bg-white shadow-lg ring-1 ring-black/5 focus:outline-hidden\"\n #dropdownMenu\n role=\"menu\"\n tabindex=\"-1\"\n @dropdownAnimation\n [class.left-0]=\"!isOpeningOnLeft()\"\n [class.right-0]=\"isOpeningOnLeft()\"\n aria-orientation=\"vertical\"\n aria-labelledby=\"menu-button\"\n >\n <div\n class=\"flex flex-col py-1\"\n role=\"none\"\n (click)=\"closeMenu()\"\n >\n <ng-content />\n </div>\n </div>\n }\n</div>\n","import { Component, inject, input, InputSignal, model } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE, MatNativeDateModule } from '@angular/material/core';\nimport { NgClass } from '@angular/common';\nimport { FormValueControl } from '@angular/forms/signals';\n\nexport const DD_MM_YYYY_FORMAT = {\n parse: {\n dateInput: 'DD/MM/YYYY',\n },\n display: {\n dateInput: 'DD/MM/YYYY',\n monthYearLabel: 'MMM YYYY',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMMM YYYY',\n },\n};\n\n@Component({\n selector: 'skcr-date-picker',\n templateUrl: './date-picker.component.html',\n providers: [\n { provide: MAT_DATE_FORMATS, useValue: DD_MM_YYYY_FORMAT },\n { provide: MAT_DATE_LOCALE, useValue: 'fr-FR' },\n ],\n imports: [\n NgClass,\n FormsModule,\n MatDatepickerModule,\n MatInputModule,\n MatFormFieldModule,\n MatNativeDateModule,\n FormsModule,\n MatDatepickerModule,\n MatInputModule,\n MatFormFieldModule,\n MatNativeDateModule,\n ],\n})\nexport class DatePickerComponent implements FormValueControl<Date | null | undefined> {\n name: InputSignal<string> = input<string>('');\n label: InputSignal<string> = input<string>('');\n placeholder: InputSignal<string> = input<string>('dd/mm/yyyy');\n isInvalid: InputSignal<boolean> = input<boolean>(false);\n isDisabled: InputSignal<boolean> = input<boolean>(false);\n\n readonly value = model<Date | null>();\n\n private dateAdapter = inject(DateAdapter<Date>)!;\n\n constructor() {\n this.dateAdapter.setLocale('fr-FR');\n }\n\n formatDate(date: Date | null | undefined): string {\n if (!date) return '';\n\n const day = date.getDate().toString().padStart(2, '0');\n const month = (date.getMonth() + 1).toString().padStart(2, '0');\n const year = date.getFullYear();\n\n return `${day}/${month}/${year}`;\n }\n\n parseDate(dateStr: string): Date | null {\n if (!dateStr) return null;\n\n dateStr = dateStr.replace(/[^\\d/]/g, '');\n\n if (dateStr.length === 2 && !dateStr.includes('/')) {\n dateStr += '/';\n } else if (dateStr.length === 5 && dateStr.indexOf('/', 3) === -1) {\n dateStr += '/';\n }\n\n const parts = dateStr.split('/');\n if (parts.length !== 3) return null;\n\n const day = parseInt(parts[0], 10);\n const month = parseInt(parts[1], 10) - 1;\n const year = parseInt(parts[2], 10);\n\n if (isNaN(day) || isNaN(month) || isNaN(year)) return null;\n\n const date = new Date(year, month, day);\n\n if (date.getFullYear() !== year || date.getMonth() !== month || date.getDate() !== day) {\n return null;\n }\n\n return date;\n }\n\n onDateChange(date: Date | null): void {\n this.value.set(date);\n // this.markAsTouched();\n }\n\n onInputChange(event: Event): void {\n const input = event.target as HTMLInputElement;\n const value = input.value;\n\n let formattedValue = value.replace(/[^\\d/]/g, '');\n\n if (formattedValue.length === 2 && !formattedValue.includes('/')) {\n formattedValue = formattedValue + '/';\n input.value = formattedValue;\n } else if (formattedValue.length === 5 && formattedValue.indexOf('/', 3) === -1) {\n formattedValue = formattedValue + '/';\n input.value = formattedValue;\n }\n\n const date = this.parseDate(formattedValue);\n this.value.set(date);\n }\n}\n","<div>\n <label\n class=\"mb-1 block\"\n [for]=\"name()\"\n >\n {{ label() }}\n </label>\n\n <!-- Custom styled input that looks like other inputs in the project -->\n <div class=\"relative\">\n <input\n class=\"block w-full rounded-md px-3 py-2 text-body-small shadow-sm outline-1 -outline-offset-1 outline-border-color focus:outline-2 focus:-outline-offset-2 placeholder:text-slate-500\"\n [id]=\"name()\"\n [name]=\"name()\"\n type=\"text\"\n [placeholder]=\"placeholder()\"\n [matDatepicker]=\"picker\"\n [value]=\"value()\"\n [attr.value]=\"value() ? formatDate(value()) : ''\"\n (dateChange)=\"onDateChange($event.value)\"\n (input)=\"onInputChange($event)\"\n [disabled]=\"isDisabled()\"\n [ngClass]=\"{\n 'border-destructive placeholder-destructive focus:border-destructive focus:ring-destructive': isInvalid(),\n 'border-lightGrey focus:border-primary focus:ring-primaryBlue': !isInvalid(),\n 'cursor-not-allowed bg-slate-50': isDisabled(),\n }\"\n />\n <button\n class=\"absolute right-2 top-1/2 -translate-y-1/2\"\n type=\"button\"\n (click)=\"picker.open()\"\n [disabled]=\"isDisabled()\"\n >\n <svg\n class=\"h-5 w-5\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n >\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z\"\n />\n </svg>\n </button>\n </div>\n\n <!-- Hidden Material datepicker -->\n <mat-datepicker\n #picker\n [startAt]=\"value()\"\n [disabled]=\"isDisabled()\"\n ></mat-datepicker>\n</div>\n","import { ChangeDetectionStrategy, Component, forwardRef, input, InputSignal, model } from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';\nimport { FormValueControl } from '@angular/forms/signals';\nimport { TSelectOption } from '../../types';\n\nexport interface RadioOption<T> {\n value: T;\n label: string;\n}\n\n@Component({\n selector: 'skcr-radio-button',\n templateUrl: './radio-button.component.html',\n imports: [\n FormsModule,\n ReactiveFormsModule,\n ],\n})\nexport class RadioButtonComponent implements FormValueControl<unknown> {\n options: InputSignal<TSelectOption<unknown>[]> = input<TSelectOption<unknown>[]>([]);\n label: InputSignal<string> = input('');\n isDisabled: InputSignal<boolean> = input(false);\n\n readonly value = model<unknown>();\n\n onRadioChange(value: unknown): void {\n this.value.set(value);\n }\n}\n","<fieldset class=\"flex items-center gap-4 flex-row\">\n <legend>{{ label() }}</legend>\n\n <div class=\"flex gap-4\">\n @for (option of options(); track option.value) {\n <div class=\"flex items-center\">\n <input\n class=\"relative size-4 appearance-none rounded-full border border-border-color bg-white before:absolute before:inset-1 before:rounded-full before:bg-white not-checked:before:hidden checked:border-primary checked:bg-primary focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary-600 disabled:border-border-color disabled:bg-slate-100 disabled:before:bg-slate-400 forced-colors:appearance-auto forced-colors:before:hidden\"\n [id]=\"option.name\"\n type=\"radio\"\n [name]=\"label()\"\n [checked]=\"value() === option.value\"\n [disabled]=\"isDisabled()\"\n (change)=\"onRadioChange(option.value)\"\n />\n\n <label\n class=\"ml-3 block\"\n [for]=\"option.name\"\n >{{ option.name }}</label\n >\n </div>\n }\n </div>\n</fieldset>\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { TToast } from '../types';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ToastService {\n newToastEvent$: Subject<TToast> = new Subject<TToast>();\n}\n","import { Component, HostBinding, input, InputSignal, OnInit, output, OutputEmitterRef } from '@angular/core';\nimport { animate, style, transition, trigger } from '@angular/animations';\nimport { NgIcon } from '@ng-icons/core';\nimport { TToast } from '../../../types';\n\n@Component({\n selector: 'app-toast',\n templateUrl: './toast.component.html',\n animations: [\n trigger('AnimationTrigger0', [\n transition(':enter', [\n style({ transform: 'translateY(0.5rem)', opacity: 0 }),\n animate('300ms ease-out', style({ transform: 'translateY(0)', opacity: 1 })),\n ]),\n transition(':leave', [\n style({ opacity: 1 }),\n animate('100ms ease-in', style({ opacity: 0 })),\n ]),\n ]),\n ],\n imports: [\n NgIcon,\n ],\n})\nexport class ToastComponent implements OnInit {\n @HostBinding('class') class = 'flex w-full flex-col items-center space-y-4 sm:items-end';\n\n toast: InputSignal<TToast> = input.required();\n\n disposeEvent: OutputEmitterRef<TToast> = output<TToast>();\n\n ngOnInit(): void {\n setTimeout(() => {\n this.closeToast();\n }, 5000);\n }\n\n closeToast(): void {\n this.disposeEvent.emit(this.toast());\n }\n}\n","<div\n class=\"ring-opacity/5 pointer-events-auto w-full max-w-sm overflow-hidden rounded-md bg-white shadow-lg\"\n @AnimationTrigger0\n>\n <div class=\"p-4\">\n <div class=\"flex items-center\">\n <ng-icon\n class=\"shrink-0 text-destructive\"\n name=\"heroXCircle\"\n />\n\n <div class=\"ml-3 w-0 flex-1 pt-0.5\">\n <p class=\"text-destructive\">An error occured</p>\n\n @if (!!toast().message || !!toast().key) {\n <p class=\"mt-1 text-body-small text-slate-500\">\n <span>\n {{ toast().message }}\n </span>\n </p>\n }\n </div>\n </div>\n </div>\n</div>\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, inject, OnInit } from '@angular/core';\nimport { ToastService } from '../../../services';\nimport { Subscription } from 'rxjs';\nimport { ToastComponent } from '../toast/toast.component';\nimport { TToast } from '../../../types';\n\n@Component({\n selector: 'skcr-toaster',\n templateUrl: './toaster.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n ToastComponent,\n ],\n})\nexport class ToasterComponent implements OnInit {\n private cdr: ChangeDetectorRef = inject(ChangeDetectorRef);\n private toastService: ToastService = inject(ToastService);\n\n currentToasts: TToast[] = [];\n newToastSub!: Subscription;\n\n ngOnInit(): void {\n this.subscribeToToasts();\n }\n\n subscribeToToasts(): void {\n this.newToastSub = this.toastService.newToastEvent$.subscribe(toast => {\n const currentToast: TToast = {\n id: Date.now(),\n key: toast.key,\n message: toast.message,\n };\n\n this.currentToasts.push(currentToast);\n this.cdr.detectChanges();\n });\n }\n\n dispose(toastToRemove: TToast): void {\n const toastIndex = this.currentToasts.findIndex(toast => toast.id === toastToRemove.id);\n this.currentToasts.splice(toastIndex, 1);\n this.cdr.detectChanges();\n }\n}\n","<div class=\"fixed end-0 top-0 z-100 m-16 px-3 py-2\">\n <div\n class=\"pointer-events-none fixed inset-0 flex items-end px-4 py-6 sm:items-start sm:p-6\"\n aria-live=\"assertive\"\n >\n <div class=\"flex w-full flex-col items-center space-y-4 sm:items-end\">\n @for (toast of currentToasts; track toast; let i = $index) {\n <app-toast\n [toast]=\"toast\"\n (disposeEvent)=\"dispose($event)\"\n ></app-toast>\n }\n </div>\n </div>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["EButtonColorVariant","i1"],"mappings":"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"}
|
package/package.json
CHANGED
package/types/skcr-autechre.d.ts
CHANGED
|
@@ -212,7 +212,7 @@ declare class TableHeaderCellComponent {
|
|
|
212
212
|
static ɵcmp: i0.ɵɵComponentDeclaration<TableHeaderCellComponent, "skcr-table-header-cell", never, { "name": { "alias": "name"; "required": true; "isSignal": true; }; "sortDirection": { "alias": "sortDirection"; "required": false; "isSignal": true; }; "isDisabled": { "alias": "isDisabled"; "required": false; "isSignal": true; }; "isOrderByDisplayed": { "alias": "isOrderByDisplayed"; "required": false; "isSignal": true; }; "isInFixedCol": { "alias": "isInFixedCol"; "required": false; "isSignal": true; }; "disabledText": { "alias": "disabledText"; "required": false; "isSignal": true; }; "tooltipText": { "alias": "tooltipText"; "required": false; "isSignal": true; }; }, { "clickEvent": "clickEvent"; }, never, ["*"], true, never>;
|
|
213
213
|
}
|
|
214
214
|
|
|
215
|
-
declare class TableComponent<T
|
|
215
|
+
declare class TableComponent<T> {
|
|
216
216
|
viewPort: CdkVirtualScrollViewport;
|
|
217
217
|
itemsList: InputSignal<T[]>;
|
|
218
218
|
isContentLoading: InputSignal<boolean>;
|
|
@@ -241,7 +241,7 @@ declare class TableComponent<T extends Record<string, unknown>> {
|
|
|
241
241
|
scrollToTop(): void;
|
|
242
242
|
refreshViewport(): void;
|
|
243
243
|
getColumnLeftPosition(columnIndex: number): string;
|
|
244
|
-
isRowSelected(item:
|
|
244
|
+
isRowSelected(item: any): boolean;
|
|
245
245
|
isCategoryStart(columnIndex: number): boolean;
|
|
246
246
|
static ɵfac: i0.ɵɵFactoryDeclaration<TableComponent<any>, never>;
|
|
247
247
|
static ɵcmp: i0.ɵɵComponentDeclaration<TableComponent<any>, "skcr-table", never, { "itemsList": { "alias": "itemsList"; "required": true; "isSignal": true; }; "isContentLoading": { "alias": "isContentLoading"; "required": false; "isSignal": true; }; "columns": { "alias": "columns"; "required": true; "isSignal": true; }; "columnCategories": { "alias": "columnCategories"; "required": false; "isSignal": true; }; "noRowsMessage": { "alias": "noRowsMessage"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "fixedColumnsCount": { "alias": "fixedColumnsCount"; "required": false; "isSignal": true; }; "selectedItemIds": { "alias": "selectedItemIds"; "required": false; "isSignal": true; }; }, { "tableEndClose": "tableEndClose"; }, ["headerCellTemplateRef", "rowCellTemplateRef", "sortButtons"], never, true, never>;
|