@verisoft/ui-core 21.0.9 → 21.0.11

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.
@@ -277,18 +277,34 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImpor
277
277
  class DialogService {
278
278
  showEvent = new EventEmitter();
279
279
  closeEvent = new EventEmitter();
280
+ currentDialogData = null;
280
281
  showDialog(data) {
281
282
  const mappedData = this.mapInputAndOutpus(data);
282
- this.showEvent.emit({
283
+ const dialogData = {
283
284
  ...data,
284
285
  data: mappedData,
285
- });
286
+ };
287
+ this.currentDialogData = dialogData;
288
+ this.showEvent.emit(dialogData);
289
+ }
290
+ updateDialog(patch) {
291
+ if (!this.currentDialogData) {
292
+ return;
293
+ }
294
+ const mergedDialogData = {
295
+ ...this.currentDialogData,
296
+ ...patch,
297
+ data: this.currentDialogData.data,
298
+ componentType: this.currentDialogData.componentType,
299
+ };
300
+ this.currentDialogData = mergedDialogData;
301
+ this.showEvent.emit(mergedDialogData);
286
302
  }
287
303
  mapInputAndOutpus(data) {
288
304
  const inputsAndOutputs = data.data;
289
305
  return {
290
306
  ...data.data,
291
- ...(Object.keys(inputsAndOutputs ?? {})
307
+ ...Object.keys(inputsAndOutputs ?? {})
292
308
  .filter((key) => typeof inputsAndOutputs[key] === 'function')
293
309
  .reduce((acc, key) => {
294
310
  acc[key] = (value) => {
@@ -297,10 +313,11 @@ class DialogService {
297
313
  }
298
314
  };
299
315
  return acc;
300
- }, {})),
316
+ }, {}),
301
317
  };
302
318
  }
303
319
  closeModal() {
320
+ this.currentDialogData = null;
304
321
  this.closeEvent.emit();
305
322
  }
306
323
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: DialogService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
@@ -1 +1 @@
1
- {"version":3,"file":"verisoft-ui-core.mjs","sources":["../../../../../src/libs/ui-core/src/lib/common/angular-helper.ts","../../../../../src/libs/ui-core/src/lib/common/control.models.ts","../../../../../src/libs/ui-core/src/lib/common/constants.ts","../../../../../src/libs/ui-core/src/lib/common/datasource-component.model.ts","../../../../../src/libs/ui-core/src/lib/common/filter.ts","../../../../../src/libs/ui-core/src/lib/common/rxjs.ts","../../../../../src/libs/ui-core/src/lib/common/download-file.ts","../../../../../src/libs/ui-core/src/lib/components/action-button-group/action-button-group.model.ts","../../../../../src/libs/ui-core/src/lib/components/base-form/base-form-input.component.ts","../../../../../src/libs/ui-core/src/lib/services/screen-size.service.ts","../../../../../src/libs/ui-core/src/lib/services/confirm-dialog.service.ts","../../../../../src/libs/ui-core/src/lib/services/leave-form.service.ts","../../../../../src/libs/ui-core/src/lib/services/table.service.ts","../../../../../src/libs/ui-core/src/lib/components/base-form/models/base-form-input.models.ts","../../../../../src/libs/ui-core/src/lib/components/base-form/models/base-form.models.ts","../../../../../src/libs/ui-core/src/lib/components/base-form/base-form.component.ts","../../../../../src/libs/ui-core/src/lib/components/unsubscribe.component.ts","../../../../../src/libs/ui-core/src/lib/components/base-form/directives/detail-store.directive.ts","../../../../../src/libs/ui-core/src/lib/components/breadcrumb/breadcrumb.model.ts","../../../../../src/libs/ui-core/src/lib/components/breadcrumb/breadcrumb.service.ts","../../../../../src/libs/ui-core/src/lib/components/breadcrumb/breadcrumbcore.component.ts","../../../../../src/libs/ui-core/src/lib/components/button/button.model.ts","../../../../../src/libs/ui-core/src/lib/components/dropdown-button/dropdown-button.model.ts","../../../../../src/libs/ui-core/src/lib/components/calendar/calendar.model.ts","../../../../../src/libs/ui-core/src/lib/components/checkbox/checkbox.model.ts","../../../../../src/libs/ui-core/src/lib/components/confirm-dialog/confirm-dialog.model.ts","../../../../../src/libs/ui-core/src/lib/components/dropdown/dropdown.model.ts","../../../../../src/libs/ui-core/src/lib/components/filter/filter.model.ts","../../../../../src/libs/ui-core/src/lib/components/form-field/form-field.model.ts","../../../../../src/libs/ui-core/src/lib/components/generic-field/generic-field.model.ts","../../../../../src/libs/ui-core/src/lib/components/generic-form/generic-form.component.ts","../../../../../src/libs/ui-core/src/lib/components/header/header.model.ts","../../../../../src/libs/ui-core/src/lib/components/input-group/input-group.model.ts","../../../../../src/libs/ui-core/src/lib/components/loader/loader.model.ts","../../../../../src/libs/ui-core/src/lib/components/multiselect/mutiselect.model.ts","../../../../../src/libs/ui-core/src/lib/components/number-input/number-input.model.ts","../../../../../src/libs/ui-core/src/lib/components/page-header/page-header.model.ts","../../../../../src/libs/ui-core/src/lib/components/page-header/page-header.service.ts","../../../../../src/libs/ui-core/src/lib/components/page-header/page-headercore.component.ts","../../../../../src/libs/ui-core/src/lib/components/password/password.model.ts","../../../../../src/libs/ui-core/src/lib/components/radiobutton/radiobutton.model.ts","../../../../../src/libs/ui-core/src/lib/components/section/section.model.ts","../../../../../src/libs/ui-core/src/lib/components/side-menu/side-menu.model.ts","../../../../../src/libs/ui-core/src/lib/components/side-menu/services/side-menu.service.ts","../../../../../src/libs/ui-core/src/lib/components/side-menu/services/side-menu-provider.service.ts","../../../../../src/libs/ui-core/src/lib/components/side-menu/directives/side-menu-service.directive.ts","../../../../../src/libs/ui-core/src/lib/components/slider/slider.model.ts","../../../../../src/libs/ui-core/src/lib/components/snackbar/snackbar.model.ts","../../../../../src/libs/ui-core/src/lib/components/stepper/stepper.model.ts","../../../../../src/libs/ui-core/src/lib/components/switch/switch.model.ts","../../../../../src/libs/ui-core/src/lib/components/tab-view/tab-view.model.ts","../../../../../src/libs/ui-core/src/lib/components/table/table.models.ts","../../../../../src/libs/ui-core/src/lib/components/table/table-column.directive.ts","../../../../../src/libs/ui-core/src/lib/components/table/column-configuration.ts","../../../../../src/libs/ui-core/src/lib/components/table/table-builder.ts","../../../../../src/libs/ui-core/src/lib/components/table-filter/table-filter.model.ts","../../../../../src/libs/ui-core/src/lib/components/textarea/textarea.model.ts","../../../../../src/libs/ui-core/src/lib/components/textfield/textfield.model.ts","../../../../../src/libs/ui-core/src/lib/components/tooltip/tooltip.model.ts","../../../../../src/libs/ui-core/src/lib/components/icons/icons.model.ts","../../../../../src/libs/ui-core/src/lib/components/icons/icons.component.ts","../../../../../src/libs/ui-core/src/lib/components/tag/tag.model.ts","../../../../../src/libs/ui-core/src/lib/directives/datasource.directive.ts","../../../../../src/libs/ui-core/src/lib/directives/table-datasource.directive.ts","../../../../../src/libs/ui-core/src/lib/directives/shortcut.directive.ts","../../../../../src/libs/ui-core/src/lib/directives/table-filter.directive.ts","../../../../../src/libs/ui-core/src/lib/pipes/error/error.codes.ts","../../../../../src/libs/ui-core/src/lib/pipes/error/error.models.ts","../../../../../src/libs/ui-core/src/lib/pipes/error/error.pipe.ts","../../../../../src/libs/ui-core/src/lib/pipes/error/warning.codes.ts","../../../../../src/libs/ui-core/src/lib/pipes/error/warning.pipe.ts","../../../../../src/libs/ui-core/src/lib/pipes/keyOrFn/keyOrFn.pipe.ts","../../../../../src/libs/ui-core/src/lib/pipes/helper/enumToList.pipe.ts","../../../../../src/libs/ui-core/src/lib/format/format.ts","../../../../../src/libs/ui-core/src/verisoft-ui-core.ts"],"sourcesContent":["import { OnChanges, SimpleChange, SimpleChanges } from '@angular/core';\r\n\r\nexport function setComponentProperties<TComponent>(\r\n component: TComponent,\r\n value: Partial<TComponent>,\r\n firstChange = false\r\n) {\r\n if (!value || !component) {\r\n return;\r\n }\r\n\r\n const simpleChanges = Object.keys(value).reduce(\r\n (changes: SimpleChanges, property: string) => {\r\n const indexedComponent = component as unknown as {\r\n [key: string]: TComponent[keyof TComponent];\r\n };\r\n const indexedValue = value as unknown as {\r\n [key: string]: TComponent[keyof TComponent];\r\n };\r\n const previousValue = indexedComponent[property];\r\n const currentValue = indexedValue[\r\n property\r\n ] as TComponent[keyof TComponent];\r\n if (currentValue !== previousValue) {\r\n indexedComponent[property] = currentValue;\r\n const change = new SimpleChange(\r\n previousValue,\r\n currentValue,\r\n firstChange\r\n );\r\n\r\n return { ...changes, [property]: change };\r\n }\r\n\r\n return changes;\r\n },\r\n {}\r\n );\r\n\r\n const changeableComponent = component as unknown as OnChanges;\r\n if (changeableComponent['ngOnChanges']) {\r\n changeableComponent.ngOnChanges(simpleChanges);\r\n }\r\n}\r\n","export enum ControlSeverity {\r\n success = 'success',\r\n info = 'info',\r\n warning = 'warning',\r\n danger = 'danger',\r\n help = 'help',\r\n primary = 'primary',\r\n secondary = 'secondary',\r\n contrast = 'contrast',\r\n}\r\n\r\nexport enum GovControlSeverity {\r\n primary = 'primary',\r\n secondary = 'secondary',\r\n neutral = 'neutral',\r\n error = 'error',\r\n success = 'success',\r\n warning = 'warning',\r\n}\r\n\r\nexport enum GovButtonType {\r\n solid = 'solid',\r\n outlined = \"outlined\",\r\n base = \"base\",\r\n link = \"link\"\r\n}\r\n\r\nexport enum IconPosition {\r\n left = 'left',\r\n right = 'right',\r\n}\r\n\r\nexport enum SlotPosition {\r\n top = 'top',\r\n bottom = 'bottom',\r\n}\r\n\r\nexport enum Position{\r\n top = 'top',\r\n bottom = 'bottom',\r\n left = 'left',\r\n right = 'right',\r\n}\r\n\r\nexport enum FieldSize {\r\n small = 'small',\r\n medium = 'medium',\r\n large = 'large',\r\n xl = 'xl',\r\n}\r\n\r\nexport enum FieldAlign {\r\n left = 'left',\r\n center = 'center',\r\n right = 'right',\r\n}\r\n\r\nexport enum FieldType {\r\n text = 'text',\r\n number = 'number',\r\n password = 'password',\r\n search = 'search',\r\n date = 'date',\r\n}\r\n\r\nexport enum LayoutType {\r\n horizontal = 'horizontal',\r\n vertical = 'vertical',\r\n}\r\n\r\nexport type ControlSeverityType = keyof typeof ControlSeverity;\r\nexport type GovControlSeverityType = keyof typeof GovControlSeverity;\r\nexport type GovButtonTypeType = keyof typeof GovButtonType;\r\nexport type IconPositionType = keyof typeof IconPosition;\r\nexport type SlotPositionType = keyof typeof SlotPosition;\r\nexport type PositionType = keyof typeof Position;\r\nexport type FieldSizeType = keyof typeof FieldSize;\r\nexport type FieldAlignType = keyof typeof FieldAlign;\r\nexport type FieldTypeType = keyof typeof FieldType;\r\nexport type LayoutTypeType = keyof typeof LayoutType;\r\n","export const DEFAULT_DEBOUNCE_TIME = 300;\n\nexport const DEFAULT_PAGINATION = [10, 25, 50, 100];\n\nexport const MAX_COLUMN_CHAR_COUNT = 30;","import { EventEmitter, SimpleChanges } from '@angular/core';\r\nimport { FilterEvent, LazyLoadEvent, RequestParams } from '@verisoft/core';\r\n\r\nexport interface DataSourceComponentModel<TEntity> {\r\n ngOnChanges?: (changes: SimpleChanges) => void;\r\n lazy: boolean;\r\n loading: boolean;\r\n filter: boolean;\r\n options: TEntity[] | undefined;\r\n optionValue: string | undefined;\r\n optionLabel: string | undefined;\r\n showed: EventEmitter<any>;\r\n cleared: EventEmitter<any>;\r\n filtered: EventEmitter<FilterEvent>;\r\n lazyLoad: EventEmitter<LazyLoadEvent>;\r\n}\r\n\r\nexport function setDataToArray<T>(\r\n targetArray: (T | undefined)[] | undefined,\r\n data: T[],\r\n offset = 0,\r\n total: number | undefined = undefined,\r\n defaultItem: T | undefined = undefined\r\n): (T | undefined)[] {\r\n const totalItems = total ?? data.length + offset;\r\n if (!targetArray) {\r\n targetArray = Array(totalItems).fill(defaultItem);\r\n }\r\n\r\n if (targetArray.length < totalItems) {\r\n targetArray = targetArray.concat(\r\n new Array(totalItems - targetArray.length).fill(defaultItem)\r\n );\r\n }\r\n\r\n for (let i = 0; i < data.length; i++) {\r\n targetArray[i + offset] = data[i] ?? defaultItem;\r\n }\r\n\r\n return targetArray;\r\n}\r\n\r\nexport type ExtendedRequestType<T> = RequestParams<T> & { useNewData: boolean}\r\n","export function isFilterEmpty<T>(filter: Partial<T> | undefined) {\r\n if (filter == undefined) {\r\n return true;\r\n }\r\n\r\n return !Object.entries(filter).some((x) => x[1] != undefined);\r\n}\r\n","import { QueryList } from '@angular/core';\r\nimport { debounceTime, map, merge, startWith, switchMap } from 'rxjs';\r\nimport { NotificableProperty } from './notificable-property.model';\r\n\r\nexport function queryListChanged<TEntity>(list: QueryList<TEntity>) {\r\n return list.changes.pipe(\r\n startWith({}),\r\n switchMap(() => {\r\n const actionPropertyChanges$ = list\r\n .toArray()\r\n .filter((action) => (<NotificableProperty>action).propertyChanged)\r\n .map((action) => (<NotificableProperty>action).propertyChanged);\r\n\r\n return merge(...actionPropertyChanges$).pipe(\r\n startWith({}),\r\n map(() => list.toArray())\r\n );\r\n }),\r\n debounceTime(50)\r\n );\r\n}\r\n","export function downloadText(\r\n filename: string,\r\n text: string,\r\n mimeType: string | undefined = 'text/plain'\r\n): void {\r\n const blob = new Blob([text], { type: mimeType });\r\n downloadFile(filename, blob);\r\n}\r\n\r\nexport function downloadFile(\r\n filename: string,\r\n blob: Blob\r\n): void {\r\n const url = window.URL.createObjectURL(blob);\r\n const a = document.createElement('a');\r\n a.href = url;\r\n a.download = filename;\r\n a.click();\r\n window.URL.revokeObjectURL(url);\r\n}\r\n","import { InjectionToken } from '@angular/core';\nimport { IconPositionType } from '../../common';\nimport { ActionButton } from './action-button.model';\n\nexport const ACTION_BUTTON_GROUP_COMPONENT_TOKEN =\n new InjectionToken<ActionButtonGroupCore>('ActionButtonGroupComponentToken');\n\nexport interface ActionButtonGroupCore {\n maxItems: number;\n maxItemsMobile: number;\n items: ActionButton[];\n menuIconPos: IconPositionType;\n menuIcon: string;\n label?: string;\n showLabels: boolean;\n}\n","\nimport { Component, inject, Input, OnInit } from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n FormControl,\n FormControlDirective,\n FormControlName,\n FormGroupDirective,\n NgControl,\n NgModel,\n ReactiveFormsModule,\n} from '@angular/forms';\nimport { ERROR_PROVIDER_TOKEN } from '@verisoft/core';\nimport { BaseInputControls } from './models/base-form-input.models';\n\nconst noop = () => {\n /* */\n};\n\n@Component({\n template: '',\n imports: [ReactiveFormsModule]\n})\nexport class BaseFormInputComponent\n implements BaseInputControls<any>, ControlValueAccessor, OnInit\n{\n readonly ngControl?: NgControl;\n\n readonly errorService = inject(ERROR_PROVIDER_TOKEN);\n\n formControl!: FormControl;\n\n constructor(private readonly control: NgControl) {\n this.ngControl = control;\n if (this.control) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n @Input()\n label?: string;\n\n @Input()\n required = false;\n\n @Input()\n readonly!: boolean;\n\n @Input()\n disabled!: boolean;\n\n @Input()\n tooltip!: string;\n\n @Input()\n formDisplay: 'flex' | 'block' = 'flex';\n\n @Input()\n clearable = true;\n\n @Input()\n placeholder?: string = '';\n\n @Input()\n testId?: string;\n\n inputId = Math.random().toString(36).substring(2);\n\n selectionChanged: any = noop;\n\n onTouch: any = noop;\n\n registerOnChange(fn: any): void {\n this.selectionChanged = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouch = fn;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n writeValue(value: any): void {}\n\n ngOnInit(): void {\n if (this.ngControl) {\n if (this.ngControl instanceof FormControlName) {\n this.formControl =\n this.ngControl.control ||\n ((this.ngControl.formDirective as FormGroupDirective)?.form.controls[\n this.ngControl.name as string\n ] as FormControl);\n } else if (\n this.ngControl instanceof FormControlDirective ||\n this.ngControl instanceof NgModel\n ) {\n this.formControl = this.ngControl.control;\n if (this.ngControl instanceof NgModel) {\n this.formControl.valueChanges.subscribe(() =>\n this.ngControl?.viewToModelUpdate(this.control?.value)\n );\n }\n } else {\n this.formControl = new FormControl();\n }\n } else {\n this.formControl = new FormControl();\n }\n }\n\n isRequired() {\n if (this.ngControl) {\n const validator = this.ngControl?.control?.validator?.(\n {} as AbstractControl\n );\n return this.required || (validator && validator['required']);\n }\n return this.required;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ScreenSizeService {\n isMobileBlock = new BehaviorSubject<boolean>(false);\n prevState = false;\n\n constructor() {\n this.checkScreenSize();\n window.addEventListener('resize', async () => {\n await this.checkScreenSize();\n });\n }\n\n async checkScreenSize() {\n const isMobile = window.matchMedia('(max-width: 768px)').matches;\n if (isMobile !== this.prevState) {\n this.prevState = isMobile;\n this.isMobileBlock.next(isMobile);\n }\n }\n}\n","import { EventEmitter, Injectable, Output } from '@angular/core';\nimport { ExtendedDialogData } from '../components';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DialogService {\n @Output() showEvent: EventEmitter<ExtendedDialogData> =\n new EventEmitter<ExtendedDialogData>();\n\n @Output() closeEvent: EventEmitter<null> = new EventEmitter();\n\n showDialog<TInputs, TOutputs>(data: ExtendedDialogData<TInputs, TOutputs>): void {\n const mappedData = this.mapInputAndOutpus(data);\n\n this.showEvent.emit({\n ...data,\n data: mappedData,\n });\n }\n\n private mapInputAndOutpus<TInputs, TOutputs>(\n data: ExtendedDialogData<TInputs, TOutputs>\n ): ExtendedDialogData<TInputs, TOutputs> {\n const inputsAndOutputs = data.data as TInputs & TOutputs;\n return {\n ...data.data,\n ...(Object.keys(inputsAndOutputs ?? {})\n .filter((key) => typeof inputsAndOutputs[key as keyof TOutputs] === 'function')\n .reduce((acc, key) => {\n acc[key] = (value: any) => {\n if (typeof inputsAndOutputs[key as keyof TOutputs] === 'function') {\n (inputsAndOutputs[key as keyof TOutputs] as (value: any) => void)(value);\n }\n };\n return acc;\n }, {} as Record<string, any>)),\n };\n }\n\n closeModal(): void {\n this.closeEvent.emit();\n }\n}\n","import { Injectable, inject } from '@angular/core';\nimport { CanDeactivate } from '@angular/router';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Observable, Subject } from 'rxjs';\nimport { PreventUnsavedChangesCore, CommonIcons } from '../common';\nimport { DialogService } from './confirm-dialog.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PreventUnsavedChangesDirective implements CanDeactivate<PreventUnsavedChangesCore> {\n private dialogService = inject(DialogService);\n private translateService = inject(TranslateService);\n private readonly Icons!: CommonIcons;\n\n canDeactivate(component: PreventUnsavedChangesCore): Observable<boolean> | Promise<boolean> | boolean {\n if (!component || !component.canDeactivate) {\n return true;\n }\n const result = component.canDeactivate();\n return result;\n }\n\n showConfirmationDialog(): Observable<boolean> {\n const resultSubject = new Subject<boolean>();\n\n const title = this.translateService.instant('VALIDATIONS.UNSAVED_CHANGES');\n const message = this.translateService.instant('VALIDATIONS.LEAVING_UNSAVED_FORM');\n const leaveButton = this.translateService.instant('BUTTONS.LEAVE');\n const stayButton = this.translateService.instant('BUTTONS.STAY');\n\n this.dialogService.showDialog({\n title: title,\n headerIcon: this.Icons.infoCircle,\n innerHTML: `<p>${message}</p>`,\n showCancelButton: true,\n confirmButtonText: stayButton,\n cancelButtonText: leaveButton,\n confirmButtonFn: () => {\n resultSubject.next(false);\n resultSubject.complete();\n this.dialogService.closeModal();\n },\n cancelButtonFn: () => {\n resultSubject.next(true);\n resultSubject.complete();\n this.dialogService.closeModal();\n },\n });\n\n return resultSubject.asObservable();\n }\n}\n","import { Injectable, signal } from \"@angular/core\";\nimport { TableSignal } from \"../components\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class TableService {\n readonly reload = signal<TableSignal | symbol>(Symbol())\n\n /**\n * If name is set, reload a specific table with the set`[tableName]`\n *\n * If name is NOT set, reload all tables in the current DOM\n * */\n forceReload(name?: string): void {\n if (name) {\n this.reload.set({ name: name, symbol: Symbol() });\n } else {\n this.reload.set(Symbol());\n }\n }\n}\n","import { NgControl } from '@angular/forms';\n\nexport abstract class BaseInputControls<T> {\n value?: T | null;\n\n readonly ngControl?: NgControl;\n\n readonly label?: string;\n\n readonly required!: boolean;\n}\n","export interface BaseFormCore {\n label?: string;\n required: boolean;\n readonly: boolean;\n tooltip: string;\n formDisplay: 'flex' | 'block';\n clearable: boolean;\n placeholder?: string\n testId?: string;\n}\n\nexport interface BaseFormDirectiveCore<T> {\n initialData: T | any;\n}\n\nexport interface FormState {\n dirty: boolean;\n valid: boolean;\n}\n\nexport function isFormStateEqual(current: FormState, other: FormState) {\n if (!current && !other) {\n return true;\n }\n\n if (current && other) {\n return current.dirty === other.dirty && current.valid === other.valid;\n }\n\n return false;\n}\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Directive,\n EventEmitter,\n HostListener,\n inject,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n ViewChild,\n} from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { Subject, takeUntil, filter, map, Observable } from 'rxjs';\nimport { PreventUnsavedChangesCore } from '../../common';\nimport { PreventUnsavedChangesDirective } from '../../services';\nimport { FormState, isFormStateEqual } from './models';\nimport { cloneDeep } from '@verisoft/core';\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[v-baseForm]',\n standalone: true,\n})\nexport abstract class BaseFormDirective<T extends object>\n implements OnInit, OnChanges, OnDestroy, AfterViewInit, PreventUnsavedChangesCore\n{\n @Input() data!: T | any;\n @Output() dataChange = new EventEmitter<T>();\n @Output() statusChange = new EventEmitter<FormState>();\n @Output() formSubmit = new EventEmitter<T>();\n @Output() formClear = new EventEmitter<void>();\n\n formDestroyed$ = new Subject<void>();\n keys: { key: string; alias?: string; type?: string; readOnly: string }[] = [];\n formGroup!: FormGroup;\n cd = inject(ChangeDetectorRef);\n valueInitialization = false;\n lastState!: FormState;\n guardViewChild!: ViewChild;\n formSubmitted = false;\n protected guard = inject(PreventUnsavedChangesDirective);\n\n @HostListener('window:beforeunload', ['$event'])\n unloadHandler(event: BeforeUnloadEvent) {\n if (this.formGroup.dirty) {\n event.preventDefault();\n }\n }\n\n canDeactivate(): Observable<boolean> | Promise<boolean> | boolean {\n if (this.formGroup.dirty && !this.formSubmitted) {\n const result = this.guard.showConfirmationDialog();\n return result;\n }\n\n return true;\n }\n\n ngOnInit(): void {\n this.initializeFormGroup();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['data'] && this.formGroup) {\n this.valueInitialization = true;\n const dirty = this.formGroup.dirty;\n\n this.formGroup.patchValue(this.fromModel(this.data), {\n emitEvent: false,\n onlySelf: true,\n });\n\n this.formGroup.updateValueAndValidity();\n if (!dirty) {\n this.formGroup.markAsPristine();\n }\n\n this.valueInitialization = false;\n this.createAndEmitIfFormStateChanged();\n }\n }\n\n ngAfterViewInit() {\n this.cd.detectChanges();\n }\n\n ngOnDestroy(): void {\n this.formDestroyed$.next();\n this.formDestroyed$.complete();\n }\n\n abstract createFormGroup(): FormGroup;\n\n createCompleteData() {\n const change = this.toModel(this.formGroup?.value);\n this.recursiveObjectAttributesTransformation(change);\n const updatedData = this.applyChanges(\n cloneDeep(this.data),\n cloneDeep(change)\n );\n\n return updatedData;\n }\n\n submit() {\n this.formSubmitted = true;\n this.formGroup.markAllAsTouched();\n if (!this.formGroup.invalid) {\n this.formSubmit.emit(this.createCompleteData());\n }\n this.formGroup.markAsPristine();\n }\n\n clear() {\n this.formClear.emit();\n }\n\n private initializeFormGroup() {\n this.formGroup = this.createFormGroup();\n this.valueInitialization = true;\n this.formGroup.patchValue(this.fromModel(this.data), {\n emitEvent: false,\n onlySelf: true,\n });\n\n this.formGroup.markAsPristine();\n this.initValueChanges();\n this.initStatusChanges();\n this.valueInitialization = false;\n }\n\n private initValueChanges() {\n this.formGroup.valueChanges\n .pipe(\n takeUntil(this.formDestroyed$),\n filter(() => !this.valueInitialization),\n map((value) => {\n const change = this.toModel(value);\n this.recursiveObjectAttributesTransformation(change);\n const updatedData = this.applyChanges(\n cloneDeep(this.data),\n cloneDeep(change)\n );\n return updatedData;\n })\n )\n .subscribe((updatedData) => {\n this.dataChange.emit(updatedData);\n });\n }\n\n private initStatusChanges() {\n this.formGroup.statusChanges\n .pipe(takeUntil(this.formDestroyed$))\n .subscribe(() => {\n if (!this.valueInitialization) {\n this.createAndEmitIfFormStateChanged();\n }\n });\n\n this.createAndEmitIfFormStateChanged();\n }\n\n private createAndEmitIfFormStateChanged() {\n const formState: FormState = {\n valid: !this.formGroup.invalid,\n dirty: this.formGroup.dirty,\n };\n\n if (!isFormStateEqual(formState, this.lastState)) {\n this.lastState = formState;\n this.statusChange.emit(formState);\n }\n }\n\n protected applyChanges(data: T, changes: Partial<T>): T {\n return Object.assign(data || ({} as T), changes);\n }\n\n protected toModel(data: T): Partial<T> {\n return data || {};\n }\n\n protected fromModel(data: T): T {\n return { ...(data || {}) } as T;\n }\n\n private recursiveObjectAttributesTransformation(obj: any): void {\n this.recursiveObjectAttributesTraversal(\n obj,\n this.transformEmptyStringToNullStringFn\n );\n }\n\n private recursiveObjectAttributesTraversal(\n obj: any,\n transformationFn: (obj: any, key: string) => void\n ) {\n if (\n obj === null ||\n transformationFn === null ||\n typeof transformationFn !== 'function'\n ) {\n return;\n }\n\n const traverse = (obj: any) => {\n for (const key in obj) {\n // eslint-disable-next-line no-prototype-builtins\n if (obj.hasOwnProperty(key)) {\n transformationFn(obj, key);\n\n if (typeof obj[key] === 'object') {\n traverse(obj[key]);\n }\n }\n }\n };\n\n traverse(obj);\n }\n\n private transformEmptyStringToNullStringFn(obj: any, key: string) {\n // if empty string - transformation to null string\n if (typeof obj[key] === 'string' && obj[key] === '') {\n try {\n obj[key] = null;\n } catch (error) {\n console.error(`Cannot modify ${key}: ${error}`)\n }\n }\n }\n}\n","import { Directive, OnDestroy } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Directive()\nexport abstract class UnsubscribeComponent implements OnDestroy {\n destroyed$ = new Subject<void>();\n\n ngOnDestroy() {\n this.destroyed$.next();\n this.destroyed$.complete();\n }\n}\n","import {\n Directive,\n AfterViewInit,\n inject,\n Input,\n OnInit,\n ChangeDetectorRef,\n OnDestroy,\n} from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { createFeatureSelector, createSelector, Store } from '@ngrx/store';\nimport {\n BackendValidationError,\n createInitDetailAction,\n createInitNewDetailAction,\n createResetStateAction,\n createUpdateDetailAction,\n createUpdateDetailSetErrorsAction,\n createUpdateFormStateAction,\n DetailState,\n} from '@verisoft/store';\nimport { takeUntil } from 'rxjs';\nimport { UnsubscribeComponent } from '../../unsubscribe.component';\nimport { BaseFormDirective } from '../base-form.component';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[v-useDetailStore]',\n exportAs: 'useDetailStore',\n standalone: true,\n})\nexport class DetailStoreDirective\n extends UnsubscribeComponent\n implements OnInit, AfterViewInit, OnDestroy\n{\n @Input({ required: true }) form!: BaseFormDirective<any>;\n\n @Input({ required: true }) detailsRepository!: string;\n\n @Input() autoBind = true;\n\n @Input() detailId!: string | number | undefined;\n\n @Input({ required: true }) ngrxFeatureKey!: string;\n\n @Input() destroyForm = true;\n\n @Input() readonly = false;\n\n @Input() readonlyControlNames: string[] = [];\n\n store = inject(Store);\n cdr = inject(ChangeDetectorRef);\n route = inject(ActivatedRoute);\n\n private itemCache: any = null;\n private loaded!: boolean;\n\n ngOnInit(): void {\n if (!this.loaded) {\n this.listenFormState();\n }\n this.listenFormChange();\n this.listenFormStatusChange();\n }\n\n ngAfterViewInit(): void {\n if (this.autoBind && !this.loaded) {\n this.initForm();\n }\n }\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n if (this.destroyForm) {\n this.store.dispatch(createResetStateAction(this.detailsRepository)());\n }\n }\n\n private initForm() {\n if (this.detailId === 'create') {\n this.store.dispatch(createInitNewDetailAction(this.detailsRepository)());\n } else {\n this.store.dispatch(\n createInitDetailAction(this.detailsRepository)({ obj: this.detailId })\n );\n }\n\n if (this.readonly) {\n this.form.formGroup.disable();\n return;\n }\n\n this.readonlyControlNames.forEach(x => {\n this.form.formGroup.get(x)?.disable();\n });\n }\n\n private listenFormState() {\n const selectIncomeData = createSelector(\n createFeatureSelector<any>(this.ngrxFeatureKey),\n (state: any) => state?.[this.detailsRepository] as DetailState<any>\n );\n this.store\n .select(selectIncomeData)\n .pipe(takeUntil(this.destroyed$))\n .subscribe(\n (\n { item, loaded, backendValidationErrors } = {\n item: undefined,\n loaded: false,\n saveItemState: { saveInProgress: false },\n backendValidationErrors: []\n }\n ) => {\n if (item\n && ((item.validationErrors || item.validationWarnings) && !this.form.formGroup.dirty)\n || backendValidationErrors.length\n ) {\n this.handleValidation(\n 'propertyName',\n item.validationWarnings || [],\n 'validationWarning',\n 'warningMessage'\n );\n this.handleValidation(\n 'propertyName',\n item.validationErrors || [],\n 'validationError',\n 'errorMessage'\n );\n\n if (this.itemCache && this.isStateChanged(item) && backendValidationErrors.length) {\n backendValidationErrors = this.dispatchErrors(item, backendValidationErrors);\n }\n\n this.handleBackendValidation(backendValidationErrors);\n this.cdr.markForCheck();\n }\n\n this.itemCache = item;\n\n this.loaded = loaded;\n this.cdr.detectChanges();\n }\n );\n }\n\n private listenFormChange() {\n this.form.dataChange.pipe(takeUntil(this.destroyed$)).subscribe((item) => {\n this.store.dispatch(\n createUpdateDetailAction(this.detailsRepository)({ item })\n );\n });\n }\n\n private listenFormStatusChange() {\n this.form.statusChange\n .pipe(takeUntil(this.destroyed$))\n .subscribe((formState) => {\n this.store.dispatch(\n createUpdateFormStateAction(this.detailsRepository)({ formState })\n );\n });\n }\n\n private handleValidation = (\n controlName: string,\n errors: any[],\n errorKey: string,\n messageKey: string\n ) => {\n if (errors.length > 0) return;\n errors.forEach((error: any) => {\n const control = this.form.formGroup.get(error[controlName]);\n if (control) {\n control.disabled\n ? control.disable({ emitEvent: false, onlySelf: true })\n : control.enable({ emitEvent: false, onlySelf: true });\n control.setErrors(\n { [errorKey]: error[messageKey] },\n { emitEvent: true }\n );\n control.markAsDirty();\n }\n });\n };\n\n private handleBackendValidation(errors: BackendValidationError[]) {\n errors.forEach(({ parameters, code }: BackendValidationError) => {\n const control = this.form.formGroup.get(this.normalizePropertyNames(parameters));\n if (!control) return;\n\n control[control.disabled ? \"disable\" : \"enable\"]({ emitEvent: false, onlySelf: true });\n control.setErrors({ \"validationError\": code }, { emitEvent: true });\n control.markAsDirty();\n });\n }\n\n private dispatchErrors(item: any, errors: BackendValidationError[]): BackendValidationError[] {\n const error = errors.filter((e: BackendValidationError) => {\n return this.itemCache[this.normalizePropertyNames(e.parameters)] === item[this.normalizePropertyNames(e.parameters)];\n });\n\n this.store.dispatch(\n createUpdateDetailSetErrorsAction(this.detailsRepository)({ error })\n );\n\n return error;\n }\n\n private normalizePropertyNames(input: string): string {\n return String(input[0]).toLocaleLowerCase() + String(input).slice(1);\n }\n\n private isStateChanged(item: any): boolean {\n return item !== this.itemCache;\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { ActivatedRoute } from \"@angular/router\";\nimport { MenuItem } from '../side-menu';\n\nexport const BREADCRUMB_COMPONENT_TOKEN = new InjectionToken<BreadcrumbCore>(\n 'BreadcrumbComponentToken'\n);\n\nexport interface BreadcrumbCore {\n items: MenuItem[];\n homeRoute: string;\n useHomeRoute: boolean;\n}\n\nexport interface Breadcrumb {\n label: string;\n routerLink?: string;\n url?: string;\n active?: boolean;\n activatedRoute?: ActivatedRoute;\n}\n","import { EventEmitter, Injectable, Output } from '@angular/core';\nimport { Breadcrumb } from './breadcrumb.model';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class BreadcrumbService {\n @Output() routeChange: EventEmitter<Breadcrumb> = new EventEmitter();\n}\n","import {\n ChangeDetectorRef,\n Directive,\n Input,\n inject,\n OnInit,\n} from '@angular/core';\nimport { ActivatedRoute, NavigationEnd, Router } from '@angular/router';\nimport { filter, takeUntil } from 'rxjs';\nimport { MenuItem } from '../side-menu';\nimport { UnsubscribeComponent } from '../unsubscribe.component';\nimport { BreadcrumbCore } from './breadcrumb.model';\nimport { BreadcrumbService } from './breadcrumb.service';\n\n@Directive({\n \n})\nexport class BreadcrumbCoreComponent\n extends UnsubscribeComponent\n implements BreadcrumbCore, OnInit\n{\n @Input() items: MenuItem[] = [];\n @Input() homeRoute = '/';\n @Input() useHomeRoute = false;\n\n static readonly ROUTE_DATA_BREADCRUMB = 'breadcrumb';\n static readonly ROUTE_DATA_BREADCRUMB_URL = 'breadcrumb_url';\n static readonly ROUTE_DATA_NO_BREADCRUMB_ROUTE = 'breadcrumb_no_route';\n static readonly BREADCRUMB_HIDE = 'breadcrumb_hide';\n readonly home = { icon: 'pi pi-home', routerLink: this.homeRoute };\n\n router = inject(Router);\n activatedRoute = inject(ActivatedRoute);\n breadcrumbService = inject(BreadcrumbService);\n cdr = inject(ChangeDetectorRef);\n\n ngOnInit(): void {\n this.initBreadcrumbsCreation();\n this.initRouteChangeListen();\n }\n\n private initBreadcrumbsCreation() {\n this.router.events\n .pipe(\n filter((event) => event instanceof NavigationEnd),\n takeUntil(this.destroyed$)\n )\n .subscribe(\n () => (this.items = this.createBreadcrumbs(this.activatedRoute.root))\n );\n }\n\n private initRouteChangeListen() {\n this.breadcrumbService.routeChange\n .pipe(\n filter((x) => x.label !== 'Undefined'),\n takeUntil(this.destroyed$)\n )\n .subscribe((x) => {\n this.items = [\n ...this.items,\n {\n label: x.label,\n routerLink: x.routerLink,\n url: x.url,\n class: 'breadcrumb',\n },\n ];\n this.cdr.detectChanges();\n });\n }\n\n private createBreadcrumbs(\n route: ActivatedRoute,\n routerLink = '',\n breadcrumbs: MenuItem[] = []\n ): any {\n const children: ActivatedRoute[] = route.children;\n\n if (children.length === 0) {\n return breadcrumbs;\n }\n\n for (const child of children) {\n const routeURL: string = child.snapshot.url\n .map((segment) => segment.path)\n .join('/');\n\n if (!child.snapshot.data[BreadcrumbCoreComponent.BREADCRUMB_HIDE]) {\n if (BreadcrumbCoreComponent.ROUTE_DATA_BREADCRUMB_URL !== undefined) {\n const route =\n child.snapshot.data[BreadcrumbCoreComponent.ROUTE_DATA_BREADCRUMB_URL];\n routerLink += `/${route}`;\n }\n\n if (!BreadcrumbCoreComponent.ROUTE_DATA_BREADCRUMB_URL && routeURL !== '') {\n routerLink += `/${routeURL}`;\n }\n\n const label = child.snapshot.data[BreadcrumbCoreComponent.ROUTE_DATA_BREADCRUMB];\n if (\n label &&\n BreadcrumbCoreComponent.ROUTE_DATA_NO_BREADCRUMB_ROUTE &&\n child.snapshot.data[\n BreadcrumbCoreComponent.ROUTE_DATA_NO_BREADCRUMB_ROUTE\n ]\n ) {\n breadcrumbs.push({ label, routerLink: undefined });\n } else if (label && child.snapshot.routeConfig?.path !== '') {\n breadcrumbs.push({ label, routerLink: routerLink });\n }\n }\n\n return this.createBreadcrumbs(child, routerLink, breadcrumbs);\n }\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { Params } from '@angular/router';\nimport { ControlSeverityType, FieldSizeType, IconPositionType } from '../../common';\n\nexport const BUTTON_COMPONENT_TOKEN = new InjectionToken<ButtonCore>(\n 'ButtonComponentToken'\n);\n\nexport interface ButtonCore {\n label?: string;\n icon?: string;\n badge?: string;\n iconPos: IconPositionType;\n rounded: boolean;\n outlined: boolean;\n raised: boolean;\n severity?: ControlSeverityType;\n routerLink: any[];\n size: FieldSizeType | undefined;\n queryParams?: Params;\n}\n","import { InjectionToken, InputSignal } from \"@angular/core\";\r\nimport { ControlSeverityType, FieldSizeType } from \"../../common\";\r\nimport { MenuItem } from \"../side-menu\";\r\n\r\nexport const DROPDOWN_BUTTON_COMPONENT_TOKEN = new InjectionToken<DropdownButtonCore>(\r\n 'DropdownButtonComponentToken'\r\n);\r\n\r\nexport interface DropdownButtonCore {\r\n label: InputSignal<string | undefined>;\r\n icon: InputSignal<string | undefined>;\r\n rounded: InputSignal<boolean | undefined>;\r\n outlined: InputSignal<boolean | undefined>;\r\n raised: InputSignal<boolean | undefined>;\r\n severity: InputSignal<ControlSeverityType | undefined>;\r\n size: InputSignal<FieldSizeType | undefined>;\r\n items: InputSignal<MenuItem[] | undefined>;\r\n}","import { InjectionToken } from '@angular/core';\nimport { BaseFormCore } from '../base-form';\n\nexport const CALENDAR_COMPONENT_TOKEN = new InjectionToken<CalendarCore>(\n 'CalendarComponentToken'\n);\n\nexport interface CalendarCore extends BaseFormCore {\n maxDate: Date;\n icon: string;\n minDate: Date;\n header: string;\n footer: string;\n floatLabel: string | undefined;\n selectionMode: \"single\" | \"multiple\" | \"range\" | undefined;\n}","import { InjectionToken, InputSignal } from '@angular/core';\nimport { BaseFormCore } from '../base-form';\n\nexport const CHECKBOX_COMPONENT_TOKEN = new InjectionToken<CheckboxCore>(\n 'CheckboxComponentToken'\n);\n\nexport interface CheckboxCore extends BaseFormCore {\n indeterminate: InputSignal<boolean>;\n}\n","import { InjectionToken, Type } from '@angular/core';\nimport { SafeHtml } from \"@angular/platform-browser\";\nimport { ControlSeverityType } from '../../common';\n\nexport const CONFIRM_DIALOG_COMPONENT_TOKEN = new InjectionToken<ConfirmDialogCore>(\n 'ConfirmDialogComponentToken'\n);\n\nexport type ConfirmDialogCore = object\n\nexport interface DialogData {\n title?: string;\n headerIcon?: string;\n severity?: ControlSeverityType;\n showCancelButton?: boolean;\n buttonOrder?: 'confirm-cancel' | 'cancel-confirm';\n confirmButtonText?: string;\n confirmButtonFn?: () => void;\n cancelButtonFn?: () => void;\n cancelButtonText?: string;\n innerHTML?: string | SafeHtml;\n data?: unknown;\n componentType?: Type<unknown>;\n closable?: boolean;\n width?: string;\n height?: string;\n}\n\nexport interface ExtendedDialogData<TInputs = any, TOutputs = any> extends DialogData {\n data?: TInputs & TOutputs;\n}\n","import { InjectionToken } from '@angular/core';\nimport { DataSourceComponentModel } from '../../common';\nimport { BaseFormCore } from '../base-form';\n\nexport const DROPDOWN_COMPONENT_TOKEN = new InjectionToken<DropdownCore<any>>(\n 'DropdownComponentToken'\n);\n\nexport interface DropdownCore<T> extends DataSourceComponentModel<T>, BaseFormCore {\n dropdownIcon?: string;\n floatLabel?: string;\n editable: boolean;\n forceMinWidth: boolean;\n showFilter: boolean;\n localSearch: boolean;\n}\n","import { InjectionToken } from '@angular/core';\r\nimport { ControlValueAccessor } from '@angular/forms';\r\nimport { GenericFieldDefinition } from '../generic-form';\r\n\r\nexport const FILTER_COMPONENT_TOKEN = new InjectionToken<FilterCore>(\r\n 'FilterComponentToken'\r\n);\r\n\r\nexport interface FilterCore extends ControlValueAccessor {\r\n fields: GenericFieldDefinition[];\r\n title?: string;\r\n fulltextFieldName: string;\r\n showFulltext: boolean;\r\n showFilters: boolean;\r\n autoBind: boolean;\r\n debounceTime?: number;\r\n filterDetailTitle?: string;\r\n applyButtonLabel?: string;\r\n clearButtonLabel?: string;\r\n}\r\n","import { InjectionToken } from '@angular/core';\nimport { NgControl } from '@angular/forms';\n\nexport const FORM_FIELD_COMPONENT_TOKEN = new InjectionToken<FormFieldCore>(\n 'FormFieldComponentToken'\n);\n\nexport interface FormFieldCore {\n ngControl?: NgControl;\n label?: string;\n tooltip?: string;\n required: boolean;\n testId?: string;\n display: 'flex' | 'block';\n}","import { InjectionToken } from '@angular/core';\nimport { DataSourceComponentModel } from '../../common';\nimport { BaseFormCore } from '../base-form';\n\nexport const GENERIC_FIELD_COMPONENT_TOKEN = new InjectionToken<GenericFieldCore<any>>(\n 'GenericFieldComponentToken'\n);\n\nexport interface GenericFieldCore<T> extends DataSourceComponentModel<T>, BaseFormCore {\n}\n","import { ValidatorFn } from '@angular/forms';\r\nimport { DatasourceType } from '@verisoft/core';\r\nimport { FieldSizeType } from '../../common';\r\n\r\nexport interface GenericFieldDefinition {\r\n validator?: ValidatorFn[];\r\n type?: GenericFieldTypeType;\r\n label?: string;\r\n floatLabel?: boolean;\r\n name: string;\r\n optionLabel?: string;\r\n optionValue?: string;\r\n options?: unknown[];\r\n value?: unknown;\r\n testId?: string;\r\n size?: FieldSizeType;\r\n readonly?: boolean;\r\n datasource?: DatasourceType<any>;\r\n filterField?: string;\r\n showFilter?: boolean;\r\n localSearch?: boolean;\r\n}\r\n\r\nexport enum GenericFieldType {\r\n 'dropdown' = 'dropdown',\r\n 'checkbox' = 'checkbox',\r\n 'simplecheckbox' = 'simplecheckbox',\r\n 'calendar' = 'calendar',\r\n 'multiselect' = 'multiselect',\r\n 'text' = 'text',\r\n}\r\n\r\nexport type GenericFieldTypeType = keyof typeof GenericFieldType;\r\n","import { InjectionToken } from '@angular/core';\nimport { MenuItem } from '../side-menu/side-menu.model';\n\nexport const HEADER_COMPONENT_TOKEN = new InjectionToken<HeaderCore>(\n 'HeaderComponentToken'\n);\n\nexport const SETTINGS_MENU = new InjectionToken<MenuItem[]>(\n 'SETTINGS_MENU'\n);\n\nexport interface HeaderCore {\n title: string;\n userName: string;\n logoUrl: string;\n userRole: any | any[] | undefined;\n fixed: boolean;\n userAvatar: string;\n menuRef: HTMLDivElement;\n}\n","import { InjectionToken } from '@angular/core';\nimport { IconPositionType } from '../../common';\nimport { BaseFormCore } from '../base-form';\n\nexport const INPUT_GROUP_COMPONENT_TOKEN = new InjectionToken<InputGroupCore>(\n 'HeaderComponentToken'\n);\n\nexport interface InputGroupItem {\n icon?: string;\n text?: string;\n position: IconPositionType;\n}\n\nexport interface InputGroupCore extends BaseFormCore {\n items: InputGroupItem[];\n}","import { InjectionToken } from '@angular/core';\n\nexport const LOADER_COMPONENT_TOKEN = new InjectionToken<LoaderCore>(\n 'LoaderComponentToken'\n);\n\nexport type LoaderCore = object\n","import { InjectionToken } from '@angular/core';\nimport { DataSourceComponentModel } from '../../common';\nimport { BaseFormCore } from '../base-form';\n\nexport const MULTISELECT_COMPONENT_TOKEN = new InjectionToken<MultiselectCore<any>>(\n 'MultiselectComponentToken'\n);\n\nexport interface MultiselectCore<T> extends DataSourceComponentModel<T>, BaseFormCore {\n dropdownIcon?: string;\n floatLabel?: string;\n editable: boolean;\n}","import { InjectionToken } from '@angular/core';\nimport { BaseFormCore } from '../base-form';\n\nexport const NUMBER_INPUT_COMPONENT_TOKEN = new InjectionToken<NumberInputCore>(\n 'NumberInputComponentToken'\n);\n\nexport interface NumberInputCore extends BaseFormCore {\n mode: string;\n currency: string;\n min: number;\n max: number;\n step: number;\n}","import { InjectionToken } from '@angular/core';\n\nexport const PAGE_HEADER_COMPONENT_TOKEN = new InjectionToken<PageHeaderCore>(\n 'PageHeaderComponentToken'\n);\n\nexport interface PageHeaderCore {\n title: string;\n subtitle: string | undefined;\n showBackButton: boolean | undefined;\n}\n","import { EventEmitter, Injectable, Output } from '@angular/core';\nimport { PageHeaderCore } from './page-header.model';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PageHeaderService {\n @Output() pageHeader = new EventEmitter<PageHeaderCore>();\n}\n","import { ChangeDetectorRef, Directive, Input, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { takeUntil } from 'rxjs';\nimport { FieldSize, FieldSizeType } from '../../common';\nimport { UnsubscribeComponent } from '../unsubscribe.component';\nimport { PageHeaderService } from './page-header.service';\n\n@Directive({\n \n})\nexport class PageHeaderCoreComponent\n extends UnsubscribeComponent\n implements OnInit\n{\n @Input() title!: string;\n @Input() subtitle: string | undefined;\n @Input() showBackButton!: boolean;\n @Input() size: FieldSizeType = FieldSize.small;\n\nconstructor(\n readonly router: Router,\n readonly cdr: ChangeDetectorRef,\n readonly headerService: PageHeaderService\n ) {\n super();\n }\n\n ngOnInit(): void {\n this.headerService.pageHeader\n .pipe(takeUntil(this.destroyed$))\n .subscribe((x: any) => {\n this.title = x.title;\n this.subtitle = x.subtitle;\n this.showBackButton = x.showBackButton ?? false;\n this.cdr.detectChanges();\n });\n }\n\n protected locationBack() {\n history.back();\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { BaseFormCore } from '../base-form';\n\nexport const PASSWORD_COMPONENT_TOKEN = new InjectionToken<PasswordCore>(\n 'PasswordComponentToken'\n);\n\nexport enum PasswordStrength {\n None = 0,\n Low = 1,\n Medium = 2,\n High = 3,\n Superb = 4\n}\n\nexport interface PasswordCore extends BaseFormCore {\n toggleMask: boolean;\n feedback: boolean;\n}\n\nexport interface PasswordValidationItem {\n severity: 'success' | 'error';\n validationLabel: string;\n validationFn: (x: string) => boolean;\n}","import { InjectionToken } from '@angular/core';\nimport { BaseFormCore } from '../base-form';\n\nexport const RADIOBUTTON_COMPONENT_TOKEN = new InjectionToken<RadiobuttonCore<any>>(\n 'RadiobuttonComponentToken'\n);\n\nexport interface RadioButtonItem<T> {\n id: string;\n value: T; \n}\n\nexport interface RadiobuttonCore<T> extends BaseFormCore {\n radioGroupName: string;\n items: RadioButtonItem<T>[];\n}","import { InjectionToken } from '@angular/core';\n\nexport const SECTION_COMPONENT_TOKEN = new InjectionToken<SectionCore>(\n 'SectionComponentToken'\n);\n\nexport interface SectionCore {\n title: string;\n showContent: boolean;\n backgroundColor: string;\n}","import { InjectionToken } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nexport const MENU_TOKEN = new InjectionToken<MenuItem[]>(\n 'MENU'\n);\n\nexport const LOGO_ROUTER_ROUTE = new InjectionToken<string>(\n 'LOGO_ROUTER_ROUTE'\n);\n\nexport const SIDE_MENU_COMPONENT_TOKEN = new InjectionToken<SideMenuCore>(\n 'SideMenuComponentToken'\n);\n\nexport const SIDE_MENU_STATE_TOKEN = new InjectionToken<SideMenuState>(\n 'SideMenuStateToken'\n);\n\nexport interface SideMenuState {\n expanded: string[];\n minimalized: boolean;\n}\n\nexport interface MenuItem {\n id?: string;\n label?: string | undefined;\n icon?: string;\n expanded?: boolean;\n data?: MenuItemData;\n tooltip?: string;\n url?: string;\n visible?: boolean | Observable<boolean>;\n type?: string;\n children?: MenuItem[];\n routerLink?: any;\n class?: string;\n // eslint-disable-next-line @typescript-eslint/ban-types\n command?: Function;\n}\n\ntype ExtendableType = {\n [key: string]:\n | string\n | number\n | boolean\n | string[]\n | number[]\n | boolean[]\n | undefined;\n};\n\nexport interface MenuItemData extends ExtendableType {\n roles?: string[];\n permissions?: string[];\n}\n\nexport interface SideMenuModuleConfig {\n items?: MenuItem[];\n}\n\nexport interface SideMenuCore {\n items: MenuItem[];\n logoUrl: string;\n userName: string;\n userRole: any | any[] | undefined;\n}\n","import { inject, Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { MenuItem, SIDE_MENU_STATE_TOKEN } from '../side-menu.model';\n\n@Injectable({ providedIn: 'root' })\nexport class SideMenuService {\n private _menuItems = new BehaviorSubject<MenuItem[]>([]);\n private stateToken = inject(SIDE_MENU_STATE_TOKEN);\n\n menuItems$: Observable<MenuItem[]> = this._menuItems.asObservable();\n menuMinimalized = false;\n\n setMenu(items: MenuItem[]): void {\n this.resetSidemenuState(items);\n this._menuItems.next(items);\n }\n\n saveMinimalizedState(minimalized: boolean): void {\n this.stateToken.minimalized = minimalized;\n localStorage.setItem('SideMenuStateToken', JSON.stringify(this.stateToken));\n }\n\n saveExpandedState(item: MenuItem): void {\n const expanded = this.stateToken.expanded?.find(\n (i: string) => i === item.label\n );\n\n if (!expanded) {\n this.stateToken.expanded?.push(item.label!);\n localStorage.setItem(\n 'SideMenuStateToken',\n JSON.stringify(this.stateToken)\n );\n return;\n }\n\n this.stateToken.expanded = this.stateToken.expanded?.filter(\n (i: string) => i !== item.label\n );\n\n localStorage.setItem('SideMenuStateToken', JSON.stringify(this.stateToken));\n }\n\n private resetSidemenuState(items: MenuItem[]) {\n if (typeof this.stateToken === 'string') {\n this.stateToken = JSON.parse(this.stateToken);\n }\n\n this.menuMinimalized = this.stateToken.minimalized;\n const localStorageValue = this.stateToken.expanded;\n\n if (!localStorageValue) return;\n if (items) {\n for (let index = 0; index < items.length; index++) {\n const element = items[index];\n element.expanded = !!localStorageValue.find(\n (i: string) => i === element.label\n );\n }\n }\n }\n}\n","import { Injectable, Optional, Inject } from '@angular/core';\nimport { MENU_TOKEN, MenuItem } from '../side-menu.model';\nimport { SideMenuService } from './side-menu.service';\n\n@Injectable()\nexport class SideMenuProviderService {\n constructor(\n @Optional() @Inject(MENU_TOKEN) readonly menu: MenuItem[] = [],\n readonly menuService: SideMenuService\n ) {\n menuService.setMenu(menu);\n }\n}\n","import { AfterViewInit, ChangeDetectorRef, Directive, inject } from \"@angular/core\";\nimport { takeUntil } from \"rxjs\";\nimport { UnsubscribeComponent } from \"../../unsubscribe.component\";\nimport { SideMenuService } from \"../services/side-menu.service\";\nimport { SIDE_MENU_COMPONENT_TOKEN } from \"../side-menu.model\";\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'v-side-menu[useMenuService]',\n exportAs: 'useMenuService',\n standalone: true,\n})\nexport class MenuServiceDirective\n extends UnsubscribeComponent\n implements AfterViewInit\n{\n private readonly menuService = inject(SideMenuService);\n private readonly cdr = inject(ChangeDetectorRef);\n private readonly sideMenu = inject(SIDE_MENU_COMPONENT_TOKEN);\n\n ngAfterViewInit() {\n this.menuService.menuItems$.pipe(takeUntil(this.destroyed$)).subscribe((items) => {\n\n if (this.sideMenu) {\n this.sideMenu.items = items;\n }\n });\n\n this.cdr.detectChanges();\n }\n}","import { InjectionToken } from '@angular/core';\nimport { BaseFormCore } from '../base-form';\n\nexport const SLIDER_COMPONENT_TOKEN = new InjectionToken<SliderCore>(\n 'SliderComponentToken'\n);\n\nexport interface SliderCore extends BaseFormCore {\n step: number;\n min: number;\n max: number;\n range: boolean;\n}","import { InjectionToken } from '@angular/core';\n\nexport const SNACKBAR_COMPONENT_TOKEN = new InjectionToken<SnackbarCore>(\n 'SnackbarComponentToken'\n);\n\nexport type SnackbarCore = object\n","import { EventEmitter, InjectionToken, TemplateRef } from \"@angular/core\";\nimport { FieldSizeType, LayoutTypeType } from \"../../common\";\n\nexport const STEPPER_COMPONENT_TOKEN = new InjectionToken<StepperCore>(\n 'StepperComponentToken'\n);\n\nexport interface StepperItem {\n header: string;\n template?: TemplateRef<any>;\n annotation?: string;\n prefix?: string;\n}\n\nexport interface StepperCore {\n items: StepperItem[]\n layout: LayoutTypeType\n activeIndexChange: EventEmitter<number>\n size: FieldSizeType | undefined;\n icon: string;\n prefix: string;\n annotation: string;\n label: string;\n}","import { InjectionToken } from \"@angular/core\";\nimport { BaseFormCore } from \"../base-form\";\n\nexport const SWITCH_COMPONENT_TOKEN = new InjectionToken<SwitchCore>(\n 'SwitchComponentToken'\n);\n\nexport type SwitchCore = BaseFormCore\n","import { EventEmitter, InjectionToken, TemplateRef } from \"@angular/core\";\n\nexport const TAB_VIEW_COMPONENT_TOKEN = new InjectionToken<TabViewCore>(\n 'TabVIewComponentToken'\n);\n\nexport interface TabViewItemCore {\n title: string;\n url?: string;\n icon?: string;\n disabled?: boolean;\n content?: string;\n contentTemplate?: TemplateRef<unknown>; \n}\n\nexport interface TabViewCore {\n items: TabViewItemCore[];\n useRouting: boolean;\n activeIndex: number;\n activeIndexChange: EventEmitter<number>;\n url?: string;\n}","import { EventEmitter, InjectionToken, TemplateRef } from '@angular/core';\nimport { Params } from '@angular/router';\nimport { LazyLoadEvent, Sort, SortDirectionType } from '@verisoft/core';\nimport { v4 } from 'uuid';\nimport { FieldAlignType } from '../../common';\n\nexport const TABLE_COMPONENT_TOKEN = new InjectionToken<TableCore<any>>(\n 'TabVIewComponentToken'\n);\n\nexport const TABLE_COLUMN_PROVIDER = new InjectionToken(\n 'TABLE_COLUMN_PROVIDER'\n);\n\nexport enum TableSelectionMode {\n single = 'single',\n multiple = 'multiple',\n}\n\nexport enum TableButtonSeverity {\n success = 'success',\n info = 'info',\n warning = 'warning',\n danger = 'danger',\n help = 'help',\n primary = 'primary',\n secondary = 'secondary',\n contrast = 'contrast',\n}\n\nexport enum ColumnVisibility {\n visible = 'visible',\n hidden = 'hidden',\n default = 'default',\n}\n\nexport type TableSelectionModeType = keyof typeof TableSelectionMode;\nexport type TableButtonSeverityType = keyof typeof TableButtonSeverity;\nexport type ColumnVisibilityType = keyof typeof ColumnVisibility;\n\nexport interface TableCore<T> {\n sorters: Sort[];\n columns: ColumnDefinition<T>[];\n data: T[];\n total: number;\n filter: Partial<T> | undefined;\n loading: boolean;\n scrollable: boolean;\n pageSize: number;\n currentPage: number;\n showPaginator: boolean;\n sortMultiple: boolean;\n lazy: boolean;\n selection: T[];\n selectionMode: TableSelectionModeType | undefined;\n showPageSizePicker: boolean;\n entityKey: string | undefined;\n selectionChange: EventEmitter<T[]>;\n lazyLoad: EventEmitter<LazyLoadEvent>;\n maximumColumnLength: number;\n disableCustomClicks: boolean;\n}\n\nexport interface TableSignal {\n name: string,\n symbol: symbol\n}\n\nexport interface ActionColumnsDefinition<T> {\n severity?: TableButtonSeverity;\n title?: string;\n icon?: string;\n tooltip?: string;\n rounded?: boolean;\n outlined?: boolean;\n raised?: boolean;\n badge?: string;\n visible?: (row: T) => boolean;\n routerLink?: (row: T) => string;\n queryParams?: Params;\n disabled?: boolean | ((row: T) => boolean);\n onClick?: (row: T, event?: MouseEvent) => void;\n}\n\nexport interface ColumnProvider<T> {\n getDefinition(): ColumnDefinition<T>;\n index: number;\n}\n\nexport interface ColumnDefinition<T, _KEY = keyof T> {\n id: string;\n value?: (row: T, index?: number) => string;\n headerName?: ((columnId: string, index?: number) => string) | string;\n icon?: string | ((row?: T | undefined) => string);\n type?: string;\n sortable?: boolean;\n format?: (row: T) => string\n routerLink?: (row: T) => string | string;\n queryParams?: Params;\n columnClass?: string;\n template?: TemplateRef<{ $implicit: T }>;\n actions?: ActionColumnsDefinition<T>[];\n textAlign?: FieldAlignType;\n width?: string | number;\n forceVisibility?: ColumnVisibilityType;\n visible?: boolean;\n}\n\nexport function LinkRenderer<T>(text: string, href: string) {\n return (row: T, index: number | undefined) => {\n return '<a href=\"' + href + '\">' + text + '</a>';\n };\n}\n\nexport function routerRenderer<T>(link: string, text: string) {\n return (row: T, index?: number | undefined) => {\n return { text: text, link: link };\n };\n}\n\nexport function Renderer<T>(fnc: (row: T) => string) {\n return (row: T) => {\n return fnc(row);\n };\n}\n\nexport class ColumnModel<T> {\n sortDirection: SortDirectionType | undefined = undefined;\n columnClass?: string;\n queryParams?: Params;\n routerLink?: (row: T) => string | string;\n valueGetter!: (row: T, index: number) => string;\n headerGetter!: (columnId: string, index: number) => string | string;\n template?: TemplateRef<{ $implicit: T }>;\n actions?: ActionColumnsDefinition<T>[];\n sortable?: boolean;\n id: string;\n // eslint-disable-next-line @typescript-eslint/ban-types\n format!: Function;\n textAlign?: FieldAlignType;\n width: string | undefined;\n forceVisibility: ColumnVisibilityType = ColumnVisibility.default;\n visible = true;\n\n constructor(readonly configuration: ColumnDefinition<T>) {\n this.id = this.configuration.id;\n\n if (this.configuration.format) {\n this.format = this.configuration.format;\n }\n\n if (this.configuration.value) {\n this.valueGetter = (row, index) => {\n const value = this.configuration.value?.(row, index) ?? '-';\n return this.format ? this.format(value, row) : value;\n };\n } else {\n this.valueGetter = (row) => {\n const value = ((row as { [key: string]: string })?.[this.configuration.id]) ?? '';\n return this.format ? this.format(value, row) : value;\n };\n }\n\n if (this.configuration.actions) {\n this.actions = this.configuration.actions;\n }\n\n if (this.configuration.routerLink) {\n this.routerLink = this.configuration.routerLink;\n }\n\n if (this.configuration.columnClass) {\n this.columnClass = this.configuration.columnClass;\n }\n\n if (this.configuration.template) {\n this.template = this.configuration.template;\n }\n\n if (this.configuration.headerName) {\n this.headerGetter = (\n typeof this.configuration.headerName === 'string'\n ? () => this.configuration.headerName ?? ''\n : (columnId: string, index: number) =>\n (<(columnId: string, index?: number) => string>(\n this.configuration.headerName\n ))?.(columnId, index) ?? this.id\n ) as (columnId: string, index: number) => string;\n } else {\n this.headerGetter = () => \"\";\n }\n\n if (this.configuration.queryParams) {\n this.queryParams = this.configuration.queryParams;\n }\n\n if (this.routerLink) {\n this.columnClass += ' ' + 'link';\n }\n\n if (this.configuration.sortable !== undefined) {\n this.sortable = this.configuration.sortable;\n } else {\n this.sortable = true;\n }\n\n if (this.configuration.width){\n this.width = typeof this.configuration.width === \"number\" ? this.configuration.width + 'px' : this.configuration.width;\n }\n\n if (this.configuration.textAlign !== undefined) {\n this.textAlign = this.configuration.textAlign;\n }\n\n if (this.configuration.forceVisibility) {\n this.forceVisibility = this.configuration.forceVisibility;\n }\n\n if (this.configuration.visible !== undefined) {\n this.visible = this.configuration.visible;\n }\n }\n}\n\nexport class RowModel<T> {\n row: T;\n index?: number;\n id: number | string;\n selected: boolean;\n marked?: boolean;\n focused?: boolean;\n expanded: boolean;\n fnc?: void;\n customRoute: string | undefined;\n\n constructor(\n row: T,\n selected: boolean,\n expanded: boolean,\n marked?: boolean,\n index?: number,\n fnc?: void,\n customRoute?: string,\n entityKey?: string\n ) {\n this.row = row;\n this.id = (row as { [key: string]: string })['id'] ?? v4();\n this.index = index;\n this.selected = selected;\n this.expanded = expanded;\n this.marked = marked;\n this.fnc = fnc;\n this.customRoute = createCustomRoute<T>(row, entityKey, customRoute);\n }\n}\n\nfunction createCustomRoute<T>(row: T, entityKey?: string, customRoute?: string) {\n return customRoute && entityKey\n ? `${customRoute}/` + (row as { [key: string]: string })[entityKey]\n : undefined;\n}\n","import { ContentChild, Directive, Input, TemplateRef } from '@angular/core';\nimport { Params } from '@angular/router';\nimport { FieldAlign, FieldAlignType } from '../../common';\nimport { ColumnDefinition, ColumnProvider, ColumnVisibility, ColumnVisibilityType, TABLE_COLUMN_PROVIDER } from './table.models';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'v-table-column',\n standalone: true,\n providers: [\n {\n provide: TABLE_COLUMN_PROVIDER,\n useExisting: TableColumnDirective,\n multi: true,\n },\n ],\n})\nexport class TableColumnDirective<T> implements ColumnProvider<T> {\n @ContentChild(TemplateRef) template!:\n TemplateRef<{ $implicit: T }>;\n\n @Input() index = 0;\n\n @Input() id!: string;\n\n @Input() columnClass!: string;\n\n @Input() sortable!: boolean;\n\n @Input() routerLink!: (row: T) => string;\n\n @Input() queryParams!: Params;\n\n @Input() headerName!: ((column: string, index?: number) => string) | string;\n\n @Input() width: string | number | undefined;\n\n @Input() textAlign: FieldAlignType = FieldAlign.left;\n\n @Input() format!: (row: T) => string\n\n @Input() forceVisibility: ColumnVisibilityType = ColumnVisibility.default;\n\n @Input() visible = true;\n\n getDefinition(): ColumnDefinition<T> {\n return {\n id: this.id,\n columnClass: this.columnClass,\n template: this.template,\n headerName: this.headerName,\n routerLink: this.routerLink,\n queryParams: this.queryParams,\n sortable: this.sortable,\n width: this.width,\n format: this.format,\n textAlign: this.textAlign,\n forceVisibility: this.forceVisibility,\n visible: this.visible,\n };\n }\n}\n","import { ColumnDefinition } from \"./table.models\";\r\n\r\nexport class ColumnConfiguration<TEntity> {\r\n private column: Partial<ColumnDefinition<TEntity>> = {};\r\n \r\n constructor(private id: string | keyof TEntity) {\r\n this.column.id = id as string;\r\n }\r\n \r\n headerName(headerName: string | ((columnId: string, index?: number) => string)): this {\r\n this.column.headerName = headerName;\r\n return this;\r\n }\r\n \r\n sortable(sortable: boolean): this {\r\n this.column.sortable = sortable;\r\n return this;\r\n }\r\n \r\n columnClass(columnClass: string): this {\r\n this.column.columnClass = columnClass;\r\n return this;\r\n }\r\n \r\n valueFunction(value: (row: TEntity, index?: number) => string): this {\r\n this.column.value = value;\r\n return this;\r\n }\r\n \r\n type(type: string): this {\r\n this.column.type = type;\r\n return this;\r\n }\r\n \r\n build(): ColumnDefinition<TEntity> {\r\n return this.column as ColumnDefinition<TEntity>;\r\n }\r\n }","import { Injectable } from '@angular/core';\r\nimport { ColumnConfiguration } from './column-configuration';\r\nimport { ColumnDefinition } from './table.models';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class TableBuilder<TEntity> {\r\n private columns: ColumnDefinition<TEntity>[] = [];\r\n\r\n addColumn(\r\n id: string | keyof TEntity,\r\n config?: (v: ColumnConfiguration<TEntity>) => void\r\n ): TableBuilder<TEntity> {\r\n const columnConfig = new ColumnConfiguration<TEntity>(id);\r\n config?.(columnConfig);\r\n this.columns.push(columnConfig.build());\r\n return this;\r\n }\r\n\r\n addTextColumn(\r\n id: string | keyof TEntity,\r\n config?: (v: ColumnConfiguration<TEntity>) => void\r\n ): TableBuilder<TEntity> {\r\n return this.addColumn(id, (x) => {\r\n config?.(x);\r\n x.type('text');\r\n });\r\n }\r\n\r\n addNumberColumn(\r\n id: string | keyof TEntity,\r\n config?: (v: ColumnConfiguration<TEntity>) => void\r\n ): TableBuilder<TEntity> {\r\n return this.addColumn(id, (x) => {\r\n config?.(x);\r\n x.type('number').columnClass('text-end');\r\n });\r\n }\r\n\r\n addDateColumn(\r\n id: string | keyof TEntity,\r\n config?: (v: ColumnConfiguration<TEntity>) => void\r\n ): TableBuilder<TEntity> {\r\n return this.addColumn(id, (x) => {\r\n config?.(x);\r\n x.type('date').valueFunction((row) => covertFromDateToUserLocale(row, id as string));\r\n });\r\n }\r\n\r\n addBooleanColumn(\r\n id: string,\r\n config?: (v: ColumnConfiguration<TEntity>) => void\r\n ): TableBuilder<TEntity> {\r\n return this.addColumn(id, (x) => {\r\n config?.(x);\r\n x.type('boolean');\r\n });\r\n }\r\n\r\n addEnumColumn(\r\n id: string | keyof TEntity,\r\n config?: (v: ColumnConfiguration<TEntity>) => void\r\n ): TableBuilder<TEntity> {\r\n return this.addColumn(id, (x) => {\r\n config?.(x);\r\n x.type('enum');\r\n });\r\n }\r\n\r\n build(): ColumnDefinition<TEntity>[] {\r\n return this.columns;\r\n }\r\n}\r\n\r\nfunction covertFromDateToUserLocale<TEntity>(row: TEntity, id: string) {\r\n const value = (row as { [key: string]: undefined | string | Date })[id];\r\n if (value === undefined) {\r\n return '';\r\n }\r\n\r\n const locale = navigator.language;\r\n\r\n if (value instanceof Date) {\r\n return value.toLocaleDateString(locale);\r\n }\r\n\r\n if (typeof value === 'string' && !isNaN(Date.parse(value))) {\r\n return new Date(value).toLocaleDateString(locale);\r\n }\r\n\r\n return value;\r\n}\r\n","import { InjectionToken } from '@angular/core';\nimport { BaseFormDirectiveCore } from '../base-form';\n\nexport const TABLE_FILTER_COMPONENT_TOKEN = new InjectionToken<TableFilterCore<any>>(\n 'TableFilterComponentToken'\n);\n\nexport interface FilterDefinition {\n optionLabel: string;\n label: string;\n optionValue?: string;\n url?: string;\n filterType?: 'dropdown' | 'checkbox' | 'calendar' | 'multiselect';\n initialValue?: any;\n}\n\nexport interface TableFilterCore<T> extends BaseFormDirectiveCore<T> {\n filterDefinitions: FilterDefinition[];\n title: string;\n hideSearch?: boolean;\n debounceTime?: number;\n}\n","import { InjectionToken } from '@angular/core';\nimport { BaseFormCore } from '../base-form';\n\nexport const TEXTAREA_COMPONENT_TOKEN = new InjectionToken<TextareaCore>(\n 'TextareaComponentToken'\n);\n\nexport interface TextareaCore extends BaseFormCore {\n rows: number;\n cols: number;\n autoResize: boolean;\n floatLabel: string | undefined;\n}\n","import { InjectionToken } from '@angular/core';\nimport { FieldSizeType, FieldTypeType } from '../../common';\nimport { BaseFormCore } from '../base-form';\n\nexport const TEXTFIELD_COMPONENT_TOKEN = new InjectionToken<TextfieldCore>(\n 'TextfieldComponentToken'\n);\n\nexport interface TextfieldCore extends BaseFormCore {\n size: FieldSizeType | undefined;\n type: FieldTypeType;\n floatLabel: boolean;\n}","import { InjectionToken, Signal } from '@angular/core';\nimport { ControlSeverityType, FieldSizeType, PositionType } from '../../common';\n\nexport const TOOLTIP_COMPONENT_TOKEN = new InjectionToken<TooltipCore>(\n 'TooltipComponentToken'\n);\n\nexport interface TooltipCore {\n color: Signal<ControlSeverityType | undefined>;\n position: Signal<PositionType | undefined>;\n size: Signal<FieldSizeType | undefined>;\n tooltipText: Signal<string | undefined>;\n}","import { InjectionToken, InputSignal } from \"@angular/core\";\nimport { ControlSeverityType, FieldSizeType } from \"../../common\";\n\nexport const ICONS_COMPONENT_TOKEN = new InjectionToken<IconsCore>(\n 'IconsComponentToken'\n);\n\nexport type IconLibraryType = 'native' | 'bootstrap';\n\nexport interface IconsCore {\n library: InputSignal<IconLibraryType>;\n name: InputSignal<string>;\n size: InputSignal<FieldSizeType | undefined>;\n severity: InputSignal<ControlSeverityType | undefined>;\n class: InputSignal<string | undefined>;\n}","import { Component, input } from \"@angular/core\";\nimport { ControlSeverityType, FieldSizeType } from \"../../common\";\nimport { IconLibraryType, ICONS_COMPONENT_TOKEN, IconsCore } from \"./icons.model\";\n\n@Component({\n standalone: true,\n template: '',\n providers: [\n {\n provide: ICONS_COMPONENT_TOKEN,\n useExisting: IconsComponent\n }\n ]\n})\n\nexport abstract class IconsComponent implements IconsCore {\n library = input<IconLibraryType>('native');\n name = input.required<string>();\n size = input<FieldSizeType | undefined>();\n severity = input<ControlSeverityType | undefined>();\n class = input<string>();\n}","import { InjectionToken, InputSignal } from \"@angular/core\";\nimport { ControlSeverityType, FieldSizeType } from \"../../common\";\n\nexport const TAG_COMPONENT_TOKEN = new InjectionToken<TagCore>('TagComponentToken');\n\nexport type TagVariant = 'bold' | 'subtle';\n\nexport interface TagCore {\n label: InputSignal<string | undefined>;\n severity: InputSignal<ControlSeverityType | undefined>;\n variant: InputSignal<TagVariant>;\n size: InputSignal<FieldSizeType>;\n }","import { HttpClient } from '@angular/common/http';\nimport {\n ChangeDetectorRef,\n Directive,\n inject,\n Input,\n OnChanges,\n OnInit,\n SimpleChanges,\n} from '@angular/core';\nimport {\n BASE_URL_PATH,\n convertDatasource,\n DataSourceFunctionType,\n DatasourceType,\n DEFAULT_SEARCH_LIMIT,\n FilterEvent,\n LazyLoadEvent,\n normalizeRequest,\n Page,\n RequestParams,\n} from '@verisoft/core';\nimport {\n BehaviorSubject,\n catchError,\n debounceTime,\n filter,\n map,\n of,\n switchMap,\n takeUntil,\n tap,\n} from 'rxjs';\nimport {\n DataSourceComponentModel,\n DEFAULT_DEBOUNCE_TIME,\n ExtendedRequestType,\n setComponentProperties,\n setDataToArray,\n} from '../common';\nimport {\n DROPDOWN_COMPONENT_TOKEN,\n DropdownCore,\n GENERIC_FIELD_COMPONENT_TOKEN,\n GenericFieldCore,\n MULTISELECT_COMPONENT_TOKEN,\n MultiselectCore,\n UnsubscribeComponent,\n} from '../components';\n\n@Directive({\n selector:\n // eslint-disable-next-line @angular-eslint/directive-selector\n 'v-dropdown[useDatasource], v-multiselect[useDatasource], v-generic-field[useDatasource]',\n standalone: true,\n})\nexport class DatasourceDirective<T>\n extends UnsubscribeComponent\n implements OnChanges, OnInit\n{\n @Input() datasource!: DatasourceType<T>;\n\n @Input() autoBind = true;\n\n @Input() loadingText = '... loading ...';\n\n @Input() filterField: string | undefined = 'fulltext';\n\n @Input() transformFn?: (data: T) => unknown;\n\n @Input() extraFilter!: any;\n\n get activeComponent(): DataSourceComponentModel<T> {\n return (this.dropdownComponent ??\n this.multiSelectComponent ??\n this.genericField) as DataSourceComponentModel<T>;\n }\n\n private httpClient = inject(HttpClient);\n\n private baseUrl: string = inject(BASE_URL_PATH);\n\n private changeDetectorRef = inject(ChangeDetectorRef);\n\n private isAllDataLoaded = false;\n\n private parameters$ = new BehaviorSubject<Partial<ExtendedRequestType<T>>>({});\n\n private lastParameter = {};\n\n private dropdownComponent = inject<DropdownCore<T>>(\n DROPDOWN_COMPONENT_TOKEN,\n { optional: true }\n );\n\n private multiSelectComponent = inject<MultiselectCore<T>>(\n MULTISELECT_COMPONENT_TOKEN,\n {\n optional: true,\n }\n );\n\n private genericField = inject<GenericFieldCore<T>>(\n GENERIC_FIELD_COMPONENT_TOKEN,\n { optional: true }\n );\n\n private dataSourceService?: DataSourceFunctionType<T>;\n\n private loadingPlaceholderItem: { [key: string]: unknown } = {};\n\n ngOnInit(): void {\n this.activeComponent.showed\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n if (\n !this.autoBind &&\n !this.activeComponent.options &&\n !this.activeComponent.loading\n ) {\n this.parameters$.next({});\n }\n });\n\n this.activeComponent.lazyLoad\n .pipe(takeUntil(this.destroyed$))\n .subscribe((value: LazyLoadEvent) => {\n this.parameters$.next({ offset: value?.offset, limit: value?.limit });\n });\n\n this.activeComponent.filtered\n .pipe(takeUntil(this.destroyed$))\n .subscribe((value: FilterEvent) => {\n const property = this.filterField ?? this.activeComponent.optionLabel;\n if (property) {\n this.parameters$.next({\n offset: 0,\n filter: {\n [property]: value.filter ? value.filter : undefined,\n ...(this.extraFilter ?? {})\n } as Partial<T>,\n useNewData: true,\n });\n }\n });\n\n this.parameters$\n .pipe(\n takeUntil(this.destroyed$),\n filter(request => !this.isDataForRequestLoaded(request)),\n map((request) => {\n const extendedParams = normalizeRequest({ ...this.lastParameter, ...request }, DEFAULT_SEARCH_LIMIT) as ExtendedRequestType<T>;\n extendedParams.useNewData = request.useNewData ?? false;\n return extendedParams;\n }),\n tap((request) => {\n this.lastParameter = request;\n }),\n debounceTime(DEFAULT_DEBOUNCE_TIME),\n tap(() => {\n this.changeComponent(this.activeComponent, {\n loading: true,\n });\n }),\n switchMap((request) =>\n this.dataSourceService\n ? this.dataSourceService(request as RequestParams<T>).pipe(\n map((response) => ({ request, response }))\n )\n : of({\n request,\n response: {\n data: [] as T[],\n total: 0,\n limit: request.limit,\n offset: request.offset,\n } as Page<T>,\n })\n ),\n catchError((request) => {\n this.changeComponent(this.activeComponent, {\n loading: false,\n });\n return of({\n request: request as ExtendedRequestType<T>,\n response: {\n data: [] as T[],\n total: 0,\n limit: request.limit,\n offset: request.offset,\n } as Page<T>,\n });\n })\n )\n .subscribe(({ request, response }) =>\n this.setDataToControl(request, response)\n );\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['datasource']) {\n this.dataSourceService = convertDatasource(\n this.datasource,\n this.baseUrl,\n this.httpClient\n );\n\n if (this.autoBind) {\n this.parameters$.next({ offset: 0 });\n }\n }\n }\n\n private isDataForRequestLoaded(request: Partial<ExtendedRequestType<T>>) {\n if (request.useNewData) {\n return false;\n }\n\n const offset = request.offset ?? 0;\n const limit = request.limit ?? DEFAULT_SEARCH_LIMIT;\n const options = this.activeComponent.options;\n if (!options) {\n return false;\n }\n\n if (options.length < offset + limit) {\n return false;\n }\n\n const allItemsFilled = options.slice(offset, offset + limit).every(item => item !== undefined && item != this.loadingPlaceholderItem);\n return allItemsFilled;\n }\n\n private setDataToControl(request: ExtendedRequestType<T>, result: Page<T>): void {\n this.isAllDataLoaded = result.total <= result.data.length;\n const data = result.data;\n const total = result.total;\n const offset = request.offset;\n const transferedData = this.transformFn\n ? data.map((x) => this.transformFn?.(x))\n : data;\n\n if (this.activeComponent.optionLabel) {\n this.loadingPlaceholderItem[this.activeComponent.optionLabel] =\n this.loadingText;\n }\n\n if (this.activeComponent.optionValue) {\n this.loadingPlaceholderItem[this.activeComponent.optionValue] = -1;\n }\n\n const options = request.useNewData ? undefined : this.activeComponent.options;\n const newOptions = setDataToArray(\n options,\n transferedData,\n offset,\n total,\n this.loadingPlaceholderItem\n );\n\n this.changeComponent(this.activeComponent, {\n options: newOptions as T[],\n loading: false,\n lazy: !this.isAllDataLoaded,\n });\n }\n\n private changeComponent(\n component: DataSourceComponentModel<T>,\n value: Partial<DataSourceComponentModel<T>>\n ) {\n setComponentProperties(component, value);\n this.changeDetectorRef.detectChanges();\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport {\n ChangeDetectorRef,\n Directive,\n inject,\n Input,\n OnChanges,\n OnInit,\n SimpleChanges,\n} from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport {\n BASE_URL_PATH,\n BaseHttpService,\n convertDatasource,\n DataSourceFunctionType,\n DatasourceType,\n LazyLoadEvent,\n normalizeRequest,\n Page,\n RequestParams,\n} from '@verisoft/core';\nimport {\n BehaviorSubject,\n catchError,\n debounceTime,\n map,\n of,\n switchMap,\n takeUntil,\n tap,\n} from 'rxjs';\nimport {\n DEFAULT_DEBOUNCE_TIME,\n ExtendedRequestType,\n isFilterEmpty,\n setComponentProperties,\n} from '../common';\nimport {\n TABLE_COMPONENT_TOKEN,\n TableCore,\n UnsubscribeComponent,\n} from '../components';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'v-table[useDatasource]',\n exportAs: 'useDatasource',\n standalone: true,\n})\nexport class TableDatasourceDirective<T>\n extends UnsubscribeComponent\n implements OnInit, OnChanges\n{\n protected readonly store = inject(Store);\n\n @Input() autoBind = true;\n\n @Input({ required: true }) tableName!: string;\n\n @Input() debounceTime = DEFAULT_DEBOUNCE_TIME;\n\n @Input() datasource!: DatasourceType<T>;\n\n @Input() extraFilter!: any;\n\n @Input() transformFn?: (data: T) => unknown;\n\n private tableComponent = inject<TableCore<T>>(TABLE_COMPONENT_TOKEN, {\n self: true,\n });\n private changeDetectorRef = inject(ChangeDetectorRef);\n private httpClient = inject(HttpClient);\n private baseUrl: string = inject(BASE_URL_PATH);\n\n private dataSourceService?: DataSourceFunctionType<T>;\n private parameters$ = new BehaviorSubject<Partial<ExtendedRequestType<T>>>({});\n\n params$ = this.parameters$.asObservable();\n\n ngOnInit(): void {\n if (!this.tableName) {\n throw new Error('Property tableName must be defined.');\n }\n\n this.tableComponent.lazyLoad.pipe(takeUntil(this.destroyed$)).subscribe((value: LazyLoadEvent) => {\n this.parameters$.next({\n offset: value?.offset,\n limit: value?.limit,\n filter: { ...value?.filter, ...this.extraFilter },\n sort: value?.sort,\n });\n });\n\n this.parameters$\n .pipe(\n takeUntil(this.destroyed$),\n map((request) =>\n normalizeRequest({\n ...request,\n filter: { ...request.filter, ...this.extraFilter },\n })\n ),\n debounceTime(this.debounceTime),\n tap(() => {\n this.changeComponent(this.tableComponent, {\n lazy: true,\n loading: true,\n });\n }),\n switchMap((request) =>\n this.dataSourceService\n ? this.dataSourceService(request).pipe(\n map((response) => ({ request, response }))\n )\n : of({\n request,\n response: {\n data: [] as T[],\n total: 0,\n limit: request.limit,\n offset: request.offset,\n } as Page<T>,\n })\n ),\n catchError((request) => {\n this.changeComponent(this.tableComponent, {\n loading: false,\n });\n return of({\n request: request as ExtendedRequestType<T>,\n response: {\n data: [] as T[],\n total: 0,\n limit: request.limit,\n offset: request.offset,\n } as Page<T>,\n });\n })\n )\n .subscribe(({ request, response }) =>\n this.setDataToControl(request, response)\n );\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['datasource']) {\n this.dataSourceService = convertDatasource(\n this.datasource,\n this.baseUrl,\n this.httpClient\n );\n\n if (this.autoBind) {\n this.parameters$.next({ offset: 0 });\n }\n }\n }\n\n reload() {\n this.parameters$.next({ ...this.parameters$.value });\n }\n\n private changeComponent(\n component: TableCore<T>,\n value: Partial<TableCore<T>>\n ) {\n setComponentProperties(component, value);\n this.changeDetectorRef.detectChanges();\n }\n\n private setDataToControl(request: RequestParams<T>, result: Page<T>): void {\n const data = result.data;\n const total = result.total;\n const transferedData = this.transformFn ? data.map((x) => this.transformFn?.(x)) : data;\n\n this.changeComponent(this.tableComponent, {\n lazy: !isFilterEmpty(request.filter) || data?.length < total || this.datasource instanceof BaseHttpService,\n data: transferedData as T[],\n loading: false,\n total,\n });\n }\n}\n","import { Directive, HostListener, Input } from \"@angular/core\";\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'v-button[useShortCut]',\n exportAs: 'useShortCut',\n standalone: true,\n })\n export class ButtonShortCutDirective\n {\n @Input() shortCutFn?: () => void;\n @Input() shortCutKey!: string;\n\n private keyMap: { [key: string]: boolean } = {};\n\n @HostListener('document:keydown', ['$event'])\n onKeyDown(event: KeyboardEvent) {\n this.keyMap[event.key.toLowerCase()] = true;\n this.checkShortcut();\n }\n \n @HostListener('document:keyup', ['$event'])\n onKeyUp(event: KeyboardEvent) {\n this.keyMap[event.key.toLowerCase()] = false;\n }\n\n private checkShortcut() {\n if (this.shortCutKey && this.shortCutFn) {\n const keys = this.shortCutKey.toLowerCase().split('+');\n const isShortcutPressed = keys.every((key) => this.keyMap[key]); \n if (isShortcutPressed) {\n this.shortCutFn?.();\n keys.forEach((key) => (this.keyMap[key] = false));\n }\n }\n }\n}","import {\r\n ChangeDetectorRef,\r\n Directive,\r\n inject,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n SimpleChanges,\r\n} from '@angular/core';\r\nimport { debounceTime, Subject, Subscription } from 'rxjs';\r\nimport { DEFAULT_DEBOUNCE_TIME, setComponentProperties } from '../common';\r\nimport { FilterCore, TABLE_COMPONENT_TOKEN, TableCore } from '../components';\r\n\r\n@Directive({\r\n // eslint-disable-next-line @angular-eslint/directive-selector\r\n selector: 'v-table[useFilter]',\r\n standalone: true,\r\n exportAs: 'tableFilterDirective',\r\n})\r\nexport class TableFilterDirective<T> implements OnChanges, OnDestroy {\r\n @Input({ required: true }) filterComponent!: FilterCore;\r\n\r\n private filterChange$ = new Subject<T>();\r\n private subscription: Subscription | undefined = undefined;\r\n\r\n private tableComponent = inject<TableCore<T>>(TABLE_COMPONENT_TOKEN);\r\n\r\n private changeDetectorRef = inject(ChangeDetectorRef);\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['filterComponent']) {\r\n this.unRegister();\r\n this.register();\r\n }\r\n }\r\n\r\n private onFilterChange(value: T): void {\r\n if (this.tableComponent?.filter !== value) {\r\n setComponentProperties(this.tableComponent, {\r\n filter: value,\r\n currentPage: 1,\r\n });\r\n \r\n this.changeDetectorRef.detectChanges();\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unRegister();\r\n }\r\n\r\n private unRegister() {\r\n this.subscription?.unsubscribe();\r\n }\r\n\r\n private register() {\r\n this.filterComponent.registerOnChange((value: T) => {\r\n this.filterChange$.next(value);\r\n });\r\n\r\n this.subscription = this.filterChange$\r\n .pipe(\r\n debounceTime(\r\n this.filterComponent.debounceTime ? 0 : DEFAULT_DEBOUNCE_TIME\r\n )\r\n )\r\n .subscribe((value) => this.onFilterChange(value));\r\n }\r\n}\r\n","type ErrorCodesFn = (value?: any) => string;\n\nexport const ErrorCodesFns: { [key: string]: ErrorCodesFn } = {\n required: () => `This field is required!`,\n email: () => `Email is in wrong format!`,\n iban: () => `IBAN is in wrong format!`,\n lowStrength: () => `Password too weak!`,\n customPasswordRequirements: () => `Password does not meet minimal requirements.`,\n fieldsNotMatching: () => `Passwords are not the same!`,\n validationError: (value: any) => `${value}`,\n};\n","import { AbstractControl, ValidationErrors } from '@angular/forms';\n\ntype ErrorValue = { key: string; value: string } | null;\n\nexport function getFirstErrorFromControl<T extends AbstractControl>(\n control: T\n): ErrorValue {\n if (!control || !control.errors) {\n return null;\n }\n const errors = control.errors ?? false;\n if (errors) {\n const key = Object.keys(control.errors)[0];\n const value = control.errors[key];\n return { key, value };\n }\n return null;\n}\n\nexport function getFirstError(errors: ValidationErrors): ErrorValue {\n if (errors) {\n const key = Object.keys(errors)[0];\n const value = errors[key];\n return { key, value };\n }\n return null;\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { ValidationErrors } from '@angular/forms';\nimport { ErrorCodesFns } from './error.codes';\nimport { getFirstError } from './error.models';\n\nconst EMPTY = '';\n\n@Pipe({\n name: 'error',\n standalone: true,\n})\nexport class ErrorPipe implements PipeTransform {\n transform(errors: ValidationErrors | undefined | null): string {\n if (!errors) {\n return EMPTY;\n }\n const error = getFirstError(errors);\n if (error) {\n const errorFn = ErrorCodesFns[error.key];\n if (!errorFn) {\n return EMPTY;\n }\n return ErrorCodesFns[error.key](error.value);\n }\n return EMPTY;\n }\n}\n","type WarningCodesFn = (value?: any) => string;\n\nexport const WarningCodesFns: { [key: string]: WarningCodesFn } = {\n validationWarning: (value: any) => `${value}`,\n};\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { ValidationErrors } from '@angular/forms';\nimport { getFirstError } from './error.models';\nimport { WarningCodesFns } from './warning.codes';\n\nconst EMPTY = '';\n\n@Pipe({\n name: 'warning',\n standalone: true,\n})\nexport class WarningPipe implements PipeTransform {\n transform(warnings: ValidationErrors | undefined | null): string {\n if (!warnings) {\n return EMPTY;\n }\n const error = getFirstError(warnings);\n if (error) {\n const errorFn = WarningCodesFns[error.key];\n if (!errorFn) {\n return EMPTY;\n }\n return WarningCodesFns[error.key](error.value);\n }\n return EMPTY;\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'keyOrFn',\n pure: false,\n standalone: true,\n})\nexport class KeyOrFunctionPipe implements PipeTransform {\n transform(keyOrFn: any, row: any): any {\n if (keyOrFn instanceof Function) {\n return keyOrFn(row);\n } else if (typeof keyOrFn === 'string') {\n const value = row[keyOrFn];\n if (value) {\n return value;\n }\n } else if (typeof keyOrFn === 'boolean') {\n return keyOrFn;\n }\n return '';\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\n\n@Pipe({\n name: 'enumToList',\n standalone: true,\n})\nexport class EnumToListPipe implements PipeTransform {\n transform(data: any): any[] {\n return Object.keys(data)\n .filter(key => isNaN(Number(key)))\n .map(key => ({\n label: key,\n value: data[key as keyof typeof data],\n }));\n }\n}","import { toCzechDateTimeString } from \"@verisoft/core\";\n\n/* eslint-disable @typescript-eslint/ban-types */\nexport class Format {\n static concatArray(value: any[], itemFormatter?: Function, delimeter = ';') {\n if (!value) {\n return '';\n }\n\n return value\n .map(item => itemFormatter ? itemFormatter(item) : item)\n .filter(item => item !== undefined && item !== null)\n .join(`${delimeter} `);\n }\n\n static czechDate(value: Date | string) {\n return toCzechDateTimeString(value);\n }\n\n static date(value: Date | string) {\n if (!value) {\n return '';\n }\n\n if (typeof value === 'string') {\n value = new Date(value);\n }\n\n return value.getDate() + '. ' + (value.getMonth() + 1) + '. ' + value.getFullYear();\n }\n\n static dateAndTime(value: Date | string) {\n if (!value) {\n return '';\n }\n\n if (typeof value === 'string') {\n value = new Date(value);\n }\n\n return ('0' + value.getDate()).slice(-2)\n + '.' + ('0' + (value.getMonth() + 1)).slice(-2)\n + '.' + value.getFullYear() + ' ' + ('0' + value.getHours()).slice(-2)\n + ':' + ('0' + value.getMinutes()).slice(-2) + ':' + ('0' + value.getSeconds()).slice(-2);\n }\n\n static convertToUserLocaleDate(value?: Date | string) {\n if (!value) {\n return '';\n }\n\n if (typeof value === 'string') {\n value = new Date(value);\n }\n\n return value.toLocaleDateString(navigator.language, { timeZone: 'UTC' });\n }\n\n static bool(value: boolean) {\n if (value) {\n return 'Yes';\n } else {\n return 'No';\n }\n }\n\n static boolWithIcon(value: boolean) {\n if (value) {\n return `<span>✓</span>`;\n } else {\n return `<span>⨯</span>`;\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2.PageHeaderService","i1.SideMenuService","EMPTY"],"mappings":"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"}
1
+ {"version":3,"file":"verisoft-ui-core.mjs","sources":["../../../../../src/libs/ui-core/src/lib/common/angular-helper.ts","../../../../../src/libs/ui-core/src/lib/common/control.models.ts","../../../../../src/libs/ui-core/src/lib/common/constants.ts","../../../../../src/libs/ui-core/src/lib/common/datasource-component.model.ts","../../../../../src/libs/ui-core/src/lib/common/filter.ts","../../../../../src/libs/ui-core/src/lib/common/rxjs.ts","../../../../../src/libs/ui-core/src/lib/common/download-file.ts","../../../../../src/libs/ui-core/src/lib/components/action-button-group/action-button-group.model.ts","../../../../../src/libs/ui-core/src/lib/components/base-form/base-form-input.component.ts","../../../../../src/libs/ui-core/src/lib/services/screen-size.service.ts","../../../../../src/libs/ui-core/src/lib/services/confirm-dialog.service.ts","../../../../../src/libs/ui-core/src/lib/services/leave-form.service.ts","../../../../../src/libs/ui-core/src/lib/services/table.service.ts","../../../../../src/libs/ui-core/src/lib/components/base-form/models/base-form-input.models.ts","../../../../../src/libs/ui-core/src/lib/components/base-form/models/base-form.models.ts","../../../../../src/libs/ui-core/src/lib/components/base-form/base-form.component.ts","../../../../../src/libs/ui-core/src/lib/components/unsubscribe.component.ts","../../../../../src/libs/ui-core/src/lib/components/base-form/directives/detail-store.directive.ts","../../../../../src/libs/ui-core/src/lib/components/breadcrumb/breadcrumb.model.ts","../../../../../src/libs/ui-core/src/lib/components/breadcrumb/breadcrumb.service.ts","../../../../../src/libs/ui-core/src/lib/components/breadcrumb/breadcrumbcore.component.ts","../../../../../src/libs/ui-core/src/lib/components/button/button.model.ts","../../../../../src/libs/ui-core/src/lib/components/dropdown-button/dropdown-button.model.ts","../../../../../src/libs/ui-core/src/lib/components/calendar/calendar.model.ts","../../../../../src/libs/ui-core/src/lib/components/checkbox/checkbox.model.ts","../../../../../src/libs/ui-core/src/lib/components/confirm-dialog/confirm-dialog.model.ts","../../../../../src/libs/ui-core/src/lib/components/dropdown/dropdown.model.ts","../../../../../src/libs/ui-core/src/lib/components/filter/filter.model.ts","../../../../../src/libs/ui-core/src/lib/components/form-field/form-field.model.ts","../../../../../src/libs/ui-core/src/lib/components/generic-field/generic-field.model.ts","../../../../../src/libs/ui-core/src/lib/components/generic-form/generic-form.component.ts","../../../../../src/libs/ui-core/src/lib/components/header/header.model.ts","../../../../../src/libs/ui-core/src/lib/components/input-group/input-group.model.ts","../../../../../src/libs/ui-core/src/lib/components/loader/loader.model.ts","../../../../../src/libs/ui-core/src/lib/components/multiselect/mutiselect.model.ts","../../../../../src/libs/ui-core/src/lib/components/number-input/number-input.model.ts","../../../../../src/libs/ui-core/src/lib/components/page-header/page-header.model.ts","../../../../../src/libs/ui-core/src/lib/components/page-header/page-header.service.ts","../../../../../src/libs/ui-core/src/lib/components/page-header/page-headercore.component.ts","../../../../../src/libs/ui-core/src/lib/components/password/password.model.ts","../../../../../src/libs/ui-core/src/lib/components/radiobutton/radiobutton.model.ts","../../../../../src/libs/ui-core/src/lib/components/section/section.model.ts","../../../../../src/libs/ui-core/src/lib/components/side-menu/side-menu.model.ts","../../../../../src/libs/ui-core/src/lib/components/side-menu/services/side-menu.service.ts","../../../../../src/libs/ui-core/src/lib/components/side-menu/services/side-menu-provider.service.ts","../../../../../src/libs/ui-core/src/lib/components/side-menu/directives/side-menu-service.directive.ts","../../../../../src/libs/ui-core/src/lib/components/slider/slider.model.ts","../../../../../src/libs/ui-core/src/lib/components/snackbar/snackbar.model.ts","../../../../../src/libs/ui-core/src/lib/components/stepper/stepper.model.ts","../../../../../src/libs/ui-core/src/lib/components/switch/switch.model.ts","../../../../../src/libs/ui-core/src/lib/components/tab-view/tab-view.model.ts","../../../../../src/libs/ui-core/src/lib/components/table/table.models.ts","../../../../../src/libs/ui-core/src/lib/components/table/table-column.directive.ts","../../../../../src/libs/ui-core/src/lib/components/table/column-configuration.ts","../../../../../src/libs/ui-core/src/lib/components/table/table-builder.ts","../../../../../src/libs/ui-core/src/lib/components/table-filter/table-filter.model.ts","../../../../../src/libs/ui-core/src/lib/components/textarea/textarea.model.ts","../../../../../src/libs/ui-core/src/lib/components/textfield/textfield.model.ts","../../../../../src/libs/ui-core/src/lib/components/tooltip/tooltip.model.ts","../../../../../src/libs/ui-core/src/lib/components/icons/icons.model.ts","../../../../../src/libs/ui-core/src/lib/components/icons/icons.component.ts","../../../../../src/libs/ui-core/src/lib/components/tag/tag.model.ts","../../../../../src/libs/ui-core/src/lib/directives/datasource.directive.ts","../../../../../src/libs/ui-core/src/lib/directives/table-datasource.directive.ts","../../../../../src/libs/ui-core/src/lib/directives/shortcut.directive.ts","../../../../../src/libs/ui-core/src/lib/directives/table-filter.directive.ts","../../../../../src/libs/ui-core/src/lib/pipes/error/error.codes.ts","../../../../../src/libs/ui-core/src/lib/pipes/error/error.models.ts","../../../../../src/libs/ui-core/src/lib/pipes/error/error.pipe.ts","../../../../../src/libs/ui-core/src/lib/pipes/error/warning.codes.ts","../../../../../src/libs/ui-core/src/lib/pipes/error/warning.pipe.ts","../../../../../src/libs/ui-core/src/lib/pipes/keyOrFn/keyOrFn.pipe.ts","../../../../../src/libs/ui-core/src/lib/pipes/helper/enumToList.pipe.ts","../../../../../src/libs/ui-core/src/lib/format/format.ts","../../../../../src/libs/ui-core/src/verisoft-ui-core.ts"],"sourcesContent":["import { OnChanges, SimpleChange, SimpleChanges } from '@angular/core';\r\n\r\nexport function setComponentProperties<TComponent>(\r\n component: TComponent,\r\n value: Partial<TComponent>,\r\n firstChange = false\r\n) {\r\n if (!value || !component) {\r\n return;\r\n }\r\n\r\n const simpleChanges = Object.keys(value).reduce(\r\n (changes: SimpleChanges, property: string) => {\r\n const indexedComponent = component as unknown as {\r\n [key: string]: TComponent[keyof TComponent];\r\n };\r\n const indexedValue = value as unknown as {\r\n [key: string]: TComponent[keyof TComponent];\r\n };\r\n const previousValue = indexedComponent[property];\r\n const currentValue = indexedValue[\r\n property\r\n ] as TComponent[keyof TComponent];\r\n if (currentValue !== previousValue) {\r\n indexedComponent[property] = currentValue;\r\n const change = new SimpleChange(\r\n previousValue,\r\n currentValue,\r\n firstChange\r\n );\r\n\r\n return { ...changes, [property]: change };\r\n }\r\n\r\n return changes;\r\n },\r\n {}\r\n );\r\n\r\n const changeableComponent = component as unknown as OnChanges;\r\n if (changeableComponent['ngOnChanges']) {\r\n changeableComponent.ngOnChanges(simpleChanges);\r\n }\r\n}\r\n","export enum ControlSeverity {\r\n success = 'success',\r\n info = 'info',\r\n warning = 'warning',\r\n danger = 'danger',\r\n help = 'help',\r\n primary = 'primary',\r\n secondary = 'secondary',\r\n contrast = 'contrast',\r\n}\r\n\r\nexport enum GovControlSeverity {\r\n primary = 'primary',\r\n secondary = 'secondary',\r\n neutral = 'neutral',\r\n error = 'error',\r\n success = 'success',\r\n warning = 'warning',\r\n}\r\n\r\nexport enum GovButtonType {\r\n solid = 'solid',\r\n outlined = \"outlined\",\r\n base = \"base\",\r\n link = \"link\"\r\n}\r\n\r\nexport enum IconPosition {\r\n left = 'left',\r\n right = 'right',\r\n}\r\n\r\nexport enum SlotPosition {\r\n top = 'top',\r\n bottom = 'bottom',\r\n}\r\n\r\nexport enum Position{\r\n top = 'top',\r\n bottom = 'bottom',\r\n left = 'left',\r\n right = 'right',\r\n}\r\n\r\nexport enum FieldSize {\r\n small = 'small',\r\n medium = 'medium',\r\n large = 'large',\r\n xl = 'xl',\r\n}\r\n\r\nexport enum FieldAlign {\r\n left = 'left',\r\n center = 'center',\r\n right = 'right',\r\n}\r\n\r\nexport enum FieldType {\r\n text = 'text',\r\n number = 'number',\r\n password = 'password',\r\n search = 'search',\r\n date = 'date',\r\n}\r\n\r\nexport enum LayoutType {\r\n horizontal = 'horizontal',\r\n vertical = 'vertical',\r\n}\r\n\r\nexport type ControlSeverityType = keyof typeof ControlSeverity;\r\nexport type GovControlSeverityType = keyof typeof GovControlSeverity;\r\nexport type GovButtonTypeType = keyof typeof GovButtonType;\r\nexport type IconPositionType = keyof typeof IconPosition;\r\nexport type SlotPositionType = keyof typeof SlotPosition;\r\nexport type PositionType = keyof typeof Position;\r\nexport type FieldSizeType = keyof typeof FieldSize;\r\nexport type FieldAlignType = keyof typeof FieldAlign;\r\nexport type FieldTypeType = keyof typeof FieldType;\r\nexport type LayoutTypeType = keyof typeof LayoutType;\r\n","export const DEFAULT_DEBOUNCE_TIME = 300;\n\nexport const DEFAULT_PAGINATION = [10, 25, 50, 100];\n\nexport const MAX_COLUMN_CHAR_COUNT = 30;","import { EventEmitter, SimpleChanges } from '@angular/core';\r\nimport { FilterEvent, LazyLoadEvent, RequestParams } from '@verisoft/core';\r\n\r\nexport interface DataSourceComponentModel<TEntity> {\r\n ngOnChanges?: (changes: SimpleChanges) => void;\r\n lazy: boolean;\r\n loading: boolean;\r\n filter: boolean;\r\n options: TEntity[] | undefined;\r\n optionValue: string | undefined;\r\n optionLabel: string | undefined;\r\n showed: EventEmitter<any>;\r\n cleared: EventEmitter<any>;\r\n filtered: EventEmitter<FilterEvent>;\r\n lazyLoad: EventEmitter<LazyLoadEvent>;\r\n}\r\n\r\nexport function setDataToArray<T>(\r\n targetArray: (T | undefined)[] | undefined,\r\n data: T[],\r\n offset = 0,\r\n total: number | undefined = undefined,\r\n defaultItem: T | undefined = undefined\r\n): (T | undefined)[] {\r\n const totalItems = total ?? data.length + offset;\r\n if (!targetArray) {\r\n targetArray = Array(totalItems).fill(defaultItem);\r\n }\r\n\r\n if (targetArray.length < totalItems) {\r\n targetArray = targetArray.concat(\r\n new Array(totalItems - targetArray.length).fill(defaultItem)\r\n );\r\n }\r\n\r\n for (let i = 0; i < data.length; i++) {\r\n targetArray[i + offset] = data[i] ?? defaultItem;\r\n }\r\n\r\n return targetArray;\r\n}\r\n\r\nexport type ExtendedRequestType<T> = RequestParams<T> & { useNewData: boolean}\r\n","export function isFilterEmpty<T>(filter: Partial<T> | undefined) {\r\n if (filter == undefined) {\r\n return true;\r\n }\r\n\r\n return !Object.entries(filter).some((x) => x[1] != undefined);\r\n}\r\n","import { QueryList } from '@angular/core';\r\nimport { debounceTime, map, merge, startWith, switchMap } from 'rxjs';\r\nimport { NotificableProperty } from './notificable-property.model';\r\n\r\nexport function queryListChanged<TEntity>(list: QueryList<TEntity>) {\r\n return list.changes.pipe(\r\n startWith({}),\r\n switchMap(() => {\r\n const actionPropertyChanges$ = list\r\n .toArray()\r\n .filter((action) => (<NotificableProperty>action).propertyChanged)\r\n .map((action) => (<NotificableProperty>action).propertyChanged);\r\n\r\n return merge(...actionPropertyChanges$).pipe(\r\n startWith({}),\r\n map(() => list.toArray())\r\n );\r\n }),\r\n debounceTime(50)\r\n );\r\n}\r\n","export function downloadText(\r\n filename: string,\r\n text: string,\r\n mimeType: string | undefined = 'text/plain'\r\n): void {\r\n const blob = new Blob([text], { type: mimeType });\r\n downloadFile(filename, blob);\r\n}\r\n\r\nexport function downloadFile(\r\n filename: string,\r\n blob: Blob\r\n): void {\r\n const url = window.URL.createObjectURL(blob);\r\n const a = document.createElement('a');\r\n a.href = url;\r\n a.download = filename;\r\n a.click();\r\n window.URL.revokeObjectURL(url);\r\n}\r\n","import { InjectionToken } from '@angular/core';\nimport { IconPositionType } from '../../common';\nimport { ActionButton } from './action-button.model';\n\nexport const ACTION_BUTTON_GROUP_COMPONENT_TOKEN =\n new InjectionToken<ActionButtonGroupCore>('ActionButtonGroupComponentToken');\n\nexport interface ActionButtonGroupCore {\n maxItems: number;\n maxItemsMobile: number;\n items: ActionButton[];\n menuIconPos: IconPositionType;\n menuIcon: string;\n label?: string;\n showLabels: boolean;\n}\n","\nimport { Component, inject, Input, OnInit } from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n FormControl,\n FormControlDirective,\n FormControlName,\n FormGroupDirective,\n NgControl,\n NgModel,\n ReactiveFormsModule,\n} from '@angular/forms';\nimport { ERROR_PROVIDER_TOKEN } from '@verisoft/core';\nimport { BaseInputControls } from './models/base-form-input.models';\n\nconst noop = () => {\n /* */\n};\n\n@Component({\n template: '',\n imports: [ReactiveFormsModule]\n})\nexport class BaseFormInputComponent\n implements BaseInputControls<any>, ControlValueAccessor, OnInit\n{\n readonly ngControl?: NgControl;\n\n readonly errorService = inject(ERROR_PROVIDER_TOKEN);\n\n formControl!: FormControl;\n\n constructor(private readonly control: NgControl) {\n this.ngControl = control;\n if (this.control) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n @Input()\n label?: string;\n\n @Input()\n required = false;\n\n @Input()\n readonly!: boolean;\n\n @Input()\n disabled!: boolean;\n\n @Input()\n tooltip!: string;\n\n @Input()\n formDisplay: 'flex' | 'block' = 'flex';\n\n @Input()\n clearable = true;\n\n @Input()\n placeholder?: string = '';\n\n @Input()\n testId?: string;\n\n inputId = Math.random().toString(36).substring(2);\n\n selectionChanged: any = noop;\n\n onTouch: any = noop;\n\n registerOnChange(fn: any): void {\n this.selectionChanged = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouch = fn;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n writeValue(value: any): void {}\n\n ngOnInit(): void {\n if (this.ngControl) {\n if (this.ngControl instanceof FormControlName) {\n this.formControl =\n this.ngControl.control ||\n ((this.ngControl.formDirective as FormGroupDirective)?.form.controls[\n this.ngControl.name as string\n ] as FormControl);\n } else if (\n this.ngControl instanceof FormControlDirective ||\n this.ngControl instanceof NgModel\n ) {\n this.formControl = this.ngControl.control;\n if (this.ngControl instanceof NgModel) {\n this.formControl.valueChanges.subscribe(() =>\n this.ngControl?.viewToModelUpdate(this.control?.value)\n );\n }\n } else {\n this.formControl = new FormControl();\n }\n } else {\n this.formControl = new FormControl();\n }\n }\n\n isRequired() {\n if (this.ngControl) {\n const validator = this.ngControl?.control?.validator?.(\n {} as AbstractControl\n );\n return this.required || (validator && validator['required']);\n }\n return this.required;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ScreenSizeService {\n isMobileBlock = new BehaviorSubject<boolean>(false);\n prevState = false;\n\n constructor() {\n this.checkScreenSize();\n window.addEventListener('resize', async () => {\n await this.checkScreenSize();\n });\n }\n\n async checkScreenSize() {\n const isMobile = window.matchMedia('(max-width: 768px)').matches;\n if (isMobile !== this.prevState) {\n this.prevState = isMobile;\n this.isMobileBlock.next(isMobile);\n }\n }\n}\n","import { EventEmitter, Injectable, Output } from '@angular/core';\nimport { ExtendedDialogData } from '../components';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DialogService {\n @Output() showEvent: EventEmitter<ExtendedDialogData> =\n new EventEmitter<ExtendedDialogData>();\n\n @Output() closeEvent: EventEmitter<null> = new EventEmitter();\n\n private currentDialogData: ExtendedDialogData | null = null;\n\n showDialog<TInputs, TOutputs>(\n data: ExtendedDialogData<TInputs, TOutputs>\n ): void {\n const mappedData = this.mapInputAndOutpus(data);\n const dialogData = {\n ...data,\n data: mappedData,\n };\n\n this.currentDialogData = dialogData;\n this.showEvent.emit(dialogData);\n }\n\n updateDialog<TInputs = unknown, TOutputs = unknown>(\n patch: Partial<ExtendedDialogData<TInputs, TOutputs>>\n ): void {\n if (!this.currentDialogData) {\n return;\n }\n\n const mergedDialogData: ExtendedDialogData = {\n ...this.currentDialogData,\n ...patch,\n data: this.currentDialogData.data,\n componentType: this.currentDialogData.componentType,\n };\n\n this.currentDialogData = mergedDialogData;\n this.showEvent.emit(mergedDialogData);\n }\n\n private mapInputAndOutpus<TInputs, TOutputs>(\n data: ExtendedDialogData<TInputs, TOutputs>\n ): ExtendedDialogData<TInputs, TOutputs> {\n const inputsAndOutputs = data.data as TInputs & TOutputs;\n return {\n ...data.data,\n ...Object.keys(inputsAndOutputs ?? {})\n .filter(\n (key) => typeof inputsAndOutputs[key as keyof TOutputs] === 'function'\n )\n .reduce((acc, key) => {\n acc[key] = (value: unknown) => {\n if (typeof inputsAndOutputs[key as keyof TOutputs] === 'function') {\n (\n inputsAndOutputs[key as keyof TOutputs] as (\n value: unknown\n ) => void\n )(value);\n }\n };\n return acc;\n }, {} as Record<string, unknown>),\n };\n }\n\n closeModal(): void {\n this.currentDialogData = null;\n this.closeEvent.emit();\n }\n}\n","import { Injectable, inject } from '@angular/core';\nimport { CanDeactivate } from '@angular/router';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Observable, Subject } from 'rxjs';\nimport { PreventUnsavedChangesCore, CommonIcons } from '../common';\nimport { DialogService } from './confirm-dialog.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PreventUnsavedChangesDirective implements CanDeactivate<PreventUnsavedChangesCore> {\n private dialogService = inject(DialogService);\n private translateService = inject(TranslateService);\n private readonly Icons!: CommonIcons;\n\n canDeactivate(component: PreventUnsavedChangesCore): Observable<boolean> | Promise<boolean> | boolean {\n if (!component || !component.canDeactivate) {\n return true;\n }\n const result = component.canDeactivate();\n return result;\n }\n\n showConfirmationDialog(): Observable<boolean> {\n const resultSubject = new Subject<boolean>();\n\n const title = this.translateService.instant('VALIDATIONS.UNSAVED_CHANGES');\n const message = this.translateService.instant('VALIDATIONS.LEAVING_UNSAVED_FORM');\n const leaveButton = this.translateService.instant('BUTTONS.LEAVE');\n const stayButton = this.translateService.instant('BUTTONS.STAY');\n\n this.dialogService.showDialog({\n title: title,\n headerIcon: this.Icons.infoCircle,\n innerHTML: `<p>${message}</p>`,\n showCancelButton: true,\n confirmButtonText: stayButton,\n cancelButtonText: leaveButton,\n confirmButtonFn: () => {\n resultSubject.next(false);\n resultSubject.complete();\n this.dialogService.closeModal();\n },\n cancelButtonFn: () => {\n resultSubject.next(true);\n resultSubject.complete();\n this.dialogService.closeModal();\n },\n });\n\n return resultSubject.asObservable();\n }\n}\n","import { Injectable, signal } from \"@angular/core\";\nimport { TableSignal } from \"../components\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class TableService {\n readonly reload = signal<TableSignal | symbol>(Symbol())\n\n /**\n * If name is set, reload a specific table with the set`[tableName]`\n *\n * If name is NOT set, reload all tables in the current DOM\n * */\n forceReload(name?: string): void {\n if (name) {\n this.reload.set({ name: name, symbol: Symbol() });\n } else {\n this.reload.set(Symbol());\n }\n }\n}\n","import { NgControl } from '@angular/forms';\n\nexport abstract class BaseInputControls<T> {\n value?: T | null;\n\n readonly ngControl?: NgControl;\n\n readonly label?: string;\n\n readonly required!: boolean;\n}\n","export interface BaseFormCore {\n label?: string;\n required: boolean;\n readonly: boolean;\n tooltip: string;\n formDisplay: 'flex' | 'block';\n clearable: boolean;\n placeholder?: string\n testId?: string;\n}\n\nexport interface BaseFormDirectiveCore<T> {\n initialData: T | any;\n}\n\nexport interface FormState {\n dirty: boolean;\n valid: boolean;\n}\n\nexport function isFormStateEqual(current: FormState, other: FormState) {\n if (!current && !other) {\n return true;\n }\n\n if (current && other) {\n return current.dirty === other.dirty && current.valid === other.valid;\n }\n\n return false;\n}\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Directive,\n EventEmitter,\n HostListener,\n inject,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n ViewChild,\n} from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { Subject, takeUntil, filter, map, Observable } from 'rxjs';\nimport { PreventUnsavedChangesCore } from '../../common';\nimport { PreventUnsavedChangesDirective } from '../../services';\nimport { FormState, isFormStateEqual } from './models';\nimport { cloneDeep } from '@verisoft/core';\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[v-baseForm]',\n standalone: true,\n})\nexport abstract class BaseFormDirective<T extends object>\n implements OnInit, OnChanges, OnDestroy, AfterViewInit, PreventUnsavedChangesCore\n{\n @Input() data!: T | any;\n @Output() dataChange = new EventEmitter<T>();\n @Output() statusChange = new EventEmitter<FormState>();\n @Output() formSubmit = new EventEmitter<T>();\n @Output() formClear = new EventEmitter<void>();\n\n formDestroyed$ = new Subject<void>();\n keys: { key: string; alias?: string; type?: string; readOnly: string }[] = [];\n formGroup!: FormGroup;\n cd = inject(ChangeDetectorRef);\n valueInitialization = false;\n lastState!: FormState;\n guardViewChild!: ViewChild;\n formSubmitted = false;\n protected guard = inject(PreventUnsavedChangesDirective);\n\n @HostListener('window:beforeunload', ['$event'])\n unloadHandler(event: BeforeUnloadEvent) {\n if (this.formGroup.dirty) {\n event.preventDefault();\n }\n }\n\n canDeactivate(): Observable<boolean> | Promise<boolean> | boolean {\n if (this.formGroup.dirty && !this.formSubmitted) {\n const result = this.guard.showConfirmationDialog();\n return result;\n }\n\n return true;\n }\n\n ngOnInit(): void {\n this.initializeFormGroup();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['data'] && this.formGroup) {\n this.valueInitialization = true;\n const dirty = this.formGroup.dirty;\n\n this.formGroup.patchValue(this.fromModel(this.data), {\n emitEvent: false,\n onlySelf: true,\n });\n\n this.formGroup.updateValueAndValidity();\n if (!dirty) {\n this.formGroup.markAsPristine();\n }\n\n this.valueInitialization = false;\n this.createAndEmitIfFormStateChanged();\n }\n }\n\n ngAfterViewInit() {\n this.cd.detectChanges();\n }\n\n ngOnDestroy(): void {\n this.formDestroyed$.next();\n this.formDestroyed$.complete();\n }\n\n abstract createFormGroup(): FormGroup;\n\n createCompleteData() {\n const change = this.toModel(this.formGroup?.value);\n this.recursiveObjectAttributesTransformation(change);\n const updatedData = this.applyChanges(\n cloneDeep(this.data),\n cloneDeep(change)\n );\n\n return updatedData;\n }\n\n submit() {\n this.formSubmitted = true;\n this.formGroup.markAllAsTouched();\n if (!this.formGroup.invalid) {\n this.formSubmit.emit(this.createCompleteData());\n }\n this.formGroup.markAsPristine();\n }\n\n clear() {\n this.formClear.emit();\n }\n\n private initializeFormGroup() {\n this.formGroup = this.createFormGroup();\n this.valueInitialization = true;\n this.formGroup.patchValue(this.fromModel(this.data), {\n emitEvent: false,\n onlySelf: true,\n });\n\n this.formGroup.markAsPristine();\n this.initValueChanges();\n this.initStatusChanges();\n this.valueInitialization = false;\n }\n\n private initValueChanges() {\n this.formGroup.valueChanges\n .pipe(\n takeUntil(this.formDestroyed$),\n filter(() => !this.valueInitialization),\n map((value) => {\n const change = this.toModel(value);\n this.recursiveObjectAttributesTransformation(change);\n const updatedData = this.applyChanges(\n cloneDeep(this.data),\n cloneDeep(change)\n );\n return updatedData;\n })\n )\n .subscribe((updatedData) => {\n this.dataChange.emit(updatedData);\n });\n }\n\n private initStatusChanges() {\n this.formGroup.statusChanges\n .pipe(takeUntil(this.formDestroyed$))\n .subscribe(() => {\n if (!this.valueInitialization) {\n this.createAndEmitIfFormStateChanged();\n }\n });\n\n this.createAndEmitIfFormStateChanged();\n }\n\n private createAndEmitIfFormStateChanged() {\n const formState: FormState = {\n valid: !this.formGroup.invalid,\n dirty: this.formGroup.dirty,\n };\n\n if (!isFormStateEqual(formState, this.lastState)) {\n this.lastState = formState;\n this.statusChange.emit(formState);\n }\n }\n\n protected applyChanges(data: T, changes: Partial<T>): T {\n return Object.assign(data || ({} as T), changes);\n }\n\n protected toModel(data: T): Partial<T> {\n return data || {};\n }\n\n protected fromModel(data: T): T {\n return { ...(data || {}) } as T;\n }\n\n private recursiveObjectAttributesTransformation(obj: any): void {\n this.recursiveObjectAttributesTraversal(\n obj,\n this.transformEmptyStringToNullStringFn\n );\n }\n\n private recursiveObjectAttributesTraversal(\n obj: any,\n transformationFn: (obj: any, key: string) => void\n ) {\n if (\n obj === null ||\n transformationFn === null ||\n typeof transformationFn !== 'function'\n ) {\n return;\n }\n\n const traverse = (obj: any) => {\n for (const key in obj) {\n // eslint-disable-next-line no-prototype-builtins\n if (obj.hasOwnProperty(key)) {\n transformationFn(obj, key);\n\n if (typeof obj[key] === 'object') {\n traverse(obj[key]);\n }\n }\n }\n };\n\n traverse(obj);\n }\n\n private transformEmptyStringToNullStringFn(obj: any, key: string) {\n // if empty string - transformation to null string\n if (typeof obj[key] === 'string' && obj[key] === '') {\n try {\n obj[key] = null;\n } catch (error) {\n console.error(`Cannot modify ${key}: ${error}`)\n }\n }\n }\n}\n","import { Directive, OnDestroy } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Directive()\nexport abstract class UnsubscribeComponent implements OnDestroy {\n destroyed$ = new Subject<void>();\n\n ngOnDestroy() {\n this.destroyed$.next();\n this.destroyed$.complete();\n }\n}\n","import {\n Directive,\n AfterViewInit,\n inject,\n Input,\n OnInit,\n ChangeDetectorRef,\n OnDestroy,\n} from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { createFeatureSelector, createSelector, Store } from '@ngrx/store';\nimport {\n BackendValidationError,\n createInitDetailAction,\n createInitNewDetailAction,\n createResetStateAction,\n createUpdateDetailAction,\n createUpdateDetailSetErrorsAction,\n createUpdateFormStateAction,\n DetailState,\n} from '@verisoft/store';\nimport { takeUntil } from 'rxjs';\nimport { UnsubscribeComponent } from '../../unsubscribe.component';\nimport { BaseFormDirective } from '../base-form.component';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[v-useDetailStore]',\n exportAs: 'useDetailStore',\n standalone: true,\n})\nexport class DetailStoreDirective\n extends UnsubscribeComponent\n implements OnInit, AfterViewInit, OnDestroy\n{\n @Input({ required: true }) form!: BaseFormDirective<any>;\n\n @Input({ required: true }) detailsRepository!: string;\n\n @Input() autoBind = true;\n\n @Input() detailId!: string | number | undefined;\n\n @Input({ required: true }) ngrxFeatureKey!: string;\n\n @Input() destroyForm = true;\n\n @Input() readonly = false;\n\n @Input() readonlyControlNames: string[] = [];\n\n store = inject(Store);\n cdr = inject(ChangeDetectorRef);\n route = inject(ActivatedRoute);\n\n private itemCache: any = null;\n private loaded!: boolean;\n\n ngOnInit(): void {\n if (!this.loaded) {\n this.listenFormState();\n }\n this.listenFormChange();\n this.listenFormStatusChange();\n }\n\n ngAfterViewInit(): void {\n if (this.autoBind && !this.loaded) {\n this.initForm();\n }\n }\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n if (this.destroyForm) {\n this.store.dispatch(createResetStateAction(this.detailsRepository)());\n }\n }\n\n private initForm() {\n if (this.detailId === 'create') {\n this.store.dispatch(createInitNewDetailAction(this.detailsRepository)());\n } else {\n this.store.dispatch(\n createInitDetailAction(this.detailsRepository)({ obj: this.detailId })\n );\n }\n\n if (this.readonly) {\n this.form.formGroup.disable();\n return;\n }\n\n this.readonlyControlNames.forEach(x => {\n this.form.formGroup.get(x)?.disable();\n });\n }\n\n private listenFormState() {\n const selectIncomeData = createSelector(\n createFeatureSelector<any>(this.ngrxFeatureKey),\n (state: any) => state?.[this.detailsRepository] as DetailState<any>\n );\n this.store\n .select(selectIncomeData)\n .pipe(takeUntil(this.destroyed$))\n .subscribe(\n (\n { item, loaded, backendValidationErrors } = {\n item: undefined,\n loaded: false,\n saveItemState: { saveInProgress: false },\n backendValidationErrors: []\n }\n ) => {\n if (item\n && ((item.validationErrors || item.validationWarnings) && !this.form.formGroup.dirty)\n || backendValidationErrors.length\n ) {\n this.handleValidation(\n 'propertyName',\n item.validationWarnings || [],\n 'validationWarning',\n 'warningMessage'\n );\n this.handleValidation(\n 'propertyName',\n item.validationErrors || [],\n 'validationError',\n 'errorMessage'\n );\n\n if (this.itemCache && this.isStateChanged(item) && backendValidationErrors.length) {\n backendValidationErrors = this.dispatchErrors(item, backendValidationErrors);\n }\n\n this.handleBackendValidation(backendValidationErrors);\n this.cdr.markForCheck();\n }\n\n this.itemCache = item;\n\n this.loaded = loaded;\n this.cdr.detectChanges();\n }\n );\n }\n\n private listenFormChange() {\n this.form.dataChange.pipe(takeUntil(this.destroyed$)).subscribe((item) => {\n this.store.dispatch(\n createUpdateDetailAction(this.detailsRepository)({ item })\n );\n });\n }\n\n private listenFormStatusChange() {\n this.form.statusChange\n .pipe(takeUntil(this.destroyed$))\n .subscribe((formState) => {\n this.store.dispatch(\n createUpdateFormStateAction(this.detailsRepository)({ formState })\n );\n });\n }\n\n private handleValidation = (\n controlName: string,\n errors: any[],\n errorKey: string,\n messageKey: string\n ) => {\n if (errors.length > 0) return;\n errors.forEach((error: any) => {\n const control = this.form.formGroup.get(error[controlName]);\n if (control) {\n control.disabled\n ? control.disable({ emitEvent: false, onlySelf: true })\n : control.enable({ emitEvent: false, onlySelf: true });\n control.setErrors(\n { [errorKey]: error[messageKey] },\n { emitEvent: true }\n );\n control.markAsDirty();\n }\n });\n };\n\n private handleBackendValidation(errors: BackendValidationError[]) {\n errors.forEach(({ parameters, code }: BackendValidationError) => {\n const control = this.form.formGroup.get(this.normalizePropertyNames(parameters));\n if (!control) return;\n\n control[control.disabled ? \"disable\" : \"enable\"]({ emitEvent: false, onlySelf: true });\n control.setErrors({ \"validationError\": code }, { emitEvent: true });\n control.markAsDirty();\n });\n }\n\n private dispatchErrors(item: any, errors: BackendValidationError[]): BackendValidationError[] {\n const error = errors.filter((e: BackendValidationError) => {\n return this.itemCache[this.normalizePropertyNames(e.parameters)] === item[this.normalizePropertyNames(e.parameters)];\n });\n\n this.store.dispatch(\n createUpdateDetailSetErrorsAction(this.detailsRepository)({ error })\n );\n\n return error;\n }\n\n private normalizePropertyNames(input: string): string {\n return String(input[0]).toLocaleLowerCase() + String(input).slice(1);\n }\n\n private isStateChanged(item: any): boolean {\n return item !== this.itemCache;\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { ActivatedRoute } from \"@angular/router\";\nimport { MenuItem } from '../side-menu';\n\nexport const BREADCRUMB_COMPONENT_TOKEN = new InjectionToken<BreadcrumbCore>(\n 'BreadcrumbComponentToken'\n);\n\nexport interface BreadcrumbCore {\n items: MenuItem[];\n homeRoute: string;\n useHomeRoute: boolean;\n}\n\nexport interface Breadcrumb {\n label: string;\n routerLink?: string;\n url?: string;\n active?: boolean;\n activatedRoute?: ActivatedRoute;\n}\n","import { EventEmitter, Injectable, Output } from '@angular/core';\nimport { Breadcrumb } from './breadcrumb.model';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class BreadcrumbService {\n @Output() routeChange: EventEmitter<Breadcrumb> = new EventEmitter();\n}\n","import {\n ChangeDetectorRef,\n Directive,\n Input,\n inject,\n OnInit,\n} from '@angular/core';\nimport { ActivatedRoute, NavigationEnd, Router } from '@angular/router';\nimport { filter, takeUntil } from 'rxjs';\nimport { MenuItem } from '../side-menu';\nimport { UnsubscribeComponent } from '../unsubscribe.component';\nimport { BreadcrumbCore } from './breadcrumb.model';\nimport { BreadcrumbService } from './breadcrumb.service';\n\n@Directive({\n \n})\nexport class BreadcrumbCoreComponent\n extends UnsubscribeComponent\n implements BreadcrumbCore, OnInit\n{\n @Input() items: MenuItem[] = [];\n @Input() homeRoute = '/';\n @Input() useHomeRoute = false;\n\n static readonly ROUTE_DATA_BREADCRUMB = 'breadcrumb';\n static readonly ROUTE_DATA_BREADCRUMB_URL = 'breadcrumb_url';\n static readonly ROUTE_DATA_NO_BREADCRUMB_ROUTE = 'breadcrumb_no_route';\n static readonly BREADCRUMB_HIDE = 'breadcrumb_hide';\n readonly home = { icon: 'pi pi-home', routerLink: this.homeRoute };\n\n router = inject(Router);\n activatedRoute = inject(ActivatedRoute);\n breadcrumbService = inject(BreadcrumbService);\n cdr = inject(ChangeDetectorRef);\n\n ngOnInit(): void {\n this.initBreadcrumbsCreation();\n this.initRouteChangeListen();\n }\n\n private initBreadcrumbsCreation() {\n this.router.events\n .pipe(\n filter((event) => event instanceof NavigationEnd),\n takeUntil(this.destroyed$)\n )\n .subscribe(\n () => (this.items = this.createBreadcrumbs(this.activatedRoute.root))\n );\n }\n\n private initRouteChangeListen() {\n this.breadcrumbService.routeChange\n .pipe(\n filter((x) => x.label !== 'Undefined'),\n takeUntil(this.destroyed$)\n )\n .subscribe((x) => {\n this.items = [\n ...this.items,\n {\n label: x.label,\n routerLink: x.routerLink,\n url: x.url,\n class: 'breadcrumb',\n },\n ];\n this.cdr.detectChanges();\n });\n }\n\n private createBreadcrumbs(\n route: ActivatedRoute,\n routerLink = '',\n breadcrumbs: MenuItem[] = []\n ): any {\n const children: ActivatedRoute[] = route.children;\n\n if (children.length === 0) {\n return breadcrumbs;\n }\n\n for (const child of children) {\n const routeURL: string = child.snapshot.url\n .map((segment) => segment.path)\n .join('/');\n\n if (!child.snapshot.data[BreadcrumbCoreComponent.BREADCRUMB_HIDE]) {\n if (BreadcrumbCoreComponent.ROUTE_DATA_BREADCRUMB_URL !== undefined) {\n const route =\n child.snapshot.data[BreadcrumbCoreComponent.ROUTE_DATA_BREADCRUMB_URL];\n routerLink += `/${route}`;\n }\n\n if (!BreadcrumbCoreComponent.ROUTE_DATA_BREADCRUMB_URL && routeURL !== '') {\n routerLink += `/${routeURL}`;\n }\n\n const label = child.snapshot.data[BreadcrumbCoreComponent.ROUTE_DATA_BREADCRUMB];\n if (\n label &&\n BreadcrumbCoreComponent.ROUTE_DATA_NO_BREADCRUMB_ROUTE &&\n child.snapshot.data[\n BreadcrumbCoreComponent.ROUTE_DATA_NO_BREADCRUMB_ROUTE\n ]\n ) {\n breadcrumbs.push({ label, routerLink: undefined });\n } else if (label && child.snapshot.routeConfig?.path !== '') {\n breadcrumbs.push({ label, routerLink: routerLink });\n }\n }\n\n return this.createBreadcrumbs(child, routerLink, breadcrumbs);\n }\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { Params } from '@angular/router';\nimport { ControlSeverityType, FieldSizeType, IconPositionType } from '../../common';\n\nexport const BUTTON_COMPONENT_TOKEN = new InjectionToken<ButtonCore>(\n 'ButtonComponentToken'\n);\n\nexport interface ButtonCore {\n label?: string;\n icon?: string;\n badge?: string;\n iconPos: IconPositionType;\n rounded: boolean;\n outlined: boolean;\n raised: boolean;\n severity?: ControlSeverityType;\n routerLink: any[];\n size: FieldSizeType | undefined;\n queryParams?: Params;\n}\n","import { InjectionToken, InputSignal } from \"@angular/core\";\r\nimport { ControlSeverityType, FieldSizeType } from \"../../common\";\r\nimport { MenuItem } from \"../side-menu\";\r\n\r\nexport const DROPDOWN_BUTTON_COMPONENT_TOKEN = new InjectionToken<DropdownButtonCore>(\r\n 'DropdownButtonComponentToken'\r\n);\r\n\r\nexport interface DropdownButtonCore {\r\n label: InputSignal<string | undefined>;\r\n icon: InputSignal<string | undefined>;\r\n rounded: InputSignal<boolean | undefined>;\r\n outlined: InputSignal<boolean | undefined>;\r\n raised: InputSignal<boolean | undefined>;\r\n severity: InputSignal<ControlSeverityType | undefined>;\r\n size: InputSignal<FieldSizeType | undefined>;\r\n items: InputSignal<MenuItem[] | undefined>;\r\n}","import { InjectionToken } from '@angular/core';\nimport { BaseFormCore } from '../base-form';\n\nexport const CALENDAR_COMPONENT_TOKEN = new InjectionToken<CalendarCore>(\n 'CalendarComponentToken'\n);\n\nexport interface CalendarCore extends BaseFormCore {\n maxDate: Date;\n icon: string;\n minDate: Date;\n header: string;\n footer: string;\n floatLabel: string | undefined;\n selectionMode: \"single\" | \"multiple\" | \"range\" | undefined;\n}","import { InjectionToken, InputSignal } from '@angular/core';\nimport { BaseFormCore } from '../base-form';\n\nexport const CHECKBOX_COMPONENT_TOKEN = new InjectionToken<CheckboxCore>(\n 'CheckboxComponentToken'\n);\n\nexport interface CheckboxCore extends BaseFormCore {\n indeterminate: InputSignal<boolean>;\n}\n","import { InjectionToken, Type } from '@angular/core';\nimport { SafeHtml } from '@angular/platform-browser';\nimport { ControlSeverityType } from '../../common';\n\nexport const CONFIRM_DIALOG_COMPONENT_TOKEN =\n new InjectionToken<ConfirmDialogCore>('ConfirmDialogComponentToken');\n\nexport type ConfirmDialogCore = object;\n\nexport interface DialogData {\n title?: string;\n headerIcon?: string;\n severity?: ControlSeverityType;\n showCancelButton?: boolean;\n buttonOrder?: 'confirm-cancel' | 'cancel-confirm';\n confirmButtonText?: string;\n confirmButtonDisabled?: boolean;\n confirmButtonFn?: () => void;\n cancelButtonFn?: () => void;\n cancelButtonText?: string;\n innerHTML?: string | SafeHtml;\n data?: unknown;\n componentType?: Type<unknown>;\n closable?: boolean;\n width?: string;\n height?: string;\n}\n\nexport interface ExtendedDialogData<TInputs = unknown, TOutputs = unknown>\n extends DialogData {\n data?: TInputs & TOutputs;\n}\n","import { InjectionToken } from '@angular/core';\nimport { DataSourceComponentModel } from '../../common';\nimport { BaseFormCore } from '../base-form';\n\nexport const DROPDOWN_COMPONENT_TOKEN = new InjectionToken<DropdownCore<any>>(\n 'DropdownComponentToken'\n);\n\nexport interface DropdownCore<T> extends DataSourceComponentModel<T>, BaseFormCore {\n dropdownIcon?: string;\n floatLabel?: string;\n editable: boolean;\n forceMinWidth: boolean;\n showFilter: boolean;\n localSearch: boolean;\n}\n","import { InjectionToken } from '@angular/core';\r\nimport { ControlValueAccessor } from '@angular/forms';\r\nimport { GenericFieldDefinition } from '../generic-form';\r\n\r\nexport const FILTER_COMPONENT_TOKEN = new InjectionToken<FilterCore>(\r\n 'FilterComponentToken'\r\n);\r\n\r\nexport interface FilterCore extends ControlValueAccessor {\r\n fields: GenericFieldDefinition[];\r\n title?: string;\r\n fulltextFieldName: string;\r\n showFulltext: boolean;\r\n showFilters: boolean;\r\n autoBind: boolean;\r\n debounceTime?: number;\r\n filterDetailTitle?: string;\r\n applyButtonLabel?: string;\r\n clearButtonLabel?: string;\r\n}\r\n","import { InjectionToken } from '@angular/core';\nimport { NgControl } from '@angular/forms';\n\nexport const FORM_FIELD_COMPONENT_TOKEN = new InjectionToken<FormFieldCore>(\n 'FormFieldComponentToken'\n);\n\nexport interface FormFieldCore {\n ngControl?: NgControl;\n label?: string;\n tooltip?: string;\n required: boolean;\n testId?: string;\n display: 'flex' | 'block';\n}","import { InjectionToken } from '@angular/core';\nimport { DataSourceComponentModel } from '../../common';\nimport { BaseFormCore } from '../base-form';\n\nexport const GENERIC_FIELD_COMPONENT_TOKEN = new InjectionToken<GenericFieldCore<any>>(\n 'GenericFieldComponentToken'\n);\n\nexport interface GenericFieldCore<T> extends DataSourceComponentModel<T>, BaseFormCore {\n}\n","import { ValidatorFn } from '@angular/forms';\r\nimport { DatasourceType } from '@verisoft/core';\r\nimport { FieldSizeType } from '../../common';\r\n\r\nexport interface GenericFieldDefinition {\r\n validator?: ValidatorFn[];\r\n type?: GenericFieldTypeType;\r\n label?: string;\r\n floatLabel?: boolean;\r\n name: string;\r\n optionLabel?: string;\r\n optionValue?: string;\r\n options?: unknown[];\r\n value?: unknown;\r\n testId?: string;\r\n size?: FieldSizeType;\r\n readonly?: boolean;\r\n datasource?: DatasourceType<any>;\r\n filterField?: string;\r\n showFilter?: boolean;\r\n localSearch?: boolean;\r\n}\r\n\r\nexport enum GenericFieldType {\r\n 'dropdown' = 'dropdown',\r\n 'checkbox' = 'checkbox',\r\n 'simplecheckbox' = 'simplecheckbox',\r\n 'calendar' = 'calendar',\r\n 'multiselect' = 'multiselect',\r\n 'text' = 'text',\r\n}\r\n\r\nexport type GenericFieldTypeType = keyof typeof GenericFieldType;\r\n","import { InjectionToken } from '@angular/core';\nimport { MenuItem } from '../side-menu/side-menu.model';\n\nexport const HEADER_COMPONENT_TOKEN = new InjectionToken<HeaderCore>(\n 'HeaderComponentToken'\n);\n\nexport const SETTINGS_MENU = new InjectionToken<MenuItem[]>(\n 'SETTINGS_MENU'\n);\n\nexport interface HeaderCore {\n title: string;\n userName: string;\n logoUrl: string;\n userRole: any | any[] | undefined;\n fixed: boolean;\n userAvatar: string;\n menuRef: HTMLDivElement;\n}\n","import { InjectionToken } from '@angular/core';\nimport { IconPositionType } from '../../common';\nimport { BaseFormCore } from '../base-form';\n\nexport const INPUT_GROUP_COMPONENT_TOKEN = new InjectionToken<InputGroupCore>(\n 'HeaderComponentToken'\n);\n\nexport interface InputGroupItem {\n icon?: string;\n text?: string;\n position: IconPositionType;\n}\n\nexport interface InputGroupCore extends BaseFormCore {\n items: InputGroupItem[];\n}","import { InjectionToken } from '@angular/core';\n\nexport const LOADER_COMPONENT_TOKEN = new InjectionToken<LoaderCore>(\n 'LoaderComponentToken'\n);\n\nexport type LoaderCore = object\n","import { InjectionToken } from '@angular/core';\nimport { DataSourceComponentModel } from '../../common';\nimport { BaseFormCore } from '../base-form';\n\nexport const MULTISELECT_COMPONENT_TOKEN = new InjectionToken<MultiselectCore<any>>(\n 'MultiselectComponentToken'\n);\n\nexport interface MultiselectCore<T> extends DataSourceComponentModel<T>, BaseFormCore {\n dropdownIcon?: string;\n floatLabel?: string;\n editable: boolean;\n}","import { InjectionToken } from '@angular/core';\nimport { BaseFormCore } from '../base-form';\n\nexport const NUMBER_INPUT_COMPONENT_TOKEN = new InjectionToken<NumberInputCore>(\n 'NumberInputComponentToken'\n);\n\nexport interface NumberInputCore extends BaseFormCore {\n mode: string;\n currency: string;\n min: number;\n max: number;\n step: number;\n}","import { InjectionToken } from '@angular/core';\n\nexport const PAGE_HEADER_COMPONENT_TOKEN = new InjectionToken<PageHeaderCore>(\n 'PageHeaderComponentToken'\n);\n\nexport interface PageHeaderCore {\n title: string;\n subtitle: string | undefined;\n showBackButton: boolean | undefined;\n}\n","import { EventEmitter, Injectable, Output } from '@angular/core';\nimport { PageHeaderCore } from './page-header.model';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PageHeaderService {\n @Output() pageHeader = new EventEmitter<PageHeaderCore>();\n}\n","import { ChangeDetectorRef, Directive, Input, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { takeUntil } from 'rxjs';\nimport { FieldSize, FieldSizeType } from '../../common';\nimport { UnsubscribeComponent } from '../unsubscribe.component';\nimport { PageHeaderService } from './page-header.service';\n\n@Directive({\n \n})\nexport class PageHeaderCoreComponent\n extends UnsubscribeComponent\n implements OnInit\n{\n @Input() title!: string;\n @Input() subtitle: string | undefined;\n @Input() showBackButton!: boolean;\n @Input() size: FieldSizeType = FieldSize.small;\n\nconstructor(\n readonly router: Router,\n readonly cdr: ChangeDetectorRef,\n readonly headerService: PageHeaderService\n ) {\n super();\n }\n\n ngOnInit(): void {\n this.headerService.pageHeader\n .pipe(takeUntil(this.destroyed$))\n .subscribe((x: any) => {\n this.title = x.title;\n this.subtitle = x.subtitle;\n this.showBackButton = x.showBackButton ?? false;\n this.cdr.detectChanges();\n });\n }\n\n protected locationBack() {\n history.back();\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { BaseFormCore } from '../base-form';\n\nexport const PASSWORD_COMPONENT_TOKEN = new InjectionToken<PasswordCore>(\n 'PasswordComponentToken'\n);\n\nexport enum PasswordStrength {\n None = 0,\n Low = 1,\n Medium = 2,\n High = 3,\n Superb = 4\n}\n\nexport interface PasswordCore extends BaseFormCore {\n toggleMask: boolean;\n feedback: boolean;\n}\n\nexport interface PasswordValidationItem {\n severity: 'success' | 'error';\n validationLabel: string;\n validationFn: (x: string) => boolean;\n}","import { InjectionToken } from '@angular/core';\nimport { BaseFormCore } from '../base-form';\n\nexport const RADIOBUTTON_COMPONENT_TOKEN = new InjectionToken<RadiobuttonCore<any>>(\n 'RadiobuttonComponentToken'\n);\n\nexport interface RadioButtonItem<T> {\n id: string;\n value: T; \n}\n\nexport interface RadiobuttonCore<T> extends BaseFormCore {\n radioGroupName: string;\n items: RadioButtonItem<T>[];\n}","import { InjectionToken } from '@angular/core';\n\nexport const SECTION_COMPONENT_TOKEN = new InjectionToken<SectionCore>(\n 'SectionComponentToken'\n);\n\nexport interface SectionCore {\n title: string;\n showContent: boolean;\n backgroundColor: string;\n}","import { InjectionToken } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nexport const MENU_TOKEN = new InjectionToken<MenuItem[]>(\n 'MENU'\n);\n\nexport const LOGO_ROUTER_ROUTE = new InjectionToken<string>(\n 'LOGO_ROUTER_ROUTE'\n);\n\nexport const SIDE_MENU_COMPONENT_TOKEN = new InjectionToken<SideMenuCore>(\n 'SideMenuComponentToken'\n);\n\nexport const SIDE_MENU_STATE_TOKEN = new InjectionToken<SideMenuState>(\n 'SideMenuStateToken'\n);\n\nexport interface SideMenuState {\n expanded: string[];\n minimalized: boolean;\n}\n\nexport interface MenuItem {\n id?: string;\n label?: string | undefined;\n icon?: string;\n expanded?: boolean;\n data?: MenuItemData;\n tooltip?: string;\n url?: string;\n visible?: boolean | Observable<boolean>;\n type?: string;\n children?: MenuItem[];\n routerLink?: any;\n class?: string;\n // eslint-disable-next-line @typescript-eslint/ban-types\n command?: Function;\n}\n\ntype ExtendableType = {\n [key: string]:\n | string\n | number\n | boolean\n | string[]\n | number[]\n | boolean[]\n | undefined;\n};\n\nexport interface MenuItemData extends ExtendableType {\n roles?: string[];\n permissions?: string[];\n}\n\nexport interface SideMenuModuleConfig {\n items?: MenuItem[];\n}\n\nexport interface SideMenuCore {\n items: MenuItem[];\n logoUrl: string;\n userName: string;\n userRole: any | any[] | undefined;\n}\n","import { inject, Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { MenuItem, SIDE_MENU_STATE_TOKEN } from '../side-menu.model';\n\n@Injectable({ providedIn: 'root' })\nexport class SideMenuService {\n private _menuItems = new BehaviorSubject<MenuItem[]>([]);\n private stateToken = inject(SIDE_MENU_STATE_TOKEN);\n\n menuItems$: Observable<MenuItem[]> = this._menuItems.asObservable();\n menuMinimalized = false;\n\n setMenu(items: MenuItem[]): void {\n this.resetSidemenuState(items);\n this._menuItems.next(items);\n }\n\n saveMinimalizedState(minimalized: boolean): void {\n this.stateToken.minimalized = minimalized;\n localStorage.setItem('SideMenuStateToken', JSON.stringify(this.stateToken));\n }\n\n saveExpandedState(item: MenuItem): void {\n const expanded = this.stateToken.expanded?.find(\n (i: string) => i === item.label\n );\n\n if (!expanded) {\n this.stateToken.expanded?.push(item.label!);\n localStorage.setItem(\n 'SideMenuStateToken',\n JSON.stringify(this.stateToken)\n );\n return;\n }\n\n this.stateToken.expanded = this.stateToken.expanded?.filter(\n (i: string) => i !== item.label\n );\n\n localStorage.setItem('SideMenuStateToken', JSON.stringify(this.stateToken));\n }\n\n private resetSidemenuState(items: MenuItem[]) {\n if (typeof this.stateToken === 'string') {\n this.stateToken = JSON.parse(this.stateToken);\n }\n\n this.menuMinimalized = this.stateToken.minimalized;\n const localStorageValue = this.stateToken.expanded;\n\n if (!localStorageValue) return;\n if (items) {\n for (let index = 0; index < items.length; index++) {\n const element = items[index];\n element.expanded = !!localStorageValue.find(\n (i: string) => i === element.label\n );\n }\n }\n }\n}\n","import { Injectable, Optional, Inject } from '@angular/core';\nimport { MENU_TOKEN, MenuItem } from '../side-menu.model';\nimport { SideMenuService } from './side-menu.service';\n\n@Injectable()\nexport class SideMenuProviderService {\n constructor(\n @Optional() @Inject(MENU_TOKEN) readonly menu: MenuItem[] = [],\n readonly menuService: SideMenuService\n ) {\n menuService.setMenu(menu);\n }\n}\n","import { AfterViewInit, ChangeDetectorRef, Directive, inject } from \"@angular/core\";\nimport { takeUntil } from \"rxjs\";\nimport { UnsubscribeComponent } from \"../../unsubscribe.component\";\nimport { SideMenuService } from \"../services/side-menu.service\";\nimport { SIDE_MENU_COMPONENT_TOKEN } from \"../side-menu.model\";\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'v-side-menu[useMenuService]',\n exportAs: 'useMenuService',\n standalone: true,\n})\nexport class MenuServiceDirective\n extends UnsubscribeComponent\n implements AfterViewInit\n{\n private readonly menuService = inject(SideMenuService);\n private readonly cdr = inject(ChangeDetectorRef);\n private readonly sideMenu = inject(SIDE_MENU_COMPONENT_TOKEN);\n\n ngAfterViewInit() {\n this.menuService.menuItems$.pipe(takeUntil(this.destroyed$)).subscribe((items) => {\n\n if (this.sideMenu) {\n this.sideMenu.items = items;\n }\n });\n\n this.cdr.detectChanges();\n }\n}","import { InjectionToken } from '@angular/core';\nimport { BaseFormCore } from '../base-form';\n\nexport const SLIDER_COMPONENT_TOKEN = new InjectionToken<SliderCore>(\n 'SliderComponentToken'\n);\n\nexport interface SliderCore extends BaseFormCore {\n step: number;\n min: number;\n max: number;\n range: boolean;\n}","import { InjectionToken } from '@angular/core';\n\nexport const SNACKBAR_COMPONENT_TOKEN = new InjectionToken<SnackbarCore>(\n 'SnackbarComponentToken'\n);\n\nexport type SnackbarCore = object\n","import { EventEmitter, InjectionToken, TemplateRef } from \"@angular/core\";\nimport { FieldSizeType, LayoutTypeType } from \"../../common\";\n\nexport const STEPPER_COMPONENT_TOKEN = new InjectionToken<StepperCore>(\n 'StepperComponentToken'\n);\n\nexport interface StepperItem {\n header: string;\n template?: TemplateRef<any>;\n annotation?: string;\n prefix?: string;\n}\n\nexport interface StepperCore {\n items: StepperItem[]\n layout: LayoutTypeType\n activeIndexChange: EventEmitter<number>\n size: FieldSizeType | undefined;\n icon: string;\n prefix: string;\n annotation: string;\n label: string;\n}","import { InjectionToken } from \"@angular/core\";\nimport { BaseFormCore } from \"../base-form\";\n\nexport const SWITCH_COMPONENT_TOKEN = new InjectionToken<SwitchCore>(\n 'SwitchComponentToken'\n);\n\nexport type SwitchCore = BaseFormCore\n","import { EventEmitter, InjectionToken, TemplateRef } from \"@angular/core\";\n\nexport const TAB_VIEW_COMPONENT_TOKEN = new InjectionToken<TabViewCore>(\n 'TabVIewComponentToken'\n);\n\nexport interface TabViewItemCore {\n title: string;\n url?: string;\n icon?: string;\n disabled?: boolean;\n content?: string;\n contentTemplate?: TemplateRef<unknown>; \n}\n\nexport interface TabViewCore {\n items: TabViewItemCore[];\n useRouting: boolean;\n activeIndex: number;\n activeIndexChange: EventEmitter<number>;\n url?: string;\n}","import { EventEmitter, InjectionToken, TemplateRef } from '@angular/core';\nimport { Params } from '@angular/router';\nimport { LazyLoadEvent, Sort, SortDirectionType } from '@verisoft/core';\nimport { v4 } from 'uuid';\nimport { FieldAlignType } from '../../common';\n\nexport const TABLE_COMPONENT_TOKEN = new InjectionToken<TableCore<any>>(\n 'TabVIewComponentToken'\n);\n\nexport const TABLE_COLUMN_PROVIDER = new InjectionToken(\n 'TABLE_COLUMN_PROVIDER'\n);\n\nexport enum TableSelectionMode {\n single = 'single',\n multiple = 'multiple',\n}\n\nexport enum TableButtonSeverity {\n success = 'success',\n info = 'info',\n warning = 'warning',\n danger = 'danger',\n help = 'help',\n primary = 'primary',\n secondary = 'secondary',\n contrast = 'contrast',\n}\n\nexport enum ColumnVisibility {\n visible = 'visible',\n hidden = 'hidden',\n default = 'default',\n}\n\nexport type TableSelectionModeType = keyof typeof TableSelectionMode;\nexport type TableButtonSeverityType = keyof typeof TableButtonSeverity;\nexport type ColumnVisibilityType = keyof typeof ColumnVisibility;\n\nexport interface TableCore<T> {\n sorters: Sort[];\n columns: ColumnDefinition<T>[];\n data: T[];\n total: number;\n filter: Partial<T> | undefined;\n loading: boolean;\n scrollable: boolean;\n pageSize: number;\n currentPage: number;\n showPaginator: boolean;\n sortMultiple: boolean;\n lazy: boolean;\n selection: T[];\n selectionMode: TableSelectionModeType | undefined;\n showPageSizePicker: boolean;\n entityKey: string | undefined;\n selectionChange: EventEmitter<T[]>;\n lazyLoad: EventEmitter<LazyLoadEvent>;\n maximumColumnLength: number;\n disableCustomClicks: boolean;\n}\n\nexport interface TableSignal {\n name: string,\n symbol: symbol\n}\n\nexport interface ActionColumnsDefinition<T> {\n severity?: TableButtonSeverity;\n title?: string;\n icon?: string;\n tooltip?: string;\n rounded?: boolean;\n outlined?: boolean;\n raised?: boolean;\n badge?: string;\n visible?: (row: T) => boolean;\n routerLink?: (row: T) => string;\n queryParams?: Params;\n disabled?: boolean | ((row: T) => boolean);\n onClick?: (row: T, event?: MouseEvent) => void;\n}\n\nexport interface ColumnProvider<T> {\n getDefinition(): ColumnDefinition<T>;\n index: number;\n}\n\nexport interface ColumnDefinition<T, _KEY = keyof T> {\n id: string;\n value?: (row: T, index?: number) => string;\n headerName?: ((columnId: string, index?: number) => string) | string;\n icon?: string | ((row?: T | undefined) => string);\n type?: string;\n sortable?: boolean;\n format?: (row: T) => string\n routerLink?: (row: T) => string | string;\n queryParams?: Params;\n columnClass?: string;\n template?: TemplateRef<{ $implicit: T }>;\n actions?: ActionColumnsDefinition<T>[];\n textAlign?: FieldAlignType;\n width?: string | number;\n forceVisibility?: ColumnVisibilityType;\n visible?: boolean;\n}\n\nexport function LinkRenderer<T>(text: string, href: string) {\n return (row: T, index: number | undefined) => {\n return '<a href=\"' + href + '\">' + text + '</a>';\n };\n}\n\nexport function routerRenderer<T>(link: string, text: string) {\n return (row: T, index?: number | undefined) => {\n return { text: text, link: link };\n };\n}\n\nexport function Renderer<T>(fnc: (row: T) => string) {\n return (row: T) => {\n return fnc(row);\n };\n}\n\nexport class ColumnModel<T> {\n sortDirection: SortDirectionType | undefined = undefined;\n columnClass?: string;\n queryParams?: Params;\n routerLink?: (row: T) => string | string;\n valueGetter!: (row: T, index: number) => string;\n headerGetter!: (columnId: string, index: number) => string | string;\n template?: TemplateRef<{ $implicit: T }>;\n actions?: ActionColumnsDefinition<T>[];\n sortable?: boolean;\n id: string;\n // eslint-disable-next-line @typescript-eslint/ban-types\n format!: Function;\n textAlign?: FieldAlignType;\n width: string | undefined;\n forceVisibility: ColumnVisibilityType = ColumnVisibility.default;\n visible = true;\n\n constructor(readonly configuration: ColumnDefinition<T>) {\n this.id = this.configuration.id;\n\n if (this.configuration.format) {\n this.format = this.configuration.format;\n }\n\n if (this.configuration.value) {\n this.valueGetter = (row, index) => {\n const value = this.configuration.value?.(row, index) ?? '-';\n return this.format ? this.format(value, row) : value;\n };\n } else {\n this.valueGetter = (row) => {\n const value = ((row as { [key: string]: string })?.[this.configuration.id]) ?? '';\n return this.format ? this.format(value, row) : value;\n };\n }\n\n if (this.configuration.actions) {\n this.actions = this.configuration.actions;\n }\n\n if (this.configuration.routerLink) {\n this.routerLink = this.configuration.routerLink;\n }\n\n if (this.configuration.columnClass) {\n this.columnClass = this.configuration.columnClass;\n }\n\n if (this.configuration.template) {\n this.template = this.configuration.template;\n }\n\n if (this.configuration.headerName) {\n this.headerGetter = (\n typeof this.configuration.headerName === 'string'\n ? () => this.configuration.headerName ?? ''\n : (columnId: string, index: number) =>\n (<(columnId: string, index?: number) => string>(\n this.configuration.headerName\n ))?.(columnId, index) ?? this.id\n ) as (columnId: string, index: number) => string;\n } else {\n this.headerGetter = () => \"\";\n }\n\n if (this.configuration.queryParams) {\n this.queryParams = this.configuration.queryParams;\n }\n\n if (this.routerLink) {\n this.columnClass += ' ' + 'link';\n }\n\n if (this.configuration.sortable !== undefined) {\n this.sortable = this.configuration.sortable;\n } else {\n this.sortable = true;\n }\n\n if (this.configuration.width){\n this.width = typeof this.configuration.width === \"number\" ? this.configuration.width + 'px' : this.configuration.width;\n }\n\n if (this.configuration.textAlign !== undefined) {\n this.textAlign = this.configuration.textAlign;\n }\n\n if (this.configuration.forceVisibility) {\n this.forceVisibility = this.configuration.forceVisibility;\n }\n\n if (this.configuration.visible !== undefined) {\n this.visible = this.configuration.visible;\n }\n }\n}\n\nexport class RowModel<T> {\n row: T;\n index?: number;\n id: number | string;\n selected: boolean;\n marked?: boolean;\n focused?: boolean;\n expanded: boolean;\n fnc?: void;\n customRoute: string | undefined;\n\n constructor(\n row: T,\n selected: boolean,\n expanded: boolean,\n marked?: boolean,\n index?: number,\n fnc?: void,\n customRoute?: string,\n entityKey?: string\n ) {\n this.row = row;\n this.id = (row as { [key: string]: string })['id'] ?? v4();\n this.index = index;\n this.selected = selected;\n this.expanded = expanded;\n this.marked = marked;\n this.fnc = fnc;\n this.customRoute = createCustomRoute<T>(row, entityKey, customRoute);\n }\n}\n\nfunction createCustomRoute<T>(row: T, entityKey?: string, customRoute?: string) {\n return customRoute && entityKey\n ? `${customRoute}/` + (row as { [key: string]: string })[entityKey]\n : undefined;\n}\n","import { ContentChild, Directive, Input, TemplateRef } from '@angular/core';\nimport { Params } from '@angular/router';\nimport { FieldAlign, FieldAlignType } from '../../common';\nimport { ColumnDefinition, ColumnProvider, ColumnVisibility, ColumnVisibilityType, TABLE_COLUMN_PROVIDER } from './table.models';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'v-table-column',\n standalone: true,\n providers: [\n {\n provide: TABLE_COLUMN_PROVIDER,\n useExisting: TableColumnDirective,\n multi: true,\n },\n ],\n})\nexport class TableColumnDirective<T> implements ColumnProvider<T> {\n @ContentChild(TemplateRef) template!:\n TemplateRef<{ $implicit: T }>;\n\n @Input() index = 0;\n\n @Input() id!: string;\n\n @Input() columnClass!: string;\n\n @Input() sortable!: boolean;\n\n @Input() routerLink!: (row: T) => string;\n\n @Input() queryParams!: Params;\n\n @Input() headerName!: ((column: string, index?: number) => string) | string;\n\n @Input() width: string | number | undefined;\n\n @Input() textAlign: FieldAlignType = FieldAlign.left;\n\n @Input() format!: (row: T) => string\n\n @Input() forceVisibility: ColumnVisibilityType = ColumnVisibility.default;\n\n @Input() visible = true;\n\n getDefinition(): ColumnDefinition<T> {\n return {\n id: this.id,\n columnClass: this.columnClass,\n template: this.template,\n headerName: this.headerName,\n routerLink: this.routerLink,\n queryParams: this.queryParams,\n sortable: this.sortable,\n width: this.width,\n format: this.format,\n textAlign: this.textAlign,\n forceVisibility: this.forceVisibility,\n visible: this.visible,\n };\n }\n}\n","import { ColumnDefinition } from \"./table.models\";\r\n\r\nexport class ColumnConfiguration<TEntity> {\r\n private column: Partial<ColumnDefinition<TEntity>> = {};\r\n \r\n constructor(private id: string | keyof TEntity) {\r\n this.column.id = id as string;\r\n }\r\n \r\n headerName(headerName: string | ((columnId: string, index?: number) => string)): this {\r\n this.column.headerName = headerName;\r\n return this;\r\n }\r\n \r\n sortable(sortable: boolean): this {\r\n this.column.sortable = sortable;\r\n return this;\r\n }\r\n \r\n columnClass(columnClass: string): this {\r\n this.column.columnClass = columnClass;\r\n return this;\r\n }\r\n \r\n valueFunction(value: (row: TEntity, index?: number) => string): this {\r\n this.column.value = value;\r\n return this;\r\n }\r\n \r\n type(type: string): this {\r\n this.column.type = type;\r\n return this;\r\n }\r\n \r\n build(): ColumnDefinition<TEntity> {\r\n return this.column as ColumnDefinition<TEntity>;\r\n }\r\n }","import { Injectable } from '@angular/core';\r\nimport { ColumnConfiguration } from './column-configuration';\r\nimport { ColumnDefinition } from './table.models';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class TableBuilder<TEntity> {\r\n private columns: ColumnDefinition<TEntity>[] = [];\r\n\r\n addColumn(\r\n id: string | keyof TEntity,\r\n config?: (v: ColumnConfiguration<TEntity>) => void\r\n ): TableBuilder<TEntity> {\r\n const columnConfig = new ColumnConfiguration<TEntity>(id);\r\n config?.(columnConfig);\r\n this.columns.push(columnConfig.build());\r\n return this;\r\n }\r\n\r\n addTextColumn(\r\n id: string | keyof TEntity,\r\n config?: (v: ColumnConfiguration<TEntity>) => void\r\n ): TableBuilder<TEntity> {\r\n return this.addColumn(id, (x) => {\r\n config?.(x);\r\n x.type('text');\r\n });\r\n }\r\n\r\n addNumberColumn(\r\n id: string | keyof TEntity,\r\n config?: (v: ColumnConfiguration<TEntity>) => void\r\n ): TableBuilder<TEntity> {\r\n return this.addColumn(id, (x) => {\r\n config?.(x);\r\n x.type('number').columnClass('text-end');\r\n });\r\n }\r\n\r\n addDateColumn(\r\n id: string | keyof TEntity,\r\n config?: (v: ColumnConfiguration<TEntity>) => void\r\n ): TableBuilder<TEntity> {\r\n return this.addColumn(id, (x) => {\r\n config?.(x);\r\n x.type('date').valueFunction((row) => covertFromDateToUserLocale(row, id as string));\r\n });\r\n }\r\n\r\n addBooleanColumn(\r\n id: string,\r\n config?: (v: ColumnConfiguration<TEntity>) => void\r\n ): TableBuilder<TEntity> {\r\n return this.addColumn(id, (x) => {\r\n config?.(x);\r\n x.type('boolean');\r\n });\r\n }\r\n\r\n addEnumColumn(\r\n id: string | keyof TEntity,\r\n config?: (v: ColumnConfiguration<TEntity>) => void\r\n ): TableBuilder<TEntity> {\r\n return this.addColumn(id, (x) => {\r\n config?.(x);\r\n x.type('enum');\r\n });\r\n }\r\n\r\n build(): ColumnDefinition<TEntity>[] {\r\n return this.columns;\r\n }\r\n}\r\n\r\nfunction covertFromDateToUserLocale<TEntity>(row: TEntity, id: string) {\r\n const value = (row as { [key: string]: undefined | string | Date })[id];\r\n if (value === undefined) {\r\n return '';\r\n }\r\n\r\n const locale = navigator.language;\r\n\r\n if (value instanceof Date) {\r\n return value.toLocaleDateString(locale);\r\n }\r\n\r\n if (typeof value === 'string' && !isNaN(Date.parse(value))) {\r\n return new Date(value).toLocaleDateString(locale);\r\n }\r\n\r\n return value;\r\n}\r\n","import { InjectionToken } from '@angular/core';\nimport { BaseFormDirectiveCore } from '../base-form';\n\nexport const TABLE_FILTER_COMPONENT_TOKEN = new InjectionToken<TableFilterCore<any>>(\n 'TableFilterComponentToken'\n);\n\nexport interface FilterDefinition {\n optionLabel: string;\n label: string;\n optionValue?: string;\n url?: string;\n filterType?: 'dropdown' | 'checkbox' | 'calendar' | 'multiselect';\n initialValue?: any;\n}\n\nexport interface TableFilterCore<T> extends BaseFormDirectiveCore<T> {\n filterDefinitions: FilterDefinition[];\n title: string;\n hideSearch?: boolean;\n debounceTime?: number;\n}\n","import { InjectionToken } from '@angular/core';\nimport { BaseFormCore } from '../base-form';\n\nexport const TEXTAREA_COMPONENT_TOKEN = new InjectionToken<TextareaCore>(\n 'TextareaComponentToken'\n);\n\nexport interface TextareaCore extends BaseFormCore {\n rows: number;\n cols: number;\n autoResize: boolean;\n floatLabel: string | undefined;\n}\n","import { InjectionToken } from '@angular/core';\nimport { FieldSizeType, FieldTypeType } from '../../common';\nimport { BaseFormCore } from '../base-form';\n\nexport const TEXTFIELD_COMPONENT_TOKEN = new InjectionToken<TextfieldCore>(\n 'TextfieldComponentToken'\n);\n\nexport interface TextfieldCore extends BaseFormCore {\n size: FieldSizeType | undefined;\n type: FieldTypeType;\n floatLabel: boolean;\n}","import { InjectionToken, Signal } from '@angular/core';\nimport { ControlSeverityType, FieldSizeType, PositionType } from '../../common';\n\nexport const TOOLTIP_COMPONENT_TOKEN = new InjectionToken<TooltipCore>(\n 'TooltipComponentToken'\n);\n\nexport interface TooltipCore {\n color: Signal<ControlSeverityType | undefined>;\n position: Signal<PositionType | undefined>;\n size: Signal<FieldSizeType | undefined>;\n tooltipText: Signal<string | undefined>;\n}","import { InjectionToken, InputSignal } from \"@angular/core\";\nimport { ControlSeverityType, FieldSizeType } from \"../../common\";\n\nexport const ICONS_COMPONENT_TOKEN = new InjectionToken<IconsCore>(\n 'IconsComponentToken'\n);\n\nexport type IconLibraryType = 'native' | 'bootstrap';\n\nexport interface IconsCore {\n library: InputSignal<IconLibraryType>;\n name: InputSignal<string>;\n size: InputSignal<FieldSizeType | undefined>;\n severity: InputSignal<ControlSeverityType | undefined>;\n class: InputSignal<string | undefined>;\n}","import { Component, input } from \"@angular/core\";\nimport { ControlSeverityType, FieldSizeType } from \"../../common\";\nimport { IconLibraryType, ICONS_COMPONENT_TOKEN, IconsCore } from \"./icons.model\";\n\n@Component({\n standalone: true,\n template: '',\n providers: [\n {\n provide: ICONS_COMPONENT_TOKEN,\n useExisting: IconsComponent\n }\n ]\n})\n\nexport abstract class IconsComponent implements IconsCore {\n library = input<IconLibraryType>('native');\n name = input.required<string>();\n size = input<FieldSizeType | undefined>();\n severity = input<ControlSeverityType | undefined>();\n class = input<string>();\n}","import { InjectionToken, InputSignal } from \"@angular/core\";\nimport { ControlSeverityType, FieldSizeType } from \"../../common\";\n\nexport const TAG_COMPONENT_TOKEN = new InjectionToken<TagCore>('TagComponentToken');\n\nexport type TagVariant = 'bold' | 'subtle';\n\nexport interface TagCore {\n label: InputSignal<string | undefined>;\n severity: InputSignal<ControlSeverityType | undefined>;\n variant: InputSignal<TagVariant>;\n size: InputSignal<FieldSizeType>;\n }","import { HttpClient } from '@angular/common/http';\nimport {\n ChangeDetectorRef,\n Directive,\n inject,\n Input,\n OnChanges,\n OnInit,\n SimpleChanges,\n} from '@angular/core';\nimport {\n BASE_URL_PATH,\n convertDatasource,\n DataSourceFunctionType,\n DatasourceType,\n DEFAULT_SEARCH_LIMIT,\n FilterEvent,\n LazyLoadEvent,\n normalizeRequest,\n Page,\n RequestParams,\n} from '@verisoft/core';\nimport {\n BehaviorSubject,\n catchError,\n debounceTime,\n filter,\n map,\n of,\n switchMap,\n takeUntil,\n tap,\n} from 'rxjs';\nimport {\n DataSourceComponentModel,\n DEFAULT_DEBOUNCE_TIME,\n ExtendedRequestType,\n setComponentProperties,\n setDataToArray,\n} from '../common';\nimport {\n DROPDOWN_COMPONENT_TOKEN,\n DropdownCore,\n GENERIC_FIELD_COMPONENT_TOKEN,\n GenericFieldCore,\n MULTISELECT_COMPONENT_TOKEN,\n MultiselectCore,\n UnsubscribeComponent,\n} from '../components';\n\n@Directive({\n selector:\n // eslint-disable-next-line @angular-eslint/directive-selector\n 'v-dropdown[useDatasource], v-multiselect[useDatasource], v-generic-field[useDatasource]',\n standalone: true,\n})\nexport class DatasourceDirective<T>\n extends UnsubscribeComponent\n implements OnChanges, OnInit\n{\n @Input() datasource!: DatasourceType<T>;\n\n @Input() autoBind = true;\n\n @Input() loadingText = '... loading ...';\n\n @Input() filterField: string | undefined = 'fulltext';\n\n @Input() transformFn?: (data: T) => unknown;\n\n @Input() extraFilter!: any;\n\n get activeComponent(): DataSourceComponentModel<T> {\n return (this.dropdownComponent ??\n this.multiSelectComponent ??\n this.genericField) as DataSourceComponentModel<T>;\n }\n\n private httpClient = inject(HttpClient);\n\n private baseUrl: string = inject(BASE_URL_PATH);\n\n private changeDetectorRef = inject(ChangeDetectorRef);\n\n private isAllDataLoaded = false;\n\n private parameters$ = new BehaviorSubject<Partial<ExtendedRequestType<T>>>({});\n\n private lastParameter = {};\n\n private dropdownComponent = inject<DropdownCore<T>>(\n DROPDOWN_COMPONENT_TOKEN,\n { optional: true }\n );\n\n private multiSelectComponent = inject<MultiselectCore<T>>(\n MULTISELECT_COMPONENT_TOKEN,\n {\n optional: true,\n }\n );\n\n private genericField = inject<GenericFieldCore<T>>(\n GENERIC_FIELD_COMPONENT_TOKEN,\n { optional: true }\n );\n\n private dataSourceService?: DataSourceFunctionType<T>;\n\n private loadingPlaceholderItem: { [key: string]: unknown } = {};\n\n ngOnInit(): void {\n this.activeComponent.showed\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n if (\n !this.autoBind &&\n !this.activeComponent.options &&\n !this.activeComponent.loading\n ) {\n this.parameters$.next({});\n }\n });\n\n this.activeComponent.lazyLoad\n .pipe(takeUntil(this.destroyed$))\n .subscribe((value: LazyLoadEvent) => {\n this.parameters$.next({ offset: value?.offset, limit: value?.limit });\n });\n\n this.activeComponent.filtered\n .pipe(takeUntil(this.destroyed$))\n .subscribe((value: FilterEvent) => {\n const property = this.filterField ?? this.activeComponent.optionLabel;\n if (property) {\n this.parameters$.next({\n offset: 0,\n filter: {\n [property]: value.filter ? value.filter : undefined,\n ...(this.extraFilter ?? {})\n } as Partial<T>,\n useNewData: true,\n });\n }\n });\n\n this.parameters$\n .pipe(\n takeUntil(this.destroyed$),\n filter(request => !this.isDataForRequestLoaded(request)),\n map((request) => {\n const extendedParams = normalizeRequest({ ...this.lastParameter, ...request }, DEFAULT_SEARCH_LIMIT) as ExtendedRequestType<T>;\n extendedParams.useNewData = request.useNewData ?? false;\n return extendedParams;\n }),\n tap((request) => {\n this.lastParameter = request;\n }),\n debounceTime(DEFAULT_DEBOUNCE_TIME),\n tap(() => {\n this.changeComponent(this.activeComponent, {\n loading: true,\n });\n }),\n switchMap((request) =>\n this.dataSourceService\n ? this.dataSourceService(request as RequestParams<T>).pipe(\n map((response) => ({ request, response }))\n )\n : of({\n request,\n response: {\n data: [] as T[],\n total: 0,\n limit: request.limit,\n offset: request.offset,\n } as Page<T>,\n })\n ),\n catchError((request) => {\n this.changeComponent(this.activeComponent, {\n loading: false,\n });\n return of({\n request: request as ExtendedRequestType<T>,\n response: {\n data: [] as T[],\n total: 0,\n limit: request.limit,\n offset: request.offset,\n } as Page<T>,\n });\n })\n )\n .subscribe(({ request, response }) =>\n this.setDataToControl(request, response)\n );\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['datasource']) {\n this.dataSourceService = convertDatasource(\n this.datasource,\n this.baseUrl,\n this.httpClient\n );\n\n if (this.autoBind) {\n this.parameters$.next({ offset: 0 });\n }\n }\n }\n\n private isDataForRequestLoaded(request: Partial<ExtendedRequestType<T>>) {\n if (request.useNewData) {\n return false;\n }\n\n const offset = request.offset ?? 0;\n const limit = request.limit ?? DEFAULT_SEARCH_LIMIT;\n const options = this.activeComponent.options;\n if (!options) {\n return false;\n }\n\n if (options.length < offset + limit) {\n return false;\n }\n\n const allItemsFilled = options.slice(offset, offset + limit).every(item => item !== undefined && item != this.loadingPlaceholderItem);\n return allItemsFilled;\n }\n\n private setDataToControl(request: ExtendedRequestType<T>, result: Page<T>): void {\n this.isAllDataLoaded = result.total <= result.data.length;\n const data = result.data;\n const total = result.total;\n const offset = request.offset;\n const transferedData = this.transformFn\n ? data.map((x) => this.transformFn?.(x))\n : data;\n\n if (this.activeComponent.optionLabel) {\n this.loadingPlaceholderItem[this.activeComponent.optionLabel] =\n this.loadingText;\n }\n\n if (this.activeComponent.optionValue) {\n this.loadingPlaceholderItem[this.activeComponent.optionValue] = -1;\n }\n\n const options = request.useNewData ? undefined : this.activeComponent.options;\n const newOptions = setDataToArray(\n options,\n transferedData,\n offset,\n total,\n this.loadingPlaceholderItem\n );\n\n this.changeComponent(this.activeComponent, {\n options: newOptions as T[],\n loading: false,\n lazy: !this.isAllDataLoaded,\n });\n }\n\n private changeComponent(\n component: DataSourceComponentModel<T>,\n value: Partial<DataSourceComponentModel<T>>\n ) {\n setComponentProperties(component, value);\n this.changeDetectorRef.detectChanges();\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport {\n ChangeDetectorRef,\n Directive,\n inject,\n Input,\n OnChanges,\n OnInit,\n SimpleChanges,\n} from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport {\n BASE_URL_PATH,\n BaseHttpService,\n convertDatasource,\n DataSourceFunctionType,\n DatasourceType,\n LazyLoadEvent,\n normalizeRequest,\n Page,\n RequestParams,\n} from '@verisoft/core';\nimport {\n BehaviorSubject,\n catchError,\n debounceTime,\n map,\n of,\n switchMap,\n takeUntil,\n tap,\n} from 'rxjs';\nimport {\n DEFAULT_DEBOUNCE_TIME,\n ExtendedRequestType,\n isFilterEmpty,\n setComponentProperties,\n} from '../common';\nimport {\n TABLE_COMPONENT_TOKEN,\n TableCore,\n UnsubscribeComponent,\n} from '../components';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'v-table[useDatasource]',\n exportAs: 'useDatasource',\n standalone: true,\n})\nexport class TableDatasourceDirective<T>\n extends UnsubscribeComponent\n implements OnInit, OnChanges\n{\n protected readonly store = inject(Store);\n\n @Input() autoBind = true;\n\n @Input({ required: true }) tableName!: string;\n\n @Input() debounceTime = DEFAULT_DEBOUNCE_TIME;\n\n @Input() datasource!: DatasourceType<T>;\n\n @Input() extraFilter!: any;\n\n @Input() transformFn?: (data: T) => unknown;\n\n private tableComponent = inject<TableCore<T>>(TABLE_COMPONENT_TOKEN, {\n self: true,\n });\n private changeDetectorRef = inject(ChangeDetectorRef);\n private httpClient = inject(HttpClient);\n private baseUrl: string = inject(BASE_URL_PATH);\n\n private dataSourceService?: DataSourceFunctionType<T>;\n private parameters$ = new BehaviorSubject<Partial<ExtendedRequestType<T>>>({});\n\n params$ = this.parameters$.asObservable();\n\n ngOnInit(): void {\n if (!this.tableName) {\n throw new Error('Property tableName must be defined.');\n }\n\n this.tableComponent.lazyLoad.pipe(takeUntil(this.destroyed$)).subscribe((value: LazyLoadEvent) => {\n this.parameters$.next({\n offset: value?.offset,\n limit: value?.limit,\n filter: { ...value?.filter, ...this.extraFilter },\n sort: value?.sort,\n });\n });\n\n this.parameters$\n .pipe(\n takeUntil(this.destroyed$),\n map((request) =>\n normalizeRequest({\n ...request,\n filter: { ...request.filter, ...this.extraFilter },\n })\n ),\n debounceTime(this.debounceTime),\n tap(() => {\n this.changeComponent(this.tableComponent, {\n lazy: true,\n loading: true,\n });\n }),\n switchMap((request) =>\n this.dataSourceService\n ? this.dataSourceService(request).pipe(\n map((response) => ({ request, response }))\n )\n : of({\n request,\n response: {\n data: [] as T[],\n total: 0,\n limit: request.limit,\n offset: request.offset,\n } as Page<T>,\n })\n ),\n catchError((request) => {\n this.changeComponent(this.tableComponent, {\n loading: false,\n });\n return of({\n request: request as ExtendedRequestType<T>,\n response: {\n data: [] as T[],\n total: 0,\n limit: request.limit,\n offset: request.offset,\n } as Page<T>,\n });\n })\n )\n .subscribe(({ request, response }) =>\n this.setDataToControl(request, response)\n );\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['datasource']) {\n this.dataSourceService = convertDatasource(\n this.datasource,\n this.baseUrl,\n this.httpClient\n );\n\n if (this.autoBind) {\n this.parameters$.next({ offset: 0 });\n }\n }\n }\n\n reload() {\n this.parameters$.next({ ...this.parameters$.value });\n }\n\n private changeComponent(\n component: TableCore<T>,\n value: Partial<TableCore<T>>\n ) {\n setComponentProperties(component, value);\n this.changeDetectorRef.detectChanges();\n }\n\n private setDataToControl(request: RequestParams<T>, result: Page<T>): void {\n const data = result.data;\n const total = result.total;\n const transferedData = this.transformFn ? data.map((x) => this.transformFn?.(x)) : data;\n\n this.changeComponent(this.tableComponent, {\n lazy: !isFilterEmpty(request.filter) || data?.length < total || this.datasource instanceof BaseHttpService,\n data: transferedData as T[],\n loading: false,\n total,\n });\n }\n}\n","import { Directive, HostListener, Input } from \"@angular/core\";\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'v-button[useShortCut]',\n exportAs: 'useShortCut',\n standalone: true,\n })\n export class ButtonShortCutDirective\n {\n @Input() shortCutFn?: () => void;\n @Input() shortCutKey!: string;\n\n private keyMap: { [key: string]: boolean } = {};\n\n @HostListener('document:keydown', ['$event'])\n onKeyDown(event: KeyboardEvent) {\n this.keyMap[event.key.toLowerCase()] = true;\n this.checkShortcut();\n }\n \n @HostListener('document:keyup', ['$event'])\n onKeyUp(event: KeyboardEvent) {\n this.keyMap[event.key.toLowerCase()] = false;\n }\n\n private checkShortcut() {\n if (this.shortCutKey && this.shortCutFn) {\n const keys = this.shortCutKey.toLowerCase().split('+');\n const isShortcutPressed = keys.every((key) => this.keyMap[key]); \n if (isShortcutPressed) {\n this.shortCutFn?.();\n keys.forEach((key) => (this.keyMap[key] = false));\n }\n }\n }\n}","import {\r\n ChangeDetectorRef,\r\n Directive,\r\n inject,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n SimpleChanges,\r\n} from '@angular/core';\r\nimport { debounceTime, Subject, Subscription } from 'rxjs';\r\nimport { DEFAULT_DEBOUNCE_TIME, setComponentProperties } from '../common';\r\nimport { FilterCore, TABLE_COMPONENT_TOKEN, TableCore } from '../components';\r\n\r\n@Directive({\r\n // eslint-disable-next-line @angular-eslint/directive-selector\r\n selector: 'v-table[useFilter]',\r\n standalone: true,\r\n exportAs: 'tableFilterDirective',\r\n})\r\nexport class TableFilterDirective<T> implements OnChanges, OnDestroy {\r\n @Input({ required: true }) filterComponent!: FilterCore;\r\n\r\n private filterChange$ = new Subject<T>();\r\n private subscription: Subscription | undefined = undefined;\r\n\r\n private tableComponent = inject<TableCore<T>>(TABLE_COMPONENT_TOKEN);\r\n\r\n private changeDetectorRef = inject(ChangeDetectorRef);\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['filterComponent']) {\r\n this.unRegister();\r\n this.register();\r\n }\r\n }\r\n\r\n private onFilterChange(value: T): void {\r\n if (this.tableComponent?.filter !== value) {\r\n setComponentProperties(this.tableComponent, {\r\n filter: value,\r\n currentPage: 1,\r\n });\r\n \r\n this.changeDetectorRef.detectChanges();\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unRegister();\r\n }\r\n\r\n private unRegister() {\r\n this.subscription?.unsubscribe();\r\n }\r\n\r\n private register() {\r\n this.filterComponent.registerOnChange((value: T) => {\r\n this.filterChange$.next(value);\r\n });\r\n\r\n this.subscription = this.filterChange$\r\n .pipe(\r\n debounceTime(\r\n this.filterComponent.debounceTime ? 0 : DEFAULT_DEBOUNCE_TIME\r\n )\r\n )\r\n .subscribe((value) => this.onFilterChange(value));\r\n }\r\n}\r\n","type ErrorCodesFn = (value?: any) => string;\n\nexport const ErrorCodesFns: { [key: string]: ErrorCodesFn } = {\n required: () => `This field is required!`,\n email: () => `Email is in wrong format!`,\n iban: () => `IBAN is in wrong format!`,\n lowStrength: () => `Password too weak!`,\n customPasswordRequirements: () => `Password does not meet minimal requirements.`,\n fieldsNotMatching: () => `Passwords are not the same!`,\n validationError: (value: any) => `${value}`,\n};\n","import { AbstractControl, ValidationErrors } from '@angular/forms';\n\ntype ErrorValue = { key: string; value: string } | null;\n\nexport function getFirstErrorFromControl<T extends AbstractControl>(\n control: T\n): ErrorValue {\n if (!control || !control.errors) {\n return null;\n }\n const errors = control.errors ?? false;\n if (errors) {\n const key = Object.keys(control.errors)[0];\n const value = control.errors[key];\n return { key, value };\n }\n return null;\n}\n\nexport function getFirstError(errors: ValidationErrors): ErrorValue {\n if (errors) {\n const key = Object.keys(errors)[0];\n const value = errors[key];\n return { key, value };\n }\n return null;\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { ValidationErrors } from '@angular/forms';\nimport { ErrorCodesFns } from './error.codes';\nimport { getFirstError } from './error.models';\n\nconst EMPTY = '';\n\n@Pipe({\n name: 'error',\n standalone: true,\n})\nexport class ErrorPipe implements PipeTransform {\n transform(errors: ValidationErrors | undefined | null): string {\n if (!errors) {\n return EMPTY;\n }\n const error = getFirstError(errors);\n if (error) {\n const errorFn = ErrorCodesFns[error.key];\n if (!errorFn) {\n return EMPTY;\n }\n return ErrorCodesFns[error.key](error.value);\n }\n return EMPTY;\n }\n}\n","type WarningCodesFn = (value?: any) => string;\n\nexport const WarningCodesFns: { [key: string]: WarningCodesFn } = {\n validationWarning: (value: any) => `${value}`,\n};\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { ValidationErrors } from '@angular/forms';\nimport { getFirstError } from './error.models';\nimport { WarningCodesFns } from './warning.codes';\n\nconst EMPTY = '';\n\n@Pipe({\n name: 'warning',\n standalone: true,\n})\nexport class WarningPipe implements PipeTransform {\n transform(warnings: ValidationErrors | undefined | null): string {\n if (!warnings) {\n return EMPTY;\n }\n const error = getFirstError(warnings);\n if (error) {\n const errorFn = WarningCodesFns[error.key];\n if (!errorFn) {\n return EMPTY;\n }\n return WarningCodesFns[error.key](error.value);\n }\n return EMPTY;\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'keyOrFn',\n pure: false,\n standalone: true,\n})\nexport class KeyOrFunctionPipe implements PipeTransform {\n transform(keyOrFn: any, row: any): any {\n if (keyOrFn instanceof Function) {\n return keyOrFn(row);\n } else if (typeof keyOrFn === 'string') {\n const value = row[keyOrFn];\n if (value) {\n return value;\n }\n } else if (typeof keyOrFn === 'boolean') {\n return keyOrFn;\n }\n return '';\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\n\n@Pipe({\n name: 'enumToList',\n standalone: true,\n})\nexport class EnumToListPipe implements PipeTransform {\n transform(data: any): any[] {\n return Object.keys(data)\n .filter(key => isNaN(Number(key)))\n .map(key => ({\n label: key,\n value: data[key as keyof typeof data],\n }));\n }\n}","import { toCzechDateTimeString } from \"@verisoft/core\";\n\n/* eslint-disable @typescript-eslint/ban-types */\nexport class Format {\n static concatArray(value: any[], itemFormatter?: Function, delimeter = ';') {\n if (!value) {\n return '';\n }\n\n return value\n .map(item => itemFormatter ? itemFormatter(item) : item)\n .filter(item => item !== undefined && item !== null)\n .join(`${delimeter} `);\n }\n\n static czechDate(value: Date | string) {\n return toCzechDateTimeString(value);\n }\n\n static date(value: Date | string) {\n if (!value) {\n return '';\n }\n\n if (typeof value === 'string') {\n value = new Date(value);\n }\n\n return value.getDate() + '. ' + (value.getMonth() + 1) + '. ' + value.getFullYear();\n }\n\n static dateAndTime(value: Date | string) {\n if (!value) {\n return '';\n }\n\n if (typeof value === 'string') {\n value = new Date(value);\n }\n\n return ('0' + value.getDate()).slice(-2)\n + '.' + ('0' + (value.getMonth() + 1)).slice(-2)\n + '.' + value.getFullYear() + ' ' + ('0' + value.getHours()).slice(-2)\n + ':' + ('0' + value.getMinutes()).slice(-2) + ':' + ('0' + value.getSeconds()).slice(-2);\n }\n\n static convertToUserLocaleDate(value?: Date | string) {\n if (!value) {\n return '';\n }\n\n if (typeof value === 'string') {\n value = new Date(value);\n }\n\n return value.toLocaleDateString(navigator.language, { timeZone: 'UTC' });\n }\n\n static bool(value: boolean) {\n if (value) {\n return 'Yes';\n } else {\n return 'No';\n }\n }\n\n static boolWithIcon(value: boolean) {\n if (value) {\n return `<span>✓</span>`;\n } else {\n return `<span>⨯</span>`;\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2.PageHeaderService","i1.SideMenuService","EMPTY"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@verisoft/ui-core",
3
- "version": "21.0.9",
3
+ "version": "21.0.11",
4
4
  "peerDependencies": {
5
5
  "@verisoft/core": "^21.0.0",
6
6
  "@verisoft/store": "^21.0.0",
@@ -145,6 +145,12 @@ interface CommonIcons {
145
145
  check: string;
146
146
  envelope: string;
147
147
  loader: string;
148
+ file: string;
149
+ map: string;
150
+ arrowCounterclockwise: string;
151
+ folder: string;
152
+ eye: string;
153
+ box: string;
148
154
  }
149
155
 
150
156
  declare function downloadText(filename: string, text: string, mimeType?: string | undefined): void;
@@ -224,7 +230,9 @@ declare class ScreenSizeService {
224
230
  declare class DialogService {
225
231
  showEvent: EventEmitter<ExtendedDialogData>;
226
232
  closeEvent: EventEmitter<null>;
233
+ private currentDialogData;
227
234
  showDialog<TInputs, TOutputs>(data: ExtendedDialogData<TInputs, TOutputs>): void;
235
+ updateDialog<TInputs = unknown, TOutputs = unknown>(patch: Partial<ExtendedDialogData<TInputs, TOutputs>>): void;
228
236
  private mapInputAndOutpus;
229
237
  closeModal(): void;
230
238
  static ɵfac: i0.ɵɵFactoryDeclaration<DialogService, never>;
@@ -519,6 +527,7 @@ interface DialogData {
519
527
  showCancelButton?: boolean;
520
528
  buttonOrder?: 'confirm-cancel' | 'cancel-confirm';
521
529
  confirmButtonText?: string;
530
+ confirmButtonDisabled?: boolean;
522
531
  confirmButtonFn?: () => void;
523
532
  cancelButtonFn?: () => void;
524
533
  cancelButtonText?: string;
@@ -529,7 +538,7 @@ interface DialogData {
529
538
  width?: string;
530
539
  height?: string;
531
540
  }
532
- interface ExtendedDialogData<TInputs = any, TOutputs = any> extends DialogData {
541
+ interface ExtendedDialogData<TInputs = unknown, TOutputs = unknown> extends DialogData {
533
542
  data?: TInputs & TOutputs;
534
543
  }
535
544