@verisoft/ui-core 21.0.11 → 21.0.12

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.
@@ -883,6 +883,21 @@ const CONFIRM_DIALOG_COMPONENT_TOKEN = new InjectionToken('ConfirmDialogComponen
883
883
  const DROPDOWN_COMPONENT_TOKEN = new InjectionToken('DropdownComponentToken');
884
884
 
885
885
  const FILTER_COMPONENT_TOKEN = new InjectionToken('FilterComponentToken');
886
+ function getFilledControlCount(formGroup) {
887
+ let count = 0;
888
+ Object.keys(formGroup.controls).forEach((key) => {
889
+ const control = formGroup.get(key);
890
+ if (control?.value) {
891
+ if (typeof control.value === 'boolean') {
892
+ count++;
893
+ }
894
+ if (typeof control.value === 'string' && control.value.trim() !== '') {
895
+ count++;
896
+ }
897
+ }
898
+ });
899
+ return count;
900
+ }
886
901
 
887
902
  const FORM_FIELD_COMPONENT_TOKEN = new InjectionToken('FormFieldComponentToken');
888
903
 
@@ -1455,6 +1470,31 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImpor
1455
1470
 
1456
1471
  const TAG_COMPONENT_TOKEN = new InjectionToken('TagComponentToken');
1457
1472
 
1473
+ const FEATURE_LIST_PAGE_CONFIG_PROPERTY = 'feature_list_config';
1474
+ const FEATURE_LIST_COLUMN_PROVIDER = new InjectionToken('FEATURE_LIST_COLUMN_PROVIDER');
1475
+
1476
+ class FeatureListFilterPipe {
1477
+ transform(value) {
1478
+ if (!value) {
1479
+ return undefined;
1480
+ }
1481
+ return value.filter(x => x.filter).map((x, index) => ({
1482
+ ...(x.filterOptions ?? {}),
1483
+ name: x.id,
1484
+ label: typeof x.headerName === 'function' ? x.headerName(x.id, index) : x.headerName ?? '',
1485
+ type: x.type,
1486
+ }));
1487
+ }
1488
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: FeatureListFilterPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
1489
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.1.3", ngImport: i0, type: FeatureListFilterPipe, isStandalone: true, name: "featureListColumn" });
1490
+ }
1491
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: FeatureListFilterPipe, decorators: [{
1492
+ type: Pipe,
1493
+ args: [{
1494
+ name: 'featureListColumn',
1495
+ }]
1496
+ }] });
1497
+
1458
1498
  class DatasourceDirective extends UnsubscribeComponent {
1459
1499
  datasource;
1460
1500
  autoBind = true;
@@ -1834,6 +1874,112 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImpor
1834
1874
  args: [{ required: true }]
1835
1875
  }] } });
1836
1876
 
1877
+ class FilterFieldDirective {
1878
+ name;
1879
+ type = GenericFieldType.text;
1880
+ label;
1881
+ optionLabel;
1882
+ optionValue;
1883
+ options;
1884
+ value;
1885
+ validator;
1886
+ datasource;
1887
+ filterField;
1888
+ showFilter;
1889
+ localSearch;
1890
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: FilterFieldDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
1891
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.3", type: FilterFieldDirective, isStandalone: true, selector: "v-filter-field", inputs: { name: "name", type: "type", label: "label", optionLabel: "optionLabel", optionValue: "optionValue", options: "options", value: "value", validator: "validator", datasource: "datasource", filterField: "filterField", showFilter: "showFilter", localSearch: "localSearch" }, ngImport: i0 });
1892
+ }
1893
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: FilterFieldDirective, decorators: [{
1894
+ type: Directive,
1895
+ args: [{
1896
+ // eslint-disable-next-line @angular-eslint/directive-selector
1897
+ selector: 'v-filter-field',
1898
+ standalone: true,
1899
+ }]
1900
+ }], propDecorators: { name: [{
1901
+ type: Input,
1902
+ args: [{ required: true }]
1903
+ }], type: [{
1904
+ type: Input
1905
+ }], label: [{
1906
+ type: Input
1907
+ }], optionLabel: [{
1908
+ type: Input
1909
+ }], optionValue: [{
1910
+ type: Input
1911
+ }], options: [{
1912
+ type: Input
1913
+ }], value: [{
1914
+ type: Input
1915
+ }], validator: [{
1916
+ type: Input
1917
+ }], datasource: [{
1918
+ type: Input
1919
+ }], filterField: [{
1920
+ type: Input
1921
+ }], showFilter: [{
1922
+ type: Input
1923
+ }], localSearch: [{
1924
+ type: Input
1925
+ }] } });
1926
+
1927
+ class FeatureListFilterFieldDirective extends FilterFieldDirective {
1928
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: FeatureListFilterFieldDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
1929
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.3", type: FeatureListFilterFieldDirective, isStandalone: true, selector: "v-feature-list-filter-field", usesInheritance: true, ngImport: i0 });
1930
+ }
1931
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: FeatureListFilterFieldDirective, decorators: [{
1932
+ type: Directive,
1933
+ args: [{
1934
+ // eslint-disable-next-line @angular-eslint/directive-selector
1935
+ selector: 'v-feature-list-filter-field',
1936
+ standalone: true,
1937
+ }]
1938
+ }] });
1939
+
1940
+ class FeatureListColumnDirective extends TableColumnDirective {
1941
+ filter = false;
1942
+ type = GenericFieldType.text;
1943
+ filterOptions;
1944
+ getDefinition() {
1945
+ const definition = super.getDefinition();
1946
+ definition.filter = this.filter;
1947
+ definition.type = this.type;
1948
+ definition.format = this.format;
1949
+ definition.filterOptions = this.filterOptions;
1950
+ return definition;
1951
+ }
1952
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: FeatureListColumnDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
1953
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.3", type: FeatureListColumnDirective, isStandalone: true, selector: "v-feature-list-column", inputs: { filter: "filter", type: "type", filterOptions: "filterOptions" }, providers: [
1954
+ {
1955
+ provide: FEATURE_LIST_COLUMN_PROVIDER,
1956
+ useExisting: FeatureListColumnDirective,
1957
+ multi: true,
1958
+ },
1959
+ ], usesInheritance: true, ngImport: i0 });
1960
+ }
1961
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: FeatureListColumnDirective, decorators: [{
1962
+ type: Directive,
1963
+ args: [{
1964
+ // eslint-disable-next-line @angular-eslint/directive-selector
1965
+ selector: 'v-feature-list-column',
1966
+ standalone: true,
1967
+ providers: [
1968
+ {
1969
+ provide: FEATURE_LIST_COLUMN_PROVIDER,
1970
+ useExisting: FeatureListColumnDirective,
1971
+ multi: true,
1972
+ },
1973
+ ],
1974
+ }]
1975
+ }], propDecorators: { filter: [{
1976
+ type: Input
1977
+ }], type: [{
1978
+ type: Input
1979
+ }], filterOptions: [{
1980
+ type: Input
1981
+ }] } });
1982
+
1837
1983
  const ErrorCodesFns = {
1838
1984
  required: () => `This field is required!`,
1839
1985
  email: () => `Email is in wrong format!`,
@@ -2038,5 +2184,5 @@ class Format {
2038
2184
  * Generated bundle index. Do not edit.
2039
2185
  */
2040
2186
 
2041
- export { ACTION_BUTTON_GROUP_COMPONENT_TOKEN, BREADCRUMB_COMPONENT_TOKEN, BUTTON_COMPONENT_TOKEN, BaseFormDirective, BaseFormInputComponent, BaseInputControls, BreadcrumbCoreComponent, BreadcrumbService, ButtonShortCutDirective, CALENDAR_COMPONENT_TOKEN, CHECKBOX_COMPONENT_TOKEN, CONFIRM_DIALOG_COMPONENT_TOKEN, ColumnConfiguration, ColumnModel, ColumnVisibility, ControlSeverity, DEFAULT_DEBOUNCE_TIME, DEFAULT_PAGINATION, DROPDOWN_BUTTON_COMPONENT_TOKEN, DROPDOWN_COMPONENT_TOKEN, DatasourceDirective, DetailStoreDirective, DialogService, EnumToListPipe, ErrorCodesFns, ErrorPipe, FILTER_COMPONENT_TOKEN, FORM_FIELD_COMPONENT_TOKEN, FieldAlign, FieldSize, FieldType, Format, GENERIC_FIELD_COMPONENT_TOKEN, GenericFieldType, GovButtonType, GovControlSeverity, HEADER_COMPONENT_TOKEN, ICONS_COMPONENT_TOKEN, INPUT_GROUP_COMPONENT_TOKEN, IconPosition, IconsComponent, KeyOrFunctionPipe, LOADER_COMPONENT_TOKEN, LOGO_ROUTER_ROUTE, LayoutType, LinkRenderer, MAX_COLUMN_CHAR_COUNT, MENU_TOKEN, MULTISELECT_COMPONENT_TOKEN, MenuServiceDirective, NUMBER_INPUT_COMPONENT_TOKEN, PAGE_HEADER_COMPONENT_TOKEN, PASSWORD_COMPONENT_TOKEN, PageHeaderCoreComponent, PageHeaderService, PasswordStrength, Position, PreventUnsavedChangesDirective, RADIOBUTTON_COMPONENT_TOKEN, Renderer, RowModel, SECTION_COMPONENT_TOKEN, SETTINGS_MENU, SIDE_MENU_COMPONENT_TOKEN, SIDE_MENU_STATE_TOKEN, SLIDER_COMPONENT_TOKEN, SNACKBAR_COMPONENT_TOKEN, STEPPER_COMPONENT_TOKEN, SWITCH_COMPONENT_TOKEN, ScreenSizeService, SideMenuProviderService, SideMenuService, SlotPosition, TABLE_COLUMN_PROVIDER, TABLE_COMPONENT_TOKEN, TABLE_FILTER_COMPONENT_TOKEN, TAB_VIEW_COMPONENT_TOKEN, TAG_COMPONENT_TOKEN, TEXTAREA_COMPONENT_TOKEN, TEXTFIELD_COMPONENT_TOKEN, TOOLTIP_COMPONENT_TOKEN, TableBuilder, TableButtonSeverity, TableColumnDirective, TableDatasourceDirective, TableFilterDirective, TableSelectionMode, TableService, UnsubscribeComponent, WarningCodesFns, WarningPipe, downloadFile, downloadText, getFirstError, getFirstErrorFromControl, isFilterEmpty, isFormStateEqual, queryListChanged, routerRenderer, setComponentProperties, setDataToArray };
2187
+ export { ACTION_BUTTON_GROUP_COMPONENT_TOKEN, BREADCRUMB_COMPONENT_TOKEN, BUTTON_COMPONENT_TOKEN, BaseFormDirective, BaseFormInputComponent, BaseInputControls, BreadcrumbCoreComponent, BreadcrumbService, ButtonShortCutDirective, CALENDAR_COMPONENT_TOKEN, CHECKBOX_COMPONENT_TOKEN, CONFIRM_DIALOG_COMPONENT_TOKEN, ColumnConfiguration, ColumnModel, ColumnVisibility, ControlSeverity, DEFAULT_DEBOUNCE_TIME, DEFAULT_PAGINATION, DROPDOWN_BUTTON_COMPONENT_TOKEN, DROPDOWN_COMPONENT_TOKEN, DatasourceDirective, DetailStoreDirective, DialogService, EnumToListPipe, ErrorCodesFns, ErrorPipe, FEATURE_LIST_COLUMN_PROVIDER, FEATURE_LIST_PAGE_CONFIG_PROPERTY, FILTER_COMPONENT_TOKEN, FORM_FIELD_COMPONENT_TOKEN, FeatureListColumnDirective, FeatureListFilterFieldDirective, FeatureListFilterPipe, FieldAlign, FieldSize, FieldType, FilterFieldDirective, Format, GENERIC_FIELD_COMPONENT_TOKEN, GenericFieldType, GovButtonType, GovControlSeverity, HEADER_COMPONENT_TOKEN, ICONS_COMPONENT_TOKEN, INPUT_GROUP_COMPONENT_TOKEN, IconPosition, IconsComponent, KeyOrFunctionPipe, LOADER_COMPONENT_TOKEN, LOGO_ROUTER_ROUTE, LayoutType, LinkRenderer, MAX_COLUMN_CHAR_COUNT, MENU_TOKEN, MULTISELECT_COMPONENT_TOKEN, MenuServiceDirective, NUMBER_INPUT_COMPONENT_TOKEN, PAGE_HEADER_COMPONENT_TOKEN, PASSWORD_COMPONENT_TOKEN, PageHeaderCoreComponent, PageHeaderService, PasswordStrength, Position, PreventUnsavedChangesDirective, RADIOBUTTON_COMPONENT_TOKEN, Renderer, RowModel, SECTION_COMPONENT_TOKEN, SETTINGS_MENU, SIDE_MENU_COMPONENT_TOKEN, SIDE_MENU_STATE_TOKEN, SLIDER_COMPONENT_TOKEN, SNACKBAR_COMPONENT_TOKEN, STEPPER_COMPONENT_TOKEN, SWITCH_COMPONENT_TOKEN, ScreenSizeService, SideMenuProviderService, SideMenuService, SlotPosition, TABLE_COLUMN_PROVIDER, TABLE_COMPONENT_TOKEN, TABLE_FILTER_COMPONENT_TOKEN, TAB_VIEW_COMPONENT_TOKEN, TAG_COMPONENT_TOKEN, TEXTAREA_COMPONENT_TOKEN, TEXTFIELD_COMPONENT_TOKEN, TOOLTIP_COMPONENT_TOKEN, TableBuilder, TableButtonSeverity, TableColumnDirective, TableDatasourceDirective, TableFilterDirective, TableSelectionMode, TableService, UnsubscribeComponent, WarningCodesFns, WarningPipe, downloadFile, downloadText, getFilledControlCount, getFirstError, getFirstErrorFromControl, isFilterEmpty, isFormStateEqual, queryListChanged, routerRenderer, setComponentProperties, setDataToArray };
2042
2188
  //# sourceMappingURL=verisoft-ui-core.mjs.map
@@ -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 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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"}
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/components/feature-list/feature-list-page.model.ts","../../../../../src/libs/ui-core/src/lib/components/feature-list/feature-list-filter.pipe.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/directives/filter-field.directive.ts","../../../../../src/libs/ui-core/src/lib/directives/feature-list-filter-field.directive.ts","../../../../../src/libs/ui-core/src/lib/directives/feature-list-column.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 { cloneDeep } from '@verisoft/core';\nimport { Subject, takeUntil, filter, map, Observable } from 'rxjs';\nimport { PreventUnsavedChangesCore } from '../../common';\nimport { PreventUnsavedChangesDirective } from '../../services';\nimport { FormState, isFormStateEqual } from './models';\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\r\nimport { FormGroup } from '@angular/forms';\r\n\r\nexport function getFilledControlCount(formGroup: FormGroup): number {\r\n let count = 0;\r\n Object.keys(formGroup.controls).forEach((key) => {\r\n const control = formGroup.get(key);\r\n if (control?.value) {\r\n if (typeof control.value === 'boolean') {\r\n count++;\r\n }\r\n if (typeof control.value === 'string' && control.value.trim() !== '') {\r\n count++;\r\n }\r\n }\r\n });\r\n\r\n return count;\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 { InjectionToken } from '@angular/core';\nimport { GenericFieldDefinition, GenericFieldTypeType } from '../generic-form';\nimport { ColumnDefinition } from '../table';\n\n\nexport interface FeatureListPageConfig {\n title: string;\n datasource: string;\n tableName: string;\n showAdd?: boolean;\n showDownload?: boolean;\n showDelete?: boolean;\n}\n\nexport const FEATURE_LIST_PAGE_CONFIG_PROPERTY = 'feature_list_config';\n\nexport interface FeatureListColumnDefinition<T> extends ColumnDefinition<T> {\n filter?: boolean;\n type?: GenericFieldTypeType;\n filterOptions?: FeatureListColumnFilterOptions;\n}\n\nexport type FeatureListColumnFilterOptions = Omit<GenericFieldDefinition, 'type' | 'label' | 'name' | 'showFilter'>;\n\nexport const FEATURE_LIST_COLUMN_PROVIDER = new InjectionToken(\n 'FEATURE_LIST_COLUMN_PROVIDER'\n);\n\nexport interface FeatureListColumnProvider<T> {\n getDefinition: () => FeatureListColumnDefinition<T>;\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { GenericFieldDefinition, GenericFieldType } from \"../generic-form\";\nimport { FeatureListColumnDefinition } from \"./feature-list-page.model\";\n\n@Pipe({\n name: 'featureListColumn',\n})\nexport class FeatureListFilterPipe<T> implements PipeTransform {\n transform(value: FeatureListColumnDefinition<T>[] | undefined): GenericFieldDefinition[] | undefined {\n if (!value){\n return undefined;\n }\n\n return value.filter(x => x.filter).map((x, index) => ({\n ...(x.filterOptions ?? {}),\n name: x.id,\n label: typeof x.headerName === 'function'? x.headerName(x.id, index) : x.headerName ?? '',\n type: x.type as GenericFieldType,\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 {\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","import { Directive, Input } from '@angular/core';\nimport { ValidatorFn } from '@angular/forms';\nimport { DatasourceType } from '@verisoft/core';\nimport { GenericFieldDefinition, GenericFieldType, GenericFieldTypeType } from '../components';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'v-filter-field',\n standalone: true,\n})\nexport class FilterFieldDirective implements GenericFieldDefinition {\n @Input({ required: true }) name!: string;\n\n @Input() type: GenericFieldTypeType | undefined = GenericFieldType.text;\n\n @Input() label: string | undefined;\n\n @Input() optionLabel!: string;\n\n @Input() optionValue: string | undefined;\n\n @Input() options: unknown[] | undefined;\n\n @Input() value?: unknown;\n\n @Input() validator?: ValidatorFn[];\n\n @Input() datasource: DatasourceType<any> | undefined;\n\n @Input() filterField?: string;\n\n @Input() showFilter?: boolean;\n\n @Input() localSearch?: boolean;\n}\n","import { Directive } from '@angular/core';\nimport { FilterFieldDirective } from './filter-field.directive';\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'v-feature-list-filter-field',\n standalone: true,\n})\nexport class FeatureListFilterFieldDirective extends FilterFieldDirective {}","import { Directive, Input } from '@angular/core';\nimport { FEATURE_LIST_COLUMN_PROVIDER, FeatureListColumnDefinition, FeatureListColumnFilterOptions, FeatureListColumnProvider, GenericFieldType, GenericFieldTypeType, TableColumnDirective } from '../components';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'v-feature-list-column',\n standalone: true,\n providers: [\n {\n provide: FEATURE_LIST_COLUMN_PROVIDER,\n useExisting: FeatureListColumnDirective,\n multi: true,\n },\n ],\n})\nexport class FeatureListColumnDirective<T>\n extends TableColumnDirective<T>\n implements FeatureListColumnProvider<T>\n{\n @Input() filter = false;\n\n @Input() type: GenericFieldTypeType = GenericFieldType.text;\n\n @Input() filterOptions?: FeatureListColumnFilterOptions;\n\n override getDefinition(): FeatureListColumnDefinition<T> {\n const definition = super.getDefinition() as FeatureListColumnDefinition<T>;\n definition.filter = this.filter;\n definition.type = this.type;\n definition.format = this.format;\n definition.filterOptions = this.filterOptions;\n return definition;\n }\n}\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.11",
3
+ "version": "21.0.12",
4
4
  "peerDependencies": {
5
5
  "@verisoft/core": "^21.0.0",
6
6
  "@verisoft/store": "^21.0.0",
@@ -598,6 +598,8 @@ interface FilterCore extends ControlValueAccessor {
598
598
  clearButtonLabel?: string;
599
599
  }
600
600
 
601
+ declare function getFilledControlCount(formGroup: FormGroup): number;
602
+
601
603
  declare const FORM_FIELD_COMPONENT_TOKEN: InjectionToken<FormFieldCore>;
602
604
  interface FormFieldCore {
603
605
  ngControl?: NgControl;
@@ -1008,6 +1010,32 @@ interface TagCore {
1008
1010
  size: InputSignal<FieldSizeType>;
1009
1011
  }
1010
1012
 
1013
+ interface FeatureListPageConfig {
1014
+ title: string;
1015
+ datasource: string;
1016
+ tableName: string;
1017
+ showAdd?: boolean;
1018
+ showDownload?: boolean;
1019
+ showDelete?: boolean;
1020
+ }
1021
+ declare const FEATURE_LIST_PAGE_CONFIG_PROPERTY = "feature_list_config";
1022
+ interface FeatureListColumnDefinition<T> extends ColumnDefinition<T> {
1023
+ filter?: boolean;
1024
+ type?: GenericFieldTypeType;
1025
+ filterOptions?: FeatureListColumnFilterOptions;
1026
+ }
1027
+ type FeatureListColumnFilterOptions = Omit<GenericFieldDefinition, 'type' | 'label' | 'name' | 'showFilter'>;
1028
+ declare const FEATURE_LIST_COLUMN_PROVIDER: InjectionToken<unknown>;
1029
+ interface FeatureListColumnProvider<T> {
1030
+ getDefinition: () => FeatureListColumnDefinition<T>;
1031
+ }
1032
+
1033
+ declare class FeatureListFilterPipe<T> implements PipeTransform {
1034
+ transform(value: FeatureListColumnDefinition<T>[] | undefined): GenericFieldDefinition[] | undefined;
1035
+ static ɵfac: i0.ɵɵFactoryDeclaration<FeatureListFilterPipe<any>, never>;
1036
+ static ɵpipe: i0.ɵɵPipeDeclaration<FeatureListFilterPipe<any>, "featureListColumn", true>;
1037
+ }
1038
+
1011
1039
  declare class DatasourceDirective<T> extends UnsubscribeComponent implements OnChanges, OnInit {
1012
1040
  datasource: DatasourceType<T>;
1013
1041
  autoBind: boolean;
@@ -1086,6 +1114,37 @@ declare class TableFilterDirective<T> implements OnChanges, OnDestroy {
1086
1114
  static ɵdir: i0.ɵɵDirectiveDeclaration<TableFilterDirective<any>, "v-table[useFilter]", ["tableFilterDirective"], { "filterComponent": { "alias": "filterComponent"; "required": true; }; }, {}, never, never, true, never>;
1087
1115
  }
1088
1116
 
1117
+ declare class FilterFieldDirective implements GenericFieldDefinition {
1118
+ name: string;
1119
+ type: GenericFieldTypeType | undefined;
1120
+ label: string | undefined;
1121
+ optionLabel: string;
1122
+ optionValue: string | undefined;
1123
+ options: unknown[] | undefined;
1124
+ value?: unknown;
1125
+ validator?: ValidatorFn[];
1126
+ datasource: DatasourceType<any> | undefined;
1127
+ filterField?: string;
1128
+ showFilter?: boolean;
1129
+ localSearch?: boolean;
1130
+ static ɵfac: i0.ɵɵFactoryDeclaration<FilterFieldDirective, never>;
1131
+ static ɵdir: i0.ɵɵDirectiveDeclaration<FilterFieldDirective, "v-filter-field", never, { "name": { "alias": "name"; "required": true; }; "type": { "alias": "type"; "required": false; }; "label": { "alias": "label"; "required": false; }; "optionLabel": { "alias": "optionLabel"; "required": false; }; "optionValue": { "alias": "optionValue"; "required": false; }; "options": { "alias": "options"; "required": false; }; "value": { "alias": "value"; "required": false; }; "validator": { "alias": "validator"; "required": false; }; "datasource": { "alias": "datasource"; "required": false; }; "filterField": { "alias": "filterField"; "required": false; }; "showFilter": { "alias": "showFilter"; "required": false; }; "localSearch": { "alias": "localSearch"; "required": false; }; }, {}, never, never, true, never>;
1132
+ }
1133
+
1134
+ declare class FeatureListFilterFieldDirective extends FilterFieldDirective {
1135
+ static ɵfac: i0.ɵɵFactoryDeclaration<FeatureListFilterFieldDirective, never>;
1136
+ static ɵdir: i0.ɵɵDirectiveDeclaration<FeatureListFilterFieldDirective, "v-feature-list-filter-field", never, {}, {}, never, never, true, never>;
1137
+ }
1138
+
1139
+ declare class FeatureListColumnDirective<T> extends TableColumnDirective<T> implements FeatureListColumnProvider<T> {
1140
+ filter: boolean;
1141
+ type: GenericFieldTypeType;
1142
+ filterOptions?: FeatureListColumnFilterOptions;
1143
+ getDefinition(): FeatureListColumnDefinition<T>;
1144
+ static ɵfac: i0.ɵɵFactoryDeclaration<FeatureListColumnDirective<any>, never>;
1145
+ static ɵdir: i0.ɵɵDirectiveDeclaration<FeatureListColumnDirective<any>, "v-feature-list-column", never, { "filter": { "alias": "filter"; "required": false; }; "type": { "alias": "type"; "required": false; }; "filterOptions": { "alias": "filterOptions"; "required": false; }; }, {}, never, never, true, never>;
1146
+ }
1147
+
1089
1148
  type ErrorCodesFn = (value?: any) => string;
1090
1149
  declare const ErrorCodesFns: {
1091
1150
  [key: string]: ErrorCodesFn;
@@ -1137,5 +1196,5 @@ declare class Format {
1137
1196
  static boolWithIcon(value: boolean): "<span>✓</span>" | "<span>⨯</span>";
1138
1197
  }
1139
1198
 
1140
- export { ACTION_BUTTON_GROUP_COMPONENT_TOKEN, BREADCRUMB_COMPONENT_TOKEN, BUTTON_COMPONENT_TOKEN, BaseFormDirective, BaseFormInputComponent, BaseInputControls, BreadcrumbCoreComponent, BreadcrumbService, ButtonShortCutDirective, CALENDAR_COMPONENT_TOKEN, CHECKBOX_COMPONENT_TOKEN, CONFIRM_DIALOG_COMPONENT_TOKEN, ColumnConfiguration, ColumnModel, ColumnVisibility, ControlSeverity, DEFAULT_DEBOUNCE_TIME, DEFAULT_PAGINATION, DROPDOWN_BUTTON_COMPONENT_TOKEN, DROPDOWN_COMPONENT_TOKEN, DatasourceDirective, DetailStoreDirective, DialogService, EnumToListPipe, ErrorCodesFns, ErrorPipe, FILTER_COMPONENT_TOKEN, FORM_FIELD_COMPONENT_TOKEN, FieldAlign, FieldSize, FieldType, Format, GENERIC_FIELD_COMPONENT_TOKEN, GenericFieldType, GovButtonType, GovControlSeverity, HEADER_COMPONENT_TOKEN, ICONS_COMPONENT_TOKEN, INPUT_GROUP_COMPONENT_TOKEN, IconPosition, IconsComponent, KeyOrFunctionPipe, LOADER_COMPONENT_TOKEN, LOGO_ROUTER_ROUTE, LayoutType, LinkRenderer, MAX_COLUMN_CHAR_COUNT, MENU_TOKEN, MULTISELECT_COMPONENT_TOKEN, MenuServiceDirective, NUMBER_INPUT_COMPONENT_TOKEN, PAGE_HEADER_COMPONENT_TOKEN, PASSWORD_COMPONENT_TOKEN, PageHeaderCoreComponent, PageHeaderService, PasswordStrength, Position, PreventUnsavedChangesDirective, RADIOBUTTON_COMPONENT_TOKEN, Renderer, RowModel, SECTION_COMPONENT_TOKEN, SETTINGS_MENU, SIDE_MENU_COMPONENT_TOKEN, SIDE_MENU_STATE_TOKEN, SLIDER_COMPONENT_TOKEN, SNACKBAR_COMPONENT_TOKEN, STEPPER_COMPONENT_TOKEN, SWITCH_COMPONENT_TOKEN, ScreenSizeService, SideMenuProviderService, SideMenuService, SlotPosition, TABLE_COLUMN_PROVIDER, TABLE_COMPONENT_TOKEN, TABLE_FILTER_COMPONENT_TOKEN, TAB_VIEW_COMPONENT_TOKEN, TAG_COMPONENT_TOKEN, TEXTAREA_COMPONENT_TOKEN, TEXTFIELD_COMPONENT_TOKEN, TOOLTIP_COMPONENT_TOKEN, TableBuilder, TableButtonSeverity, TableColumnDirective, TableDatasourceDirective, TableFilterDirective, TableSelectionMode, TableService, UnsubscribeComponent, WarningCodesFns, WarningPipe, downloadFile, downloadText, getFirstError, getFirstErrorFromControl, isFilterEmpty, isFormStateEqual, queryListChanged, routerRenderer, setComponentProperties, setDataToArray };
1141
- export type { ActionButton, ActionButtonGroupCore, ActionColumnsDefinition, BaseFormCore, BaseFormDirectiveCore, Breadcrumb, BreadcrumbCore, ButtonCore, CalendarCore, CheckboxCore, ColumnDefinition, ColumnProvider, ColumnVisibilityType, CommonIcons, ConfirmDialogCore, ControlSeverityType, DataSourceComponentModel, DialogData, DropdownButtonCore, DropdownCore, ExtendedComponent, ExtendedDialogData, ExtendedRequestType, FieldAlignType, FieldSizeType, FieldTypeType, FilterCore, FilterDefinition, FormFieldCore, FormState, GenericFieldCore, GenericFieldDefinition, GenericFieldTypeType, GovButtonTypeType, GovControlSeverityType, HeaderCore, IconLibraryType, IconPositionType, IconsCore, InputGroupCore, InputGroupItem, LayoutTypeType, LoaderCore, MenuItem, MenuItemData, MultiselectCore, NotificableProperty, NumberInputCore, PageHeaderCore, PasswordCore, PasswordValidationItem, PositionType, PreventUnsavedChangesCore, RadioButtonItem, RadiobuttonCore, SectionCore, SideMenuCore, SideMenuModuleConfig, SideMenuState, SliderCore, SlotPositionType, SnackbarCore, StepperCore, StepperItem, SwitchCore, TabViewCore, TabViewItemCore, TableButtonSeverityType, TableCore, TableFilterCore, TableSelectionModeType, TableSignal, TagCore, TagVariant, TextareaCore, TextfieldCore, TooltipCore };
1199
+ export { ACTION_BUTTON_GROUP_COMPONENT_TOKEN, BREADCRUMB_COMPONENT_TOKEN, BUTTON_COMPONENT_TOKEN, BaseFormDirective, BaseFormInputComponent, BaseInputControls, BreadcrumbCoreComponent, BreadcrumbService, ButtonShortCutDirective, CALENDAR_COMPONENT_TOKEN, CHECKBOX_COMPONENT_TOKEN, CONFIRM_DIALOG_COMPONENT_TOKEN, ColumnConfiguration, ColumnModel, ColumnVisibility, ControlSeverity, DEFAULT_DEBOUNCE_TIME, DEFAULT_PAGINATION, DROPDOWN_BUTTON_COMPONENT_TOKEN, DROPDOWN_COMPONENT_TOKEN, DatasourceDirective, DetailStoreDirective, DialogService, EnumToListPipe, ErrorCodesFns, ErrorPipe, FEATURE_LIST_COLUMN_PROVIDER, FEATURE_LIST_PAGE_CONFIG_PROPERTY, FILTER_COMPONENT_TOKEN, FORM_FIELD_COMPONENT_TOKEN, FeatureListColumnDirective, FeatureListFilterFieldDirective, FeatureListFilterPipe, FieldAlign, FieldSize, FieldType, FilterFieldDirective, Format, GENERIC_FIELD_COMPONENT_TOKEN, GenericFieldType, GovButtonType, GovControlSeverity, HEADER_COMPONENT_TOKEN, ICONS_COMPONENT_TOKEN, INPUT_GROUP_COMPONENT_TOKEN, IconPosition, IconsComponent, KeyOrFunctionPipe, LOADER_COMPONENT_TOKEN, LOGO_ROUTER_ROUTE, LayoutType, LinkRenderer, MAX_COLUMN_CHAR_COUNT, MENU_TOKEN, MULTISELECT_COMPONENT_TOKEN, MenuServiceDirective, NUMBER_INPUT_COMPONENT_TOKEN, PAGE_HEADER_COMPONENT_TOKEN, PASSWORD_COMPONENT_TOKEN, PageHeaderCoreComponent, PageHeaderService, PasswordStrength, Position, PreventUnsavedChangesDirective, RADIOBUTTON_COMPONENT_TOKEN, Renderer, RowModel, SECTION_COMPONENT_TOKEN, SETTINGS_MENU, SIDE_MENU_COMPONENT_TOKEN, SIDE_MENU_STATE_TOKEN, SLIDER_COMPONENT_TOKEN, SNACKBAR_COMPONENT_TOKEN, STEPPER_COMPONENT_TOKEN, SWITCH_COMPONENT_TOKEN, ScreenSizeService, SideMenuProviderService, SideMenuService, SlotPosition, TABLE_COLUMN_PROVIDER, TABLE_COMPONENT_TOKEN, TABLE_FILTER_COMPONENT_TOKEN, TAB_VIEW_COMPONENT_TOKEN, TAG_COMPONENT_TOKEN, TEXTAREA_COMPONENT_TOKEN, TEXTFIELD_COMPONENT_TOKEN, TOOLTIP_COMPONENT_TOKEN, TableBuilder, TableButtonSeverity, TableColumnDirective, TableDatasourceDirective, TableFilterDirective, TableSelectionMode, TableService, UnsubscribeComponent, WarningCodesFns, WarningPipe, downloadFile, downloadText, getFilledControlCount, getFirstError, getFirstErrorFromControl, isFilterEmpty, isFormStateEqual, queryListChanged, routerRenderer, setComponentProperties, setDataToArray };
1200
+ export type { ActionButton, ActionButtonGroupCore, ActionColumnsDefinition, BaseFormCore, BaseFormDirectiveCore, Breadcrumb, BreadcrumbCore, ButtonCore, CalendarCore, CheckboxCore, ColumnDefinition, ColumnProvider, ColumnVisibilityType, CommonIcons, ConfirmDialogCore, ControlSeverityType, DataSourceComponentModel, DialogData, DropdownButtonCore, DropdownCore, ExtendedComponent, ExtendedDialogData, ExtendedRequestType, FeatureListColumnDefinition, FeatureListColumnFilterOptions, FeatureListColumnProvider, FeatureListPageConfig, FieldAlignType, FieldSizeType, FieldTypeType, FilterCore, FilterDefinition, FormFieldCore, FormState, GenericFieldCore, GenericFieldDefinition, GenericFieldTypeType, GovButtonTypeType, GovControlSeverityType, HeaderCore, IconLibraryType, IconPositionType, IconsCore, InputGroupCore, InputGroupItem, LayoutTypeType, LoaderCore, MenuItem, MenuItemData, MultiselectCore, NotificableProperty, NumberInputCore, PageHeaderCore, PasswordCore, PasswordValidationItem, PositionType, PreventUnsavedChangesCore, RadioButtonItem, RadiobuttonCore, SectionCore, SideMenuCore, SideMenuModuleConfig, SideMenuState, SliderCore, SlotPositionType, SnackbarCore, StepperCore, StepperItem, SwitchCore, TabViewCore, TabViewItemCore, TableButtonSeverityType, TableCore, TableFilterCore, TableSelectionModeType, TableSignal, TagCore, TagVariant, TextareaCore, TextfieldCore, TooltipCore };