@verisoft/ui-core 19.0.0-rc001 → 20.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.json +48 -0
- package/README.md +314 -3
- package/jest.config.ts +21 -0
- package/ng-package.json +11 -0
- package/package.json +16 -31
- package/project.json +36 -0
- package/{index.d.ts → src/index.ts} +1 -1
- package/src/lib/common/angular-helper.ts +44 -0
- package/src/lib/common/constants.ts +5 -0
- package/src/lib/common/control.models.ts +80 -0
- package/src/lib/common/datasource-component.model.spec.ts +42 -0
- package/src/lib/common/datasource-component.model.ts +43 -0
- package/{lib/common/deactivate-guard.model.d.ts → src/lib/common/deactivate-guard.model.ts} +2 -1
- package/src/lib/common/download-file.ts +20 -0
- package/src/lib/common/filter.ts +7 -0
- package/{lib/common/icons.d.ts → src/lib/common/icons.ts} +34 -34
- package/{lib/common/index.d.ts → src/lib/common/index.ts} +10 -10
- package/{lib/common/notificable-property.model.d.ts → src/lib/common/notificable-property.model.ts} +5 -4
- package/src/lib/common/rxjs.spec.ts +58 -0
- package/src/lib/common/rxjs.ts +21 -0
- package/src/lib/components/action-button-group/action-button-group.model.ts +15 -0
- package/src/lib/components/action-button-group/action-button.model.ts +15 -0
- package/{lib/components/action-button-group/index.d.ts → src/lib/components/action-button-group/index.ts} +2 -2
- package/src/lib/components/base-form/base-form-input.component.ts +120 -0
- package/src/lib/components/base-form/base-form.component.ts +236 -0
- package/src/lib/components/base-form/directives/detail-store.directive.ts +219 -0
- package/{lib/components/base-form/index.d.ts → src/lib/components/base-form/index.ts} +2 -2
- package/src/lib/components/base-form/models/base-form-input.models.ts +11 -0
- package/src/lib/components/base-form/models/base-form.models.ts +31 -0
- package/{lib/components/base-form/models/index.d.ts → src/lib/components/base-form/models/index.ts} +1 -1
- package/{lib/components/breadcrumb/breadcrumb.model.d.ts → src/lib/components/breadcrumb/breadcrumb.model.ts} +6 -1
- package/src/lib/components/breadcrumb/breadcrumb.service.ts +9 -0
- package/src/lib/components/breadcrumb/breadcrumbcore.component.ts +117 -0
- package/src/lib/components/breadcrumb/index.ts +3 -0
- package/{lib/components/button/button.model.d.ts → src/lib/components/button/button.model.ts} +5 -1
- package/src/lib/components/button/index.ts +1 -0
- package/{lib/components/calendar/calendar.model.d.ts → src/lib/components/calendar/calendar.model.ts} +6 -2
- package/src/lib/components/calendar/index.ts +1 -0
- package/{lib/components/checkbox/checkbox.model.d.ts → src/lib/components/checkbox/checkbox.model.ts} +5 -1
- package/src/lib/components/checkbox/index.ts +1 -0
- package/src/lib/components/confirm-dialog/confirm-dialog.model.ts +31 -0
- package/src/lib/components/confirm-dialog/index.ts +1 -0
- package/{lib/components/dropdown/dropdown.model.d.ts → src/lib/components/dropdown/dropdown.model.ts} +5 -1
- package/src/lib/components/dropdown/index.ts +1 -0
- package/{lib/components/dropdown-button/dropdown-button.model.d.ts → src/lib/components/dropdown-button/dropdown-button.model.ts} +18 -14
- package/src/lib/components/dropdown-button/index.ts +1 -0
- package/src/lib/components/dynamic-component/dynamic-component.model.ts +2 -0
- package/src/lib/components/dynamic-component/index.ts +1 -0
- package/src/lib/components/filter/filter.model.ts +17 -0
- package/{lib/components/filter/index.d.ts → src/lib/components/filter/index.ts} +1 -1
- package/{lib/components/form-field/form-field.model.d.ts → src/lib/components/form-field/form-field.model.ts} +6 -2
- package/src/lib/components/form-field/index.ts +1 -0
- package/{lib/components/generic-field/generic-field.model.d.ts → src/lib/components/generic-field/generic-field.model.ts} +5 -1
- package/src/lib/components/generic-field/index.ts +1 -0
- package/src/lib/components/generic-form/generic-form.component.ts +33 -0
- package/{lib/components/generic-form/index.d.ts → src/lib/components/generic-form/index.ts} +1 -1
- package/{lib/components/header/header.model.d.ts → src/lib/components/header/header.model.ts} +9 -2
- package/src/lib/components/header/index.ts +1 -0
- package/src/lib/components/icons/icons.component.ts +22 -0
- package/src/lib/components/icons/icons.model.ts +16 -0
- package/src/lib/components/icons/index.ts +2 -0
- package/{lib/components/index.d.ts → src/lib/components/index.ts} +2 -0
- package/src/lib/components/input-group/index.ts +1 -0
- package/{lib/components/input-group/input-group.model.d.ts → src/lib/components/input-group/input-group.model.ts} +7 -2
- package/src/lib/components/loader/index.ts +1 -0
- package/src/lib/components/loader/loader.model.ts +7 -0
- package/src/lib/components/multiselect/index.ts +1 -0
- package/{lib/components/multiselect/mutiselect.model.d.ts → src/lib/components/multiselect/mutiselect.model.ts} +6 -2
- package/src/lib/components/number-input/index.ts +1 -0
- package/{lib/components/number-input/number-input.model.d.ts → src/lib/components/number-input/number-input.model.ts} +6 -2
- package/{lib/components/page-header/index.d.ts → src/lib/components/page-header/index.ts} +1 -1
- package/{lib/components/page-header/page-header.model.d.ts → src/lib/components/page-header/page-header.model.ts} +5 -1
- package/src/lib/components/page-header/page-header.service.ts +9 -0
- package/src/lib/components/page-header/page-headercore.component.ts +42 -0
- package/src/lib/components/password/index.ts +1 -0
- package/{lib/components/password/password.model.d.ts → src/lib/components/password/password.model.ts} +9 -3
- package/src/lib/components/radiobutton/index.ts +1 -0
- package/{lib/components/radiobutton/radiobutton.model.d.ts → src/lib/components/radiobutton/radiobutton.model.ts} +8 -3
- package/src/lib/components/section/index.ts +1 -0
- package/{lib/components/section/section.model.d.ts → src/lib/components/section/section.model.ts} +6 -2
- package/src/lib/components/side-menu/directives/side-menu-service.directive.ts +31 -0
- package/{lib/components/side-menu/index.d.ts → src/lib/components/side-menu/index.ts} +1 -1
- package/src/lib/components/side-menu/services/side-menu-provider.service.ts +13 -0
- package/src/lib/components/side-menu/services/side-menu.service.ts +62 -0
- package/src/lib/components/side-menu/side-menu.model.ts +67 -0
- package/src/lib/components/slider/index.ts +1 -0
- package/{lib/components/slider/slider.model.d.ts → src/lib/components/slider/slider.model.ts} +6 -2
- package/src/lib/components/snackbar/index.ts +1 -0
- package/src/lib/components/snackbar/snackbar.model.ts +7 -0
- package/src/lib/components/stepper/index.ts +1 -0
- package/{lib/components/stepper/stepper.model.d.ts → src/lib/components/stepper/stepper.model.ts} +10 -5
- package/src/lib/components/switch/index.ts +1 -0
- package/src/lib/components/switch/switch.model.ts +8 -0
- package/src/lib/components/tab-view/index.ts +1 -0
- package/{lib/components/tab-view/tab-view.model.d.ts → src/lib/components/tab-view/tab-view.model.ts} +8 -3
- package/src/lib/components/table/column-configuration.ts +38 -0
- package/src/lib/components/table/table-builder.ts +93 -0
- package/src/lib/components/table/table-column.directive.ts +62 -0
- package/src/lib/components/table/table.models.ts +261 -0
- package/src/lib/components/table-filter/index.ts +1 -0
- package/{lib/components/table-filter/table-filter.model.d.ts → src/lib/components/table-filter/table-filter.model.ts} +6 -1
- package/src/lib/components/tag/index.ts +1 -0
- package/src/lib/components/tag/tag.model.ts +13 -0
- package/src/lib/components/textarea/index.ts +1 -0
- package/{lib/components/textarea/textarea.model.d.ts → src/lib/components/textarea/textarea.model.ts} +5 -1
- package/src/lib/components/textfield/index.ts +1 -0
- package/{lib/components/textfield/textfield.model.d.ts → src/lib/components/textfield/textfield.model.ts} +6 -2
- package/src/lib/components/tooltip/index.ts +1 -0
- package/src/lib/components/tooltip/tooltip.model.ts +13 -0
- package/src/lib/components/unsubscribe.component.ts +12 -0
- package/src/lib/directives/datasource.directive.ts +275 -0
- package/{lib/directives/index.d.ts → src/lib/directives/index.ts} +4 -4
- package/src/lib/directives/shortcut.directive.ts +37 -0
- package/src/lib/directives/table-datasource.directive.ts +184 -0
- package/src/lib/directives/table-filter.directive.ts +69 -0
- package/src/lib/format/format.ts +74 -0
- package/src/lib/pipes/error/error.codes.ts +11 -0
- package/src/lib/pipes/error/error.models.ts +27 -0
- package/src/lib/pipes/error/error.pipe.ts +27 -0
- package/src/lib/pipes/error/warning.codes.ts +5 -0
- package/src/lib/pipes/error/warning.pipe.ts +27 -0
- package/src/lib/pipes/helper/enumToList.pipe.ts +16 -0
- package/{lib/pipes/index.d.ts → src/lib/pipes/index.ts} +1 -1
- package/src/lib/pipes/keyOrFn/keyOrFn.pipe.ts +23 -0
- package/src/lib/services/confirm-dialog.service.ts +44 -0
- package/{lib/services/index.d.ts → src/lib/services/index.ts} +4 -4
- package/src/lib/services/leave-form.service.ts +53 -0
- package/src/lib/services/screen-size.service.ts +25 -0
- package/src/lib/services/table.service.ts +22 -0
- package/src/test-setup.ts +8 -0
- package/tsconfig.json +28 -0
- package/tsconfig.lib.json +17 -0
- package/tsconfig.lib.prod.json +9 -0
- package/tsconfig.spec.json +16 -0
- package/fesm2022/verisoft-ui-core.mjs +0 -2013
- package/fesm2022/verisoft-ui-core.mjs.map +0 -1
- package/lib/common/angular-helper.d.ts +0 -1
- package/lib/common/constants.d.ts +0 -3
- package/lib/common/control.models.d.ts +0 -62
- package/lib/common/datasource-component.model.d.ts +0 -19
- package/lib/common/download-file.d.ts +0 -2
- package/lib/common/filter.d.ts +0 -1
- package/lib/common/rxjs.d.ts +0 -2
- package/lib/components/action-button-group/action-button-group.model.d.ts +0 -12
- package/lib/components/action-button-group/action-button.model.d.ts +0 -14
- package/lib/components/base-form/base-form-input.component.d.ts +0 -30
- package/lib/components/base-form/base-form.component.d.ts +0 -50
- package/lib/components/base-form/directives/detail-store.directive.d.ts +0 -35
- package/lib/components/base-form/models/base-form-input.models.d.ts +0 -7
- package/lib/components/base-form/models/base-form.models.d.ts +0 -18
- package/lib/components/breadcrumb/breadcrumb.service.d.ts +0 -8
- package/lib/components/breadcrumb/breadcrumbcore.component.d.ts +0 -30
- package/lib/components/breadcrumb/index.d.ts +0 -3
- package/lib/components/button/index.d.ts +0 -1
- package/lib/components/calendar/index.d.ts +0 -1
- package/lib/components/checkbox/index.d.ts +0 -1
- package/lib/components/confirm-dialog/confirm-dialog.model.d.ts +0 -25
- package/lib/components/confirm-dialog/index.d.ts +0 -1
- package/lib/components/dropdown/index.d.ts +0 -1
- package/lib/components/dropdown-button/index.d.ts +0 -1
- package/lib/components/dynamic-component/dynamic-component.model.d.ts +0 -3
- package/lib/components/dynamic-component/index.d.ts +0 -1
- package/lib/components/filter/filter.model.d.ts +0 -13
- package/lib/components/form-field/index.d.ts +0 -1
- package/lib/components/generic-field/index.d.ts +0 -1
- package/lib/components/generic-form/generic-form.component.d.ts +0 -30
- package/lib/components/header/index.d.ts +0 -1
- package/lib/components/icons/icons.component.d.ts +0 -6
- package/lib/components/icons/icons.model.d.ts +0 -6
- package/lib/components/icons/index.d.ts +0 -2
- package/lib/components/input-group/index.d.ts +0 -1
- package/lib/components/loader/index.d.ts +0 -1
- package/lib/components/loader/loader.model.d.ts +0 -3
- package/lib/components/multiselect/index.d.ts +0 -1
- package/lib/components/number-input/index.d.ts +0 -1
- package/lib/components/page-header/page-header.service.d.ts +0 -8
- package/lib/components/page-header/page-headercore.component.d.ts +0 -20
- package/lib/components/password/index.d.ts +0 -1
- package/lib/components/radiobutton/index.d.ts +0 -1
- package/lib/components/section/index.d.ts +0 -1
- package/lib/components/side-menu/directives/side-menu-service.directive.d.ts +0 -11
- package/lib/components/side-menu/services/side-menu-provider.service.d.ts +0 -10
- package/lib/components/side-menu/services/side-menu.service.d.ts +0 -15
- package/lib/components/side-menu/side-menu.model.d.ts +0 -42
- package/lib/components/slider/index.d.ts +0 -1
- package/lib/components/snackbar/index.d.ts +0 -1
- package/lib/components/snackbar/snackbar.model.d.ts +0 -3
- package/lib/components/stepper/index.d.ts +0 -1
- package/lib/components/switch/index.d.ts +0 -1
- package/lib/components/switch/switch.model.d.ts +0 -4
- package/lib/components/tab-view/index.d.ts +0 -1
- package/lib/components/table/column-configuration.d.ts +0 -12
- package/lib/components/table/table-builder.d.ts +0 -15
- package/lib/components/table/table-column.directive.d.ts +0 -25
- package/lib/components/table/table.models.d.ts +0 -132
- package/lib/components/table-filter/index.d.ts +0 -1
- package/lib/components/textarea/index.d.ts +0 -1
- package/lib/components/textfield/index.d.ts +0 -1
- package/lib/components/unsubscribe.component.d.ts +0 -9
- package/lib/directives/datasource.directive.d.ts +0 -32
- package/lib/directives/shortcut.directive.d.ts +0 -11
- package/lib/directives/table-datasource.directive.d.ts +0 -29
- package/lib/directives/table-filter.directive.d.ts +0 -17
- package/lib/format/format.d.ts +0 -9
- package/lib/pipes/error/error.codes.d.ts +0 -5
- package/lib/pipes/error/error.models.d.ts +0 -8
- package/lib/pipes/error/error.pipe.d.ts +0 -8
- package/lib/pipes/error/warning.codes.d.ts +0 -5
- package/lib/pipes/error/warning.pipe.d.ts +0 -8
- package/lib/pipes/helper/enumToList.pipe.d.ts +0 -7
- package/lib/pipes/keyOrFn/keyOrFn.pipe.d.ts +0 -7
- package/lib/services/confirm-dialog.service.d.ts +0 -12
- package/lib/services/leave-form.service.d.ts +0 -13
- package/lib/services/screen-size.service.d.ts +0 -10
- package/lib/services/table.service.d.ts +0 -13
- /package/{lib/components/table/index.d.ts → src/lib/components/table/index.ts} +0 -0
|
@@ -1 +0,0 @@
|
|
|
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/icons/icons.model.ts","../../../../../src/libs/ui-core/src/lib/components/icons/icons.component.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 FieldSize {\r\n small = 'small',\r\n medium = 'medium',\r\n large = 'large',\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 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}\n","import { CommonModule } from '@angular/common';\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: [CommonModule, ReactiveFormsModule]\n})\nexport class BaseFormInputComponent\n implements BaseInputControls<any>, ControlValueAccessor, OnInit\n{\n readonly ngControl?: NgControl;\n\n readonly errorService = inject(ERROR_PROVIDER_TOKEN);\n\n formControl!: FormControl;\n\n constructor(private readonly control: NgControl) {\n this.ngControl = control;\n if (this.control) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n @Input()\n label?: string;\n\n @Input()\n required = false;\n\n @Input()\n readonly!: boolean;\n\n @Input()\n disabled!: boolean;\n\n @Input()\n tooltip!: string;\n\n @Input()\n formDisplay: 'flex' | 'block' = 'flex';\n\n @Input()\n clearable = true;\n\n @Input()\n placeholder?: string = '';\n\n @Input()\n testId?: string;\n\n inputId = Math.random().toString(36).substring(2);\n\n selectionChanged: any = noop;\n\n onTouch: any = noop;\n\n registerOnChange(fn: any): void {\n this.selectionChanged = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouch = fn;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n writeValue(value: any): void {}\n\n ngOnInit(): void {\n if (this.ngControl) {\n if (this.ngControl instanceof FormControlName) {\n this.formControl =\n this.ngControl.control ||\n ((this.ngControl.formDirective as FormGroupDirective)?.form.controls[\n this.ngControl.name as string\n ] as FormControl);\n } else if (\n this.ngControl instanceof FormControlDirective ||\n this.ngControl instanceof NgModel\n ) {\n this.formControl = this.ngControl.control;\n if (this.ngControl instanceof NgModel) {\n this.formControl.valueChanges.subscribe(() =>\n this.ngControl?.viewToModelUpdate(this.control?.value)\n );\n }\n } else {\n this.formControl = new FormControl();\n }\n } else {\n this.formControl = new FormControl();\n }\n }\n\n isRequired() {\n if (this.ngControl) {\n const validator = this.ngControl?.control?.validator?.(\n {} as AbstractControl\n );\n return this.required || (validator && validator['required']);\n }\n return this.required;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ScreenSizeService {\n isMobileBlock = new BehaviorSubject<boolean>(false);\n prevState = false;\n\n constructor() {\n this.checkScreenSize();\n window.addEventListener('resize', async () => {\n await this.checkScreenSize();\n });\n }\n\n async checkScreenSize() {\n const isMobile = window.matchMedia('(max-width: 768px)').matches;\n if (isMobile !== this.prevState) {\n this.prevState = isMobile;\n this.isMobileBlock.next(isMobile);\n }\n }\n}\n","import { EventEmitter, Injectable, Output } from '@angular/core';\nimport { ExtendedDialogData } from '../components';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DialogService {\n @Output() showEvent: EventEmitter<ExtendedDialogData> =\n new EventEmitter<ExtendedDialogData>();\n\n @Output() closeEvent: EventEmitter<null> = new EventEmitter();\n\n showDialog<TInputs, TOutputs>(data: ExtendedDialogData<TInputs, TOutputs>): void {\n const mappedData = this.mapInputAndOutpus(data);\n\n this.showEvent.emit({\n ...data,\n data: mappedData,\n });\n }\n\n private mapInputAndOutpus<TInputs, TOutputs>(\n data: ExtendedDialogData<TInputs, TOutputs>\n ): ExtendedDialogData<TInputs, TOutputs> {\n const inputsAndOutputs = data.data as TInputs & TOutputs;\n return {\n ...data.data,\n ...(Object.keys(inputsAndOutputs ?? {})\n .filter((key) => typeof inputsAndOutputs[key as keyof TOutputs] === 'function')\n .reduce((acc, key) => {\n acc[key] = (value: any) => {\n if (typeof inputsAndOutputs[key as keyof TOutputs] === 'function') {\n (inputsAndOutputs[key as keyof TOutputs] as (value: any) => void)(value);\n }\n };\n return acc;\n }, {} as Record<string, any>)),\n };\n }\n\n closeModal(): void {\n this.closeEvent.emit();\n }\n}\n","import { Injectable, inject } from '@angular/core';\nimport { CanDeactivate } from '@angular/router';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Observable, Subject } from 'rxjs';\nimport { PreventUnsavedChangesCore, CommonIcons } from '../common';\nimport { DialogService } from './confirm-dialog.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PreventUnsavedChangesDirective implements CanDeactivate<PreventUnsavedChangesCore> {\n private dialogService = inject(DialogService);\n private translateService = inject(TranslateService);\n private readonly Icons!: CommonIcons;\n\n canDeactivate(component: PreventUnsavedChangesCore): Observable<boolean> | Promise<boolean> | boolean {\n if (!component || !component.canDeactivate) {\n return true;\n }\n const result = component.canDeactivate();\n return result;\n }\n\n showConfirmationDialog(): Observable<boolean> {\n const resultSubject = new Subject<boolean>();\n\n const title = this.translateService.instant('VALIDATIONS.UNSAVED_CHANGES');\n const message = this.translateService.instant('VALIDATIONS.LEAVING_UNSAVED_FORM');\n const leaveButton = this.translateService.instant('BUTTONS.LEAVE');\n const stayButton = this.translateService.instant('BUTTONS.STAY');\n\n this.dialogService.showDialog({\n title: title,\n headerIcon: this.Icons.infoCircle,\n innerHTML: `<p>${message}</p>`,\n showCancelButton: true,\n confirmButtonText: stayButton,\n cancelButtonText: leaveButton,\n confirmButtonFn: () => {\n resultSubject.next(false);\n resultSubject.complete();\n this.dialogService.closeModal();\n },\n cancelButtonFn: () => {\n resultSubject.next(true);\n resultSubject.complete();\n this.dialogService.closeModal();\n },\n });\n\n return resultSubject.asObservable();\n }\n}\n","import { Injectable, signal } from \"@angular/core\";\nimport { TableSignal } from \"../components\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class TableService {\n readonly reload = signal<TableSignal | symbol>(Symbol())\n\n /**\n * If name is set, reload a specific table with the set`[tableName]`\n *\n * If name is NOT set, reload all tables in the current DOM\n * */\n forceReload(name?: string): void {\n if (name) {\n this.reload.set({ name: name, symbol: Symbol() });\n } else {\n this.reload.set(Symbol());\n }\n }\n}\n","import { NgControl } from '@angular/forms';\n\nexport abstract class BaseInputControls<T> {\n value?: T | null;\n\n readonly ngControl?: NgControl;\n\n readonly label?: string;\n\n readonly required!: boolean;\n}\n","export interface BaseFormCore {\n label?: string;\n required: boolean;\n readonly: boolean;\n tooltip: string;\n formDisplay: 'flex' | 'block';\n clearable: boolean;\n placeholder?: string\n testId?: string;\n}\n\nexport interface BaseFormDirectiveCore<T> {\n initialData: T | any;\n}\n\nexport interface FormState {\n dirty: boolean;\n valid: boolean;\n}\n\nexport function isFormStateEqual(current: FormState, other: FormState) {\n if (!current && !other) {\n return true;\n }\n\n if (current && other) {\n return current.dirty === other.dirty && current.valid === other.valid;\n }\n\n return false;\n}\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Directive,\n EventEmitter,\n HostListener,\n inject,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n ViewChild,\n} from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { cloneDeep } from 'lodash-es';\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 = new InjectionToken<ConfirmDialogCore>(\n 'ConfirmDialogComponentToken'\n);\n\nexport type ConfirmDialogCore = object\n\nexport interface DialogData {\n title?: string;\n headerIcon?: string;\n severity?: ControlSeverityType;\n showCancelButton?: boolean;\n buttonOrder?: 'confirm-cancel' | 'cancel-confirm';\n confirmButtonText?: string;\n confirmButtonFn?: () => void;\n cancelButtonFn?: () => void;\n cancelButtonText?: string;\n innerHTML?: string | SafeHtml;\n data?: unknown;\n componentType?: Type<unknown>;\n closable?: boolean;\n width?: string;\n height?: string;\n}\n\nexport interface ExtendedDialogData<TInputs = any, TOutputs = any> extends DialogData {\n data?: TInputs & TOutputs;\n}\n","import { InjectionToken } from '@angular/core';\nimport { DataSourceComponentModel } from '../../common';\nimport { BaseFormCore } from '../base-form';\n\nexport const DROPDOWN_COMPONENT_TOKEN = new InjectionToken<DropdownCore<any>>(\n 'DropdownComponentToken'\n);\n\nexport interface DropdownCore<T> extends DataSourceComponentModel<T>, BaseFormCore {\n dropdownIcon?: string;\n floatLabel?: string;\n editable: boolean;\n forceMinWidth: boolean;\n showFilter: boolean;\n localSearch: boolean;\n}\n","import { InjectionToken } from '@angular/core';\r\nimport { ControlValueAccessor } from '@angular/forms';\r\nimport { GenericFieldDefinition } from '../generic-form';\r\n\r\nexport const FILTER_COMPONENT_TOKEN = new InjectionToken<FilterCore>(\r\n 'FilterComponentToken'\r\n);\r\n\r\nexport interface FilterCore extends ControlValueAccessor {\r\n fields: GenericFieldDefinition[]; \r\n title?: string; \r\n fulltextFieldName: string; \r\n showFulltext: boolean; \r\n showFilters: boolean; \r\n autoBind: boolean; \r\n debounceTime?: number;\r\n}\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 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 } from \"@angular/core\";\nimport { CommonIcons } from \"../../common/icons\"\n\nexport const ICONS_COMPONENT_TOKEN = new InjectionToken<IconsCore>(\n 'IconsComponentToken'\n);\n\nexport interface IconsCore extends CommonIcons {\n name: string;\n}","import { Component, Input } from \"@angular/core\";\nimport { ICONS_COMPONENT_TOKEN } 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 class IconsComponent{\n @Input() name!: string;\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 +0,0 @@
|
|
|
1
|
-
export declare function setComponentProperties<TComponent>(component: TComponent, value: Partial<TComponent>, firstChange?: boolean): void;
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
export declare enum ControlSeverity {
|
|
2
|
-
success = "success",
|
|
3
|
-
info = "info",
|
|
4
|
-
warning = "warning",
|
|
5
|
-
danger = "danger",
|
|
6
|
-
help = "help",
|
|
7
|
-
primary = "primary",
|
|
8
|
-
secondary = "secondary",
|
|
9
|
-
contrast = "contrast"
|
|
10
|
-
}
|
|
11
|
-
export declare enum GovControlSeverity {
|
|
12
|
-
primary = "primary",
|
|
13
|
-
secondary = "secondary",
|
|
14
|
-
neutral = "neutral",
|
|
15
|
-
error = "error",
|
|
16
|
-
success = "success",
|
|
17
|
-
warning = "warning"
|
|
18
|
-
}
|
|
19
|
-
export declare enum GovButtonType {
|
|
20
|
-
solid = "solid",
|
|
21
|
-
outlined = "outlined",
|
|
22
|
-
base = "base",
|
|
23
|
-
link = "link"
|
|
24
|
-
}
|
|
25
|
-
export declare enum IconPosition {
|
|
26
|
-
left = "left",
|
|
27
|
-
right = "right"
|
|
28
|
-
}
|
|
29
|
-
export declare enum SlotPosition {
|
|
30
|
-
top = "top",
|
|
31
|
-
bottom = "bottom"
|
|
32
|
-
}
|
|
33
|
-
export declare enum FieldSize {
|
|
34
|
-
small = "small",
|
|
35
|
-
medium = "medium",
|
|
36
|
-
large = "large"
|
|
37
|
-
}
|
|
38
|
-
export declare enum FieldAlign {
|
|
39
|
-
left = "left",
|
|
40
|
-
center = "center",
|
|
41
|
-
right = "right"
|
|
42
|
-
}
|
|
43
|
-
export declare enum FieldType {
|
|
44
|
-
text = "text",
|
|
45
|
-
number = "number",
|
|
46
|
-
password = "password",
|
|
47
|
-
search = "search",
|
|
48
|
-
date = "date"
|
|
49
|
-
}
|
|
50
|
-
export declare enum LayoutType {
|
|
51
|
-
horizontal = "horizontal",
|
|
52
|
-
vertical = "vertical"
|
|
53
|
-
}
|
|
54
|
-
export type ControlSeverityType = keyof typeof ControlSeverity;
|
|
55
|
-
export type GovControlSeverityType = keyof typeof GovControlSeverity;
|
|
56
|
-
export type GovButtonTypeType = keyof typeof GovButtonType;
|
|
57
|
-
export type IconPositionType = keyof typeof IconPosition;
|
|
58
|
-
export type SlotPositionType = keyof typeof SlotPosition;
|
|
59
|
-
export type FieldSizeType = keyof typeof FieldSize;
|
|
60
|
-
export type FieldAlignType = keyof typeof FieldAlign;
|
|
61
|
-
export type FieldTypeType = keyof typeof FieldType;
|
|
62
|
-
export type LayoutTypeType = keyof typeof LayoutType;
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { EventEmitter, SimpleChanges } from '@angular/core';
|
|
2
|
-
import { FilterEvent, LazyLoadEvent, RequestParams } from '@verisoft/core';
|
|
3
|
-
export interface DataSourceComponentModel<TEntity> {
|
|
4
|
-
ngOnChanges?: (changes: SimpleChanges) => void;
|
|
5
|
-
lazy: boolean;
|
|
6
|
-
loading: boolean;
|
|
7
|
-
filter: boolean;
|
|
8
|
-
options: TEntity[] | undefined;
|
|
9
|
-
optionValue: string | undefined;
|
|
10
|
-
optionLabel: string | undefined;
|
|
11
|
-
showed: EventEmitter<any>;
|
|
12
|
-
cleared: EventEmitter<any>;
|
|
13
|
-
filtered: EventEmitter<FilterEvent>;
|
|
14
|
-
lazyLoad: EventEmitter<LazyLoadEvent>;
|
|
15
|
-
}
|
|
16
|
-
export declare function setDataToArray<T>(targetArray: (T | undefined)[] | undefined, data: T[], offset?: number, total?: number | undefined, defaultItem?: T | undefined): (T | undefined)[];
|
|
17
|
-
export type ExtendedRequestType<T> = RequestParams<T> & {
|
|
18
|
-
useNewData: boolean;
|
|
19
|
-
};
|
package/lib/common/filter.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function isFilterEmpty<T>(filter: Partial<T> | undefined): boolean;
|
package/lib/common/rxjs.d.ts
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { InjectionToken } from '@angular/core';
|
|
2
|
-
import { IconPositionType } from '../../common';
|
|
3
|
-
import { ActionButton } from './action-button.model';
|
|
4
|
-
export declare const ACTION_BUTTON_GROUP_COMPONENT_TOKEN: InjectionToken<ActionButtonGroupCore>;
|
|
5
|
-
export interface ActionButtonGroupCore {
|
|
6
|
-
maxItems: number;
|
|
7
|
-
maxItemsMobile: number;
|
|
8
|
-
items: ActionButton[];
|
|
9
|
-
menuIconPos: IconPositionType;
|
|
10
|
-
menuIcon: string;
|
|
11
|
-
label?: string;
|
|
12
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { EventEmitter } from '@angular/core';
|
|
2
|
-
import { ControlSeverityType, FieldSizeType, NotificableProperty } from '../../common';
|
|
3
|
-
export interface ActionButton extends NotificableProperty {
|
|
4
|
-
disabled: boolean;
|
|
5
|
-
toolTip?: string;
|
|
6
|
-
id?: string;
|
|
7
|
-
icon?: string;
|
|
8
|
-
outlined: boolean;
|
|
9
|
-
raised: boolean;
|
|
10
|
-
severity?: ControlSeverityType;
|
|
11
|
-
label?: string;
|
|
12
|
-
size?: FieldSizeType;
|
|
13
|
-
click: EventEmitter<MouseEvent>;
|
|
14
|
-
}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { OnInit } from '@angular/core';
|
|
2
|
-
import { ControlValueAccessor, FormControl, NgControl } from '@angular/forms';
|
|
3
|
-
import { BaseInputControls } from './models/base-form-input.models';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export declare class BaseFormInputComponent implements BaseInputControls<any>, ControlValueAccessor, OnInit {
|
|
6
|
-
private readonly control;
|
|
7
|
-
readonly ngControl?: NgControl;
|
|
8
|
-
readonly errorService: import("@verisoft/core").ErrorProvider;
|
|
9
|
-
formControl: FormControl;
|
|
10
|
-
constructor(control: NgControl);
|
|
11
|
-
label?: string;
|
|
12
|
-
required: boolean;
|
|
13
|
-
readonly: boolean;
|
|
14
|
-
disabled: boolean;
|
|
15
|
-
tooltip: string;
|
|
16
|
-
formDisplay: 'flex' | 'block';
|
|
17
|
-
clearable: boolean;
|
|
18
|
-
placeholder?: string;
|
|
19
|
-
testId?: string;
|
|
20
|
-
inputId: string;
|
|
21
|
-
selectionChanged: any;
|
|
22
|
-
onTouch: any;
|
|
23
|
-
registerOnChange(fn: any): void;
|
|
24
|
-
registerOnTouched(fn: any): void;
|
|
25
|
-
writeValue(value: any): void;
|
|
26
|
-
ngOnInit(): void;
|
|
27
|
-
isRequired(): any;
|
|
28
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<BaseFormInputComponent, never>;
|
|
29
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<BaseFormInputComponent, "ng-component", never, { "label": { "alias": "label"; "required": false; }; "required": { "alias": "required"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "tooltip": { "alias": "tooltip"; "required": false; }; "formDisplay": { "alias": "formDisplay"; "required": false; }; "clearable": { "alias": "clearable"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "testId": { "alias": "testId"; "required": false; }; }, {}, never, never, true, never>;
|
|
30
|
-
}
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import { AfterViewInit, ChangeDetectorRef, EventEmitter, OnChanges, OnDestroy, OnInit, SimpleChanges, ViewChild } from '@angular/core';
|
|
2
|
-
import { FormGroup } from '@angular/forms';
|
|
3
|
-
import { Subject, Observable } from 'rxjs';
|
|
4
|
-
import { PreventUnsavedChangesCore } from '../../common';
|
|
5
|
-
import { PreventUnsavedChangesDirective } from '../../services';
|
|
6
|
-
import { FormState } from './models';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
export declare abstract class BaseFormDirective<T extends object> implements OnInit, OnChanges, OnDestroy, AfterViewInit, PreventUnsavedChangesCore {
|
|
9
|
-
data: T | any;
|
|
10
|
-
dataChange: EventEmitter<T>;
|
|
11
|
-
statusChange: EventEmitter<FormState>;
|
|
12
|
-
formSubmit: EventEmitter<T>;
|
|
13
|
-
formClear: EventEmitter<void>;
|
|
14
|
-
formDestroyed$: Subject<void>;
|
|
15
|
-
keys: {
|
|
16
|
-
key: string;
|
|
17
|
-
alias?: string;
|
|
18
|
-
type?: string;
|
|
19
|
-
readOnly: string;
|
|
20
|
-
}[];
|
|
21
|
-
formGroup: FormGroup;
|
|
22
|
-
cd: ChangeDetectorRef;
|
|
23
|
-
valueInitialization: boolean;
|
|
24
|
-
lastState: FormState;
|
|
25
|
-
guardViewChild: ViewChild;
|
|
26
|
-
formSubmitted: boolean;
|
|
27
|
-
protected guard: PreventUnsavedChangesDirective;
|
|
28
|
-
unloadHandler(event: BeforeUnloadEvent): void;
|
|
29
|
-
canDeactivate(): Observable<boolean> | Promise<boolean> | boolean;
|
|
30
|
-
ngOnInit(): void;
|
|
31
|
-
ngOnChanges(changes: SimpleChanges): void;
|
|
32
|
-
ngAfterViewInit(): void;
|
|
33
|
-
ngOnDestroy(): void;
|
|
34
|
-
abstract createFormGroup(): FormGroup;
|
|
35
|
-
createCompleteData(): T;
|
|
36
|
-
submit(): void;
|
|
37
|
-
clear(): void;
|
|
38
|
-
private initializeFormGroup;
|
|
39
|
-
private initValueChanges;
|
|
40
|
-
private initStatusChanges;
|
|
41
|
-
private createAndEmitIfFormStateChanged;
|
|
42
|
-
protected applyChanges(data: T, changes: Partial<T>): T;
|
|
43
|
-
protected toModel(data: T): Partial<T>;
|
|
44
|
-
protected fromModel(data: T): T;
|
|
45
|
-
private recursiveObjectAttributesTransformation;
|
|
46
|
-
private recursiveObjectAttributesTraversal;
|
|
47
|
-
private transformEmptyStringToNullStringFn;
|
|
48
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<BaseFormDirective<any>, never>;
|
|
49
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<BaseFormDirective<any>, "[v-baseForm]", never, { "data": { "alias": "data"; "required": false; }; }, { "dataChange": "dataChange"; "statusChange": "statusChange"; "formSubmit": "formSubmit"; "formClear": "formClear"; }, never, never, true, never>;
|
|
50
|
-
}
|