ngx-gccb 0.7.0 → 0.8.0

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.
Files changed (56) hide show
  1. package/fesm2022/ngx-gccb.mjs +95 -90
  2. package/fesm2022/ngx-gccb.mjs.map +1 -1
  3. package/lib/decorators/decorator.types.d.ts +2 -2
  4. package/package.json +7 -9
  5. package/esm2022/lib/animations/fade-right.animation.mjs +0 -6
  6. package/esm2022/lib/animations/fade-up.animation.mjs +0 -6
  7. package/esm2022/lib/animations/index.mjs +0 -3
  8. package/esm2022/lib/components/date-picker/date-picker.component.mjs +0 -50
  9. package/esm2022/lib/components/date-picker/index.mjs +0 -2
  10. package/esm2022/lib/components/form/form-errors/form-errors.component.mjs +0 -67
  11. package/esm2022/lib/components/form/form-errors/index.mjs +0 -2
  12. package/esm2022/lib/components/form/form-input/form-input.component.mjs +0 -55
  13. package/esm2022/lib/components/form/form-input/index.mjs +0 -2
  14. package/esm2022/lib/components/form/index.mjs +0 -3
  15. package/esm2022/lib/components/index.mjs +0 -7
  16. package/esm2022/lib/components/loading-indicator/index.mjs +0 -2
  17. package/esm2022/lib/components/loading-indicator/loading-indicator.component.mjs +0 -17
  18. package/esm2022/lib/components/modal/base-modal.component.mjs +0 -15
  19. package/esm2022/lib/components/modal/index.mjs +0 -3
  20. package/esm2022/lib/components/modal/modal.component.mjs +0 -43
  21. package/esm2022/lib/components/off-canvas/index.mjs +0 -2
  22. package/esm2022/lib/components/off-canvas/off-canvas.component.mjs +0 -27
  23. package/esm2022/lib/components/toast/index.mjs +0 -2
  24. package/esm2022/lib/components/toast/toast.component.mjs +0 -32
  25. package/esm2022/lib/decorators/class.decorator.mjs +0 -7
  26. package/esm2022/lib/decorators/decorator.types.mjs +0 -2
  27. package/esm2022/lib/decorators/index.mjs +0 -4
  28. package/esm2022/lib/decorators/log.decorator.mjs +0 -21
  29. package/esm2022/lib/directives/autofocus.directive.mjs +0 -31
  30. package/esm2022/lib/directives/button.directive.mjs +0 -66
  31. package/esm2022/lib/directives/col.directive.mjs +0 -29
  32. package/esm2022/lib/directives/dropdown.directive.mjs +0 -120
  33. package/esm2022/lib/directives/form-input.directive.mjs +0 -30
  34. package/esm2022/lib/directives/form-label.directive.mjs +0 -20
  35. package/esm2022/lib/directives/form-select.directive.mjs +0 -30
  36. package/esm2022/lib/directives/icon-button.directive.mjs +0 -37
  37. package/esm2022/lib/directives/list-group-item-avatar.directive.mjs +0 -20
  38. package/esm2022/lib/directives/list-group-item.directive.mjs +0 -45
  39. package/esm2022/lib/directives/list-group.directive.mjs +0 -21
  40. package/esm2022/lib/directives/tooltip.directive.mjs +0 -22
  41. package/esm2022/lib/enums/index.mjs +0 -2
  42. package/esm2022/lib/enums/logtype.enum.mjs +0 -9
  43. package/esm2022/lib/pipe/form-control.pipe.mjs +0 -17
  44. package/esm2022/lib/pipe/index.mjs +0 -2
  45. package/esm2022/lib/services/image.service.mjs +0 -49
  46. package/esm2022/lib/services/loading-indicator.service.mjs +0 -16
  47. package/esm2022/lib/services/local.service.mjs +0 -28
  48. package/esm2022/lib/services/modal.service.mjs +0 -34
  49. package/esm2022/lib/services/toast.service.mjs +0 -42
  50. package/esm2022/lib/services/token.service.mjs +0 -24
  51. package/esm2022/lib/validators/dateAfter.validator.mjs +0 -20
  52. package/esm2022/lib/validators/index.mjs +0 -4
  53. package/esm2022/lib/validators/match.validator.mjs +0 -18
  54. package/esm2022/lib/validators/timeAfter.validator.mjs +0 -31
  55. package/esm2022/ngx-gccb.mjs +0 -5
  56. package/esm2022/public-api.mjs +0 -28
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-gccb.mjs","sources":["../../../projects/ngx-gccb/src/lib/animations/fade-right.animation.ts","../../../projects/ngx-gccb/src/lib/animations/fade-up.animation.ts","../../../projects/ngx-gccb/src/lib/components/date-picker/date-picker.component.ts","../../../projects/ngx-gccb/src/lib/components/date-picker/date-picker.component.html","../../../projects/ngx-gccb/src/lib/components/form/form-errors/form-errors.component.ts","../../../projects/ngx-gccb/src/lib/directives/form-input.directive.ts","../../../projects/ngx-gccb/src/lib/directives/form-label.directive.ts","../../../projects/ngx-gccb/src/lib/directives/form-select.directive.ts","../../../projects/ngx-gccb/src/lib/components/form/form-input/form-input.component.ts","../../../projects/ngx-gccb/src/lib/components/form/form-input/form-input.component.html","../../../projects/ngx-gccb/src/lib/components/loading-indicator/loading-indicator.component.ts","../../../projects/ngx-gccb/src/lib/components/loading-indicator/loading-indicator.component.html","../../../projects/ngx-gccb/src/lib/components/modal/base-modal.component.ts","../../../projects/ngx-gccb/src/lib/directives/icon-button.directive.ts","../../../projects/ngx-gccb/src/lib/components/modal/modal.component.ts","../../../projects/ngx-gccb/src/lib/components/modal/modal.component.html","../../../projects/ngx-gccb/src/lib/components/off-canvas/off-canvas.component.ts","../../../projects/ngx-gccb/src/lib/components/off-canvas/off-canvas.component.html","../../../projects/ngx-gccb/src/lib/components/toast/toast.component.ts","../../../projects/ngx-gccb/src/lib/decorators/class.decorator.ts","../../../projects/ngx-gccb/src/lib/enums/logtype.enum.ts","../../../projects/ngx-gccb/src/lib/decorators/log.decorator.ts","../../../projects/ngx-gccb/src/lib/directives/autofocus.directive.ts","../../../projects/ngx-gccb/src/lib/directives/button.directive.ts","../../../projects/ngx-gccb/src/lib/directives/col.directive.ts","../../../projects/ngx-gccb/src/lib/directives/dropdown.directive.ts","../../../projects/ngx-gccb/src/lib/directives/list-group-item-avatar.directive.ts","../../../projects/ngx-gccb/src/lib/directives/list-group-item.directive.ts","../../../projects/ngx-gccb/src/lib/directives/list-group.directive.ts","../../../projects/ngx-gccb/src/lib/directives/tooltip.directive.ts","../../../projects/ngx-gccb/src/lib/pipe/form-control.pipe.ts","../../../projects/ngx-gccb/src/lib/services/image.service.ts","../../../projects/ngx-gccb/src/lib/services/loading-indicator.service.ts","../../../projects/ngx-gccb/src/lib/services/local.service.ts","../../../projects/ngx-gccb/src/lib/services/modal.service.ts","../../../projects/ngx-gccb/src/lib/services/toast.service.ts","../../../projects/ngx-gccb/src/lib/services/token.service.ts","../../../projects/ngx-gccb/src/lib/validators/dateAfter.validator.ts","../../../projects/ngx-gccb/src/lib/validators/match.validator.ts","../../../projects/ngx-gccb/src/lib/validators/timeAfter.validator.ts","../../../projects/ngx-gccb/src/public-api.ts","../../../projects/ngx-gccb/src/ngx-gccb.ts"],"sourcesContent":["import { animate, AnimationTriggerMetadata, style, transition, trigger } from '@angular/animations';\n\nexport const FadeRightAnimation: AnimationTriggerMetadata = trigger('fadeRightAnimation', [\n\ttransition(':enter', [style({ transform: 'translateX(-100%)', zIndex: 9999 }), animate('200ms ease-in', style({ transform: 'translateX(0%)' }))]),\n\ttransition(':leave', [animate('200ms ease-in', style({ transform: 'translateX(-100%)' }))]),\n]);\n","import { animate, AnimationTriggerMetadata, style, transition, trigger } from '@angular/animations';\n\nexport const FadeAnimation: AnimationTriggerMetadata = trigger('fadeAnimation', [\n\ttransition(':enter', [style({ opacity: 0, transform: 'translateY(10px)' }), animate('500ms', style({ opacity: 1, transform: 'translateY(0)' }))]),\n\ttransition(':leave', [animate('500ms', style({ opacity: 0, transform: 'translateY(10px)' }))]),\n]);\n","/* eslint-disable no-console */\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport { CommonModule } from '@angular/common';\nimport { Component, OnInit } from '@angular/core';\n\n@Component({\n\tselector: 'app-date-picker',\n\ttemplateUrl: './date-picker.component.html',\n\tstandalone: true,\n\timports: [CommonModule],\n})\nexport class DatePickerComponent implements OnInit {\n\tcurrentDate: Date = new Date();\n\n\t// eslint-disable-next-line @angular-eslint/no-empty-lifecycle-method\n\tngOnInit(): void {\n\t\t// const firstDayOfMonth: Date = this.currentDate.firstDayOfMonth();\n\t\t// console.warn(firstDayOfMonth, firstDayOfMonth.getDate(), firstDayOfMonth.getDay());\n\t\t// const weekCount: number = getWeekCount(this.currentDate.getFullYear(), this.currentDate.getMonth(), DayOfWeek.Monday);\n\t\t// console.warn(weekCount);\n\t\t// const weeks: unknown[] = [];\n\t\t// for (let i: number = 0; i <= weekCount; i++) {\n\t\t// for(let){\n\t\t// }\n\t\t// }\n\t}\n}\n\nenum DayOfWeek {\n\t'Sunday' = 0,\n\t'Monday' = 1,\n\t'Tuesday' = 2,\n\t'Wednesday' = 3,\n\t'Thursday' = 4,\n\t'Friday' = 5,\n\t'Saturday' = 6,\n}\n\nfunction getWeekCount(year: number, month: number, startDayOfWeek: DayOfWeek): number {\n\t// month_number is in the range 0..11\n\n\t// Get the first day of week week day (0: Sunday, 1: Monday, ...)\n\tconst firstDayOfWeek: DayOfWeek = startDayOfWeek || DayOfWeek.Sunday;\n\tconst firstOfMonth: Date = new Date(year, month, 1);\n\tconst lastOfMonth: Date = new Date(year, month + 1, 0);\n\tconst numberOfDaysInMonth: number = lastOfMonth.getDate();\n\tconst firstWeekDay: number = (firstOfMonth.getDay() - firstDayOfWeek + 7) % 7;\n\tconst used: number = firstWeekDay + numberOfDaysInMonth;\n\n\treturn Math.ceil(used / 7);\n}\n","coming soon\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { ValidationErrors } from '@angular/forms';\n\n@Component({\n\tselector: 'app-form-errors',\n\ttemplate: `\n\t\t<div class=\"invalid-feedback d-block\">\n\t\t\t@if (errorMessages) {\n\t\t\t\t@for (errorMessage of errorMessages; track $index) {\n\t\t\t\t\t<div>{{ errorMessage }}</div>\n\t\t\t\t}\n\t\t\t}\n\t\t</div>\n\t`,\n\tstandalone: true,\n\timports: [CommonModule],\n})\nexport class FormErrorsComponent implements OnChanges {\n\t@Input() errors: ValidationErrors | null = null;\n\t// @Input() customErrorMessages?: IErrorMessage; // TODO\n\n\terrorMessages: string[] = [];\n\n\tngOnChanges(changes: SimpleChanges): void {\n\t\tif (changes['errors']) {\n\t\t\tconst previousValue: ValidationErrors = changes['errors'].previousValue;\n\t\t\tconst currentValue: ValidationErrors = changes['errors'].currentValue;\n\n\t\t\tif (JSON.stringify(previousValue) !== JSON.stringify(currentValue)) {\n\t\t\t\tthis.errorMessages = [];\n\t\t\t\tfor (const key in currentValue) {\n\t\t\t\t\tif (this.errorMessageDictionary[key]) {\n\t\t\t\t\t\tthis.errorMessages.push(this.errorMessageDictionary[key](currentValue));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\terrorMessageDictionary: IErrorMessage = {\n\t\trequired: () => 'Field is required',\n\t\trequiredTrue: () => 'Field is required',\n\t\temail: () => 'Invalid E-Mail',\n\t\tmin: (errors: ValidationErrors) => `At least ${errors['min']?.requiredLength} characters are required`,\n\t\tminlength: (errors: ValidationErrors) => `At least ${errors['minlength']?.requiredLength} characters are required`,\n\t\tmax: (errors: ValidationErrors) => `Maximum of ${errors['max']?.requiredLength} characters exceeded`,\n\t\tmaxlength: (errors: ValidationErrors) => `Maximum of ${errors['maxlength']?.requiredLength} characters exceeded`,\n\t\tpattern: () => `Input does not match pattern`,\n\t\tdateAfterInvalid: (errors: ValidationErrors) => `Date must be after ${errors?.['startDateValue']}`,\n\t\tmatch: () => `Input does not match!`,\n\t\ttimeAfterError: (errors: ValidationErrors) => `The time must be after ${errors?.['timeAfterError']}`,\n\t};\n}\n\ninterface IErrorMessage {\n\t[key: string]: (error: ValidationErrors) => string;\n}\n","import { Directive, ElementRef, Input, OnInit, inject } from '@angular/core';\n\n@Directive({\n\tselector: 'input,textarea[app-form-input]',\n\tstandalone: true,\n})\nexport class FormInputDirective implements OnInit {\n\tprivate readonly elementRef: ElementRef<HTMLElement> = inject(ElementRef<HTMLElement>);\n\n\t@Input() set formInputInvalid(val: boolean) {\n\t\tif (val === true) {\n\t\t\tthis.elementRef.nativeElement.classList.add('is-invalid');\n\t\t} else {\n\t\t\tthis.elementRef.nativeElement.classList.remove('is-invalid');\n\t\t}\n\t}\n\n\tngOnInit(): void {\n\t\tthis.elementRef.nativeElement.classList.add('form-control');\n\t}\n}\n","import { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n\tselector: 'label[app-form-label]',\n\tstandalone: true,\n})\nexport class FormLabelDirective {\n\t@HostBinding('class')\n\telementClass: string = 'form-label';\n}\n","import { Directive, ElementRef, Input, OnInit, inject } from '@angular/core';\n\n@Directive({\n\tselector: 'select[app-form-select]',\n\tstandalone: true,\n})\nexport class FormSelectDirective implements OnInit {\n\tprivate readonly elementRef: ElementRef<HTMLElement> = inject(ElementRef<HTMLElement>);\n\n\t@Input() set formInputInvalid(val: boolean) {\n\t\tif (val === true) {\n\t\t\tthis.elementRef.nativeElement.classList.add('is-invalid');\n\t\t} else {\n\t\t\tthis.elementRef.nativeElement.classList.remove('is-invalid');\n\t\t}\n\t}\n\n\tngOnInit(): void {\n\t\tthis.elementRef.nativeElement.classList.add('form-select');\n\t}\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { FormInputDirective } from '../../../directives/form-input.directive';\nimport { FormLabelDirective } from '../../../directives/form-label.directive';\nimport { FormSelectDirective } from '../../../directives/form-select.directive';\nimport { FormErrorsComponent } from '../form-errors';\n\nexport interface ISelectOptions {\n\tlabel: string;\n\tvalue: string;\n\tdisabled?: boolean;\n\tselected?: boolean;\n}\n\n@Component({\n\tselector: 'app-form-input',\n\ttemplateUrl: './form-input.component.html',\n\tstandalone: true,\n\timports: [ReactiveFormsModule, FormErrorsComponent, FormLabelDirective, FormInputDirective, FormSelectDirective],\n})\nexport class FormInputComponent {\n\t@Input({ required: true }) control!: FormControl;\n\t@Input() inputType: string = 'text';\n\t@Input({ required: true }) inputLabel!: string;\n\t@Input() inputPlaceholder?: string;\n\t@Input() inputId?: string;\n\t@Input({ required: true }) inputName!: string;\n\t@Input() inputTabIndex?: string;\n\t@Input() isSubmitted: boolean = false;\n\t@Input() selectOptions: ISelectOptions[] = [];\n\t@Input() hintText: string = '';\n\n\t@Output() onEnter: EventEmitter<void> = new EventEmitter();\n\t@Output() onChange: EventEmitter<Event> = new EventEmitter();\n\n\thandleSelect(event: Event): void {\n\t\tthis.onChange.next(event);\n\t}\n}\n","<div class=\"form-floating mb-3\">\n\t@if (\n\t\tinputType === 'text' ||\n\t\tinputType === 'number' ||\n\t\tinputType === 'password' ||\n\t\tinputType === 'email' ||\n\t\tinputType === 'date' ||\n\t\tinputType === 'datetime-local' ||\n\t\tinputType === 'time'\n\t) {\n\t\t<input\n\t\t\t[type]=\"inputType\"\n\t\t\t[attr.id]=\"inputId || inputName\"\n\t\t\t[attr.name]=\"inputName\"\n\t\t\t[formControl]=\"control\"\n\t\t\tapp-form-input\n\t\t\t[formInputInvalid]=\"isSubmitted && !!control.errors\"\n\t\t\t[placeholder]=\"inputPlaceholder\"\n\t\t\t[tabIndex]=\"inputTabIndex\"\n\t\t\t(keydown.enter)=\"onEnter.next()\" />\n\t}\n\t@if (inputType === 'textarea') {\n\t\t<textarea\n\t\t\t[attr.id]=\"inputId || inputName\"\n\t\t\t[attr.name]=\"inputName\"\n\t\t\t[formControl]=\"control\"\n\t\t\tapp-form-input\n\t\t\t[formInputInvalid]=\"isSubmitted && !!control.errors\"\n\t\t\t[placeholder]=\"inputPlaceholder\"\n\t\t\t[tabIndex]=\"inputTabIndex\"\n\t\t\tstyle=\"min-height: 100px\">\n\t\t</textarea>\n\t}\n\t@if (inputType === 'select') {\n\t\t<select\n\t\t\t[attr.id]=\"inputId || inputName\"\n\t\t\t[attr.name]=\"inputName\"\n\t\t\t[formControl]=\"control\"\n\t\t\tapp-form-select\n\t\t\t[formInputInvalid]=\"isSubmitted && !!control.errors\"\n\t\t\t[tabIndex]=\"inputTabIndex\"\n\t\t\t(keydown.enter)=\"onEnter.next()\"\n\t\t\t(change)=\"handleSelect($event)\">\n\t\t\t<option value=\"\" disabled selected>Select your option</option>\n\n\t\t\t@for (option of selectOptions; track option.value) {\n\t\t\t\t<option [value]=\"option.value\" [disabled]=\"option.disabled\">\n\t\t\t\t\t{{ option.label }}\n\t\t\t\t</option>\n\t\t\t}\n\t\t</select>\n\t}\n\t<label app-form-label [attr.for]=\"inputName || inputId\"> {{ inputLabel }} </label>\n\n\t@if (hintText) {\n\t\t<div class=\"form-text\">\n\t\t\t{{ hintText }}\n\t\t</div>\n\t}\n\n\t@if (isSubmitted && control.errors) {\n\t\t<app-form-errors [errors]=\"control.errors\" />\n\t}\n</div>\n","import { Component } from '@angular/core';\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\nimport { faSpinner, IconDefinition } from '@fortawesome/free-solid-svg-icons';\n\n@Component({\n\tselector: 'app-loading-indicator',\n\ttemplateUrl: './loading-indicator.component.html',\n\tstandalone: true,\n\tstyles: `\n\t\t:host {\n\t\t\tposition: fixed;\n\t\t\ttop: 50%;\n\t\t\tleft: 50%;\n\t\t\ttransform: translate(-50%, -50%);\n\t\t\tcolor: #495057;\n\t\t}\n\t`,\n\timports: [FontAwesomeModule],\n})\nexport class LoadingIndicatorComponent {\n\tfaSpinner: IconDefinition = faSpinner;\n}\n","<fa-icon animation=\"spin\" size=\"2x\" [icon]=\"faSpinner\"></fa-icon>\n","import { Component } from '@angular/core';\n\n@Component({\n\tselector: 'app-base-modal',\n\ttemplate: ``,\n\tstandalone: true,\n})\nexport class BaseModalComponent {\n}\n","import { Directive, ElementRef, Input, OnInit, inject } from '@angular/core';\n\n@Directive({\n\tselector: 'button[app-icon-button]',\n\tstandalone: true,\n})\nexport class IconButtonDirective implements OnInit {\n\tprivate readonly elementRef: ElementRef<HTMLButtonElement> = inject(ElementRef<HTMLButtonElement>);\n\tcolor!: string;\n\n\t@Input('app-icon-button') set appIconButton(val: string) {\n\t\tthis.color = val || 'primary';\n\t\tthis.elementRef.nativeElement.classList.add(`icon-button-${this.color}`);\n\t}\n\n\t@Input() set shadow(val: boolean) {\n\t\tif (val === true || val === undefined) {\n\t\t\tthis.elementRef.nativeElement.classList.add('shadow-sm');\n\t\t} else {\n\t\t\tthis.elementRef.nativeElement.classList.remove('shadow-sm');\n\t\t}\n\t}\n\n\tngOnInit(): void {\n\t\tthis.elementRef.nativeElement.classList.add('btn', 'icon-button');\n\t}\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\nimport { faTimes, IconDefinition } from '@fortawesome/free-solid-svg-icons';\nimport { IconButtonDirective } from '../../directives/icon-button.directive';\n\n@Component({\n\tselector: 'app-modal',\n\ttemplateUrl: './modal.component.html',\n\tstandalone: true,\n\timports: [CommonModule, IconButtonDirective, FontAwesomeModule],\n})\nexport class ModalComponent {\n\t@Input() title: string = '';\n\t@Input() showClose: boolean = true;\n\n\t@Input() set fullScreen(val: boolean) {\n\t\tif (val === true) {\n\t\t\tthis.dialogCssClasses.push(`modal-fullscreen`);\n\t\t} else {\n\t\t\tthis.dialogCssClasses = this.dialogCssClasses.filter(cssClass => cssClass !== 'modal-fullscreen');\n\t\t}\n\t}\n\n\t@Output() onClose: EventEmitter<void> = new EventEmitter();\n\n\tdialogCssClasses: string[] = [];\n\tfaTimes: IconDefinition = faTimes;\n\n\thandleClickClose(): void {\n\t\tthis.onClose.next();\n\t}\n}\n","<div class=\"modal d-flex justify-content-center align-items-center\" tabindex=\"-1\">\n\t<div class=\"modal-dialog\" [ngClass]=\"dialogCssClasses\">\n\t\t<div class=\"modal-content\">\n\t\t\t<div class=\"modal-header justify-content-between\">\n\t\t\t\t<h5 class=\"modal-title\">{{ title }}</h5>\n\t\t\t\t@if (showClose) {\n\t\t\t\t\t<button app-icon-button=\"secondary\" class=\"ms-2\" (click)=\"handleClickClose()\">\n\t\t\t\t\t\t<fa-icon [icon]=\"faTimes\" />\n\t\t\t\t\t</button>\n\t\t\t\t}\n\t\t\t</div>\n\n\t\t\t<div class=\"modal-body\">\n\t\t\t\t<ng-content />\n\t\t\t</div>\n\n\t\t\t<div class=\"modal-footer\">\n\t\t\t\t<ng-content select=\"[footer]\"></ng-content>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</div>\n<div class=\"modal-backdrop fade show\"></div>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\nimport { faTimes, IconDefinition } from '@fortawesome/free-solid-svg-icons';\nimport { IconButtonDirective } from '../../directives/icon-button.directive';\n\n@Component({\n\tselector: 'app-off-canvas',\n\ttemplateUrl: './off-canvas.component.html',\n\tstandalone: true,\n\tstyles: `\n\t\t:host {\n\t\t\tz-index: 9999;\n\t\t\tdisplay: block;\n\t\t}\n\t`,\n\timports: [FontAwesomeModule, IconButtonDirective],\n})\nexport class OffCanvasComponent {\n\t@Input() title: string = '';\n\t@Output() onClose: EventEmitter<void> = new EventEmitter();\n\n\tfaTimes: IconDefinition = faTimes;\n\n\thandleClickClose(): void {\n\t\tthis.onClose.next();\n\t}\n}\n","<div class=\"offcanvas offcanvas-start show\" tabindex=\"-1\" id=\"offcanvas\" style=\"z-index: 1051\">\n\t<div class=\"offcanvas-header justify-content-between\">\n\t\t<h5 class=\"offcanvas-title\" id=\"offcanvasLabel\">{{ title }}</h5>\n\t\t<button app-icon-button=\"secondary\" class=\"ml-auto\" (click)=\"handleClickClose()\">\n\t\t\t<fa-icon [icon]=\"faTimes\" />\n\t\t</button>\n\t</div>\n\t<ng-content />\n</div>\n\n<div class=\"modal-backdrop fade show\" (click)=\"handleClickClose()\"></div>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n\tselector: 'app-toast',\n\ttemplate: `\n\t\t<div class=\"toast align-items-center text-bg-dark border-0 show\">\n\t\t\t<div class=\"d-flex\">\n\t\t\t\t<div class=\"toast-body\" [innerHTML]=\"message\"></div>\n\t\t\t\t<button class=\"btn-close btn-close-white me-2 m-auto\" (click)=\"onClose.next()\"></button>\n\t\t\t</div>\n\t\t</div>\n\t`,\n\tstyles: `\n\t\t:host {\n\t\t\tposition: fixed;\n\t\t\tbottom: 20px;\n\t\t\tleft: 50%;\n\t\t\ttransform: translate(-50%);\n\t\t\tz-index: 1051;\n\t\t}\n\t`,\n\tstandalone: true,\n})\nexport class ToastComponent {\n\t@Input() message?: string;\n\t@Output() onClose: EventEmitter<void> = new EventEmitter();\n}\n","import { DecoratorClassType } from './decorator.types';\n\nexport const Class =\n\t(className: string): DecoratorClassType =>\n\t(obj: Function): void => {\n\t\tObject.defineProperty(obj.prototype, 'className', {\n\t\t\tvalue: className,\n\t\t\twritable: false,\n\t\t});\n\t};\n","export enum LogType {\n\tlog = 'log',\n\tinfo = 'info',\n\twarn = 'warn',\n\tdebug = 'debug',\n\terror = 'error',\n}\n","/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable prefer-arrow/prefer-arrow-functions */\n\nimport { LogType } from '../enums';\nimport { DecoratorMethodType } from './decorator.types';\n\nexport function Log(methodName: string, logType: LogType = LogType.log, logArgs?: boolean): DecoratorMethodType {\n\treturn function (target: Object, key: string, descriptor: PropertyDescriptor): PropertyDescriptor {\n\t\tconst method: Function = descriptor.value;\n\n\t\tdescriptor.value = function (...args: unknown[]): unknown {\n\t\t\tconst className: string = (target as { constructor: { name: string } }).constructor.name;\n\t\t\tconst newMethodName: string = methodName || key;\n\n\t\t\tlet logStatements: (string | unknown)[] = [className, newMethodName];\n\t\t\tif (logArgs && args && args.length > 0) {\n\t\t\t\tlogStatements = logStatements.concat(args);\n\t\t\t}\n\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole[logType](...logStatements);\n\n\t\t\treturn method.apply(this, args);\n\t\t};\n\n\t\treturn descriptor;\n\t};\n}\n","import { AfterViewInit, Directive, ElementRef, Input } from '@angular/core';\n\n@Directive({\n\tselector: '[autofocus]',\n\tstandalone: true,\n})\nexport class AutofocusDirective implements AfterViewInit {\n\tprivate focus: boolean = true;\n\n\tconstructor(private el: ElementRef) {}\n\n\t@Input() set autofocus(condition: boolean) {\n\t\tthis.focus = condition !== false;\n\t}\n\n\tngAfterViewInit(): void {\n\t\tif (this.focus) {\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.el.nativeElement.focus();\n\t\t\t\t(this.el.nativeElement as HTMLElement).classList.add('focus-ring');\n\t\t\t}, 100);\n\t\t}\n\t}\n}\n","import { Directive, ElementRef, HostListener, Input, OnInit, Renderer2, inject } from '@angular/core';\n\n@Directive({\n\tselector: 'button[app-button]',\n\tstandalone: true,\n})\nexport class ButtonDirective implements OnInit {\n\tprivate readonly elementRef: ElementRef<HTMLButtonElement> = inject(ElementRef<HTMLButtonElement>);\n\tprivate readonly renderer: Renderer2 = inject(Renderer2);\n\tcolor!: string;\n\t_variant: string = 'contained';\n\n\t@HostListener('focus', ['$event']) onFocus(): void {\n\t\tthis.isFocused = true;\n\t}\n\n\t@HostListener('blur', ['$event']) onblur(): void {\n\t\tthis.isFocused = false;\n\t}\n\n\tset isFocused(val: boolean) {\n\t\tif (val) {\n\t\t\tthis.elementRef.nativeElement.classList.add(`focus-ring-${this.color}`);\n\t\t} else {\n\t\t\tthis.elementRef.nativeElement.classList.remove(`focus-ring-${this.color}`);\n\t\t}\n\t}\n\n\t@Input('app-button') set appButton(val: string) {\n\t\tthis.color = val || 'primary';\n\t}\n\n\t@Input() set variant(val: 'contained' | 'outline' | 'text') {\n\t\tthis._variant = val;\n\t}\n\n\t@Input() set size(val: string) {\n\t\tthis.elementRef.nativeElement.classList.add(`btn-${val || 'sm'}`);\n\t}\n\n\tngOnInit(): void {\n\t\tthis.elementRef.nativeElement.classList.add('btn');\n\t\tif (this._variant === 'outline' || this._variant === 'text') {\n\t\t\tthis.elementRef.nativeElement.classList.add(`btn-${this._variant}-${this.color}`);\n\t\t} else {\n\t\t\tthis.elementRef.nativeElement.classList.add(`btn-${this.color}`);\n\t\t}\n\t\tthis.elementRef.nativeElement.classList.add('flex-shrink-0');\n\t\tthis.renderer.setAttribute(this.elementRef.nativeElement, 'type', 'button');\n\t}\n}\n","import { AfterViewInit, Directive, ElementRef, inject, Input } from '@angular/core';\n\n/* experimental */\n\n@Directive({\n\tselector: '[col]',\n\tstandalone: true,\n})\nexport class ColDirective implements AfterViewInit {\n\tprivate readonly el: ElementRef = inject(ElementRef);\n\tspan: string = 'col';\n\n\t@Input() set col(val: string | null) {\n\t\tif (val) {\n\t\t\tthis.span = val;\n\t\t}\n\t}\n\n\tngAfterViewInit(): void {\n\t\t(this.el.nativeElement as HTMLElement).classList.add(this.span);\n\t}\n}\n","import {\n\tDirective,\n\tElementRef,\n\tEmbeddedViewRef,\n\tHostListener,\n\tinject,\n\tInput,\n\tOnInit,\n\tRenderer2,\n\tTemplateRef,\n\tViewContainerRef,\n} from '@angular/core';\nimport { createPopper, Instance, Placement } from '@popperjs/core';\n\n@Directive({\n\tselector: '[appDropdown]',\n\tstandalone: true,\n})\nexport class DropdownDirective implements OnInit {\n\t@Input('appDropdown') dropdownTemplate!: TemplateRef<unknown>;\n\t@Input() placement: Placement = 'bottom-start';\n\n\tprivate readonly elementRef: ElementRef = inject(ElementRef);\n\tprivate readonly renderer: Renderer2 = inject(Renderer2);\n\tprivate readonly viewContainer: ViewContainerRef = inject(ViewContainerRef);\n\n\tprivate wrapperElement!: HTMLElement | null;\n\tprivate dropdownContent!: HTMLElement | null;\n\tprivate isDropdownVisible: boolean = false;\n\tprivate popperInstance?: Instance;\n\n\tprivate documentClickListener!: (event: MouseEvent) => void;\n\n\tconstructor() {\n\t\tthis.documentClickListener = this.onDocumentClick.bind(this);\n\t}\n\n\tngOnInit(): void {\n\t\tif (!this.wrapperElement) {\n\t\t\tthis.wrapperElement = this.renderer.createElement('div');\n\t\t\tthis.renderer.addClass(this.wrapperElement, 'dropdown');\n\t\t\tconst parent: HTMLElement = this.elementRef.nativeElement.parentNode;\n\t\t\tthis.renderer.insertBefore(parent, this.wrapperElement, this.elementRef.nativeElement);\n\t\t\tthis.renderer.appendChild(this.wrapperElement, this.elementRef.nativeElement);\n\t\t}\n\t}\n\n\t@HostListener('click')\n\ttoggleDropdown(): void {\n\t\tif (this.isDropdownVisible) {\n\t\t\tthis.closeDropdown();\n\t\t} else {\n\t\t\tthis.openDropdown();\n\t\t}\n\t}\n\n\tprivate openDropdown(): void {\n\t\tif (!this.dropdownContent && this.wrapperElement) {\n\t\t\tconst dropdownView: EmbeddedViewRef<unknown> = this.viewContainer.createEmbeddedView(this.dropdownTemplate);\n\t\t\tthis.dropdownContent = dropdownView.rootNodes[0];\n\t\t\tthis.renderer.appendChild(this.wrapperElement, this.dropdownContent);\n\n\t\t\tthis.addDropdownLinksListener();\n\n\t\t\tthis.popperInstance = createPopper(this.wrapperElement, this.dropdownContent!, {\n\t\t\t\tplacement: this.placement,\n\t\t\t\tmodifiers: [\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'offset',\n\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\toffset: ({ placement }: { placement: Placement }): number[] => {\n\t\t\t\t\t\t\t\tif (placement.startsWith('bottom')) {\n\t\t\t\t\t\t\t\t\treturn [0, -(this.wrapperElement?.offsetHeight as number)];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif (placement.startsWith('top')) {\n\t\t\t\t\t\t\t\t\treturn [0, -(this.wrapperElement?.offsetHeight as number)];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif (placement.startsWith('left')) {\n\t\t\t\t\t\t\t\t\treturn [0, -(this.wrapperElement?.offsetWidth as number)];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\treturn [0, 0];\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'flip',\n\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\tfallbackPlacements: ['right-start', 'top-start', 'left-start'],\n\t\t\t\t\t\t\tboundary: 'viewport',\n\t\t\t\t\t\t\tpadding: 0,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'preventOverflow',\n\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\tboundary: 'viewport',\n\t\t\t\t\t\t\tpadding: 0,\n\t\t\t\t\t\t\ttether: false,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t});\n\t\t}\n\n\t\tdocument.addEventListener('click', this.documentClickListener);\n\t\tthis.isDropdownVisible = true;\n\t}\n\n\tprivate closeDropdown(): void {\n\t\tif (this.dropdownContent) {\n\t\t\tthis.viewContainer.clear();\n\t\t\tthis.dropdownContent = null;\n\t\t\tthis.popperInstance?.destroy();\n\t\t}\n\t\tdocument.removeEventListener('click', this.documentClickListener);\n\t\tthis.isDropdownVisible = false;\n\t}\n\n\tprivate onDocumentClick(event: MouseEvent): void {\n\t\tif (\n\t\t\tthis.wrapperElement &&\n\t\t\t!this.wrapperElement.contains(event.target as Node) &&\n\t\t\t!this.elementRef.nativeElement.contains(event.target as Node)\n\t\t) {\n\t\t\tthis.closeDropdown();\n\t\t}\n\t}\n\n\tprivate addDropdownLinksListener(): void {\n\t\tconst links: NodeListOf<Element> | undefined = this.dropdownContent?.querySelectorAll('.dropdown-item');\n\t\tlinks?.forEach(link => {\n\t\t\tthis.renderer.listen(link, 'click', () => {\n\t\t\t\tthis.closeDropdown();\n\t\t\t});\n\t\t});\n\t}\n}\n","import { Directive, ElementRef, inject, OnInit } from '@angular/core';\n\n@Directive({\n\tselector: '[app-list-group-item-avatar]',\n\tstandalone: true,\n})\nexport class ListGroupItemAvatarDirective implements OnInit {\n\tprivate readonly elementRef: ElementRef<HTMLUListElement> = inject(ElementRef<HTMLUListElement>);\n\n\tngOnInit(): void {\n\t\tthis.elementRef.nativeElement.classList.add('list-group-item-avatar');\n\t}\n}\n","import { Directive, ElementRef, EventEmitter, Input, OnInit, Output, Renderer2, inject } from '@angular/core';\n\n@Directive({\n\tselector: 'li[app-list-group-item]',\n\tstandalone: true,\n})\nexport class ListGroupItemDirective implements OnInit {\n\tprivate readonly renderer: Renderer2 = inject(Renderer2);\n\tprivate readonly elementRef: ElementRef<HTMLUListElement> = inject(ElementRef<HTMLUListElement>);\n\n\t_isActive: boolean = false;\n\t@Input() set isActive(val: boolean) {\n\t\tthis._isActive = val;\n\t\tif (val) {\n\t\t\tthis.elementRef.nativeElement.classList.add('focus-active');\n\t\t} else {\n\t\t\tthis.elementRef.nativeElement.classList.remove('focus-active');\n\t\t}\n\t}\n\n\t@Output() onOutsideClick: EventEmitter<void> = new EventEmitter<void>();\n\n\tngOnInit(): void {\n\t\tthis.elementRef.nativeElement.classList.add('list-group-item');\n\t\tthis.elementRef.nativeElement.classList.add('list-group-item-action');\n\t\tthis.elementRef.nativeElement.classList.add('d-flex', 'flex-row', 'align-items-center');\n\n\t\tthis.renderer.listen('window', 'click', (e: Event) => {\n\t\t\tif (e.target !== this.elementRef.nativeElement) {\n\t\t\t\tthis._isActive = false;\n\t\t\t\tthis.elementRef.nativeElement.classList.remove('focus-active');\n\t\t\t\tthis.onOutsideClick.next();\n\t\t\t}\n\t\t});\n\t}\n}\n","import { Directive, ElementRef, OnInit, inject } from '@angular/core';\n\n@Directive({\n\tselector: 'ul[app-list-group]',\n\tstandalone: true,\n})\nexport class ListGroupDirective implements OnInit {\n\tprivate readonly elementRef: ElementRef<HTMLUListElement> = inject(ElementRef<HTMLUListElement>);\n\n\tngOnInit(): void {\n\t\tthis.elementRef.nativeElement.classList.add('list-group');\n\t\tthis.elementRef.nativeElement.classList.add('list-group-flush');\n\t}\n}\n","import { Directive, Input } from '@angular/core';\nimport { Placement } from '@popperjs/core';\n\n@Directive({\n\tselector: '[appTooltip]',\n\tstandalone: true,\n})\nexport class TooltipDirective {\n\t@Input('appTooltip') tooltip!: string;\n\t@Input() placement: Placement = 'bottom-start';\n\n\t// private readonly elementRef: ElementRef = inject(ElementRef);\n\t// private readonly renderer: Renderer2 = inject(Renderer2);\n\t// private readonly viewContainer: ViewContainerRef = inject(ViewContainerRef);\n\n\t// private wrapperElement!: HTMLElement | null;\n\t// private dropdownContent!: HTMLElement | null;\n\t// private popperInstance?: Instance;\n\n\t// usage - i.e. on button:\n\t// <button [app-tooltip]=\"my tooltip text\" placement=\"bottom\"></button>\n\t// onmouseenter -> create tooltip component on the fly and 'attach' to elementRef, set ng-content by tooltip directive\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { AbstractControl, FormControl } from '@angular/forms';\n\n@Pipe({\n\tname: 'formControl',\n\tstandalone: true,\n})\nexport class FormControlPipe implements PipeTransform {\n\ttransform(value: AbstractControl): FormControl<(typeof value)['value']> {\n\t\treturn value as FormControl<(typeof value)['value']>;\n\t}\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class ImageService {\n\tasync compress(imageBase64: string, quality: number = 0.8, fileType: string = 'image/jpeg'): Promise<string> {\n\t\tconst img: HTMLImageElement = await this.load(imageBase64);\n\t\tconst canvas: HTMLCanvasElement = this.createCanvas();\n\t\tthis.drawImage(canvas, img);\n\t\treturn canvas.toDataURL(fileType, quality);\n\t}\n\n\tasync toBlob(imageBase64: string, quality: number = 1, fileType: string = 'image/jpeg'): Promise<Blob> {\n\t\tconst img: HTMLImageElement = await this.load(imageBase64);\n\t\tconst canvas: HTMLCanvasElement = this.createCanvas();\n\t\tthis.drawImage(canvas, img);\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tcanvas.toBlob(\n\t\t\t\tblob => {\n\t\t\t\t\tif (blob) {\n\t\t\t\t\t\tresolve(blob);\n\t\t\t\t\t} else {\n\t\t\t\t\t\treject('Error on converting image to blob');\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tfileType,\n\t\t\t\tquality\n\t\t\t);\n\t\t});\n\t}\n\n\tprivate load(imageBase64: string): Promise<HTMLImageElement> {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tconst img: HTMLImageElement = new Image();\n\t\t\timg.onload = (): void => resolve(img);\n\t\t\timg.onerror = (event): void => reject(event);\n\t\t\timg.src = imageBase64;\n\t\t});\n\t}\n\n\tprivate createCanvas(): HTMLCanvasElement {\n\t\treturn document.createElement('canvas');\n\t}\n\n\tprivate drawImage(canvas: HTMLCanvasElement, img: HTMLImageElement): void {\n\t\tconst context: CanvasRenderingContext2D = canvas.getContext('2d')!;\n\t\tcanvas.width = img.width;\n\t\tcanvas.height = img.height;\n\t\tcontext.drawImage(img, 0, 0, canvas.width, canvas.height);\n\t}\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class LoadingIndicatorService {\n\tshow: BehaviorSubject<void> = new BehaviorSubject<void>(undefined);\n\thide: BehaviorSubject<void> = new BehaviorSubject<void>(undefined);\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class LocalService {\n\tget<T>(key: string): T | null {\n\t\tlet result: T | null = null;\n\t\tconst local: string | null = localStorage.getItem(key);\n\t\tif (local) {\n\t\t\tresult = JSON.parse(local);\n\t\t}\n\t\treturn result;\n\t}\n\n\tset<T>(key: string, val: T): void {\n\t\tlocalStorage.setItem(key, JSON.stringify(val));\n\t}\n\n\tremove(key: string): void {\n\t\tlocalStorage.removeItem(key);\n\t}\n\n\tremoveAll(): void {\n\t\tlocalStorage.clear();\n\t}\n}\n","import { ComponentType, DomPortalOutlet, TemplatePortal } from '@angular/cdk/portal';\nimport { ComponentRef, Injectable, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { BaseModalComponent } from '../components';\n\n@Injectable({ providedIn: 'root' })\nexport class ModalService {\n\tprivate viewContainerRef?: ViewContainerRef;\n\tprivate portalHost!: DomPortalOutlet;\n\n\tinit(viewContainerRef: ViewContainerRef): void {\n\t\tthis.portalHost = new DomPortalOutlet(document.body);\n\t\tthis.viewContainerRef = viewContainerRef;\n\t}\n\n\tshowTemplate(templateRef: TemplateRef<unknown>): void {\n\t\tif (this.viewContainerRef) {\n\t\t\tconst newPortal: TemplatePortal = new TemplatePortal(templateRef, this.viewContainerRef);\n\t\t\tthis.portalHost.attach(newPortal);\n\t\t} else {\n\t\t\tthrow Error('no viewcontainer ref is set');\n\t\t}\n\t}\n\n\tshowComponent<T extends BaseModalComponent>(component: ComponentType<T>): ComponentRef<T> {\n\t\tif (!this.viewContainerRef) {\n\t\t\tthrow Error('no viewcontainer ref is set');\n\t\t}\n\t\treturn this.viewContainerRef.createComponent(component);\n\t}\n\n\thide(): void {\n\t\tthis.portalHost.detach();\n\t}\n}\n","import { ComponentPortal, DomPortalOutlet } from '@angular/cdk/portal';\nimport { ComponentFactoryResolver, ComponentRef, Injectable, ViewContainerRef, inject } from '@angular/core';\nimport { ToastComponent } from '../components';\n\n@Injectable({ providedIn: 'root' })\nexport class ToastService {\n\tprivate readonly componentFactoryResolver: ComponentFactoryResolver = inject(ComponentFactoryResolver);\n\tviewContainerRef?: ViewContainerRef;\n\tportalHost!: DomPortalOutlet;\n\n\tinit(viewContainerRef: ViewContainerRef): void {\n\t\tthis.portalHost = new DomPortalOutlet(document.body);\n\t\tthis.viewContainerRef = viewContainerRef;\n\t}\n\n\tshow(message: string, timeout: number = 1500): void {\n\t\tif (this.viewContainerRef) {\n\t\t\tif (this.portalHost.hasAttached()) {\n\t\t\t\tthis.portalHost.detach();\n\t\t\t}\n\n\t\t\tconst componentPortal: ComponentPortal<ToastComponent> = new ComponentPortal(\n\t\t\t\tToastComponent,\n\t\t\t\tthis.viewContainerRef,\n\t\t\t\tnull,\n\t\t\t\tthis.componentFactoryResolver\n\t\t\t);\n\t\t\tconst componentRef: ComponentRef<ToastComponent> = this.portalHost.attachComponentPortal(componentPortal);\n\t\t\tcomponentRef.instance.message = message;\n\t\t\tcomponentRef.instance.onClose.subscribe(() => {\n\t\t\t\tthis.hide();\n\t\t\t});\n\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.hide();\n\t\t\t}, timeout);\n\t\t} else {\n\t\t\tthrow Error('no viewcontainer ref is set');\n\t\t}\n\t}\n\n\thide(): void {\n\t\tthis.portalHost.detach();\n\t}\n}\n","import { Injectable } from '@angular/core';\nimport { LocalService } from './local.service';\n\n@Injectable({ providedIn: 'root' })\nexport class TokenService {\n\tconstructor(private localService: LocalService) {}\n\n\tget(key: 'accesstoken' | 'refreshtoken'): string | null {\n\t\treturn this.localService.get<string>(key);\n\t}\n\n\tset(key: 'accesstoken' | 'refreshtoken', token: string): void {\n\t\tthis.localService.set(key, token);\n\t}\n\n\tremove(key: 'accesstoken' | 'refreshtoken'): void {\n\t\tthis.localService.remove(key);\n\t}\n}\n","import { AbstractControl, FormArray, FormGroup, ValidationErrors } from '@angular/forms';\n\nexport function dateAfterValidator<T extends { [key: string]: AbstractControl }>(\n\tstartDateControlKey: keyof T & string\n): (control: AbstractControl) => ValidationErrors | null {\n\treturn (endDateControl: AbstractControl): ValidationErrors | null => {\n\t\tlet result: ValidationErrors | null = null;\n\n\t\tconst formGroup: FormGroup<T> | FormArray | null = endDateControl.parent;\n\t\tif (formGroup) {\n\t\t\tconst startDate: string | undefined = (formGroup as FormGroup).get(startDateControlKey)?.value;\n\t\t\tconst endDate: string = endDateControl.value;\n\n\t\t\tif (!startDate || !endDate) {\n\t\t\t\tresult = null;\n\t\t\t} else {\n\t\t\t\tconst start: Date = new Date(startDate);\n\t\t\t\tconst end: Date = new Date(endDate);\n\n\t\t\t\tresult = start < end ? null : { dateAfterInvalid: true, startDateValue: startDate };\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t};\n}\n","import { AbstractControl, FormArray, FormGroup, ValidationErrors } from '@angular/forms';\n\nexport function matchValidator<T extends { [key: string]: AbstractControl }>(\n\ttoMatchControlKey: keyof T & string\n): (control: AbstractControl) => ValidationErrors | null {\n\treturn (control: AbstractControl): ValidationErrors | null => {\n\t\tlet result: ValidationErrors | null = null;\n\n\t\tconst formGroup: FormGroup<T> | FormArray | null = control.parent;\n\t\tif (formGroup) {\n\t\t\tconst toMatchValue: unknown = (formGroup as FormGroup).get(toMatchControlKey)?.value;\n\t\t\tconst currentValue: unknown = control.value;\n\n\t\t\tif (!toMatchValue || !currentValue) {\n\t\t\t\tresult = null;\n\t\t\t} else {\n\t\t\t\tresult = toMatchValue === currentValue ? null : { match: true };\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t};\n}\n","import { AbstractControl, FormArray, FormGroup, ValidationErrors, ValidatorFn } from '@angular/forms';\n\nexport function timeAfterValidator<T extends { [key: string]: AbstractControl }>(startTimeControlKey: keyof T & string): ValidatorFn {\n\treturn (control: AbstractControl): ValidationErrors | null => {\n\t\tlet result: ValidationErrors | null = null;\n\n\t\tconst formGroup: FormGroup<T> | FormArray | null = control.parent;\n\t\tif (formGroup) {\n\t\t\tconst startTimeControl: AbstractControl | null = (formGroup as FormGroup).get(startTimeControlKey);\n\t\t\tif (startTimeControl) {\n\t\t\t\tif (!control.value || !startTimeControl.value) {\n\t\t\t\t\tresult = null; // Keine Validierung, wenn entweder Start- oder Endzeit fehlt\n\t\t\t\t}\n\n\t\t\t\tconst startTime: string = startTimeControl.value;\n\t\t\t\tconst endTime: string = control.value;\n\n\t\t\t\t// Umwandlung der Zeit in Minuten (z.B. 20:00 Uhr = 1200 Minuten)\n\t\t\t\tif (startTime && endTime) {\n\t\t\t\t\tconst startMinutes: number = convertToMinutes(startTime);\n\t\t\t\t\tconst endMinutes: number = convertToMinutes(endTime);\n\t\t\t\t\tif (endMinutes <= startMinutes) {\n\t\t\t\t\t\tresult = { timeAfterError: startTimeControl.value };\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t};\n}\n\n// Funktion zur Umwandlung von Zeit in Minuten\nfunction convertToMinutes(time: string): number {\n\tconst [hours, minutes] = time.split(':').map(Number);\n\treturn hours * 60 + minutes;\n}\n","/*\n * Public API Surface of ngx-gccb\n */\n\nexport * from './lib/animations';\nexport * from './lib/components';\nexport * from './lib/decorators';\n\nexport * from './lib/directives/autofocus.directive';\nexport * from './lib/directives/button.directive';\nexport * from './lib/directives/col.directive';\nexport * from './lib/directives/dropdown.directive';\nexport * from './lib/directives/form-input.directive';\nexport * from './lib/directives/form-label.directive';\nexport * from './lib/directives/form-select.directive';\nexport * from './lib/directives/icon-button.directive';\nexport * from './lib/directives/list-group-item-avatar.directive';\nexport * from './lib/directives/list-group-item.directive';\nexport * from './lib/directives/list-group.directive';\nexport * from './lib/directives/tooltip.directive';\n\nexport * from './lib/enums';\nexport * from './lib/pipe';\n\nexport * from './lib/services/image.service';\nexport * from './lib/services/loading-indicator.service';\nexport * from './lib/services/local.service';\nexport * from './lib/services/modal.service';\nexport * from './lib/services/toast.service';\nexport * from './lib/services/token.service';\n\nexport * from './lib/validators';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i1.LocalService"],"mappings":"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"}
1
+ {"version":3,"file":"ngx-gccb.mjs","sources":["../../../projects/ngx-gccb/src/lib/animations/fade-right.animation.ts","../../../projects/ngx-gccb/src/lib/animations/fade-up.animation.ts","../../../projects/ngx-gccb/src/lib/components/date-picker/date-picker.component.ts","../../../projects/ngx-gccb/src/lib/components/date-picker/date-picker.component.html","../../../projects/ngx-gccb/src/lib/components/form/form-errors/form-errors.component.ts","../../../projects/ngx-gccb/src/lib/directives/form-input.directive.ts","../../../projects/ngx-gccb/src/lib/directives/form-label.directive.ts","../../../projects/ngx-gccb/src/lib/directives/form-select.directive.ts","../../../projects/ngx-gccb/src/lib/components/form/form-input/form-input.component.ts","../../../projects/ngx-gccb/src/lib/components/form/form-input/form-input.component.html","../../../projects/ngx-gccb/src/lib/components/loading-indicator/loading-indicator.component.ts","../../../projects/ngx-gccb/src/lib/components/loading-indicator/loading-indicator.component.html","../../../projects/ngx-gccb/src/lib/components/modal/base-modal.component.ts","../../../projects/ngx-gccb/src/lib/directives/icon-button.directive.ts","../../../projects/ngx-gccb/src/lib/components/modal/modal.component.ts","../../../projects/ngx-gccb/src/lib/components/modal/modal.component.html","../../../projects/ngx-gccb/src/lib/components/off-canvas/off-canvas.component.ts","../../../projects/ngx-gccb/src/lib/components/off-canvas/off-canvas.component.html","../../../projects/ngx-gccb/src/lib/components/toast/toast.component.ts","../../../projects/ngx-gccb/src/lib/decorators/class.decorator.ts","../../../projects/ngx-gccb/src/lib/enums/logtype.enum.ts","../../../projects/ngx-gccb/src/lib/decorators/log.decorator.ts","../../../projects/ngx-gccb/src/lib/directives/autofocus.directive.ts","../../../projects/ngx-gccb/src/lib/directives/button.directive.ts","../../../projects/ngx-gccb/src/lib/directives/col.directive.ts","../../../projects/ngx-gccb/src/lib/directives/dropdown.directive.ts","../../../projects/ngx-gccb/src/lib/directives/list-group-item-avatar.directive.ts","../../../projects/ngx-gccb/src/lib/directives/list-group-item.directive.ts","../../../projects/ngx-gccb/src/lib/directives/list-group.directive.ts","../../../projects/ngx-gccb/src/lib/directives/tooltip.directive.ts","../../../projects/ngx-gccb/src/lib/pipe/form-control.pipe.ts","../../../projects/ngx-gccb/src/lib/services/image.service.ts","../../../projects/ngx-gccb/src/lib/services/loading-indicator.service.ts","../../../projects/ngx-gccb/src/lib/services/local.service.ts","../../../projects/ngx-gccb/src/lib/services/modal.service.ts","../../../projects/ngx-gccb/src/lib/services/toast.service.ts","../../../projects/ngx-gccb/src/lib/services/token.service.ts","../../../projects/ngx-gccb/src/lib/validators/dateAfter.validator.ts","../../../projects/ngx-gccb/src/lib/validators/match.validator.ts","../../../projects/ngx-gccb/src/lib/validators/timeAfter.validator.ts","../../../projects/ngx-gccb/src/public-api.ts","../../../projects/ngx-gccb/src/ngx-gccb.ts"],"sourcesContent":["import { animate, AnimationTriggerMetadata, style, transition, trigger } from '@angular/animations';\n\nexport const FadeRightAnimation: AnimationTriggerMetadata = trigger('fadeRightAnimation', [\n\ttransition(':enter', [\n\t\tstyle({ transform: 'translateX(-100%)', zIndex: 9999 }),\n\t\tanimate('200ms ease-in', style({ transform: 'translateX(0%)' })),\n\t]),\n\ttransition(':leave', [animate('200ms ease-in', style({ transform: 'translateX(-100%)' }))]),\n]);\n","import { animate, AnimationTriggerMetadata, style, transition, trigger } from '@angular/animations';\n\nexport const FadeAnimation: AnimationTriggerMetadata = trigger('fadeAnimation', [\n\ttransition(':enter', [\n\t\tstyle({ opacity: 0, transform: 'translateY(10px)' }),\n\t\tanimate('500ms', style({ opacity: 1, transform: 'translateY(0)' })),\n\t]),\n\ttransition(':leave', [animate('500ms', style({ opacity: 0, transform: 'translateY(10px)' }))]),\n]);\n","/* eslint-disable no-console */\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport { CommonModule } from '@angular/common';\nimport { Component, OnInit } from '@angular/core';\n\n@Component({\n\tselector: 'app-date-picker',\n\ttemplateUrl: './date-picker.component.html',\n\timports: [CommonModule],\n})\nexport class DatePickerComponent implements OnInit {\n\tcurrentDate: Date = new Date();\n\n\t// eslint-disable-next-line @angular-eslint/no-empty-lifecycle-method\n\tngOnInit(): void {\n\t\t// const firstDayOfMonth: Date = this.currentDate.firstDayOfMonth();\n\t\t// console.warn(firstDayOfMonth, firstDayOfMonth.getDate(), firstDayOfMonth.getDay());\n\t\t// const weekCount: number = getWeekCount(this.currentDate.getFullYear(), this.currentDate.getMonth(), DayOfWeek.Monday);\n\t\t// console.warn(weekCount);\n\t\t// const weeks: unknown[] = [];\n\t\t// for (let i: number = 0; i <= weekCount; i++) {\n\t\t// for(let){\n\t\t// }\n\t\t// }\n\t}\n}\n\nenum DayOfWeek {\n\t'Sunday' = 0,\n\t'Monday' = 1,\n\t'Tuesday' = 2,\n\t'Wednesday' = 3,\n\t'Thursday' = 4,\n\t'Friday' = 5,\n\t'Saturday' = 6,\n}\n\nfunction getWeekCount(year: number, month: number, startDayOfWeek: DayOfWeek): number {\n\t// month_number is in the range 0..11\n\n\t// Get the first day of week week day (0: Sunday, 1: Monday, ...)\n\tconst firstDayOfWeek: DayOfWeek = startDayOfWeek || DayOfWeek.Sunday;\n\tconst firstOfMonth: Date = new Date(year, month, 1);\n\tconst lastOfMonth: Date = new Date(year, month + 1, 0);\n\tconst numberOfDaysInMonth: number = lastOfMonth.getDate();\n\tconst firstWeekDay: number = (firstOfMonth.getDay() - firstDayOfWeek + 7) % 7;\n\tconst used: number = firstWeekDay + numberOfDaysInMonth;\n\n\treturn Math.ceil(used / 7);\n}\n","coming soon\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { ValidationErrors } from '@angular/forms';\n\n@Component({\n\tselector: 'app-form-errors',\n\ttemplate: `\n\t\t<div class=\"invalid-feedback d-block\">\n\t\t\t@if (errorMessages) {\n\t\t\t\t@for (errorMessage of errorMessages; track $index) {\n\t\t\t\t\t<div>{{ errorMessage }}</div>\n\t\t\t\t}\n\t\t\t}\n\t\t</div>\n\t`,\n\timports: [CommonModule],\n})\nexport class FormErrorsComponent implements OnChanges {\n\t@Input() errors: ValidationErrors | null = null;\n\t// @Input() customErrorMessages?: IErrorMessage; // TODO\n\n\terrorMessages: string[] = [];\n\n\tngOnChanges(changes: SimpleChanges): void {\n\t\tif (changes['errors']) {\n\t\t\tconst previousValue: ValidationErrors = changes['errors'].previousValue;\n\t\t\tconst currentValue: ValidationErrors = changes['errors'].currentValue;\n\n\t\t\tif (JSON.stringify(previousValue) !== JSON.stringify(currentValue)) {\n\t\t\t\tthis.errorMessages = [];\n\t\t\t\tfor (const key in currentValue) {\n\t\t\t\t\tif (this.errorMessageDictionary[key]) {\n\t\t\t\t\t\tthis.errorMessages.push(this.errorMessageDictionary[key](currentValue));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\terrorMessageDictionary: IErrorMessage = {\n\t\trequired: () => 'Field is required',\n\t\trequiredTrue: () => 'Field is required',\n\t\temail: () => 'Invalid E-Mail',\n\t\tmin: (errors: ValidationErrors) => `At least ${errors['min']?.requiredLength} characters are required`,\n\t\tminlength: (errors: ValidationErrors) => `At least ${errors['minlength']?.requiredLength} characters are required`,\n\t\tmax: (errors: ValidationErrors) => `Maximum of ${errors['max']?.requiredLength} characters exceeded`,\n\t\tmaxlength: (errors: ValidationErrors) => `Maximum of ${errors['maxlength']?.requiredLength} characters exceeded`,\n\t\tpattern: () => `Input does not match pattern`,\n\t\tdateAfterInvalid: (errors: ValidationErrors) => `Date must be after ${errors?.['startDateValue']}`,\n\t\tmatch: () => `Input does not match!`,\n\t\ttimeAfterError: (errors: ValidationErrors) => `The time must be after ${errors?.['timeAfterError']}`,\n\t};\n}\n\ninterface IErrorMessage {\n\t[key: string]: (error: ValidationErrors) => string;\n}\n","import { Directive, ElementRef, Input, OnInit, inject } from '@angular/core';\n\n@Directive({\n\tselector: 'input,textarea[app-form-input]',\n\tstandalone: true,\n})\nexport class FormInputDirective implements OnInit {\n\tprivate readonly elementRef: ElementRef<HTMLElement> = inject(ElementRef<HTMLElement>);\n\n\t@Input() set formInputInvalid(val: boolean) {\n\t\tif (val === true) {\n\t\t\tthis.elementRef.nativeElement.classList.add('is-invalid');\n\t\t} else {\n\t\t\tthis.elementRef.nativeElement.classList.remove('is-invalid');\n\t\t}\n\t}\n\n\tngOnInit(): void {\n\t\tthis.elementRef.nativeElement.classList.add('form-control');\n\t}\n}\n","import { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n\tselector: 'label[app-form-label]',\n\tstandalone: true,\n})\nexport class FormLabelDirective {\n\t@HostBinding('class')\n\telementClass: string = 'form-label';\n}\n","import { Directive, ElementRef, Input, OnInit, inject } from '@angular/core';\n\n@Directive({\n\tselector: 'select[app-form-select]',\n\tstandalone: true,\n})\nexport class FormSelectDirective implements OnInit {\n\tprivate readonly elementRef: ElementRef<HTMLElement> = inject(ElementRef<HTMLElement>);\n\n\t@Input() set formInputInvalid(val: boolean) {\n\t\tif (val === true) {\n\t\t\tthis.elementRef.nativeElement.classList.add('is-invalid');\n\t\t} else {\n\t\t\tthis.elementRef.nativeElement.classList.remove('is-invalid');\n\t\t}\n\t}\n\n\tngOnInit(): void {\n\t\tthis.elementRef.nativeElement.classList.add('form-select');\n\t}\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { FormInputDirective } from '../../../directives/form-input.directive';\nimport { FormLabelDirective } from '../../../directives/form-label.directive';\nimport { FormSelectDirective } from '../../../directives/form-select.directive';\nimport { FormErrorsComponent } from '../form-errors';\n\nexport interface ISelectOptions {\n\tlabel: string;\n\tvalue: string;\n\tdisabled?: boolean;\n\tselected?: boolean;\n}\n\n@Component({\n\tselector: 'app-form-input',\n\ttemplateUrl: './form-input.component.html',\n\timports: [ReactiveFormsModule, FormErrorsComponent, FormLabelDirective, FormInputDirective, FormSelectDirective],\n})\nexport class FormInputComponent {\n\t@Input({ required: true }) control!: FormControl;\n\t@Input() inputType: string = 'text';\n\t@Input({ required: true }) inputLabel!: string;\n\t@Input() inputPlaceholder?: string;\n\t@Input() inputId?: string;\n\t@Input({ required: true }) inputName!: string;\n\t@Input() inputTabIndex?: string;\n\t@Input() isSubmitted: boolean = false;\n\t@Input() selectOptions: ISelectOptions[] = [];\n\t@Input() hintText: string = '';\n\n\t@Output() onEnter: EventEmitter<void> = new EventEmitter();\n\t@Output() onChange: EventEmitter<Event> = new EventEmitter();\n\n\thandleSelect(event: Event): void {\n\t\tthis.onChange.next(event);\n\t}\n}\n","<div class=\"form-floating mb-3\">\n\t@if (\n\t\tinputType === 'text' ||\n\t\tinputType === 'number' ||\n\t\tinputType === 'password' ||\n\t\tinputType === 'email' ||\n\t\tinputType === 'date' ||\n\t\tinputType === 'datetime-local' ||\n\t\tinputType === 'time'\n\t) {\n\t\t<input\n\t\t\t[type]=\"inputType\"\n\t\t\t[attr.id]=\"inputId || inputName\"\n\t\t\t[attr.name]=\"inputName\"\n\t\t\t[formControl]=\"control\"\n\t\t\tapp-form-input\n\t\t\t[formInputInvalid]=\"isSubmitted && !!control.errors\"\n\t\t\t[placeholder]=\"inputPlaceholder\"\n\t\t\t[tabIndex]=\"inputTabIndex\"\n\t\t\t(keydown.enter)=\"onEnter.next()\" />\n\t}\n\t@if (inputType === 'textarea') {\n\t\t<textarea\n\t\t\t[attr.id]=\"inputId || inputName\"\n\t\t\t[attr.name]=\"inputName\"\n\t\t\t[formControl]=\"control\"\n\t\t\tapp-form-input\n\t\t\t[formInputInvalid]=\"isSubmitted && !!control.errors\"\n\t\t\t[placeholder]=\"inputPlaceholder\"\n\t\t\t[tabIndex]=\"inputTabIndex\"\n\t\t\tstyle=\"min-height: 100px\">\n\t\t</textarea>\n\t}\n\t@if (inputType === 'select') {\n\t\t<select\n\t\t\t[attr.id]=\"inputId || inputName\"\n\t\t\t[attr.name]=\"inputName\"\n\t\t\t[formControl]=\"control\"\n\t\t\tapp-form-select\n\t\t\t[formInputInvalid]=\"isSubmitted && !!control.errors\"\n\t\t\t[tabIndex]=\"inputTabIndex\"\n\t\t\t(keydown.enter)=\"onEnter.next()\"\n\t\t\t(change)=\"handleSelect($event)\">\n\t\t\t<option value=\"\" disabled selected>Select your option</option>\n\n\t\t\t@for (option of selectOptions; track option.value) {\n\t\t\t\t<option [value]=\"option.value\" [disabled]=\"option.disabled\">\n\t\t\t\t\t{{ option.label }}\n\t\t\t\t</option>\n\t\t\t}\n\t\t</select>\n\t}\n\t<label app-form-label [attr.for]=\"inputName || inputId\"> {{ inputLabel }} </label>\n\n\t@if (hintText) {\n\t\t<div class=\"form-text\">\n\t\t\t{{ hintText }}\n\t\t</div>\n\t}\n\n\t@if (isSubmitted && control.errors) {\n\t\t<app-form-errors [errors]=\"control.errors\" />\n\t}\n</div>\n","import { Component } from '@angular/core';\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\nimport { faSpinner, IconDefinition } from '@fortawesome/free-solid-svg-icons';\n\n@Component({\n\tselector: 'app-loading-indicator',\n\ttemplateUrl: './loading-indicator.component.html',\n\tstyles: `\n\t\t:host {\n\t\t\tposition: fixed;\n\t\t\ttop: 50%;\n\t\t\tleft: 50%;\n\t\t\ttransform: translate(-50%, -50%);\n\t\t\tcolor: #495057;\n\t\t}\n\t`,\n\timports: [FontAwesomeModule],\n})\nexport class LoadingIndicatorComponent {\n\tfaSpinner: IconDefinition = faSpinner;\n}\n","<fa-icon animation=\"spin\" size=\"2x\" [icon]=\"faSpinner\"></fa-icon>\n","import { Component } from '@angular/core';\n\n@Component({\n\tselector: 'app-base-modal',\n\ttemplate: ``,\n\tstandalone: true,\n})\nexport class BaseModalComponent {}\n","import { Directive, ElementRef, Input, OnInit, inject } from '@angular/core';\n\n@Directive({\n\tselector: 'button[app-icon-button]',\n\tstandalone: true,\n})\nexport class IconButtonDirective implements OnInit {\n\tprivate readonly elementRef: ElementRef<HTMLButtonElement> = inject(ElementRef<HTMLButtonElement>);\n\tcolor!: string;\n\n\t@Input('app-icon-button') set appIconButton(val: string) {\n\t\tthis.color = val || 'primary';\n\t\tthis.elementRef.nativeElement.classList.add(`icon-button-${this.color}`);\n\t}\n\n\t@Input() set shadow(val: boolean) {\n\t\tif (val === true || val === undefined) {\n\t\t\tthis.elementRef.nativeElement.classList.add('shadow-sm');\n\t\t} else {\n\t\t\tthis.elementRef.nativeElement.classList.remove('shadow-sm');\n\t\t}\n\t}\n\n\tngOnInit(): void {\n\t\tthis.elementRef.nativeElement.classList.add('btn', 'icon-button');\n\t}\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\nimport { faTimes, IconDefinition } from '@fortawesome/free-solid-svg-icons';\nimport { IconButtonDirective } from '../../directives/icon-button.directive';\n\n@Component({\n\tselector: 'app-modal',\n\ttemplateUrl: './modal.component.html',\n\timports: [CommonModule, IconButtonDirective, FontAwesomeModule],\n})\nexport class ModalComponent {\n\t@Input() title: string = '';\n\t@Input() showClose: boolean = true;\n\n\t@Input() set fullScreen(val: boolean) {\n\t\tif (val === true) {\n\t\t\tthis.dialogCssClasses.push(`modal-fullscreen`);\n\t\t} else {\n\t\t\tthis.dialogCssClasses = this.dialogCssClasses.filter(cssClass => cssClass !== 'modal-fullscreen');\n\t\t}\n\t}\n\n\t@Output() onClose: EventEmitter<void> = new EventEmitter();\n\n\tdialogCssClasses: string[] = [];\n\tfaTimes: IconDefinition = faTimes;\n\n\thandleClickClose(): void {\n\t\tthis.onClose.next();\n\t}\n}\n","<div class=\"modal d-flex justify-content-center align-items-center\" tabindex=\"-1\">\n\t<div class=\"modal-dialog\" [ngClass]=\"dialogCssClasses\">\n\t\t<div class=\"modal-content\">\n\t\t\t<div class=\"modal-header justify-content-between\">\n\t\t\t\t<h5 class=\"modal-title\">{{ title }}</h5>\n\t\t\t\t@if (showClose) {\n\t\t\t\t\t<button app-icon-button=\"secondary\" class=\"ms-2\" (click)=\"handleClickClose()\">\n\t\t\t\t\t\t<fa-icon [icon]=\"faTimes\" />\n\t\t\t\t\t</button>\n\t\t\t\t}\n\t\t\t</div>\n\n\t\t\t<div class=\"modal-body\">\n\t\t\t\t<ng-content />\n\t\t\t</div>\n\n\t\t\t<div class=\"modal-footer\">\n\t\t\t\t<ng-content select=\"[footer]\"></ng-content>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</div>\n<div class=\"modal-backdrop fade show\"></div>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\nimport { faTimes, IconDefinition } from '@fortawesome/free-solid-svg-icons';\nimport { IconButtonDirective } from '../../directives/icon-button.directive';\n\n@Component({\n\tselector: 'app-off-canvas',\n\ttemplateUrl: './off-canvas.component.html',\n\tstyles: `\n\t\t:host {\n\t\t\tz-index: 9999;\n\t\t\tdisplay: block;\n\t\t}\n\t`,\n\timports: [FontAwesomeModule, IconButtonDirective],\n})\nexport class OffCanvasComponent {\n\t@Input() title: string = '';\n\t@Output() onClose: EventEmitter<void> = new EventEmitter();\n\n\tfaTimes: IconDefinition = faTimes;\n\n\thandleClickClose(): void {\n\t\tthis.onClose.next();\n\t}\n}\n","<div class=\"offcanvas offcanvas-start show\" tabindex=\"-1\" id=\"offcanvas\" style=\"z-index: 1051\">\n\t<div class=\"offcanvas-header justify-content-between\">\n\t\t<h5 class=\"offcanvas-title\" id=\"offcanvasLabel\">{{ title }}</h5>\n\t\t<button app-icon-button=\"secondary\" class=\"ml-auto\" (click)=\"handleClickClose()\">\n\t\t\t<fa-icon [icon]=\"faTimes\" />\n\t\t</button>\n\t</div>\n\t<ng-content />\n</div>\n\n<div class=\"modal-backdrop fade show\" (click)=\"handleClickClose()\"></div>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n\tselector: 'app-toast',\n\ttemplate: `\n\t\t<div class=\"toast align-items-center text-bg-dark border-0 show\">\n\t\t\t<div class=\"d-flex\">\n\t\t\t\t<div class=\"toast-body\" [innerHTML]=\"message\"></div>\n\t\t\t\t<button class=\"btn-close btn-close-white me-2 m-auto\" (click)=\"onClose.next()\"></button>\n\t\t\t</div>\n\t\t</div>\n\t`,\n\tstyles: `\n\t\t:host {\n\t\t\tposition: fixed;\n\t\t\tbottom: 20px;\n\t\t\tleft: 50%;\n\t\t\ttransform: translate(-50%);\n\t\t\tz-index: 1051;\n\t\t}\n\t`,\n})\nexport class ToastComponent {\n\t@Input() message?: string;\n\t@Output() onClose: EventEmitter<void> = new EventEmitter();\n}\n","import { DecoratorClassType } from './decorator.types';\n\nexport const Class =\n\t(className: string): DecoratorClassType =>\n\t(obj: () => void): void => {\n\t\tObject.defineProperty(obj.prototype, 'className', {\n\t\t\tvalue: className,\n\t\t\twritable: false,\n\t\t});\n\t};\n","export enum LogType {\n\tlog = 'log',\n\tinfo = 'info',\n\twarn = 'warn',\n\tdebug = 'debug',\n\terror = 'error',\n}\n","/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable prefer-arrow/prefer-arrow-functions */\n\nimport { LogType } from '../enums';\nimport { DecoratorMethodType } from './decorator.types';\n\nexport function Log(methodName: string, logType: LogType = LogType.log, logArgs?: boolean): DecoratorMethodType {\n\treturn function (target: object, key: string, descriptor: PropertyDescriptor): PropertyDescriptor {\n\t\tconst method: () => void = descriptor.value;\n\n\t\tdescriptor.value = function (...args: []): unknown {\n\t\t\tconst className: string = (target as { constructor: { name: string } }).constructor.name;\n\t\t\tconst newMethodName: string = methodName || key;\n\n\t\t\tlet logStatements: (string | unknown)[] = [className, newMethodName];\n\t\t\tif (logArgs && args && args.length > 0) {\n\t\t\t\tlogStatements = logStatements.concat(args);\n\t\t\t}\n\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole[logType](...logStatements);\n\n\t\t\treturn method.apply(this, args);\n\t\t};\n\n\t\treturn descriptor;\n\t};\n}\n","import { AfterViewInit, Directive, ElementRef, Input } from '@angular/core';\n\n@Directive({\n\tselector: '[autofocus]',\n\tstandalone: true,\n})\nexport class AutofocusDirective implements AfterViewInit {\n\tprivate focus: boolean = true;\n\n\tconstructor(private el: ElementRef) {}\n\n\t@Input() set autofocus(condition: boolean) {\n\t\tthis.focus = condition !== false;\n\t}\n\n\tngAfterViewInit(): void {\n\t\tif (this.focus) {\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.el.nativeElement.focus();\n\t\t\t\t(this.el.nativeElement as HTMLElement).classList.add('focus-ring');\n\t\t\t}, 100);\n\t\t}\n\t}\n}\n","import { Directive, ElementRef, HostListener, Input, OnInit, Renderer2, inject } from '@angular/core';\n\n@Directive({\n\tselector: 'button[app-button]',\n\tstandalone: true,\n})\nexport class ButtonDirective implements OnInit {\n\tprivate readonly elementRef: ElementRef<HTMLButtonElement> = inject(ElementRef<HTMLButtonElement>);\n\tprivate readonly renderer: Renderer2 = inject(Renderer2);\n\tcolor!: string;\n\t_variant: string = 'contained';\n\n\t@HostListener('focus', ['$event']) onFocus(): void {\n\t\tthis.isFocused = true;\n\t}\n\n\t@HostListener('blur', ['$event']) onblur(): void {\n\t\tthis.isFocused = false;\n\t}\n\n\tset isFocused(val: boolean) {\n\t\tif (val) {\n\t\t\tthis.elementRef.nativeElement.classList.add(`focus-ring-${this.color}`);\n\t\t} else {\n\t\t\tthis.elementRef.nativeElement.classList.remove(`focus-ring-${this.color}`);\n\t\t}\n\t}\n\n\t@Input('app-button') set appButton(val: string) {\n\t\tthis.color = val || 'primary';\n\t}\n\n\t@Input() set variant(val: 'contained' | 'outline' | 'text') {\n\t\tthis._variant = val;\n\t}\n\n\t@Input() set size(val: string) {\n\t\tthis.elementRef.nativeElement.classList.add(`btn-${val || 'sm'}`);\n\t}\n\n\tngOnInit(): void {\n\t\tthis.elementRef.nativeElement.classList.add('btn');\n\t\tif (this._variant === 'outline' || this._variant === 'text') {\n\t\t\tthis.elementRef.nativeElement.classList.add(`btn-${this._variant}-${this.color}`);\n\t\t} else {\n\t\t\tthis.elementRef.nativeElement.classList.add(`btn-${this.color}`);\n\t\t}\n\t\tthis.elementRef.nativeElement.classList.add('flex-shrink-0');\n\t\tthis.renderer.setAttribute(this.elementRef.nativeElement, 'type', 'button');\n\t}\n}\n","import { AfterViewInit, Directive, ElementRef, inject, Input } from '@angular/core';\n\n/* experimental */\n\n@Directive({\n\tselector: '[col]',\n\tstandalone: true,\n})\nexport class ColDirective implements AfterViewInit {\n\tprivate readonly el: ElementRef = inject(ElementRef);\n\tspan: string = 'col';\n\n\t@Input() set col(val: string | null) {\n\t\tif (val) {\n\t\t\tthis.span = val;\n\t\t}\n\t}\n\n\tngAfterViewInit(): void {\n\t\t(this.el.nativeElement as HTMLElement).classList.add(this.span);\n\t}\n}\n","import {\n\tDirective,\n\tElementRef,\n\tEmbeddedViewRef,\n\tHostListener,\n\tinject,\n\tInput,\n\tOnInit,\n\tRenderer2,\n\tTemplateRef,\n\tViewContainerRef,\n} from '@angular/core';\nimport { createPopper, Instance, Placement } from '@popperjs/core';\n\n@Directive({\n\tselector: '[appDropdown]',\n\tstandalone: true,\n})\nexport class DropdownDirective implements OnInit {\n\t@Input('appDropdown') dropdownTemplate!: TemplateRef<unknown>;\n\t@Input() placement: Placement = 'bottom-start';\n\n\tprivate readonly elementRef: ElementRef = inject(ElementRef);\n\tprivate readonly renderer: Renderer2 = inject(Renderer2);\n\tprivate readonly viewContainer: ViewContainerRef = inject(ViewContainerRef);\n\n\tprivate wrapperElement!: HTMLElement | null;\n\tprivate dropdownContent!: HTMLElement | null;\n\tprivate isDropdownVisible: boolean = false;\n\tprivate popperInstance?: Instance;\n\n\tprivate documentClickListener!: (event: MouseEvent) => void;\n\n\tconstructor() {\n\t\tthis.documentClickListener = this.onDocumentClick.bind(this);\n\t}\n\n\tngOnInit(): void {\n\t\tif (!this.wrapperElement) {\n\t\t\tthis.wrapperElement = this.renderer.createElement('div');\n\t\t\tthis.renderer.addClass(this.wrapperElement, 'dropdown');\n\t\t\tconst parent: HTMLElement = this.elementRef.nativeElement.parentNode;\n\t\t\tthis.renderer.insertBefore(parent, this.wrapperElement, this.elementRef.nativeElement);\n\t\t\tthis.renderer.appendChild(this.wrapperElement, this.elementRef.nativeElement);\n\t\t}\n\t}\n\n\t@HostListener('click')\n\ttoggleDropdown(): void {\n\t\tif (this.isDropdownVisible) {\n\t\t\tthis.closeDropdown();\n\t\t} else {\n\t\t\tthis.openDropdown();\n\t\t}\n\t}\n\n\tprivate openDropdown(): void {\n\t\tif (!this.dropdownContent && this.wrapperElement) {\n\t\t\tconst dropdownView: EmbeddedViewRef<unknown> = this.viewContainer.createEmbeddedView(this.dropdownTemplate);\n\t\t\tthis.dropdownContent = dropdownView.rootNodes[0];\n\t\t\tthis.renderer.appendChild(this.wrapperElement, this.dropdownContent);\n\n\t\t\tthis.addDropdownLinksListener();\n\n\t\t\tthis.popperInstance = createPopper(this.wrapperElement, this.dropdownContent!, {\n\t\t\t\tplacement: this.placement,\n\t\t\t\tmodifiers: [\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'offset',\n\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\toffset: ({ placement }: { placement: Placement }): number[] => {\n\t\t\t\t\t\t\t\tif (placement.startsWith('bottom')) {\n\t\t\t\t\t\t\t\t\treturn [0, -(this.wrapperElement?.offsetHeight as number)];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif (placement.startsWith('top')) {\n\t\t\t\t\t\t\t\t\treturn [0, -(this.wrapperElement?.offsetHeight as number)];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif (placement.startsWith('left')) {\n\t\t\t\t\t\t\t\t\treturn [0, -(this.wrapperElement?.offsetWidth as number)];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\treturn [0, 0];\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'flip',\n\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\tfallbackPlacements: ['right-start', 'top-start', 'left-start'],\n\t\t\t\t\t\t\tboundary: 'viewport',\n\t\t\t\t\t\t\tpadding: 0,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'preventOverflow',\n\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\tboundary: 'viewport',\n\t\t\t\t\t\t\tpadding: 0,\n\t\t\t\t\t\t\ttether: false,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t});\n\t\t}\n\n\t\tdocument.addEventListener('click', this.documentClickListener);\n\t\tthis.isDropdownVisible = true;\n\t}\n\n\tprivate closeDropdown(): void {\n\t\tif (this.dropdownContent) {\n\t\t\tthis.viewContainer.clear();\n\t\t\tthis.dropdownContent = null;\n\t\t\tthis.popperInstance?.destroy();\n\t\t}\n\t\tdocument.removeEventListener('click', this.documentClickListener);\n\t\tthis.isDropdownVisible = false;\n\t}\n\n\tprivate onDocumentClick(event: MouseEvent): void {\n\t\tif (\n\t\t\tthis.wrapperElement &&\n\t\t\t!this.wrapperElement.contains(event.target as Node) &&\n\t\t\t!this.elementRef.nativeElement.contains(event.target as Node)\n\t\t) {\n\t\t\tthis.closeDropdown();\n\t\t}\n\t}\n\n\tprivate addDropdownLinksListener(): void {\n\t\tconst links: NodeListOf<Element> | undefined = this.dropdownContent?.querySelectorAll('.dropdown-item');\n\t\tlinks?.forEach(link => {\n\t\t\tthis.renderer.listen(link, 'click', () => {\n\t\t\t\tthis.closeDropdown();\n\t\t\t});\n\t\t});\n\t}\n}\n","import { Directive, ElementRef, inject, OnInit } from '@angular/core';\n\n@Directive({\n\tselector: '[app-list-group-item-avatar]',\n\tstandalone: true,\n})\nexport class ListGroupItemAvatarDirective implements OnInit {\n\tprivate readonly elementRef: ElementRef<HTMLUListElement> = inject(ElementRef<HTMLUListElement>);\n\n\tngOnInit(): void {\n\t\tthis.elementRef.nativeElement.classList.add('list-group-item-avatar');\n\t}\n}\n","import { Directive, ElementRef, EventEmitter, Input, OnInit, Output, Renderer2, inject } from '@angular/core';\n\n@Directive({\n\tselector: 'li[app-list-group-item]',\n\tstandalone: true,\n})\nexport class ListGroupItemDirective implements OnInit {\n\tprivate readonly renderer: Renderer2 = inject(Renderer2);\n\tprivate readonly elementRef: ElementRef<HTMLUListElement> = inject(ElementRef<HTMLUListElement>);\n\n\t_isActive: boolean = false;\n\t@Input() set isActive(val: boolean) {\n\t\tthis._isActive = val;\n\t\tif (val) {\n\t\t\tthis.elementRef.nativeElement.classList.add('focus-active');\n\t\t} else {\n\t\t\tthis.elementRef.nativeElement.classList.remove('focus-active');\n\t\t}\n\t}\n\n\t@Output() onOutsideClick: EventEmitter<void> = new EventEmitter<void>();\n\n\tngOnInit(): void {\n\t\tthis.elementRef.nativeElement.classList.add('list-group-item');\n\t\tthis.elementRef.nativeElement.classList.add('list-group-item-action');\n\t\tthis.elementRef.nativeElement.classList.add('d-flex', 'flex-row', 'align-items-center');\n\n\t\tthis.renderer.listen('window', 'click', (e: Event) => {\n\t\t\tif (e.target !== this.elementRef.nativeElement) {\n\t\t\t\tthis._isActive = false;\n\t\t\t\tthis.elementRef.nativeElement.classList.remove('focus-active');\n\t\t\t\tthis.onOutsideClick.next();\n\t\t\t}\n\t\t});\n\t}\n}\n","import { Directive, ElementRef, OnInit, inject } from '@angular/core';\n\n@Directive({\n\tselector: 'ul[app-list-group]',\n\tstandalone: true,\n})\nexport class ListGroupDirective implements OnInit {\n\tprivate readonly elementRef: ElementRef<HTMLUListElement> = inject(ElementRef<HTMLUListElement>);\n\n\tngOnInit(): void {\n\t\tthis.elementRef.nativeElement.classList.add('list-group');\n\t\tthis.elementRef.nativeElement.classList.add('list-group-flush');\n\t}\n}\n","import { Directive, Input } from '@angular/core';\nimport { Placement } from '@popperjs/core';\n\n@Directive({\n\tselector: '[appTooltip]',\n\tstandalone: true,\n})\nexport class TooltipDirective {\n\t@Input('appTooltip') tooltip!: string;\n\t@Input() placement: Placement = 'bottom-start';\n\n\t// private readonly elementRef: ElementRef = inject(ElementRef);\n\t// private readonly renderer: Renderer2 = inject(Renderer2);\n\t// private readonly viewContainer: ViewContainerRef = inject(ViewContainerRef);\n\n\t// private wrapperElement!: HTMLElement | null;\n\t// private dropdownContent!: HTMLElement | null;\n\t// private popperInstance?: Instance;\n\n\t// usage - i.e. on button:\n\t// <button [app-tooltip]=\"my tooltip text\" placement=\"bottom\"></button>\n\t// onmouseenter -> create tooltip component on the fly and 'attach' to elementRef, set ng-content by tooltip directive\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { AbstractControl, FormControl } from '@angular/forms';\n\n@Pipe({\n\tname: 'formControl',\n\tstandalone: true,\n})\nexport class FormControlPipe implements PipeTransform {\n\ttransform(value: AbstractControl): FormControl<(typeof value)['value']> {\n\t\treturn value as FormControl<(typeof value)['value']>;\n\t}\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class ImageService {\n\tasync compress(imageBase64: string, quality: number = 0.8, fileType: string = 'image/jpeg'): Promise<string> {\n\t\tconst img: HTMLImageElement = await this.load(imageBase64);\n\t\tconst canvas: HTMLCanvasElement = this.createCanvas();\n\t\tthis.drawImage(canvas, img);\n\t\treturn canvas.toDataURL(fileType, quality);\n\t}\n\n\tasync toBlob(imageBase64: string, quality: number = 1, fileType: string = 'image/jpeg'): Promise<Blob> {\n\t\tconst img: HTMLImageElement = await this.load(imageBase64);\n\t\tconst canvas: HTMLCanvasElement = this.createCanvas();\n\t\tthis.drawImage(canvas, img);\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tcanvas.toBlob(\n\t\t\t\tblob => {\n\t\t\t\t\tif (blob) {\n\t\t\t\t\t\tresolve(blob);\n\t\t\t\t\t} else {\n\t\t\t\t\t\treject('Error on converting image to blob');\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tfileType,\n\t\t\t\tquality\n\t\t\t);\n\t\t});\n\t}\n\n\tprivate load(imageBase64: string): Promise<HTMLImageElement> {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tconst img: HTMLImageElement = new Image();\n\t\t\timg.onload = (): void => resolve(img);\n\t\t\timg.onerror = (event): void => reject(event);\n\t\t\timg.src = imageBase64;\n\t\t});\n\t}\n\n\tprivate createCanvas(): HTMLCanvasElement {\n\t\treturn document.createElement('canvas');\n\t}\n\n\tprivate drawImage(canvas: HTMLCanvasElement, img: HTMLImageElement): void {\n\t\tconst context: CanvasRenderingContext2D = canvas.getContext('2d')!;\n\t\tcanvas.width = img.width;\n\t\tcanvas.height = img.height;\n\t\tcontext.drawImage(img, 0, 0, canvas.width, canvas.height);\n\t}\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class LoadingIndicatorService {\n\tshow: BehaviorSubject<void> = new BehaviorSubject<void>(undefined);\n\thide: BehaviorSubject<void> = new BehaviorSubject<void>(undefined);\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class LocalService {\n\tget<T>(key: string): T | null {\n\t\tlet result: T | null = null;\n\t\tconst local: string | null = localStorage.getItem(key);\n\t\tif (local) {\n\t\t\tresult = JSON.parse(local);\n\t\t}\n\t\treturn result;\n\t}\n\n\tset<T>(key: string, val: T): void {\n\t\tlocalStorage.setItem(key, JSON.stringify(val));\n\t}\n\n\tremove(key: string): void {\n\t\tlocalStorage.removeItem(key);\n\t}\n\n\tremoveAll(): void {\n\t\tlocalStorage.clear();\n\t}\n}\n","import { ComponentType, DomPortalOutlet, TemplatePortal } from '@angular/cdk/portal';\nimport { ComponentRef, Injectable, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { BaseModalComponent } from '../components';\n\n@Injectable({ providedIn: 'root' })\nexport class ModalService {\n\tprivate viewContainerRef?: ViewContainerRef;\n\tprivate portalHost!: DomPortalOutlet;\n\n\tinit(viewContainerRef: ViewContainerRef): void {\n\t\tthis.portalHost = new DomPortalOutlet(document.body);\n\t\tthis.viewContainerRef = viewContainerRef;\n\t}\n\n\tshowTemplate(templateRef: TemplateRef<unknown>): void {\n\t\tif (this.viewContainerRef) {\n\t\t\tconst newPortal: TemplatePortal = new TemplatePortal(templateRef, this.viewContainerRef);\n\t\t\tthis.portalHost.attach(newPortal);\n\t\t} else {\n\t\t\tthrow Error('no viewcontainer ref is set');\n\t\t}\n\t}\n\n\tshowComponent<T extends BaseModalComponent>(component: ComponentType<T>): ComponentRef<T> {\n\t\tif (!this.viewContainerRef) {\n\t\t\tthrow Error('no viewcontainer ref is set');\n\t\t}\n\t\treturn this.viewContainerRef.createComponent(component);\n\t}\n\n\thide(): void {\n\t\tthis.portalHost.detach();\n\t}\n}\n","import { ComponentPortal, DomPortalOutlet } from '@angular/cdk/portal';\nimport { ComponentFactoryResolver, ComponentRef, Injectable, ViewContainerRef, inject } from '@angular/core';\nimport { ToastComponent } from '../components';\n\n@Injectable({ providedIn: 'root' })\nexport class ToastService {\n\tprivate readonly componentFactoryResolver: ComponentFactoryResolver = inject(ComponentFactoryResolver);\n\tviewContainerRef?: ViewContainerRef;\n\tportalHost!: DomPortalOutlet;\n\n\tinit(viewContainerRef: ViewContainerRef): void {\n\t\tthis.portalHost = new DomPortalOutlet(document.body);\n\t\tthis.viewContainerRef = viewContainerRef;\n\t}\n\n\tshow(message: string, timeout: number = 1500): void {\n\t\tif (this.viewContainerRef) {\n\t\t\tif (this.portalHost.hasAttached()) {\n\t\t\t\tthis.portalHost.detach();\n\t\t\t}\n\n\t\t\tconst componentPortal: ComponentPortal<ToastComponent> = new ComponentPortal(\n\t\t\t\tToastComponent,\n\t\t\t\tthis.viewContainerRef,\n\t\t\t\tnull,\n\t\t\t\tthis.componentFactoryResolver\n\t\t\t);\n\t\t\tconst componentRef: ComponentRef<ToastComponent> = this.portalHost.attachComponentPortal(componentPortal);\n\t\t\tcomponentRef.instance.message = message;\n\t\t\tcomponentRef.instance.onClose.subscribe(() => {\n\t\t\t\tthis.hide();\n\t\t\t});\n\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.hide();\n\t\t\t}, timeout);\n\t\t} else {\n\t\t\tthrow Error('no viewcontainer ref is set');\n\t\t}\n\t}\n\n\thide(): void {\n\t\tthis.portalHost.detach();\n\t}\n}\n","import { Injectable } from '@angular/core';\nimport { LocalService } from './local.service';\n\n@Injectable({ providedIn: 'root' })\nexport class TokenService {\n\tconstructor(private localService: LocalService) {}\n\n\tget(key: 'accesstoken' | 'refreshtoken'): string | null {\n\t\treturn this.localService.get<string>(key);\n\t}\n\n\tset(key: 'accesstoken' | 'refreshtoken', token: string): void {\n\t\tthis.localService.set(key, token);\n\t}\n\n\tremove(key: 'accesstoken' | 'refreshtoken'): void {\n\t\tthis.localService.remove(key);\n\t}\n}\n","import { AbstractControl, FormArray, FormGroup, ValidationErrors } from '@angular/forms';\n\nexport function dateAfterValidator<T extends { [key: string]: AbstractControl }>(\n\tstartDateControlKey: keyof T & string\n): (control: AbstractControl) => ValidationErrors | null {\n\treturn (endDateControl: AbstractControl): ValidationErrors | null => {\n\t\tlet result: ValidationErrors | null = null;\n\n\t\tconst formGroup: FormGroup<T> | FormArray | null = endDateControl.parent;\n\t\tif (formGroup) {\n\t\t\tconst startDate: string | undefined = (formGroup as FormGroup).get(startDateControlKey)?.value;\n\t\t\tconst endDate: string = endDateControl.value;\n\n\t\t\tif (!startDate || !endDate) {\n\t\t\t\tresult = null;\n\t\t\t} else {\n\t\t\t\tconst start: Date = new Date(startDate);\n\t\t\t\tconst end: Date = new Date(endDate);\n\n\t\t\t\tresult = start < end ? null : { dateAfterInvalid: true, startDateValue: startDate };\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t};\n}\n","import { AbstractControl, FormArray, FormGroup, ValidationErrors } from '@angular/forms';\n\nexport function matchValidator<T extends { [key: string]: AbstractControl }>(\n\ttoMatchControlKey: keyof T & string\n): (control: AbstractControl) => ValidationErrors | null {\n\treturn (control: AbstractControl): ValidationErrors | null => {\n\t\tlet result: ValidationErrors | null = null;\n\n\t\tconst formGroup: FormGroup<T> | FormArray | null = control.parent;\n\t\tif (formGroup) {\n\t\t\tconst toMatchValue: unknown = (formGroup as FormGroup).get(toMatchControlKey)?.value;\n\t\t\tconst currentValue: unknown = control.value;\n\n\t\t\tif (!toMatchValue || !currentValue) {\n\t\t\t\tresult = null;\n\t\t\t} else {\n\t\t\t\tresult = toMatchValue === currentValue ? null : { match: true };\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t};\n}\n","import { AbstractControl, FormArray, FormGroup, ValidationErrors, ValidatorFn } from '@angular/forms';\n\nexport function timeAfterValidator<T extends { [key: string]: AbstractControl }>(startTimeControlKey: keyof T & string): ValidatorFn {\n\treturn (control: AbstractControl): ValidationErrors | null => {\n\t\tlet result: ValidationErrors | null = null;\n\n\t\tconst formGroup: FormGroup<T> | FormArray | null = control.parent;\n\t\tif (formGroup) {\n\t\t\tconst startTimeControl: AbstractControl | null = (formGroup as FormGroup).get(startTimeControlKey);\n\t\t\tif (startTimeControl) {\n\t\t\t\tif (!control.value || !startTimeControl.value) {\n\t\t\t\t\tresult = null; // Keine Validierung, wenn entweder Start- oder Endzeit fehlt\n\t\t\t\t}\n\n\t\t\t\tconst startTime: string = startTimeControl.value;\n\t\t\t\tconst endTime: string = control.value;\n\n\t\t\t\t// Umwandlung der Zeit in Minuten (z.B. 20:00 Uhr = 1200 Minuten)\n\t\t\t\tif (startTime && endTime) {\n\t\t\t\t\tconst startMinutes: number = convertToMinutes(startTime);\n\t\t\t\t\tconst endMinutes: number = convertToMinutes(endTime);\n\t\t\t\t\tif (endMinutes <= startMinutes) {\n\t\t\t\t\t\tresult = { timeAfterError: startTimeControl.value };\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t};\n}\n\n// Funktion zur Umwandlung von Zeit in Minuten\nfunction convertToMinutes(time: string): number {\n\tconst [hours, minutes] = time.split(':').map(Number);\n\treturn hours * 60 + minutes;\n}\n","/*\n * Public API Surface of ngx-gccb\n */\n\nexport * from './lib/animations';\nexport * from './lib/components';\nexport * from './lib/decorators';\n\nexport * from './lib/directives/autofocus.directive';\nexport * from './lib/directives/button.directive';\nexport * from './lib/directives/col.directive';\nexport * from './lib/directives/dropdown.directive';\nexport * from './lib/directives/form-input.directive';\nexport * from './lib/directives/form-label.directive';\nexport * from './lib/directives/form-select.directive';\nexport * from './lib/directives/icon-button.directive';\nexport * from './lib/directives/list-group-item-avatar.directive';\nexport * from './lib/directives/list-group-item.directive';\nexport * from './lib/directives/list-group.directive';\nexport * from './lib/directives/tooltip.directive';\n\nexport * from './lib/enums';\nexport * from './lib/pipe';\n\nexport * from './lib/services/image.service';\nexport * from './lib/services/loading-indicator.service';\nexport * from './lib/services/local.service';\nexport * from './lib/services/modal.service';\nexport * from './lib/services/toast.service';\nexport * from './lib/services/token.service';\n\nexport * from './lib/validators';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i1.LocalService"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export type DecoratorMethodType = (target: Object, key: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
2
- export type DecoratorClassType = (obj: Function) => void;
1
+ export type DecoratorMethodType = (target: object, key: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
2
+ export type DecoratorClassType = (obj: () => void) => void;
package/package.json CHANGED
@@ -1,25 +1,23 @@
1
1
  {
2
2
  "name": "ngx-gccb",
3
- "version": "0.7.0",
3
+ "version": "0.8.0",
4
4
  "peerDependencies": {
5
- "@angular/common": "^18.2.11",
6
- "@angular/core": "^18.2.11",
5
+ "@angular/common": "^19.1.5",
6
+ "@angular/core": "^19.1.5",
7
7
  "bootstrap": "^5.3.3",
8
- "@fortawesome/angular-fontawesome": "^0.15.0",
9
- "@fortawesome/fontawesome-svg-core": "^6.6.0",
10
- "@fortawesome/free-solid-svg-icons": "^6.6.0",
8
+ "@fortawesome/angular-fontawesome": "^1.0.0",
9
+ "@fortawesome/fontawesome-svg-core": "^6.7.2",
10
+ "@fortawesome/free-solid-svg-icons": "^6.7.2",
11
11
  "@popperjs/core": "^2.11.8"
12
12
  },
13
13
  "dependencies": {
14
- "tslib": "^2.3.0"
14
+ "tslib": "^2.8.1"
15
15
  },
16
16
  "sideEffects": false,
17
17
  "exports": {
18
18
  ".": {
19
19
  "sass": "./assets/styles.scss",
20
20
  "types": "./index.d.ts",
21
- "esm2022": "./esm2022/ngx-gccb.mjs",
22
- "esm": "./esm2022/ngx-gccb.mjs",
23
21
  "default": "./fesm2022/ngx-gccb.mjs"
24
22
  },
25
23
  "./package.json": {
@@ -1,6 +0,0 @@
1
- import { animate, style, transition, trigger } from '@angular/animations';
2
- export const FadeRightAnimation = trigger('fadeRightAnimation', [
3
- transition(':enter', [style({ transform: 'translateX(-100%)', zIndex: 9999 }), animate('200ms ease-in', style({ transform: 'translateX(0%)' }))]),
4
- transition(':leave', [animate('200ms ease-in', style({ transform: 'translateX(-100%)' }))]),
5
- ]);
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFkZS1yaWdodC5hbmltYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZ2NjYi9zcmMvbGliL2FuaW1hdGlvbnMvZmFkZS1yaWdodC5hbmltYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBNEIsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVwRyxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBNkIsT0FBTyxDQUFDLG9CQUFvQixFQUFFO0lBQ3pGLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLGVBQWUsRUFBRSxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNqSixVQUFVLENBQUMsUUFBUSxFQUFFLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFBRSxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztDQUMzRixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhbmltYXRlLCBBbmltYXRpb25UcmlnZ2VyTWV0YWRhdGEsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5cbmV4cG9ydCBjb25zdCBGYWRlUmlnaHRBbmltYXRpb246IEFuaW1hdGlvblRyaWdnZXJNZXRhZGF0YSA9IHRyaWdnZXIoJ2ZhZGVSaWdodEFuaW1hdGlvbicsIFtcblx0dHJhbnNpdGlvbignOmVudGVyJywgW3N0eWxlKHsgdHJhbnNmb3JtOiAndHJhbnNsYXRlWCgtMTAwJSknLCB6SW5kZXg6IDk5OTkgfSksIGFuaW1hdGUoJzIwMG1zIGVhc2UtaW4nLCBzdHlsZSh7IHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoMCUpJyB9KSldKSxcblx0dHJhbnNpdGlvbignOmxlYXZlJywgW2FuaW1hdGUoJzIwMG1zIGVhc2UtaW4nLCBzdHlsZSh7IHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoLTEwMCUpJyB9KSldKSxcbl0pO1xuIl19
@@ -1,6 +0,0 @@
1
- import { animate, style, transition, trigger } from '@angular/animations';
2
- export const FadeAnimation = trigger('fadeAnimation', [
3
- transition(':enter', [style({ opacity: 0, transform: 'translateY(10px)' }), animate('500ms', style({ opacity: 1, transform: 'translateY(0)' }))]),
4
- transition(':leave', [animate('500ms', style({ opacity: 0, transform: 'translateY(10px)' }))]),
5
- ]);
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFkZS11cC5hbmltYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZ2NjYi9zcmMvbGliL2FuaW1hdGlvbnMvZmFkZS11cC5hbmltYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBNEIsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVwRyxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQTZCLE9BQU8sQ0FBQyxlQUFlLEVBQUU7SUFDL0UsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLGtCQUFrQixFQUFFLENBQUMsRUFBRSxPQUFPLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2pKLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLGtCQUFrQixFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7Q0FDOUYsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYW5pbWF0ZSwgQW5pbWF0aW9uVHJpZ2dlck1ldGFkYXRhLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuXG5leHBvcnQgY29uc3QgRmFkZUFuaW1hdGlvbjogQW5pbWF0aW9uVHJpZ2dlck1ldGFkYXRhID0gdHJpZ2dlcignZmFkZUFuaW1hdGlvbicsIFtcblx0dHJhbnNpdGlvbignOmVudGVyJywgW3N0eWxlKHsgb3BhY2l0eTogMCwgdHJhbnNmb3JtOiAndHJhbnNsYXRlWSgxMHB4KScgfSksIGFuaW1hdGUoJzUwMG1zJywgc3R5bGUoeyBvcGFjaXR5OiAxLCB0cmFuc2Zvcm06ICd0cmFuc2xhdGVZKDApJyB9KSldKSxcblx0dHJhbnNpdGlvbignOmxlYXZlJywgW2FuaW1hdGUoJzUwMG1zJywgc3R5bGUoeyBvcGFjaXR5OiAwLCB0cmFuc2Zvcm06ICd0cmFuc2xhdGVZKDEwcHgpJyB9KSldKSxcbl0pO1xuIl19
@@ -1,3 +0,0 @@
1
- export * from './fade-right.animation';
2
- export * from './fade-up.animation';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZ2NjYi9zcmMvbGliL2FuaW1hdGlvbnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLHFCQUFxQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9mYWRlLXJpZ2h0LmFuaW1hdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL2ZhZGUtdXAuYW5pbWF0aW9uJztcbiJdfQ==
@@ -1,50 +0,0 @@
1
- /* eslint-disable no-console */
2
- /* eslint-disable @typescript-eslint/no-unused-vars */
3
- import { CommonModule } from '@angular/common';
4
- import { Component } from '@angular/core';
5
- import * as i0 from "@angular/core";
6
- export class DatePickerComponent {
7
- constructor() {
8
- this.currentDate = new Date();
9
- }
10
- // eslint-disable-next-line @angular-eslint/no-empty-lifecycle-method
11
- ngOnInit() {
12
- // const firstDayOfMonth: Date = this.currentDate.firstDayOfMonth();
13
- // console.warn(firstDayOfMonth, firstDayOfMonth.getDate(), firstDayOfMonth.getDay());
14
- // const weekCount: number = getWeekCount(this.currentDate.getFullYear(), this.currentDate.getMonth(), DayOfWeek.Monday);
15
- // console.warn(weekCount);
16
- // const weeks: unknown[] = [];
17
- // for (let i: number = 0; i <= weekCount; i++) {
18
- // for(let){
19
- // }
20
- // }
21
- }
22
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: DatePickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
23
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.11", type: DatePickerComponent, isStandalone: true, selector: "app-date-picker", ngImport: i0, template: "coming soon\n", dependencies: [{ kind: "ngmodule", type: CommonModule }] }); }
24
- }
25
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: DatePickerComponent, decorators: [{
26
- type: Component,
27
- args: [{ selector: 'app-date-picker', standalone: true, imports: [CommonModule], template: "coming soon\n" }]
28
- }] });
29
- var DayOfWeek;
30
- (function (DayOfWeek) {
31
- DayOfWeek[DayOfWeek["Sunday"] = 0] = "Sunday";
32
- DayOfWeek[DayOfWeek["Monday"] = 1] = "Monday";
33
- DayOfWeek[DayOfWeek["Tuesday"] = 2] = "Tuesday";
34
- DayOfWeek[DayOfWeek["Wednesday"] = 3] = "Wednesday";
35
- DayOfWeek[DayOfWeek["Thursday"] = 4] = "Thursday";
36
- DayOfWeek[DayOfWeek["Friday"] = 5] = "Friday";
37
- DayOfWeek[DayOfWeek["Saturday"] = 6] = "Saturday";
38
- })(DayOfWeek || (DayOfWeek = {}));
39
- function getWeekCount(year, month, startDayOfWeek) {
40
- // month_number is in the range 0..11
41
- // Get the first day of week week day (0: Sunday, 1: Monday, ...)
42
- const firstDayOfWeek = startDayOfWeek || DayOfWeek.Sunday;
43
- const firstOfMonth = new Date(year, month, 1);
44
- const lastOfMonth = new Date(year, month + 1, 0);
45
- const numberOfDaysInMonth = lastOfMonth.getDate();
46
- const firstWeekDay = (firstOfMonth.getDay() - firstDayOfWeek + 7) % 7;
47
- const used = firstWeekDay + numberOfDaysInMonth;
48
- return Math.ceil(used / 7);
49
- }
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWdjY2Ivc3JjL2xpYi9jb21wb25lbnRzL2RhdGUtcGlja2VyL2RhdGUtcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1nY2NiL3NyYy9saWIvY29tcG9uZW50cy9kYXRlLXBpY2tlci9kYXRlLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQkFBK0I7QUFDL0Isc0RBQXNEO0FBQ3RELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDOztBQVFsRCxNQUFNLE9BQU8sbUJBQW1CO0lBTmhDO1FBT0MsZ0JBQVcsR0FBUyxJQUFJLElBQUksRUFBRSxDQUFDO0tBYy9CO0lBWkEscUVBQXFFO0lBQ3JFLFFBQVE7UUFDUCxvRUFBb0U7UUFDcEUsc0ZBQXNGO1FBQ3RGLHlIQUF5SDtRQUN6SCwyQkFBMkI7UUFDM0IsK0JBQStCO1FBQy9CLGlEQUFpRDtRQUNqRCxZQUFZO1FBQ1osSUFBSTtRQUNKLElBQUk7SUFDTCxDQUFDOytHQWRXLG1CQUFtQjttR0FBbkIsbUJBQW1CLDJFQ1hoQyxlQUNBLDJDRFFXLFlBQVk7OzRGQUVWLG1CQUFtQjtrQkFOL0IsU0FBUzsrQkFDQyxpQkFBaUIsY0FFZixJQUFJLFdBQ1AsQ0FBQyxZQUFZLENBQUM7O0FBbUJ4QixJQUFLLFNBUUo7QUFSRCxXQUFLLFNBQVM7SUFDYiw2Q0FBWSxDQUFBO0lBQ1osNkNBQVksQ0FBQTtJQUNaLCtDQUFhLENBQUE7SUFDYixtREFBZSxDQUFBO0lBQ2YsaURBQWMsQ0FBQTtJQUNkLDZDQUFZLENBQUE7SUFDWixpREFBYyxDQUFBO0FBQ2YsQ0FBQyxFQVJJLFNBQVMsS0FBVCxTQUFTLFFBUWI7QUFFRCxTQUFTLFlBQVksQ0FBQyxJQUFZLEVBQUUsS0FBYSxFQUFFLGNBQXlCO0lBQzNFLHFDQUFxQztJQUVyQyxpRUFBaUU7SUFDakUsTUFBTSxjQUFjLEdBQWMsY0FBYyxJQUFJLFNBQVMsQ0FBQyxNQUFNLENBQUM7SUFDckUsTUFBTSxZQUFZLEdBQVMsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNwRCxNQUFNLFdBQVcsR0FBUyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN2RCxNQUFNLG1CQUFtQixHQUFXLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUMxRCxNQUFNLFlBQVksR0FBVyxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsR0FBRyxjQUFjLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzlFLE1BQU0sSUFBSSxHQUFXLFlBQVksR0FBRyxtQkFBbUIsQ0FBQztJQUV4RCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQzVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby1jb25zb2xlICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnMgKi9cbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICdhcHAtZGF0ZS1waWNrZXInLFxuXHR0ZW1wbGF0ZVVybDogJy4vZGF0ZS1waWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHRpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgRGF0ZVBpY2tlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cdGN1cnJlbnREYXRlOiBEYXRlID0gbmV3IERhdGUoKTtcblxuXHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWVtcHR5LWxpZmVjeWNsZS1tZXRob2Rcblx0bmdPbkluaXQoKTogdm9pZCB7XG5cdFx0Ly8gY29uc3QgZmlyc3REYXlPZk1vbnRoOiBEYXRlID0gdGhpcy5jdXJyZW50RGF0ZS5maXJzdERheU9mTW9udGgoKTtcblx0XHQvLyBjb25zb2xlLndhcm4oZmlyc3REYXlPZk1vbnRoLCBmaXJzdERheU9mTW9udGguZ2V0RGF0ZSgpLCBmaXJzdERheU9mTW9udGguZ2V0RGF5KCkpO1xuXHRcdC8vIGNvbnN0IHdlZWtDb3VudDogbnVtYmVyID0gZ2V0V2Vla0NvdW50KHRoaXMuY3VycmVudERhdGUuZ2V0RnVsbFllYXIoKSwgdGhpcy5jdXJyZW50RGF0ZS5nZXRNb250aCgpLCBEYXlPZldlZWsuTW9uZGF5KTtcblx0XHQvLyBjb25zb2xlLndhcm4od2Vla0NvdW50KTtcblx0XHQvLyBjb25zdCB3ZWVrczogdW5rbm93bltdID0gW107XG5cdFx0Ly8gZm9yIChsZXQgaTogbnVtYmVyID0gMDsgaSA8PSB3ZWVrQ291bnQ7IGkrKykge1xuXHRcdC8vIGZvcihsZXQpe1xuXHRcdC8vIH1cblx0XHQvLyB9XG5cdH1cbn1cblxuZW51bSBEYXlPZldlZWsge1xuXHQnU3VuZGF5JyA9IDAsXG5cdCdNb25kYXknID0gMSxcblx0J1R1ZXNkYXknID0gMixcblx0J1dlZG5lc2RheScgPSAzLFxuXHQnVGh1cnNkYXknID0gNCxcblx0J0ZyaWRheScgPSA1LFxuXHQnU2F0dXJkYXknID0gNixcbn1cblxuZnVuY3Rpb24gZ2V0V2Vla0NvdW50KHllYXI6IG51bWJlciwgbW9udGg6IG51bWJlciwgc3RhcnREYXlPZldlZWs6IERheU9mV2Vlayk6IG51bWJlciB7XG5cdC8vIG1vbnRoX251bWJlciBpcyBpbiB0aGUgcmFuZ2UgMC4uMTFcblxuXHQvLyBHZXQgdGhlIGZpcnN0IGRheSBvZiB3ZWVrIHdlZWsgZGF5ICgwOiBTdW5kYXksIDE6IE1vbmRheSwgLi4uKVxuXHRjb25zdCBmaXJzdERheU9mV2VlazogRGF5T2ZXZWVrID0gc3RhcnREYXlPZldlZWsgfHwgRGF5T2ZXZWVrLlN1bmRheTtcblx0Y29uc3QgZmlyc3RPZk1vbnRoOiBEYXRlID0gbmV3IERhdGUoeWVhciwgbW9udGgsIDEpO1xuXHRjb25zdCBsYXN0T2ZNb250aDogRGF0ZSA9IG5ldyBEYXRlKHllYXIsIG1vbnRoICsgMSwgMCk7XG5cdGNvbnN0IG51bWJlck9mRGF5c0luTW9udGg6IG51bWJlciA9IGxhc3RPZk1vbnRoLmdldERhdGUoKTtcblx0Y29uc3QgZmlyc3RXZWVrRGF5OiBudW1iZXIgPSAoZmlyc3RPZk1vbnRoLmdldERheSgpIC0gZmlyc3REYXlPZldlZWsgKyA3KSAlIDc7XG5cdGNvbnN0IHVzZWQ6IG51bWJlciA9IGZpcnN0V2Vla0RheSArIG51bWJlck9mRGF5c0luTW9udGg7XG5cblx0cmV0dXJuIE1hdGguY2VpbCh1c2VkIC8gNyk7XG59XG4iLCJjb21pbmcgc29vblxuIl19
@@ -1,2 +0,0 @@
1
- export * from './date-picker.component';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZ2NjYi9zcmMvbGliL2NvbXBvbmVudHMvZGF0ZS1waWNrZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx5QkFBeUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZGF0ZS1waWNrZXIuY29tcG9uZW50JztcbiJdfQ==
@@ -1,67 +0,0 @@
1
- import { CommonModule } from '@angular/common';
2
- import { Component, Input } from '@angular/core';
3
- import * as i0 from "@angular/core";
4
- export class FormErrorsComponent {
5
- constructor() {
6
- this.errors = null;
7
- // @Input() customErrorMessages?: IErrorMessage; // TODO
8
- this.errorMessages = [];
9
- this.errorMessageDictionary = {
10
- required: () => 'Field is required',
11
- requiredTrue: () => 'Field is required',
12
- email: () => 'Invalid E-Mail',
13
- min: (errors) => `At least ${errors['min']?.requiredLength} characters are required`,
14
- minlength: (errors) => `At least ${errors['minlength']?.requiredLength} characters are required`,
15
- max: (errors) => `Maximum of ${errors['max']?.requiredLength} characters exceeded`,
16
- maxlength: (errors) => `Maximum of ${errors['maxlength']?.requiredLength} characters exceeded`,
17
- pattern: () => `Input does not match pattern`,
18
- dateAfterInvalid: (errors) => `Date must be after ${errors?.['startDateValue']}`,
19
- match: () => `Input does not match!`,
20
- timeAfterError: (errors) => `The time must be after ${errors?.['timeAfterError']}`,
21
- };
22
- }
23
- ngOnChanges(changes) {
24
- if (changes['errors']) {
25
- const previousValue = changes['errors'].previousValue;
26
- const currentValue = changes['errors'].currentValue;
27
- if (JSON.stringify(previousValue) !== JSON.stringify(currentValue)) {
28
- this.errorMessages = [];
29
- for (const key in currentValue) {
30
- if (this.errorMessageDictionary[key]) {
31
- this.errorMessages.push(this.errorMessageDictionary[key](currentValue));
32
- }
33
- }
34
- }
35
- }
36
- }
37
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: FormErrorsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
38
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.11", type: FormErrorsComponent, isStandalone: true, selector: "app-form-errors", inputs: { errors: "errors" }, usesOnChanges: true, ngImport: i0, template: `
39
- <div class="invalid-feedback d-block">
40
- @if (errorMessages) {
41
- @for (errorMessage of errorMessages; track $index) {
42
- <div>{{ errorMessage }}</div>
43
- }
44
- }
45
- </div>
46
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }] }); }
47
- }
48
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: FormErrorsComponent, decorators: [{
49
- type: Component,
50
- args: [{
51
- selector: 'app-form-errors',
52
- template: `
53
- <div class="invalid-feedback d-block">
54
- @if (errorMessages) {
55
- @for (errorMessage of errorMessages; track $index) {
56
- <div>{{ errorMessage }}</div>
57
- }
58
- }
59
- </div>
60
- `,
61
- standalone: true,
62
- imports: [CommonModule],
63
- }]
64
- }], propDecorators: { errors: [{
65
- type: Input
66
- }] } });
67
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1lcnJvcnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWdjY2Ivc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vZm9ybS1lcnJvcnMvZm9ybS1lcnJvcnMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBNEIsTUFBTSxlQUFlLENBQUM7O0FBaUIzRSxNQUFNLE9BQU8sbUJBQW1CO0lBZGhDO1FBZVUsV0FBTSxHQUE0QixJQUFJLENBQUM7UUFDaEQsd0RBQXdEO1FBRXhELGtCQUFhLEdBQWEsRUFBRSxDQUFDO1FBa0I3QiwyQkFBc0IsR0FBa0I7WUFDdkMsUUFBUSxFQUFFLEdBQUcsRUFBRSxDQUFDLG1CQUFtQjtZQUNuQyxZQUFZLEVBQUUsR0FBRyxFQUFFLENBQUMsbUJBQW1CO1lBQ3ZDLEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQyxnQkFBZ0I7WUFDN0IsR0FBRyxFQUFFLENBQUMsTUFBd0IsRUFBRSxFQUFFLENBQUMsWUFBWSxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsY0FBYywwQkFBMEI7WUFDdEcsU0FBUyxFQUFFLENBQUMsTUFBd0IsRUFBRSxFQUFFLENBQUMsWUFBWSxNQUFNLENBQUMsV0FBVyxDQUFDLEVBQUUsY0FBYywwQkFBMEI7WUFDbEgsR0FBRyxFQUFFLENBQUMsTUFBd0IsRUFBRSxFQUFFLENBQUMsY0FBYyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsY0FBYyxzQkFBc0I7WUFDcEcsU0FBUyxFQUFFLENBQUMsTUFBd0IsRUFBRSxFQUFFLENBQUMsY0FBYyxNQUFNLENBQUMsV0FBVyxDQUFDLEVBQUUsY0FBYyxzQkFBc0I7WUFDaEgsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLDhCQUE4QjtZQUM3QyxnQkFBZ0IsRUFBRSxDQUFDLE1BQXdCLEVBQUUsRUFBRSxDQUFDLHNCQUFzQixNQUFNLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFO1lBQ2xHLEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQyx1QkFBdUI7WUFDcEMsY0FBYyxFQUFFLENBQUMsTUFBd0IsRUFBRSxFQUFFLENBQUMsMEJBQTBCLE1BQU0sRUFBRSxDQUFDLGdCQUFnQixDQUFDLEVBQUU7U0FDcEcsQ0FBQztLQUNGO0lBN0JBLFdBQVcsQ0FBQyxPQUFzQjtRQUNqQyxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQ3ZCLE1BQU0sYUFBYSxHQUFxQixPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsYUFBYSxDQUFDO1lBQ3hFLE1BQU0sWUFBWSxHQUFxQixPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsWUFBWSxDQUFDO1lBRXRFLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsS0FBSyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUM7Z0JBQ3BFLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO2dCQUN4QixLQUFLLE1BQU0sR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO29CQUNoQyxJQUFJLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO3dCQUN0QyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsR0FBRyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztvQkFDekUsQ0FBQztnQkFDRixDQUFDO1lBQ0YsQ0FBQztRQUNGLENBQUM7SUFDRixDQUFDOytHQXBCVyxtQkFBbUI7bUdBQW5CLG1CQUFtQiw4SEFackI7Ozs7Ozs7O0VBUVQsMkRBRVMsWUFBWTs7NEZBRVYsbUJBQW1CO2tCQWQvQixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxpQkFBaUI7b0JBQzNCLFFBQVEsRUFBRTs7Ozs7Ozs7RUFRVDtvQkFDRCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO2lCQUN2Qjs4QkFFUyxNQUFNO3NCQUFkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICdhcHAtZm9ybS1lcnJvcnMnLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxkaXYgY2xhc3M9XCJpbnZhbGlkLWZlZWRiYWNrIGQtYmxvY2tcIj5cblx0XHRcdEBpZiAoZXJyb3JNZXNzYWdlcykge1xuXHRcdFx0XHRAZm9yIChlcnJvck1lc3NhZ2Ugb2YgZXJyb3JNZXNzYWdlczsgdHJhY2sgJGluZGV4KSB7XG5cdFx0XHRcdFx0PGRpdj57eyBlcnJvck1lc3NhZ2UgfX08L2Rpdj5cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdDwvZGl2PlxuXHRgLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHRpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgRm9ybUVycm9yc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG5cdEBJbnB1dCgpIGVycm9yczogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPSBudWxsO1xuXHQvLyBASW5wdXQoKSBjdXN0b21FcnJvck1lc3NhZ2VzPzogSUVycm9yTWVzc2FnZTsgLy8gVE9ET1xuXG5cdGVycm9yTWVzc2FnZXM6IHN0cmluZ1tdID0gW107XG5cblx0bmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuXHRcdGlmIChjaGFuZ2VzWydlcnJvcnMnXSkge1xuXHRcdFx0Y29uc3QgcHJldmlvdXNWYWx1ZTogVmFsaWRhdGlvbkVycm9ycyA9IGNoYW5nZXNbJ2Vycm9ycyddLnByZXZpb3VzVmFsdWU7XG5cdFx0XHRjb25zdCBjdXJyZW50VmFsdWU6IFZhbGlkYXRpb25FcnJvcnMgPSBjaGFuZ2VzWydlcnJvcnMnXS5jdXJyZW50VmFsdWU7XG5cblx0XHRcdGlmIChKU09OLnN0cmluZ2lmeShwcmV2aW91c1ZhbHVlKSAhPT0gSlNPTi5zdHJpbmdpZnkoY3VycmVudFZhbHVlKSkge1xuXHRcdFx0XHR0aGlzLmVycm9yTWVzc2FnZXMgPSBbXTtcblx0XHRcdFx0Zm9yIChjb25zdCBrZXkgaW4gY3VycmVudFZhbHVlKSB7XG5cdFx0XHRcdFx0aWYgKHRoaXMuZXJyb3JNZXNzYWdlRGljdGlvbmFyeVtrZXldKSB7XG5cdFx0XHRcdFx0XHR0aGlzLmVycm9yTWVzc2FnZXMucHVzaCh0aGlzLmVycm9yTWVzc2FnZURpY3Rpb25hcnlba2V5XShjdXJyZW50VmFsdWUpKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRlcnJvck1lc3NhZ2VEaWN0aW9uYXJ5OiBJRXJyb3JNZXNzYWdlID0ge1xuXHRcdHJlcXVpcmVkOiAoKSA9PiAnRmllbGQgaXMgcmVxdWlyZWQnLFxuXHRcdHJlcXVpcmVkVHJ1ZTogKCkgPT4gJ0ZpZWxkIGlzIHJlcXVpcmVkJyxcblx0XHRlbWFpbDogKCkgPT4gJ0ludmFsaWQgRS1NYWlsJyxcblx0XHRtaW46IChlcnJvcnM6IFZhbGlkYXRpb25FcnJvcnMpID0+IGBBdCBsZWFzdCAke2Vycm9yc1snbWluJ10/LnJlcXVpcmVkTGVuZ3RofSBjaGFyYWN0ZXJzIGFyZSByZXF1aXJlZGAsXG5cdFx0bWlubGVuZ3RoOiAoZXJyb3JzOiBWYWxpZGF0aW9uRXJyb3JzKSA9PiBgQXQgbGVhc3QgJHtlcnJvcnNbJ21pbmxlbmd0aCddPy5yZXF1aXJlZExlbmd0aH0gY2hhcmFjdGVycyBhcmUgcmVxdWlyZWRgLFxuXHRcdG1heDogKGVycm9yczogVmFsaWRhdGlvbkVycm9ycykgPT4gYE1heGltdW0gb2YgJHtlcnJvcnNbJ21heCddPy5yZXF1aXJlZExlbmd0aH0gY2hhcmFjdGVycyBleGNlZWRlZGAsXG5cdFx0bWF4bGVuZ3RoOiAoZXJyb3JzOiBWYWxpZGF0aW9uRXJyb3JzKSA9PiBgTWF4aW11bSBvZiAke2Vycm9yc1snbWF4bGVuZ3RoJ10/LnJlcXVpcmVkTGVuZ3RofSBjaGFyYWN0ZXJzIGV4Y2VlZGVkYCxcblx0XHRwYXR0ZXJuOiAoKSA9PiBgSW5wdXQgZG9lcyBub3QgbWF0Y2ggcGF0dGVybmAsXG5cdFx0ZGF0ZUFmdGVySW52YWxpZDogKGVycm9yczogVmFsaWRhdGlvbkVycm9ycykgPT4gYERhdGUgbXVzdCBiZSBhZnRlciAke2Vycm9ycz8uWydzdGFydERhdGVWYWx1ZSddfWAsXG5cdFx0bWF0Y2g6ICgpID0+IGBJbnB1dCBkb2VzIG5vdCBtYXRjaCFgLFxuXHRcdHRpbWVBZnRlckVycm9yOiAoZXJyb3JzOiBWYWxpZGF0aW9uRXJyb3JzKSA9PiBgVGhlIHRpbWUgbXVzdCBiZSBhZnRlciAke2Vycm9ycz8uWyd0aW1lQWZ0ZXJFcnJvciddfWAsXG5cdH07XG59XG5cbmludGVyZmFjZSBJRXJyb3JNZXNzYWdlIHtcblx0W2tleTogc3RyaW5nXTogKGVycm9yOiBWYWxpZGF0aW9uRXJyb3JzKSA9PiBzdHJpbmc7XG59XG4iXX0=