@verisoft/ui-core 21.0.16 → 21.0.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verisoft-ui-core.mjs","sources":["../../../../../src/libs/ui-core/src/lib/accessibility/keyboard/core/keyboard-action.model.ts","../../../../../src/libs/ui-core/src/lib/accessibility/keyboard/core/keyboard.utils.ts","../../../../../src/libs/ui-core/src/lib/accessibility/keyboard/core/linear-navigation.utils.ts","../../../../../src/libs/ui-core/src/lib/accessibility/keyboard/menu/menu-keyboard.model.ts","../../../../../src/libs/ui-core/src/lib/accessibility/keyboard/menu/menu-keyboard-bindings.utils.ts","../../../../../src/libs/ui-core/src/lib/accessibility/keyboard/menu/menu-keyboard.utils.ts","../../../../../src/libs/ui-core/src/lib/accessibility/keyboard/menu/menu-keyboard.controller.ts","../../../../../src/libs/ui-core/src/lib/accessibility/keyboard/menu/menu-keyboard-port.token.ts","../../../../../src/libs/ui-core/src/lib/accessibility/keyboard/menu/menu-keyboard.facade.ts","../../../../../src/libs/ui-core/src/lib/accessibility/keyboard/menu/menu-keyboard.token.ts","../../../../../src/libs/ui-core/src/lib/accessibility/keyboard/menu/menu-keyboard.directive.ts","../../../../../src/libs/ui-core/src/lib/accessibility/keyboard/menu/menu-keyboard-trigger.directive.ts","../../../../../src/libs/ui-core/src/lib/accessibility/keyboard/menu/menu-keyboard-list.directive.ts","../../../../../src/libs/ui-core/src/lib/accessibility/keyboard/menu/menu-keyboard-item.directive.ts","../../../../../src/libs/ui-core/src/lib/common/angular-helper.ts","../../../../../src/libs/ui-core/src/lib/common/control.models.ts","../../../../../src/libs/ui-core/src/lib/common/constants.ts","../../../../../src/libs/ui-core/src/lib/common/datasource-component.model.ts","../../../../../src/libs/ui-core/src/lib/common/filter.ts","../../../../../src/libs/ui-core/src/lib/common/rxjs.ts","../../../../../src/libs/ui-core/src/lib/common/download-file.ts","../../../../../src/libs/ui-core/src/lib/components/action-button-group/action-button-group.model.ts","../../../../../src/libs/ui-core/src/lib/components/base-form/base-form-input.component.ts","../../../../../src/libs/ui-core/src/lib/services/screen-size.service.ts","../../../../../src/libs/ui-core/src/lib/services/confirm-dialog.service.ts","../../../../../src/libs/ui-core/src/lib/services/leave-form.service.ts","../../../../../src/libs/ui-core/src/lib/services/table.service.ts","../../../../../src/libs/ui-core/src/lib/components/base-form/models/base-form-input.models.ts","../../../../../src/libs/ui-core/src/lib/components/base-form/models/base-form.models.ts","../../../../../src/libs/ui-core/src/lib/components/base-form/base-form.component.ts","../../../../../src/libs/ui-core/src/lib/components/unsubscribe.component.ts","../../../../../src/libs/ui-core/src/lib/components/base-form/directives/detail-store.directive.ts","../../../../../src/libs/ui-core/src/lib/components/breadcrumb/breadcrumb.model.ts","../../../../../src/libs/ui-core/src/lib/components/breadcrumb/breadcrumb.service.ts","../../../../../src/libs/ui-core/src/lib/components/breadcrumb/breadcrumbcore.component.ts","../../../../../src/libs/ui-core/src/lib/components/button/button.model.ts","../../../../../src/libs/ui-core/src/lib/components/dropdown-button/dropdown-button.model.ts","../../../../../src/libs/ui-core/src/lib/components/calendar/calendar.model.ts","../../../../../src/libs/ui-core/src/lib/components/checkbox/checkbox.model.ts","../../../../../src/libs/ui-core/src/lib/components/confirm-dialog/confirm-dialog.model.ts","../../../../../src/libs/ui-core/src/lib/components/dropdown/dropdown.model.ts","../../../../../src/libs/ui-core/src/lib/components/filter/filter.model.ts","../../../../../src/libs/ui-core/src/lib/components/form-field/form-field.model.ts","../../../../../src/libs/ui-core/src/lib/components/generic-field/generic-field.model.ts","../../../../../src/libs/ui-core/src/lib/components/generic-form/generic-form.component.ts","../../../../../src/libs/ui-core/src/lib/components/header/header.model.ts","../../../../../src/libs/ui-core/src/lib/components/input-group/input-group.model.ts","../../../../../src/libs/ui-core/src/lib/components/loader/loader.model.ts","../../../../../src/libs/ui-core/src/lib/components/multiselect/mutiselect.model.ts","../../../../../src/libs/ui-core/src/lib/components/number-input/number-input.model.ts","../../../../../src/libs/ui-core/src/lib/components/page-header/page-header.model.ts","../../../../../src/libs/ui-core/src/lib/components/page-header/page-header.service.ts","../../../../../src/libs/ui-core/src/lib/components/page-header/page-headercore.component.ts","../../../../../src/libs/ui-core/src/lib/components/password/password.model.ts","../../../../../src/libs/ui-core/src/lib/components/radiobutton/radiobutton.model.ts","../../../../../src/libs/ui-core/src/lib/components/section/section.model.ts","../../../../../src/libs/ui-core/src/lib/components/side-menu/side-menu.model.ts","../../../../../src/libs/ui-core/src/lib/components/side-menu/services/side-menu.service.ts","../../../../../src/libs/ui-core/src/lib/components/side-menu/services/side-menu-provider.service.ts","../../../../../src/libs/ui-core/src/lib/components/side-menu/directives/side-menu-service.directive.ts","../../../../../src/libs/ui-core/src/lib/components/slider/slider.model.ts","../../../../../src/libs/ui-core/src/lib/components/snackbar/snackbar.model.ts","../../../../../src/libs/ui-core/src/lib/components/stepper/stepper.model.ts","../../../../../src/libs/ui-core/src/lib/components/switch/switch.model.ts","../../../../../src/libs/ui-core/src/lib/components/tab-view/tab-view.model.ts","../../../../../src/libs/ui-core/src/lib/components/table/table.models.ts","../../../../../src/libs/ui-core/src/lib/components/table/table-column.directive.ts","../../../../../src/libs/ui-core/src/lib/components/table/column-configuration.ts","../../../../../src/libs/ui-core/src/lib/components/table/table-builder.ts","../../../../../src/libs/ui-core/src/lib/components/table-filter/table-filter.model.ts","../../../../../src/libs/ui-core/src/lib/components/textarea/textarea.model.ts","../../../../../src/libs/ui-core/src/lib/components/textfield/textfield.model.ts","../../../../../src/libs/ui-core/src/lib/components/tooltip/tooltip.model.ts","../../../../../src/libs/ui-core/src/lib/components/icons/icons.model.ts","../../../../../src/libs/ui-core/src/lib/components/icons/icons.component.ts","../../../../../src/libs/ui-core/src/lib/components/tag/tag.model.ts","../../../../../src/libs/ui-core/src/lib/components/feature-list/feature-list-page.model.ts","../../../../../src/libs/ui-core/src/lib/components/feature-list/feature-list-filter.pipe.ts","../../../../../src/libs/ui-core/src/lib/directives/datasource.directive.ts","../../../../../src/libs/ui-core/src/lib/directives/table-datasource.directive.ts","../../../../../src/libs/ui-core/src/lib/directives/shortcut.directive.ts","../../../../../src/libs/ui-core/src/lib/directives/table-filter.directive.ts","../../../../../src/libs/ui-core/src/lib/directives/filter-field.directive.ts","../../../../../src/libs/ui-core/src/lib/directives/feature-list-filter-field.directive.ts","../../../../../src/libs/ui-core/src/lib/directives/feature-list-column.directive.ts","../../../../../src/libs/ui-core/src/lib/pipes/error/error.codes.ts","../../../../../src/libs/ui-core/src/lib/pipes/error/error.models.ts","../../../../../src/libs/ui-core/src/lib/pipes/error/error.pipe.ts","../../../../../src/libs/ui-core/src/lib/pipes/error/warning.codes.ts","../../../../../src/libs/ui-core/src/lib/pipes/error/warning.pipe.ts","../../../../../src/libs/ui-core/src/lib/pipes/keyOrFn/keyOrFn.pipe.ts","../../../../../src/libs/ui-core/src/lib/pipes/helper/enumToList.pipe.ts","../../../../../src/libs/ui-core/src/lib/format/format.ts","../../../../../src/libs/ui-core/src/verisoft-ui-core.ts"],"sourcesContent":["export type LinearNavigationAction = 'next' | 'previous' | 'first' | 'last';\n\nexport type InteractionAction = 'activate' | 'close' | 'dismiss';\n\nexport function assertNever(value: never): never {\n throw new Error(`Unexpected value: ${String(value)}`);\n}\n","import { KeyboardKey, KeyboardKeyList } from './keyboard-key.model';\n\nexport function matchesKeyboardKey(\n event: KeyboardEvent,\n keys: KeyboardKeyList,\n): boolean {\n if (!keys.length) {\n return false;\n }\n\n return keys.includes(event.key as KeyboardKey);\n}\n\nexport function suppressKeyboardEvent(\n event: KeyboardEvent,\n preventDefault: boolean,\n): void {\n if (!preventDefault) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n}\n","export interface KeyboardNavigableItem {\n disabled?: boolean;\n}\n\nexport function filterEnabledItems<T extends KeyboardNavigableItem>(\n items: readonly T[],\n): readonly T[] {\n return items.filter((item) => !item.disabled);\n}\n\nexport function moveLinearIndex(\n currentIndex: number,\n delta: number,\n length: number,\n loop: boolean,\n): number {\n if (length === 0) {\n return -1;\n }\n\n if (currentIndex < 0) {\n return delta > 0 ? 0 : length - 1;\n }\n\n const next = currentIndex + delta;\n\n if (loop) {\n if (next >= length) {\n return 0;\n }\n\n if (next < 0) {\n return length - 1;\n }\n\n return next;\n }\n\n return Math.max(0, Math.min(length - 1, next));\n}\n\nexport function resolveInitialActiveIndex<T>(\n items: readonly T[],\n getItemId: (item: T) => string | undefined,\n initialActiveItemId?: string,\n): number {\n if (!items.length) {\n return -1;\n }\n\n if (initialActiveItemId) {\n const index = items.findIndex(\n (item) => getItemId(item) === initialActiveItemId,\n );\n if (index >= 0) {\n return index;\n }\n }\n\n return 0;\n}\n\nexport function getRovingTabIndex(isActive: boolean): number {\n return isActive ? 0 : -1;\n}\n","import { KeyboardKeyList } from '../core/keyboard-key.model';\n\nexport interface MenuKeyboardItem {\n disabled?: boolean;\n}\n\nexport interface MenuKeyboardFocusA11y {\n role?: string;\n tabIndex?: number;\n ariaHaspopup?: string;\n ariaExpanded?: string;\n ariaControls?: string;\n ariaDisabled?: string;\n}\n\nexport interface MenuKeyboardNavigation {\n enabled: boolean;\n openKeys: KeyboardKeyList;\n openToLastKeys: KeyboardKeyList;\n nextKeys: KeyboardKeyList;\n previousKeys: KeyboardKeyList;\n firstKeys: KeyboardKeyList;\n lastKeys: KeyboardKeyList;\n selectKeys: KeyboardKeyList;\n closeKeys: KeyboardKeyList;\n dismissKeys: KeyboardKeyList;\n loop: boolean;\n preventDefault: boolean;\n initialActiveItemId?: string;\n activeItemClass: string;\n}\n\nexport const DEFAULT_MENU_KEYBOARD_NAVIGATION: MenuKeyboardNavigation = {\n enabled: true,\n openKeys: ['ArrowDown', 'ArrowUp', 'Enter', ' '],\n openToLastKeys: ['ArrowUp'],\n nextKeys: ['ArrowDown'],\n previousKeys: ['ArrowUp'],\n firstKeys: ['Home'],\n lastKeys: ['End'],\n selectKeys: ['Enter', ' '],\n closeKeys: ['Escape'],\n dismissKeys: ['Tab'],\n loop: true,\n preventDefault: true,\n activeItemClass: 'menu-keyboard__item--active',\n};\n\nexport type MenuKeyboardNavigationInput =\n | boolean\n | Partial<MenuKeyboardNavigation>\n | undefined;\n\nexport interface MenuKeyboardConfig<T extends MenuKeyboardItem> {\n getItems: () => readonly T[];\n getItemId?: (item: T) => string | undefined;\n onSelect: (item: T) => void;\n onOpen: () => void;\n onClose: (restoreFocus: boolean) => void;\n keyboardNavigation?:\n | MenuKeyboardNavigationInput\n | (() => MenuKeyboardNavigationInput);\n}\n","import { MenuKeyboardNavigation } from './menu-keyboard.model';\nimport {\n MenuOpenKeyboardAction,\n MenuTriggerAction,\n} from './menu-keyboard-action.model';\nimport { matchesKeyboardKey } from '../core/keyboard.utils';\n\ntype MenuOpenActionBinding = {\n readonly keys: keyof Pick<\n MenuKeyboardNavigation,\n | 'dismissKeys'\n | 'nextKeys'\n | 'previousKeys'\n | 'firstKeys'\n | 'lastKeys'\n | 'selectKeys'\n | 'closeKeys'\n >;\n readonly action: MenuOpenKeyboardAction;\n};\n\ntype MenuTriggerActionBinding = {\n readonly keys: keyof Pick<\n MenuKeyboardNavigation,\n 'openToLastKeys' | 'openKeys'\n >;\n readonly action: MenuTriggerAction;\n};\n\nconst MENU_OPEN_ACTION_CHECKS: readonly MenuOpenActionBinding[] = [\n { keys: 'dismissKeys', action: 'dismiss' },\n { keys: 'nextKeys', action: 'next' },\n { keys: 'previousKeys', action: 'previous' },\n { keys: 'firstKeys', action: 'first' },\n { keys: 'lastKeys', action: 'last' },\n { keys: 'selectKeys', action: 'activate' },\n { keys: 'closeKeys', action: 'close' },\n] as const;\n\nconst MENU_TRIGGER_ACTION_CHECKS: readonly MenuTriggerActionBinding[] = [\n { keys: 'openToLastKeys', action: 'openToLast' },\n { keys: 'openKeys', action: 'open' },\n] as const;\n\nconst MENU_TRIGGER_ACTION_ORDER: readonly MenuTriggerAction[] = [\n 'openToLast',\n 'open',\n] as const;\n\nexport function resolveMenuTriggerAction(\n event: KeyboardEvent,\n navigation: MenuKeyboardNavigation,\n): MenuTriggerAction | null {\n const matched = new Set<MenuTriggerAction>();\n\n for (const { keys, action } of MENU_TRIGGER_ACTION_CHECKS) {\n if (matchesKeyboardKey(event, navigation[keys])) {\n matched.add(action);\n }\n }\n\n for (const action of MENU_TRIGGER_ACTION_ORDER) {\n if (matched.has(action)) {\n return action;\n }\n }\n\n return null;\n}\n\nexport function resolveMenuKeyboardAction(\n event: KeyboardEvent,\n navigation: MenuKeyboardNavigation,\n): MenuOpenKeyboardAction | null {\n for (const { keys, action } of MENU_OPEN_ACTION_CHECKS) {\n if (matchesKeyboardKey(event, navigation[keys])) {\n return action;\n }\n }\n\n return null;\n}\n","import {\n DEFAULT_MENU_KEYBOARD_NAVIGATION,\n MenuKeyboardNavigation,\n} from './menu-keyboard.model';\n\nexport function resolveMenuKeyboardNavigation(\n input: boolean | Partial<MenuKeyboardNavigation> | undefined,\n): MenuKeyboardNavigation | null {\n if (input === undefined || input === false) {\n return null;\n }\n\n const resolved: MenuKeyboardNavigation = {\n ...DEFAULT_MENU_KEYBOARD_NAVIGATION,\n enabled: true,\n ...(input === true ? {} : input),\n };\n\n if (!resolved.enabled) {\n return null;\n }\n\n return resolved;\n}\n","import {\n MenuKeyboardConfig,\n MenuKeyboardItem,\n MenuKeyboardNavigation,\n} from './menu-keyboard.model';\nimport { assertNever } from '../core/keyboard-action.model';\nimport {\n MenuOpenKeyboardAction,\n MenuTriggerAction,\n} from './menu-keyboard-action.model';\nimport {\n resolveMenuKeyboardAction,\n resolveMenuTriggerAction,\n} from './menu-keyboard-bindings.utils';\nimport {\n filterEnabledItems,\n moveLinearIndex,\n resolveInitialActiveIndex,\n} from '../core/linear-navigation.utils';\nimport { suppressKeyboardEvent } from '../core/keyboard.utils';\nimport { resolveMenuKeyboardNavigation } from './menu-keyboard.utils';\n\nexport class MenuKeyboardController<T extends MenuKeyboardItem> {\n focusedIndex = -1;\n isOpen = false;\n\n private keyboardPresetFocus = false;\n\n constructor(private readonly config: MenuKeyboardConfig<T>) {}\n\n get actionableItems(): readonly T[] {\n return filterEnabledItems(this.config.getItems());\n }\n\n isNavigationEnabled(): boolean {\n return this.resolveNavigation() !== null;\n }\n\n getActiveItemClass(): string {\n return (\n this.resolveNavigation()?.activeItemClass ?? DEFAULT_ACTIVE_ITEM_CLASS\n );\n }\n\n onTriggerKeydown(event: KeyboardEvent): void {\n const navigation = this.resolveNavigation();\n if (!navigation || this.isOpen) {\n return;\n }\n\n const action = resolveMenuTriggerAction(event, navigation);\n if (!action) {\n return;\n }\n\n const items = this.actionableItems;\n if (!items.length) {\n return;\n }\n\n suppressKeyboardEvent(event, navigation.preventDefault);\n this.applyTriggerAction(action, items, navigation);\n this.keyboardPresetFocus = true;\n this.config.onOpen();\n }\n\n onMenuKeydown(event: KeyboardEvent): void {\n const navigation = this.resolveNavigation();\n if (!navigation || !this.isOpen) {\n return;\n }\n\n const items = this.actionableItems;\n if (!items.length) {\n return;\n }\n\n const action = resolveMenuKeyboardAction(event, navigation);\n if (!action) {\n return;\n }\n\n this.applyOpenMenuAction(action, event, navigation, items);\n }\n\n handleOpenChange(open: boolean): void {\n if (!open) {\n this.isOpen = false;\n this.focusedIndex = -1;\n this.keyboardPresetFocus = false;\n return;\n }\n\n const wasOpen = this.isOpen;\n this.isOpen = true;\n const navigation = this.resolveNavigation();\n const items = this.actionableItems;\n\n if (!items.length) {\n this.isOpen = false;\n this.focusedIndex = -1;\n this.keyboardPresetFocus = false;\n return;\n }\n\n if (!wasOpen) {\n if (!this.keyboardPresetFocus) {\n this.focusedIndex = navigation\n ? this.resolveInitialActiveIndex(navigation)\n : 0;\n }\n\n if (this.focusedIndex < 0 || this.focusedIndex >= items.length) {\n this.focusedIndex = 0;\n }\n }\n\n this.keyboardPresetFocus = false;\n }\n\n cancelPendingOpen(): void {\n this.keyboardPresetFocus = false;\n this.focusedIndex = -1;\n }\n\n close(restoreFocus: boolean): void {\n if (!this.isOpen) {\n return;\n }\n\n this.config.onClose(restoreFocus);\n }\n\n setActiveItem(item: T): void {\n if (!this.isOpen) {\n return;\n }\n\n const index = this.actionableItems.indexOf(item);\n if (index >= 0) {\n this.focusedIndex = index;\n }\n }\n\n isItemFocused(item: T): boolean {\n if (!this.isOpen || this.focusedIndex < 0) {\n return false;\n }\n\n const focusedItem = this.actionableItems[this.focusedIndex];\n return focusedItem === item;\n }\n\n getItemTabIndex(item: T): number {\n return this.isItemFocused(item) ? 0 : -1;\n }\n\n private applyTriggerAction(\n action: MenuTriggerAction,\n items: readonly T[],\n navigation: MenuKeyboardNavigation,\n ): void {\n switch (action) {\n case 'openToLast':\n this.focusedIndex = items.length - 1;\n return;\n case 'open':\n this.focusedIndex = this.resolveInitialActiveIndex(navigation);\n return;\n default:\n assertNever(action);\n }\n }\n\n private applyOpenMenuAction(\n action: MenuOpenKeyboardAction,\n event: KeyboardEvent,\n navigation: MenuKeyboardNavigation,\n items: readonly T[],\n ): void {\n switch (action) {\n case 'dismiss':\n this.close(false);\n return;\n case 'next':\n suppressKeyboardEvent(event, navigation.preventDefault);\n this.focusedIndex = moveLinearIndex(\n this.focusedIndex,\n 1,\n items.length,\n navigation.loop,\n );\n return;\n case 'previous':\n suppressKeyboardEvent(event, navigation.preventDefault);\n this.focusedIndex = moveLinearIndex(\n this.focusedIndex,\n -1,\n items.length,\n navigation.loop,\n );\n return;\n case 'first':\n suppressKeyboardEvent(event, navigation.preventDefault);\n this.focusedIndex = 0;\n return;\n case 'last':\n suppressKeyboardEvent(event, navigation.preventDefault);\n this.focusedIndex = items.length - 1;\n return;\n case 'activate':\n suppressKeyboardEvent(event, navigation.preventDefault);\n this.activateFocused(items);\n return;\n case 'close':\n suppressKeyboardEvent(event, navigation.preventDefault);\n this.close(true);\n return;\n default:\n assertNever(action);\n }\n }\n\n private resolveNavigation(): MenuKeyboardNavigation | null {\n const input =\n typeof this.config.keyboardNavigation === 'function'\n ? this.config.keyboardNavigation()\n : this.config.keyboardNavigation;\n\n return resolveMenuKeyboardNavigation(input);\n }\n\n private resolveInitialActiveIndex(\n navigation: MenuKeyboardNavigation,\n ): number {\n return resolveInitialActiveIndex(\n this.actionableItems,\n (item) => this.getItemId(item),\n navigation.initialActiveItemId,\n );\n }\n\n private getItemId(item: T): string | undefined {\n if (this.config.getItemId) {\n return this.config.getItemId(item);\n }\n\n return (item as { id?: string }).id;\n }\n\n private activateFocused(items: readonly T[]): void {\n const item = items[this.focusedIndex];\n if (!item) {\n return;\n }\n\n this.config.onSelect(item);\n this.close(true);\n }\n}\n\nconst DEFAULT_ACTIVE_ITEM_CLASS = 'menu-keyboard__item--active';\n","import { InjectionToken } from '@angular/core';\nimport { MenuKeyboardFocusA11y } from './menu-keyboard.model';\n\nexport interface MenuKeyboardPort {\n open(): boolean | Promise<boolean>;\n close(restoreFocus: boolean): void | Promise<void>;\n focusTrigger?(triggerHost: HTMLElement, a11y?: MenuKeyboardFocusA11y): void;\n focusItem?(itemHost: HTMLElement, a11y?: MenuKeyboardFocusA11y): void;\n applyTriggerAccessibility?(\n triggerHost: HTMLElement,\n a11y: MenuKeyboardFocusA11y,\n ): void;\n applyItemAccessibility?(\n itemHost: HTMLElement,\n a11y: MenuKeyboardFocusA11y,\n ): void;\n}\n\nexport const MENU_KEYBOARD_PORT = new InjectionToken<MenuKeyboardPort>(\n 'MENU_KEYBOARD_PORT',\n);\n","import { signal } from '@angular/core';\nimport { filterEnabledItems } from '../core/linear-navigation.utils';\nimport { MenuKeyboardController } from './menu-keyboard.controller';\nimport { MenuKeyboardFocusA11y, MenuKeyboardItem } from './menu-keyboard.model';\nimport { MenuKeyboardPort } from './menu-keyboard-port.token';\n\nconst DEFAULT_ACTIVE_ITEM_CLASS = 'menu-keyboard__item--active';\n\nexport class MenuKeyboardFacade<T extends MenuKeyboardItem = MenuKeyboardItem> {\n private static nextListId = 0;\n\n readonly isOpen = signal(false);\n readonly focusedIndex = signal(-1);\n readonly focusRequestVersion = signal(0);\n readonly activeItemClass = signal(DEFAULT_ACTIVE_ITEM_CLASS);\n readonly listId = signal(`v-menu-kb-list-${MenuKeyboardFacade.nextListId++}`);\n\n private readonly actionableItems = signal<readonly T[]>([]);\n private triggerElement: HTMLElement | null = null;\n private listElement: HTMLElement | null = null;\n private readonly itemElements = new Map<T, HTMLElement>();\n private activeItemHandler: ((item: T) => void) | null = null;\n private triggerKeydownHandler: ((event: KeyboardEvent) => void) | null = null;\n private focusItemHandler:\n | ((host: HTMLElement, a11y?: MenuKeyboardFocusA11y) => void)\n | null = null;\n private syncTriggerHandler:\n | ((host: HTMLElement, a11y: MenuKeyboardFocusA11y) => void)\n | null = null;\n private syncItemHandler:\n | ((host: HTMLElement, a11y: MenuKeyboardFocusA11y) => void)\n | null = null;\n private portProvider: (() => MenuKeyboardPort | null) | null = null;\n\n setPortProvider(provider: () => MenuKeyboardPort | null): void {\n this.portProvider = provider;\n }\n\n setActiveItemHandler(handler: (item: T) => void): void {\n this.activeItemHandler = handler;\n }\n\n setTriggerKeydownHandler(handler: (event: KeyboardEvent) => void): void {\n this.triggerKeydownHandler = handler;\n }\n\n setFocusItemHandler(\n handler: (host: HTMLElement, a11y?: MenuKeyboardFocusA11y) => void,\n ): void {\n this.focusItemHandler = handler;\n }\n\n setSyncTriggerHandler(\n handler: (host: HTMLElement, a11y: MenuKeyboardFocusA11y) => void,\n ): void {\n this.syncTriggerHandler = handler;\n }\n\n setSyncItemHandler(\n handler: (host: HTMLElement, a11y: MenuKeyboardFocusA11y) => void,\n ): void {\n this.syncItemHandler = handler;\n }\n\n registerTrigger(element: HTMLElement): void {\n this.triggerElement = element;\n }\n\n unregisterTrigger(element: HTMLElement): void {\n if (this.triggerElement === element) {\n this.triggerElement = null;\n }\n }\n\n registerList(element: HTMLElement): void {\n this.listElement = element;\n }\n\n unregisterList(element: HTMLElement): void {\n if (this.listElement === element) {\n this.listElement = null;\n }\n }\n\n registerItem(item: T, element: HTMLElement): void {\n this.itemElements.set(item, element);\n }\n\n unregisterItem(item: T, element: HTMLElement): void {\n const registered = this.itemElements.get(item);\n if (registered === element) {\n this.itemElements.delete(item);\n }\n }\n\n unregisterItemElement(element: HTMLElement): void {\n for (const [item, registered] of this.itemElements.entries()) {\n if (registered === element) {\n this.itemElements.delete(item);\n }\n }\n }\n\n getTriggerElement(): HTMLElement | null {\n return this.triggerElement;\n }\n\n getListElement(): HTMLElement | null {\n return this.listElement;\n }\n\n publish(controller: MenuKeyboardController<T>, items: readonly T[]): void {\n const wasOpen = this.isOpen();\n const previousFocusedIndex = this.focusedIndex();\n const nextFocusedIndex = controller.focusedIndex;\n\n this.isOpen.set(controller.isOpen);\n this.focusedIndex.set(nextFocusedIndex);\n this.activeItemClass.set(controller.getActiveItemClass());\n this.actionableItems.set(filterEnabledItems(items));\n\n if (\n controller.isOpen &&\n wasOpen &&\n nextFocusedIndex >= 0 &&\n previousFocusedIndex !== nextFocusedIndex\n ) {\n this.focusRequestVersion.update((value) => value + 1);\n }\n }\n\n isItemActive(item: T): boolean {\n if (!this.isOpen() || this.focusedIndex() < 0) {\n return false;\n }\n\n const items = this.actionableItems();\n return items[this.focusedIndex()] === item;\n }\n\n getItemTabIndex(item: T): number {\n return this.isItemActive(item) ? 0 : -1;\n }\n\n requestActiveItem(item: T): void {\n this.activeItemHandler?.(item);\n }\n\n requestTriggerKeydown(event: KeyboardEvent): void {\n this.triggerKeydownHandler?.(event);\n }\n\n getActiveItemElement(): HTMLElement | null {\n const items = this.actionableItems();\n const index = this.focusedIndex();\n\n if (!this.isOpen() || index < 0 || index >= items.length) {\n return null;\n }\n\n return this.itemElements.get(items[index]) ?? null;\n }\n\n requestItemFocus(host: HTMLElement, a11y?: MenuKeyboardFocusA11y): void {\n if (this.focusItemHandler) {\n this.focusItemHandler(host, a11y);\n return;\n }\n\n host.focus({ preventScroll: true });\n }\n\n requestTriggerAccessibilitySync(\n host: HTMLElement,\n a11y: MenuKeyboardFocusA11y,\n ): void {\n this.syncTriggerHandler?.(host, a11y);\n }\n\n requestItemAccessibilitySync(\n host: HTMLElement,\n a11y: MenuKeyboardFocusA11y,\n ): void {\n this.syncItemHandler?.(host, a11y);\n }\n\n resolveItemFromTarget(target: Node): T | null {\n for (const [item, element] of this.itemElements.entries()) {\n if (element.contains(target)) {\n return item;\n }\n }\n\n return null;\n }\n\n getPort(): MenuKeyboardPort | null {\n return this.portProvider?.() ?? null;\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { MenuKeyboardFacade } from './menu-keyboard.facade';\nimport { MenuKeyboardItem } from './menu-keyboard.model';\n\nexport const MENU_KEYBOARD = new InjectionToken<\n MenuKeyboardFacade<MenuKeyboardItem>\n>('MENU_KEYBOARD');\n","import {\n DestroyRef,\n Directive,\n ElementRef,\n inject,\n Injector,\n input,\n isDevMode,\n output,\n} from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { MenuKeyboardController } from './menu-keyboard.controller';\nimport {\n MenuKeyboardConfig,\n MenuKeyboardFocusA11y,\n MenuKeyboardItem,\n MenuKeyboardNavigation,\n MenuKeyboardNavigationInput,\n} from './menu-keyboard.model';\nimport {\n MENU_KEYBOARD_PORT,\n MenuKeyboardPort,\n} from './menu-keyboard-port.token';\nimport { assertNever } from '../core/keyboard-action.model';\nimport {\n MenuKeyboardPortIntent,\n MenuKeyboardPortOperationState,\n} from './menu-keyboard.port-state';\nimport { MenuKeyboardFacade } from './menu-keyboard.facade';\nimport { MENU_KEYBOARD } from './menu-keyboard.token';\n\n@Directive({\n selector: '[vMenuKeyboard]',\n exportAs: 'menuKeyboard',\n providers: [\n MenuKeyboardFacade,\n { provide: MENU_KEYBOARD, useExisting: MenuKeyboardFacade },\n ],\n})\nexport class MenuKeyboardDirective<\n T extends MenuKeyboardItem = MenuKeyboardItem,\n> {\n readonly menuKeyboardItems = input<readonly T[]>([]);\n readonly menuKeyboardNavigation =\n input<MenuKeyboardNavigationInput>(undefined);\n readonly menuKeyboardEnableWhenUnset = input(false);\n readonly menuKeyboardDefaults = input<Partial<MenuKeyboardNavigation>>({});\n readonly menuKeyboardItemId = input<(item: T) => string | undefined>(\n (item) => (item as { id?: string }).id,\n );\n readonly menuKeyboardSelect = output<T>();\n\n private readonly facade = inject(MenuKeyboardFacade<T>);\n readonly isOpen = this.facade.isOpen;\n readonly focusedIndex = this.facade.focusedIndex;\n readonly activeItemClass = this.facade.activeItemClass;\n readonly listId = this.facade.listId;\n\n private readonly elementRef = inject(ElementRef<HTMLElement>);\n private readonly document = inject(DOCUMENT);\n private readonly injector = inject(Injector);\n private readonly destroyRef = inject(DestroyRef);\n\n private readonly onDocumentKeydown = (event: KeyboardEvent) =>\n this.handleDocumentKeydown(event);\n\n private portOperationState: MenuKeyboardPortOperationState = 'idle';\n private pendingPortIntent: MenuKeyboardPortIntent | null = null;\n\n private readonly controller = new MenuKeyboardController<T>({\n getItems: (): readonly T[] => this.menuKeyboardItems(),\n getItemId: (item: T): string | undefined => this.menuKeyboardItemId()(item),\n keyboardNavigation: (): MenuKeyboardNavigationInput =>\n this.resolveNavigation(),\n onSelect: (item: T): void => this.menuKeyboardSelect.emit(item),\n onOpen: (): void => {\n this.schedulePortIntent({ type: 'open' });\n },\n onClose: (restoreFocus: boolean): void => {\n this.schedulePortIntent({ type: 'close', restoreFocus });\n },\n } satisfies MenuKeyboardConfig<T>);\n\n constructor() {\n this.facade.setPortProvider(() => this.getPort());\n\n this.facade.setActiveItemHandler((item) => {\n this.controller.setActiveItem(item);\n this.publishState();\n });\n\n this.facade.setTriggerKeydownHandler((event) => {\n this.handleTriggerKeydown(event);\n });\n\n this.facade.setFocusItemHandler((host, a11y) => {\n this.focusItemHost(host, a11y);\n });\n\n this.facade.setSyncTriggerHandler((host, a11y) => {\n this.applyTriggerAccessibility(host, a11y);\n });\n\n this.facade.setSyncItemHandler((host, a11y) => {\n this.applyItemAccessibility(host, a11y);\n });\n\n this.destroyRef.onDestroy(() => {\n this.facade.setTriggerKeydownHandler(() => undefined);\n this.facade.setFocusItemHandler(() => undefined);\n this.facade.setSyncTriggerHandler(() => undefined);\n this.facade.setSyncItemHandler(() => undefined);\n this.facade.setPortProvider(() => null);\n this.unbindDocumentKeydown();\n });\n }\n\n handleOpenChange(open: boolean): void {\n this.controller.handleOpenChange(open);\n\n if (open && !this.controller.isOpen) {\n void this.schedulePortIntent({ type: 'close', restoreFocus: false });\n }\n\n if (this.controller.isOpen) {\n this.bindDocumentKeydown();\n } else {\n this.unbindDocumentKeydown();\n }\n\n this.publishState();\n }\n\n close(restoreFocus = false): void {\n this.schedulePortIntent({ type: 'close', restoreFocus });\n }\n\n focusTrigger(): void {\n const trigger = this.facade.getTriggerElement();\n if (!trigger) {\n return;\n }\n\n const a11y: MenuKeyboardFocusA11y = {\n ariaHaspopup: 'menu',\n ariaExpanded: String(this.facade.isOpen()),\n ariaControls: this.facade.listId(),\n };\n\n const port = this.getPort();\n if (port?.focusTrigger) {\n port.focusTrigger(trigger, a11y);\n return;\n }\n\n trigger.focus({ preventScroll: true });\n }\n\n focusActiveItem(): void {\n if (!this.controller.isOpen || this.controller.focusedIndex < 0) {\n return;\n }\n\n const items = this.controller.actionableItems;\n const item = items[this.controller.focusedIndex];\n const host = this.facade.getActiveItemElement();\n\n if (!item || !host) {\n return;\n }\n\n this.focusItemHost(host, this.buildItemFocusA11y(item));\n }\n\n getTriggerElement(): HTMLElement | undefined {\n return this.facade.getTriggerElement() ?? undefined;\n }\n\n getListElement(): HTMLElement | undefined {\n return this.facade.getListElement() ?? undefined;\n }\n\n isItemActive(item: T): boolean {\n return this.facade.isItemActive(item);\n }\n\n getItemTabIndex(item: T): number {\n return this.facade.getItemTabIndex(item);\n }\n\n hasActionableItems(): boolean {\n return this.controller.actionableItems.length > 0;\n }\n\n private handleTriggerKeydown(event: KeyboardEvent): void {\n if (this.controller.isOpen || !this.controller.isNavigationEnabled()) {\n return;\n }\n\n this.controller.onTriggerKeydown(event);\n this.publishState();\n }\n\n private handleDocumentKeydown(event: KeyboardEvent): void {\n if (!this.controller.isOpen || !this.shouldHandleDocumentKeydown(event)) {\n return;\n }\n\n this.controller.onMenuKeydown(event);\n this.publishState();\n }\n\n private shouldHandleDocumentKeydown(event: KeyboardEvent): boolean {\n const host = this.elementRef.nativeElement;\n const listElement = this.facade.getListElement();\n const path = event.composedPath();\n\n if (path.includes(host)) {\n return true;\n }\n\n return !!(listElement && path.includes(listElement));\n }\n\n private bindDocumentKeydown(): void {\n this.document.removeEventListener('keydown', this.onDocumentKeydown, true);\n this.document.addEventListener('keydown', this.onDocumentKeydown, true);\n }\n\n private unbindDocumentKeydown(): void {\n this.document.removeEventListener('keydown', this.onDocumentKeydown, true);\n }\n\n private focusItemHost(host: HTMLElement, a11y?: MenuKeyboardFocusA11y): void {\n const resolvedA11y =\n a11y ??\n (() => {\n const item = this.facade.resolveItemFromTarget(host);\n return item ? this.buildItemFocusA11y(item) : undefined;\n })();\n\n const port = this.getPort();\n if (port?.focusItem) {\n port.focusItem(host, resolvedA11y);\n return;\n }\n\n host.focus({ preventScroll: true });\n }\n\n private applyTriggerAccessibility(\n host: HTMLElement,\n a11y: MenuKeyboardFocusA11y,\n ): void {\n this.getPort()?.applyTriggerAccessibility?.(host, a11y);\n }\n\n private applyItemAccessibility(\n host: HTMLElement,\n a11y: MenuKeyboardFocusA11y,\n ): void {\n this.getPort()?.applyItemAccessibility?.(host, a11y);\n }\n\n private buildItemFocusA11y(item: T): MenuKeyboardFocusA11y {\n return {\n role: 'menuitem',\n tabIndex: this.getItemTabIndex(item),\n ariaDisabled: String(item.disabled ?? false),\n };\n }\n\n private publishState(): void {\n this.facade.publish(this.controller, this.menuKeyboardItems());\n }\n\n private schedulePortIntent(intent: MenuKeyboardPortIntent): void {\n if (this.portOperationState === 'idle') {\n void this.executePortIntent(intent);\n return;\n }\n\n this.pendingPortIntent = intent;\n }\n\n private async executePortIntent(\n intent: MenuKeyboardPortIntent,\n ): Promise<void> {\n switch (intent.type) {\n case 'open':\n await this.openViaPort();\n return;\n case 'close':\n await this.closeViaPort(intent.restoreFocus);\n return;\n default:\n assertNever(intent);\n }\n }\n\n private async drainPendingPortIntent(): Promise<void> {\n const intent = this.pendingPortIntent;\n this.pendingPortIntent = null;\n\n if (!intent) {\n return;\n }\n\n await this.executePortIntent(intent);\n }\n\n private async openViaPort(): Promise<void> {\n const port = this.getPort();\n if (!port) {\n this.controller.cancelPendingOpen();\n this.publishState();\n return;\n }\n\n this.portOperationState = 'opening';\n try {\n const opened = await port.open();\n if (opened === false) {\n this.controller.cancelPendingOpen();\n }\n } catch (error) {\n this.controller.cancelPendingOpen();\n this.reportPortError('open', error);\n } finally {\n this.portOperationState = 'idle';\n this.publishState();\n await this.drainPendingPortIntent();\n }\n }\n\n private async closeViaPort(restoreFocus: boolean): Promise<void> {\n const port = this.getPort();\n if (!port) {\n return;\n }\n\n this.portOperationState = 'closing';\n try {\n await port.close(restoreFocus);\n } catch (error) {\n this.reportPortError('close', error);\n } finally {\n this.portOperationState = 'idle';\n this.publishState();\n await this.drainPendingPortIntent();\n }\n }\n\n private reportPortError(operation: 'open' | 'close', error: unknown): void {\n if (isDevMode()) {\n console.warn(`[vMenuKeyboard] Port ${operation} failed.`, error);\n }\n }\n\n private getPort(): MenuKeyboardPort | null {\n return this.injector.get(MENU_KEYBOARD_PORT, null, { optional: true });\n }\n\n private resolveNavigation(): MenuKeyboardNavigationInput {\n const input = this.menuKeyboardNavigation();\n const defaults = this.menuKeyboardDefaults();\n\n if (input === false) {\n return false;\n }\n\n if (input === undefined) {\n if (!this.menuKeyboardEnableWhenUnset()) {\n return undefined;\n }\n\n return Object.keys(defaults).length ? defaults : true;\n }\n\n if (input === true) {\n return Object.keys(defaults).length ? defaults : true;\n }\n\n return {\n ...defaults,\n ...input,\n };\n }\n}\n","import { DestroyRef, Directive, ElementRef, effect, inject } from '@angular/core';\nimport { MENU_KEYBOARD } from './menu-keyboard.token';\n\n@Directive({\n selector: '[vMenuKeyboardTrigger]',\n host: {\n 'aria-haspopup': 'menu',\n '[attr.aria-expanded]': 'facade.isOpen()',\n '[attr.aria-controls]': 'facade.listId()',\n '(keydown)': 'onKeydown($event)',\n },\n})\nexport class MenuKeyboardTriggerDirective {\n protected readonly facade = inject(MENU_KEYBOARD);\n private readonly elementRef = inject(ElementRef<HTMLElement>);\n private readonly destroyRef = inject(DestroyRef);\n\n constructor() {\n const element = this.elementRef.nativeElement;\n this.facade.registerTrigger(element);\n\n effect(() => {\n this.facade.requestTriggerAccessibilitySync(element, {\n ariaHaspopup: 'menu',\n ariaExpanded: String(this.facade.isOpen()),\n ariaControls: this.facade.listId(),\n });\n });\n\n this.destroyRef.onDestroy(() => {\n this.facade.unregisterTrigger(element);\n });\n }\n\n onKeydown(event: KeyboardEvent): void {\n this.facade.requestTriggerKeydown(event);\n }\n}\n","import { DestroyRef, Directive, ElementRef, inject } from '@angular/core';\nimport { MENU_KEYBOARD } from './menu-keyboard.token';\n\n@Directive({\n selector: '[vMenuKeyboardList]',\n host: {\n role: 'menu',\n tabindex: '-1',\n '[id]': 'facade.listId()',\n },\n})\nexport class MenuKeyboardListDirective {\n protected readonly facade = inject(MENU_KEYBOARD);\n private readonly elementRef = inject(ElementRef<HTMLElement>);\n private readonly destroyRef = inject(DestroyRef);\n\n constructor() {\n const element = this.elementRef.nativeElement;\n this.facade.registerList(element);\n\n this.destroyRef.onDestroy(() => {\n this.facade.unregisterList(element);\n });\n }\n}\n","import {\n DestroyRef,\n Directive,\n ElementRef,\n effect,\n inject,\n input,\n} from '@angular/core';\nimport { MENU_KEYBOARD } from './menu-keyboard.token';\nimport { MenuKeyboardItem } from './menu-keyboard.model';\n\n@Directive({\n selector: '[vMenuKeyboardItem]',\n host: {\n role: 'menuitem',\n '[attr.tabindex]': 'facade.getItemTabIndex(item())',\n '[attr.aria-disabled]': 'item().disabled ?? false',\n '(mouseenter)': 'onMouseEnter()',\n },\n})\nexport class MenuKeyboardItemDirective<\n T extends MenuKeyboardItem = MenuKeyboardItem,\n> {\n readonly item = input.required<T>({ alias: 'menuKeyboardItem' });\n\n protected readonly facade = inject(MENU_KEYBOARD);\n private readonly elementRef = inject(ElementRef<HTMLElement>);\n private readonly destroyRef = inject(DestroyRef);\n\n constructor() {\n const element = this.elementRef.nativeElement;\n\n effect((onCleanup) => {\n const menuItem = this.item();\n\n this.facade.registerItem(menuItem, element);\n\n onCleanup(() => {\n this.facade.unregisterItem(menuItem, element);\n });\n });\n\n effect(() => {\n const activeClass = this.facade.activeItemClass();\n const isActive = this.facade.isItemActive(this.item());\n element.classList.toggle(activeClass, isActive);\n });\n\n effect(() => {\n this.facade.isOpen();\n this.facade.focusedIndex();\n\n this.facade.requestItemAccessibilitySync(element, {\n role: 'menuitem',\n tabIndex: this.facade.getItemTabIndex(this.item()),\n ariaDisabled: String(this.item().disabled ?? false),\n });\n });\n\n effect(() => {\n this.facade.focusRequestVersion();\n if (!this.facade.isOpen() || !this.facade.isItemActive(this.item())) {\n return;\n }\n\n this.facade.requestItemFocus(element, {\n role: 'menuitem',\n tabIndex: this.facade.getItemTabIndex(this.item()),\n ariaDisabled: String(this.item().disabled ?? false),\n });\n });\n\n this.destroyRef.onDestroy(() => {\n this.facade.unregisterItemElement(element);\n });\n }\n\n onMouseEnter(): void {\n const menuItem = this.item();\n if (menuItem.disabled) {\n return;\n }\n\n this.facade.requestActiveItem(menuItem);\n }\n}\n","import { OnChanges, SimpleChange, SimpleChanges } from '@angular/core';\r\n\r\nexport function setComponentProperties<TComponent>(\r\n component: TComponent,\r\n value: Partial<TComponent>,\r\n firstChange = false\r\n) {\r\n if (!value || !component) {\r\n return;\r\n }\r\n\r\n const simpleChanges = Object.keys(value).reduce(\r\n (changes: SimpleChanges, property: string) => {\r\n const indexedComponent = component as unknown as {\r\n [key: string]: TComponent[keyof TComponent];\r\n };\r\n const indexedValue = value as unknown as {\r\n [key: string]: TComponent[keyof TComponent];\r\n };\r\n const previousValue = indexedComponent[property];\r\n const currentValue = indexedValue[\r\n property\r\n ] as TComponent[keyof TComponent];\r\n if (currentValue !== previousValue) {\r\n indexedComponent[property] = currentValue;\r\n const change = new SimpleChange(\r\n previousValue,\r\n currentValue,\r\n firstChange\r\n );\r\n\r\n return { ...changes, [property]: change };\r\n }\r\n\r\n return changes;\r\n },\r\n {}\r\n );\r\n\r\n const changeableComponent = component as unknown as OnChanges;\r\n if (changeableComponent['ngOnChanges']) {\r\n changeableComponent.ngOnChanges(simpleChanges);\r\n }\r\n}\r\n","export enum ControlSeverity {\r\n success = 'success',\r\n info = 'info',\r\n warning = 'warning',\r\n danger = 'danger',\r\n help = 'help',\r\n primary = 'primary',\r\n secondary = 'secondary',\r\n contrast = 'contrast',\r\n}\r\n\r\nexport enum GovControlSeverity {\r\n primary = 'primary',\r\n secondary = 'secondary',\r\n neutral = 'neutral',\r\n error = 'error',\r\n success = 'success',\r\n warning = 'warning',\r\n}\r\n\r\nexport enum GovButtonType {\r\n solid = 'solid',\r\n outlined = \"outlined\",\r\n base = \"base\",\r\n link = \"link\"\r\n}\r\n\r\nexport enum IconPosition {\r\n left = 'left',\r\n right = 'right',\r\n}\r\n\r\nexport enum SlotPosition {\r\n top = 'top',\r\n bottom = 'bottom',\r\n}\r\n\r\nexport enum Position{\r\n top = 'top',\r\n bottom = 'bottom',\r\n left = 'left',\r\n right = 'right',\r\n}\r\n\r\nexport enum FieldSize {\r\n small = 'small',\r\n medium = 'medium',\r\n large = 'large',\r\n xl = 'xl',\r\n}\r\n\r\nexport enum FieldAlign {\r\n left = 'left',\r\n center = 'center',\r\n right = 'right',\r\n}\r\n\r\nexport enum FieldType {\r\n text = 'text',\r\n number = 'number',\r\n password = 'password',\r\n search = 'search',\r\n date = 'date',\r\n}\r\n\r\nexport enum LayoutType {\r\n horizontal = 'horizontal',\r\n vertical = 'vertical',\r\n}\r\n\r\nexport type ControlSeverityType = keyof typeof ControlSeverity;\r\nexport type GovControlSeverityType = keyof typeof GovControlSeverity;\r\nexport type GovButtonTypeType = keyof typeof GovButtonType;\r\nexport type IconPositionType = keyof typeof IconPosition;\r\nexport type SlotPositionType = keyof typeof SlotPosition;\r\nexport type PositionType = keyof typeof Position;\r\nexport type FieldSizeType = keyof typeof FieldSize;\r\nexport type FieldAlignType = keyof typeof FieldAlign;\r\nexport type FieldTypeType = keyof typeof FieldType;\r\nexport type LayoutTypeType = keyof typeof LayoutType;\r\n","export const DEFAULT_DEBOUNCE_TIME = 300;\n\nexport const DEFAULT_PAGINATION = [10, 25, 50, 100];\n\nexport const MAX_COLUMN_CHAR_COUNT = 30;","import { EventEmitter, SimpleChanges } from '@angular/core';\r\nimport { FilterEvent, LazyLoadEvent, RequestParams } from '@verisoft/core';\r\n\r\nexport interface DataSourceComponentModel<TEntity> {\r\n ngOnChanges?: (changes: SimpleChanges) => void;\r\n lazy: boolean;\r\n loading: boolean;\r\n filter: boolean;\r\n options: TEntity[] | undefined;\r\n optionValue: string | undefined;\r\n optionLabel: string | undefined;\r\n showed: EventEmitter<any>;\r\n cleared: EventEmitter<any>;\r\n filtered: EventEmitter<FilterEvent>;\r\n lazyLoad: EventEmitter<LazyLoadEvent>;\r\n}\r\n\r\nexport function setDataToArray<T>(\r\n targetArray: (T | undefined)[] | undefined,\r\n data: T[],\r\n offset = 0,\r\n total: number | undefined = undefined,\r\n defaultItem: T | undefined = undefined\r\n): (T | undefined)[] {\r\n const totalItems = total ?? data.length + offset;\r\n if (!targetArray) {\r\n targetArray = Array(totalItems).fill(defaultItem);\r\n }\r\n\r\n if (targetArray.length < totalItems) {\r\n targetArray = targetArray.concat(\r\n new Array(totalItems - targetArray.length).fill(defaultItem)\r\n );\r\n }\r\n\r\n for (let i = 0; i < data.length; i++) {\r\n targetArray[i + offset] = data[i] ?? defaultItem;\r\n }\r\n\r\n return targetArray;\r\n}\r\n\r\nexport type ExtendedRequestType<T> = RequestParams<T> & { useNewData: boolean}\r\n","export function isFilterEmpty<T>(filter: Partial<T> | undefined) {\r\n if (filter == undefined) {\r\n return true;\r\n }\r\n\r\n return !Object.entries(filter).some((x) => x[1] != undefined);\r\n}\r\n","import { QueryList } from '@angular/core';\r\nimport { debounceTime, map, merge, startWith, switchMap } from 'rxjs';\r\nimport { NotificableProperty } from './notificable-property.model';\r\n\r\nexport function queryListChanged<TEntity>(list: QueryList<TEntity>) {\r\n return list.changes.pipe(\r\n startWith({}),\r\n switchMap(() => {\r\n const actionPropertyChanges$ = list\r\n .toArray()\r\n .filter((action) => (<NotificableProperty>action).propertyChanged)\r\n .map((action) => (<NotificableProperty>action).propertyChanged);\r\n\r\n return merge(...actionPropertyChanges$).pipe(\r\n startWith({}),\r\n map(() => list.toArray())\r\n );\r\n }),\r\n debounceTime(50)\r\n );\r\n}\r\n","export function downloadText(\r\n filename: string,\r\n text: string,\r\n mimeType: string | undefined = 'text/plain'\r\n): void {\r\n const blob = new Blob([text], { type: mimeType });\r\n downloadFile(filename, blob);\r\n}\r\n\r\nexport function downloadFile(\r\n filename: string,\r\n blob: Blob\r\n): void {\r\n const url = window.URL.createObjectURL(blob);\r\n const a = document.createElement('a');\r\n a.href = url;\r\n a.download = filename;\r\n a.click();\r\n window.URL.revokeObjectURL(url);\r\n}\r\n","import { InjectionToken } from '@angular/core';\nimport { IconPositionType } from '../../common';\nimport { ActionButton } from './action-button.model';\n\nexport const ACTION_BUTTON_GROUP_COMPONENT_TOKEN =\n new InjectionToken<ActionButtonGroupCore>('ActionButtonGroupComponentToken');\n\nexport interface ActionButtonGroupCore {\n maxItems: number;\n maxItemsMobile: number;\n items: ActionButton[];\n menuIconPos: IconPositionType;\n menuIcon: string;\n label?: string;\n showLabels: boolean;\n}\n","\nimport { Component, inject, Input, OnInit } from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n FormControl,\n FormControlDirective,\n FormControlName,\n FormGroupDirective,\n NgControl,\n NgModel,\n ReactiveFormsModule,\n} from '@angular/forms';\nimport { ERROR_PROVIDER_TOKEN } from '@verisoft/core';\nimport { BaseInputControls } from './models/base-form-input.models';\n\nconst noop = () => {\n /* */\n};\n\n@Component({\n template: '',\n imports: [ReactiveFormsModule]\n})\nexport class BaseFormInputComponent\n implements BaseInputControls<any>, ControlValueAccessor, OnInit\n{\n readonly ngControl?: NgControl;\n\n readonly errorService = inject(ERROR_PROVIDER_TOKEN);\n\n formControl!: FormControl;\n\n constructor(private readonly control: NgControl) {\n this.ngControl = control;\n if (this.control) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n @Input()\n label?: string;\n\n @Input()\n required = false;\n\n @Input()\n readonly!: boolean;\n\n @Input()\n disabled!: boolean;\n\n @Input()\n tooltip!: string;\n\n @Input()\n formDisplay: 'flex' | 'block' = 'flex';\n\n @Input()\n clearable = true;\n\n @Input()\n placeholder?: string = '';\n\n @Input()\n testId?: string;\n\n inputId = Math.random().toString(36).substring(2);\n\n selectionChanged: any = noop;\n\n onTouch: any = noop;\n\n registerOnChange(fn: any): void {\n this.selectionChanged = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouch = fn;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n writeValue(value: any): void {}\n\n ngOnInit(): void {\n if (this.ngControl) {\n if (this.ngControl instanceof FormControlName) {\n this.formControl =\n this.ngControl.control ||\n ((this.ngControl.formDirective as FormGroupDirective)?.form.controls[\n this.ngControl.name as string\n ] as FormControl);\n } else if (\n this.ngControl instanceof FormControlDirective ||\n this.ngControl instanceof NgModel\n ) {\n this.formControl = this.ngControl.control;\n if (this.ngControl instanceof NgModel) {\n this.formControl.valueChanges.subscribe(() =>\n this.ngControl?.viewToModelUpdate(this.control?.value)\n );\n }\n } else {\n this.formControl = new FormControl();\n }\n } else {\n this.formControl = new FormControl();\n }\n }\n\n isRequired() {\n if (this.ngControl) {\n const validator = this.ngControl?.control?.validator?.(\n {} as AbstractControl\n );\n return this.required || (validator && validator['required']);\n }\n return this.required;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ScreenSizeService {\n isMobileBlock = new BehaviorSubject<boolean>(false);\n prevState = false;\n\n constructor() {\n this.checkScreenSize();\n window.addEventListener('resize', async () => {\n await this.checkScreenSize();\n });\n }\n\n async checkScreenSize() {\n const isMobile = window.matchMedia('(max-width: 768px)').matches;\n if (isMobile !== this.prevState) {\n this.prevState = isMobile;\n this.isMobileBlock.next(isMobile);\n }\n }\n}\n","import { EventEmitter, Injectable, Output } from '@angular/core';\nimport { ExtendedDialogData } from '../components';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DialogService {\n @Output() showEvent: EventEmitter<ExtendedDialogData> =\n new EventEmitter<ExtendedDialogData>();\n\n @Output() closeEvent: EventEmitter<null> = new EventEmitter();\n\n private currentDialogData: ExtendedDialogData | null = null;\n\n showDialog<TInputs, TOutputs>(\n data: ExtendedDialogData<TInputs, TOutputs>\n ): void {\n const mappedData = this.mapInputAndOutpus(data);\n const dialogData = {\n ...data,\n data: mappedData,\n };\n\n this.currentDialogData = dialogData;\n this.showEvent.emit(dialogData);\n }\n\n updateDialog<TInputs = unknown, TOutputs = unknown>(\n patch: Partial<ExtendedDialogData<TInputs, TOutputs>>\n ): void {\n if (!this.currentDialogData) {\n return;\n }\n\n const mergedDialogData: ExtendedDialogData = {\n ...this.currentDialogData,\n ...patch,\n data: this.currentDialogData.data,\n componentType: this.currentDialogData.componentType,\n };\n\n this.currentDialogData = mergedDialogData;\n this.showEvent.emit(mergedDialogData);\n }\n\n private mapInputAndOutpus<TInputs, TOutputs>(\n data: ExtendedDialogData<TInputs, TOutputs>\n ): ExtendedDialogData<TInputs, TOutputs> {\n const inputsAndOutputs = data.data as TInputs & TOutputs;\n return {\n ...data.data,\n ...Object.keys(inputsAndOutputs ?? {})\n .filter(\n (key) => typeof inputsAndOutputs[key as keyof TOutputs] === 'function'\n )\n .reduce((acc, key) => {\n acc[key] = (value: unknown) => {\n if (typeof inputsAndOutputs[key as keyof TOutputs] === 'function') {\n (\n inputsAndOutputs[key as keyof TOutputs] as (\n value: unknown\n ) => void\n )(value);\n }\n };\n return acc;\n }, {} as Record<string, unknown>),\n };\n }\n\n closeModal(): void {\n this.currentDialogData = null;\n this.closeEvent.emit();\n }\n}\n","import { Injectable, inject } from '@angular/core';\nimport { CanDeactivate } from '@angular/router';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Observable, Subject } from 'rxjs';\nimport { PreventUnsavedChangesCore, CommonIcons } from '../common';\nimport { DialogService } from './confirm-dialog.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PreventUnsavedChangesDirective implements CanDeactivate<PreventUnsavedChangesCore> {\n private dialogService = inject(DialogService);\n private translateService = inject(TranslateService);\n private readonly Icons!: CommonIcons;\n\n canDeactivate(component: PreventUnsavedChangesCore): Observable<boolean> | Promise<boolean> | boolean {\n if (!component || !component.canDeactivate) {\n return true;\n }\n const result = component.canDeactivate();\n return result;\n }\n\n showConfirmationDialog(): Observable<boolean> {\n const resultSubject = new Subject<boolean>();\n\n const title = this.translateService.instant('VALIDATIONS.UNSAVED_CHANGES');\n const message = this.translateService.instant('VALIDATIONS.LEAVING_UNSAVED_FORM');\n const leaveButton = this.translateService.instant('BUTTONS.LEAVE');\n const stayButton = this.translateService.instant('BUTTONS.STAY');\n\n this.dialogService.showDialog({\n title: title,\n headerIcon: this.Icons.infoCircle,\n innerHTML: `<p>${message}</p>`,\n showCancelButton: true,\n confirmButtonText: stayButton,\n cancelButtonText: leaveButton,\n confirmButtonFn: () => {\n resultSubject.next(false);\n resultSubject.complete();\n this.dialogService.closeModal();\n },\n cancelButtonFn: () => {\n resultSubject.next(true);\n resultSubject.complete();\n this.dialogService.closeModal();\n },\n });\n\n return resultSubject.asObservable();\n }\n}\n","import { Injectable, signal } from \"@angular/core\";\nimport { TableSignal } from \"../components\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class TableService {\n readonly reload = signal<TableSignal | symbol>(Symbol())\n\n /**\n * If name is set, reload a specific table with the set`[tableName]`\n *\n * If name is NOT set, reload all tables in the current DOM\n * */\n forceReload(name?: string): void {\n if (name) {\n this.reload.set({ name: name, symbol: Symbol() });\n } else {\n this.reload.set(Symbol());\n }\n }\n}\n","import { NgControl } from '@angular/forms';\n\nexport abstract class BaseInputControls<T> {\n value?: T | null;\n\n readonly ngControl?: NgControl;\n\n readonly label?: string;\n\n readonly required!: boolean;\n}\n","export interface BaseFormCore {\n label?: string;\n required: boolean;\n readonly: boolean;\n tooltip: string;\n formDisplay: 'flex' | 'block';\n clearable: boolean;\n placeholder?: string\n testId?: string;\n}\n\nexport interface BaseFormDirectiveCore<T> {\n initialData: T | any;\n}\n\nexport interface FormState {\n dirty: boolean;\n valid: boolean;\n}\n\nexport function isFormStateEqual(current: FormState, other: FormState) {\n if (!current && !other) {\n return true;\n }\n\n if (current && other) {\n return current.dirty === other.dirty && current.valid === other.valid;\n }\n\n return false;\n}\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Directive,\n EventEmitter,\n HostListener,\n inject,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n ViewChild,\n} from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { cloneDeep } from '@verisoft/core';\nimport { Subject, takeUntil, filter, map, Observable } from 'rxjs';\nimport { PreventUnsavedChangesCore } from '../../common';\nimport { PreventUnsavedChangesDirective } from '../../services';\nimport { FormState, isFormStateEqual } from './models';\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[v-baseForm]',\n standalone: true,\n})\nexport abstract class BaseFormDirective<T extends object>\n implements OnInit, OnChanges, OnDestroy, AfterViewInit, PreventUnsavedChangesCore\n{\n @Input() data!: T | any;\n @Output() dataChange = new EventEmitter<T>();\n @Output() statusChange = new EventEmitter<FormState>();\n @Output() formSubmit = new EventEmitter<T>();\n @Output() formClear = new EventEmitter<void>();\n\n formDestroyed$ = new Subject<void>();\n keys: { key: string; alias?: string; type?: string; readOnly: string }[] = [];\n formGroup!: FormGroup;\n cd = inject(ChangeDetectorRef);\n valueInitialization = false;\n lastState!: FormState;\n guardViewChild!: ViewChild;\n formSubmitted = false;\n protected guard = inject(PreventUnsavedChangesDirective);\n\n @HostListener('window:beforeunload', ['$event'])\n unloadHandler(event: BeforeUnloadEvent) {\n if (this.formGroup.dirty) {\n event.preventDefault();\n }\n }\n\n canDeactivate(): Observable<boolean> | Promise<boolean> | boolean {\n if (this.formGroup.dirty && !this.formSubmitted) {\n const result = this.guard.showConfirmationDialog();\n return result;\n }\n\n return true;\n }\n\n ngOnInit(): void {\n this.initializeFormGroup();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['data'] && this.formGroup) {\n this.valueInitialization = true;\n const dirty = this.formGroup.dirty;\n\n this.formGroup.patchValue(this.fromModel(this.data), {\n emitEvent: false,\n onlySelf: true,\n });\n\n this.formGroup.updateValueAndValidity();\n if (!dirty) {\n this.formGroup.markAsPristine();\n }\n\n this.valueInitialization = false;\n this.createAndEmitIfFormStateChanged();\n }\n }\n\n ngAfterViewInit() {\n this.cd.detectChanges();\n }\n\n ngOnDestroy(): void {\n this.formDestroyed$.next();\n this.formDestroyed$.complete();\n }\n\n abstract createFormGroup(): FormGroup;\n\n createCompleteData() {\n const change = this.toModel(this.formGroup?.value);\n this.recursiveObjectAttributesTransformation(change);\n const updatedData = this.applyChanges(\n cloneDeep(this.data),\n cloneDeep(change)\n );\n\n return updatedData;\n }\n\n submit() {\n this.formSubmitted = true;\n this.formGroup.markAllAsTouched();\n if (!this.formGroup.invalid) {\n this.formSubmit.emit(this.createCompleteData());\n }\n this.formGroup.markAsPristine();\n }\n\n clear() {\n this.formClear.emit();\n }\n\n private initializeFormGroup() {\n this.formGroup = this.createFormGroup();\n this.valueInitialization = true;\n this.formGroup.patchValue(this.fromModel(this.data), {\n emitEvent: false,\n onlySelf: true,\n });\n\n this.formGroup.markAsPristine();\n this.initValueChanges();\n this.initStatusChanges();\n this.valueInitialization = false;\n }\n\n private initValueChanges() {\n this.formGroup.valueChanges\n .pipe(\n takeUntil(this.formDestroyed$),\n filter(() => !this.valueInitialization),\n map((value) => {\n const change = this.toModel(value);\n this.recursiveObjectAttributesTransformation(change);\n const updatedData = this.applyChanges(\n cloneDeep(this.data),\n cloneDeep(change)\n );\n return updatedData;\n })\n )\n .subscribe((updatedData) => {\n this.dataChange.emit(updatedData);\n });\n }\n\n private initStatusChanges() {\n this.formGroup.statusChanges\n .pipe(takeUntil(this.formDestroyed$))\n .subscribe(() => {\n if (!this.valueInitialization) {\n this.createAndEmitIfFormStateChanged();\n }\n });\n\n this.createAndEmitIfFormStateChanged();\n }\n\n private createAndEmitIfFormStateChanged() {\n const formState: FormState = {\n valid: !this.formGroup.invalid,\n dirty: this.formGroup.dirty,\n };\n\n if (!isFormStateEqual(formState, this.lastState)) {\n this.lastState = formState;\n this.statusChange.emit(formState);\n }\n }\n\n protected applyChanges(data: T, changes: Partial<T>): T {\n return Object.assign(data || ({} as T), changes);\n }\n\n protected toModel(data: T): Partial<T> {\n return data || {};\n }\n\n protected fromModel(data: T): T {\n return { ...(data || {}) } as T;\n }\n\n private recursiveObjectAttributesTransformation(obj: any): void {\n this.recursiveObjectAttributesTraversal(\n obj,\n this.transformEmptyStringToNullStringFn\n );\n }\n\n private recursiveObjectAttributesTraversal(\n obj: any,\n transformationFn: (obj: any, key: string) => void\n ) {\n if (\n obj === null ||\n transformationFn === null ||\n typeof transformationFn !== 'function'\n ) {\n return;\n }\n\n const traverse = (obj: any) => {\n for (const key in obj) {\n // eslint-disable-next-line no-prototype-builtins\n if (obj.hasOwnProperty(key)) {\n transformationFn(obj, key);\n\n if (typeof obj[key] === 'object') {\n traverse(obj[key]);\n }\n }\n }\n };\n\n traverse(obj);\n }\n\n private transformEmptyStringToNullStringFn(obj: any, key: string) {\n // if empty string - transformation to null string\n if (typeof obj[key] === 'string' && obj[key] === '') {\n try {\n obj[key] = null;\n } catch (error) {\n console.error(`Cannot modify ${key}: ${error}`)\n }\n }\n }\n}\n","import { Directive, OnDestroy } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Directive()\nexport abstract class UnsubscribeComponent implements OnDestroy {\n destroyed$ = new Subject<void>();\n\n ngOnDestroy() {\n this.destroyed$.next();\n this.destroyed$.complete();\n }\n}\n","import {\n Directive,\n AfterViewInit,\n inject,\n Input,\n OnInit,\n ChangeDetectorRef,\n OnDestroy,\n} from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { createFeatureSelector, createSelector, Store } from '@ngrx/store';\nimport {\n BackendValidationError,\n createInitDetailAction,\n createInitNewDetailAction,\n createResetStateAction,\n createUpdateDetailAction,\n createUpdateDetailSetErrorsAction,\n createUpdateFormStateAction,\n DetailState,\n} from '@verisoft/store';\nimport { takeUntil } from 'rxjs';\nimport { UnsubscribeComponent } from '../../unsubscribe.component';\nimport { BaseFormDirective } from '../base-form.component';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[v-useDetailStore]',\n exportAs: 'useDetailStore',\n standalone: true,\n})\nexport class DetailStoreDirective\n extends UnsubscribeComponent\n implements OnInit, AfterViewInit, OnDestroy\n{\n @Input({ required: true }) form!: BaseFormDirective<any>;\n\n @Input({ required: true }) detailsRepository!: string;\n\n @Input() autoBind = true;\n\n @Input() detailId!: string | number | undefined;\n\n @Input({ required: true }) ngrxFeatureKey!: string;\n\n @Input() destroyForm = true;\n\n @Input() readonly = false;\n\n @Input() readonlyControlNames: string[] = [];\n\n store = inject(Store);\n cdr = inject(ChangeDetectorRef);\n route = inject(ActivatedRoute);\n\n private itemCache: any = null;\n private loaded!: boolean;\n\n ngOnInit(): void {\n if (!this.loaded) {\n this.listenFormState();\n }\n this.listenFormChange();\n this.listenFormStatusChange();\n }\n\n ngAfterViewInit(): void {\n if (this.autoBind && !this.loaded) {\n this.initForm();\n }\n }\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n if (this.destroyForm) {\n this.store.dispatch(createResetStateAction(this.detailsRepository)());\n }\n }\n\n private initForm() {\n if (this.detailId === 'create') {\n this.store.dispatch(createInitNewDetailAction(this.detailsRepository)());\n } else {\n this.store.dispatch(\n createInitDetailAction(this.detailsRepository)({ obj: this.detailId })\n );\n }\n\n if (this.readonly) {\n this.form.formGroup.disable();\n return;\n }\n\n this.readonlyControlNames.forEach(x => {\n this.form.formGroup.get(x)?.disable();\n });\n }\n\n private listenFormState() {\n const selectIncomeData = createSelector(\n createFeatureSelector<any>(this.ngrxFeatureKey),\n (state: any) => state?.[this.detailsRepository] as DetailState<any>\n );\n this.store\n .select(selectIncomeData)\n .pipe(takeUntil(this.destroyed$))\n .subscribe(\n (\n { item, loaded, backendValidationErrors } = {\n item: undefined,\n loaded: false,\n saveItemState: { saveInProgress: false },\n backendValidationErrors: []\n }\n ) => {\n if (item\n && ((item.validationErrors || item.validationWarnings) && !this.form.formGroup.dirty)\n || backendValidationErrors.length\n ) {\n this.handleValidation(\n 'propertyName',\n item.validationWarnings || [],\n 'validationWarning',\n 'warningMessage'\n );\n this.handleValidation(\n 'propertyName',\n item.validationErrors || [],\n 'validationError',\n 'errorMessage'\n );\n\n if (this.itemCache && this.isStateChanged(item) && backendValidationErrors.length) {\n backendValidationErrors = this.dispatchErrors(item, backendValidationErrors);\n }\n\n this.handleBackendValidation(backendValidationErrors);\n this.cdr.markForCheck();\n }\n\n this.itemCache = item;\n\n this.loaded = loaded;\n this.cdr.detectChanges();\n }\n );\n }\n\n private listenFormChange() {\n this.form.dataChange.pipe(takeUntil(this.destroyed$)).subscribe((item) => {\n this.store.dispatch(\n createUpdateDetailAction(this.detailsRepository)({ item })\n );\n });\n }\n\n private listenFormStatusChange() {\n this.form.statusChange\n .pipe(takeUntil(this.destroyed$))\n .subscribe((formState) => {\n this.store.dispatch(\n createUpdateFormStateAction(this.detailsRepository)({ formState })\n );\n });\n }\n\n private handleValidation = (\n controlName: string,\n errors: any[],\n errorKey: string,\n messageKey: string\n ) => {\n if (errors.length > 0) return;\n errors.forEach((error: any) => {\n const control = this.form.formGroup.get(error[controlName]);\n if (control) {\n control.disabled\n ? control.disable({ emitEvent: false, onlySelf: true })\n : control.enable({ emitEvent: false, onlySelf: true });\n control.setErrors(\n { [errorKey]: error[messageKey] },\n { emitEvent: true }\n );\n control.markAsDirty();\n }\n });\n };\n\n private handleBackendValidation(errors: BackendValidationError[]) {\n errors.forEach(({ parameters, code }: BackendValidationError) => {\n const control = this.form.formGroup.get(this.normalizePropertyNames(parameters));\n if (!control) return;\n\n control[control.disabled ? \"disable\" : \"enable\"]({ emitEvent: false, onlySelf: true });\n control.setErrors({ \"validationError\": code }, { emitEvent: true });\n control.markAsDirty();\n });\n }\n\n private dispatchErrors(item: any, errors: BackendValidationError[]): BackendValidationError[] {\n const error = errors.filter((e: BackendValidationError) => {\n return this.itemCache[this.normalizePropertyNames(e.parameters)] === item[this.normalizePropertyNames(e.parameters)];\n });\n\n this.store.dispatch(\n createUpdateDetailSetErrorsAction(this.detailsRepository)({ error })\n );\n\n return error;\n }\n\n private normalizePropertyNames(input: string): string {\n return String(input[0]).toLocaleLowerCase() + String(input).slice(1);\n }\n\n private isStateChanged(item: any): boolean {\n return item !== this.itemCache;\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { ActivatedRoute } from \"@angular/router\";\nimport { MenuItem } from '../side-menu';\n\nexport const BREADCRUMB_COMPONENT_TOKEN = new InjectionToken<BreadcrumbCore>(\n 'BreadcrumbComponentToken'\n);\n\nexport interface BreadcrumbCore {\n items: MenuItem[];\n homeRoute: string;\n useHomeRoute: boolean;\n}\n\nexport interface Breadcrumb {\n label: string;\n routerLink?: string;\n url?: string;\n active?: boolean;\n activatedRoute?: ActivatedRoute;\n}\n","import { EventEmitter, Injectable, Output } from '@angular/core';\nimport { Breadcrumb } from './breadcrumb.model';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class BreadcrumbService {\n @Output() routeChange: EventEmitter<Breadcrumb> = new EventEmitter();\n}\n","import {\n ChangeDetectorRef,\n Directive,\n Input,\n inject,\n OnInit,\n} from '@angular/core';\nimport { ActivatedRoute, NavigationEnd, Router } from '@angular/router';\nimport { filter, takeUntil } from 'rxjs';\nimport { MenuItem } from '../side-menu';\nimport { UnsubscribeComponent } from '../unsubscribe.component';\nimport { BreadcrumbCore } from './breadcrumb.model';\nimport { BreadcrumbService } from './breadcrumb.service';\n\n@Directive({\n \n})\nexport class BreadcrumbCoreComponent\n extends UnsubscribeComponent\n implements BreadcrumbCore, OnInit\n{\n @Input() items: MenuItem[] = [];\n @Input() homeRoute = '/';\n @Input() useHomeRoute = false;\n\n static readonly ROUTE_DATA_BREADCRUMB = 'breadcrumb';\n static readonly ROUTE_DATA_BREADCRUMB_URL = 'breadcrumb_url';\n static readonly ROUTE_DATA_NO_BREADCRUMB_ROUTE = 'breadcrumb_no_route';\n static readonly BREADCRUMB_HIDE = 'breadcrumb_hide';\n readonly home = { icon: 'pi pi-home', routerLink: this.homeRoute };\n\n router = inject(Router);\n activatedRoute = inject(ActivatedRoute);\n breadcrumbService = inject(BreadcrumbService);\n cdr = inject(ChangeDetectorRef);\n\n ngOnInit(): void {\n this.initBreadcrumbsCreation();\n this.initRouteChangeListen();\n }\n\n private initBreadcrumbsCreation() {\n this.router.events\n .pipe(\n filter((event) => event instanceof NavigationEnd),\n takeUntil(this.destroyed$)\n )\n .subscribe(\n () => (this.items = this.createBreadcrumbs(this.activatedRoute.root))\n );\n }\n\n private initRouteChangeListen() {\n this.breadcrumbService.routeChange\n .pipe(\n filter((x) => x.label !== 'Undefined'),\n takeUntil(this.destroyed$)\n )\n .subscribe((x) => {\n this.items = [\n ...this.items,\n {\n label: x.label,\n routerLink: x.routerLink,\n url: x.url,\n class: 'breadcrumb',\n },\n ];\n this.cdr.detectChanges();\n });\n }\n\n private createBreadcrumbs(\n route: ActivatedRoute,\n routerLink = '',\n breadcrumbs: MenuItem[] = []\n ): any {\n const children: ActivatedRoute[] = route.children;\n\n if (children.length === 0) {\n return breadcrumbs;\n }\n\n for (const child of children) {\n const routeURL: string = child.snapshot.url\n .map((segment) => segment.path)\n .join('/');\n\n if (!child.snapshot.data[BreadcrumbCoreComponent.BREADCRUMB_HIDE]) {\n if (BreadcrumbCoreComponent.ROUTE_DATA_BREADCRUMB_URL !== undefined) {\n const route =\n child.snapshot.data[BreadcrumbCoreComponent.ROUTE_DATA_BREADCRUMB_URL];\n routerLink += `/${route}`;\n }\n\n if (!BreadcrumbCoreComponent.ROUTE_DATA_BREADCRUMB_URL && routeURL !== '') {\n routerLink += `/${routeURL}`;\n }\n\n const label = child.snapshot.data[BreadcrumbCoreComponent.ROUTE_DATA_BREADCRUMB];\n if (\n label &&\n BreadcrumbCoreComponent.ROUTE_DATA_NO_BREADCRUMB_ROUTE &&\n child.snapshot.data[\n BreadcrumbCoreComponent.ROUTE_DATA_NO_BREADCRUMB_ROUTE\n ]\n ) {\n breadcrumbs.push({ label, routerLink: undefined });\n } else if (label && child.snapshot.routeConfig?.path !== '') {\n breadcrumbs.push({ label, routerLink: routerLink });\n }\n }\n\n return this.createBreadcrumbs(child, routerLink, breadcrumbs);\n }\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { Params } from '@angular/router';\nimport { ControlSeverityType, FieldSizeType, IconPositionType } from '../../common';\n\nexport const BUTTON_COMPONENT_TOKEN = new InjectionToken<ButtonCore>(\n 'ButtonComponentToken'\n);\n\nexport interface ButtonCore {\n label?: string;\n icon?: string;\n badge?: string;\n iconPos: IconPositionType;\n rounded: boolean;\n outlined: boolean;\n raised: boolean;\n severity?: ControlSeverityType;\n routerLink: any[];\n size: FieldSizeType | undefined;\n queryParams?: Params;\n}\n","import { InjectionToken, InputSignal } from \"@angular/core\";\r\nimport { MenuKeyboardNavigationInput } from \"../../accessibility\";\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 keyboardNavigation?: InputSignal<MenuKeyboardNavigationInput>;\r\n}","import { InjectionToken } from '@angular/core';\nimport { BaseFormCore } from '../base-form';\n\nexport const CALENDAR_COMPONENT_TOKEN = new InjectionToken<CalendarCore>(\n 'CalendarComponentToken'\n);\n\nexport interface CalendarCore extends BaseFormCore {\n maxDate: Date;\n icon: string;\n minDate: Date;\n header: string;\n footer: string;\n floatLabel: string | undefined;\n selectionMode: \"single\" | \"multiple\" | \"range\" | undefined;\n}","import { InjectionToken, InputSignal } from '@angular/core';\nimport { BaseFormCore } from '../base-form';\n\nexport const CHECKBOX_COMPONENT_TOKEN = new InjectionToken<CheckboxCore>(\n 'CheckboxComponentToken'\n);\n\nexport interface CheckboxCore extends BaseFormCore {\n indeterminate: InputSignal<boolean>;\n}\n","import { InjectionToken, Type } from '@angular/core';\nimport { SafeHtml } from '@angular/platform-browser';\nimport { ControlSeverityType } from '../../common';\n\nexport const CONFIRM_DIALOG_COMPONENT_TOKEN =\n new InjectionToken<ConfirmDialogCore>('ConfirmDialogComponentToken');\n\nexport type ConfirmDialogCore = object;\n\nexport interface DialogData {\n title?: string;\n headerIcon?: string;\n severity?: ControlSeverityType;\n showCancelButton?: boolean;\n buttonOrder?: 'confirm-cancel' | 'cancel-confirm';\n confirmButtonText?: string;\n confirmButtonDisabled?: boolean;\n confirmButtonFn?: () => void;\n cancelButtonFn?: () => void;\n cancelButtonText?: string;\n innerHTML?: string | SafeHtml;\n data?: unknown;\n componentType?: Type<unknown>;\n closable?: boolean;\n width?: string;\n height?: string;\n}\n\nexport interface ExtendedDialogData<TInputs = unknown, TOutputs = unknown>\n extends DialogData {\n data?: TInputs & TOutputs;\n}\n","import { InjectionToken } from '@angular/core';\nimport { DataSourceComponentModel } from '../../common';\nimport { BaseFormCore } from '../base-form';\n\nexport const DROPDOWN_COMPONENT_TOKEN = new InjectionToken<DropdownCore<any>>(\n 'DropdownComponentToken'\n);\n\nexport interface DropdownCore<T> extends DataSourceComponentModel<T>, BaseFormCore {\n dropdownIcon?: string;\n floatLabel?: string;\n editable: boolean;\n forceMinWidth: boolean;\n showFilter: boolean;\n localSearch: boolean;\n}\n","import { InjectionToken } from '@angular/core';\r\nimport { ControlValueAccessor } from '@angular/forms';\r\nimport { GenericFieldDefinition } from '../generic-form';\r\n\r\nexport const FILTER_COMPONENT_TOKEN = new InjectionToken<FilterCore>(\r\n 'FilterComponentToken'\r\n);\r\n\r\nexport interface FilterCore extends ControlValueAccessor {\r\n fields: GenericFieldDefinition[];\r\n title?: string;\r\n fulltextFieldName: string;\r\n showFulltext: boolean;\r\n showFilters: boolean;\r\n autoBind: boolean;\r\n debounceTime?: number;\r\n filterDetailTitle?: string;\r\n filterDetailShowFulltext: boolean;\r\n applyButtonLabel?: string;\r\n clearButtonLabel?: string;\r\n}\r\n\r\nimport { FormGroup } from '@angular/forms';\r\n\r\nexport function getFilledControlCount(formGroup: FormGroup): number {\r\n let count = 0;\r\n Object.keys(formGroup.controls).forEach((key) => {\r\n const control = formGroup.get(key);\r\n if (control?.value) {\r\n if (typeof control.value === 'boolean') {\r\n count++;\r\n }\r\n if (typeof control.value === 'string' && control.value.trim() !== '') {\r\n count++;\r\n }\r\n }\r\n });\r\n\r\n return count;\r\n}","import { InjectionToken } from '@angular/core';\nimport { NgControl } from '@angular/forms';\n\nexport const FORM_FIELD_COMPONENT_TOKEN = new InjectionToken<FormFieldCore>(\n 'FormFieldComponentToken'\n);\n\nexport interface FormFieldCore {\n ngControl?: NgControl;\n label?: string;\n tooltip?: string;\n required: boolean;\n testId?: string;\n display: 'flex' | 'block';\n}","import { InjectionToken } from '@angular/core';\nimport { DataSourceComponentModel } from '../../common';\nimport { BaseFormCore } from '../base-form';\n\nexport const GENERIC_FIELD_COMPONENT_TOKEN = new InjectionToken<GenericFieldCore<any>>(\n 'GenericFieldComponentToken'\n);\n\nexport interface GenericFieldCore<T> extends DataSourceComponentModel<T>, BaseFormCore {\n}\n","import { ValidatorFn } from '@angular/forms';\r\nimport { DatasourceType } from '@verisoft/core';\r\nimport { FieldSizeType } from '../../common';\r\n\r\nexport interface GenericFieldDefinition {\r\n validator?: ValidatorFn[];\r\n type?: GenericFieldTypeType;\r\n label?: string;\r\n floatLabel?: boolean;\r\n name: string;\r\n optionLabel?: string;\r\n optionValue?: string;\r\n options?: unknown[];\r\n value?: unknown;\r\n testId?: string;\r\n size?: FieldSizeType;\r\n readonly?: boolean;\r\n datasource?: DatasourceType<any>;\r\n filterField?: string;\r\n showFilter?: boolean;\r\n localSearch?: boolean;\r\n}\r\n\r\nexport enum GenericFieldType {\r\n 'dropdown' = 'dropdown',\r\n 'checkbox' = 'checkbox',\r\n 'simplecheckbox' = 'simplecheckbox',\r\n 'calendar' = 'calendar',\r\n 'multiselect' = 'multiselect',\r\n 'text' = 'text',\r\n}\r\n\r\nexport type GenericFieldTypeType = keyof typeof GenericFieldType;\r\n","import { InjectionToken } from '@angular/core';\nimport { MenuItem } from '../side-menu/side-menu.model';\n\nexport const HEADER_COMPONENT_TOKEN = new InjectionToken<HeaderCore>(\n 'HeaderComponentToken'\n);\n\nexport const SETTINGS_MENU = new InjectionToken<MenuItem[]>(\n 'SETTINGS_MENU'\n);\n\nexport interface HeaderCore {\n title: string;\n userName: string;\n logoUrl: string;\n userRole: any | any[] | undefined;\n fixed: boolean;\n userAvatar: string;\n menuRef: HTMLDivElement;\n}\n","import { InjectionToken } from '@angular/core';\nimport { IconPositionType } from '../../common';\nimport { BaseFormCore } from '../base-form';\n\nexport const INPUT_GROUP_COMPONENT_TOKEN = new InjectionToken<InputGroupCore>(\n 'HeaderComponentToken'\n);\n\nexport interface InputGroupItem {\n icon?: string;\n text?: string;\n position: IconPositionType;\n}\n\nexport interface InputGroupCore extends BaseFormCore {\n items: InputGroupItem[];\n}","import { InjectionToken } from '@angular/core';\n\nexport const LOADER_COMPONENT_TOKEN = new InjectionToken<LoaderCore>(\n 'LoaderComponentToken'\n);\n\nexport type LoaderCore = object\n","import { InjectionToken } from '@angular/core';\nimport { DataSourceComponentModel } from '../../common';\nimport { BaseFormCore } from '../base-form';\n\nexport const MULTISELECT_COMPONENT_TOKEN = new InjectionToken<MultiselectCore<any>>(\n 'MultiselectComponentToken'\n);\n\nexport interface MultiselectCore<T> extends DataSourceComponentModel<T>, BaseFormCore {\n dropdownIcon?: string;\n floatLabel?: string;\n editable: boolean;\n}","import { InjectionToken } from '@angular/core';\nimport { BaseFormCore } from '../base-form';\n\nexport const NUMBER_INPUT_COMPONENT_TOKEN = new InjectionToken<NumberInputCore>(\n 'NumberInputComponentToken'\n);\n\nexport interface NumberInputCore extends BaseFormCore {\n decimals: number;\n currency: string;\n min: number;\n max: number;\n step: number | undefined;\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 disabled?: boolean;\n type?: string;\n children?: MenuItem[];\n routerLink?: any;\n class?: string;\n // eslint-disable-next-line @typescript-eslint/ban-types\n command?: Function;\n}\n\ntype ExtendableType = {\n [key: string]:\n | string\n | number\n | boolean\n | string[]\n | number[]\n | boolean[]\n | undefined;\n};\n\nexport interface MenuItemData extends ExtendableType {\n roles?: string[];\n permissions?: string[];\n}\n\nexport interface SideMenuModuleConfig {\n items?: MenuItem[];\n}\n\nexport interface SideMenuCore {\n items: MenuItem[];\n logoUrl: string;\n userName: string;\n userRole: any | any[] | undefined;\n}\n","import { inject, Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { MenuItem, SIDE_MENU_STATE_TOKEN } from '../side-menu.model';\n\n@Injectable({ providedIn: 'root' })\nexport class SideMenuService {\n private _menuItems = new BehaviorSubject<MenuItem[]>([]);\n private stateToken = inject(SIDE_MENU_STATE_TOKEN);\n\n menuItems$: Observable<MenuItem[]> = this._menuItems.asObservable();\n menuMinimalized = false;\n\n setMenu(items: MenuItem[]): void {\n this.resetSidemenuState(items);\n this._menuItems.next(items);\n }\n\n saveMinimalizedState(minimalized: boolean): void {\n this.stateToken.minimalized = minimalized;\n localStorage.setItem('SideMenuStateToken', JSON.stringify(this.stateToken));\n }\n\n saveExpandedState(item: MenuItem): void {\n const expanded = this.stateToken.expanded?.find(\n (i: string) => i === item.label\n );\n\n if (!expanded) {\n this.stateToken.expanded?.push(item.label!);\n localStorage.setItem(\n 'SideMenuStateToken',\n JSON.stringify(this.stateToken)\n );\n return;\n }\n\n this.stateToken.expanded = this.stateToken.expanded?.filter(\n (i: string) => i !== item.label\n );\n\n localStorage.setItem('SideMenuStateToken', JSON.stringify(this.stateToken));\n }\n\n private resetSidemenuState(items: MenuItem[]) {\n if (typeof this.stateToken === 'string') {\n this.stateToken = JSON.parse(this.stateToken);\n }\n\n this.menuMinimalized = this.stateToken.minimalized;\n const localStorageValue = this.stateToken.expanded;\n\n if (!localStorageValue) return;\n if (items) {\n for (let index = 0; index < items.length; index++) {\n const element = items[index];\n element.expanded = !!localStorageValue.find(\n (i: string) => i === element.label\n );\n }\n }\n }\n}\n","import { Injectable, Optional, Inject } from '@angular/core';\nimport { MENU_TOKEN, MenuItem } from '../side-menu.model';\nimport { SideMenuService } from './side-menu.service';\n\n@Injectable()\nexport class SideMenuProviderService {\n constructor(\n @Optional() @Inject(MENU_TOKEN) readonly menu: MenuItem[] = [],\n readonly menuService: SideMenuService\n ) {\n menuService.setMenu(menu);\n }\n}\n","import { AfterViewInit, ChangeDetectorRef, Directive, inject } from \"@angular/core\";\nimport { takeUntil } from \"rxjs\";\nimport { UnsubscribeComponent } from \"../../unsubscribe.component\";\nimport { SideMenuService } from \"../services/side-menu.service\";\nimport { SIDE_MENU_COMPONENT_TOKEN } from \"../side-menu.model\";\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'v-side-menu[useMenuService]',\n exportAs: 'useMenuService',\n standalone: true,\n})\nexport class MenuServiceDirective\n extends UnsubscribeComponent\n implements AfterViewInit\n{\n private readonly menuService = inject(SideMenuService);\n private readonly cdr = inject(ChangeDetectorRef);\n private readonly sideMenu = inject(SIDE_MENU_COMPONENT_TOKEN);\n\n ngAfterViewInit() {\n this.menuService.menuItems$.pipe(takeUntil(this.destroyed$)).subscribe((items) => {\n\n if (this.sideMenu) {\n this.sideMenu.items = items;\n }\n });\n\n this.cdr.detectChanges();\n }\n}","import { InjectionToken } from '@angular/core';\nimport { BaseFormCore } from '../base-form';\n\nexport const SLIDER_COMPONENT_TOKEN = new InjectionToken<SliderCore>(\n 'SliderComponentToken'\n);\n\nexport interface SliderCore extends BaseFormCore {\n step: number;\n min: number;\n max: number;\n range: boolean;\n}","import { InjectionToken } from '@angular/core';\n\nexport const SNACKBAR_COMPONENT_TOKEN = new InjectionToken<SnackbarCore>(\n 'SnackbarComponentToken'\n);\n\nexport type SnackbarCore = object\n","import { EventEmitter, InjectionToken, TemplateRef } from \"@angular/core\";\nimport { FieldSizeType, LayoutTypeType } from \"../../common\";\n\nexport const STEPPER_COMPONENT_TOKEN = new InjectionToken<StepperCore>(\n 'StepperComponentToken'\n);\n\nexport interface StepperItem {\n header: string;\n template?: TemplateRef<any>;\n annotation?: string;\n prefix?: string;\n}\n\nexport interface StepperCore {\n items: StepperItem[]\n layout: LayoutTypeType\n activeIndexChange: EventEmitter<number>\n size: FieldSizeType | undefined;\n icon: string;\n prefix: string;\n annotation: string;\n label: string;\n}","import { InjectionToken } from \"@angular/core\";\nimport { BaseFormCore } from \"../base-form\";\n\nexport const SWITCH_COMPONENT_TOKEN = new InjectionToken<SwitchCore>(\n 'SwitchComponentToken'\n);\n\nexport type SwitchCore = BaseFormCore\n","import { EventEmitter, InjectionToken, TemplateRef } from \"@angular/core\";\n\nexport const TAB_VIEW_COMPONENT_TOKEN = new InjectionToken<TabViewCore>(\n 'TabVIewComponentToken'\n);\n\nexport interface TabViewItemCore {\n title: string;\n url?: string;\n icon?: string;\n disabled?: boolean;\n content?: string;\n contentTemplate?: TemplateRef<unknown>; \n}\n\nexport interface TabViewCore {\n items: TabViewItemCore[];\n useRouting: boolean;\n activeIndex: number;\n activeIndexChange: EventEmitter<number>;\n url?: string;\n}","import { EventEmitter, InjectionToken, TemplateRef } from '@angular/core';\nimport { Params } from '@angular/router';\nimport { LazyLoadEvent, Sort, SortDirectionType } from '@verisoft/core';\nimport { v4 } from 'uuid';\nimport { FieldAlignType } from '../../common';\n\nexport const TABLE_COMPONENT_TOKEN = new InjectionToken<TableCore<any>>(\n 'TabVIewComponentToken'\n);\n\nexport const TABLE_COLUMN_PROVIDER = new InjectionToken(\n 'TABLE_COLUMN_PROVIDER'\n);\n\nexport enum TableSelectionMode {\n single = 'single',\n multiple = 'multiple',\n}\n\nexport enum TableButtonSeverity {\n success = 'success',\n info = 'info',\n warning = 'warning',\n danger = 'danger',\n help = 'help',\n primary = 'primary',\n secondary = 'secondary',\n contrast = 'contrast',\n}\n\nexport enum ColumnVisibility {\n visible = 'visible',\n hidden = 'hidden',\n default = 'default',\n}\n\nexport type TableSelectionModeType = keyof typeof TableSelectionMode;\nexport type TableButtonSeverityType = keyof typeof TableButtonSeverity;\nexport type ColumnVisibilityType = keyof typeof ColumnVisibility;\n\nexport interface TableCore<T> {\n sorters: Sort[];\n columns: ColumnDefinition<T>[];\n data: T[];\n total: number;\n filter: Partial<T> | undefined;\n loading: boolean;\n scrollable: boolean;\n pageSize: number;\n currentPage: number;\n showPaginator: boolean;\n sortMultiple: boolean;\n lazy: boolean;\n selection: T[];\n selectionMode: TableSelectionModeType | undefined;\n showPageSizePicker: boolean;\n entityKey: string | undefined;\n selectionChange: EventEmitter<T[]>;\n lazyLoad: EventEmitter<LazyLoadEvent>;\n maximumColumnLength: number;\n disableCustomClicks: boolean;\n}\n\nexport interface TableSignal {\n name: string,\n symbol: symbol\n}\n\nexport interface ActionColumnsDefinition<T> {\n severity?: TableButtonSeverity;\n title?: string;\n icon?: string;\n tooltip?: string;\n rounded?: boolean;\n outlined?: boolean;\n raised?: boolean;\n badge?: string;\n visible?: (row: T) => boolean;\n routerLink?: (row: T) => string;\n queryParams?: Params;\n disabled?: boolean | ((row: T) => boolean);\n onClick?: (row: T, event?: MouseEvent) => void;\n}\n\nexport interface ColumnProvider<T> {\n getDefinition(): ColumnDefinition<T>;\n index: number;\n}\n\nexport interface ColumnDefinition<T, _KEY = keyof T> {\n id: string;\n value?: (row: T, index?: number) => string;\n headerName?: ((columnId: string, index?: number) => string) | string;\n icon?: string | ((row?: T | undefined) => string);\n type?: string;\n sortable?: boolean;\n format?: (row: T) => string\n routerLink?: (row: T) => string | string;\n queryParams?: Params;\n columnClass?: string;\n template?: TemplateRef<{ $implicit: T }>;\n actions?: ActionColumnsDefinition<T>[];\n textAlign?: FieldAlignType;\n width?: string | number;\n forceVisibility?: ColumnVisibilityType;\n visible?: boolean;\n}\n\nexport function LinkRenderer<T>(text: string, href: string) {\n return (row: T, index: number | undefined) => {\n return '<a href=\"' + href + '\">' + text + '</a>';\n };\n}\n\nexport function routerRenderer<T>(link: string, text: string) {\n return (row: T, index?: number | undefined) => {\n return { text: text, link: link };\n };\n}\n\nexport function Renderer<T>(fnc: (row: T) => string) {\n return (row: T) => {\n return fnc(row);\n };\n}\n\nexport class ColumnModel<T> {\n sortDirection: SortDirectionType | undefined = undefined;\n columnClass?: string;\n queryParams?: Params;\n routerLink?: (row: T) => string | string;\n valueGetter!: (row: T, index: number) => string;\n headerGetter!: (columnId: string, index: number) => string | string;\n template?: TemplateRef<{ $implicit: T }>;\n actions?: ActionColumnsDefinition<T>[];\n sortable?: boolean;\n id: string;\n // eslint-disable-next-line @typescript-eslint/ban-types\n format!: Function;\n textAlign?: FieldAlignType;\n width: string | undefined;\n forceVisibility: ColumnVisibilityType = ColumnVisibility.default;\n visible = true;\n\n constructor(readonly configuration: ColumnDefinition<T>) {\n this.id = this.configuration.id;\n\n if (this.configuration.format) {\n this.format = this.configuration.format;\n }\n\n if (this.configuration.value) {\n this.valueGetter = (row, index) => {\n const value = this.configuration.value?.(row, index) ?? '-';\n return this.format ? this.format(value, row) : value;\n };\n } else {\n this.valueGetter = (row) => {\n const value = ((row as { [key: string]: string })?.[this.configuration.id]) ?? '';\n return this.format ? this.format(value, row) : value;\n };\n }\n\n if (this.configuration.actions) {\n this.actions = this.configuration.actions;\n }\n\n if (this.configuration.routerLink) {\n this.routerLink = this.configuration.routerLink;\n }\n\n if (this.configuration.columnClass) {\n this.columnClass = this.configuration.columnClass;\n }\n\n if (this.configuration.template) {\n this.template = this.configuration.template;\n }\n\n if (this.configuration.headerName) {\n this.headerGetter = (\n typeof this.configuration.headerName === 'string'\n ? () => this.configuration.headerName ?? ''\n : (columnId: string, index: number) =>\n (<(columnId: string, index?: number) => string>(\n this.configuration.headerName\n ))?.(columnId, index) ?? this.id\n ) as (columnId: string, index: number) => string;\n } else {\n this.headerGetter = () => \"\";\n }\n\n if (this.configuration.queryParams) {\n this.queryParams = this.configuration.queryParams;\n }\n\n if (this.routerLink) {\n this.columnClass += ' ' + 'link';\n }\n\n if (this.configuration.sortable !== undefined) {\n this.sortable = this.configuration.sortable;\n } else {\n this.sortable = true;\n }\n\n if (this.configuration.width){\n this.width = typeof this.configuration.width === \"number\" ? this.configuration.width + 'px' : this.configuration.width;\n }\n\n if (this.configuration.textAlign !== undefined) {\n this.textAlign = this.configuration.textAlign;\n }\n\n if (this.configuration.forceVisibility) {\n this.forceVisibility = this.configuration.forceVisibility;\n }\n\n if (this.configuration.visible !== undefined) {\n this.visible = this.configuration.visible;\n }\n }\n}\n\nexport class RowModel<T> {\n row: T;\n index?: number;\n id: number | string;\n selected: boolean;\n marked?: boolean;\n focused?: boolean;\n expanded: boolean;\n fnc?: void;\n customRoute: string | undefined;\n\n constructor(\n row: T,\n selected: boolean,\n expanded: boolean,\n marked?: boolean,\n index?: number,\n fnc?: void,\n customRoute?: string,\n entityKey?: string\n ) {\n this.row = row;\n this.id = (row as { [key: string]: string })['id'] ?? v4();\n this.index = index;\n this.selected = selected;\n this.expanded = expanded;\n this.marked = marked;\n this.fnc = fnc;\n this.customRoute = createCustomRoute<T>(row, entityKey, customRoute);\n }\n}\n\nfunction createCustomRoute<T>(row: T, entityKey?: string, customRoute?: string) {\n return customRoute && entityKey\n ? `${customRoute}/` + (row as { [key: string]: string })[entityKey]\n : undefined;\n}\n","import { ContentChild, Directive, Input, TemplateRef } from '@angular/core';\nimport { Params } from '@angular/router';\nimport { FieldAlign, FieldAlignType } from '../../common';\nimport { ColumnDefinition, ColumnProvider, ColumnVisibility, ColumnVisibilityType, TABLE_COLUMN_PROVIDER } from './table.models';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'v-table-column',\n standalone: true,\n providers: [\n {\n provide: TABLE_COLUMN_PROVIDER,\n useExisting: TableColumnDirective,\n multi: true,\n },\n ],\n})\nexport class TableColumnDirective<T> implements ColumnProvider<T> {\n @ContentChild(TemplateRef) template!:\n TemplateRef<{ $implicit: T }>;\n\n @Input() index = 0;\n\n @Input() id!: string;\n\n @Input() columnClass!: string;\n\n @Input() sortable!: boolean;\n\n @Input() routerLink!: (row: T) => string;\n\n @Input() queryParams!: Params;\n\n @Input() headerName!: ((column: string, index?: number) => string) | string;\n\n @Input() width: string | number | undefined;\n\n @Input() textAlign: FieldAlignType = FieldAlign.left;\n\n @Input() format!: (row: T) => string\n\n @Input() forceVisibility: ColumnVisibilityType = ColumnVisibility.default;\n\n @Input() visible = true;\n\n getDefinition(): ColumnDefinition<T> {\n return {\n id: this.id,\n columnClass: this.columnClass,\n template: this.template,\n headerName: this.headerName,\n routerLink: this.routerLink,\n queryParams: this.queryParams,\n sortable: this.sortable,\n width: this.width,\n format: this.format,\n textAlign: this.textAlign,\n forceVisibility: this.forceVisibility,\n visible: this.visible,\n };\n }\n}\n","import { ColumnDefinition } from \"./table.models\";\r\n\r\nexport class ColumnConfiguration<TEntity> {\r\n private column: Partial<ColumnDefinition<TEntity>> = {};\r\n \r\n constructor(private id: string | keyof TEntity) {\r\n this.column.id = id as string;\r\n }\r\n \r\n headerName(headerName: string | ((columnId: string, index?: number) => string)): this {\r\n this.column.headerName = headerName;\r\n return this;\r\n }\r\n \r\n sortable(sortable: boolean): this {\r\n this.column.sortable = sortable;\r\n return this;\r\n }\r\n \r\n columnClass(columnClass: string): this {\r\n this.column.columnClass = columnClass;\r\n return this;\r\n }\r\n \r\n valueFunction(value: (row: TEntity, index?: number) => string): this {\r\n this.column.value = value;\r\n return this;\r\n }\r\n \r\n type(type: string): this {\r\n this.column.type = type;\r\n return this;\r\n }\r\n \r\n build(): ColumnDefinition<TEntity> {\r\n return this.column as ColumnDefinition<TEntity>;\r\n }\r\n }","import { Injectable } from '@angular/core';\r\nimport { ColumnConfiguration } from './column-configuration';\r\nimport { ColumnDefinition } from './table.models';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class TableBuilder<TEntity> {\r\n private columns: ColumnDefinition<TEntity>[] = [];\r\n\r\n addColumn(\r\n id: string | keyof TEntity,\r\n config?: (v: ColumnConfiguration<TEntity>) => void\r\n ): TableBuilder<TEntity> {\r\n const columnConfig = new ColumnConfiguration<TEntity>(id);\r\n config?.(columnConfig);\r\n this.columns.push(columnConfig.build());\r\n return this;\r\n }\r\n\r\n addTextColumn(\r\n id: string | keyof TEntity,\r\n config?: (v: ColumnConfiguration<TEntity>) => void\r\n ): TableBuilder<TEntity> {\r\n return this.addColumn(id, (x) => {\r\n config?.(x);\r\n x.type('text');\r\n });\r\n }\r\n\r\n addNumberColumn(\r\n id: string | keyof TEntity,\r\n config?: (v: ColumnConfiguration<TEntity>) => void\r\n ): TableBuilder<TEntity> {\r\n return this.addColumn(id, (x) => {\r\n config?.(x);\r\n x.type('number').columnClass('text-end');\r\n });\r\n }\r\n\r\n addDateColumn(\r\n id: string | keyof TEntity,\r\n config?: (v: ColumnConfiguration<TEntity>) => void\r\n ): TableBuilder<TEntity> {\r\n return this.addColumn(id, (x) => {\r\n config?.(x);\r\n x.type('date').valueFunction((row) => covertFromDateToUserLocale(row, id as string));\r\n });\r\n }\r\n\r\n addBooleanColumn(\r\n id: string,\r\n config?: (v: ColumnConfiguration<TEntity>) => void\r\n ): TableBuilder<TEntity> {\r\n return this.addColumn(id, (x) => {\r\n config?.(x);\r\n x.type('boolean');\r\n });\r\n }\r\n\r\n addEnumColumn(\r\n id: string | keyof TEntity,\r\n config?: (v: ColumnConfiguration<TEntity>) => void\r\n ): TableBuilder<TEntity> {\r\n return this.addColumn(id, (x) => {\r\n config?.(x);\r\n x.type('enum');\r\n });\r\n }\r\n\r\n build(): ColumnDefinition<TEntity>[] {\r\n return this.columns;\r\n }\r\n}\r\n\r\nfunction covertFromDateToUserLocale<TEntity>(row: TEntity, id: string) {\r\n const value = (row as { [key: string]: undefined | string | Date })[id];\r\n if (value === undefined) {\r\n return '';\r\n }\r\n\r\n const locale = navigator.language;\r\n\r\n if (value instanceof Date) {\r\n return value.toLocaleDateString(locale);\r\n }\r\n\r\n if (typeof value === 'string' && !isNaN(Date.parse(value))) {\r\n return new Date(value).toLocaleDateString(locale);\r\n }\r\n\r\n return value;\r\n}\r\n","import { InjectionToken } from '@angular/core';\nimport { BaseFormDirectiveCore } from '../base-form';\n\nexport const TABLE_FILTER_COMPONENT_TOKEN = new InjectionToken<TableFilterCore<any>>(\n 'TableFilterComponentToken'\n);\n\nexport interface FilterDefinition {\n optionLabel: string;\n label: string;\n optionValue?: string;\n url?: string;\n filterType?: 'dropdown' | 'checkbox' | 'calendar' | 'multiselect';\n initialValue?: any;\n}\n\nexport interface TableFilterCore<T> extends BaseFormDirectiveCore<T> {\n filterDefinitions: FilterDefinition[];\n title: string;\n hideSearch?: boolean;\n debounceTime?: number;\n}\n","import { InjectionToken } from '@angular/core';\nimport { BaseFormCore } from '../base-form';\n\nexport const TEXTAREA_COMPONENT_TOKEN = new InjectionToken<TextareaCore>(\n 'TextareaComponentToken'\n);\n\nexport interface TextareaCore extends BaseFormCore {\n rows: number;\n cols: number;\n autoResize: boolean;\n floatLabel: string | undefined;\n}\n","import { InjectionToken } from '@angular/core';\nimport { FieldSizeType, FieldTypeType } from '../../common';\nimport { BaseFormCore } from '../base-form';\n\nexport const TEXTFIELD_COMPONENT_TOKEN = new InjectionToken<TextfieldCore>(\n 'TextfieldComponentToken'\n);\n\nexport interface TextfieldCore extends BaseFormCore {\n size: FieldSizeType | undefined;\n type: FieldTypeType;\n floatLabel: boolean;\n}","import { InjectionToken, Signal } from '@angular/core';\nimport { ControlSeverityType, FieldSizeType, PositionType } from '../../common';\n\nexport const TOOLTIP_COMPONENT_TOKEN = new InjectionToken<TooltipCore>(\n 'TooltipComponentToken'\n);\n\nexport interface TooltipCore {\n color: Signal<ControlSeverityType | undefined>;\n position: Signal<PositionType | undefined>;\n size: Signal<FieldSizeType | undefined>;\n tooltipText: Signal<string | undefined>;\n}","import { InjectionToken, InputSignal } from \"@angular/core\";\nimport { ControlSeverityType, FieldSizeType } from \"../../common\";\n\nexport const ICONS_COMPONENT_TOKEN = new InjectionToken<IconsCore>(\n 'IconsComponentToken'\n);\n\nexport type IconLibraryType = 'native' | 'bootstrap';\n\nexport interface IconsCore {\n library: InputSignal<IconLibraryType>;\n name: InputSignal<string>;\n size: InputSignal<FieldSizeType | undefined>;\n severity: InputSignal<ControlSeverityType | undefined>;\n class: InputSignal<string | undefined>;\n}","import { Component, input } from \"@angular/core\";\nimport { ControlSeverityType, FieldSizeType } from \"../../common\";\nimport { IconLibraryType, ICONS_COMPONENT_TOKEN, IconsCore } from \"./icons.model\";\n\n@Component({\n standalone: true,\n template: '',\n providers: [\n {\n provide: ICONS_COMPONENT_TOKEN,\n useExisting: IconsComponent\n }\n ]\n})\n\nexport abstract class IconsComponent implements IconsCore {\n library = input<IconLibraryType>('native');\n name = input.required<string>();\n size = input<FieldSizeType | undefined>();\n severity = input<ControlSeverityType | undefined>();\n class = input<string>();\n}","import { InjectionToken, InputSignal } from \"@angular/core\";\nimport { ControlSeverityType, FieldSizeType } from \"../../common\";\n\nexport const TAG_COMPONENT_TOKEN = new InjectionToken<TagCore>('TagComponentToken');\n\nexport type TagVariant = 'bold' | 'subtle';\n\nexport interface TagCore {\n label: InputSignal<string | undefined>;\n severity: InputSignal<ControlSeverityType | undefined>;\n variant: InputSignal<TagVariant>;\n size: InputSignal<FieldSizeType>;\n }","import { EventEmitter, InjectionToken } from '@angular/core';\nimport { DatasourceType } from '@verisoft/core';\nimport { GenericFieldDefinition, GenericFieldTypeType } from '../generic-form';\nimport { ColumnDefinition, TableSelectionModeType } from '../table';\n\n\nexport interface FeatureListPageConfig {\n title: string;\n datasource: string;\n tableName: string;\n showAdd?: boolean;\n showDownload?: boolean;\n showDelete?: boolean;\n}\n\nexport const FEATURE_LIST_PAGE_CONFIG_PROPERTY = 'feature_list_config';\n\nexport interface FeatureListColumnDefinition<T> extends ColumnDefinition<T> {\n filter?: boolean;\n type?: GenericFieldTypeType;\n filterOptions?: FeatureListColumnFilterOptions;\n}\n\nexport type FeatureListColumnFilterOptions = Omit<GenericFieldDefinition, 'type' | 'label' | 'name' | 'showFilter'>;\n\nexport const FEATURE_LIST_COLUMN_PROVIDER = new InjectionToken(\n 'FEATURE_LIST_COLUMN_PROVIDER'\n);\n\nexport const FEATURE_LIST_COMPONENT_TOKEN = new InjectionToken<FeatureListCore<any>>(\n 'FeatureListComponentToken'\n);\n\nexport interface FeatureListColumnProvider<T> {\n getDefinition: () => FeatureListColumnDefinition<T>;\n}\n\nexport interface FeatureListCore<T> {\n autoBind: boolean;\n title: string;\n columns: FeatureListColumnDefinition<T>[];\n filters: GenericFieldDefinition[];\n maxVisibleActions: number;\n tableName: string;\n ngrxFeatureKey?: string;\n maxVisibleMobileActions: number;\n showExtendedFilter: boolean;\n showDownload: boolean;\n showDelete: boolean;\n showAdd: boolean;\n canDownload: boolean;\n canDelete: boolean;\n canAdd: boolean;\n useRouterFilter: boolean;\n fulltextFieldName: string;\n showFulltext: boolean;\n filterDialogShowFulltext: boolean;\n applyButtonLabel: string;\n clearButtonLabel: string;\n filterDetailTitle: string;\n deleteConfirmMessage: string | undefined;\n autoDeleteEnabled: boolean;\n autoDownloadEnabled: boolean;\n downloadFileName: string;\n datasource: DatasourceType<T>;\n extraFilter?: Partial<T>;\n disableCustomClicks: boolean;\n maximumColumnLength: number;\n selectionMode: TableSelectionModeType | undefined;\n pageSize: number;\n showPaginator: boolean;\n addClick: EventEmitter<void>;\n downloadClick: EventEmitter<void>;\n deleteClick: EventEmitter<T[]>;\n selectionChange: EventEmitter<unknown>;\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { GenericFieldDefinition, GenericFieldType } from \"../generic-form\";\nimport { FeatureListColumnDefinition } from \"./feature-list-page.model\";\n\n@Pipe({\n name: 'featureListColumn',\n})\nexport class FeatureListFilterPipe<T> implements PipeTransform {\n transform(value: FeatureListColumnDefinition<T>[] | undefined): GenericFieldDefinition[] | undefined {\n if (!value){\n return undefined;\n }\n\n return value.filter(x => x.filter).map((x, index) => ({\n ...(x.filterOptions ?? {}),\n name: x.id,\n label: typeof x.headerName === 'function'? x.headerName(x.id, index) : x.headerName ?? '',\n type: x.type as GenericFieldType,\n }));\n }\n}","import { HttpClient } from '@angular/common/http';\nimport {\n ChangeDetectorRef,\n Directive,\n inject,\n Input,\n OnChanges,\n OnInit,\n SimpleChanges,\n} from '@angular/core';\nimport {\n BASE_URL_PATH,\n convertDatasource,\n DataSourceFunctionType,\n DatasourceType,\n DEFAULT_SEARCH_LIMIT,\n FilterEvent,\n LazyLoadEvent,\n normalizeRequest,\n Page,\n RequestParams,\n} from '@verisoft/core';\nimport {\n BehaviorSubject,\n catchError,\n debounceTime,\n filter,\n map,\n of,\n switchMap,\n takeUntil,\n tap,\n} from 'rxjs';\nimport {\n DataSourceComponentModel,\n DEFAULT_DEBOUNCE_TIME,\n ExtendedRequestType,\n setComponentProperties,\n setDataToArray,\n} from '../common';\nimport {\n DROPDOWN_COMPONENT_TOKEN,\n DropdownCore,\n GENERIC_FIELD_COMPONENT_TOKEN,\n GenericFieldCore,\n MULTISELECT_COMPONENT_TOKEN,\n MultiselectCore,\n UnsubscribeComponent,\n} from '../components';\n\n@Directive({\n selector:\n // eslint-disable-next-line @angular-eslint/directive-selector\n 'v-dropdown[useDatasource], v-multiselect[useDatasource], v-generic-field[useDatasource]',\n standalone: true,\n})\nexport class DatasourceDirective<T>\n extends UnsubscribeComponent\n implements OnChanges, OnInit\n{\n @Input() datasource!: DatasourceType<T>;\n\n @Input() autoBind = true;\n\n @Input() loadingText = '... loading ...';\n\n @Input() filterField: string | undefined = 'fulltext';\n\n @Input() transformFn?: (data: T) => unknown;\n\n @Input() extraFilter!: any;\n\n get activeComponent(): DataSourceComponentModel<T> {\n return (this.dropdownComponent ??\n this.multiSelectComponent ??\n this.genericField) as DataSourceComponentModel<T>;\n }\n\n private httpClient = inject(HttpClient);\n\n private baseUrl: string = inject(BASE_URL_PATH);\n\n private changeDetectorRef = inject(ChangeDetectorRef);\n\n private isAllDataLoaded = false;\n\n private parameters$ = new BehaviorSubject<Partial<ExtendedRequestType<T>>>({});\n\n private lastParameter = {};\n\n private dropdownComponent = inject<DropdownCore<T>>(\n DROPDOWN_COMPONENT_TOKEN,\n { optional: true }\n );\n\n private multiSelectComponent = inject<MultiselectCore<T>>(\n MULTISELECT_COMPONENT_TOKEN,\n {\n optional: true,\n }\n );\n\n private genericField = inject<GenericFieldCore<T>>(\n GENERIC_FIELD_COMPONENT_TOKEN,\n { optional: true }\n );\n\n private dataSourceService?: DataSourceFunctionType<T>;\n\n private loadingPlaceholderItem: { [key: string]: unknown } = {};\n\n ngOnInit(): void {\n this.activeComponent.showed\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n if (\n !this.autoBind &&\n !this.activeComponent.options &&\n !this.activeComponent.loading\n ) {\n this.parameters$.next({});\n }\n });\n\n this.activeComponent.lazyLoad\n .pipe(takeUntil(this.destroyed$))\n .subscribe((value: LazyLoadEvent) => {\n this.parameters$.next({ offset: value?.offset, limit: value?.limit });\n });\n\n this.activeComponent.filtered\n .pipe(takeUntil(this.destroyed$))\n .subscribe((value: FilterEvent) => {\n const property = this.filterField ?? this.activeComponent.optionLabel;\n if (property) {\n this.parameters$.next({\n offset: 0,\n filter: {\n [property]: value.filter ? value.filter : undefined,\n ...(this.extraFilter ?? {})\n } as Partial<T>,\n useNewData: true,\n });\n }\n });\n\n this.parameters$\n .pipe(\n takeUntil(this.destroyed$),\n filter(request => !this.isDataForRequestLoaded(request)),\n map((request) => {\n const extendedParams = normalizeRequest({ ...this.lastParameter, ...request }, DEFAULT_SEARCH_LIMIT) as ExtendedRequestType<T>;\n extendedParams.useNewData = request.useNewData ?? false;\n return extendedParams;\n }),\n tap((request) => {\n this.lastParameter = request;\n }),\n debounceTime(DEFAULT_DEBOUNCE_TIME),\n tap(() => {\n this.changeComponent(this.activeComponent, {\n loading: true,\n });\n }),\n switchMap((request) =>\n this.dataSourceService\n ? this.dataSourceService(request as RequestParams<T>).pipe(\n map((response) => ({ request, response }))\n )\n : of({\n request,\n response: {\n data: [] as T[],\n total: 0,\n limit: request.limit,\n offset: request.offset,\n } as Page<T>,\n })\n ),\n catchError((request) => {\n this.changeComponent(this.activeComponent, {\n loading: false,\n });\n return of({\n request: request as ExtendedRequestType<T>,\n response: {\n data: [] as T[],\n total: 0,\n limit: request.limit,\n offset: request.offset,\n } as Page<T>,\n });\n })\n )\n .subscribe(({ request, response }) =>\n this.setDataToControl(request, response)\n );\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['datasource']) {\n this.dataSourceService = convertDatasource(\n this.datasource,\n this.baseUrl,\n this.httpClient\n );\n\n if (this.autoBind) {\n this.parameters$.next({ offset: 0 });\n }\n }\n }\n\n private isDataForRequestLoaded(request: Partial<ExtendedRequestType<T>>) {\n if (request.useNewData) {\n return false;\n }\n\n const offset = request.offset ?? 0;\n const limit = request.limit ?? DEFAULT_SEARCH_LIMIT;\n const options = this.activeComponent.options;\n if (!options) {\n return false;\n }\n\n if (options.length < offset + limit) {\n return false;\n }\n\n const allItemsFilled = options.slice(offset, offset + limit).every(item => item !== undefined && item != this.loadingPlaceholderItem);\n return allItemsFilled;\n }\n\n private setDataToControl(request: ExtendedRequestType<T>, result: Page<T>): void {\n this.isAllDataLoaded = result.total <= result.data.length;\n const data = result.data;\n const total = result.total;\n const offset = request.offset;\n const transferedData = this.transformFn\n ? data.map((x) => this.transformFn?.(x))\n : data;\n\n if (this.activeComponent.optionLabel) {\n this.loadingPlaceholderItem[this.activeComponent.optionLabel] =\n this.loadingText;\n }\n\n if (this.activeComponent.optionValue) {\n this.loadingPlaceholderItem[this.activeComponent.optionValue] = -1;\n }\n\n const options = request.useNewData ? undefined : this.activeComponent.options;\n const newOptions = setDataToArray(\n options,\n transferedData,\n offset,\n total,\n this.loadingPlaceholderItem\n );\n\n this.changeComponent(this.activeComponent, {\n options: newOptions as T[],\n loading: false,\n lazy: !this.isAllDataLoaded,\n });\n }\n\n private changeComponent(\n component: DataSourceComponentModel<T>,\n value: Partial<DataSourceComponentModel<T>>\n ) {\n setComponentProperties(component, value);\n this.changeDetectorRef.detectChanges();\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport {\n ChangeDetectorRef,\n Directive,\n inject,\n Input,\n OnChanges,\n OnInit,\n SimpleChanges,\n} from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport {\n BASE_URL_PATH,\n BaseHttpService,\n convertDatasource,\n DataSourceFunctionType,\n DatasourceType,\n LazyLoadEvent,\n normalizeRequest,\n Page,\n RequestParams,\n} from '@verisoft/core';\nimport {\n BehaviorSubject,\n catchError,\n debounceTime,\n map,\n of,\n switchMap,\n takeUntil,\n tap,\n} from 'rxjs';\nimport {\n DEFAULT_DEBOUNCE_TIME,\n ExtendedRequestType,\n isFilterEmpty,\n setComponentProperties,\n} from '../common';\nimport {\n TABLE_COMPONENT_TOKEN,\n TableCore,\n UnsubscribeComponent,\n} from '../components';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'v-table[useDatasource]',\n exportAs: 'useDatasource',\n standalone: true,\n})\nexport class TableDatasourceDirective<T>\n extends UnsubscribeComponent\n implements OnInit, OnChanges\n{\n protected readonly store = inject(Store);\n\n @Input() autoBind = true;\n\n @Input({ required: true }) tableName!: string;\n\n @Input() debounceTime = DEFAULT_DEBOUNCE_TIME;\n\n @Input() datasource!: DatasourceType<T>;\n\n @Input() extraFilter!: any;\n\n @Input() transformFn?: (data: T) => unknown;\n\n private tableComponent = inject<TableCore<T>>(TABLE_COMPONENT_TOKEN, {\n self: true,\n });\n private changeDetectorRef = inject(ChangeDetectorRef);\n private httpClient = inject(HttpClient);\n private baseUrl: string = inject(BASE_URL_PATH);\n\n private dataSourceService?: DataSourceFunctionType<T>;\n private parameters$ = new BehaviorSubject<Partial<ExtendedRequestType<T>>>({});\n\n params$ = this.parameters$.asObservable();\n\n ngOnInit(): void {\n if (!this.tableName) {\n throw new Error('Property tableName must be defined.');\n }\n\n this.tableComponent.lazyLoad.pipe(takeUntil(this.destroyed$)).subscribe((value: LazyLoadEvent) => {\n this.parameters$.next({\n offset: value?.offset,\n limit: value?.limit,\n filter: { ...value?.filter, ...this.extraFilter },\n sort: value?.sort,\n });\n });\n\n this.parameters$\n .pipe(\n takeUntil(this.destroyed$),\n map((request) =>\n normalizeRequest({\n ...request,\n filter: { ...request.filter, ...this.extraFilter },\n })\n ),\n debounceTime(this.debounceTime),\n tap(() => {\n this.changeComponent(this.tableComponent, {\n lazy: true,\n loading: true,\n });\n }),\n switchMap((request) =>\n this.dataSourceService\n ? this.dataSourceService(request).pipe(\n map((response) => ({ request, response }))\n )\n : of({\n request,\n response: {\n data: [] as T[],\n total: 0,\n limit: request.limit,\n offset: request.offset,\n } as Page<T>,\n })\n ),\n catchError((request) => {\n this.changeComponent(this.tableComponent, {\n loading: false,\n });\n return of({\n request: request as ExtendedRequestType<T>,\n response: {\n data: [] as T[],\n total: 0,\n limit: request.limit,\n offset: request.offset,\n } as Page<T>,\n });\n })\n )\n .subscribe(({ request, response }) =>\n this.setDataToControl(request, response)\n );\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['datasource']) {\n this.dataSourceService = convertDatasource(\n this.datasource,\n this.baseUrl,\n this.httpClient\n );\n\n if (this.autoBind) {\n this.parameters$.next({ offset: 0 });\n }\n }\n }\n\n reload() {\n this.parameters$.next({ ...this.parameters$.value });\n }\n\n private changeComponent(\n component: TableCore<T>,\n value: Partial<TableCore<T>>\n ) {\n setComponentProperties(component, value);\n this.changeDetectorRef.detectChanges();\n }\n\n private setDataToControl(request: RequestParams<T>, result: Page<T>): void {\n const data = result.data;\n const total = result.total;\n const transferedData = this.transformFn ? data.map((x) => this.transformFn?.(x)) : data;\n\n this.changeComponent(this.tableComponent, {\n lazy: !isFilterEmpty(request.filter) || data?.length < total || this.datasource instanceof BaseHttpService,\n data: transferedData as T[],\n loading: false,\n total,\n });\n }\n}\n","import { Directive, HostListener, Input } from \"@angular/core\";\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'v-button[useShortCut]',\n exportAs: 'useShortCut',\n standalone: true,\n })\n export class ButtonShortCutDirective\n {\n @Input() shortCutFn?: () => void;\n @Input() shortCutKey!: string;\n\n private keyMap: { [key: string]: boolean } = {};\n\n @HostListener('document:keydown', ['$event'])\n onKeyDown(event: KeyboardEvent) {\n this.keyMap[event.key.toLowerCase()] = true;\n this.checkShortcut();\n }\n \n @HostListener('document:keyup', ['$event'])\n onKeyUp(event: KeyboardEvent) {\n this.keyMap[event.key.toLowerCase()] = false;\n }\n\n private checkShortcut() {\n if (this.shortCutKey && this.shortCutFn) {\n const keys = this.shortCutKey.toLowerCase().split('+');\n const isShortcutPressed = keys.every((key) => this.keyMap[key]); \n if (isShortcutPressed) {\n this.shortCutFn?.();\n keys.forEach((key) => (this.keyMap[key] = false));\n }\n }\n }\n}","import {\r\n ChangeDetectorRef,\r\n Directive,\r\n inject,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n SimpleChanges,\r\n} from '@angular/core';\r\nimport { debounceTime, Subject, Subscription } from 'rxjs';\r\nimport { DEFAULT_DEBOUNCE_TIME, setComponentProperties } from '../common';\r\nimport { FilterCore, TABLE_COMPONENT_TOKEN, TableCore } from '../components';\r\n\r\n@Directive({\r\n // eslint-disable-next-line @angular-eslint/directive-selector\r\n selector: 'v-table[useFilter]',\r\n standalone: true,\r\n exportAs: 'tableFilterDirective',\r\n})\r\nexport class TableFilterDirective<T> implements OnChanges, OnDestroy {\r\n @Input({ required: true }) filterComponent!: FilterCore;\r\n\r\n private filterChange$ = new Subject<T>();\r\n private subscription: Subscription | undefined = undefined;\r\n\r\n private tableComponent = inject<TableCore<T>>(TABLE_COMPONENT_TOKEN);\r\n\r\n private changeDetectorRef = inject(ChangeDetectorRef);\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['filterComponent']) {\r\n this.unRegister();\r\n this.register();\r\n }\r\n }\r\n\r\n private onFilterChange(value: T): void {\r\n if (this.tableComponent?.filter !== value) {\r\n setComponentProperties(this.tableComponent, {\r\n filter: value,\r\n currentPage: 1,\r\n });\r\n \r\n this.changeDetectorRef.detectChanges();\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unRegister();\r\n }\r\n\r\n private unRegister() {\r\n this.subscription?.unsubscribe();\r\n }\r\n\r\n private register() {\r\n this.filterComponent.registerOnChange((value: T) => {\r\n this.filterChange$.next(value);\r\n });\r\n\r\n this.subscription = this.filterChange$\r\n .pipe(\r\n debounceTime(\r\n this.filterComponent.debounceTime ? 0 : DEFAULT_DEBOUNCE_TIME\r\n )\r\n )\r\n .subscribe((value) => this.onFilterChange(value));\r\n }\r\n}\r\n","import { Directive, Input } from '@angular/core';\nimport { ValidatorFn } from '@angular/forms';\nimport { DatasourceType } from '@verisoft/core';\nimport { GenericFieldDefinition, GenericFieldType, GenericFieldTypeType } from '../components';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'v-filter-field',\n standalone: true,\n})\nexport class FilterFieldDirective implements GenericFieldDefinition {\n @Input({ required: true }) name!: string;\n\n @Input() type: GenericFieldTypeType | undefined = GenericFieldType.text;\n\n @Input() label: string | undefined;\n\n @Input() optionLabel!: string;\n\n @Input() optionValue: string | undefined;\n\n @Input() options: unknown[] | undefined;\n\n @Input() value?: unknown;\n\n @Input() validator?: ValidatorFn[];\n\n @Input() datasource: DatasourceType<any> | undefined;\n\n @Input() filterField?: string;\n\n @Input() showFilter?: boolean;\n\n @Input() localSearch?: boolean;\n}\n","import { Directive } from '@angular/core';\nimport { FilterFieldDirective } from './filter-field.directive';\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'v-feature-list-filter-field',\n standalone: true,\n})\nexport class FeatureListFilterFieldDirective extends FilterFieldDirective {}","import { Directive, Input } from '@angular/core';\nimport { FEATURE_LIST_COLUMN_PROVIDER, FeatureListColumnDefinition, FeatureListColumnFilterOptions, FeatureListColumnProvider, GenericFieldType, GenericFieldTypeType, TableColumnDirective } from '../components';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'v-feature-list-column',\n standalone: true,\n providers: [\n {\n provide: FEATURE_LIST_COLUMN_PROVIDER,\n useExisting: FeatureListColumnDirective,\n multi: true,\n },\n ],\n})\nexport class FeatureListColumnDirective<T>\n extends TableColumnDirective<T>\n implements FeatureListColumnProvider<T>\n{\n @Input() filter = false;\n\n @Input() type: GenericFieldTypeType = GenericFieldType.text;\n\n @Input() filterOptions?: FeatureListColumnFilterOptions;\n\n override getDefinition(): FeatureListColumnDefinition<T> {\n const definition = super.getDefinition() as FeatureListColumnDefinition<T>;\n definition.filter = this.filter;\n definition.type = this.type;\n definition.format = this.format;\n definition.filterOptions = this.filterOptions;\n return definition;\n }\n}\n","type ErrorCodesFn = (value?: any) => string;\n\nexport const ErrorCodesFns: { [key: string]: ErrorCodesFn } = {\n required: () => `This field is required!`,\n email: () => `Email is in wrong format!`,\n iban: () => `IBAN is in wrong format!`,\n lowStrength: () => `Password too weak!`,\n customPasswordRequirements: () => `Password does not meet minimal requirements.`,\n fieldsNotMatching: () => `Passwords are not the same!`,\n validationError: (value: any) => `${value}`,\n};\n","import { AbstractControl, ValidationErrors } from '@angular/forms';\n\ntype ErrorValue = { key: string; value: string } | null;\n\nexport function getFirstErrorFromControl<T extends AbstractControl>(\n control: T\n): ErrorValue {\n if (!control || !control.errors) {\n return null;\n }\n const errors = control.errors ?? false;\n if (errors) {\n const key = Object.keys(control.errors)[0];\n const value = control.errors[key];\n return { key, value };\n }\n return null;\n}\n\nexport function getFirstError(errors: ValidationErrors): ErrorValue {\n if (errors) {\n const key = Object.keys(errors)[0];\n const value = errors[key];\n return { key, value };\n }\n return null;\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { ValidationErrors } from '@angular/forms';\nimport { ErrorCodesFns } from './error.codes';\nimport { getFirstError } from './error.models';\n\nconst EMPTY = '';\n\n@Pipe({\n name: 'error',\n standalone: true,\n})\nexport class ErrorPipe implements PipeTransform {\n transform(errors: ValidationErrors | undefined | null): string {\n if (!errors) {\n return EMPTY;\n }\n const error = getFirstError(errors);\n if (error) {\n const errorFn = ErrorCodesFns[error.key];\n if (!errorFn) {\n return EMPTY;\n }\n return ErrorCodesFns[error.key](error.value);\n }\n return EMPTY;\n }\n}\n","type WarningCodesFn = (value?: any) => string;\n\nexport const WarningCodesFns: { [key: string]: WarningCodesFn } = {\n validationWarning: (value: any) => `${value}`,\n};\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { ValidationErrors } from '@angular/forms';\nimport { getFirstError } from './error.models';\nimport { WarningCodesFns } from './warning.codes';\n\nconst EMPTY = '';\n\n@Pipe({\n name: 'warning',\n standalone: true,\n})\nexport class WarningPipe implements PipeTransform {\n transform(warnings: ValidationErrors | undefined | null): string {\n if (!warnings) {\n return EMPTY;\n }\n const error = getFirstError(warnings);\n if (error) {\n const errorFn = WarningCodesFns[error.key];\n if (!errorFn) {\n return EMPTY;\n }\n return WarningCodesFns[error.key](error.value);\n }\n return EMPTY;\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'keyOrFn',\n pure: false,\n standalone: true,\n})\nexport class KeyOrFunctionPipe implements PipeTransform {\n transform(keyOrFn: any, row: any): any {\n if (keyOrFn instanceof Function) {\n return keyOrFn(row);\n } else if (typeof keyOrFn === 'string') {\n const value = row[keyOrFn];\n if (value) {\n return value;\n }\n } else if (typeof keyOrFn === 'boolean') {\n return keyOrFn;\n }\n return '';\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\n\n@Pipe({\n name: 'enumToList',\n standalone: true,\n})\nexport class EnumToListPipe implements PipeTransform {\n transform(data: any): any[] {\n return Object.keys(data)\n .filter(key => isNaN(Number(key)))\n .map(key => ({\n label: key,\n value: data[key as keyof typeof data],\n }));\n }\n}","import { toCzechDateTimeString } from \"@verisoft/core\";\n\n/* eslint-disable @typescript-eslint/ban-types */\nexport class Format {\n static concatArray(value: any[], itemFormatter?: Function, delimeter = ';') {\n if (!value) {\n return '';\n }\n\n return value\n .map(item => itemFormatter ? itemFormatter(item) : item)\n .filter(item => item !== undefined && item !== null)\n .join(`${delimeter} `);\n }\n\n static czechDate(value: Date | string) {\n return toCzechDateTimeString(value);\n }\n\n static date(value: Date | string) {\n if (!value) {\n return '';\n }\n\n if (typeof value === 'string') {\n value = new Date(value);\n }\n\n return value.getDate() + '. ' + (value.getMonth() + 1) + '. ' + value.getFullYear();\n }\n\n static dateAndTime(value: Date | string) {\n if (!value) {\n return '';\n }\n\n if (typeof value === 'string') {\n value = new Date(value);\n }\n\n return ('0' + value.getDate()).slice(-2)\n + '.' + ('0' + (value.getMonth() + 1)).slice(-2)\n + '.' + value.getFullYear() + ' ' + ('0' + value.getHours()).slice(-2)\n + ':' + ('0' + value.getMinutes()).slice(-2) + ':' + ('0' + value.getSeconds()).slice(-2);\n }\n\n static convertToUserLocaleDate(value?: Date | string) {\n if (!value) {\n return '';\n }\n\n if (typeof value === 'string') {\n value = new Date(value);\n }\n\n return value.toLocaleDateString(navigator.language, { timeZone: 'UTC' });\n }\n\n static bool(value: boolean) {\n if (value) {\n return 'Yes';\n } else {\n return 'No';\n }\n }\n\n static boolWithIcon(value: boolean) {\n if (value) {\n return `<span>✓</span>`;\n } else {\n return `<span>⨯</span>`;\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["DEFAULT_ACTIVE_ITEM_CLASS","i1","i2.PageHeaderService","i1.SideMenuService","EMPTY"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"verisoft-ui-core.mjs","sources":["../../../../../src/libs/ui-core/src/lib/accessibility/keyboard/core/keyboard-action.model.ts","../../../../../src/libs/ui-core/src/lib/accessibility/keyboard/core/keyboard.utils.ts","../../../../../src/libs/ui-core/src/lib/accessibility/keyboard/core/linear-navigation.utils.ts","../../../../../src/libs/ui-core/src/lib/accessibility/keyboard/menu/menu-keyboard.model.ts","../../../../../src/libs/ui-core/src/lib/accessibility/keyboard/menu/menu-keyboard-bindings.utils.ts","../../../../../src/libs/ui-core/src/lib/accessibility/keyboard/menu/menu-keyboard.utils.ts","../../../../../src/libs/ui-core/src/lib/accessibility/keyboard/menu/menu-keyboard.controller.ts","../../../../../src/libs/ui-core/src/lib/accessibility/keyboard/menu/menu-keyboard-port.token.ts","../../../../../src/libs/ui-core/src/lib/accessibility/keyboard/menu/menu-keyboard.facade.ts","../../../../../src/libs/ui-core/src/lib/accessibility/keyboard/menu/menu-keyboard.token.ts","../../../../../src/libs/ui-core/src/lib/accessibility/keyboard/menu/menu-keyboard.directive.ts","../../../../../src/libs/ui-core/src/lib/accessibility/keyboard/menu/menu-keyboard-trigger.directive.ts","../../../../../src/libs/ui-core/src/lib/accessibility/keyboard/menu/menu-keyboard-list.directive.ts","../../../../../src/libs/ui-core/src/lib/accessibility/keyboard/menu/menu-keyboard-item.directive.ts","../../../../../src/libs/ui-core/src/lib/common/angular-helper.ts","../../../../../src/libs/ui-core/src/lib/common/control.models.ts","../../../../../src/libs/ui-core/src/lib/common/constants.ts","../../../../../src/libs/ui-core/src/lib/common/datasource-component.model.ts","../../../../../src/libs/ui-core/src/lib/common/filter.ts","../../../../../src/libs/ui-core/src/lib/common/rxjs.ts","../../../../../src/libs/ui-core/src/lib/common/download-file.ts","../../../../../src/libs/ui-core/src/lib/components/action-button-group/action-button-group.model.ts","../../../../../src/libs/ui-core/src/lib/components/base-form/base-form-input.component.ts","../../../../../src/libs/ui-core/src/lib/services/screen-size.service.ts","../../../../../src/libs/ui-core/src/lib/services/confirm-dialog.service.ts","../../../../../src/libs/ui-core/src/lib/services/leave-form.service.ts","../../../../../src/libs/ui-core/src/lib/services/table.service.ts","../../../../../src/libs/ui-core/src/lib/components/base-form/models/base-form-input.models.ts","../../../../../src/libs/ui-core/src/lib/components/base-form/models/base-form.models.ts","../../../../../src/libs/ui-core/src/lib/components/base-form/base-form.component.ts","../../../../../src/libs/ui-core/src/lib/components/unsubscribe.component.ts","../../../../../src/libs/ui-core/src/lib/components/base-form/directives/detail-store.directive.ts","../../../../../src/libs/ui-core/src/lib/components/breadcrumb/breadcrumb.model.ts","../../../../../src/libs/ui-core/src/lib/components/breadcrumb/breadcrumb.service.ts","../../../../../src/libs/ui-core/src/lib/components/breadcrumb/breadcrumbcore.component.ts","../../../../../src/libs/ui-core/src/lib/components/button/button.model.ts","../../../../../src/libs/ui-core/src/lib/components/dropdown-button/dropdown-button.model.ts","../../../../../src/libs/ui-core/src/lib/components/calendar/calendar.model.ts","../../../../../src/libs/ui-core/src/lib/components/checkbox/checkbox.model.ts","../../../../../src/libs/ui-core/src/lib/components/confirm-dialog/confirm-dialog.model.ts","../../../../../src/libs/ui-core/src/lib/components/dropdown/dropdown.model.ts","../../../../../src/libs/ui-core/src/lib/components/filter/filter.model.ts","../../../../../src/libs/ui-core/src/lib/components/form-field/form-field.model.ts","../../../../../src/libs/ui-core/src/lib/components/generic-field/generic-field.model.ts","../../../../../src/libs/ui-core/src/lib/components/generic-form/generic-form.component.ts","../../../../../src/libs/ui-core/src/lib/components/header/header.model.ts","../../../../../src/libs/ui-core/src/lib/components/input-group/input-group.model.ts","../../../../../src/libs/ui-core/src/lib/components/loader/loader.model.ts","../../../../../src/libs/ui-core/src/lib/components/multiselect/mutiselect.model.ts","../../../../../src/libs/ui-core/src/lib/components/number-input/number-input.model.ts","../../../../../src/libs/ui-core/src/lib/components/page-header/page-header.model.ts","../../../../../src/libs/ui-core/src/lib/components/page-header/page-header.service.ts","../../../../../src/libs/ui-core/src/lib/components/page-header/page-headercore.component.ts","../../../../../src/libs/ui-core/src/lib/components/password/password.model.ts","../../../../../src/libs/ui-core/src/lib/components/radiobutton/radiobutton.model.ts","../../../../../src/libs/ui-core/src/lib/components/section/section.model.ts","../../../../../src/libs/ui-core/src/lib/components/side-menu/side-menu.model.ts","../../../../../src/libs/ui-core/src/lib/components/side-menu/services/side-menu.service.ts","../../../../../src/libs/ui-core/src/lib/components/side-menu/services/side-menu-provider.service.ts","../../../../../src/libs/ui-core/src/lib/components/side-menu/directives/side-menu-service.directive.ts","../../../../../src/libs/ui-core/src/lib/components/slider/slider.model.ts","../../../../../src/libs/ui-core/src/lib/components/snackbar/snackbar.model.ts","../../../../../src/libs/ui-core/src/lib/components/stepper/stepper.model.ts","../../../../../src/libs/ui-core/src/lib/components/switch/switch.model.ts","../../../../../src/libs/ui-core/src/lib/components/tab-view/tab-view.model.ts","../../../../../src/libs/ui-core/src/lib/components/table/table.models.ts","../../../../../src/libs/ui-core/src/lib/components/table/table-column.directive.ts","../../../../../src/libs/ui-core/src/lib/components/table/column-configuration.ts","../../../../../src/libs/ui-core/src/lib/components/table/table-builder.ts","../../../../../src/libs/ui-core/src/lib/components/table-filter/table-filter.model.ts","../../../../../src/libs/ui-core/src/lib/components/textarea/textarea.model.ts","../../../../../src/libs/ui-core/src/lib/components/textfield/textfield.model.ts","../../../../../src/libs/ui-core/src/lib/components/tooltip/tooltip.model.ts","../../../../../src/libs/ui-core/src/lib/components/icons/icons.model.ts","../../../../../src/libs/ui-core/src/lib/components/icons/icons.component.ts","../../../../../src/libs/ui-core/src/lib/components/tag/tag.model.ts","../../../../../src/libs/ui-core/src/lib/components/feature-list/feature-list-page.model.ts","../../../../../src/libs/ui-core/src/lib/components/feature-list/feature-list-filter.pipe.ts","../../../../../src/libs/ui-core/src/lib/directives/datasource.directive.ts","../../../../../src/libs/ui-core/src/lib/directives/table-datasource.directive.ts","../../../../../src/libs/ui-core/src/lib/directives/shortcut.directive.ts","../../../../../src/libs/ui-core/src/lib/directives/table-filter.directive.ts","../../../../../src/libs/ui-core/src/lib/directives/filter-field.directive.ts","../../../../../src/libs/ui-core/src/lib/directives/feature-list-filter-field.directive.ts","../../../../../src/libs/ui-core/src/lib/directives/feature-list-column.directive.ts","../../../../../src/libs/ui-core/src/lib/pipes/error/error.codes.ts","../../../../../src/libs/ui-core/src/lib/pipes/error/error.models.ts","../../../../../src/libs/ui-core/src/lib/pipes/error/error.pipe.ts","../../../../../src/libs/ui-core/src/lib/pipes/error/warning.codes.ts","../../../../../src/libs/ui-core/src/lib/pipes/error/warning.pipe.ts","../../../../../src/libs/ui-core/src/lib/pipes/keyOrFn/keyOrFn.pipe.ts","../../../../../src/libs/ui-core/src/lib/pipes/helper/enumToList.pipe.ts","../../../../../src/libs/ui-core/src/lib/format/format.ts","../../../../../src/libs/ui-core/src/verisoft-ui-core.ts"],"sourcesContent":["export type LinearNavigationAction = 'next' | 'previous' | 'first' | 'last';\n\nexport type InteractionAction = 'activate' | 'close' | 'dismiss';\n\nexport function assertNever(value: never): never {\n throw new Error(`Unexpected value: ${String(value)}`);\n}\n","import { KeyboardKey, KeyboardKeyList } from './keyboard-key.model';\n\nexport function matchesKeyboardKey(\n event: KeyboardEvent,\n keys: KeyboardKeyList,\n): boolean {\n if (!keys.length) {\n return false;\n }\n\n return keys.includes(event.key as KeyboardKey);\n}\n\nexport function suppressKeyboardEvent(\n event: KeyboardEvent,\n preventDefault: boolean,\n): void {\n if (!preventDefault) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n}\n","export interface KeyboardNavigableItem {\n disabled?: boolean;\n}\n\nexport function filterEnabledItems<T extends KeyboardNavigableItem>(\n items: readonly T[],\n): readonly T[] {\n return items.filter((item) => !item.disabled);\n}\n\nexport function moveLinearIndex(\n currentIndex: number,\n delta: number,\n length: number,\n loop: boolean,\n): number {\n if (length === 0) {\n return -1;\n }\n\n if (currentIndex < 0) {\n return delta > 0 ? 0 : length - 1;\n }\n\n const next = currentIndex + delta;\n\n if (loop) {\n if (next >= length) {\n return 0;\n }\n\n if (next < 0) {\n return length - 1;\n }\n\n return next;\n }\n\n return Math.max(0, Math.min(length - 1, next));\n}\n\nexport function resolveInitialActiveIndex<T>(\n items: readonly T[],\n getItemId: (item: T) => string | undefined,\n initialActiveItemId?: string,\n): number {\n if (!items.length) {\n return -1;\n }\n\n if (initialActiveItemId) {\n const index = items.findIndex(\n (item) => getItemId(item) === initialActiveItemId,\n );\n if (index >= 0) {\n return index;\n }\n }\n\n return 0;\n}\n\nexport function getRovingTabIndex(isActive: boolean): number {\n return isActive ? 0 : -1;\n}\n","import { KeyboardKeyList } from '../core/keyboard-key.model';\n\nexport interface MenuKeyboardItem {\n disabled?: boolean;\n}\n\nexport interface MenuKeyboardFocusA11y {\n role?: string;\n tabIndex?: number;\n ariaHaspopup?: string;\n ariaExpanded?: string;\n ariaControls?: string;\n ariaDisabled?: string;\n}\n\nexport interface MenuKeyboardNavigation {\n enabled: boolean;\n openKeys: KeyboardKeyList;\n openToLastKeys: KeyboardKeyList;\n nextKeys: KeyboardKeyList;\n previousKeys: KeyboardKeyList;\n firstKeys: KeyboardKeyList;\n lastKeys: KeyboardKeyList;\n selectKeys: KeyboardKeyList;\n closeKeys: KeyboardKeyList;\n dismissKeys: KeyboardKeyList;\n loop: boolean;\n preventDefault: boolean;\n initialActiveItemId?: string;\n activeItemClass: string;\n}\n\nexport const DEFAULT_MENU_KEYBOARD_ACTIVE_ITEM_CLASS =\n 'menu-keyboard__item--active';\n\nexport const DEFAULT_MENU_KEYBOARD_NAVIGATION: MenuKeyboardNavigation = {\n enabled: true,\n openKeys: ['ArrowDown', 'ArrowUp', 'Enter', ' '],\n openToLastKeys: ['ArrowUp'],\n nextKeys: ['ArrowDown'],\n previousKeys: ['ArrowUp'],\n firstKeys: ['Home'],\n lastKeys: ['End'],\n selectKeys: ['Enter', ' '],\n closeKeys: ['Escape'],\n dismissKeys: ['Tab'],\n loop: true,\n preventDefault: true,\n activeItemClass: DEFAULT_MENU_KEYBOARD_ACTIVE_ITEM_CLASS,\n};\n\nexport type MenuKeyboardNavigationInput =\n | boolean\n | Partial<MenuKeyboardNavigation>\n | undefined;\n\nexport interface MenuKeyboardConfig<T extends MenuKeyboardItem> {\n getItems: () => readonly T[];\n getItemId?: (item: T) => string | undefined;\n onSelect: (item: T) => void;\n onOpen: () => void;\n onClose: (restoreFocus: boolean) => void;\n keyboardNavigation?:\n | MenuKeyboardNavigationInput\n | (() => MenuKeyboardNavigationInput);\n}\n","import { MenuKeyboardNavigation } from './menu-keyboard.model';\nimport {\n MenuOpenKeyboardAction,\n MenuTriggerAction,\n} from './menu-keyboard-action.model';\nimport { matchesKeyboardKey } from '../core/keyboard.utils';\n\ntype MenuOpenActionBinding = {\n readonly keys: keyof Pick<\n MenuKeyboardNavigation,\n | 'dismissKeys'\n | 'nextKeys'\n | 'previousKeys'\n | 'firstKeys'\n | 'lastKeys'\n | 'selectKeys'\n | 'closeKeys'\n >;\n readonly action: MenuOpenKeyboardAction;\n};\n\ntype MenuTriggerActionBinding = {\n readonly keys: keyof Pick<\n MenuKeyboardNavigation,\n 'openToLastKeys' | 'openKeys'\n >;\n readonly action: MenuTriggerAction;\n};\n\nconst MENU_OPEN_ACTION_CHECKS: readonly MenuOpenActionBinding[] = [\n { keys: 'dismissKeys', action: 'dismiss' },\n { keys: 'nextKeys', action: 'next' },\n { keys: 'previousKeys', action: 'previous' },\n { keys: 'firstKeys', action: 'first' },\n { keys: 'lastKeys', action: 'last' },\n { keys: 'selectKeys', action: 'activate' },\n { keys: 'closeKeys', action: 'close' },\n] as const;\n\nconst MENU_TRIGGER_ACTION_CHECKS: readonly MenuTriggerActionBinding[] = [\n { keys: 'openToLastKeys', action: 'openToLast' },\n { keys: 'openKeys', action: 'open' },\n] as const;\n\nconst MENU_TRIGGER_ACTION_ORDER: readonly MenuTriggerAction[] = [\n 'openToLast',\n 'open',\n] as const;\n\nexport function resolveMenuTriggerAction(\n event: KeyboardEvent,\n navigation: MenuKeyboardNavigation,\n): MenuTriggerAction | null {\n const matched = new Set<MenuTriggerAction>();\n\n for (const { keys, action } of MENU_TRIGGER_ACTION_CHECKS) {\n if (matchesKeyboardKey(event, navigation[keys])) {\n matched.add(action);\n }\n }\n\n for (const action of MENU_TRIGGER_ACTION_ORDER) {\n if (matched.has(action)) {\n return action;\n }\n }\n\n return null;\n}\n\nexport function resolveMenuKeyboardAction(\n event: KeyboardEvent,\n navigation: MenuKeyboardNavigation,\n): MenuOpenKeyboardAction | null {\n for (const { keys, action } of MENU_OPEN_ACTION_CHECKS) {\n if (matchesKeyboardKey(event, navigation[keys])) {\n return action;\n }\n }\n\n return null;\n}\n","import {\n DEFAULT_MENU_KEYBOARD_NAVIGATION,\n MenuKeyboardNavigation,\n} from './menu-keyboard.model';\n\nexport function resolveMenuKeyboardNavigation(\n input: boolean | Partial<MenuKeyboardNavigation> | undefined,\n): MenuKeyboardNavigation | null {\n if (input === undefined || input === false) {\n return null;\n }\n\n const resolved: MenuKeyboardNavigation = {\n ...DEFAULT_MENU_KEYBOARD_NAVIGATION,\n enabled: true,\n ...(input === true ? {} : input),\n };\n\n if (!resolved.enabled) {\n return null;\n }\n\n return resolved;\n}\n","import {\n MenuKeyboardConfig,\n MenuKeyboardItem,\n MenuKeyboardNavigation,\n DEFAULT_MENU_KEYBOARD_ACTIVE_ITEM_CLASS,\n} from './menu-keyboard.model';\nimport { assertNever } from '../core/keyboard-action.model';\nimport {\n MenuOpenKeyboardAction,\n MenuTriggerAction,\n} from './menu-keyboard-action.model';\nimport {\n resolveMenuKeyboardAction,\n resolveMenuTriggerAction,\n} from './menu-keyboard-bindings.utils';\nimport {\n filterEnabledItems,\n moveLinearIndex,\n resolveInitialActiveIndex,\n} from '../core/linear-navigation.utils';\nimport { suppressKeyboardEvent } from '../core/keyboard.utils';\nimport { resolveMenuKeyboardNavigation } from './menu-keyboard.utils';\n\nexport class MenuKeyboardController<T extends MenuKeyboardItem> {\n focusedIndex = -1;\n isOpen = false;\n\n private keyboardPresetFocus = false;\n\n constructor(private readonly config: MenuKeyboardConfig<T>) {}\n\n get actionableItems(): readonly T[] {\n return filterEnabledItems(this.config.getItems());\n }\n\n isNavigationEnabled(): boolean {\n return this.resolveNavigation() !== null;\n }\n\n getActiveItemClass(): string {\n return (\n this.resolveNavigation()?.activeItemClass ??\n DEFAULT_MENU_KEYBOARD_ACTIVE_ITEM_CLASS\n );\n }\n\n onTriggerKeydown(event: KeyboardEvent): void {\n const navigation = this.resolveNavigation();\n if (!navigation || this.isOpen) {\n return;\n }\n\n const action = resolveMenuTriggerAction(event, navigation);\n if (!action) {\n return;\n }\n\n const items = this.actionableItems;\n if (!items.length) {\n return;\n }\n\n suppressKeyboardEvent(event, navigation.preventDefault);\n this.applyTriggerAction(action, items, navigation);\n this.keyboardPresetFocus = true;\n this.config.onOpen();\n }\n\n onMenuKeydown(event: KeyboardEvent): void {\n const navigation = this.resolveNavigation();\n if (!navigation || !this.isOpen) {\n return;\n }\n\n const items = this.actionableItems;\n if (!items.length) {\n return;\n }\n\n const action = resolveMenuKeyboardAction(event, navigation);\n if (!action) {\n return;\n }\n\n this.applyOpenMenuAction(action, event, navigation, items);\n }\n\n handleOpenChange(open: boolean): void {\n if (!open) {\n this.isOpen = false;\n this.focusedIndex = -1;\n this.keyboardPresetFocus = false;\n return;\n }\n\n const wasOpen = this.isOpen;\n this.isOpen = true;\n const navigation = this.resolveNavigation();\n const items = this.actionableItems;\n\n if (!items.length) {\n this.isOpen = false;\n this.focusedIndex = -1;\n this.keyboardPresetFocus = false;\n return;\n }\n\n if (!wasOpen) {\n if (!this.keyboardPresetFocus) {\n this.focusedIndex = navigation\n ? this.resolveInitialActiveIndex(navigation)\n : 0;\n }\n\n if (this.focusedIndex < 0 || this.focusedIndex >= items.length) {\n this.focusedIndex = 0;\n }\n }\n\n this.keyboardPresetFocus = false;\n }\n\n cancelPendingOpen(): void {\n this.keyboardPresetFocus = false;\n this.focusedIndex = -1;\n }\n\n close(restoreFocus: boolean): void {\n if (!this.isOpen) {\n return;\n }\n\n this.config.onClose(restoreFocus);\n }\n\n setActiveItem(item: T): void {\n if (!this.isOpen) {\n return;\n }\n\n const index = this.actionableItems.indexOf(item);\n if (index >= 0) {\n this.focusedIndex = index;\n }\n }\n\n isItemFocused(item: T): boolean {\n if (!this.isOpen || this.focusedIndex < 0) {\n return false;\n }\n\n const focusedItem = this.actionableItems[this.focusedIndex];\n return focusedItem === item;\n }\n\n getItemTabIndex(item: T): number {\n return this.isItemFocused(item) ? 0 : -1;\n }\n\n private applyTriggerAction(\n action: MenuTriggerAction,\n items: readonly T[],\n navigation: MenuKeyboardNavigation,\n ): void {\n switch (action) {\n case 'openToLast':\n this.focusedIndex = items.length - 1;\n return;\n case 'open':\n this.focusedIndex = this.resolveInitialActiveIndex(navigation);\n return;\n default:\n assertNever(action);\n }\n }\n\n private applyOpenMenuAction(\n action: MenuOpenKeyboardAction,\n event: KeyboardEvent,\n navigation: MenuKeyboardNavigation,\n items: readonly T[],\n ): void {\n switch (action) {\n case 'dismiss':\n this.close(false);\n return;\n case 'next':\n suppressKeyboardEvent(event, navigation.preventDefault);\n this.focusedIndex = moveLinearIndex(\n this.focusedIndex,\n 1,\n items.length,\n navigation.loop,\n );\n return;\n case 'previous':\n suppressKeyboardEvent(event, navigation.preventDefault);\n this.focusedIndex = moveLinearIndex(\n this.focusedIndex,\n -1,\n items.length,\n navigation.loop,\n );\n return;\n case 'first':\n suppressKeyboardEvent(event, navigation.preventDefault);\n this.focusedIndex = 0;\n return;\n case 'last':\n suppressKeyboardEvent(event, navigation.preventDefault);\n this.focusedIndex = items.length - 1;\n return;\n case 'activate':\n suppressKeyboardEvent(event, navigation.preventDefault);\n this.activateFocused(items);\n return;\n case 'close':\n suppressKeyboardEvent(event, navigation.preventDefault);\n this.close(true);\n return;\n default:\n assertNever(action);\n }\n }\n\n private resolveNavigation(): MenuKeyboardNavigation | null {\n const input =\n typeof this.config.keyboardNavigation === 'function'\n ? this.config.keyboardNavigation()\n : this.config.keyboardNavigation;\n\n return resolveMenuKeyboardNavigation(input);\n }\n\n private resolveInitialActiveIndex(\n navigation: MenuKeyboardNavigation,\n ): number {\n return resolveInitialActiveIndex(\n this.actionableItems,\n (item) => this.getItemId(item),\n navigation.initialActiveItemId,\n );\n }\n\n private getItemId(item: T): string | undefined {\n if (this.config.getItemId) {\n return this.config.getItemId(item);\n }\n\n return (item as { id?: string }).id;\n }\n\n private activateFocused(items: readonly T[]): void {\n const item = items[this.focusedIndex];\n if (!item) {\n return;\n }\n\n this.config.onSelect(item);\n this.close(true);\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { MenuKeyboardFocusA11y } from './menu-keyboard.model';\n\nexport interface MenuKeyboardPort {\n open(): boolean | Promise<boolean>;\n close(restoreFocus: boolean): void | Promise<void>;\n focusTrigger?(triggerHost: HTMLElement, a11y?: MenuKeyboardFocusA11y): void;\n focusItem?(itemHost: HTMLElement, a11y?: MenuKeyboardFocusA11y): void;\n applyTriggerAccessibility?(\n triggerHost: HTMLElement,\n a11y: MenuKeyboardFocusA11y,\n ): void;\n applyItemAccessibility?(\n itemHost: HTMLElement,\n a11y: MenuKeyboardFocusA11y,\n ): void;\n}\n\nexport const MENU_KEYBOARD_PORT = new InjectionToken<MenuKeyboardPort>(\n 'MENU_KEYBOARD_PORT',\n);\n","import { signal } from '@angular/core';\nimport { filterEnabledItems } from '../core/linear-navigation.utils';\nimport { MenuKeyboardController } from './menu-keyboard.controller';\nimport { MenuKeyboardFocusA11y, MenuKeyboardItem, DEFAULT_MENU_KEYBOARD_ACTIVE_ITEM_CLASS } from './menu-keyboard.model';\nimport { MenuKeyboardPort } from './menu-keyboard-port.token';\n\nexport class MenuKeyboardFacade<T extends MenuKeyboardItem = MenuKeyboardItem> {\n private static nextListId = 0;\n\n readonly isOpen = signal(false);\n readonly focusedIndex = signal(-1);\n readonly focusRequestVersion = signal(0);\n readonly activeItemClass = signal(DEFAULT_MENU_KEYBOARD_ACTIVE_ITEM_CLASS);\n readonly listId = signal(`v-menu-kb-list-${MenuKeyboardFacade.nextListId++}`);\n\n private readonly actionableItems = signal<readonly T[]>([]);\n private triggerElement: HTMLElement | null = null;\n private listElement: HTMLElement | null = null;\n private readonly itemElements = new Map<T, HTMLElement>();\n private activeItemHandler: ((item: T) => void) | null = null;\n private triggerKeydownHandler: ((event: KeyboardEvent) => void) | null = null;\n private focusItemHandler:\n | ((host: HTMLElement, a11y?: MenuKeyboardFocusA11y) => void)\n | null = null;\n private syncTriggerHandler:\n | ((host: HTMLElement, a11y: MenuKeyboardFocusA11y) => void)\n | null = null;\n private syncItemHandler:\n | ((host: HTMLElement, a11y: MenuKeyboardFocusA11y) => void)\n | null = null;\n private portProvider: (() => MenuKeyboardPort | null) | null = null;\n\n setPortProvider(provider: () => MenuKeyboardPort | null): void {\n this.portProvider = provider;\n }\n\n setActiveItemHandler(handler: (item: T) => void): void {\n this.activeItemHandler = handler;\n }\n\n setTriggerKeydownHandler(handler: (event: KeyboardEvent) => void): void {\n this.triggerKeydownHandler = handler;\n }\n\n setFocusItemHandler(\n handler: (host: HTMLElement, a11y?: MenuKeyboardFocusA11y) => void,\n ): void {\n this.focusItemHandler = handler;\n }\n\n setSyncTriggerHandler(\n handler: (host: HTMLElement, a11y: MenuKeyboardFocusA11y) => void,\n ): void {\n this.syncTriggerHandler = handler;\n }\n\n setSyncItemHandler(\n handler: (host: HTMLElement, a11y: MenuKeyboardFocusA11y) => void,\n ): void {\n this.syncItemHandler = handler;\n }\n\n registerTrigger(element: HTMLElement): void {\n this.triggerElement = element;\n }\n\n unregisterTrigger(element: HTMLElement): void {\n if (this.triggerElement === element) {\n this.triggerElement = null;\n }\n }\n\n registerList(element: HTMLElement): void {\n this.listElement = element;\n }\n\n unregisterList(element: HTMLElement): void {\n if (this.listElement === element) {\n this.listElement = null;\n }\n }\n\n registerItem(item: T, element: HTMLElement): void {\n this.itemElements.set(item, element);\n }\n\n unregisterItem(item: T, element: HTMLElement): void {\n const registered = this.itemElements.get(item);\n if (registered === element) {\n this.itemElements.delete(item);\n }\n }\n\n unregisterItemElement(element: HTMLElement): void {\n for (const [item, registered] of this.itemElements.entries()) {\n if (registered === element) {\n this.itemElements.delete(item);\n }\n }\n }\n\n getTriggerElement(): HTMLElement | null {\n return this.triggerElement;\n }\n\n getListElement(): HTMLElement | null {\n return this.listElement;\n }\n\n publish(controller: MenuKeyboardController<T>, items: readonly T[]): void {\n const wasOpen = this.isOpen();\n const previousFocusedIndex = this.focusedIndex();\n const nextFocusedIndex = controller.focusedIndex;\n\n this.isOpen.set(controller.isOpen);\n this.focusedIndex.set(nextFocusedIndex);\n this.activeItemClass.set(controller.getActiveItemClass());\n this.actionableItems.set(filterEnabledItems(items));\n\n if (\n controller.isOpen &&\n wasOpen &&\n nextFocusedIndex >= 0 &&\n previousFocusedIndex !== nextFocusedIndex\n ) {\n this.focusRequestVersion.update((value) => value + 1);\n }\n }\n\n isItemActive(item: T): boolean {\n if (!this.isOpen() || this.focusedIndex() < 0) {\n return false;\n }\n\n const items = this.actionableItems();\n return items[this.focusedIndex()] === item;\n }\n\n getItemTabIndex(item: T): number {\n return this.isItemActive(item) ? 0 : -1;\n }\n\n requestActiveItem(item: T): void {\n this.activeItemHandler?.(item);\n }\n\n requestTriggerKeydown(event: KeyboardEvent): void {\n this.triggerKeydownHandler?.(event);\n }\n\n getActiveItemElement(): HTMLElement | null {\n const items = this.actionableItems();\n const index = this.focusedIndex();\n\n if (!this.isOpen() || index < 0 || index >= items.length) {\n return null;\n }\n\n return this.itemElements.get(items[index]) ?? null;\n }\n\n requestItemFocus(host: HTMLElement, a11y?: MenuKeyboardFocusA11y): void {\n if (this.focusItemHandler) {\n this.focusItemHandler(host, a11y);\n return;\n }\n\n host.focus({ preventScroll: true });\n }\n\n requestTriggerAccessibilitySync(\n host: HTMLElement,\n a11y: MenuKeyboardFocusA11y,\n ): void {\n this.syncTriggerHandler?.(host, a11y);\n }\n\n requestItemAccessibilitySync(\n host: HTMLElement,\n a11y: MenuKeyboardFocusA11y,\n ): void {\n this.syncItemHandler?.(host, a11y);\n }\n\n resolveItemFromTarget(target: Node): T | null {\n for (const [item, element] of this.itemElements.entries()) {\n if (element.contains(target)) {\n return item;\n }\n }\n\n return null;\n }\n\n getPort(): MenuKeyboardPort | null {\n return this.portProvider?.() ?? null;\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { MenuKeyboardFacade } from './menu-keyboard.facade';\nimport { MenuKeyboardItem } from './menu-keyboard.model';\n\nexport const MENU_KEYBOARD = new InjectionToken<\n MenuKeyboardFacade<MenuKeyboardItem>\n>('MENU_KEYBOARD');\n","import {\n DestroyRef,\n Directive,\n ElementRef,\n inject,\n Injector,\n input,\n isDevMode,\n output,\n} from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { MenuKeyboardController } from './menu-keyboard.controller';\nimport {\n MenuKeyboardConfig,\n MenuKeyboardFocusA11y,\n MenuKeyboardItem,\n MenuKeyboardNavigation,\n MenuKeyboardNavigationInput,\n} from './menu-keyboard.model';\nimport {\n MENU_KEYBOARD_PORT,\n MenuKeyboardPort,\n} from './menu-keyboard-port.token';\nimport { assertNever } from '../core/keyboard-action.model';\nimport {\n MenuKeyboardPortIntent,\n MenuKeyboardPortOperationState,\n} from './menu-keyboard.port-state';\nimport { MenuKeyboardFacade } from './menu-keyboard.facade';\nimport { MENU_KEYBOARD } from './menu-keyboard.token';\n\n@Directive({\n selector: '[vMenuKeyboard]',\n exportAs: 'menuKeyboard',\n providers: [\n MenuKeyboardFacade,\n { provide: MENU_KEYBOARD, useExisting: MenuKeyboardFacade },\n ],\n})\nexport class MenuKeyboardDirective<\n T extends MenuKeyboardItem = MenuKeyboardItem,\n> {\n readonly menuKeyboardItems = input<readonly T[]>([]);\n readonly menuKeyboardNavigation =\n input<MenuKeyboardNavigationInput>(undefined);\n readonly menuKeyboardEnableWhenUnset = input(false);\n readonly menuKeyboardDefaults = input<Partial<MenuKeyboardNavigation>>({});\n readonly menuKeyboardItemId = input<(item: T) => string | undefined>(\n (item) => (item as { id?: string }).id,\n );\n readonly menuKeyboardSelect = output<T>();\n\n private readonly facade = inject(MenuKeyboardFacade<T>);\n readonly isOpen = this.facade.isOpen;\n readonly focusedIndex = this.facade.focusedIndex;\n readonly activeItemClass = this.facade.activeItemClass;\n readonly listId = this.facade.listId;\n\n private readonly elementRef = inject(ElementRef<HTMLElement>);\n private readonly document = inject(DOCUMENT);\n private readonly injector = inject(Injector);\n private readonly destroyRef = inject(DestroyRef);\n\n private readonly onDocumentKeydown = (event: KeyboardEvent) =>\n this.handleDocumentKeydown(event);\n\n private portOperationState: MenuKeyboardPortOperationState = 'idle';\n private pendingPortIntent: MenuKeyboardPortIntent | null = null;\n\n private readonly controller = new MenuKeyboardController<T>({\n getItems: (): readonly T[] => this.menuKeyboardItems(),\n getItemId: (item: T): string | undefined => this.menuKeyboardItemId()(item),\n keyboardNavigation: (): MenuKeyboardNavigationInput =>\n this.resolveNavigation(),\n onSelect: (item: T): void => this.menuKeyboardSelect.emit(item),\n onOpen: (): void => {\n this.schedulePortIntent({ type: 'open' });\n },\n onClose: (restoreFocus: boolean): void => {\n this.schedulePortIntent({ type: 'close', restoreFocus });\n },\n } satisfies MenuKeyboardConfig<T>);\n\n constructor() {\n this.facade.setPortProvider(() => this.getPort());\n\n this.facade.setActiveItemHandler((item) => {\n this.controller.setActiveItem(item);\n this.publishState();\n });\n\n this.facade.setTriggerKeydownHandler((event) => {\n this.handleTriggerKeydown(event);\n });\n\n this.facade.setFocusItemHandler((host, a11y) => {\n this.focusItemHost(host, a11y);\n });\n\n this.facade.setSyncTriggerHandler((host, a11y) => {\n this.applyTriggerAccessibility(host, a11y);\n });\n\n this.facade.setSyncItemHandler((host, a11y) => {\n this.applyItemAccessibility(host, a11y);\n });\n\n this.destroyRef.onDestroy(() => {\n this.facade.setTriggerKeydownHandler(() => undefined);\n this.facade.setFocusItemHandler(() => undefined);\n this.facade.setSyncTriggerHandler(() => undefined);\n this.facade.setSyncItemHandler(() => undefined);\n this.facade.setPortProvider(() => null);\n this.unbindDocumentKeydown();\n });\n }\n\n handleOpenChange(open: boolean): void {\n this.controller.handleOpenChange(open);\n\n if (open && !this.controller.isOpen) {\n void this.schedulePortIntent({ type: 'close', restoreFocus: false });\n }\n\n if (this.controller.isOpen) {\n this.bindDocumentKeydown();\n } else {\n this.unbindDocumentKeydown();\n }\n\n this.publishState();\n }\n\n close(restoreFocus = false): void {\n this.schedulePortIntent({ type: 'close', restoreFocus });\n }\n\n focusTrigger(): void {\n const trigger = this.facade.getTriggerElement();\n if (!trigger) {\n return;\n }\n\n const a11y: MenuKeyboardFocusA11y = {\n ariaHaspopup: 'menu',\n ariaExpanded: String(this.facade.isOpen()),\n ariaControls: this.facade.listId(),\n };\n\n const port = this.getPort();\n if (port?.focusTrigger) {\n port.focusTrigger(trigger, a11y);\n return;\n }\n\n trigger.focus({ preventScroll: true });\n }\n\n focusActiveItem(): void {\n if (!this.controller.isOpen || this.controller.focusedIndex < 0) {\n return;\n }\n\n const items = this.controller.actionableItems;\n const item = items[this.controller.focusedIndex];\n const host = this.facade.getActiveItemElement();\n\n if (!item || !host) {\n return;\n }\n\n this.focusItemHost(host, this.buildItemFocusA11y(item));\n }\n\n getTriggerElement(): HTMLElement | undefined {\n return this.facade.getTriggerElement() ?? undefined;\n }\n\n getListElement(): HTMLElement | undefined {\n return this.facade.getListElement() ?? undefined;\n }\n\n isItemActive(item: T): boolean {\n return this.facade.isItemActive(item);\n }\n\n getItemTabIndex(item: T): number {\n return this.facade.getItemTabIndex(item);\n }\n\n hasActionableItems(): boolean {\n return this.controller.actionableItems.length > 0;\n }\n\n private handleTriggerKeydown(event: KeyboardEvent): void {\n if (this.controller.isOpen || !this.controller.isNavigationEnabled()) {\n return;\n }\n\n this.controller.onTriggerKeydown(event);\n this.publishState();\n }\n\n private handleDocumentKeydown(event: KeyboardEvent): void {\n if (!this.controller.isOpen || !this.shouldHandleDocumentKeydown(event)) {\n return;\n }\n\n this.controller.onMenuKeydown(event);\n this.publishState();\n }\n\n private shouldHandleDocumentKeydown(event: KeyboardEvent): boolean {\n const host = this.elementRef.nativeElement;\n const listElement = this.facade.getListElement();\n const path = event.composedPath();\n\n if (path.includes(host)) {\n return true;\n }\n\n return !!(listElement && path.includes(listElement));\n }\n\n private bindDocumentKeydown(): void {\n this.document.removeEventListener('keydown', this.onDocumentKeydown, true);\n this.document.addEventListener('keydown', this.onDocumentKeydown, true);\n }\n\n private unbindDocumentKeydown(): void {\n this.document.removeEventListener('keydown', this.onDocumentKeydown, true);\n }\n\n private focusItemHost(host: HTMLElement, a11y?: MenuKeyboardFocusA11y): void {\n const resolvedA11y =\n a11y ??\n (() => {\n const item = this.facade.resolveItemFromTarget(host);\n return item ? this.buildItemFocusA11y(item) : undefined;\n })();\n\n const port = this.getPort();\n if (port?.focusItem) {\n port.focusItem(host, resolvedA11y);\n return;\n }\n\n host.focus({ preventScroll: true });\n }\n\n private applyTriggerAccessibility(\n host: HTMLElement,\n a11y: MenuKeyboardFocusA11y,\n ): void {\n this.getPort()?.applyTriggerAccessibility?.(host, a11y);\n }\n\n private applyItemAccessibility(\n host: HTMLElement,\n a11y: MenuKeyboardFocusA11y,\n ): void {\n this.getPort()?.applyItemAccessibility?.(host, a11y);\n }\n\n private buildItemFocusA11y(item: T): MenuKeyboardFocusA11y {\n return {\n role: 'menuitem',\n tabIndex: this.getItemTabIndex(item),\n ariaDisabled: String(item.disabled ?? false),\n };\n }\n\n private publishState(): void {\n this.facade.publish(this.controller, this.menuKeyboardItems());\n }\n\n private schedulePortIntent(intent: MenuKeyboardPortIntent): void {\n if (this.portOperationState === 'idle') {\n void this.executePortIntent(intent);\n return;\n }\n\n this.pendingPortIntent = intent;\n }\n\n private async executePortIntent(\n intent: MenuKeyboardPortIntent,\n ): Promise<void> {\n switch (intent.type) {\n case 'open':\n await this.openViaPort();\n return;\n case 'close':\n await this.closeViaPort(intent.restoreFocus);\n return;\n default:\n assertNever(intent);\n }\n }\n\n private async drainPendingPortIntent(): Promise<void> {\n const intent = this.pendingPortIntent;\n this.pendingPortIntent = null;\n\n if (!intent) {\n return;\n }\n\n await this.executePortIntent(intent);\n }\n\n private async openViaPort(): Promise<void> {\n const port = this.getPort();\n if (!port) {\n this.controller.cancelPendingOpen();\n this.publishState();\n return;\n }\n\n this.portOperationState = 'opening';\n try {\n const opened = await port.open();\n if (opened === false) {\n this.controller.cancelPendingOpen();\n }\n } catch (error) {\n this.controller.cancelPendingOpen();\n this.reportPortError('open', error);\n } finally {\n this.portOperationState = 'idle';\n this.publishState();\n await this.drainPendingPortIntent();\n }\n }\n\n private async closeViaPort(restoreFocus: boolean): Promise<void> {\n const port = this.getPort();\n if (!port) {\n return;\n }\n\n this.portOperationState = 'closing';\n try {\n await port.close(restoreFocus);\n } catch (error) {\n this.reportPortError('close', error);\n } finally {\n this.portOperationState = 'idle';\n this.publishState();\n await this.drainPendingPortIntent();\n }\n }\n\n private reportPortError(operation: 'open' | 'close', error: unknown): void {\n if (isDevMode()) {\n console.warn(`[vMenuKeyboard] Port ${operation} failed.`, error);\n }\n }\n\n private getPort(): MenuKeyboardPort | null {\n return this.injector.get(MENU_KEYBOARD_PORT, null, { optional: true });\n }\n\n private resolveNavigation(): MenuKeyboardNavigationInput {\n const input = this.menuKeyboardNavigation();\n const defaults = this.menuKeyboardDefaults();\n\n if (input === false) {\n return false;\n }\n\n if (input === undefined) {\n if (!this.menuKeyboardEnableWhenUnset()) {\n return undefined;\n }\n\n return Object.keys(defaults).length ? defaults : true;\n }\n\n if (input === true) {\n return Object.keys(defaults).length ? defaults : true;\n }\n\n return {\n ...defaults,\n ...input,\n };\n }\n}\n","import { DestroyRef, Directive, ElementRef, effect, inject } from '@angular/core';\nimport { MENU_KEYBOARD } from './menu-keyboard.token';\n\n@Directive({\n selector: '[vMenuKeyboardTrigger]',\n host: {\n 'aria-haspopup': 'menu',\n '[attr.aria-expanded]': 'facade.isOpen()',\n '[attr.aria-controls]': 'facade.listId()',\n '(keydown)': 'onKeydown($event)',\n },\n})\nexport class MenuKeyboardTriggerDirective {\n protected readonly facade = inject(MENU_KEYBOARD);\n private readonly elementRef = inject(ElementRef<HTMLElement>);\n private readonly destroyRef = inject(DestroyRef);\n\n constructor() {\n const element = this.elementRef.nativeElement;\n this.facade.registerTrigger(element);\n\n effect(() => {\n this.facade.requestTriggerAccessibilitySync(element, {\n ariaHaspopup: 'menu',\n ariaExpanded: String(this.facade.isOpen()),\n ariaControls: this.facade.listId(),\n });\n });\n\n this.destroyRef.onDestroy(() => {\n this.facade.unregisterTrigger(element);\n });\n }\n\n onKeydown(event: KeyboardEvent): void {\n this.facade.requestTriggerKeydown(event);\n }\n}\n","import { DestroyRef, Directive, ElementRef, inject } from '@angular/core';\nimport { MENU_KEYBOARD } from './menu-keyboard.token';\n\n@Directive({\n selector: '[vMenuKeyboardList]',\n host: {\n role: 'menu',\n tabindex: '-1',\n '[id]': 'facade.listId()',\n },\n})\nexport class MenuKeyboardListDirective {\n protected readonly facade = inject(MENU_KEYBOARD);\n private readonly elementRef = inject(ElementRef<HTMLElement>);\n private readonly destroyRef = inject(DestroyRef);\n\n constructor() {\n const element = this.elementRef.nativeElement;\n this.facade.registerList(element);\n\n this.destroyRef.onDestroy(() => {\n this.facade.unregisterList(element);\n });\n }\n}\n","import {\n DestroyRef,\n Directive,\n ElementRef,\n effect,\n inject,\n input,\n} from '@angular/core';\nimport { MENU_KEYBOARD } from './menu-keyboard.token';\nimport { MenuKeyboardItem } from './menu-keyboard.model';\n\n@Directive({\n selector: '[vMenuKeyboardItem]',\n host: {\n role: 'menuitem',\n '[attr.tabindex]': 'facade.getItemTabIndex(item())',\n '[attr.aria-disabled]': 'item().disabled ?? false',\n '(mouseenter)': 'onMouseEnter()',\n },\n})\nexport class MenuKeyboardItemDirective<\n T extends MenuKeyboardItem = MenuKeyboardItem,\n> {\n readonly item = input.required<T>({ alias: 'menuKeyboardItem' });\n\n protected readonly facade = inject(MENU_KEYBOARD);\n private readonly elementRef = inject(ElementRef<HTMLElement>);\n private readonly destroyRef = inject(DestroyRef);\n\n constructor() {\n const element = this.elementRef.nativeElement;\n\n effect((onCleanup) => {\n const menuItem = this.item();\n\n this.facade.registerItem(menuItem, element);\n\n onCleanup(() => {\n this.facade.unregisterItem(menuItem, element);\n });\n });\n\n effect(() => {\n const activeClass = this.facade.activeItemClass();\n const isActive = this.facade.isItemActive(this.item());\n element.classList.toggle(activeClass, isActive);\n });\n\n effect(() => {\n this.facade.isOpen();\n this.facade.focusedIndex();\n\n this.facade.requestItemAccessibilitySync(element, {\n role: 'menuitem',\n tabIndex: this.facade.getItemTabIndex(this.item()),\n ariaDisabled: String(this.item().disabled ?? false),\n });\n });\n\n effect(() => {\n this.facade.focusRequestVersion();\n if (!this.facade.isOpen() || !this.facade.isItemActive(this.item())) {\n return;\n }\n\n this.facade.requestItemFocus(element, {\n role: 'menuitem',\n tabIndex: this.facade.getItemTabIndex(this.item()),\n ariaDisabled: String(this.item().disabled ?? false),\n });\n });\n\n this.destroyRef.onDestroy(() => {\n this.facade.unregisterItemElement(element);\n });\n }\n\n onMouseEnter(): void {\n const menuItem = this.item();\n if (menuItem.disabled) {\n return;\n }\n\n this.facade.requestActiveItem(menuItem);\n }\n}\n","import { OnChanges, SimpleChange, SimpleChanges } from '@angular/core';\r\n\r\nexport function setComponentProperties<TComponent>(\r\n component: TComponent,\r\n value: Partial<TComponent>,\r\n firstChange = false\r\n) {\r\n if (!value || !component) {\r\n return;\r\n }\r\n\r\n const simpleChanges = Object.keys(value).reduce(\r\n (changes: SimpleChanges, property: string) => {\r\n const indexedComponent = component as unknown as {\r\n [key: string]: TComponent[keyof TComponent];\r\n };\r\n const indexedValue = value as unknown as {\r\n [key: string]: TComponent[keyof TComponent];\r\n };\r\n const previousValue = indexedComponent[property];\r\n const currentValue = indexedValue[\r\n property\r\n ] as TComponent[keyof TComponent];\r\n if (currentValue !== previousValue) {\r\n indexedComponent[property] = currentValue;\r\n const change = new SimpleChange(\r\n previousValue,\r\n currentValue,\r\n firstChange\r\n );\r\n\r\n return { ...changes, [property]: change };\r\n }\r\n\r\n return changes;\r\n },\r\n {}\r\n );\r\n\r\n const changeableComponent = component as unknown as OnChanges;\r\n if (changeableComponent['ngOnChanges']) {\r\n changeableComponent.ngOnChanges(simpleChanges);\r\n }\r\n}\r\n","export enum ControlSeverity {\r\n success = 'success',\r\n info = 'info',\r\n warning = 'warning',\r\n danger = 'danger',\r\n help = 'help',\r\n primary = 'primary',\r\n secondary = 'secondary',\r\n contrast = 'contrast',\r\n}\r\n\r\nexport enum GovControlSeverity {\r\n primary = 'primary',\r\n secondary = 'secondary',\r\n neutral = 'neutral',\r\n error = 'error',\r\n success = 'success',\r\n warning = 'warning',\r\n}\r\n\r\nexport enum GovButtonType {\r\n solid = 'solid',\r\n outlined = \"outlined\",\r\n base = \"base\",\r\n link = \"link\"\r\n}\r\n\r\nexport enum IconPosition {\r\n left = 'left',\r\n right = 'right',\r\n}\r\n\r\nexport enum SlotPosition {\r\n top = 'top',\r\n bottom = 'bottom',\r\n}\r\n\r\nexport enum Position{\r\n top = 'top',\r\n bottom = 'bottom',\r\n left = 'left',\r\n right = 'right',\r\n}\r\n\r\nexport enum FieldSize {\r\n small = 'small',\r\n medium = 'medium',\r\n large = 'large',\r\n xl = 'xl',\r\n}\r\n\r\nexport enum FieldAlign {\r\n left = 'left',\r\n center = 'center',\r\n right = 'right',\r\n}\r\n\r\nexport enum FieldType {\r\n text = 'text',\r\n number = 'number',\r\n password = 'password',\r\n search = 'search',\r\n date = 'date',\r\n}\r\n\r\nexport enum LayoutType {\r\n horizontal = 'horizontal',\r\n vertical = 'vertical',\r\n}\r\n\r\nexport type ControlSeverityType = keyof typeof ControlSeverity;\r\nexport type GovControlSeverityType = keyof typeof GovControlSeverity;\r\nexport type GovButtonTypeType = keyof typeof GovButtonType;\r\nexport type IconPositionType = keyof typeof IconPosition;\r\nexport type SlotPositionType = keyof typeof SlotPosition;\r\nexport type PositionType = keyof typeof Position;\r\nexport type FieldSizeType = keyof typeof FieldSize;\r\nexport type FieldAlignType = keyof typeof FieldAlign;\r\nexport type FieldTypeType = keyof typeof FieldType;\r\nexport type LayoutTypeType = keyof typeof LayoutType;\r\n","export const DEFAULT_DEBOUNCE_TIME = 300;\n\nexport const DEFAULT_PAGINATION = [10, 25, 50, 100];\n\nexport const MAX_COLUMN_CHAR_COUNT = 30;","import { EventEmitter, SimpleChanges } from '@angular/core';\r\nimport { FilterEvent, LazyLoadEvent, RequestParams } from '@verisoft/core';\r\n\r\nexport interface DataSourceComponentModel<TEntity> {\r\n ngOnChanges?: (changes: SimpleChanges) => void;\r\n lazy: boolean;\r\n loading: boolean;\r\n filter: boolean;\r\n options: TEntity[] | undefined;\r\n optionValue: string | undefined;\r\n optionLabel: string | undefined;\r\n showed: EventEmitter<any>;\r\n cleared: EventEmitter<any>;\r\n filtered: EventEmitter<FilterEvent>;\r\n lazyLoad: EventEmitter<LazyLoadEvent>;\r\n}\r\n\r\nexport function setDataToArray<T>(\r\n targetArray: (T | undefined)[] | undefined,\r\n data: T[],\r\n offset = 0,\r\n total: number | undefined = undefined,\r\n defaultItem: T | undefined = undefined\r\n): (T | undefined)[] {\r\n const totalItems = total ?? data.length + offset;\r\n if (!targetArray) {\r\n targetArray = Array(totalItems).fill(defaultItem);\r\n }\r\n\r\n if (targetArray.length < totalItems) {\r\n targetArray = targetArray.concat(\r\n new Array(totalItems - targetArray.length).fill(defaultItem)\r\n );\r\n }\r\n\r\n for (let i = 0; i < data.length; i++) {\r\n targetArray[i + offset] = data[i] ?? defaultItem;\r\n }\r\n\r\n return targetArray;\r\n}\r\n\r\nexport type ExtendedRequestType<T> = RequestParams<T> & { useNewData: boolean}\r\n","export function isFilterEmpty<T>(filter: Partial<T> | undefined) {\r\n if (filter == undefined) {\r\n return true;\r\n }\r\n\r\n return !Object.entries(filter).some((x) => x[1] != undefined);\r\n}\r\n","import { QueryList } from '@angular/core';\r\nimport { debounceTime, map, merge, startWith, switchMap } from 'rxjs';\r\nimport { NotificableProperty } from './notificable-property.model';\r\n\r\nexport function queryListChanged<TEntity>(list: QueryList<TEntity>) {\r\n return list.changes.pipe(\r\n startWith({}),\r\n switchMap(() => {\r\n const actionPropertyChanges$ = list\r\n .toArray()\r\n .filter((action) => (<NotificableProperty>action).propertyChanged)\r\n .map((action) => (<NotificableProperty>action).propertyChanged);\r\n\r\n return merge(...actionPropertyChanges$).pipe(\r\n startWith({}),\r\n map(() => list.toArray())\r\n );\r\n }),\r\n debounceTime(50)\r\n );\r\n}\r\n","export function downloadText(\r\n filename: string,\r\n text: string,\r\n mimeType: string | undefined = 'text/plain'\r\n): void {\r\n const blob = new Blob([text], { type: mimeType });\r\n downloadFile(filename, blob);\r\n}\r\n\r\nexport function downloadFile(\r\n filename: string,\r\n blob: Blob\r\n): void {\r\n const url = window.URL.createObjectURL(blob);\r\n const a = document.createElement('a');\r\n a.href = url;\r\n a.download = filename;\r\n a.click();\r\n window.URL.revokeObjectURL(url);\r\n}\r\n","import { InjectionToken } from '@angular/core';\nimport { IconPositionType } from '../../common';\nimport { ActionButton } from './action-button.model';\n\nexport const ACTION_BUTTON_GROUP_COMPONENT_TOKEN =\n new InjectionToken<ActionButtonGroupCore>('ActionButtonGroupComponentToken');\n\nexport interface ActionButtonGroupCore {\n maxItems: number;\n maxItemsMobile: number;\n items: ActionButton[];\n menuIconPos: IconPositionType;\n menuIcon: string;\n label?: string;\n showLabels: boolean;\n}\n","\nimport { Component, inject, Input, OnInit } from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n FormControl,\n FormControlDirective,\n FormControlName,\n FormGroupDirective,\n NgControl,\n NgModel,\n ReactiveFormsModule,\n} from '@angular/forms';\nimport { ERROR_PROVIDER_TOKEN } from '@verisoft/core';\nimport { BaseInputControls } from './models/base-form-input.models';\n\nconst noop = () => {\n /* */\n};\n\n@Component({\n template: '',\n imports: [ReactiveFormsModule]\n})\nexport class BaseFormInputComponent\n implements BaseInputControls<any>, ControlValueAccessor, OnInit\n{\n readonly ngControl?: NgControl;\n\n readonly errorService = inject(ERROR_PROVIDER_TOKEN);\n\n formControl!: FormControl;\n\n constructor(private readonly control: NgControl) {\n this.ngControl = control;\n if (this.control) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n @Input()\n label?: string;\n\n @Input()\n required = false;\n\n @Input()\n readonly!: boolean;\n\n @Input()\n disabled!: boolean;\n\n @Input()\n tooltip!: string;\n\n @Input()\n formDisplay: 'flex' | 'block' = 'flex';\n\n @Input()\n clearable = true;\n\n @Input()\n placeholder?: string = '';\n\n @Input()\n testId?: string;\n\n inputId = Math.random().toString(36).substring(2);\n\n selectionChanged: any = noop;\n\n onTouch: any = noop;\n\n registerOnChange(fn: any): void {\n this.selectionChanged = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouch = fn;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n writeValue(value: any): void {}\n\n ngOnInit(): void {\n if (this.ngControl) {\n if (this.ngControl instanceof FormControlName) {\n this.formControl =\n this.ngControl.control ||\n ((this.ngControl.formDirective as FormGroupDirective)?.form.controls[\n this.ngControl.name as string\n ] as FormControl);\n } else if (\n this.ngControl instanceof FormControlDirective ||\n this.ngControl instanceof NgModel\n ) {\n this.formControl = this.ngControl.control;\n if (this.ngControl instanceof NgModel) {\n this.formControl.valueChanges.subscribe(() =>\n this.ngControl?.viewToModelUpdate(this.control?.value)\n );\n }\n } else {\n this.formControl = new FormControl();\n }\n } else {\n this.formControl = new FormControl();\n }\n }\n\n isRequired() {\n if (this.ngControl) {\n const validator = this.ngControl?.control?.validator?.(\n {} as AbstractControl\n );\n return this.required || (validator && validator['required']);\n }\n return this.required;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ScreenSizeService {\n isMobileBlock = new BehaviorSubject<boolean>(false);\n prevState = false;\n\n constructor() {\n this.checkScreenSize();\n window.addEventListener('resize', async () => {\n await this.checkScreenSize();\n });\n }\n\n async checkScreenSize() {\n const isMobile = window.matchMedia('(max-width: 768px)').matches;\n if (isMobile !== this.prevState) {\n this.prevState = isMobile;\n this.isMobileBlock.next(isMobile);\n }\n }\n}\n","import { EventEmitter, Injectable, Output } from '@angular/core';\nimport { ExtendedDialogData } from '../components';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DialogService {\n @Output() showEvent: EventEmitter<ExtendedDialogData> =\n new EventEmitter<ExtendedDialogData>();\n\n @Output() closeEvent: EventEmitter<null> = new EventEmitter();\n\n private currentDialogData: ExtendedDialogData | null = null;\n\n showDialog<TInputs, TOutputs>(\n data: ExtendedDialogData<TInputs, TOutputs>\n ): void {\n const mappedData = this.mapInputAndOutpus(data);\n const dialogData = {\n ...data,\n data: mappedData,\n };\n\n this.currentDialogData = dialogData;\n this.showEvent.emit(dialogData);\n }\n\n updateDialog<TInputs = unknown, TOutputs = unknown>(\n patch: Partial<ExtendedDialogData<TInputs, TOutputs>>\n ): void {\n if (!this.currentDialogData) {\n return;\n }\n\n const mergedDialogData: ExtendedDialogData = {\n ...this.currentDialogData,\n ...patch,\n data: this.currentDialogData.data,\n componentType: this.currentDialogData.componentType,\n };\n\n this.currentDialogData = mergedDialogData;\n this.showEvent.emit(mergedDialogData);\n }\n\n private mapInputAndOutpus<TInputs, TOutputs>(\n data: ExtendedDialogData<TInputs, TOutputs>\n ): ExtendedDialogData<TInputs, TOutputs> {\n const inputsAndOutputs = data.data as TInputs & TOutputs;\n return {\n ...data.data,\n ...Object.keys(inputsAndOutputs ?? {})\n .filter(\n (key) => typeof inputsAndOutputs[key as keyof TOutputs] === 'function'\n )\n .reduce((acc, key) => {\n acc[key] = (value: unknown) => {\n if (typeof inputsAndOutputs[key as keyof TOutputs] === 'function') {\n (\n inputsAndOutputs[key as keyof TOutputs] as (\n value: unknown\n ) => void\n )(value);\n }\n };\n return acc;\n }, {} as Record<string, unknown>),\n };\n }\n\n closeModal(): void {\n this.currentDialogData = null;\n this.closeEvent.emit();\n }\n}\n","import { Injectable, inject } from '@angular/core';\nimport { CanDeactivate } from '@angular/router';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Observable, Subject } from 'rxjs';\nimport { PreventUnsavedChangesCore, CommonIcons } from '../common';\nimport { DialogService } from './confirm-dialog.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PreventUnsavedChangesDirective implements CanDeactivate<PreventUnsavedChangesCore> {\n private dialogService = inject(DialogService);\n private translateService = inject(TranslateService);\n private readonly Icons!: CommonIcons;\n\n canDeactivate(component: PreventUnsavedChangesCore): Observable<boolean> | Promise<boolean> | boolean {\n if (!component || !component.canDeactivate) {\n return true;\n }\n const result = component.canDeactivate();\n return result;\n }\n\n showConfirmationDialog(): Observable<boolean> {\n const resultSubject = new Subject<boolean>();\n\n const title = this.translateService.instant('VALIDATIONS.UNSAVED_CHANGES');\n const message = this.translateService.instant('VALIDATIONS.LEAVING_UNSAVED_FORM');\n const leaveButton = this.translateService.instant('BUTTONS.LEAVE');\n const stayButton = this.translateService.instant('BUTTONS.STAY');\n\n this.dialogService.showDialog({\n title: title,\n headerIcon: this.Icons.infoCircle,\n innerHTML: `<p>${message}</p>`,\n showCancelButton: true,\n confirmButtonText: stayButton,\n cancelButtonText: leaveButton,\n confirmButtonFn: () => {\n resultSubject.next(false);\n resultSubject.complete();\n this.dialogService.closeModal();\n },\n cancelButtonFn: () => {\n resultSubject.next(true);\n resultSubject.complete();\n this.dialogService.closeModal();\n },\n });\n\n return resultSubject.asObservable();\n }\n}\n","import { Injectable, signal } from \"@angular/core\";\nimport { TableSignal } from \"../components\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class TableService {\n readonly reload = signal<TableSignal | symbol>(Symbol())\n\n /**\n * If name is set, reload a specific table with the set`[tableName]`\n *\n * If name is NOT set, reload all tables in the current DOM\n * */\n forceReload(name?: string): void {\n if (name) {\n this.reload.set({ name: name, symbol: Symbol() });\n } else {\n this.reload.set(Symbol());\n }\n }\n}\n","import { NgControl } from '@angular/forms';\n\nexport abstract class BaseInputControls<T> {\n value?: T | null;\n\n readonly ngControl?: NgControl;\n\n readonly label?: string;\n\n readonly required!: boolean;\n}\n","export interface BaseFormCore {\n label?: string;\n required: boolean;\n readonly: boolean;\n tooltip: string;\n formDisplay: 'flex' | 'block';\n clearable: boolean;\n placeholder?: string\n testId?: string;\n}\n\nexport interface BaseFormDirectiveCore<T> {\n initialData: T | any;\n}\n\nexport interface FormState {\n dirty: boolean;\n valid: boolean;\n}\n\nexport function isFormStateEqual(current: FormState, other: FormState) {\n if (!current && !other) {\n return true;\n }\n\n if (current && other) {\n return current.dirty === other.dirty && current.valid === other.valid;\n }\n\n return false;\n}\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Directive,\n EventEmitter,\n HostListener,\n inject,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n ViewChild,\n} from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { cloneDeep } from '@verisoft/core';\nimport { Subject, takeUntil, filter, map, Observable } from 'rxjs';\nimport { PreventUnsavedChangesCore } from '../../common';\nimport { PreventUnsavedChangesDirective } from '../../services';\nimport { FormState, isFormStateEqual } from './models';\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[v-baseForm]',\n standalone: true,\n})\nexport abstract class BaseFormDirective<T extends object>\n implements OnInit, OnChanges, OnDestroy, AfterViewInit, PreventUnsavedChangesCore\n{\n @Input() data!: T | any;\n @Output() dataChange = new EventEmitter<T>();\n @Output() statusChange = new EventEmitter<FormState>();\n @Output() formSubmit = new EventEmitter<T>();\n @Output() formClear = new EventEmitter<void>();\n\n formDestroyed$ = new Subject<void>();\n keys: { key: string; alias?: string; type?: string; readOnly: string }[] = [];\n formGroup!: FormGroup;\n cd = inject(ChangeDetectorRef);\n valueInitialization = false;\n lastState!: FormState;\n guardViewChild!: ViewChild;\n formSubmitted = false;\n protected guard = inject(PreventUnsavedChangesDirective);\n\n @HostListener('window:beforeunload', ['$event'])\n unloadHandler(event: BeforeUnloadEvent) {\n if (this.formGroup.dirty) {\n event.preventDefault();\n }\n }\n\n canDeactivate(): Observable<boolean> | Promise<boolean> | boolean {\n if (this.formGroup.dirty && !this.formSubmitted) {\n const result = this.guard.showConfirmationDialog();\n return result;\n }\n\n return true;\n }\n\n ngOnInit(): void {\n this.initializeFormGroup();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['data'] && this.formGroup) {\n this.valueInitialization = true;\n const dirty = this.formGroup.dirty;\n\n this.formGroup.patchValue(this.fromModel(this.data), {\n emitEvent: false,\n onlySelf: true,\n });\n\n this.formGroup.updateValueAndValidity();\n if (!dirty) {\n this.formGroup.markAsPristine();\n }\n\n this.valueInitialization = false;\n this.createAndEmitIfFormStateChanged();\n }\n }\n\n ngAfterViewInit() {\n this.cd.detectChanges();\n }\n\n ngOnDestroy(): void {\n this.formDestroyed$.next();\n this.formDestroyed$.complete();\n }\n\n abstract createFormGroup(): FormGroup;\n\n createCompleteData() {\n const change = this.toModel(this.formGroup?.value);\n this.recursiveObjectAttributesTransformation(change);\n const updatedData = this.applyChanges(\n cloneDeep(this.data),\n cloneDeep(change)\n );\n\n return updatedData;\n }\n\n submit() {\n this.formSubmitted = true;\n this.formGroup.markAllAsTouched();\n if (!this.formGroup.invalid) {\n this.formSubmit.emit(this.createCompleteData());\n }\n this.formGroup.markAsPristine();\n }\n\n clear() {\n this.formClear.emit();\n }\n\n private initializeFormGroup() {\n this.formGroup = this.createFormGroup();\n this.valueInitialization = true;\n this.formGroup.patchValue(this.fromModel(this.data), {\n emitEvent: false,\n onlySelf: true,\n });\n\n this.formGroup.markAsPristine();\n this.initValueChanges();\n this.initStatusChanges();\n this.valueInitialization = false;\n }\n\n private initValueChanges() {\n this.formGroup.valueChanges\n .pipe(\n takeUntil(this.formDestroyed$),\n filter(() => !this.valueInitialization),\n map((value) => {\n const change = this.toModel(value);\n this.recursiveObjectAttributesTransformation(change);\n const updatedData = this.applyChanges(\n cloneDeep(this.data),\n cloneDeep(change)\n );\n return updatedData;\n })\n )\n .subscribe((updatedData) => {\n this.dataChange.emit(updatedData);\n });\n }\n\n private initStatusChanges() {\n this.formGroup.statusChanges\n .pipe(takeUntil(this.formDestroyed$))\n .subscribe(() => {\n if (!this.valueInitialization) {\n this.createAndEmitIfFormStateChanged();\n }\n });\n\n this.createAndEmitIfFormStateChanged();\n }\n\n private createAndEmitIfFormStateChanged() {\n const formState: FormState = {\n valid: !this.formGroup.invalid,\n dirty: this.formGroup.dirty,\n };\n\n if (!isFormStateEqual(formState, this.lastState)) {\n this.lastState = formState;\n this.statusChange.emit(formState);\n }\n }\n\n protected applyChanges(data: T, changes: Partial<T>): T {\n return Object.assign(data || ({} as T), changes);\n }\n\n protected toModel(data: T): Partial<T> {\n return data || {};\n }\n\n protected fromModel(data: T): T {\n return { ...(data || {}) } as T;\n }\n\n private recursiveObjectAttributesTransformation(obj: any): void {\n this.recursiveObjectAttributesTraversal(\n obj,\n this.transformEmptyStringToNullStringFn\n );\n }\n\n private recursiveObjectAttributesTraversal(\n obj: any,\n transformationFn: (obj: any, key: string) => void\n ) {\n if (\n obj === null ||\n transformationFn === null ||\n typeof transformationFn !== 'function'\n ) {\n return;\n }\n\n const traverse = (obj: any) => {\n for (const key in obj) {\n // eslint-disable-next-line no-prototype-builtins\n if (obj.hasOwnProperty(key)) {\n transformationFn(obj, key);\n\n if (typeof obj[key] === 'object') {\n traverse(obj[key]);\n }\n }\n }\n };\n\n traverse(obj);\n }\n\n private transformEmptyStringToNullStringFn(obj: any, key: string) {\n // if empty string - transformation to null string\n if (typeof obj[key] === 'string' && obj[key] === '') {\n try {\n obj[key] = null;\n } catch (error) {\n console.error(`Cannot modify ${key}: ${error}`)\n }\n }\n }\n}\n","import { Directive, OnDestroy } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Directive()\nexport abstract class UnsubscribeComponent implements OnDestroy {\n destroyed$ = new Subject<void>();\n\n ngOnDestroy() {\n this.destroyed$.next();\n this.destroyed$.complete();\n }\n}\n","import {\n Directive,\n AfterViewInit,\n inject,\n Input,\n OnInit,\n ChangeDetectorRef,\n OnDestroy,\n} from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { createFeatureSelector, createSelector, Store } from '@ngrx/store';\nimport {\n BackendValidationError,\n createInitDetailAction,\n createInitNewDetailAction,\n createResetStateAction,\n createUpdateDetailAction,\n createUpdateDetailSetErrorsAction,\n createUpdateFormStateAction,\n DetailState,\n} from '@verisoft/store';\nimport { takeUntil } from 'rxjs';\nimport { UnsubscribeComponent } from '../../unsubscribe.component';\nimport { BaseFormDirective } from '../base-form.component';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[v-useDetailStore]',\n exportAs: 'useDetailStore',\n standalone: true,\n})\nexport class DetailStoreDirective\n extends UnsubscribeComponent\n implements OnInit, AfterViewInit, OnDestroy\n{\n @Input({ required: true }) form!: BaseFormDirective<any>;\n\n @Input({ required: true }) detailsRepository!: string;\n\n @Input() autoBind = true;\n\n @Input() detailId!: string | number | undefined;\n\n @Input({ required: true }) ngrxFeatureKey!: string;\n\n @Input() destroyForm = true;\n\n @Input() readonly = false;\n\n @Input() readonlyControlNames: string[] = [];\n\n store = inject(Store);\n cdr = inject(ChangeDetectorRef);\n route = inject(ActivatedRoute);\n\n private itemCache: any = null;\n private loaded!: boolean;\n\n ngOnInit(): void {\n if (!this.loaded) {\n this.listenFormState();\n }\n this.listenFormChange();\n this.listenFormStatusChange();\n }\n\n ngAfterViewInit(): void {\n if (this.autoBind && !this.loaded) {\n this.initForm();\n }\n }\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n if (this.destroyForm) {\n this.store.dispatch(createResetStateAction(this.detailsRepository)());\n }\n }\n\n private initForm() {\n if (this.detailId === 'create') {\n this.store.dispatch(createInitNewDetailAction(this.detailsRepository)());\n } else {\n this.store.dispatch(\n createInitDetailAction(this.detailsRepository)({ obj: this.detailId })\n );\n }\n\n if (this.readonly) {\n this.form.formGroup.disable();\n return;\n }\n\n this.readonlyControlNames.forEach(x => {\n this.form.formGroup.get(x)?.disable();\n });\n }\n\n private listenFormState() {\n const selectIncomeData = createSelector(\n createFeatureSelector<any>(this.ngrxFeatureKey),\n (state: any) => state?.[this.detailsRepository] as DetailState<any>\n );\n this.store\n .select(selectIncomeData)\n .pipe(takeUntil(this.destroyed$))\n .subscribe(\n (\n { item, loaded, backendValidationErrors } = {\n item: undefined,\n loaded: false,\n saveItemState: { saveInProgress: false },\n backendValidationErrors: []\n }\n ) => {\n if (item\n && ((item.validationErrors || item.validationWarnings) && !this.form.formGroup.dirty)\n || backendValidationErrors.length\n ) {\n this.handleValidation(\n 'propertyName',\n item.validationWarnings || [],\n 'validationWarning',\n 'warningMessage'\n );\n this.handleValidation(\n 'propertyName',\n item.validationErrors || [],\n 'validationError',\n 'errorMessage'\n );\n\n if (this.itemCache && this.isStateChanged(item) && backendValidationErrors.length) {\n backendValidationErrors = this.dispatchErrors(item, backendValidationErrors);\n }\n\n this.handleBackendValidation(backendValidationErrors);\n this.cdr.markForCheck();\n }\n\n this.itemCache = item;\n\n this.loaded = loaded;\n this.cdr.detectChanges();\n }\n );\n }\n\n private listenFormChange() {\n this.form.dataChange.pipe(takeUntil(this.destroyed$)).subscribe((item) => {\n this.store.dispatch(\n createUpdateDetailAction(this.detailsRepository)({ item })\n );\n });\n }\n\n private listenFormStatusChange() {\n this.form.statusChange\n .pipe(takeUntil(this.destroyed$))\n .subscribe((formState) => {\n this.store.dispatch(\n createUpdateFormStateAction(this.detailsRepository)({ formState })\n );\n });\n }\n\n private handleValidation = (\n controlName: string,\n errors: any[],\n errorKey: string,\n messageKey: string\n ) => {\n if (errors.length > 0) return;\n errors.forEach((error: any) => {\n const control = this.form.formGroup.get(error[controlName]);\n if (control) {\n control.disabled\n ? control.disable({ emitEvent: false, onlySelf: true })\n : control.enable({ emitEvent: false, onlySelf: true });\n control.setErrors(\n { [errorKey]: error[messageKey] },\n { emitEvent: true }\n );\n control.markAsDirty();\n }\n });\n };\n\n private handleBackendValidation(errors: BackendValidationError[]) {\n errors.forEach(({ parameters, code }: BackendValidationError) => {\n const control = this.form.formGroup.get(this.normalizePropertyNames(parameters));\n if (!control) return;\n\n control[control.disabled ? \"disable\" : \"enable\"]({ emitEvent: false, onlySelf: true });\n control.setErrors({ \"validationError\": code }, { emitEvent: true });\n control.markAsDirty();\n });\n }\n\n private dispatchErrors(item: any, errors: BackendValidationError[]): BackendValidationError[] {\n const error = errors.filter((e: BackendValidationError) => {\n return this.itemCache[this.normalizePropertyNames(e.parameters)] === item[this.normalizePropertyNames(e.parameters)];\n });\n\n this.store.dispatch(\n createUpdateDetailSetErrorsAction(this.detailsRepository)({ error })\n );\n\n return error;\n }\n\n private normalizePropertyNames(input: string): string {\n return String(input[0]).toLocaleLowerCase() + String(input).slice(1);\n }\n\n private isStateChanged(item: any): boolean {\n return item !== this.itemCache;\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { ActivatedRoute } from \"@angular/router\";\nimport { MenuItem } from '../side-menu';\n\nexport const BREADCRUMB_COMPONENT_TOKEN = new InjectionToken<BreadcrumbCore>(\n 'BreadcrumbComponentToken'\n);\n\nexport interface BreadcrumbCore {\n items: MenuItem[];\n homeRoute: string;\n useHomeRoute: boolean;\n}\n\nexport interface Breadcrumb {\n label: string;\n routerLink?: string;\n url?: string;\n active?: boolean;\n activatedRoute?: ActivatedRoute;\n}\n","import { EventEmitter, Injectable, Output } from '@angular/core';\nimport { Breadcrumb } from './breadcrumb.model';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class BreadcrumbService {\n @Output() routeChange: EventEmitter<Breadcrumb> = new EventEmitter();\n}\n","import {\n ChangeDetectorRef,\n Directive,\n Input,\n inject,\n OnInit,\n} from '@angular/core';\nimport { ActivatedRoute, NavigationEnd, Router } from '@angular/router';\nimport { filter, takeUntil } from 'rxjs';\nimport { MenuItem } from '../side-menu';\nimport { UnsubscribeComponent } from '../unsubscribe.component';\nimport { BreadcrumbCore } from './breadcrumb.model';\nimport { BreadcrumbService } from './breadcrumb.service';\n\n@Directive({\n \n})\nexport class BreadcrumbCoreComponent\n extends UnsubscribeComponent\n implements BreadcrumbCore, OnInit\n{\n @Input() items: MenuItem[] = [];\n @Input() homeRoute = '/';\n @Input() useHomeRoute = false;\n\n static readonly ROUTE_DATA_BREADCRUMB = 'breadcrumb';\n static readonly ROUTE_DATA_BREADCRUMB_URL = 'breadcrumb_url';\n static readonly ROUTE_DATA_NO_BREADCRUMB_ROUTE = 'breadcrumb_no_route';\n static readonly BREADCRUMB_HIDE = 'breadcrumb_hide';\n readonly home = { icon: 'pi pi-home', routerLink: this.homeRoute };\n\n router = inject(Router);\n activatedRoute = inject(ActivatedRoute);\n breadcrumbService = inject(BreadcrumbService);\n cdr = inject(ChangeDetectorRef);\n\n ngOnInit(): void {\n this.initBreadcrumbsCreation();\n this.initRouteChangeListen();\n }\n\n private initBreadcrumbsCreation() {\n this.router.events\n .pipe(\n filter((event) => event instanceof NavigationEnd),\n takeUntil(this.destroyed$)\n )\n .subscribe(\n () => (this.items = this.createBreadcrumbs(this.activatedRoute.root))\n );\n }\n\n private initRouteChangeListen() {\n this.breadcrumbService.routeChange\n .pipe(\n filter((x) => x.label !== 'Undefined'),\n takeUntil(this.destroyed$)\n )\n .subscribe((x) => {\n this.items = [\n ...this.items,\n {\n label: x.label,\n routerLink: x.routerLink,\n url: x.url,\n class: 'breadcrumb',\n },\n ];\n this.cdr.detectChanges();\n });\n }\n\n private createBreadcrumbs(\n route: ActivatedRoute,\n routerLink = '',\n breadcrumbs: MenuItem[] = []\n ): any {\n const children: ActivatedRoute[] = route.children;\n\n if (children.length === 0) {\n return breadcrumbs;\n }\n\n for (const child of children) {\n const routeURL: string = child.snapshot.url\n .map((segment) => segment.path)\n .join('/');\n\n if (!child.snapshot.data[BreadcrumbCoreComponent.BREADCRUMB_HIDE]) {\n if (BreadcrumbCoreComponent.ROUTE_DATA_BREADCRUMB_URL !== undefined) {\n const route =\n child.snapshot.data[BreadcrumbCoreComponent.ROUTE_DATA_BREADCRUMB_URL];\n routerLink += `/${route}`;\n }\n\n if (!BreadcrumbCoreComponent.ROUTE_DATA_BREADCRUMB_URL && routeURL !== '') {\n routerLink += `/${routeURL}`;\n }\n\n const label = child.snapshot.data[BreadcrumbCoreComponent.ROUTE_DATA_BREADCRUMB];\n if (\n label &&\n BreadcrumbCoreComponent.ROUTE_DATA_NO_BREADCRUMB_ROUTE &&\n child.snapshot.data[\n BreadcrumbCoreComponent.ROUTE_DATA_NO_BREADCRUMB_ROUTE\n ]\n ) {\n breadcrumbs.push({ label, routerLink: undefined });\n } else if (label && child.snapshot.routeConfig?.path !== '') {\n breadcrumbs.push({ label, routerLink: routerLink });\n }\n }\n\n return this.createBreadcrumbs(child, routerLink, breadcrumbs);\n }\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { Params } from '@angular/router';\nimport { ControlSeverityType, FieldSizeType, IconPositionType } from '../../common';\n\nexport const BUTTON_COMPONENT_TOKEN = new InjectionToken<ButtonCore>(\n 'ButtonComponentToken'\n);\n\nexport interface ButtonCore {\n label?: string;\n icon?: string;\n badge?: string;\n iconPos: IconPositionType;\n rounded: boolean;\n outlined: boolean;\n raised: boolean;\n severity?: ControlSeverityType;\n routerLink: any[];\n size: FieldSizeType | undefined;\n queryParams?: Params;\n}\n","import { InjectionToken, InputSignal } from \"@angular/core\";\r\nimport { MenuKeyboardNavigationInput } from \"../../accessibility\";\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 keyboardNavigation?: InputSignal<MenuKeyboardNavigationInput>;\r\n}","import { InjectionToken } from '@angular/core';\nimport { BaseFormCore } from '../base-form';\n\nexport const CALENDAR_COMPONENT_TOKEN = new InjectionToken<CalendarCore>(\n 'CalendarComponentToken'\n);\n\nexport interface CalendarCore extends BaseFormCore {\n maxDate: Date;\n icon: string;\n minDate: Date;\n header: string;\n footer: string;\n floatLabel: string | undefined;\n selectionMode: \"single\" | \"multiple\" | \"range\" | undefined;\n}","import { InjectionToken, InputSignal } from '@angular/core';\nimport { BaseFormCore } from '../base-form';\n\nexport const CHECKBOX_COMPONENT_TOKEN = new InjectionToken<CheckboxCore>(\n 'CheckboxComponentToken'\n);\n\nexport interface CheckboxCore extends BaseFormCore {\n indeterminate: InputSignal<boolean>;\n}\n","import { InjectionToken, Type } from '@angular/core';\nimport { SafeHtml } from '@angular/platform-browser';\nimport { ControlSeverityType } from '../../common';\n\nexport const CONFIRM_DIALOG_COMPONENT_TOKEN =\n new InjectionToken<ConfirmDialogCore>('ConfirmDialogComponentToken');\n\nexport type ConfirmDialogCore = object;\n\nexport interface DialogData {\n title?: string;\n headerIcon?: string;\n severity?: ControlSeverityType;\n showCancelButton?: boolean;\n buttonOrder?: 'confirm-cancel' | 'cancel-confirm';\n confirmButtonText?: string;\n confirmButtonDisabled?: boolean;\n confirmButtonFn?: () => void;\n cancelButtonFn?: () => void;\n cancelButtonText?: string;\n innerHTML?: string | SafeHtml;\n data?: unknown;\n componentType?: Type<unknown>;\n closable?: boolean;\n width?: string;\n height?: string;\n}\n\nexport interface ExtendedDialogData<TInputs = unknown, TOutputs = unknown>\n extends DialogData {\n data?: TInputs & TOutputs;\n}\n","import { InjectionToken } from '@angular/core';\nimport { DataSourceComponentModel } from '../../common';\nimport { BaseFormCore } from '../base-form';\n\nexport const DROPDOWN_COMPONENT_TOKEN = new InjectionToken<DropdownCore<any>>(\n 'DropdownComponentToken'\n);\n\nexport interface DropdownCore<T> extends DataSourceComponentModel<T>, BaseFormCore {\n dropdownIcon?: string;\n floatLabel?: string;\n editable: boolean;\n forceMinWidth: boolean;\n showFilter: boolean;\n localSearch: boolean;\n}\n","import { InjectionToken } from '@angular/core';\r\nimport { ControlValueAccessor } from '@angular/forms';\r\nimport { GenericFieldDefinition } from '../generic-form';\r\n\r\nexport const FILTER_COMPONENT_TOKEN = new InjectionToken<FilterCore>(\r\n 'FilterComponentToken'\r\n);\r\n\r\nexport interface FilterCore extends ControlValueAccessor {\r\n fields: GenericFieldDefinition[];\r\n title?: string;\r\n fulltextFieldName: string;\r\n showFulltext: boolean;\r\n showFilters: boolean;\r\n autoBind: boolean;\r\n debounceTime?: number;\r\n filterDetailTitle?: string;\r\n filterDetailShowFulltext: boolean;\r\n applyButtonLabel?: string;\r\n clearButtonLabel?: string;\r\n}\r\n\r\nimport { FormGroup } from '@angular/forms';\r\n\r\nexport function getFilledControlCount(formGroup: FormGroup): number {\r\n let count = 0;\r\n Object.keys(formGroup.controls).forEach((key) => {\r\n const control = formGroup.get(key);\r\n if (control?.value) {\r\n if (typeof control.value === 'boolean') {\r\n count++;\r\n }\r\n if (typeof control.value === 'string' && control.value.trim() !== '') {\r\n count++;\r\n }\r\n }\r\n });\r\n\r\n return count;\r\n}","import { InjectionToken } from '@angular/core';\nimport { NgControl } from '@angular/forms';\n\nexport const FORM_FIELD_COMPONENT_TOKEN = new InjectionToken<FormFieldCore>(\n 'FormFieldComponentToken'\n);\n\nexport interface FormFieldCore {\n ngControl?: NgControl;\n label?: string;\n tooltip?: string;\n required: boolean;\n testId?: string;\n display: 'flex' | 'block';\n}","import { InjectionToken } from '@angular/core';\nimport { DataSourceComponentModel } from '../../common';\nimport { BaseFormCore } from '../base-form';\n\nexport const GENERIC_FIELD_COMPONENT_TOKEN = new InjectionToken<GenericFieldCore<any>>(\n 'GenericFieldComponentToken'\n);\n\nexport interface GenericFieldCore<T> extends DataSourceComponentModel<T>, BaseFormCore {\n}\n","import { ValidatorFn } from '@angular/forms';\r\nimport { DatasourceType } from '@verisoft/core';\r\nimport { FieldSizeType } from '../../common';\r\n\r\nexport interface GenericFieldDefinition {\r\n validator?: ValidatorFn[];\r\n type?: GenericFieldTypeType;\r\n label?: string;\r\n floatLabel?: boolean;\r\n name: string;\r\n optionLabel?: string;\r\n optionValue?: string;\r\n options?: unknown[];\r\n value?: unknown;\r\n testId?: string;\r\n size?: FieldSizeType;\r\n readonly?: boolean;\r\n datasource?: DatasourceType<any>;\r\n filterField?: string;\r\n showFilter?: boolean;\r\n localSearch?: boolean;\r\n}\r\n\r\nexport enum GenericFieldType {\r\n 'dropdown' = 'dropdown',\r\n 'checkbox' = 'checkbox',\r\n 'simplecheckbox' = 'simplecheckbox',\r\n 'calendar' = 'calendar',\r\n 'multiselect' = 'multiselect',\r\n 'text' = 'text',\r\n}\r\n\r\nexport type GenericFieldTypeType = keyof typeof GenericFieldType;\r\n","import { InjectionToken } from '@angular/core';\nimport { MenuItem } from '../side-menu/side-menu.model';\n\nexport const HEADER_COMPONENT_TOKEN = new InjectionToken<HeaderCore>(\n 'HeaderComponentToken'\n);\n\nexport const SETTINGS_MENU = new InjectionToken<MenuItem[]>(\n 'SETTINGS_MENU'\n);\n\nexport interface HeaderCore {\n title: string;\n userName: string;\n logoUrl: string;\n userRole: any | any[] | undefined;\n fixed: boolean;\n userAvatar: string;\n menuRef: HTMLDivElement;\n}\n","import { InjectionToken } from '@angular/core';\nimport { IconPositionType } from '../../common';\nimport { BaseFormCore } from '../base-form';\n\nexport const INPUT_GROUP_COMPONENT_TOKEN = new InjectionToken<InputGroupCore>(\n 'HeaderComponentToken'\n);\n\nexport interface InputGroupItem {\n icon?: string;\n text?: string;\n position: IconPositionType;\n}\n\nexport interface InputGroupCore extends BaseFormCore {\n items: InputGroupItem[];\n}","import { InjectionToken } from '@angular/core';\n\nexport const LOADER_COMPONENT_TOKEN = new InjectionToken<LoaderCore>(\n 'LoaderComponentToken'\n);\n\nexport type LoaderCore = object\n","import { InjectionToken } from '@angular/core';\nimport { DataSourceComponentModel } from '../../common';\nimport { BaseFormCore } from '../base-form';\n\nexport const MULTISELECT_COMPONENT_TOKEN = new InjectionToken<MultiselectCore<any>>(\n 'MultiselectComponentToken'\n);\n\nexport interface MultiselectCore<T> extends DataSourceComponentModel<T>, BaseFormCore {\n dropdownIcon?: string;\n floatLabel?: string;\n editable: boolean;\n}","import { InjectionToken } from '@angular/core';\nimport { BaseFormCore } from '../base-form';\n\nexport const NUMBER_INPUT_COMPONENT_TOKEN = new InjectionToken<NumberInputCore>(\n 'NumberInputComponentToken'\n);\n\nexport interface NumberInputCore extends BaseFormCore {\n decimals: number;\n currency: string;\n min: number;\n max: number;\n step: number | undefined;\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 disabled?: boolean;\n type?: string;\n children?: MenuItem[];\n routerLink?: any;\n class?: string;\n // eslint-disable-next-line @typescript-eslint/ban-types\n command?: Function;\n}\n\ntype ExtendableType = {\n [key: string]:\n | string\n | number\n | boolean\n | string[]\n | number[]\n | boolean[]\n | undefined;\n};\n\nexport interface MenuItemData extends ExtendableType {\n roles?: string[];\n permissions?: string[];\n}\n\nexport interface SideMenuModuleConfig {\n items?: MenuItem[];\n}\n\nexport interface SideMenuCore {\n items: MenuItem[];\n logoUrl: string;\n userName: string;\n userRole: any | any[] | undefined;\n}\n","import { inject, Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { MenuItem, SIDE_MENU_STATE_TOKEN } from '../side-menu.model';\n\n@Injectable({ providedIn: 'root' })\nexport class SideMenuService {\n private _menuItems = new BehaviorSubject<MenuItem[]>([]);\n private stateToken = inject(SIDE_MENU_STATE_TOKEN);\n\n menuItems$: Observable<MenuItem[]> = this._menuItems.asObservable();\n menuMinimalized = false;\n\n setMenu(items: MenuItem[]): void {\n this.resetSidemenuState(items);\n this._menuItems.next(items);\n }\n\n saveMinimalizedState(minimalized: boolean): void {\n this.stateToken.minimalized = minimalized;\n localStorage.setItem('SideMenuStateToken', JSON.stringify(this.stateToken));\n }\n\n saveExpandedState(item: MenuItem): void {\n const expanded = this.stateToken.expanded?.find(\n (i: string) => i === item.label\n );\n\n if (!expanded) {\n this.stateToken.expanded?.push(item.label!);\n localStorage.setItem(\n 'SideMenuStateToken',\n JSON.stringify(this.stateToken)\n );\n return;\n }\n\n this.stateToken.expanded = this.stateToken.expanded?.filter(\n (i: string) => i !== item.label\n );\n\n localStorage.setItem('SideMenuStateToken', JSON.stringify(this.stateToken));\n }\n\n private resetSidemenuState(items: MenuItem[]) {\n if (typeof this.stateToken === 'string') {\n this.stateToken = JSON.parse(this.stateToken);\n }\n\n this.menuMinimalized = this.stateToken.minimalized;\n const localStorageValue = this.stateToken.expanded;\n\n if (!localStorageValue) return;\n if (items) {\n for (let index = 0; index < items.length; index++) {\n const element = items[index];\n element.expanded = !!localStorageValue.find(\n (i: string) => i === element.label\n );\n }\n }\n }\n}\n","import { Injectable, Optional, Inject } from '@angular/core';\nimport { MENU_TOKEN, MenuItem } from '../side-menu.model';\nimport { SideMenuService } from './side-menu.service';\n\n@Injectable()\nexport class SideMenuProviderService {\n constructor(\n @Optional() @Inject(MENU_TOKEN) readonly menu: MenuItem[] = [],\n readonly menuService: SideMenuService\n ) {\n menuService.setMenu(menu);\n }\n}\n","import { AfterViewInit, ChangeDetectorRef, Directive, inject } from \"@angular/core\";\nimport { takeUntil } from \"rxjs\";\nimport { UnsubscribeComponent } from \"../../unsubscribe.component\";\nimport { SideMenuService } from \"../services/side-menu.service\";\nimport { SIDE_MENU_COMPONENT_TOKEN } from \"../side-menu.model\";\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'v-side-menu[useMenuService]',\n exportAs: 'useMenuService',\n standalone: true,\n})\nexport class MenuServiceDirective\n extends UnsubscribeComponent\n implements AfterViewInit\n{\n private readonly menuService = inject(SideMenuService);\n private readonly cdr = inject(ChangeDetectorRef);\n private readonly sideMenu = inject(SIDE_MENU_COMPONENT_TOKEN);\n\n ngAfterViewInit() {\n this.menuService.menuItems$.pipe(takeUntil(this.destroyed$)).subscribe((items) => {\n\n if (this.sideMenu) {\n this.sideMenu.items = items;\n }\n });\n\n this.cdr.detectChanges();\n }\n}","import { InjectionToken } from '@angular/core';\nimport { BaseFormCore } from '../base-form';\n\nexport const SLIDER_COMPONENT_TOKEN = new InjectionToken<SliderCore>(\n 'SliderComponentToken'\n);\n\nexport interface SliderCore extends BaseFormCore {\n step: number;\n min: number;\n max: number;\n range: boolean;\n}","import { InjectionToken } from '@angular/core';\n\nexport const SNACKBAR_COMPONENT_TOKEN = new InjectionToken<SnackbarCore>(\n 'SnackbarComponentToken'\n);\n\nexport type SnackbarCore = object\n","import { EventEmitter, InjectionToken, TemplateRef } from \"@angular/core\";\nimport { FieldSizeType, LayoutTypeType } from \"../../common\";\n\nexport const STEPPER_COMPONENT_TOKEN = new InjectionToken<StepperCore>(\n 'StepperComponentToken'\n);\n\nexport interface StepperItem {\n header: string;\n template?: TemplateRef<any>;\n annotation?: string;\n prefix?: string;\n}\n\nexport interface StepperCore {\n items: StepperItem[]\n layout: LayoutTypeType\n activeIndexChange: EventEmitter<number>\n size: FieldSizeType | undefined;\n icon: string;\n prefix: string;\n annotation: string;\n label: string;\n}","import { InjectionToken } from \"@angular/core\";\nimport { BaseFormCore } from \"../base-form\";\n\nexport const SWITCH_COMPONENT_TOKEN = new InjectionToken<SwitchCore>(\n 'SwitchComponentToken'\n);\n\nexport type SwitchCore = BaseFormCore\n","import { EventEmitter, InjectionToken, TemplateRef } from \"@angular/core\";\n\nexport const TAB_VIEW_COMPONENT_TOKEN = new InjectionToken<TabViewCore>(\n 'TabVIewComponentToken'\n);\n\nexport interface TabViewItemCore {\n title: string;\n url?: string;\n icon?: string;\n disabled?: boolean;\n content?: string;\n contentTemplate?: TemplateRef<unknown>; \n}\n\nexport interface TabViewCore {\n items: TabViewItemCore[];\n useRouting: boolean;\n activeIndex: number;\n activeIndexChange: EventEmitter<number>;\n url?: string;\n}","import { EventEmitter, InjectionToken, TemplateRef } from '@angular/core';\nimport { Params } from '@angular/router';\nimport { LazyLoadEvent, Sort, SortDirectionType } from '@verisoft/core';\nimport { v4 } from 'uuid';\nimport { FieldAlignType } from '../../common';\n\nexport const TABLE_COMPONENT_TOKEN = new InjectionToken<TableCore<any>>(\n 'TabVIewComponentToken'\n);\n\nexport const TABLE_COLUMN_PROVIDER = new InjectionToken(\n 'TABLE_COLUMN_PROVIDER'\n);\n\nexport enum TableSelectionMode {\n single = 'single',\n multiple = 'multiple',\n}\n\nexport enum TableButtonSeverity {\n success = 'success',\n info = 'info',\n warning = 'warning',\n danger = 'danger',\n help = 'help',\n primary = 'primary',\n secondary = 'secondary',\n contrast = 'contrast',\n}\n\nexport enum ColumnVisibility {\n visible = 'visible',\n hidden = 'hidden',\n default = 'default',\n}\n\nexport type TableSelectionModeType = keyof typeof TableSelectionMode;\nexport type TableButtonSeverityType = keyof typeof TableButtonSeverity;\nexport type ColumnVisibilityType = keyof typeof ColumnVisibility;\n\nexport interface TableCore<T> {\n sorters: Sort[];\n columns: ColumnDefinition<T>[];\n data: T[];\n total: number;\n filter: Partial<T> | undefined;\n loading: boolean;\n scrollable: boolean;\n pageSize: number;\n currentPage: number;\n showPaginator: boolean;\n sortMultiple: boolean;\n lazy: boolean;\n selection: T[];\n selectionMode: TableSelectionModeType | undefined;\n showPageSizePicker: boolean;\n entityKey: string | undefined;\n selectionChange: EventEmitter<T[]>;\n lazyLoad: EventEmitter<LazyLoadEvent>;\n maximumColumnLength: number;\n disableCustomClicks: boolean;\n}\n\nexport interface TableSignal {\n name: string,\n symbol: symbol\n}\n\nexport interface ActionColumnsDefinition<T> {\n severity?: TableButtonSeverity;\n title?: string;\n icon?: string;\n tooltip?: string;\n rounded?: boolean;\n outlined?: boolean;\n raised?: boolean;\n badge?: string;\n visible?: (row: T) => boolean;\n routerLink?: (row: T) => string;\n queryParams?: Params;\n disabled?: boolean | ((row: T) => boolean);\n onClick?: (row: T, event?: MouseEvent) => void;\n}\n\nexport interface ColumnProvider<T> {\n getDefinition(): ColumnDefinition<T>;\n index: number;\n}\n\nexport interface ColumnDefinition<T, _KEY = keyof T> {\n id: string;\n value?: (row: T, index?: number) => string;\n headerName?: ((columnId: string, index?: number) => string) | string;\n icon?: string | ((row?: T | undefined) => string);\n type?: string;\n sortable?: boolean;\n format?: (row: T) => string\n routerLink?: (row: T) => string | string;\n queryParams?: Params;\n columnClass?: string;\n template?: TemplateRef<{ $implicit: T }>;\n actions?: ActionColumnsDefinition<T>[];\n textAlign?: FieldAlignType;\n width?: string | number;\n forceVisibility?: ColumnVisibilityType;\n visible?: boolean;\n}\n\nexport function LinkRenderer<T>(text: string, href: string) {\n return (row: T, index: number | undefined) => {\n return '<a href=\"' + href + '\">' + text + '</a>';\n };\n}\n\nexport function routerRenderer<T>(link: string, text: string) {\n return (row: T, index?: number | undefined) => {\n return { text: text, link: link };\n };\n}\n\nexport function Renderer<T>(fnc: (row: T) => string) {\n return (row: T) => {\n return fnc(row);\n };\n}\n\nexport class ColumnModel<T> {\n sortDirection: SortDirectionType | undefined = undefined;\n columnClass?: string;\n queryParams?: Params;\n routerLink?: (row: T) => string | string;\n valueGetter!: (row: T, index: number) => string;\n headerGetter!: (columnId: string, index: number) => string | string;\n template?: TemplateRef<{ $implicit: T }>;\n actions?: ActionColumnsDefinition<T>[];\n sortable?: boolean;\n id: string;\n // eslint-disable-next-line @typescript-eslint/ban-types\n format!: Function;\n textAlign?: FieldAlignType;\n width: string | undefined;\n forceVisibility: ColumnVisibilityType = ColumnVisibility.default;\n visible = true;\n\n constructor(readonly configuration: ColumnDefinition<T>) {\n this.id = this.configuration.id;\n\n if (this.configuration.format) {\n this.format = this.configuration.format;\n }\n\n if (this.configuration.value) {\n this.valueGetter = (row, index) => {\n const value = this.configuration.value?.(row, index) ?? '-';\n return this.format ? this.format(value, row) : value;\n };\n } else {\n this.valueGetter = (row) => {\n const value = ((row as { [key: string]: string })?.[this.configuration.id]) ?? '';\n return this.format ? this.format(value, row) : value;\n };\n }\n\n if (this.configuration.actions) {\n this.actions = this.configuration.actions;\n }\n\n if (this.configuration.routerLink) {\n this.routerLink = this.configuration.routerLink;\n }\n\n if (this.configuration.columnClass) {\n this.columnClass = this.configuration.columnClass;\n }\n\n if (this.configuration.template) {\n this.template = this.configuration.template;\n }\n\n if (this.configuration.headerName) {\n this.headerGetter = (\n typeof this.configuration.headerName === 'string'\n ? () => this.configuration.headerName ?? ''\n : (columnId: string, index: number) =>\n (<(columnId: string, index?: number) => string>(\n this.configuration.headerName\n ))?.(columnId, index) ?? this.id\n ) as (columnId: string, index: number) => string;\n } else {\n this.headerGetter = () => \"\";\n }\n\n if (this.configuration.queryParams) {\n this.queryParams = this.configuration.queryParams;\n }\n\n if (this.routerLink) {\n this.columnClass += ' ' + 'link';\n }\n\n if (this.configuration.sortable !== undefined) {\n this.sortable = this.configuration.sortable;\n } else {\n this.sortable = true;\n }\n\n if (this.configuration.width){\n this.width = typeof this.configuration.width === \"number\" ? this.configuration.width + 'px' : this.configuration.width;\n }\n\n if (this.configuration.textAlign !== undefined) {\n this.textAlign = this.configuration.textAlign;\n }\n\n if (this.configuration.forceVisibility) {\n this.forceVisibility = this.configuration.forceVisibility;\n }\n\n if (this.configuration.visible !== undefined) {\n this.visible = this.configuration.visible;\n }\n }\n}\n\nexport class RowModel<T> {\n row: T;\n index?: number;\n id: number | string;\n selected: boolean;\n marked?: boolean;\n focused?: boolean;\n expanded: boolean;\n fnc?: void;\n customRoute: string | undefined;\n\n constructor(\n row: T,\n selected: boolean,\n expanded: boolean,\n marked?: boolean,\n index?: number,\n fnc?: void,\n customRoute?: string,\n entityKey?: string\n ) {\n this.row = row;\n this.id = (row as { [key: string]: string })['id'] ?? v4();\n this.index = index;\n this.selected = selected;\n this.expanded = expanded;\n this.marked = marked;\n this.fnc = fnc;\n this.customRoute = createCustomRoute<T>(row, entityKey, customRoute);\n }\n}\n\nfunction createCustomRoute<T>(row: T, entityKey?: string, customRoute?: string) {\n return customRoute && entityKey\n ? `${customRoute}/` + (row as { [key: string]: string })[entityKey]\n : undefined;\n}\n","import { ContentChild, Directive, Input, TemplateRef } from '@angular/core';\nimport { Params } from '@angular/router';\nimport { FieldAlign, FieldAlignType } from '../../common';\nimport { ColumnDefinition, ColumnProvider, ColumnVisibility, ColumnVisibilityType, TABLE_COLUMN_PROVIDER } from './table.models';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'v-table-column',\n standalone: true,\n providers: [\n {\n provide: TABLE_COLUMN_PROVIDER,\n useExisting: TableColumnDirective,\n multi: true,\n },\n ],\n})\nexport class TableColumnDirective<T> implements ColumnProvider<T> {\n @ContentChild(TemplateRef) template!:\n TemplateRef<{ $implicit: T }>;\n\n @Input() index = 0;\n\n @Input() id!: string;\n\n @Input() columnClass!: string;\n\n @Input() sortable!: boolean;\n\n @Input() routerLink!: (row: T) => string;\n\n @Input() queryParams!: Params;\n\n @Input() headerName!: ((column: string, index?: number) => string) | string;\n\n @Input() width: string | number | undefined;\n\n @Input() textAlign: FieldAlignType = FieldAlign.left;\n\n @Input() format!: (row: T) => string\n\n @Input() forceVisibility: ColumnVisibilityType = ColumnVisibility.default;\n\n @Input() visible = true;\n\n getDefinition(): ColumnDefinition<T> {\n return {\n id: this.id,\n columnClass: this.columnClass,\n template: this.template,\n headerName: this.headerName,\n routerLink: this.routerLink,\n queryParams: this.queryParams,\n sortable: this.sortable,\n width: this.width,\n format: this.format,\n textAlign: this.textAlign,\n forceVisibility: this.forceVisibility,\n visible: this.visible,\n };\n }\n}\n","import { ColumnDefinition } from \"./table.models\";\r\n\r\nexport class ColumnConfiguration<TEntity> {\r\n private column: Partial<ColumnDefinition<TEntity>> = {};\r\n \r\n constructor(private id: string | keyof TEntity) {\r\n this.column.id = id as string;\r\n }\r\n \r\n headerName(headerName: string | ((columnId: string, index?: number) => string)): this {\r\n this.column.headerName = headerName;\r\n return this;\r\n }\r\n \r\n sortable(sortable: boolean): this {\r\n this.column.sortable = sortable;\r\n return this;\r\n }\r\n \r\n columnClass(columnClass: string): this {\r\n this.column.columnClass = columnClass;\r\n return this;\r\n }\r\n \r\n valueFunction(value: (row: TEntity, index?: number) => string): this {\r\n this.column.value = value;\r\n return this;\r\n }\r\n \r\n type(type: string): this {\r\n this.column.type = type;\r\n return this;\r\n }\r\n \r\n build(): ColumnDefinition<TEntity> {\r\n return this.column as ColumnDefinition<TEntity>;\r\n }\r\n }","import { Injectable } from '@angular/core';\r\nimport { ColumnConfiguration } from './column-configuration';\r\nimport { ColumnDefinition } from './table.models';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class TableBuilder<TEntity> {\r\n private columns: ColumnDefinition<TEntity>[] = [];\r\n\r\n addColumn(\r\n id: string | keyof TEntity,\r\n config?: (v: ColumnConfiguration<TEntity>) => void\r\n ): TableBuilder<TEntity> {\r\n const columnConfig = new ColumnConfiguration<TEntity>(id);\r\n config?.(columnConfig);\r\n this.columns.push(columnConfig.build());\r\n return this;\r\n }\r\n\r\n addTextColumn(\r\n id: string | keyof TEntity,\r\n config?: (v: ColumnConfiguration<TEntity>) => void\r\n ): TableBuilder<TEntity> {\r\n return this.addColumn(id, (x) => {\r\n config?.(x);\r\n x.type('text');\r\n });\r\n }\r\n\r\n addNumberColumn(\r\n id: string | keyof TEntity,\r\n config?: (v: ColumnConfiguration<TEntity>) => void\r\n ): TableBuilder<TEntity> {\r\n return this.addColumn(id, (x) => {\r\n config?.(x);\r\n x.type('number').columnClass('text-end');\r\n });\r\n }\r\n\r\n addDateColumn(\r\n id: string | keyof TEntity,\r\n config?: (v: ColumnConfiguration<TEntity>) => void\r\n ): TableBuilder<TEntity> {\r\n return this.addColumn(id, (x) => {\r\n config?.(x);\r\n x.type('date').valueFunction((row) => covertFromDateToUserLocale(row, id as string));\r\n });\r\n }\r\n\r\n addBooleanColumn(\r\n id: string,\r\n config?: (v: ColumnConfiguration<TEntity>) => void\r\n ): TableBuilder<TEntity> {\r\n return this.addColumn(id, (x) => {\r\n config?.(x);\r\n x.type('boolean');\r\n });\r\n }\r\n\r\n addEnumColumn(\r\n id: string | keyof TEntity,\r\n config?: (v: ColumnConfiguration<TEntity>) => void\r\n ): TableBuilder<TEntity> {\r\n return this.addColumn(id, (x) => {\r\n config?.(x);\r\n x.type('enum');\r\n });\r\n }\r\n\r\n build(): ColumnDefinition<TEntity>[] {\r\n return this.columns;\r\n }\r\n}\r\n\r\nfunction covertFromDateToUserLocale<TEntity>(row: TEntity, id: string) {\r\n const value = (row as { [key: string]: undefined | string | Date })[id];\r\n if (value === undefined) {\r\n return '';\r\n }\r\n\r\n const locale = navigator.language;\r\n\r\n if (value instanceof Date) {\r\n return value.toLocaleDateString(locale);\r\n }\r\n\r\n if (typeof value === 'string' && !isNaN(Date.parse(value))) {\r\n return new Date(value).toLocaleDateString(locale);\r\n }\r\n\r\n return value;\r\n}\r\n","import { InjectionToken } from '@angular/core';\nimport { BaseFormDirectiveCore } from '../base-form';\n\nexport const TABLE_FILTER_COMPONENT_TOKEN = new InjectionToken<TableFilterCore<any>>(\n 'TableFilterComponentToken'\n);\n\nexport interface FilterDefinition {\n optionLabel: string;\n label: string;\n optionValue?: string;\n url?: string;\n filterType?: 'dropdown' | 'checkbox' | 'calendar' | 'multiselect';\n initialValue?: any;\n}\n\nexport interface TableFilterCore<T> extends BaseFormDirectiveCore<T> {\n filterDefinitions: FilterDefinition[];\n title: string;\n hideSearch?: boolean;\n debounceTime?: number;\n}\n","import { InjectionToken } from '@angular/core';\nimport { BaseFormCore } from '../base-form';\n\nexport const TEXTAREA_COMPONENT_TOKEN = new InjectionToken<TextareaCore>(\n 'TextareaComponentToken'\n);\n\nexport interface TextareaCore extends BaseFormCore {\n rows: number;\n cols: number;\n autoResize: boolean;\n floatLabel: string | undefined;\n}\n","import { InjectionToken } from '@angular/core';\nimport { FieldSizeType, FieldTypeType } from '../../common';\nimport { BaseFormCore } from '../base-form';\n\nexport const TEXTFIELD_COMPONENT_TOKEN = new InjectionToken<TextfieldCore>(\n 'TextfieldComponentToken'\n);\n\nexport interface TextfieldCore extends BaseFormCore {\n size: FieldSizeType | undefined;\n type: FieldTypeType;\n floatLabel: boolean;\n}","import { InjectionToken, Signal } from '@angular/core';\nimport { ControlSeverityType, FieldSizeType, PositionType } from '../../common';\n\nexport const TOOLTIP_COMPONENT_TOKEN = new InjectionToken<TooltipCore>(\n 'TooltipComponentToken'\n);\n\nexport interface TooltipCore {\n color: Signal<ControlSeverityType | undefined>;\n position: Signal<PositionType | undefined>;\n size: Signal<FieldSizeType | undefined>;\n tooltipText: Signal<string | undefined>;\n}","import { InjectionToken, InputSignal } from \"@angular/core\";\nimport { ControlSeverityType, FieldSizeType } from \"../../common\";\n\nexport const ICONS_COMPONENT_TOKEN = new InjectionToken<IconsCore>(\n 'IconsComponentToken'\n);\n\nexport type IconLibraryType = 'native' | 'bootstrap';\n\nexport interface IconsCore {\n library: InputSignal<IconLibraryType>;\n name: InputSignal<string>;\n size: InputSignal<FieldSizeType | undefined>;\n severity: InputSignal<ControlSeverityType | undefined>;\n class: InputSignal<string | undefined>;\n}","import { Component, input } from \"@angular/core\";\nimport { ControlSeverityType, FieldSizeType } from \"../../common\";\nimport { IconLibraryType, ICONS_COMPONENT_TOKEN, IconsCore } from \"./icons.model\";\n\n@Component({\n standalone: true,\n template: '',\n providers: [\n {\n provide: ICONS_COMPONENT_TOKEN,\n useExisting: IconsComponent\n }\n ]\n})\n\nexport abstract class IconsComponent implements IconsCore {\n library = input<IconLibraryType>('native');\n name = input.required<string>();\n size = input<FieldSizeType | undefined>();\n severity = input<ControlSeverityType | undefined>();\n class = input<string>();\n}","import { InjectionToken, InputSignal } from \"@angular/core\";\nimport { ControlSeverityType, FieldSizeType } from \"../../common\";\n\nexport const TAG_COMPONENT_TOKEN = new InjectionToken<TagCore>('TagComponentToken');\n\nexport type TagVariant = 'bold' | 'subtle';\n\nexport interface TagCore {\n label: InputSignal<string | undefined>;\n severity: InputSignal<ControlSeverityType | undefined>;\n variant: InputSignal<TagVariant>;\n size: InputSignal<FieldSizeType>;\n }","import { EventEmitter, InjectionToken } from '@angular/core';\nimport { DatasourceType } from '@verisoft/core';\nimport { GenericFieldDefinition, GenericFieldTypeType } from '../generic-form';\nimport { ColumnDefinition, TableSelectionModeType } from '../table';\n\n\nexport interface FeatureListPageConfig {\n title: string;\n datasource: string;\n tableName: string;\n showAdd?: boolean;\n showDownload?: boolean;\n showDelete?: boolean;\n}\n\nexport const FEATURE_LIST_PAGE_CONFIG_PROPERTY = 'feature_list_config';\n\nexport interface FeatureListColumnDefinition<T> extends ColumnDefinition<T> {\n filter?: boolean;\n type?: GenericFieldTypeType;\n filterOptions?: FeatureListColumnFilterOptions;\n}\n\nexport type FeatureListColumnFilterOptions = Omit<GenericFieldDefinition, 'type' | 'label' | 'name' | 'showFilter'>;\n\nexport const FEATURE_LIST_COLUMN_PROVIDER = new InjectionToken(\n 'FEATURE_LIST_COLUMN_PROVIDER'\n);\n\nexport const FEATURE_LIST_COMPONENT_TOKEN = new InjectionToken<FeatureListCore<any>>(\n 'FeatureListComponentToken'\n);\n\nexport interface FeatureListColumnProvider<T> {\n getDefinition: () => FeatureListColumnDefinition<T>;\n}\n\nexport interface FeatureListCore<T> {\n autoBind: boolean;\n title: string;\n columns: FeatureListColumnDefinition<T>[];\n filters: GenericFieldDefinition[];\n maxVisibleActions: number;\n tableName: string;\n ngrxFeatureKey?: string;\n maxVisibleMobileActions: number;\n showExtendedFilter: boolean;\n showDownload: boolean;\n showDelete: boolean;\n showAdd: boolean;\n canDownload: boolean;\n canDelete: boolean;\n canAdd: boolean;\n useRouterFilter: boolean;\n fulltextFieldName: string;\n showFulltext: boolean;\n filterDialogShowFulltext: boolean;\n applyButtonLabel: string;\n clearButtonLabel: string;\n filterDetailTitle: string;\n deleteConfirmMessage: string | undefined;\n autoDeleteEnabled: boolean;\n autoDownloadEnabled: boolean;\n downloadFileName: string;\n datasource: DatasourceType<T>;\n extraFilter?: Partial<T>;\n disableCustomClicks: boolean;\n maximumColumnLength: number;\n selectionMode: TableSelectionModeType | undefined;\n pageSize: number;\n showPaginator: boolean;\n addClick: EventEmitter<void>;\n downloadClick: EventEmitter<void>;\n deleteClick: EventEmitter<T[]>;\n selectionChange: EventEmitter<unknown>;\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { GenericFieldDefinition, GenericFieldType } from \"../generic-form\";\nimport { FeatureListColumnDefinition } from \"./feature-list-page.model\";\n\n@Pipe({\n name: 'featureListColumn',\n})\nexport class FeatureListFilterPipe<T> implements PipeTransform {\n transform(value: FeatureListColumnDefinition<T>[] | undefined): GenericFieldDefinition[] | undefined {\n if (!value){\n return undefined;\n }\n\n return value.filter(x => x.filter).map((x, index) => ({\n ...(x.filterOptions ?? {}),\n name: x.id,\n label: typeof x.headerName === 'function'? x.headerName(x.id, index) : x.headerName ?? '',\n type: x.type as GenericFieldType,\n }));\n }\n}","import { HttpClient } from '@angular/common/http';\nimport {\n ChangeDetectorRef,\n Directive,\n inject,\n Input,\n OnChanges,\n OnInit,\n SimpleChanges,\n} from '@angular/core';\nimport {\n BASE_URL_PATH,\n convertDatasource,\n DataSourceFunctionType,\n DatasourceType,\n DEFAULT_SEARCH_LIMIT,\n FilterEvent,\n LazyLoadEvent,\n normalizeRequest,\n Page,\n RequestParams,\n} from '@verisoft/core';\nimport {\n BehaviorSubject,\n catchError,\n debounceTime,\n filter,\n map,\n of,\n switchMap,\n takeUntil,\n tap,\n} from 'rxjs';\nimport {\n DataSourceComponentModel,\n DEFAULT_DEBOUNCE_TIME,\n ExtendedRequestType,\n setComponentProperties,\n setDataToArray,\n} from '../common';\nimport {\n DROPDOWN_COMPONENT_TOKEN,\n DropdownCore,\n GENERIC_FIELD_COMPONENT_TOKEN,\n GenericFieldCore,\n MULTISELECT_COMPONENT_TOKEN,\n MultiselectCore,\n UnsubscribeComponent,\n} from '../components';\n\n@Directive({\n selector:\n // eslint-disable-next-line @angular-eslint/directive-selector\n 'v-dropdown[useDatasource], v-multiselect[useDatasource], v-generic-field[useDatasource]',\n standalone: true,\n})\nexport class DatasourceDirective<T>\n extends UnsubscribeComponent\n implements OnChanges, OnInit\n{\n @Input() datasource!: DatasourceType<T>;\n\n @Input() autoBind = true;\n\n @Input() loadingText = '... loading ...';\n\n @Input() filterField: string | undefined = 'fulltext';\n\n @Input() transformFn?: (data: T) => unknown;\n\n @Input() extraFilter!: any;\n\n get activeComponent(): DataSourceComponentModel<T> {\n return (this.dropdownComponent ??\n this.multiSelectComponent ??\n this.genericField) as DataSourceComponentModel<T>;\n }\n\n private httpClient = inject(HttpClient);\n\n private baseUrl: string = inject(BASE_URL_PATH);\n\n private changeDetectorRef = inject(ChangeDetectorRef);\n\n private isAllDataLoaded = false;\n\n private parameters$ = new BehaviorSubject<Partial<ExtendedRequestType<T>>>({});\n\n private lastParameter = {};\n\n private dropdownComponent = inject<DropdownCore<T>>(\n DROPDOWN_COMPONENT_TOKEN,\n { optional: true }\n );\n\n private multiSelectComponent = inject<MultiselectCore<T>>(\n MULTISELECT_COMPONENT_TOKEN,\n {\n optional: true,\n }\n );\n\n private genericField = inject<GenericFieldCore<T>>(\n GENERIC_FIELD_COMPONENT_TOKEN,\n { optional: true }\n );\n\n private dataSourceService?: DataSourceFunctionType<T>;\n\n private loadingPlaceholderItem: { [key: string]: unknown } = {};\n\n ngOnInit(): void {\n this.activeComponent.showed\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n if (\n !this.autoBind &&\n !this.activeComponent.options &&\n !this.activeComponent.loading\n ) {\n this.parameters$.next({});\n }\n });\n\n this.activeComponent.lazyLoad\n .pipe(takeUntil(this.destroyed$))\n .subscribe((value: LazyLoadEvent) => {\n this.parameters$.next({ offset: value?.offset, limit: value?.limit });\n });\n\n this.activeComponent.filtered\n .pipe(takeUntil(this.destroyed$))\n .subscribe((value: FilterEvent) => {\n const property = this.filterField ?? this.activeComponent.optionLabel;\n if (property) {\n this.parameters$.next({\n offset: 0,\n filter: {\n [property]: value.filter ? value.filter : undefined,\n ...(this.extraFilter ?? {})\n } as Partial<T>,\n useNewData: true,\n });\n }\n });\n\n this.parameters$\n .pipe(\n takeUntil(this.destroyed$),\n filter(request => !this.isDataForRequestLoaded(request)),\n map((request) => {\n const extendedParams = normalizeRequest({ ...this.lastParameter, ...request }, DEFAULT_SEARCH_LIMIT) as ExtendedRequestType<T>;\n extendedParams.useNewData = request.useNewData ?? false;\n return extendedParams;\n }),\n tap((request) => {\n this.lastParameter = request;\n }),\n debounceTime(DEFAULT_DEBOUNCE_TIME),\n tap(() => {\n this.changeComponent(this.activeComponent, {\n loading: true,\n });\n }),\n switchMap((request) =>\n this.dataSourceService\n ? this.dataSourceService(request as RequestParams<T>).pipe(\n map((response) => ({ request, response }))\n )\n : of({\n request,\n response: {\n data: [] as T[],\n total: 0,\n limit: request.limit,\n offset: request.offset,\n } as Page<T>,\n })\n ),\n catchError((request) => {\n this.changeComponent(this.activeComponent, {\n loading: false,\n });\n return of({\n request: request as ExtendedRequestType<T>,\n response: {\n data: [] as T[],\n total: 0,\n limit: request.limit,\n offset: request.offset,\n } as Page<T>,\n });\n })\n )\n .subscribe(({ request, response }) =>\n this.setDataToControl(request, response)\n );\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['datasource']) {\n this.dataSourceService = convertDatasource(\n this.datasource,\n this.baseUrl,\n this.httpClient\n );\n\n if (this.autoBind) {\n this.parameters$.next({ offset: 0 });\n }\n }\n }\n\n private isDataForRequestLoaded(request: Partial<ExtendedRequestType<T>>) {\n if (request.useNewData) {\n return false;\n }\n\n const offset = request.offset ?? 0;\n const limit = request.limit ?? DEFAULT_SEARCH_LIMIT;\n const options = this.activeComponent.options;\n if (!options) {\n return false;\n }\n\n if (options.length < offset + limit) {\n return false;\n }\n\n const allItemsFilled = options.slice(offset, offset + limit).every(item => item !== undefined && item != this.loadingPlaceholderItem);\n return allItemsFilled;\n }\n\n private setDataToControl(request: ExtendedRequestType<T>, result: Page<T>): void {\n this.isAllDataLoaded = result.total <= result.data.length;\n const data = result.data;\n const total = result.total;\n const offset = request.offset;\n const transferedData = this.transformFn\n ? data.map((x) => this.transformFn?.(x))\n : data;\n\n if (this.activeComponent.optionLabel) {\n this.loadingPlaceholderItem[this.activeComponent.optionLabel] =\n this.loadingText;\n }\n\n if (this.activeComponent.optionValue) {\n this.loadingPlaceholderItem[this.activeComponent.optionValue] = -1;\n }\n\n const options = request.useNewData ? undefined : this.activeComponent.options;\n const newOptions = setDataToArray(\n options,\n transferedData,\n offset,\n total,\n this.loadingPlaceholderItem\n );\n\n this.changeComponent(this.activeComponent, {\n options: newOptions as T[],\n loading: false,\n lazy: !this.isAllDataLoaded,\n });\n }\n\n private changeComponent(\n component: DataSourceComponentModel<T>,\n value: Partial<DataSourceComponentModel<T>>\n ) {\n setComponentProperties(component, value);\n this.changeDetectorRef.detectChanges();\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport {\n ChangeDetectorRef,\n Directive,\n inject,\n Input,\n OnChanges,\n OnInit,\n SimpleChanges,\n} from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport {\n BASE_URL_PATH,\n BaseHttpService,\n convertDatasource,\n DataSourceFunctionType,\n DatasourceType,\n LazyLoadEvent,\n normalizeRequest,\n Page,\n RequestParams,\n} from '@verisoft/core';\nimport {\n BehaviorSubject,\n catchError,\n debounceTime,\n map,\n of,\n switchMap,\n takeUntil,\n tap,\n} from 'rxjs';\nimport {\n DEFAULT_DEBOUNCE_TIME,\n ExtendedRequestType,\n isFilterEmpty,\n setComponentProperties,\n} from '../common';\nimport {\n TABLE_COMPONENT_TOKEN,\n TableCore,\n UnsubscribeComponent,\n} from '../components';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'v-table[useDatasource]',\n exportAs: 'useDatasource',\n standalone: true,\n})\nexport class TableDatasourceDirective<T>\n extends UnsubscribeComponent\n implements OnInit, OnChanges\n{\n protected readonly store = inject(Store);\n\n @Input() autoBind = true;\n\n @Input({ required: true }) tableName!: string;\n\n @Input() debounceTime = DEFAULT_DEBOUNCE_TIME;\n\n @Input() datasource!: DatasourceType<T>;\n\n @Input() extraFilter!: any;\n\n @Input() transformFn?: (data: T) => unknown;\n\n private tableComponent = inject<TableCore<T>>(TABLE_COMPONENT_TOKEN, {\n self: true,\n });\n private changeDetectorRef = inject(ChangeDetectorRef);\n private httpClient = inject(HttpClient);\n private baseUrl: string = inject(BASE_URL_PATH);\n\n private dataSourceService?: DataSourceFunctionType<T>;\n private parameters$ = new BehaviorSubject<Partial<ExtendedRequestType<T>>>({});\n\n params$ = this.parameters$.asObservable();\n\n ngOnInit(): void {\n if (!this.tableName) {\n throw new Error('Property tableName must be defined.');\n }\n\n this.tableComponent.lazyLoad.pipe(takeUntil(this.destroyed$)).subscribe((value: LazyLoadEvent) => {\n this.parameters$.next({\n offset: value?.offset,\n limit: value?.limit,\n filter: { ...value?.filter, ...this.extraFilter },\n sort: value?.sort,\n });\n });\n\n this.parameters$\n .pipe(\n takeUntil(this.destroyed$),\n map((request) =>\n normalizeRequest({\n ...request,\n filter: { ...request.filter, ...this.extraFilter },\n })\n ),\n debounceTime(this.debounceTime),\n tap(() => {\n this.changeComponent(this.tableComponent, {\n lazy: true,\n loading: true,\n });\n }),\n switchMap((request) =>\n this.dataSourceService\n ? this.dataSourceService(request).pipe(\n map((response) => ({ request, response }))\n )\n : of({\n request,\n response: {\n data: [] as T[],\n total: 0,\n limit: request.limit,\n offset: request.offset,\n } as Page<T>,\n })\n ),\n catchError((request) => {\n this.changeComponent(this.tableComponent, {\n loading: false,\n });\n return of({\n request: request as ExtendedRequestType<T>,\n response: {\n data: [] as T[],\n total: 0,\n limit: request.limit,\n offset: request.offset,\n } as Page<T>,\n });\n })\n )\n .subscribe(({ request, response }) =>\n this.setDataToControl(request, response)\n );\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['datasource']) {\n this.dataSourceService = convertDatasource(\n this.datasource,\n this.baseUrl,\n this.httpClient\n );\n\n if (this.autoBind) {\n this.parameters$.next({ offset: 0 });\n }\n }\n }\n\n reload() {\n this.parameters$.next({ ...this.parameters$.value });\n }\n\n private changeComponent(\n component: TableCore<T>,\n value: Partial<TableCore<T>>\n ) {\n setComponentProperties(component, value);\n this.changeDetectorRef.detectChanges();\n }\n\n private setDataToControl(request: RequestParams<T>, result: Page<T>): void {\n const data = result.data;\n const total = result.total;\n const transferedData = this.transformFn ? data.map((x) => this.transformFn?.(x)) : data;\n\n this.changeComponent(this.tableComponent, {\n lazy: !isFilterEmpty(request.filter) || data?.length < total || this.datasource instanceof BaseHttpService,\n data: transferedData as T[],\n loading: false,\n total,\n });\n }\n}\n","import { Directive, HostListener, Input } from \"@angular/core\";\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'v-button[useShortCut]',\n exportAs: 'useShortCut',\n standalone: true,\n })\n export class ButtonShortCutDirective\n {\n @Input() shortCutFn?: () => void;\n @Input() shortCutKey!: string;\n\n private keyMap: { [key: string]: boolean } = {};\n\n @HostListener('document:keydown', ['$event'])\n onKeyDown(event: KeyboardEvent) {\n this.keyMap[event.key.toLowerCase()] = true;\n this.checkShortcut();\n }\n \n @HostListener('document:keyup', ['$event'])\n onKeyUp(event: KeyboardEvent) {\n this.keyMap[event.key.toLowerCase()] = false;\n }\n\n private checkShortcut() {\n if (this.shortCutKey && this.shortCutFn) {\n const keys = this.shortCutKey.toLowerCase().split('+');\n const isShortcutPressed = keys.every((key) => this.keyMap[key]); \n if (isShortcutPressed) {\n this.shortCutFn?.();\n keys.forEach((key) => (this.keyMap[key] = false));\n }\n }\n }\n}","import {\r\n ChangeDetectorRef,\r\n Directive,\r\n inject,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n SimpleChanges,\r\n} from '@angular/core';\r\nimport { debounceTime, Subject, Subscription } from 'rxjs';\r\nimport { DEFAULT_DEBOUNCE_TIME, setComponentProperties } from '../common';\r\nimport { FilterCore, TABLE_COMPONENT_TOKEN, TableCore } from '../components';\r\n\r\n@Directive({\r\n // eslint-disable-next-line @angular-eslint/directive-selector\r\n selector: 'v-table[useFilter]',\r\n standalone: true,\r\n exportAs: 'tableFilterDirective',\r\n})\r\nexport class TableFilterDirective<T> implements OnChanges, OnDestroy {\r\n @Input({ required: true }) filterComponent!: FilterCore;\r\n\r\n private filterChange$ = new Subject<T>();\r\n private subscription: Subscription | undefined = undefined;\r\n\r\n private tableComponent = inject<TableCore<T>>(TABLE_COMPONENT_TOKEN);\r\n\r\n private changeDetectorRef = inject(ChangeDetectorRef);\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['filterComponent']) {\r\n this.unRegister();\r\n this.register();\r\n }\r\n }\r\n\r\n private onFilterChange(value: T): void {\r\n if (this.tableComponent?.filter !== value) {\r\n setComponentProperties(this.tableComponent, {\r\n filter: value,\r\n currentPage: 1,\r\n });\r\n \r\n this.changeDetectorRef.detectChanges();\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unRegister();\r\n }\r\n\r\n private unRegister() {\r\n this.subscription?.unsubscribe();\r\n }\r\n\r\n private register() {\r\n this.filterComponent.registerOnChange((value: T) => {\r\n this.filterChange$.next(value);\r\n });\r\n\r\n this.subscription = this.filterChange$\r\n .pipe(\r\n debounceTime(\r\n this.filterComponent.debounceTime ? 0 : DEFAULT_DEBOUNCE_TIME\r\n )\r\n )\r\n .subscribe((value) => this.onFilterChange(value));\r\n }\r\n}\r\n","import { Directive, Input } from '@angular/core';\nimport { ValidatorFn } from '@angular/forms';\nimport { DatasourceType } from '@verisoft/core';\nimport { GenericFieldDefinition, GenericFieldType, GenericFieldTypeType } from '../components';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'v-filter-field',\n standalone: true,\n})\nexport class FilterFieldDirective implements GenericFieldDefinition {\n @Input({ required: true }) name!: string;\n\n @Input() type: GenericFieldTypeType | undefined = GenericFieldType.text;\n\n @Input() label: string | undefined;\n\n @Input() optionLabel!: string;\n\n @Input() optionValue: string | undefined;\n\n @Input() options: unknown[] | undefined;\n\n @Input() value?: unknown;\n\n @Input() validator?: ValidatorFn[];\n\n @Input() datasource: DatasourceType<any> | undefined;\n\n @Input() filterField?: string;\n\n @Input() showFilter?: boolean;\n\n @Input() localSearch?: boolean;\n}\n","import { Directive } from '@angular/core';\nimport { FilterFieldDirective } from './filter-field.directive';\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'v-feature-list-filter-field',\n standalone: true,\n})\nexport class FeatureListFilterFieldDirective extends FilterFieldDirective {}","import { Directive, Input } from '@angular/core';\nimport { FEATURE_LIST_COLUMN_PROVIDER, FeatureListColumnDefinition, FeatureListColumnFilterOptions, FeatureListColumnProvider, GenericFieldType, GenericFieldTypeType, TableColumnDirective } from '../components';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'v-feature-list-column',\n standalone: true,\n providers: [\n {\n provide: FEATURE_LIST_COLUMN_PROVIDER,\n useExisting: FeatureListColumnDirective,\n multi: true,\n },\n ],\n})\nexport class FeatureListColumnDirective<T>\n extends TableColumnDirective<T>\n implements FeatureListColumnProvider<T>\n{\n @Input() filter = false;\n\n @Input() type: GenericFieldTypeType = GenericFieldType.text;\n\n @Input() filterOptions?: FeatureListColumnFilterOptions;\n\n override getDefinition(): FeatureListColumnDefinition<T> {\n const definition = super.getDefinition() as FeatureListColumnDefinition<T>;\n definition.filter = this.filter;\n definition.type = this.type;\n definition.format = this.format;\n definition.filterOptions = this.filterOptions;\n return definition;\n }\n}\n","type ErrorCodesFn = (value?: any) => string;\n\nexport const ErrorCodesFns: { [key: string]: ErrorCodesFn } = {\n required: () => `This field is required!`,\n email: () => `Email is in wrong format!`,\n iban: () => `IBAN is in wrong format!`,\n lowStrength: () => `Password too weak!`,\n customPasswordRequirements: () => `Password does not meet minimal requirements.`,\n fieldsNotMatching: () => `Passwords are not the same!`,\n validationError: (value: any) => `${value}`,\n};\n","import { AbstractControl, ValidationErrors } from '@angular/forms';\n\ntype ErrorValue = { key: string; value: string } | null;\n\nexport function getFirstErrorFromControl<T extends AbstractControl>(\n control: T\n): ErrorValue {\n if (!control || !control.errors) {\n return null;\n }\n const errors = control.errors ?? false;\n if (errors) {\n const key = Object.keys(control.errors)[0];\n const value = control.errors[key];\n return { key, value };\n }\n return null;\n}\n\nexport function getFirstError(errors: ValidationErrors): ErrorValue {\n if (errors) {\n const key = Object.keys(errors)[0];\n const value = errors[key];\n return { key, value };\n }\n return null;\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { ValidationErrors } from '@angular/forms';\nimport { ErrorCodesFns } from './error.codes';\nimport { getFirstError } from './error.models';\n\nconst EMPTY = '';\n\n@Pipe({\n name: 'error',\n standalone: true,\n})\nexport class ErrorPipe implements PipeTransform {\n transform(errors: ValidationErrors | undefined | null): string {\n if (!errors) {\n return EMPTY;\n }\n const error = getFirstError(errors);\n if (error) {\n const errorFn = ErrorCodesFns[error.key];\n if (!errorFn) {\n return EMPTY;\n }\n return ErrorCodesFns[error.key](error.value);\n }\n return EMPTY;\n }\n}\n","type WarningCodesFn = (value?: any) => string;\n\nexport const WarningCodesFns: { [key: string]: WarningCodesFn } = {\n validationWarning: (value: any) => `${value}`,\n};\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { ValidationErrors } from '@angular/forms';\nimport { getFirstError } from './error.models';\nimport { WarningCodesFns } from './warning.codes';\n\nconst EMPTY = '';\n\n@Pipe({\n name: 'warning',\n standalone: true,\n})\nexport class WarningPipe implements PipeTransform {\n transform(warnings: ValidationErrors | undefined | null): string {\n if (!warnings) {\n return EMPTY;\n }\n const error = getFirstError(warnings);\n if (error) {\n const errorFn = WarningCodesFns[error.key];\n if (!errorFn) {\n return EMPTY;\n }\n return WarningCodesFns[error.key](error.value);\n }\n return EMPTY;\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'keyOrFn',\n pure: false,\n standalone: true,\n})\nexport class KeyOrFunctionPipe implements PipeTransform {\n transform(keyOrFn: any, row: any): any {\n if (keyOrFn instanceof Function) {\n return keyOrFn(row);\n } else if (typeof keyOrFn === 'string') {\n const value = row[keyOrFn];\n if (value) {\n return value;\n }\n } else if (typeof keyOrFn === 'boolean') {\n return keyOrFn;\n }\n return '';\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\n\n@Pipe({\n name: 'enumToList',\n standalone: true,\n})\nexport class EnumToListPipe implements PipeTransform {\n transform(data: any): any[] {\n return Object.keys(data)\n .filter(key => isNaN(Number(key)))\n .map(key => ({\n label: key,\n value: data[key as keyof typeof data],\n }));\n }\n}","import { toCzechDateTimeString } from \"@verisoft/core\";\n\n/* eslint-disable @typescript-eslint/ban-types */\nexport class Format {\n static concatArray(value: any[], itemFormatter?: Function, delimeter = ';') {\n if (!value) {\n return '';\n }\n\n return value\n .map(item => itemFormatter ? itemFormatter(item) : item)\n .filter(item => item !== undefined && item !== null)\n .join(`${delimeter} `);\n }\n\n static czechDate(value: Date | string) {\n return toCzechDateTimeString(value);\n }\n\n static date(value: Date | string) {\n if (!value) {\n return '';\n }\n\n if (typeof value === 'string') {\n value = new Date(value);\n }\n\n return value.getDate() + '. ' + (value.getMonth() + 1) + '. ' + value.getFullYear();\n }\n\n static dateAndTime(value: Date | string) {\n if (!value) {\n return '';\n }\n\n if (typeof value === 'string') {\n value = new Date(value);\n }\n\n return ('0' + value.getDate()).slice(-2)\n + '.' + ('0' + (value.getMonth() + 1)).slice(-2)\n + '.' + value.getFullYear() + ' ' + ('0' + value.getHours()).slice(-2)\n + ':' + ('0' + value.getMinutes()).slice(-2) + ':' + ('0' + value.getSeconds()).slice(-2);\n }\n\n static convertToUserLocaleDate(value?: Date | string) {\n if (!value) {\n return '';\n }\n\n if (typeof value === 'string') {\n value = new Date(value);\n }\n\n return value.toLocaleDateString(navigator.language, { timeZone: 'UTC' });\n }\n\n static bool(value: boolean) {\n if (value) {\n return 'Yes';\n } else {\n return 'No';\n }\n }\n\n static boolWithIcon(value: boolean) {\n if (value) {\n return `<span>✓</span>`;\n } else {\n return `<span>⨯</span>`;\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2.PageHeaderService","i1.SideMenuService","EMPTY"],"mappings":"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"}
|