@fuentis/phoenix-ui 0.0.9-alpha.84 → 0.0.9-alpha.85
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":"fuentis-phoenix-ui.mjs","sources":["../../../projects/phoenix-ui/src/lib/components/sidebar-item/sidebar-item.component.ts","../../../projects/phoenix-ui/src/lib/components/sidebar/sidebar.component.ts","../../../projects/phoenix-ui/src/lib/components/sidebar/sidebar.component.html","../../../projects/phoenix-ui/src/lib/components/search-bar/search-bar.component.ts","../../../projects/phoenix-ui/src/lib/components/search-bar/search-bar.component.html","../../../projects/phoenix-ui/src/lib/components/user/user.component.ts","../../../projects/phoenix-ui/src/lib/components/topbar/topbar.component.ts","../../../projects/phoenix-ui/src/lib/components/topbar/topbar.component.html","../../../projects/phoenix-ui/src/lib/components/quick-pick/quick-pick/quick-pick.component.ts","../../../projects/phoenix-ui/src/lib/components/quick-pick/quick-pick/quick-pick.component.html","../../../projects/phoenix-ui/src/lib/components/status-header/status-header.component.ts","../../../projects/phoenix-ui/src/lib/components/status-header/status-header.component.html","../../../projects/phoenix-ui/src/lib/components/shell/shell.component.ts","../../../projects/phoenix-ui/src/lib/components/shell/shell.component.html","../../../projects/phoenix-ui/src/lib/components/data-table/utils/dataTable.enum.ts","../../../projects/phoenix-ui/src/lib/components/data-table/phoenix-data-table-action/phoenix-data-table-action.component.ts","../../../projects/phoenix-ui/src/lib/components/data-table/phoenix-data-table-action/phoenix-data-table-action.component.html","../../../projects/phoenix-ui/src/lib/components/data-table/utils/data-cell-value.pipe.ts","../../../projects/phoenix-ui/src/lib/components/data-table/utils/export-type.util.ts","../../../projects/phoenix-ui/src/lib/components/data-table/phoenix-data-table-tabs/phoenix-data-table-tabs.component.ts","../../../projects/phoenix-ui/src/lib/components/data-table/phoenix-data-table-tabs/phoenix-data-table-tabs.component.html","../../../projects/phoenix-ui/src/lib/components/data-table/phoenix-data-table/isSelected.pipe.ts","../../../projects/phoenix-ui/src/lib/components/data-table/utils/remove-html-tags.pipe.ts","../../../projects/phoenix-ui/src/lib/components/data-table/phoenix-data-table/phoenix-data-table.component.ts","../../../projects/phoenix-ui/src/lib/components/data-table/phoenix-data-table/phoenix-data-table.component.html","../../../projects/phoenix-ui/src/lib/components/data-table/table-caption/table-caption.component.ts","../../../projects/phoenix-ui/src/lib/components/data-table/table-caption/table-caption.component.html","../../../projects/phoenix-ui/src/lib/components/data-table/utils/table-cell.pipe.ts","../../../projects/phoenix-ui/src/lib/components/data-table/table/table.component.ts","../../../projects/phoenix-ui/src/lib/components/data-table/table/table.component.html","../../../projects/phoenix-ui/src/lib/components/meta-form/meta-validators/due-date/start-due-date.validator.ts","../../../projects/phoenix-ui/src/lib/components/meta-form/meta-validators/timeperiod/timeperiod.validator.ts","../../../projects/phoenix-ui/src/lib/components/meta-form/utils/control-type.enum.ts","../../../projects/phoenix-ui/src/lib/components/meta-form/utils/get-field-type.utils.ts","../../../projects/phoenix-ui/src/lib/components/meta-form/meta-validators/white-space-validator.ts","../../../projects/phoenix-ui/src/lib/components/meta-form/services/meta-form.service.ts","../../../projects/phoenix-ui/src/lib/components/meta-form/meta-form-abstract.ts","../../../projects/phoenix-ui/src/lib/components/meta-form/utils/lang.utils.ts","../../../projects/phoenix-ui/src/lib/components/meta-form/utils/field-label.pipe.ts","../../../projects/phoenix-ui/src/lib/components/meta-form/meta-field-label/meta-label.component.ts","../../../projects/phoenix-ui/src/lib/components/meta-form/meta-form-fields/meta-assign-responsible/meta-assign-responsible.component.ts","../../../projects/phoenix-ui/src/lib/components/meta-form/utils/error-type.util.ts","../../../projects/phoenix-ui/src/lib/components/meta-form/meta-field-error/inline-field-error.component.ts","../../../projects/phoenix-ui/src/lib/components/meta-form/utils/base-meta-field.ts","../../../projects/phoenix-ui/src/lib/components/meta-form/meta-form-fields/meta-calendar/meta-calendar.component.ts","../../../projects/phoenix-ui/src/lib/components/meta-form/meta-form-fields/meta-checkbox-color-picker/meta-checkbox-color-picker.component.ts","../../../projects/phoenix-ui/src/lib/components/meta-form/meta-form-fields/meta-checkbox/meta-checkbox.component.ts","../../../projects/phoenix-ui/src/lib/components/meta-form/meta-form-fields/meta-color-picker/meta-color-picker.component.ts","../../../projects/phoenix-ui/src/lib/components/meta-form/meta-form-fields/meta-currency/meta-currency.component.ts","../../../projects/phoenix-ui/src/lib/components/meta-form/meta-form-fields/meta-multiple-select/meta-multiple-select.component.ts","../../../projects/phoenix-ui/src/lib/components/meta-form/meta-form-fields/meta-number-input/meta-number-input.component.ts","../../../projects/phoenix-ui/src/lib/components/meta-form/meta-form-fields/meta-password-feild/meta-password-feild.component.ts","../../../projects/phoenix-ui/src/lib/components/meta-form/meta-form-fields/meta-select-button/meta-select-button.component.ts","../../../projects/phoenix-ui/src/lib/components/meta-form/utils/translate-dropdown-data.pipe.ts","../../../projects/phoenix-ui/src/lib/components/meta-form/meta-form-fields/meta-single-select-object-based/meta-single-select-object_based.component.ts","../../../projects/phoenix-ui/src/lib/components/meta-form/meta-form-fields/meta-single-select/meta-single-select.component.ts","../../../projects/phoenix-ui/src/lib/components/meta-form/meta-form-fields/meta-start-due-date/meta-start-due-date.component.ts","../../../projects/phoenix-ui/src/lib/components/meta-form/meta-form-fields/meta-switch/meta-switch.component.ts","../../../projects/phoenix-ui/src/lib/components/meta-form/meta-form-fields/meta-text-area/meta-text-area.component.ts","../../../projects/phoenix-ui/src/lib/components/meta-form/meta-form-fields/meta-text-editor/meta-text-editor.component.ts","../../../projects/phoenix-ui/src/lib/components/meta-form/meta-form-fields/meta-text-input/meta-text-input.component.ts","../../../projects/phoenix-ui/src/lib/components/meta-form/meta-form-fields/meta-timeperiod/meta-timeperiod.component.ts","../../../projects/phoenix-ui/src/lib/components/meta-form/meta-form-fields/meta-upload/meta-upload.component.ts","../../../projects/phoenix-ui/src/lib/components/meta-form/utils/field-col.pipe.ts","../../../projects/phoenix-ui/src/lib/components/meta-form/utils/global-phase.utils.ts","../../../projects/phoenix-ui/src/lib/components/meta-form/utils/so-types.ts","../../../projects/phoenix-ui/src/lib/components/meta-form/meta-form-templates/read-only-input/read-only-input.component.ts","../../../projects/phoenix-ui/src/lib/components/meta-form/meta-form-templates/read-only-input/read-only-input.component.html","../../../projects/phoenix-ui/src/lib/components/meta-form/meta-form.component.ts","../../../projects/phoenix-ui/src/lib/components/meta-form/meta-form.component.html","../../../projects/phoenix-ui/src/lib/components/meta-form/meta-form-buttons/meta-form-buttons.component.ts","../../../projects/phoenix-ui/src/lib/components/meta-form/meta-form-buttons/meta-form-buttons.component.html","../../../projects/phoenix-ui/src/lib/components/meta-form/meta-form-templates/groups-form/groups-form.component.ts","../../../projects/phoenix-ui/src/lib/components/meta-form/meta-form-templates/groups-form/groups-form.component.html","../../../projects/phoenix-ui/src/lib/components/status-bar/pipes/text-length.pipe.ts","../../../projects/phoenix-ui/src/lib/components/status-bar/pipes/first-letter.pipe.ts","../../../projects/phoenix-ui/src/lib/components/tag/tag.component.ts","../../../projects/phoenix-ui/src/lib/components/tag/tag.component.html","../../../projects/phoenix-ui/src/lib/components/status-bar/enums/status-col-type.enum.ts","../../../projects/phoenix-ui/src/lib/components/status-bar/status-bar.component.ts","../../../projects/phoenix-ui/src/lib/components/status-bar/status-bar.component.html","../../../projects/phoenix-ui/src/lib/components/quick-pick/quick-pick-sidepanel/quick-pick-sidepanel.component.ts","../../../projects/phoenix-ui/src/lib/components/quick-pick/quick-pick-sidepanel/quick-pick-sidepanel.component.html","../../../projects/phoenix-ui/src/lib/models/status.model.ts","../../../projects/phoenix-ui/src/public-api.ts","../../../projects/phoenix-ui/src/fuentis-phoenix-ui.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { Component, Input, ViewEncapsulation } from '@angular/core';\nimport { Router, RouterLink, RouterLinkActive } from '@angular/router';\nimport { ButtonModule } from 'primeng/button';\nimport { TranslateModule } from '@ngx-translate/core';\n\nimport { TooltipModule } from 'primeng/tooltip';\nimport { SidebarItem } from '../../models/shell-config.model';\n\n@Component({\n selector: 'pho-sidebar-item',\n standalone: true,\n styleUrl: '../../styles/global.css',\n imports: [\n CommonModule,\n ButtonModule,\n RouterLink,\n RouterLinkActive,\n TooltipModule,\n TranslateModule,\n ],\n encapsulation: ViewEncapsulation.None,\n\n template: `<li class=\"list-none\">\n <a\n [routerLink]=\"item.disabled ? null : item.path\"\n routerLinkActive=\"bg-primary-50 font-bold\"\n [pTooltip]=\"!isOpen ? item.label : ''\"\n [ngClass]=\"[\n classname,\n item.disabled ? 'opacity-50 cursor-not-allowed' : ''\n ]\"\n class=\"p-button no-underline w-full pt-2 pb-2 justify-content-start surface-0 hover:surface-100\t border-none overflow-hidden bg-transparent\"\n [style.pointer-events]=\"item.disabled ? 'none' : 'auto'\"\n >\n <img width=\"30\" [src]=\"item.icon\" alt=\"\" />\n <span *ngIf=\"isOpen\" class=\"text-primary\">{{\n item.label | translate\n }}</span>\n </a>\n <p-button\n class=\"p-tooltip\"\n pTooltip=\"Confirm to proceed\"\n showDelay=\"1000\"\n hideDelay=\"20000\"\n label=\"Save\"\n [disabled]=\"item.disabled\"\n />\n </li>`,\n})\nexport class SidebarItemComponent {\n @Input() item!: SidebarItem;\n @Input() classname: string = '';\n @Input() isOpen: boolean = true;\n\n constructor(private router: Router) {}\n}\n","import { Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';\nimport { ButtonModule } from 'primeng/button';\nimport {\n SidebarItemComponent,\n} from '../sidebar-item/sidebar-item.component';\nimport { CommonModule } from '@angular/common';\nimport { SidebarItem } from '../../models/shell-config.model';\n\n@Component({\n selector: 'pho-sidebar',\n standalone: true,\n imports: [CommonModule, ButtonModule, SidebarItemComponent],\n templateUrl: './sidebar.component.html',\n styleUrl: '../../styles/global.css',\n encapsulation: ViewEncapsulation.None\n})\nexport class SidebarComponent {\n @Output() toggleSidebar = new EventEmitter<void>();\n @Input() classname: string = '';\n\n @Input() mainItems: SidebarItem[][] = [];\n @Input() footerItem: SidebarItem[] = [];\n\n @Input() isSidebarOpen = true;\n}\n","<aside\n [attr.data-sidebar-state]=\"isSidebarOpen ? 'exanded' : 'collapsed'\"\n class=\"relative shadow-3 pt-3 h-full\"\n>\n <!-- <span\n (click)=\"toggleSidebar.emit()\"\n [style.transition]=\"'transform 0.3s ease-in-out'\"\n [style.transform]=\"isSidebarOpen ? 'rotate(180deg)' : ''\"\n style=\"right: -10px\"\n class=\"pi pi-angle-right absolute top-0 border-circle z-5 p-1 cursor-pointer bg-gray-200 hover:bg-white-alpha-50\"\n ></span> -->\n\n <div\n class=\"flex flex-column gap-2 h-full\"\n style=\"scroll-padding-bottom: 5rem\"\n >\n <div class=\"group\">\n <ul class=\"flex flex-column p-0 m-0\">\n <ng-container\n *ngFor=\"let itemGroup of mainItems; let groupIndex = index\"\n >\n <!-- One sidebar group -->\n <ng-container *ngFor=\"let subItem of itemGroup; let subIndex = index\">\n <div\n *ngIf=\"groupIndex !== 0 && subIndex === 0\"\n style=\"height: 2px\"\n class=\"my-2 surface-100\"\n ></div>\n\n <pho-sidebar-item\n [isOpen]=\"isSidebarOpen\"\n [item]=\"subItem\"\n class=\"group-item\"\n />\n </ng-container>\n </ng-container>\n </ul>\n </div>\n\n <div\n *ngIf=\"footerItem.length\"\n class=\"absolute bottom-0 left-0 flex flex-column w-full\"\n >\n <div style=\"height: 2px\" class=\"my-2 surface-100\"></div>\n\n <ul class=\"flex flex-column gap-3 mb-2 p-0 m-0\">\n @for (item of footerItem; track $index) {\n\n <pho-sidebar-item\n [isOpen]=\"isSidebarOpen\"\n [item]=\"{\n label: 'Settings',\n path: '/settings',\n icon: '/assets/settings.svg'\n }\"\n class=\"group-item\"\n />\n }\n </ul>\n </div>\n </div>\n</aside>\n","import {\n animate,\n state,\n style,\n transition,\n trigger,\n} from '@angular/animations';\nimport { CommonModule } from '@angular/common';\nimport {\n Component,\n EventEmitter,\n Input,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { IconField } from 'primeng/iconfield';\nimport { InputIcon } from 'primeng/inputicon';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { OverlayPanelModule } from 'primeng/overlaypanel';\nimport { Popover, PopoverModule } from 'primeng/popover';\nimport { TabsModule } from 'primeng/tabs';\n\n@Component({\n selector: 'pho-search-bar',\n standalone: true,\n imports: [\n IconField,\n InputIcon,\n TabsModule,\n FormsModule,\n CommonModule,\n PopoverModule,\n TranslateModule,\n InputTextModule,\n OverlayPanelModule,\n ],\n styleUrls: ['./search-bar.component.css'],\n templateUrl: './search-bar.component.html',\n animations: [\n trigger('openClose', [\n state(\n 'closed',\n style({\n width: '13vw',\n opacity: 0.8,\n })\n ),\n state(\n 'open',\n style({\n width: '50vw',\n opacity: 1,\n })\n ),\n transition('closed <=> open', [animate('300ms ease-in-out')]),\n ]),\n ],\n})\nexport class SearchBarComponent {\n isExpanded = false;\n searchQuery: string = '';\n\n @ViewChild('op') op!: Popover;\n\n @Input() expandable: boolean = true;\n @Input() placeholder: string = 'Global Search...';\n @Input() message: string = 'Start typing to see data';\n\n @Output() searchQueryChange = new EventEmitter<string>();\n\n // TODO: remove this when done\n tabIndex: number = 0;\n assetActive: boolean = false;\n ismsActive: boolean = false;\n tabChange(event: any) {\n this.tabIndex = event.index;\n }\n\n members = [\n {\n name: 'Amy Elsner',\n image: 'amyelsner.png',\n email: 'amy@email.com',\n role: 'Owner',\n },\n ];\n\n toggleExpand() {\n this.isExpanded = !this.isExpanded;\n }\n\n onInputFocus(event: Event): void {\n this.isExpanded = true;\n if (this.op) {\n this.op.show(event);\n }\n }\n\n clickInside(event: Event) {\n console.log('clickInside', event);\n }\n\n onInputBlur(event: Event): void {\n if (this.op) {\n console.log(event);\n setTimeout(() => {\n this.op.hide();\n this.isExpanded = false;\n }, 200);\n }\n }\n clickOutside(event: Event) {\n console.log('clickOutside', event);\n }\n\n onSearchQueryChange() {\n this.searchQueryChange.emit(this.searchQuery);\n }\n}\n","<p-iconfield [@openClose]=\"isExpanded ? 'open' : 'closed'\" style=\"width: 100%\">\n <p-inputicon styleClass=\"pi pi-search\" />\n <input\n pInputText\n type=\"text\"\n style=\"width: 100%\"\n [ngStyle]=\"{ 'font-size': '14px' }\"\n [(ngModel)]=\"searchQuery\"\n [placeholder]=\"placeholder\"\n (focus)=\"onInputFocus($event)\"\n (blur)=\"onInputBlur($event)\"\n />\n</p-iconfield>\n<p-popover\n #op\n [dismissable]=\"false\"\n [style]=\"{ width: '50vw' }\"\n (click)=\"clickInside($event)\"\n [showTransitionOptions]=\"'.2s ease-in'\"\n [hideTransitionOptions]=\"'.2s ease-in-out'\"\n>\n <div\n role=\"banner\"\n *ngIf=\"!searchQuery\"\n style=\"border-radius: 3px\"\n class=\"text-center text-blue-900 p-inline-message-text p-2 bg-pho-secondary\"\n >\n <i class=\"pi pi-info-circle mr-2\"></i>\n <p class=\"inline\">{{ message }}</p>\n </div>\n\n <ng-content></ng-content>\n\n <div\n *ngIf=\"searchQuery\"\n class=\"flex fit-content flex-wrap\"\n style=\"width: 100%\"\n >\n <div\n class=\"overflow-container\"\n style=\"\n overflow-y: auto;\n max-height: 70vh;\n width: 100%;\n word-wrap: break-word;\n \"\n >\n <p-tabs value=\"ISMS\">\n <p-tablist>\n <p-tab value=\"ISMS\">ISMS</p-tab>\n <p-tab value=\"BCMS\">BCMS</p-tab>\n </p-tablist>\n <p-tabpanels>\n <p-tabpanel value=\"ISMS\">\n <div>\n <h3>Isms</h3>\n <p>Searching for: {{ searchQuery }}</p>\n </div>\n </p-tabpanel>\n\n <p-tabpanel value=\"BCMS\">\n <div>\n <h3>People Results</h3>\n <p>People matching: {{ searchQuery }}</p>\n </div>\n </p-tabpanel>\n </p-tabpanels>\n </p-tabs>\n </div>\n </div>\n</p-popover>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { Avatar } from 'primeng/avatar';\nimport { Popover } from 'primeng/popover';\n\ninterface User {\n email: string;\n imageUrl?: string;\n username: string;\n}\n\n@Component({\n selector: 'pho-user',\n imports: [Avatar, Popover, TranslateModule],\n template: `\n <a\n (click)=\"op.toggle($event)\"\n class=\"layout-topbar-action flex flex-row justify-content-center align-items-center px-2 rounded-circle\"\n pRipple\n >\n <p-avatar [label]=\"user.imageUrl\" shape=\"circle\" />\n </a>\n <p-popover #op>\n <div class=\"flex gap-2 w-20rem\">\n <p-avatar label=\"U\" size=\"large\" shape=\"circle\" />\n <div class=\"flex gap-2 flex-column\">\n <div class=\"text-sm mt-auto\">{{ user.username }}</div>\n <div class=\"text-sm\">{{ user.email }}</div>\n </div>\n </div>\n\n <div\n class=\"border-top-1 border-300 flex flex-row justify-content-between mt-2 pt-2 mx-2\"\n >\n <a\n class=\"flex flex-row align-items-center cursor-pointer\"\n (click)=\"editSettings.emit()\"\n pRipple\n >\n <i class=\"pi pi-user-edit p-2\" style=\"font-size: 1.5rem\"></i>\n <span>{{ 'ACTION.EDIT_SETTINGS' | translate }}</span>\n </a>\n\n <a\n style=\"color: red\"\n class=\"flex flex-row align-items-center cursor-pointer\"\n (click)=\"logout.emit()\"\n pRipple\n >\n <i class=\"pi pi-power-off p-2\"></i>\n <span>{{ 'ACTION.LOGOUT' | translate }}</span>\n </a>\n </div>\n </p-popover>\n `,\n})\nexport class UserComponent {\n @Input() user!: User;\n @Output() logout = new EventEmitter<void>();\n @Output() editSettings = new EventEmitter<void>();\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, OnInit, ViewEncapsulation } from '@angular/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { DrawerModule } from 'primeng/drawer';\nimport { SearchBarComponent } from '../search-bar/search-bar.component';\nimport { UserComponent } from '../user/user.component';\nimport { RouterModule } from '@angular/router';\nimport { DividerModule } from 'primeng/divider';\n\nexport interface TopbarModuleItem {\n label: string;\n fullName?: string; // Opcioni, jer ne postoji kod svih modula\n icon?: string;\n url?: string;\n routerLink?: string[];\n disabled?: boolean;\n}\n\nexport interface TopbarModuleGroup {\n label: string;\n layout: 'full' | 'grid';\n showIconBackground: boolean;\n items: TopbarModuleItem[];\n}\n\nexport interface TopbarFooterConfig {\n companyName: string;\n companyUrl: string;\n guideLabel: string;\n guideUrl: string;\n copyrightText: string;\n}\n\n@Component({\n selector: 'pho-topbar',\n standalone: true,\n imports: [\n CommonModule,\n SearchBarComponent,\n UserComponent,\n TranslateModule,\n RouterModule,\n DrawerModule,\n DividerModule,\n ],\n templateUrl: './topbar.component.html',\n encapsulation: ViewEncapsulation.None,\n})\nexport class TopbarComponent {\n sidebarConfig = { visible: false, type: '' };\n currentYear: number = new Date().getFullYear();\n isSidebarVisible: boolean = false;\n\n @Input() homeUrl: string = '/';\n @Input() user!: { email: string; imageUrl?: string; username: string };\n @Input() shortModuleName?: string = 'FLEX';\n @Input() topbarModulesMenu: TopbarModuleGroup[] = [];\n @Input() footerConfig: TopbarFooterConfig = {\n companyName: 'fuentis',\n companyUrl: 'https://fuentis.com/',\n guideLabel: 'Guide',\n guideUrl: 'https://fuentis.atlassian.net/wiki/spaces/FSUG/overview',\n copyrightText:\n '© ' + new Date().getFullYear() + ' fuentis. All Rights Reserved.',\n };\n\n openSidebarPanel() {\n this.isSidebarVisible = true;\n }\n\n /** ✅ Zatvara sidebar */\n closeSidebar() {\n this.isSidebarVisible = false;\n }\n\n goToHome() {\n if (this.homeUrl) {\n window.location.href = this.homeUrl;\n }\n }\n\n get bindImageUrl(): string {\n return this.user?.imageUrl\n ? `url(${this.user.imageUrl})`\n : `url('assets/default-user.png')`;\n }\n}\n","<header\n class=\"h-full px-2 justify-content-between w-full flex items-center align-items-center shadow-1\"\n>\n <!-- Title -->\n <div class=\"flex align-items-center justify-content-center mb-2 ml-2\">\n <img class=\"h-2rem\" src=\"assets/logo_rose.png\" alt=\"fuentis_logo_white\" />\n\n <span *ngIf=\"shortModuleName\" class=\"text-3xl text-300\">|</span>\n <span class=\"text-xl text-400 mt-2\">\n {{ shortModuleName }}\n </span>\n </div>\n <!-- children -->\n <ng-content></ng-content>\n\n <div class=\"flex gap-2\">\n <!-- Search Bar -->\n <pho-search-bar></pho-search-bar>\n\n <!-- Side Panel (Opens Sidebar) -->\n <a\n class=\"layout-topbar-action flex flex-row justify-content-center align-items-center px-2 rounded-circle\"\n (click)=\"openSidebarPanel()\"\n pRipple\n >\n <i class=\"pi pi-th-large\" style=\"font-size: 1.1rem\"></i>\n </a>\n\n <!-- User Icon -->\n <pho-user [user]=\"user\" />\n </div>\n</header>\n\n<!-- Sidebar Menu -->\n<p-drawer\n styleClass=\"w-20rem\"\n position=\"right\"\n [(visible)]=\"isSidebarVisible\"\n [closable]=\"false\"\n>\n <div class=\"flex flex-column h-full\">\n <!-- Loop through module groups (e.g., 'Management Modules', 'Support') -->\n <ng-container\n *ngFor=\"let moduleGroup of topbarModulesMenu; let last = last\"\n >\n <h4 class=\"mt-5 ml-3\">{{ moduleGroup.label }}</h4>\n\n <div class=\"grid\">\n <!-- If layout is 'full', it takes up the entire row -->\n <ng-container *ngIf=\"moduleGroup.layout === 'full'\">\n <div\n *ngFor=\"let module of moduleGroup.items\"\n class=\"col-12 p-3 surface-0 hover:surface-100 cursor-pointer\"\n >\n <a\n class=\"text-primary flex align-items-center gap-3\"\n [href]=\"module.url || '#'\"\n style=\"text-decoration: none; cursor: pointer\"\n >\n <div\n class=\"w-3rem h-3rem border-round-sm flex justify-content-center align-items-center\"\n [style.backgroundColor]=\"\n moduleGroup.showIconBackground\n ? module.disabled\n ? '#ccc'\n : '#e74360'\n : 'transparent'\n \"\n >\n <img *ngIf=\"module.icon\" [src]=\"module.icon\" class=\"w-2rem\" />\n </div>\n <div>\n <h4 class=\"mb-0 mt-0\">{{ module.label }}</h4>\n <p class=\"w-11rem text-500 text-sm line-height-1 m-0\">\n {{ module.fullName || \"\" }}\n </p>\n </div>\n </a>\n </div>\n </ng-container>\n\n <!-- If layout is 'grid', modules are arranged in a 3-column grid -->\n <ng-container *ngIf=\"moduleGroup.layout === 'grid'\">\n <div\n *ngFor=\"let module of moduleGroup.items\"\n class=\"col-4 p-3 surface-0 hover:surface-100 cursor-pointer p-0 m-0\"\n >\n <a\n class=\"text-primary flex flex-column align-items-center gap-2\"\n [href]=\"module.url || '#'\"\n style=\"text-decoration: none; cursor: pointer\"\n >\n <div\n class=\"w-4rem border-round-sm flex justify-content-center align-items-center\"\n [style.backgroundColor]=\"\n moduleGroup.showIconBackground\n ? module.disabled\n ? '#ccc'\n : '#e74360'\n : 'transparent'\n \"\n >\n <img *ngIf=\"module.icon\" [src]=\"module.icon\" class=\"w-2rem\" />\n </div>\n <span class=\"text-sm text-center\">{{ module.label }}</span>\n </a>\n </div>\n </ng-container>\n </div>\n\n <!-- Divider between module groups (except after the last one) -->\n <p-divider *ngIf=\"!last\" class=\"mt-3 mb-3\"></p-divider>\n </ng-container>\n\n <!-- Footer links -->\n <div class=\"mt-auto p-2\">\n <p-divider class=\"mt-2 mb-2\"></p-divider>\n <div class=\"flex justify-content-between pb-3\">\n <a\n class=\"text-primary no-underline text-sm\"\n [href]=\"footerConfig.guideUrl\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n <span class=\"flex align-items-center\">\n <i class=\"pi pi-info-circle p-2\"></i>\n {{ footerConfig.guideLabel }}\n </span>\n </a>\n <a\n class=\"text-primary no-underline text-sm\"\n [href]=\"footerConfig.companyUrl\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n <span class=\"flex align-items-center\">\n <i class=\"pi pi-globe p-2\"></i> {{ footerConfig.companyName }}\n </span>\n </a>\n </div>\n\n <div class=\"text-500 text-sm pl-2\">\n {{ footerConfig.copyrightText }}\n </div>\n </div>\n </div>\n</p-drawer>\n","import { Component, EventEmitter, Output } from '@angular/core';\n\n@Component({\n selector: 'phoenix-quick-pick',\n imports: [],\n templateUrl: './quick-pick.component.html',\n styleUrl: './quick-pick.component.css'\n})\nexport class QuickPickComponent {\n @Output() onBack = new EventEmitter<void>();\n @Output() onQuickPick = new EventEmitter<void>();\n @Output() onForward = new EventEmitter<void>();\n}\n","<div class=\"flex items-center\">\n <span (click)=\"onBack.emit()\" class=\"slide cursor-pointer\">\n <i class=\"pi pi-chevron-left cursor-pointer hover:text-blue-500\" style=\"color: #00395b\"></i>\n </span>\n <span (click)=\"onQuickPick.emit()\" class=\"slide\">\n <i class=\"pi pi-table ml-3 mr-3 cursor-pointer hover:text-blue-500\" style=\"color: #00395b\"></i>\n </span>\n <span (click)=\"onForward.emit()\" class=\"slide\">\n <i class=\"pi pi-chevron-right cursor-pointer hover:text-blue-500\" style=\"color: #00395b\"></i>\n </span>\n </div>","import { Component, Input, ChangeDetectionStrategy, EventEmitter, Output } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ButtonModule } from 'primeng/button';\nimport { SplitButtonModule } from 'primeng/splitbutton';\nimport { PanelModule } from 'primeng/panel';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { TooltipModule } from 'primeng/tooltip';\nimport { TieredMenuModule } from 'primeng/tieredmenu';\nimport { QuickPickComponent } from '../quick-pick/quick-pick/quick-pick.component';\n\n@Component({\n selector: 'phoenix-status-header',\n standalone: true,\n imports: [\n CommonModule, \n PanelModule, \n ButtonModule, \n SplitButtonModule, \n TranslateModule, \n TooltipModule,\n TieredMenuModule,\n QuickPickComponent\n ],\n templateUrl: './status-header.component.html',\n styleUrls: ['./status-header.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class StatusHeaderComponent {\n @Output() onQuickPickClickEmiter = new EventEmitter<void>();\n @Output() onToggleClickEmmiter = new EventEmitter<'forward' | 'back'>();\n @Output() onCloseEvent = new EventEmitter<void>();\n\n @Input() name: string = '';\n @Input() title: string = '';\n @Input() enableQuickPick: boolean = false;\n @Input() actions: any[] = [];\n @Input() panelState: boolean = false;\n @Input() customClose: boolean = true;\n\n validSeverities: string[] = ['success', 'info', 'warn', 'danger', 'help', 'primary', 'secondary', 'contrast'];\n\n onToggleClick(direction: 'forward' | 'back') {\n this.onToggleClickEmmiter.emit(direction);\n }\n\n toggleSidePanel() {\n this.onQuickPickClickEmiter.emit();\n }\n\n closePanel() {\n this.onCloseEvent.emit();\n }\n}","<p-panel [style]=\"{ width: '100%' }\" [toggleable]=\"false\">\n <ng-template pTemplate=\"header\">\n <div class=\"flex justify-between items-center w-full flex-wrap gap-2\">\n @if (enableQuickPick) {\n <phoenix-quick-pick\n (onBack)=\"onToggleClick('back')\"\n (onQuickPick)=\"toggleSidePanel()\"\n (onForward)=\"onToggleClick('forward')\"\n ></phoenix-quick-pick>\n }\n <div class=\"flex items-baseline gap-2\">\n <span class=\"text-xl font-semibold\">{{ name }}</span>\n <span class=\"text-base text-gray-500\">{{ title }}</span>\n </div>\n </div>\n </ng-template>\n\n <ng-template pTemplate=\"icons\">\n <div class=\"flex\">\n <ng-container *ngFor=\"let button of actions; index as i\">\n <ng-container [ngSwitch]=\"button.type\">\n <ng-container *ngSwitchCase=\"'split'\">\n <button\n [attr.data-cy]=\"'split-button-' + i\"\n #btn\n type=\"button\"\n pButton\n class=\"p-button-text\"\n [disabled]=\"button?.disabled\"\n (click)=\"menu.toggle($event)\"\n >\n <span class=\"button-icon mr-2\">\n <i class=\"{{ button.icon }}\"></i>\n </span>\n <span class=\"button-label\">\n {{ button.label | translate }}\n </span>\n <span class=\"button-icon ml-2\">\n <i class=\"pi pi-chevron-down\" style=\"font-size: 0.9rem\"></i>\n </span>\n </button>\n <p-tieredMenu\n #menu\n [model]=\"button.splitItems!\"\n [popup]=\"true\"\n ></p-tieredMenu>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'regular'\">\n <p-button\n [attr.data-cy]=\"'regular-button-' + i\"\n id=\"{{ button.id }}\"\n data-cy=\"s-ab-button-cy\"\n class=\"mr-2\"\n [text]=\"true\"\n icon=\"{{ button.icon }}\"\n label=\"{{ button.label! | translate }}\"\n [pTooltip]=\"!button.tooltip ? '' : (button.tooltip | translate)\"\n tooltipPosition=\"\"\n [disabled]=\"button.disabled\"\n [severity]=\"validSeverities.includes(button.severity!) ? button.severity : undefined\"\n ></p-button>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n </ng-template>\n</p-panel>","import { CommonModule } from '@angular/common';\nimport { Component, Input, ViewEncapsulation } from '@angular/core';\nimport { SidebarComponent } from '../sidebar/sidebar.component';\nimport { TopbarComponent } from '../topbar/topbar.component';\nimport { ShellConfig } from '../../models/shell-config.model';\n\n@Component({\n selector: 'pho-shell',\n imports: [\n SidebarComponent,\n TopbarComponent,\n CommonModule\n ],\n templateUrl: './shell.component.html',\n encapsulation: ViewEncapsulation.None,\n})\nexport class ShellComponent {\n @Input() config!: ShellConfig;\n @Input() isSidebarOpen!: boolean;\n\n toggleSidebar() {\n this.isSidebarOpen = !this.isSidebarOpen;\n }\n}\n","<!-- Sidebar Layout -->\n<div\n [style]=\"{\n 'grid-template-columns': '16rem 1fr',\n 'grid-template-rows': '3.5rem 1fr',\n }\"\n class=\"pho-grid w-full h-screen overflow-hidden m-0 p-0\"\n>\n <!-- Top header -->\n <pho-topbar\n class=\"bg-white pho-col-span-2 z-1\"\n [user]=\"config.user\"\n [topbarModulesMenu]=\"config.topbarModulesMenu\"\n >\n </pho-topbar>\n <!-- Sidebar -->\n <pho-sidebar\n [mainItems]=\"config.mainItems\"\n [footerItem]=\"config.footerItem\"\n (toggleSidebar)=\"toggleSidebar()\"\n ></pho-sidebar>\n <!-- Main content -->\n <div class=\"bg-primary-50\">\n <ng-content> </ng-content>\n </div>\n</div>\n","export enum tableActionType {\n CREATE = 'create',\n EDIT = 'edit',\n DELETE = 'delete',\n DETAILS = 'details',\n ASSIGN = 'assign',\n APPLY = 'apply',\n OPEN_IN_NEW_TAB = 'open_in_new_tab',\n TAB = 'tab',\n OPEN_FULL_SCREEN = 'open_full_screen',\n ADD_LINK = 'add_link',\n DISCONNECT = 'disconnect',\n REMOVE = 'remove',\n SYNC = 'sync',\n MENU = 'menu',\n DROP = 'drop',\n OVERVIEW = 'overview',\n HISTORY = 'syncHistory',\n DOWNLOAD = 'download',\n ATTACH = 'attach',\n IMPORT = 'import',\n ///multiple options\n ASSIGN_FROM_CATALOG = 'ASSIGN_FROM_CATALOG',\n ASSIGN_FROM_ITEM = 'ASSIGN_FROM_ITEM',\n ASSIGN_CONTROLS = 'ASSING_CONTROLS',\n ASSIGN_MEASURE = 'ASSGIN_MEASURE',\n CREATE_ADITIONAL_MEASURE = 'CREATE_ADITIONAL_MEASURE',\n}\n\nexport enum tableButtonFormat {\n TEXT_ICON = 'TEXT_ICON',\n TEXT = 'TEXT',\n ICON = 'ICON',\n ICON_ROUNDED = 'ICON_ROUNDED',\n}\n\nexport enum tableButtonContext {\n GLOBAL = 'GLOBAL',\n BULK = 'BULK',\n ROW = 'ROW',\n}\n\nexport enum tableColumnType {\n TEXT = 'TEXT',\n RICH_TEXT = 'RICH_TEXT',\n TEXT_AREA = 'TEXT_AREA',\n DATE = 'DATE',\n DATE_COMPLEX = 'DATE_COMPLEX', //Date and time\n TAG = 'TAG',\n NUMBER = 'NUMBER',\n PERSON = 'PERSON',\n COMPLETNESS = 'COMPLETNESS',\n BOOLEAN = 'BOOLEAN',\n LIST = 'LIST',\n CUSTOM = 'CUSTOM',\n}\n\nexport enum tableSelectionType {\n CHECKBOX = 'checkbox',\n RADIO_BTN = 'radio_btn',\n}\n\nexport enum tableFilterType {\n ///not using text, its in global srch\n // TEXT = 'text',\n DATE = 'date',\n // NUMERIC = 'numeric',\n BOOLEAN = 'boolean',\n MULTISELECT = 'multiselect',\n COMPLETNESS = 'completness',\n // ICON = 'icon',\n}\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n EventEmitter,\n Input,\n OnChanges,\n Output,\n} from '@angular/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ButtonModule } from 'primeng/button';\nimport { OverlayPanelModule } from 'primeng/overlaypanel';\nimport { TooltipModule } from 'primeng/tooltip';\nimport { tableActionType, tableButtonContext } from '../utils/dataTable.enum';\nimport { TableAction } from '../utils/dataTable.interface';\nimport { PopoverModule } from 'primeng/popover';\n\ninterface BtnConfig {\n text: boolean;\n label: string;\n icon: string;\n outlined: boolean;\n class?: string;\n type?: string; // default is 'button' , for multiselect button set 'multiselect'\n items?: any;\n severity?:\n | 'info'\n | 'success'\n | 'warn'\n | 'danger'\n | 'secondary'\n | 'contrast'\n | 'help'\n | 'primary';\n checkboxrelatedauth?: boolean;\n}\nenum ico {\n import = 'pi pi-file-import',\n create = 'pi pi-plus',\n open_full_screen = 'pi pi-external-link',\n edit = 'pi pi-pencil',\n delete = 'pi pi-exclamation-triangle',\n assign = 'pi pi-paperclip',\n apply = 'pi pi-check-square',\n open_in_new_tab = 'pi pi-external-link',\n add_link = 'pi pi-link',\n disconnect = 'pi pi-link',\n remove = 'pi pi-minus',\n sync = 'pi pi-sync',\n menu = 'pi pi-ellipsis-v',\n drop = 'pi pi-angle-down',\n overview = 'pi pi-history',\n syncHistory = 'pi pi-history',\n download = 'pi pi-download',\n attach = 'pi pi-paperclip',\n details = 'pi pi-info-circle',\n}\n\n@Component({\n selector: 'phoenix-phoenix-data-table-action',\n standalone: true,\n imports: [\n CommonModule,\n ButtonModule,\n TooltipModule,\n TranslateModule,\n PopoverModule,\n ],\n templateUrl: './phoenix-data-table-action.component.html',\n styleUrls: ['./phoenix-data-table-action.component.css'],\n})\n\n/// two disble opt\n/// Read only: Default scope/enity or any other reason | referenced type etc...\n/// solved with readonly property from response and it works per row. It works independed from user. Response has to return readonly:boolean\n\n/// Authorization\n//// needs in btn configuration and its fro all buttons. all rows\nexport class PhoenixDataTableActionComponent implements OnChanges {\n @Input({ required: true }) actionConfig!: TableAction;\n @Input() rowData!: any;\n @Input() selectedData!: any;\n\n @Output() actionClick = new EventEmitter<any>();\n\n icon!: string;\n disabled!: boolean | undefined;\n btnConfig!: BtnConfig;\n\n ngOnChanges(): void {\n this.icon = ico[this.actionConfig.type as keyof typeof ico];\n\n ///set standard btn configuraton\n this.btnConfig = {\n text: true,\n label: this.actionConfig.label,\n icon: 'pi pi-circle',\n class: '',\n outlined: false,\n type: this.actionConfig.buttonType,\n items: this.actionConfig.items,\n checkboxrelatedauth: this.actionConfig.checkboxrelatedauth\n ? this.actionConfig.checkboxrelatedauth\n : false,\n };\n switch (this.actionConfig.context) {\n case tableButtonContext.GLOBAL:\n ///disable by permission\n\n this.disabled = this.actionConfig.disabled;\n break;\n case tableButtonContext.BULK:\n this.btnConfig.label = '';\n this.btnConfig.outlined = true;\n this.btnConfig.class = 'ml-1';\n ///disable by permission\n this.disabled = this.actionConfig.disabled;\n \n ///configure bulk delete button\n if (this.actionConfig.type === tableActionType.DELETE) {\n this.btnConfig.label = 'Delete';\n this.btnConfig.text = true;\n this.btnConfig.outlined = false;\n this.btnConfig.severity = 'warn';\n }\n\n break;\n case tableButtonContext.ROW:\n this.btnConfig.label = '';\n ///Test the order of disabling\n ///disable by permission\n this.disabled = this.actionConfig.disabled;\n if (this.actionConfig?.type && !this.actionConfig?.notauthorized) {\n this.disabled =\n this.rowData[this.actionConfig.type] != undefined &&\n this.rowData[this.actionConfig.type] != null\n ? !this.rowData[this.actionConfig.type]\n : false;\n }\n /// always disable delete button if object response is readOnly:true\n if (\n this.rowData?.readOnly &&\n this.actionConfig.type === tableActionType.DELETE\n ) {\n this.disabled = true;\n }\n /// this CUSTOM condition is only for BCMS Resources. readOnly is not enough (its not appropriate for ISMS & BCMS) we should have isEditable, isDeletable ets... boolean for each action :)\n if (\n this.rowData?.typeLabelKey === 'CUSTOM' &&\n this.actionConfig.type === tableActionType.OPEN_IN_NEW_TAB\n ) {\n this.disabled = true;\n }\n\n break;\n }\n }\n\n onActionClick($event: any) {\n this.actionClick.emit($event);\n }\n}\n","<p-popover #op>\n <ul class=\"list-none p-0 m-0\">\n <ng-container *ngFor=\"let item of btnConfig.items; let last = last\">\n <li\n class=\"cursor-pointer block\"\n [ngClass]=\"{ 'mb-3': !last, disabledAction: item.disabled }\"\n (click)=\"onActionClick(item)\"\n >\n <i class=\"mr-2\" [class]=\"item.icon\"></i> {{ item.label | translate }}\n </li>\n </ng-container>\n </ul>\n</p-popover>\n\n<p-button\n [attr.data-cy]=\"'table-button-' + this.actionConfig.type\"\n [label]=\"btnConfig.label | translate\"\n [text]=\"btnConfig.text\"\n [icon]=\"icon\"\n [disabled]=\"disabled\"\n [iconPos]=\"btnConfig.type === 'multiselect' ? 'right' : 'left'\"\n (click)=\"\n btnConfig.type === 'multiselect'\n ? op.toggle($event)\n : onActionClick(actionConfig)\n \"\n [outlined]=\"btnConfig.outlined\"\n [pTooltip]=\"actionConfig.label | translate\"\n tooltipPosition=\"bottom\"\n [class]=\"btnConfig.class\"\n [severity]=\"btnConfig.severity\"\n>\n</p-button>\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { TableColumn } from './dataTable.interface';\nimport { DatePipe } from '@angular/common';\nimport { tableColumnType } from './dataTable.enum';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Pipe({\n name: 'cellValue',\n standalone: true,\n})\nexport class CellValuePipe implements PipeTransform {\n /**\n * @todo Cell limit and Rich text ??? check if this is a solution\n */\n constructor(private datePipe: DatePipe, private trnalste: TranslateService) {}\n transform(value: any, col: TableColumn) {\n if (value) {\n\n switch (col.columnType) {\n case tableColumnType.TEXT:\n /** checking if there is a object instead of string. objects goes into non-lazy tables */\n\n const textValue = value?.name ?? value;\n\n if (typeof textValue === 'string') {\n return textValue;\n }\n\n return '--';\n\n case tableColumnType.DATE:\n return this.datePipe.transform(value);\n case tableColumnType.NUMBER:\n return value;\n }\n } else return '--';\n }\n}\n","export enum ExportType {\n PDF = 'PDF',\n EXCEL = 'EXCEL',\n}\n","import {\n Component,\n DestroyRef,\n EventEmitter,\n Input,\n OnInit,\n Output,\n inject,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TableAction } from '../utils/dataTable.interface';\nimport { SelectButtonModule } from 'primeng/selectbutton';\nimport { FormsModule } from '@angular/forms';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { BadgeModule } from 'primeng/badge';\nimport { ActivatedRoute, NavigationEnd, Router } from '@angular/router';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nenum soType {\n modules = 'COMPL_APPLIED_MODULE',\n requirements = 'COMPL_APPLIED_REQUIREMENT',\n measures = 'COMPL_APPLIED_MEASURE',\n threats = 'COMPL_APPLIED_THREAT',\n risks = 'COMPL_APPLIED_RISK',\n controls = 'COMPL_APPLIED_CONTROL',\n}\n\n@Component({\n selector: 'phoenix-data-table-tabs',\n standalone: true,\n imports: [\n CommonModule,\n SelectButtonModule,\n FormsModule,\n TranslateModule,\n BadgeModule,\n ],\n templateUrl: './phoenix-data-table-tabs.component.html',\n styleUrls: ['./phoenix-data-table-tabs.component.css'],\n})\nexport class PhoenixDataTableTabsComponent implements OnInit {\n @Input({ required: true }) actions!: TableAction[];\n @Output() actionClick = new EventEmitter<any>();\n\n private route = inject(ActivatedRoute);\n private router = inject(Router);\n private dr = inject(DestroyRef);\n value!: string | undefined;\n\n ngOnInit(): void {\n this.preselectTab();\n this.router.events.pipe(takeUntilDestroyed(this.dr)).subscribe((event) => {\n if (event instanceof NavigationEnd) {\n this.preselectTab();\n }\n });\n }\n preselectTab() {\n const sotype = this.route.snapshot.paramMap.get('sotype');\n const hasSouuid = this.route.snapshot.paramMap.has('souuid');\n\n if (sotype) {\n this.value = soType[sotype as keyof typeof soType];\n }\n\n if (hasSouuid && this.actions && this.actions.length > 0) {\n this.value = this.actions[0].key;\n }\n }\n onActionClick(event: any) {\n let opt = this.actions.find((i) => i.key === event.value);\n\n this.actionClick.emit({ action: opt });\n }\n}\n","<p-selectButton\n [options]=\"actions\"\n optionValue=\"key\"\n [(ngModel)]=\"value\"\n optionLabel=\"icon\"\n [unselectable]=\"true\"\n (onChange)=\"onActionClick($event)\"\n>\n <ng-template #item let-item>\n <span>\n {{ item.label }}\n </span>\n <span>\n <p-badge\n *ngIf=\"item.badgeCount\"\n [value]=\"item.badgeCount\"\n severity=\"danger\"\n badgeSize=\"small\"\n />\n </span>\n </ng-template>\n</p-selectButton>\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'isSelected',\n standalone: true,\n})\nexport class IsSelectedPipe implements PipeTransform {\n transform(item: any, selectedColumns: any[]): boolean {\n return selectedColumns.some(\n selectedItem => selectedItem.field == item.field,\n );\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'removeHTMLTags',\n standalone: true,\n})\nexport class RemoveHTMLTagsPipe implements PipeTransform {\n transform(text: string): string {\n return text ? String(text).replace(/<[^>]+>/gm, '') : '';\n }\n}\n\n/* \n\nDIFFERENT PIPE\n==============\n\nimport { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'removeHTMLTags',\n standalone: true,\n})\nexport class RemoveHTMLTagsPipe implements PipeTransform {\n transform(text: string, ...usefulTags: any[]): string {\n return usefulTags.length > 0\n ? text.replace(\n new RegExp(`<(?!\\/?(${usefulTags.join('|')})\\s*\\/?)[^>]+>`, 'g'),\n '',\n )\n : text.replace(/<(?:.|\\s)*?>/g, '');\n }\n} */\n","import { CommonModule, LowerCasePipe } from '@angular/common';\nimport {\n CUSTOM_ELEMENTS_SCHEMA,\n Component,\n DestroyRef,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n ViewChild,\n inject,\n input,\n} from '@angular/core';\nimport { ButtonModule } from 'primeng/button';\nimport {\n Table,\n TableHeaderCheckboxToggleEvent,\n TableLazyLoadEvent,\n TableModule,\n} from 'primeng/table';\nimport { PhoenixDataTableActionComponent } from '../phoenix-data-table-action/phoenix-data-table-action.component';\n\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n FormBuilder,\n FormControl,\n FormGroup,\n FormsModule,\n ReactiveFormsModule,\n} from '@angular/forms';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\n// import { DateFormatService } from '@phoenix/service/common'; - configuration?\n// import * as FileSaver from 'file-saver'; - what package json\n// import jsPDF from 'jspdf'; - what package json\n// import autoTable from 'jspdf-autotable'; - what package json\nimport { FilterMatchMode } from 'primeng/api';\nimport { AvatarModule } from 'primeng/avatar';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { MultiSelectModule } from 'primeng/multiselect';\nimport { SkeletonModule } from 'primeng/skeleton';\nimport { TagModule } from 'primeng/tag';\nimport { CellValuePipe } from '../utils/data-cell-value.pipe';\nimport {\n tableButtonContext,\n tableColumnType,\n tableFilterType,\n tableSelectionType,\n} from '../utils/dataTable.enum';\nimport { TableColumn, TableConfiguration } from '../utils/dataTable.interface';\nimport { ExportType } from '../utils/export-type.util';\nimport { PhoenixDataTableTabsComponent } from '../phoenix-data-table-tabs/phoenix-data-table-tabs.component';\nimport { TooltipModule } from 'primeng/tooltip';\nimport { IsSelectedPipe } from './isSelected.pipe';\nimport { ListboxModule } from 'primeng/listbox';\nimport { RemoveHTMLTagsPipe } from '../utils/remove-html-tags.pipe';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { SelectModule } from 'primeng/select';\nimport { IconFieldModule } from 'primeng/iconfield';\nimport { InputIconModule } from 'primeng/inputicon';\nimport { PopoverModule } from 'primeng/popover';\n\n/**\n * Transform data for non-lazy filtering\n * 1. transform data that goes into table (string to object value/name props )\n * 2. transform data that goes into dropdown filter (string to object value/name props )\n * 3. in cell-value pipe in table check if it's non-lazy tabel, if is take object.name (add lazyTable argument to pipe)\n */\n\n/**\n * @todo Add option to pass custom color to status tag -> modify response to match columnName + Color -> sample: actualRiskColor\n * @todo Check DATE format. there is a cell-pipe for that\n * @todo Filter persistance in localstorage\n * @todo Frozen columns fix\n *\n *\n *\n * * @todo unauthorized API for population MS filters\n * - Entities\n * - Catalogs\n * - Statuses\n * - Responsibles\n * - Types\n * - CIA att\n */\n\n///transforms input into context arrays. Action positions in table\nfunction resolveActions(value: TableConfiguration): any {\n const transformed: any = {\n globalActions: [],\n rowActions: [],\n bulkActions: [],\n\n ...value,\n };\n value.actions.forEach((a) => {\n switch (a.context) {\n case tableButtonContext.GLOBAL:\n transformed.globalActions.push(a);\n break;\n case tableButtonContext.ROW:\n transformed.rowActions.push(a);\n break;\n case tableButtonContext.BULK:\n transformed.bulkActions.push(a);\n break;\n default:\n break;\n }\n });\n\n transformed.globalFilter =\n transformed.globalFilter === undefined ? true : transformed.globalFilter;\n\n return transformed;\n}\n@Component({\n selector: 'phoenix-data-table',\n standalone: true,\n imports: [\n CommonModule,\n TableModule,\n ButtonModule,\n InputTextModule,\n MultiSelectModule,\n AvatarModule,\n TagModule,\n FormsModule,\n ReactiveFormsModule,\n SkeletonModule,\n TranslateModule,\n CheckboxModule,\n SelectModule,\n IconFieldModule,\n InputIconModule,\n ///Custom components\n PhoenixDataTableActionComponent,\n PhoenixDataTableTabsComponent,\n // Pipes\n CellValuePipe,\n TooltipModule,\n PopoverModule,\n ListboxModule,\n IsSelectedPipe,\n RemoveHTMLTagsPipe,\n LowerCasePipe,\n ],\n templateUrl: './phoenix-data-table.component.html',\n styleUrls: ['./phoenix-data-table.component.css'],\n ///allow semantic\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class PhoenixDataTableComponent implements OnInit, OnChanges {\n @ViewChild('btn', { static: false }) overviewBtn!: any;\n @ViewChild('dt', { static: false }) table?: Table;\n @Input({ required: true }) data: any;\n @Input({ required: false }) exportdData: any;\n @Input({ required: true }) columns!: TableColumn[];\n loading = input.required<boolean>();\n @Input() totalRecords!: number;\n @Input({ required: true, transform: resolveActions }) tableConfiguration: any;\n @Output() actionClickEmmiter = new EventEmitter<any>();\n @Output() lazyLoadDataEmmiter = new EventEmitter<any>();\n @Output() onRowClickEmmiter = new EventEmitter<any>();\n @Output() onRowCheckboxRadioClickEmmiter = new EventEmitter<any>();\n @Output() onExportClickEmmiter = new EventEmitter<ExportType>();\n @Output() onSaveColumnsClickEmmiter = new EventEmitter<string[]>();\n @Output() onHeaderCheckboxToggleEmmiter = new EventEmitter<any>();\n @Input() exportData?: {\n type: ExportType;\n data: any;\n };\n public exportType = ExportType;\n\n ///injects\n translateService = inject(TranslateService);\n fb = inject(FormBuilder);\n // dateFormatService = inject(DateFormatService);\n dr = inject(DestroyRef);\n // private datePipe = inject(DatePipe);\n ///enum\n columnTypeEnum = tableColumnType;\n tableFilterTypeEnum = tableFilterType;\n selectionTypeEnum = tableSelectionType;\n ///columns\n _selectedColumns!: TableColumn[];\n selectedData: any[] = [];\n // configuration for Date Filter\n dateFormat!: string;\n dateFilterOptions = [\n {\n label: this.translateService.instant('primeng.dateIs'),\n value: FilterMatchMode.DATE_IS,\n },\n {\n label: this.translateService.instant('primeng.dateBefore'),\n value: FilterMatchMode.DATE_BEFORE,\n },\n {\n label: this.translateService.instant('primeng.dateAfter'),\n value: FilterMatchMode.DATE_AFTER,\n },\n ];\n\n globalFilterFields!: string[];\n filtersForm = new FormGroup({});\n originalData!: any;\n ngOnInit() {\n ///convert to signal\n this.originalData = [...this.data];\n if (this.tableConfiguration.filterConfiguration) {\n this.tableConfiguration.filterConfiguration.forEach((fc: any) => {\n const fControl = new FormControl();\n this.filtersForm.addControl(fc.key, fControl);\n });\n this.filtersForm.valueChanges\n .pipe(takeUntilDestroyed(this.dr))\n .subscribe((r) => {\n this.data = this.filterTableData(this.originalData, r);\n });\n }\n }\n\n // Example array of field configurations\n\n filterTableData(originalArray: any[], mapping: any) {\n return originalArray.filter((item) => {\n let matches = true;\n\n for (const key in mapping) {\n if (mapping[key] && mapping[key].key) {\n if (item[key] !== mapping[key].key) {\n matches = false;\n break;\n }\n }\n }\n\n return matches;\n });\n }\n resetFilters() {\n this.data = this.originalData;\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes?.['data']) {\n //Reset selection when data changes\n this.selectedData = [];\n }\n\n if (this.tableConfiguration.toggleColumns) {\n this._selectedColumns =\n this.tableConfiguration.toogleColumnsData &&\n this.tableConfiguration.toogleColumnsData.length > 0\n ? this.tableConfiguration.toogleColumnsData\n : this.columns;\n } else {\n this._selectedColumns = this.columns;\n }\n\n if (this._selectedColumns) {\n this.globalFilterFields = this._selectedColumns\n .filter(\n (sc) =>\n sc.columnType === this.columnTypeEnum.TEXT &&\n sc.filter === undefined\n )\n .map((sc) => sc.field);\n }\n ///adds 5 empty rows in order to display shimering\n if (this.data?.length === 0 && this.loading()) {\n for (let i = 0; i < 5; i++) {\n this.data.push({});\n }\n return this.data;\n }\n\n // if (this.exportdData?.type) {\n // if (this.exportdData.type === this.exportType.EXCEL) {\n // this.exportExcel(this.exportdData.data);\n // } else {\n // this.exportPdf(this.exportdData.data);\n // }\n // this.exportdData = null;\n // }\n\n if (this.exportData?.type) {\n switch (this.exportData?.type) {\n case ExportType.EXCEL:\n this.exportExcel(this.exportData.data);\n break;\n\n default:\n this.exportPdf(this.exportData.data);\n break;\n }\n this.exportdData = null;\n }\n }\n\n /**\n * Emits table actions\n * table source change (SC phase), global actions (create, assing), bluk and row actions\n * @description\n */\n actionClick(action: any, data?: any) {\n this.actionClickEmmiter.emit({ action, data });\n }\n\n /**\n * Lazy load\n * Use when lazy is set to TRUE\n * @description\n */\n loadData(event: TableLazyLoadEvent) {\n const tableFilter = {\n page: event.first && event.rows ? event.first / event.rows : 0,\n size: event.rows ? event.rows : 5,\n rows: event.rows,\n sortField: event.sortField,\n sortOrder: this.convertSortOrder(event?.sortOrder),\n filters: event.filters,\n globalFilter: event.globalFilter,\n };\n if (tableFilter.filters) delete tableFilter.filters['global'];\n this.lazyLoadDataEmmiter.emit(tableFilter);\n }\n\n convertSortOrder(sortOrder: number | null | undefined): string {\n return sortOrder ? (sortOrder === 1 ? 'ASC' : 'DESC') : 'ASC';\n }\n\n /**\n * Row click\n * --\n * @description custom method added for row click\n */\n onRowClick(event: Event, row: any) {\n ///emits row data when selecting radio or checkbox selection\n this.onRowCheckboxRadioClickEmmiter.emit(row);\n if ((event.target as HTMLElement).tagName === 'TD') {\n this.onRowClickEmmiter.emit(row);\n } else {\n this.enableDisableCheckBoxRelatedGlobalActions();\n }\n }\n\n enableDisableCheckBoxRelatedGlobalActions() {\n this.tableConfiguration.globalActions\n .filter((action: any) => action.checkboxrelatedauth)\n .map(\n (action: any) =>\n (this.overviewBtn.disabled = this.selectedData\n ? this.selectedData.length === 0\n : true)\n );\n }\n\n onHeaderCheckboxToggle(event: TableHeaderCheckboxToggleEvent) {\n this.enableDisableCheckBoxRelatedGlobalActions();\n this.onHeaderCheckboxToggleEmmiter.emit(event);\n }\n\n isRowSelectable(event: any): boolean | undefined {\n return typeof event.data?.canSelect === 'boolean'\n ? event.data.canSelect\n : true;\n }\n\n exportExcel(data: any[]) {\n /// missing dependencies\n // const filteredData: any = [];\n // let newList: TableColumn[] = JSON.parse(JSON.stringify(this.columns));\n // data?.forEach((item: any) => {\n // const filteredItem: any = {};\n // newList.forEach((col) => {\n // const field = col.field;\n // let convertToString;\n // if (item[field]?.hasOwnProperty('value')) {\n // convertToString = item[field].value?.toString() || '--';\n // } else if (item[field]?.hasOwnProperty('name')) {\n // convertToString = item[field].name?.toString() || '--';\n // } else {\n // convertToString = item[field]?.toString() || '--';\n // }\n // if (\n // col.columnType === tableColumnType.DATE ||\n // col.columnType === tableColumnType.DATE_COMPLEX\n // ) {\n // if (this.isISODateString(convertToString)) {\n // convertToString = this.datePipe.transform(\n // new Date(convertToString),\n // this.dateFormat\n // );\n // }\n // }\n // if (\n // (convertToString && col?.header) ||\n // (convertToString === null && col?.header) ||\n // (convertToString === '' && col?.header) ||\n // (convertToString === undefined && col?.header)\n // ) {\n // const header = this.translateService.instant(col.header);\n // if (convertToString) {\n // filteredItem[header] =\n // this.translateService.instant(convertToString);\n // } else {\n // filteredItem[header] = convertToString;\n // }\n // }\n // });\n // filteredData.push(filteredItem);\n // });\n // import('xlsx').then((xlsx) => {\n // const worksheet = xlsx.utils.json_to_sheet(filteredData);\n // const wscols = Object.keys(filteredData[0]).map((key) => {\n // const maxLength = filteredData.reduce((max: any, item: any) => {\n // const value = item[key] || '';\n // return Math.max(max, value.length);\n // }, key.length);\n // return { width: maxLength + 2 };\n // });\n // worksheet['!cols'] = wscols;\n // const workbook = { Sheets: { data: worksheet }, SheetNames: ['data'] };\n // const excelBuffer = xlsx.write(workbook, {\n // bookType: 'xlsx',\n // type: 'array',\n // });\n // this.saveAsExcelFile(excelBuffer);\n // });\n }\n\n exportPdf(data: any[]) {\n /// missing dependencies\n // const doc = new jsPDF({\n // orientation: 'landscape',\n // });\n // doc.setFont('helvetica');\n // const colHeaders = this.columns.map((col) => {\n // if (col.header) {\n // return this.translateService.instant(col.header);\n // }\n // });\n // const rows = data.map((item: any) =>\n // this.columns.map((col) => {\n // let value;\n // if (item[col.field]?.hasOwnProperty('value')) {\n // value = item[col.field].value?.toString() || '--';\n // } else if (item[col.field]?.hasOwnProperty('name')) {\n // value = item[col.field].name?.toString() || '--';\n // } else {\n // value = item[col.field]?.toString() || '--';\n // }\n // if (\n // col.columnType === tableColumnType.DATE ||\n // col.columnType === tableColumnType.DATE_COMPLEX\n // ) {\n // if (this.isISODateString(value)) {\n // value = this.datePipe.transform(new Date(value), this.dateFormat);\n // }\n // }\n // if (value) {\n // return this.translateService.instant(value);\n // } else {\n // return value;\n // }\n // })\n // );\n // autoTable(doc, {\n // head: [colHeaders],\n // body: rows,\n // styles: {\n // font: 'helvetica', // Ovde postavite font\n // fontSize: 10, // Ako je potrebno, promenite veličinu fonta\n // },\n // });\n // doc.save(\n // 'export - ' + this.datePipe.transform(new Date(), 'short') + '.pdf'\n // );\n }\n\n isISODateString(value: string): boolean {\n // Check if the string is a valid ISO date or a valid Date string\n const isoDateRegex = /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?Z$/;\n\n // Check if the value matches the ISO date format\n if (isoDateRegex.test(value)) {\n return true;\n }\n\n // Check if the string can be parsed into a valid Date object\n const date = new Date(value);\n return !isNaN(date.getTime());\n }\n\n saveAsExcelFile(buffer: any): void {\n /// missing dependencies\n // const EXCEL_TYPE =\n // 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8';\n // const EXCEL_EXTENSION = '.xlsx';\n // const data: Blob = new Blob([buffer], {\n // type: EXCEL_TYPE,\n // });\n // FileSaver.saveAs(\n // data,\n // 'export - ' +\n // this.datePipe.transform(new Date(), 'short') +\n // EXCEL_EXTENSION\n // );\n }\n\n saveColumns() {\n this.onSaveColumnsClickEmmiter.emit(\n this._selectedColumns.map((col) => col.field)\n );\n }\n\n resetColumns() {\n this._selectedColumns = this.columns;\n this.saveColumns();\n }\n\n get selectedColumns(): TableColumn[] {\n return this._selectedColumns;\n }\n\n set selectedColumns(val: TableColumn[]) {\n //restore original order\n this._selectedColumns = this.columns.filter((col) =>\n val.some((v) => v.field === col.field)\n );\n }\n}\n","<!-- total records lazy???? -->\n<div class=\"border-1 border-round-sm border-300 border-round-md m-2\">\n <p-table\n #dt\n [selectionMode]=\"tableConfiguration.selectionMode\"\n [dataKey]=\"tableConfiguration.key ? tableConfiguration.key : 'id'\"\n [value]=\"data\"\n [rowSelectable]=\"isRowSelectable\"\n [resizableColumns]=\"true\"\n columnResizeMode=\"expand\"\n [globalFilterFields]=\"globalFilterFields\"\n [resizableColumns]=\"true\"\n [size]=\"'small'\"\n [scrollHeight]=\"tableConfiguration.scrollHeight\"\n [selectionPageOnly]=\"true\"\n [(selection)]=\"selectedData\"\n [scrollable]=\"true\" \n scrollHeight=\"400px\" \n [virtualScroll]=\"true\" \n [virtualScrollItemSize]=\"46\"\n [rowHover]=\"true\"\n (onHeaderCheckboxToggle)=\"onHeaderCheckboxToggle($event)\"\n >\n <!-- ********** CAPTION CAPTION CAPTION *********************** -->\n <ng-template pTemplate=\"caption\">\n <div class=\"flex justify-content-between\">\n <global-table-actions>\n <ng-container\n *ngFor=\"\n let action of tableConfiguration.globalActions;\n let i = index\n \"\n >\n <phoenix-phoenix-data-table-action\n #btn\n [actionConfig]=\"action\"\n (actionClick)=\"actionClick($event)\"\n ></phoenix-phoenix-data-table-action\n ></ng-container>\n <phoenix-data-table-tabs\n [attr.data-cy]=\"\n 'table-select-button-' + tableConfiguration.tabs?.key\n \"\n [actions]=\"tableConfiguration.tabs\"\n (actionClick)=\"actionClick($event)\"\n ></phoenix-data-table-tabs>\n </global-table-actions>\n <div class=\"flex align-items-center\">\n <p-button\n icon=\"pi pi-filter\"\n [rounded]=\"true\"\n label=\"Filter\"\n [text]=\"true\"\n severity=\"primary\"\n class=\"mr-2\"\n (onClick)=\"filters.toggle($event)\"\n />\n\n <p-button\n icon=\"pi pi-sliders-v\"\n [rounded]=\"true\"\n [text]=\"true\"\n severity=\"primary\"\n label=\"Columns\"\n class=\"mr-2\"\n [attr.data-cy]=\"'table-togg-button'\"\n (onClick)=\"cols.toggle($event)\"\n />\n\n <span\n *ngIf=\"tableConfiguration.globalFilter\"\n class=\"p-input-icon-left ml-auto\"\n >\n <p-iconfield>\n <p-inputicon styleClass=\"pi pi-search\" />\n <input\n [attr.data-cy]=\"'table-global-search'\"\n type=\"text\"\n (input)=\"dt.filterGlobal($any($event.target).value, 'contains')\"\n pInputText\n placeholder=\"{{\n 'SEARCH_PLACEHOLDERS.SEARCH_KEYWORD' | translate\n }}\"\n />\n </p-iconfield>\n </span>\n <p-button\n icon=\"pi pi-ellipsis-v\"\n [rounded]=\"true\"\n [text]=\"true\"\n severity=\"primary\"\n (onClick)=\"export.toggle($event)\"\n class=\"ml-2\"\n />\n\n <bulk-table-actions>\n <ng-container *ngFor=\"let action of tableConfiguration.bulkActions\">\n <phoenix-phoenix-data-table-action\n [actionConfig]=\"action\"\n [selectedData]=\"selectedData\"\n (actionClick)=\"actionClick(action, selectedData)\"\n ></phoenix-phoenix-data-table-action\n ></ng-container>\n </bulk-table-actions>\n </div>\n </div>\n </ng-template>\n <!-- ********** HEADER HEADER HEADER *********************** -->\n <ng-template pTemplate=\"header\">\n <tr style=\"height: 40px\" class=\"dt-header\">\n <ng-container [ngSwitch]=\"tableConfiguration.selectionType\">\n <th class=\"custom-th\" *ngSwitchCase=\"selectionTypeEnum.CHECKBOX\">\n <p-tableHeaderCheckbox\n [attr.data-cy]=\"'table-header-checkbox'\"\n ></p-tableHeaderCheckbox>\n </th>\n <th\n class=\"custom-th\"\n *ngSwitchCase=\"selectionTypeEnum.RADIO_BTN\"\n ></th>\n </ng-container>\n <!-- rest of columns -->\n <ng-container *ngFor=\"let col of selectedColumns; let i = index\">\n <th\n [attr.data-cy]=\"'table-col-' + i\"\n pResizableColumn\n class=\"custom-th font-bold\"\n [pSortableColumn]=\"\n col.filter === 'multiselect' && tableConfiguration.lazy != true\n ? col.field + '.name'\n : col.field\n \"\n >\n <!-- set sort icon visible by default -->\n <p-sortIcon\n [attr.data-cy]=\"'table-sort-' + col.field\"\n *ngIf=\"col.sortable === undefined ? true : col.sortable\"\n field=\"{{ col.field }}\"\n ></p-sortIcon>\n {{ col.header | translate }}\n </th>\n </ng-container>\n\n <!-- create empty th placeholders for actions -->\n <th class=\"custom-th\"></th>\n </tr>\n </ng-template>\n <!-- ********** BODY BODY BODY *********************** -->\n <ng-template pTemplate=\"body\" let-rowData let-rowIndex=\"rowIndex\">\n <ng-template #shimmer>\n <tr [attr.data-cy]=\"'table-row-' + rowIndex\">\n <td *ngFor=\"let col of columns; let even = even\">\n <p-skeleton\n [ngStyle]=\"{\n width: '60%',\n }\"\n ></p-skeleton>\n </td>\n\n <td>\n <p-skeleton\n [ngStyle]=\"{\n width: '20%',\n }\"\n ></p-skeleton>\n </td>\n </tr>\n </ng-template>\n <tr\n *ngIf=\"!loading(); else shimmer\"\n (click)=\"onRowClick($event, rowData)\"\n [pSelectableRow]=\"rowData\"\n [attr.data-cy]=\"'table-row-' + rowIndex\"\n >\n <ng-container [ngSwitch]=\"tableConfiguration.selectionType\">\n <td class=\"w-2rem\" *ngSwitchCase=\"selectionTypeEnum.CHECKBOX\">\n <p-tableCheckbox\n [attr.data-cy]=\"'table-checkbox'\"\n [disabled]=\"\n rowData?.canSelect !== undefined ? !rowData.canSelect : false\n \"\n [value]=\"rowData\"\n ></p-tableCheckbox>\n </td>\n <td *ngSwitchCase=\"selectionTypeEnum.RADIO_BTN\">\n <p-tableRadioButton\n [value]=\"rowData\"\n [attr.data-cy]=\"'table-radio-button'\"\n ></p-tableRadioButton>\n </td>\n </ng-container>\n\n <ng-container *ngFor=\"let col of selectedColumns; let i = index\">\n <td class=\"cursor-pointer\">\n <ng-container\n *ngTemplateOutlet=\"\n cellValueTemp;\n context: { value: { rowData, col } }\n \"\n ></ng-container>\n </td>\n </ng-container>\n\n <!-- p-0 on td because buttons already have marign. so it makes row bigger -->\n <td class=\"p-0\">\n <ng-container *ngFor=\"let action of tableConfiguration.rowActions\">\n <phoenix-phoenix-data-table-action\n *ngIf=\"\n action.notauthorized ||\n (rowData[action.type] != undefined &&\n rowData[action.type] != null)\n \"\n [actionConfig]=\"action\"\n [rowData]=\"rowData\"\n (actionClick)=\"actionClick($event, rowData)\"\n ></phoenix-phoenix-data-table-action\n ></ng-container>\n </td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"paginatorright\" let-state>\n <!-- Total Records: {{ state.totalRecords }} -->\n <!-- <i class=\"pi pi-cog\" style=\"font-size: 1.2rem; color: grey\"></i> -->\n </ng-template>\n <ng-template pTemplate=\"emptymessage\">\n <td class=\"p-2\" colspan=\"100\">\n <div class=\"flex align-items-center\">\n <i class=\"pi pi-info-circle mr-2\"></i>\n {{ \"NO_RESULTS_FOUND\" | translate }}\n </div>\n </td>\n </ng-template>\n </p-table>\n</div>\n\n<!-- Celll value template -->\n\n<ng-template #cellValueTemp let-val=\"value\">\n <ng-container [ngSwitch]=\"val.col.columnType\">\n <ng-container *ngSwitchCase=\"columnTypeEnum.TAG\">\n <ng-container *ngIf=\"val.rowData[val.col.field]; else emptyCell\">\n <!-- checking if there is a object instead of string. objects goes into non-lazy tables -> val.rowData[val.col.field].name || val.rowData[val.col.field] -->\n <p-tag\n [attr.data-cy]=\"'table-cell-' + (columnTypeEnum.TAG | lowercase)\"\n [style]=\"{ 'background-color': val.rowData[val.col.field + 'Color'] }\"\n [value]=\"\n val.rowData[val.col.field].name || val.rowData[val.col.field]\n \"\n ></p-tag>\n </ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"columnTypeEnum.PERSON\">\n <ng-container *ngIf=\"val.rowData[val.col.field]; else emptyCell\">\n <p-avatar\n [attr.data-cy]=\"'table-cell-' + (columnTypeEnum.PERSON | lowercase)\"\n [label]=\"val.rowData[val.col.field].name.charAt(0)\"\n styleClass=\"mr-1\"\n [style]=\"{ 'background-color': '#9c27b0', color: '#ffffff' }\"\n shape=\"circle\"\n ></p-avatar>\n {{ val.rowData[val.col.field].name }}\n </ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"columnTypeEnum.DATE\">\n <ng-container *ngIf=\"val.rowData[val.col.field]; else emptyCell\">\n {{ val.rowData[val.col.field] | date : dateFormat }}\n </ng-container>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"columnTypeEnum.DATE_COMPLEX\">\n <ng-container *ngIf=\"val.rowData[val.col.field]; else emptyCell\">\n {{ val.rowData[val.col.field] | date : dateFormat + \" | HH:mm\" }}\n </ng-container>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"columnTypeEnum.LIST\">\n <ng-container *ngIf=\"val.rowData[val.col.field]; else emptyCell\">\n <ul\n *ngFor=\"let item of val.rowData[val.col.field]\"\n [attr.data-cy]=\"'table-cell-' + (columnTypeEnum.LIST | lowercase)\"\n >\n <li>{{ item.name }}</li>\n </ul>\n </ng-container>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"columnTypeEnum.RICH_TEXT\">\n <ng-container *ngIf=\"val.rowData[val.col.field]; else emptyCell\">\n <div\n [pTooltip]=\"val.rowData[val.col.field] | removeHTMLTags\"\n style=\"width: 200px\"\n [attr.data-cy]=\"\n 'table-cell-' + (columnTypeEnum.RICH_TEXT | lowercase)\n \"\n >\n {{ val.rowData[val.col.field] | removeHTMLTags }}\n </div>\n </ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"columnTypeEnum.TEXT_AREA\">\n <ng-container *ngIf=\"val.rowData[val.col.field]; else emptyCell\">\n <div\n [pTooltip]=\"val.rowData[val.col.field]\"\n style=\"width: 200px\"\n [attr.data-cy]=\"\n 'table-cell-' + (columnTypeEnum.TEXT_AREA | lowercase)\n \"\n >\n {{ val.rowData[val.col.field] }}\n </div>\n </ng-container>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"columnTypeEnum.BOOLEAN\">\n <ng-container *ngIf=\"val.rowData[val.col.field]; else emptyCell\">\n <i\n [attr.data-cy]=\"'table-cell-' + (columnTypeEnum.BOOLEAN | lowercase)\"\n class=\"pi\"\n [ngClass]=\"{\n 'text-green-500 pi-check-circle': val.rowData[val.col.field],\n }\"\n ></i>\n </ng-container>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"columnTypeEnum.CUSTOM\">\n <span\n [innerHTML]=\"val.col.customRenderer(val.rowData)\"\n [attr.data-cy]=\"'table-cell-' + (columnTypeEnum.CUSTOM | lowercase)\"\n ></span>\n </ng-container>\n\n <ng-container *ngSwitchDefault\n ><td [attr.data-cy]=\"'table-cell-text'\">\n {{ val.rowData[val.col.field] | cellValue : val.col }}\n </td>\n </ng-container>\n </ng-container>\n</ng-template>\n\n<ng-template #emptyCell> -- </ng-template>\n\n<!-- Overlays for Columns/Filters/Exports -->\n\n<p-popover #cols>\n <div class=\"flex flex-column gap-3 w-25rem\">\n <div class=\"flex justify-content-between align-items-center\">\n <div class=\"text-lg font-bold\">Columns</div>\n <div>\n <p-button\n icon=\"pi pi-save\"\n [text]=\"true\"\n [label]=\"'ACTION.SAVE' | translate\"\n class=\"mr-2\"\n (click)=\"saveColumns()\"\n [attr.data-cy]=\"'table-save-col-button'\"\n />\n <p-button\n icon=\"pi pi-undo\"\n [text]=\"true\"\n [label]=\"'ACTION.RESET_FILTERS' | translate\"\n class=\"mr-2\"\n (click)=\"resetColumns()\"\n [attr.data-cy]=\"'table-reset-col-button'\"\n />\n </div>\n </div>\n\n <p-listbox\n [options]=\"columns\"\n [(ngModel)]=\"selectedColumns\"\n [multiple]=\"true\"\n [metaKeySelection]=\"false\"\n [listStyle]=\"{ 'max-height': '420px' }\"\n [attr.data-cy]=\"'table-list-box'\"\n >\n <ng-template let-item pTemplate=\"item\">\n <i *ngIf=\"item | isSelected : selectedColumns\" class=\"pi pi-eye\"></i>\n <i\n *ngIf=\"!(item | isSelected : selectedColumns)\"\n class=\"pi pi-eye-slash\"\n ></i>\n <span class=\"ml-2\"> {{ item.header | translate }}</span>\n </ng-template>\n </p-listbox>\n </div>\n</p-popover>\n\n<p-popover #filters>\n <div class=\"flex flex-column gap-3 w-25rem\">\n <div class=\"flex justify-content-between align-items-center\">\n <div class=\"text-lg font-bold\">Filter</div>\n <div>\n <p-button\n icon=\"pi pi-save\"\n [text]=\"true\"\n [label]=\"'ACTION.SAVE' | translate\"\n class=\"mr-2\"\n [attr.data-cy]=\"'table-save-col-button'\"\n />\n <p-button\n icon=\"pi pi-times\"\n [text]=\"true\"\n [label]=\"'Clear'\"\n class=\"mr-2\"\n (click)=\"resetFilters()\"\n [attr.data-cy]=\"'table-reset-col-button'\"\n />\n </div>\n </div>\n\n <div>\n <form [formGroup]=\"filtersForm\">\n @for(control of tableConfiguration.filterConfiguration; track\n control.key ){ @switch(control.type) { @case ('checkbox') {\n <div class=\"mb-4\">\n <p-checkbox\n binary=\"true\"\n type=\"checkbox\"\n [formControlName]=\"control.key\"\n />\n <label class=\"ml-2\">{{ control.label }}</label>\n </div>\n\n } @case ('dropdown') {\n <div class=\"mb-4\">\n <label class=\"mb-2 block\">{{ control.label }}</label>\n <p-select\n class=\"w-full\"\n [options]=\"control.options\"\n optionLabel=\"label\"\n [formControlName]=\"control.key\"\n [showClear]=\"true\"\n />\n </div>\n\n } } }\n </form>\n </div>\n </div>\n</p-popover>\n\n<p-popover #export>\n <div class=\"flex flex-column gap-1\">\n <p-button\n pRipple\n text=\"true\"\n icon=\"pi pi-file-pdf\"\n (click)=\"onExportClickEmmiter.emit(exportType.PDF)\"\n class=\"mr-2\"\n [label]=\"'ACTION.EXPORT_TO_PDF' | translate\"\n ></p-button>\n\n <p-button\n pRipple\n text=\"true\"\n icon=\"pi pi-file-excel\"\n (click)=\"onExportClickEmmiter.emit(exportType.EXCEL)\"\n class=\"mr-2\"\n [label]=\"'ACTION.EXPORT_TO_XLS' | translate\"\n ></p-button>\n </div>\n</p-popover>\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output, OnInit, inject, DestroyRef } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule, FormBuilder, FormGroup } from '@angular/forms';\nimport { PopoverModule } from 'primeng/popover';\nimport { ButtonModule } from 'primeng/button';\nimport { SelectModule } from 'primeng/select';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { InputIconModule } from 'primeng/inputicon';\nimport { IconFieldModule } from 'primeng/iconfield';\nimport { MultiSelectModule } from 'primeng/multiselect';\nimport { PhoenixDataTableActionComponent } from '../phoenix-data-table-action/phoenix-data-table-action.component';\nimport { PhoenixDataTableTabsComponent } from '../phoenix-data-table-tabs/phoenix-data-table-tabs.component';\nimport { ListboxModule } from 'primeng/listbox';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { IsSelectedPipe } from '../phoenix-data-table/isSelected.pipe';\nimport { TableColumn } from '../utils/dataTable.interface';\nimport { tableColumnType } from '../utils/dataTable.enum';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Component({\n selector: 'table-caption',\n standalone: true,\n imports: [\n CommonModule,\n PopoverModule,\n ButtonModule,\n SelectModule,\n InputTextModule,\n FormsModule,\n ReactiveFormsModule,\n InputIconModule,\n IconFieldModule,\n MultiSelectModule,\n PhoenixDataTableActionComponent,\n PhoenixDataTableTabsComponent,\n ListboxModule,\n TranslateModule,\n IsSelectedPipe\n ],\n templateUrl: './table-caption.component.html',\n styleUrl: './table-caption.component.css'\n})\nexport class TableCaptionComponent implements OnInit {\n @Input() tableConfiguration!: any;\n @Input() columns: any[] = []; \n @Input() searchQuery: string = '';\n @Input() selectedItems: any[] = [];\n\n @Output() applyFiltersEvent = new EventEmitter<any>();\n @Output() applyColumnsEvent = new EventEmitter<string[]>();\n @Output() searchChange = new EventEmitter<string>();\n @Output() actionClick = new EventEmitter<any>(); // Emit actions\n\n translateService = inject(TranslateService);\n dr = inject(DestroyRef);\n fb = inject(FormBuilder);\n filtersForm: FormGroup = this.fb.group({});\n _selectedColumns!: TableColumn[];\n globalFilterFields!: string[];\n\n ngOnInit() {\n if (this.tableConfiguration?.filterConfiguration) {\n this.tableConfiguration.filterConfiguration.forEach((filter: any) => {\n this.filtersForm.addControl(filter.key, this.fb.control(null));\n });\n this.filtersForm.valueChanges\n .pipe(takeUntilDestroyed(this.dr))\n .subscribe((r) => {\n this.applyFilters();\n });\n }\n this._selectedColumns = [...this.columns];\n\n if (this._selectedColumns) {\n this.globalFilterFields = this._selectedColumns\n .filter(\n (sc) =>\n sc.columnType === tableColumnType.TEXT &&\n sc.filter === undefined\n )\n .map((sc) => sc.field);\n }\n\n // this.selectedColumns = [...this.tableConfiguration.availableColumns];\n }\n\n emitSearch(query: string) {\n this.searchChange.emit(query);\n }\n\n applyFilters() {\n this.applyFiltersEvent.emit(this.filtersForm.value);\n }\n\n resetFilters() {\n this.filtersForm.reset();\n this.applyFilters();\n }\n\n applyColumns() {\n const selectedColumnKeys = this._selectedColumns.map(col => col.field); // Ekstraktujemo samo `field` vrednosti\n this.applyColumnsEvent.emit(selectedColumnKeys);\n }\n\n resetColumns() {\n this._selectedColumns = this.columns;\n this.applyColumns();\n }\n\n get selectedColumns(): TableColumn[] {\n return this._selectedColumns;\n }\n\n set selectedColumns(val: TableColumn[]) {\n //restore original order\n this._selectedColumns = this.columns.filter((col) =>\n val.some((v) => v.field === col.field)\n );\n this.applyColumns();\n }\n\n handleActionClick(action: any) {\n\n this.actionClick.emit({ action, selectedItems: this.selectedItems });\n console.log(action);\n \n }\n}","<div class=\"flex justify-content-between border-bottom-1 border-300 p-2\">\n <!-- Global Actions & Tabs -->\n <div class=\"flex align-items-center gap-2\">\n <ng-container *ngFor=\"let action of tableConfiguration.globalActions\">\n <phoenix-phoenix-data-table-action \n [actionConfig]=\"action\" \n (actionClick)=\"actionClick.emit($event)\">\n </phoenix-phoenix-data-table-action>\n </ng-container>\n\n <phoenix-data-table-tabs \n [attr.data-cy]=\"'table-select-button-' + tableConfiguration.tabs?.key\"\n [actions]=\"tableConfiguration.tabs\" \n (actionClick)=\"actionClick.emit($event)\">\n </phoenix-data-table-tabs>\n </div>\n \n\n <div class=\"flex align-items-center gap-2\">\n <!-- Filter, Columns, Search -->\n <p-button icon=\"pi pi-filter\" [rounded]=\"true\" label=\"Filter\" [text]=\"true\" class=\"mr-2\"\n (onClick)=\"filtersPopover.toggle($event)\" />\n \n <p-button icon=\"pi pi-sliders-v\" [rounded]=\"true\" [text]=\"true\" label=\"Columns\" class=\"mr-2\"\n (onClick)=\"columnsPopover.toggle($event)\" />\n \n <span class=\"p-input-icon-left ml-auto\">\n <p-iconfield>\n <p-inputicon styleClass=\"pi pi-search\" />\n <input type=\"text\" (input)=\"emitSearch($any($event.target).value)\" pInputText\n placeholder=\"{{ 'SEARCH_KEYWORD' | translate }}\" />\n </p-iconfield>\n </span>\n\n </div>\n\n</div>\n\n<!-- Popover Filters -->\n<p-popover #filtersPopover>\n <div class=\"flex flex-column gap-3 w-25rem\">\n <div class=\"flex justify-content-between align-items-center\">\n <div class=\"text-lg font-bold\">{{ 'FILTERS' | translate }}</div>\n <div>\n <p-button icon=\"pi pi-save\" [text]=\"true\" label=\"{{ 'SAVE' | translate }}\" class=\"mr-2\"\n (click)=\"applyFilters()\" />\n\n <p-button icon=\"pi pi-times\" [text]=\"true\" label=\"{{ 'CLEAR' | translate }}\" class=\"mr-2\"\n (click)=\"filtersForm.reset()\" />\n </div>\n </div>\n\n <form [formGroup]=\"filtersForm\">\n @for(control of tableConfiguration.filterConfiguration; track control.key ){ \n @switch(control.type) { \n @case ('checkbox') {\n <div class=\"mb-4\">\n <p-checkbox\n binary=\"true\"\n type=\"checkbox\"\n [formControlName]=\"control.key\"\n />\n <label class=\"ml-2\">{{ control.label }}</label>\n </div>\n } \n @case ('dropdown') {\n <div class=\"mb-4\">\n <label class=\"mb-2 block\">{{ control.label }}</label>\n <p-select\n class=\"w-full\"\n [options]=\"control.options\"\n optionLabel=\"label\"\n [formControlName]=\"control.key\"\n [showClear]=\"true\"\n />\n </div>\n } \n } \n }\n </form>\n </div>\n</p-popover>\n\n<!-- Popover Columns -->\n<p-popover #columnsPopover>\n \n <div class=\"flex flex-column gap-3 w-25rem\">\n <div class=\"flex justify-content-between align-items-center\">\n <div class=\"text-lg font-bold\">{{ 'COLUMS' | translate }}</div>\n <div>\n <p-button icon=\"pi pi-save\" [text]=\"true\" label=\"{{ 'SAVE' | translate }}\" class=\"mr-2\"\n (click)=\"applyColumns()\" />\n </div>\n </div>\n\n <p-listbox\n [options]=\"columns\"\n [(ngModel)]=\"selectedColumns\"\n [multiple]=\"true\"\n [metaKeySelection]=\"false\"\n [listStyle]=\"{ 'max-height': '420px' }\"\n [attr.data-cy]=\"'table-list-box'\"\n >\n <ng-template let-item pTemplate=\"item\">\n <i *ngIf=\"item | isSelected : selectedColumns\" class=\"pi pi-eye\"></i>\n <i\n *ngIf=\"!(item | isSelected : selectedColumns)\"\n class=\"pi pi-eye-slash\"\n ></i>\n <span class=\"ml-2\"> {{ item.header | translate }}</span>\n </ng-template>\n </p-listbox>\n </div>\n</p-popover>","import { Pipe, PipeTransform } from '@angular/core';\nimport { DatePipe } from '@angular/common';\n\n@Pipe({\n name: 'cell',\n standalone: true,\n pure: false\n})\nexport class TableCellPipe implements PipeTransform {\n constructor(private datePipe: DatePipe) {}\n\n transform(value: any, col: any, dateFormat: string = 'yyyy-MM-dd'): any {\n if (!value) return '--';\n\n switch (col.columnType) {\n\n case 'PERSON':\n return { name: value?.name || '--', avatar: value?.name?.charAt(0) || '?' };\n\n case 'DATE':\n return this.datePipe.transform(value, dateFormat);\n\n case 'DATE_COMPLEX':\n return this.datePipe.transform(value, dateFormat + ' | HH:mm');\n\n case 'LIST':\n return value.map((item: any) => item.name).join(', ');\n\n case 'RICH_TEXT':\n case 'TEXT_AREA':\n return value;\n\n case 'BOOLEAN':\n return value ? '✔️' : '❌';\n\n case 'CUSTOM':\n return col.customRenderer ? col.customRenderer(value) : value;\n\n default:\n return value.toString();\n }\n }\n}\n","import { Component, Input, signal, effect, OnInit, EventEmitter, Output, inject } from '@angular/core';\nimport { TableLazyLoadEvent, TableModule } from 'primeng/table';\nimport { TableCaptionComponent } from '../table-caption/table-caption.component';\nimport { CommonModule } from '@angular/common';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { PhoenixDataTableActionComponent } from '../phoenix-data-table-action/phoenix-data-table-action.component';\nimport { TagModule } from 'primeng/tag';\nimport { AvatarModule } from 'primeng/avatar';\nimport { TooltipModule } from 'primeng/tooltip';\nimport { tableColumnType } from '../utils/dataTable.enum';\nimport { TableCellPipe } from '../utils/table-cell.pipe';\nimport { SkeletonModule } from 'primeng/skeleton';\n\n\n@Component({\n selector: 'phoenix-table',\n standalone: true,\n imports: [\n CommonModule,\n TableModule, \n TableCaptionComponent,\n TranslateModule,\n PhoenixDataTableActionComponent,\n TagModule,\n AvatarModule,\n TooltipModule,\n TableCellPipe,\n SkeletonModule\n ],\n templateUrl: './table.component.html',\n styleUrls: ['./table.component.css'],\n})\nexport class TableComponent implements OnInit {\n // Input data\n @Input() set data(value: any[]) {\n this.allData = value;\n this.originalData = [...value]; // Dave origin table data\n this.totalRecords.set(this.allData.length);\n this.loadLazyData({ first: 0, rows: 100 }); // Load the first chunk of data\n }\n\n @Input() columns: any[] = [];\n @Input() tableConfiguration: any;\n\n // Output events for parent component communication\n @Output() actionClick = new EventEmitter<any>();\n @Output() rowSelection = new EventEmitter<any>();\n\n // Inject translation service\n translateService = inject(TranslateService);\n\n // Signals for reactive state management\n allData: any[] = []; // Complete dataset\n tableDataSignal = signal<any[]>([]); // Data currently displayed in the table\n searchQuery = signal('');\n selectedColumns = signal(this.columns);\n selectedItems = signal<any[]>([]);\n bulkMode = signal<boolean>(false);\n totalRecords = signal<number>(0);\n multiSortMeta = signal<any[]>([]);\n isLoading = signal<boolean>(false);\n lastLoadedIndex = 0; // Tracks the last loaded index to prevent redundant loading\n originalData: any[] = []; // Holds origin table data\n\n private hasLoadedInitialData = false; // Prevents multiple initial calls\n\n // Enum for column types\n columnTypeEnum = tableColumnType;\n\n // Date format (to be configured)\n dateFormat!: string;\n\n constructor() {\n // Reset table data when initialized\n effect(() => {\n this.tableDataSignal.set([]);\n });\n }\n\n ngOnInit() {\n console.log('Current language:', this.translateService.currentLang);\n if (this.columns.length > 0) {\n this.selectedColumns.set(this.columns);\n }\n }\n\n // **Lazy Data Loading**\n loadLazyData(event: TableLazyLoadEvent) {\n let { first, rows, multiSortMeta } = event;\n\n if (this.allData?.length === 0) {\n return;\n }\n\n if (!rows || rows <= 0) {\n rows = 100;\n }\n if (first === undefined || first < 0) {\n first = this.lastLoadedIndex; // Continues from the last loaded index\n }\n\n // Prevent multiple initial calls before data is loaded\n if (!this.hasLoadedInitialData && this.allData.length === 0) {\n this.hasLoadedInitialData = true; // Marks initial load as done\n return;\n }\n\n this.isLoading.set(true);\n\n setTimeout(() => {\n let sortedData = [...this.allData];\n\n if (multiSortMeta && multiSortMeta.length > 0) {\n sortedData.sort((a, b) => {\n for (const sortMeta of multiSortMeta) {\n const field = sortMeta.field;\n const order = sortMeta.order;\n\n let valueA = a[field];\n let valueB = b[field];\n\n const isNumberA = !isNaN(parseFloat(valueA)) && isFinite(valueA);\n const isNumberB = !isNaN(parseFloat(valueB)) && isFinite(valueB);\n\n if (isNumberA && isNumberB) {\n return (valueA - valueB) * order; // Correct numerical sorting\n } else {\n valueA = valueA ? valueA.toString().toLowerCase() : '';\n valueB = valueB ? valueB.toString().toLowerCase() : '';\n\n if (valueA < valueB) return -1 * order;\n if (valueA > valueB) return 1 * order;\n }\n }\n return 0;\n });\n }\n\n // Retrieve the required segment of data\n const newData = sortedData.slice(first, first + rows);\n const currentData = [...this.allData];\n\n // Uses the same approach as the original code with `splice.apply()`\n Array.prototype.splice.apply(currentData, [first, rows, ...newData]);\n\n // Updates the tableDataSignal with the modified data\n this.tableDataSignal.set(currentData);\n\n this.isLoading.set(false);\n this.lastLoadedIndex = first + rows;\n\n // Forces table refresh\n if (event.forceUpdate) {\n event.forceUpdate();\n }\n }, 100);\n }\n\n // **Apply Filters**\n applyFilters(filters: { [key: string]: any }) {\n this.allData = this.originalData.filter(item => {\n return Object.keys(filters).every(key => {\n const filterValue = filters[key]?.key || filters[key];\n const itemValue = item[key]?.key || item[key];\n\n return filterValue\n ? itemValue?.toString().toLowerCase() === filterValue.toString().toLowerCase()\n : true;\n });\n });\n\n // Update total record count and reset loaded index\n this.totalRecords.set(this.allData.length);\n this.lastLoadedIndex = 0;\n this.tableDataSignal.set([]);\n this.loadLazyData({ first: 0, rows: 100 });\n }\n\n // **Apply Column Selection**\n applyColumns(selectedColumns: string[]) {\n this.selectedColumns.set(this.columns.filter(col => selectedColumns.includes(col.field)));\n }\n\n // **Handle Search Query**\n onSearch(query: string) {\n this.searchQuery.set(query.toLowerCase());\n this.filterTableData();\n }\n\n // **Handle Row Click**\n onRowClick(event: Event, rowData: any) {\n event.stopPropagation(); // Prevent checkbox selection conflict\n this.rowSelection.emit(rowData);\n }\n\n // **Handle Checkbox Selection**\n onSelectionChange(selected: any[]) {\n console.log(selected.length > 0);\n\n this.bulkMode.set(selected.length > 0)\n \n this.selectedItems.set(selected);\n }\n\n // **Handle Action Clicks**\n handleActionClick(event: any) {\n this.actionClick.emit(event);\n }\n\n // **Translate Key**\n translateKey(key: string): string {\n return this.translateService.instant(key);\n }\n\n // **Filter table data on search**\n filterTableData() {\n const query = this.searchQuery();\n const filteredData = this.allData.filter(item =>\n Object.values(item).some(value =>\n value?.toString().toLowerCase().includes(query)\n )\n );\n this.tableDataSignal.set(filteredData);\n}\n}\n\n","<div class=\"border-1 border-round-sm border-300 border-round-md m-2\">\n @if (selectedItems().length <= 0){\n <table-caption\n [columns]=\"columns\"\n [tableConfiguration]=\"tableConfiguration\"\n [selectedItems]=\"selectedItems()\"\n (applyFiltersEvent)=\"applyFilters($event)\"\n (applyColumnsEvent)=\"applyColumns($event)\"\n (searchChange)=\"onSearch($event)\"\n (actionClick)=\"handleActionClick($event)\"\n >\n </table-caption>\n } @else {\n <div\n style=\"min-height: 40px; padding: 8px\"\n class=\"flex justify-content-between align-items-center border-bottom-1 border-300 pl-5 pr-5 text-sm text-500\"\n >\n <span>{{ selectedItems().length }} items selected</span>\n <div>\n <ng-container *ngFor=\"let action of tableConfiguration.bulkActions\">\n <phoenix-phoenix-data-table-action\n [actionConfig]=\"action\"\n [selectedData]=\"selectedItems\"\n (actionClick)=\"actionClick.emit({ action, selectedItems })\"\n ></phoenix-phoenix-data-table-action>\n </ng-container>\n\n <button\n class=\"p-button p-button-text p-button-plain\"\n (click)=\"selectedItems.set([])\"\n aria-label=\"Clear Selection\"\n >\n <i class=\"pi pi-times\"></i>\n </button>\n </div>\n </div>\n }\n\n <p-table\n [columns]=\"selectedColumns()\"\n [value]=\"tableDataSignal()\"\n [size]=\"'small'\"\n scrollable=\"true\"\n [scrollHeight]=\"tableConfiguration.scrollHeight\"\n [virtualScroll]=\"true\"\n [virtualScrollItemSize]=\"50\"\n [rows]=\"100\"\n [lazy]=\"true\"\n [totalRecords]=\"totalRecords()\"\n (onLazyLoad)=\"loadLazyData($event)\"\n [selection]=\"selectedItems()\"\n (selectionChange)=\"onSelectionChange($event)\"\n [sortMode]=\"'multiple'\"\n [size]=\"'small'\"\n [resizableColumns]=\"true\"\n columnResizeMode=\"expand\"\n >\n <ng-template #header let-columns>\n <tr style=\"height: 40px\" class=\"dt-header\">\n <th class=\"custom-th\" style=\"width: 4rem\"><p-tableHeaderCheckbox /></th>\n <th\n pResizableColumn\n class=\"custom-th font-bold\"\n *ngFor=\"let col of columns\"\n [pSortableColumn]=\"col.field\"\n >\n {{ col.header | translate }}\n <p-sortIcon [field]=\"col.field\"></p-sortIcon>\n </th>\n <!-- create empty th placeholders for actions -->\n <th class=\"custom-th\"></th>\n </tr>\n </ng-template>\n\n <ng-template\n #body\n let-rowData\n let-columns=\"columns\"\n let-rowIndex=\"rowIndex\"\n >\n <tr>\n <td>\n <p-tableCheckbox [value]=\"rowData\" />\n </td>\n <td\n *ngFor=\"let col of columns; let i = index\"\n (click)=\"\n i < 2 && tableConfiguration.hasCellClick\n ? onRowClick($event, rowData)\n : null\n \"\n [ngClass]=\"{\n 'text-blue-500 underline cursor-pointer':\n i < 2 && tableConfiguration.hasCellClick\n }\"\n >\n <ng-container [ngSwitch]=\"col.columnType\">\n <!-- TAG case -->\n <ng-container *ngSwitchCase=\"columnTypeEnum.TAG\">\n <ng-container *ngIf=\"rowData[col.field]; else emptyCell\">\n <p-tag\n styleClass=\"custom-tag\"\n [style]=\"{\n 'background-color': rowData[col.field + 'Color'] || '#ccc',\n \n }\"\n [value]=\"rowData[col.field]?.name || rowData[col.field]\"\n >\n </p-tag>\n </ng-container>\n </ng-container>\n\n <!-- PERSON case -->\n <ng-container *ngSwitchCase=\"columnTypeEnum.PERSON\">\n <ng-container *ngIf=\"rowData[col.field]; else emptyCell\">\n <p-avatar\n [label]=\"(rowData[col.field] | cell : col)?.avatar\"\n class=\"mr-1\"\n [style]=\"{ 'background-color': '#9c27b0', color: '#ffffff' }\"\n shape=\"circle\"\n >\n </p-avatar>\n {{ (rowData[col.field] | cell : col)?.name }}\n </ng-container>\n </ng-container>\n\n <!-- LIST case -->\n <ng-container *ngSwitchCase=\"columnTypeEnum.LIST\">\n <ng-container *ngIf=\"rowData[col.field]; else emptyCell\">\n <ul\n *ngFor=\"let item of rowData[col.field]\"\n [attr.data-cy]=\"\n 'table-cell-' + (columnTypeEnum.LIST | lowercase)\n \"\n >\n <li>{{ item.name }}</li>\n </ul>\n </ng-container>\n </ng-container>\n\n <!-- DEFAULT case -->\n <ng-container *ngSwitchDefault>\n <span\n [innerHTML]=\"rowData[col.field] | cell : col : dateFormat\"\n ></span>\n </ng-container>\n </ng-container>\n </td>\n\n <td class=\"p-0\">\n <ng-container *ngFor=\"let action of tableConfiguration.rowActions\">\n <phoenix-phoenix-data-table-action\n [actionConfig]=\"action\"\n [rowData]=\"rowData\"\n (actionClick)=\"handleActionClick({ $event, rowData })\"\n ></phoenix-phoenix-data-table-action\n ></ng-container>\n </td>\n </tr>\n </ng-template>\n\n <ng-template #emptyCell> -- </ng-template>\n\n <ng-template pTemplate=\"loadingbody\" let-columns>\n <tr style=\"height: 46px\">\n <td *ngFor=\"let col of columns; let even = even\">\n <tr>\n <td *ngFor=\"let col of columns; let even = even\">\n <p-skeleton\n [ngStyle]=\"{\n width: '60%',\n }\"\n ></p-skeleton>\n </td>\n\n <td>\n <p-skeleton\n [ngStyle]=\"{\n width: '20%',\n }\"\n ></p-skeleton>\n </td>\n </tr>\n </td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"emptymessage\">\n <td class=\"p-2\" colspan=\"100\">\n <div class=\"flex align-items-center\">\n <i class=\"pi pi-info-circle mr-2\"></i>\n {{ \"NO_RESULTS_FOUND\" | translate }}\n </div>\n </td>\n </ng-template>\n </p-table>\n <div class=\"border-top-1 border-300 pl-2 p-1 text-sm text-500\">\n Total records: {{ tableDataSignal().length }}\n </div>\n</div>\n","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\n\nexport function startDueDateValidator(\n control: AbstractControl,\n): { [key: string]: any } | null {\n const startDate = control.get('startDate')?.value;\n const dueDate = control.get('dueDate')?.value;\n\n return { invalidDate: true };\n}\n","import {\n AbstractControl,\n AsyncValidatorFn,\n ValidatorFn,\n Validators,\n} from '@angular/forms';\nimport { debounceTime, map, of, switchMap, timer } from 'rxjs';\n\nconst regexPatternEn =\n /^(?:(\\d+(?:\\.\\d+)?)w\\s*|)(?:(\\d+(?:\\.\\d+)?)d\\s*|)(?:(\\d+(?:\\.\\d+)?)h\\s*|)(?:(\\d+(?:\\.\\d+)?)m\\s*|)$/;\nconst regexPatternDe =\n /^(?:(\\d+(?:\\.\\d+)?)w\\s*|)(?:(\\d+(?:\\.\\d+)?)t\\s*|)(?:(\\d+(?:\\.\\d+)?)s\\s*|)(?:(\\d+(?:\\.\\d+)?)m\\s*|)$/;\n\nconst regexPatternSr =\n /^(?:(\\d+(?:\\.\\d+)?)n\\s*|)(?:(\\d+(?:\\.\\d+)?)d\\s*|)(?:(\\d+(?:\\.\\d+)?)č\\s*|)(?:(\\d+(?:\\.\\d+)?)m\\s*|)$/;\n\nfunction toMS(input: string, regex: RegExp) {\n const match = input?.match(regex);\n if (!match) return 0; // or handle it differently\n\n const weeks = parseFloat(match[1]) || 0;\n const days = parseFloat(match[2]) || 0;\n const hours = parseFloat(match[3]) || 0;\n const minutes = parseFloat(match[4]) || 0;\n\n const milliseconds =\n (weeks * 7 + days) * 24 * 60 * 60 * 1000 +\n hours * 60 * 60 * 1000 +\n minutes * 60 * 1000;\n return milliseconds;\n}\n\nfunction getLangPattern(currentLang: string) {\n switch (currentLang) {\n case 'de':\n return regexPatternDe;\n case 'en':\n return regexPatternEn;\n default:\n return regexPatternSr;\n }\n}\n\nexport function timePeriod(currentLang: string, tpMin: number): ValidatorFn {\n return (control: AbstractControl) => {\n if (!control.pristine) {\n const regValidator = Validators.pattern(getLangPattern(currentLang));\n if (regValidator(control)) {\n return { timeperiod: true };\n }\n\n if (control.status === 'VALID' && control.dirty) {\n if (toMS(control.value, getLangPattern(currentLang)) > 31536000000) {\n return { timeperiod_limit_max: true };\n }\n if (\n tpMin != null &&\n toMS(control.value, getLangPattern(currentLang)) <= tpMin\n ) {\n return { timeperiod_limit_min: true };\n }\n return null;\n }\n return null;\n }\n\n return null;\n };\n}\n","export enum ControlType {\n TEXT = 'TEXT',\n NUMBER = 'NUMBER',\n MS_OPTION = 'MS_OPTION',\n SS_OPTION = 'SS_OPTION',\n TEXT_AREA = 'TEXT_AREA',\n TEXT_EDITOR = 'TEXT_EDITOR',\n DATE = 'DATE',\n START_DUE_DATE = 'START_DUE_DATE',\n CHECKBOX = 'CHECKBOX',\n CHECKBOX_COLOR = 'CHECKBOX_COLOR',\n LINKS_DATA = 'LINKS_DATA',\n PASSWORD = 'PASSWORD',\n SWITCH = 'SWITCH',\n TIMEPERIOD = 'TIMEPERIOD',\n CURRENCY = 'CURRENCY',\n ASSIGN = 'ASSIGN',\n COLOR = 'COLOR',\n SELECT_BUTTON = 'SELECT_BUTTON',\n UPLOAD = 'UPLOAD',\n SLOT = 'SLOT',\n SS_OPTION_OBJECT_BASED = 'SS_OPTION_OBJECT_BASED',\n}\n","import { ControlType } from './control-type.enum';\n\nexport function getFieldType(control: any) {\n switch (control.configuration.type) {\n case ControlType.TEXT:\n case ControlType.TEXT_AREA:\n case ControlType.TEXT_EDITOR:\n case ControlType.CHECKBOX:\n return control.dataValue;\n case ControlType.SS_OPTION:\n return control.dataOptionValue;\n case ControlType.MS_OPTION:\n return control.dataOptionValues;\n default:\n // console.log(control + ' ' + control.configuration.type);\n }\n}\n","import { AbstractControl, UntypedFormControl } from '@angular/forms';\n\nexport class WhiteSpaceValidator {\n static noWhiteSpaceValidator(control: AbstractControl<any, any>) {\n if (typeof control.value === 'object') {\n return { whitespace: false };\n }\n if (control.value === '') {\n return { whitespace: false };\n }\n const isWhitespace = (control.value || '').trim().length === 0;\n const isValid = !isWhitespace;\n return isValid ? null : { whitespace: true };\n }\n static noWhiteSpaceValidatorForEditor(control: UntypedFormControl) {\n const isWhitespace =\n (control.value?.replace(/(<([^>]+)>)/gi, '') || '').trim().length === 0;\n const isValid = !isWhitespace;\n return isValid ? null : { whitespace: true };\n }\n}\n","import { Injectable, inject } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { BehaviorSubject, Subject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class MetaFormService {\n router = inject(Router);\n private formEvent = new Subject<any>();\n private formReadOnlySubject = new BehaviorSubject<boolean>(false);\n private formTabContent = new BehaviorSubject<string>('FORM');\n private formDirtyStatus = new BehaviorSubject<boolean>(false);\n private formBuildCompletedSubject = new BehaviorSubject<boolean>(false);\n\n currentFormState = this.formEvent.asObservable();\n formReadOnlyState = this.formReadOnlySubject.asObservable();\n currentFormTabContent = this.formTabContent.asObservable();\n currentFormDirtyStatus = this.formDirtyStatus.asObservable();\n\n /**\n * Notify when form is completed\n * @description Notifies you about when form bild is completed in meta-form component class. Usefull when you need to attach some listeners on form controls or any other action related to form when all controls are avaiable\n * @returns {boolean}\n */\n formBuildCompleted = this.formBuildCompletedSubject.asObservable();\n\n constructor() {}\n\n setFormEvent(event: any): void {\n this.formEvent.next(event);\n }\n\n setFormReadOnlyState(state: boolean) {\n this.formReadOnlySubject.next(state);\n // this.router.navigate([], {\n // queryParams: {\n // edit: state ? null : !state,\n // },\n // queryParamsHandling: 'merge',\n // });\n }\n\n setFormTabContent(tabContent: string) {\n this.formTabContent.next(tabContent);\n }\n\n setFormDirtyStatus(status: boolean) {\n this.formDirtyStatus.next(status);\n }\n /**\n * Sets the form build completion status to indicate when the form is created.\n *\n * @param {boolean} isCompleted - A boolean value to indicate whether the form build is completed.\n * Set to `true` when the form is fully created.\n *\n * @description This method is used to notify when the form is created and ready for use.\n */\n setFormBuildCompletition(isCompleted: boolean) {\n this.formBuildCompletedSubject.next(isCompleted);\n }\n}\n","import { Directive, EventEmitter, Input, Output } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Observable, Subscription } from 'rxjs';\n\nimport { HttpClient } from '@angular/common/http';\n// import { EnvService } from '@phoenix/environment';\nimport { startDueDateValidator } from './meta-validators/due-date/start-due-date.validator';\n\nimport { timePeriod } from './meta-validators/timeperiod/timeperiod.validator';\n\nimport { MetaControl } from './meta-form-interface/interfaces';\nimport { MetaFormService } from './services/meta-form.service';\nimport { ControlType } from './utils/control-type.enum';\nimport { getFieldType } from './utils/get-field-type.utils';\nimport { WhiteSpaceValidator } from './meta-validators/white-space-validator';\n\n@Directive()\nexport abstract class MetaFormAbstract {\n @Input() metaForm!: FormGroup;\n @Input() metaFormValues: any;\n @Input() metaFormControls: any;\n @Input() disableForm: boolean = false;\n @Input() formButtons: boolean = true;\n @Input() groupForm: boolean = false;\n @Output() onFormSubmit = new EventEmitter();\n @Output() onFormCancel = new EventEmitter();\n\n formActive$!: Observable<boolean>;\n formSub$!: Subscription;\n\n constructor(\n private fb: FormBuilder,\n public metaService: MetaFormService,\n\n private translateService: TranslateService,\n private http: HttpClient // private env: EnvService\n ) {\n this.metaForm = this.fb.group({});\n this.formActive$ = this.metaService.formReadOnlyState;\n ///check if this has usecase\n this.formSub$ = this.metaForm.valueChanges.subscribe((ev: any) => {\n this.metaService.setFormEvent(ev);\n });\n }\n\n createForm(controls: MetaControl[] | any) {\n controls?.forEach((control: any) => {\n this.metaForm.addControl(\n control.configuration?.key,\n this.fb.control(\n getFieldType(control)\n ///updateOn: blur only for controls with async validators. If added for all each tab/step toggle removes form value. Check why\n // control.asyncValidators && { updateOn: 'blur' },\n )\n );\n //add validators\n this.addControlValidators(control);\n\n //disable non editable fields\n if (control.disable) {\n this.metaForm.get(control.configuration.key)?.disable();\n }\n });\n ///patch values in form\n if (this.metaFormValues) {\n this.metaForm.patchValue(this.metaFormValues);\n }\n\n this.metaService.setFormBuildCompletition(true);\n }\n\n activateForm() {\n throw new Error('not implemented');\n }\n\n addControlValidators(control: any) {\n const validators: any[] = [];\n const asyncValidators: any[] = [];\n\n // if (control.asyncValidators) {\n // control?.asyncValidators?.uniqueName &&\n // asyncValidators.push(\n // uniqueEntry(control, this.metaFormValues?.uuid, this.http)\n // );\n\n // control?.asyncValidators?.uniqueTitle &&\n // asyncValidators.push(\n // uniqueTitle(control, this.metaFormValues?.uuid, this.http)\n // );\n\n // control?.asyncValidators?.uniqueValue &&\n // asyncValidators.push(uniqueValue(control, this.http));\n // }\n\n if (control.validators) {\n control.validators.min &&\n validators.push(Validators.min(control.validators.min));\n\n control.validators.max &&\n validators.push(Validators.max(control.validators.max));\n\n control.validators.maxLenght &&\n validators.push(Validators.maxLength(control.validators.maxLenght));\n\n control.validators.minLength &&\n validators.push(Validators.minLength(control.validators.minLength));\n\n control.validators.email && validators.push(Validators.email);\n\n control.validators.regex &&\n validators.push(\n Validators.pattern(control.validators.regex?.regexType)\n );\n\n control.validators.timeperiod &&\n validators.push(\n timePeriod(\n this.translateService.currentLang,\n control.validators.tpMin\n )\n );\n\n control.validators.dueDate && validators.push(startDueDateValidator);\n }\n if (control?.mandatory) {\n validators.push(Validators.required);\n }\n\n if (control?.mandatory && control.configuration.type === ControlType.TEXT) {\n validators.push(WhiteSpaceValidator.noWhiteSpaceValidator);\n }\n\n if (\n control?.mandatory &&\n control.configuration.type === ControlType.TEXT_AREA\n ) {\n validators.push(WhiteSpaceValidator.noWhiteSpaceValidator);\n }\n\n this.metaForm.get(control.configuration.key)?.setValidators(validators);\n this.metaForm\n .get(control.configuration.key)\n ?.setAsyncValidators(asyncValidators);\n }\n\n onSubmit() {\n this.onFormSubmit.emit(this.metaForm);\n }\n\n onCancel() {\n this.metaForm.reset();\n this.onFormCancel.emit();\n }\n\n /**\n * Resets form to initial state\n *\n * @description Useful when user interact with form (edit some inputs) and than clicks CANCEL. This method patch original values to FormGroup again\n *\n */\n resetToInitialValues() {\n this.metaForm.patchValue(this.metaFormValues);\n }\n\n ngOnDestroy(): void {\n if (this.formSub$) this.formSub$.unsubscribe();\n }\n}\n","export function getLanguageParam(\n obj: any,\n langType: string,\n paramName: string,\n): string {\n if (!langType) langType = 'en';\n if (langType && paramName) {\n const param: string =\n paramName + langType.charAt(0).toUpperCase() + langType.slice(1);\n const fallBackParam: string = paramName + 'En';\n if (obj?.[param]) {\n return obj[param];\n } else if (obj?.[fallBackParam]) {\n return obj[fallBackParam];\n } else {\n return param;\n }\n } else {\n return '***NO VALUE***';\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { getLanguageParam } from './lang.utils';\n\n@Pipe({\n name: 'fieldLabel',\n standalone: true,\n})\nexport class FieldLabelPipe implements PipeTransform {\n transform(value: any, currentLang: string): string {\n if (value.hasOwnProperty('userFriendlyMessage')) {\n return value?.userFriendlyMessage;\n }\n const metaLabel = getLanguageParam(value, currentLang, 'labelKeyVal');\n return metaLabel;\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { FieldLabelPipe } from '../utils/field-label.pipe';\n\n@Component({\n selector: 'phoenix-meta-label',\n standalone: true,\n imports: [CommonModule, TranslateModule, FieldLabelPipe],\n template: `\n <label class=\"mb-1 block\" *ngIf=\"!control?.hidden\">\n {{ control | fieldLabel: currentLang | translate }}\n <span *ngIf=\"control.mandatory\" class=\"red-asterisk\">*</span>\n </label>\n `,\n styles: [],\n})\nexport class MetaLabelComponent {\n @Input() control: any;\n currentLang: string;\n constructor(private translateService: TranslateService) {\n this.currentLang = this.translateService.currentLang;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, forwardRef, inject } from '@angular/core';\nimport {\n ControlValueAccessor,\n FormGroup,\n NG_VALUE_ACCESSOR,\n} from '@angular/forms';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\n// import { Assignee } from '@phoenix/model-meta';\n// import { PhoenixDialogService } from '@phoenix/service/common';\nimport { ButtonModule } from 'primeng/button';\nimport { OverlayPanelModule } from 'primeng/overlaypanel';\nimport { PanelModule } from 'primeng/panel';\nimport { MetaLabelComponent } from '../../meta-field-label/meta-label.component';\nimport { ObjectItemDialogComponent } from '../object-item-dialog/object-item-dialog.component';\n\n@Component({\n selector: 'phoenix-meta-assign-responsible',\n standalone: true,\n imports: [\n CommonModule,\n ButtonModule,\n MetaLabelComponent,\n TranslateModule,\n OverlayPanelModule,\n PanelModule,\n ],\n template: `\n <div [style.display]=\"control.hidden ? 'none' : 'block'\">\n <phoenix-meta-label [control]=\"control\"></phoenix-meta-label>\n <div\n [attr.data-cy]=\"'assign-' + control?.id\"\n *ngIf=\"\n parentForm.controls[this.control.configuration.key].value &&\n parentForm.controls[this.control.configuration.key].value.uuid\n \"\n class=\"flex align-items-center\"\n >\n <div>\n <p-button\n [rounded]=\"true\"\n [text]=\"true\"\n (onClick)=\"op.toggle($event)\"\n >\n <div class=\"person-wrap\">\n <div class=\"person-avatar\">\n {{\n parentForm.controls[\n this.control.configuration.key\n ].value?.name?.charAt(0)\n }}\n </div>\n <div>\n <p\n class=\"white-space-nowrap overflow-hidden text-overflow-ellipsis\"\n >\n {{\n parentForm.controls[this.control.configuration.key].value\n ?.name\n }}\n </p>\n <p\n class=\"white-space-nowrap overflow-hidden text-overflow-ellipsis\"\n >\n {{\n parentForm.controls[this.control.configuration.key].value\n ?.function\n }}\n </p>\n </div>\n </div></p-button\n >\n <p-overlayPanel #op>\n <div>\n <span class=\"block mb-2\">\n <i class=\"pi pi-envelope mr-1 text-500\"></i>\n\n {{\n parentForm.controls[this.control.configuration.key].value\n ?.email ?? ' --'\n }}\n </span>\n <p>\n <i class=\"pi pi-phone mr-1 text-500\"></i\n >{{\n parentForm.controls[this.control.configuration.key].value\n ?.phone ?? ' --'\n }}\n </p>\n </div></p-overlayPanel\n >\n </div>\n\n <div style=\"paddingBottom:4px\">\n <p-button\n *ngIf=\"\n parentForm.controls[this.control.configuration.key].value &&\n parentForm.controls[this.control.configuration.key].value.uuid\n \"\n styleClass=\"p-button-sm mt-1\"\n type=\"button\"\n [text]=\"true\"\n label=\"{{ 'ACTION.REASSIGN' | translate }}\"\n (click)=\"assignResponsible()\"\n ></p-button>\n <p-button\n *ngIf=\"\n parentForm.controls[this.control.configuration.key].value &&\n parentForm.controls[this.control.configuration.key].value.uuid\n \"\n type=\"button\"\n icon=\"pi pi-times\"\n (click)=\"clear()\"\n [text]=\"true\"\n styleClass=\"p-button-danger p-button-sm mt-1 ml-2\"\n ></p-button>\n </div>\n </div>\n <p-button\n *ngIf=\"\n !(\n parentForm.controls[this.control.configuration.key].value &&\n parentForm.controls[this.control.configuration.key].value.uuid\n )\n \"\n type=\"button\"\n icon=\"pi pi-user-plus\"\n styleClass=\"p-button-sm mt-1\"\n label=\"{{ 'ACTION.ASSIGN' | translate }}\"\n (click)=\"assignResponsible()\"\n [text]=\"true\"\n ></p-button>\n </div>\n `,\n styles: [\n `\n .person-wrap {\n display: flex;\n align-items: center;\n\n margin-left: -6px;\n\n & p {\n margin: 0;\n }\n\n .person-avatar {\n display: flex;\n justify-content: center;\n align-items: center;\n width: 28px;\n height: 28px;\n min-width: 28px;\n min-height: 28px;\n margin-right: 5px;\n background-color: rgb(233, 66, 96);\n color: white;\n border-radius: 50%;\n /* font-weight: 800; */\n font-size: 1rem;\n }\n .person-name :first-child {\n font-size: 1rem;\n }\n }\n\n .person-details {\n border-top: 1px solid #e0e0e0;\n padding: 5px;\n margin-left: -6px;\n width: 150px;\n\n p {\n margin: 0;\n display: flex;\n align-items: center;\n }\n\n i {\n color: #e94260;\n padding-right: 5px;\n }\n\n .p-editor-container {\n padding-left: 0 !important;\n }\n }\n `,\n ],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MetaAssignResponsibleComponent),\n multi: true,\n },\n ],\n})\nexport class MetaAssignResponsibleComponent implements ControlValueAccessor {\n @Input() control: any;\n @Input() parentForm!: FormGroup;\n @Input() disable?: boolean;\n\n public onChanged!: (value: any) => void;\n public onTouched!: () => void;\n public isDisabled!: boolean;\n writeValue(value: any): void {}\n registerOnChange(fn: any): void {\n this.onChanged = fn;\n }\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n setDisabledState(isDisabled: boolean) {\n this.isDisabled = isDisabled;\n }\n // private phoenixDialog = inject(PhoenixDialogService);\n private translateService = inject(TranslateService);\n person!: any;\n\n clear() {\n this.parentForm.controls[this.control.configuration.key].setValue(null);\n }\n assignResponsible() {\n // const ref = this.phoenixDialog.initDialog(\n // ObjectItemDialogComponent,\n // { appSource: this.control.configuration.app },\n // this.translateService.instant('COMMON.LIST_OF_RESPONSIBLE_PERSONS'),\n // 'large',\n // '',\n // true\n // );\n // ref.onClose.subscribe((response: Assignee) => {\n // if (response) {\n // this.person = response;\n // this.parentForm.controls[this.control.configuration.key].setValue(\n // response\n // );\n // }\n // });\n }\n}\n","export enum ErrorType {\n REQUIRED = 'required',\n MIN_LENGTH = 'minlength',\n MAX_LENGTH = 'maxlength',\n EMAIL = 'email',\n CUSTOM = 'custom',\n PATTERN = 'pattern',\n UIQUE_ENTRY = 'uniqueEntry',\n TIMEPERIOD = 'timeperiod',\n TIMEPERIOD_LIMIT_MAX = 'timeperiod_limit_max',\n TIMEPERIOD_LIMIT_MIN = 'timeperiod_limit_min',\n DUE_DATE = 'dueDate',\n UIQUE = 'unique',\n BOTH_DATES = 'both_dates',\n MAX = 'max',\n MIN = 'min',\n}\n","import { animate, style, transition, trigger } from '@angular/animations';\nimport { CommonModule } from '@angular/common';\nimport { Component, Input, OnChanges, OnDestroy, inject } from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Subscription, combineLatestWith } from 'rxjs';\nimport { MetaFormService } from '../services/meta-form.service';\nimport { ErrorType } from '../utils/error-type.util';\n\n@Component({\n standalone: true,\n imports: [CommonModule],\n selector: 'phoenix-inline-field-error',\n styles: [``],\n animations: [\n trigger('slideInOut', [\n transition(':enter', [\n style({ transform: 'translateY(-60%)' }),\n animate('100ms ease-out', style({ transform: 'translateY(0%)' })),\n ]),\n transition(':leave', [\n animate(\n '50ms ease-out',\n style({ transform: 'translateY(-100%)', opacity: '0' })\n ),\n ]),\n ]),\n ],\n template: `\n <div style=\"height: 1px;\">\n <div *ngIf=\"note\" [@slideInOut] class=\"static\">\n <small class=\"text-blue-700\" *ngIf=\"note.type === 'info'; else warn\">\n <i class=\"pi pi-spin pi-spinner\" style=\"font-size: 11px\"></i>\n {{ note.content }}\n </small>\n <ng-template #warn>\n <small class=\"p-error\">\n <i style=\"font-size: 11px\" class=\"pi pi-exclamation-circle\"></i>\n {{ note }}\n </small>\n </ng-template>\n </div>\n </div>\n `,\n})\nexport class InlineFieldError implements OnDestroy, OnChanges {\n constructor(private translateService: TranslateService) {}\n sub$!: Subscription;\n metaFormService = inject(MetaFormService);\n loaded: Boolean = false;\n\n ngOnChanges(): void {\n if (this.ctrl && !this.loaded) {\n if (this.ctrl?.status === 'PENDING') {\n ///this is only for async validators for name and title. Remove this one, we have this in onChange() method\n this.ctrl.updateValueAndValidity();\n }\n this.sub$ = this.ctrl?.statusChanges\n ?.pipe(combineLatestWith(this.metaFormService.formReadOnlyState))\n .subscribe((arr) => {\n if (arr[0] !== 'VALID') {\n setTimeout(() => {\n this.note = this.getErrorMessage(this.ctrl);\n });\n } else {\n setTimeout(() => {\n this.note = null;\n });\n }\n // if (arr[1]) {\n // setTimeout(() => {\n // this.note = null;\n // });\n // }\n });\n this.loaded = true;\n }\n }\n\n @Input() ctrl!: AbstractControl;\n note!: any;\n\n getErrorMessage(control: AbstractControl): any {\n if (control?.status === 'PENDING') {\n return {\n type: 'info',\n content: this.translateService.instant(\n 'VALIDATION_MESSAGE.CHECKING_ENTRY_AVAILABILITY'\n ),\n };\n }\n // if (control?.status === 'VALID') {\n // return 'ENTRY OK';\n // }\n\n if (control?.errors) {\n switch (Object.keys(control.errors)[0]) {\n case ErrorType.REQUIRED:\n return this.translateService.instant(\n 'VALIDATION_MESSAGE.THIS_FIELD_IS_REQUIRED'\n );\n case ErrorType.MIN_LENGTH:\n return this.translateService.instant(\n 'VALIDATION_MESSAGE.VALUE_AT_LEAST',\n { minlength: control.errors['minlength'].requiredLength }\n );\n case ErrorType.MAX_LENGTH:\n return this.translateService.instant(\n 'VALIDATION_MESSAGE.VALUE_NO_MORE',\n { maxlength: control.errors['maxlength'].requiredLength }\n );\n case ErrorType.EMAIL:\n return this.translateService.instant(\n 'VALIDATION_MESSAGE.ENTER_VALID_EMAIL'\n );\n case ErrorType.CUSTOM:\n return this.translateService.instant(control?.errors?.['custom']);\n\n case ErrorType.UIQUE_ENTRY:\n return control.errors['uniqueEntry'];\n\n case ErrorType.TIMEPERIOD:\n return this.translateService.instant(\n 'VALIDATION_MESSAGE.VALUE_SHOULD_MATCH_TIMEPATTERN'\n );\n\n case ErrorType.MAX:\n return this.translateService.instant(\n 'VALIDATION_MESSAGE.VALUE_SHOULD_BE_LESS_THAN_AND_MORE_THAN',\n {\n lowerValue: control.errors['min']?.min ?? 0,\n upperValue: control.errors['max']?.max,\n }\n );\n\n case ErrorType.DUE_DATE:\n return this.translateService.instant(\n 'VALIDATION_MESSAGE.INVALID_DATE'\n );\n case ErrorType.UIQUE:\n return this.translateService.instant(\n 'VALIDATION_MESSAGE.VALUE_IS_ALREADY_IN_USE'\n );\n case ErrorType.TIMEPERIOD_LIMIT_MAX:\n return this.translateService.instant(\n 'VALIDATION_MESSAGE.VALUE_SHOULD_MATCH_TIMEPATTERN_LIMIT_MAX'\n );\n\n case ErrorType.TIMEPERIOD_LIMIT_MIN:\n return this.translateService.instant(\n 'VALIDATION_MESSAGE.VALUE_SHOULD_MATCH_TIMEPATTERN_LIMIT_MIN'\n );\n\n case ErrorType.BOTH_DATES:\n return this.translateService.instant(\n 'VALIDATION_MESSAGE.BOTH_START_END_DATE_REQUIRED'\n );\n\n // add more cases for other validators as needed\n case ErrorType.PATTERN:\n const re = '^(https?://)?([\\\\da-z.-]+)\\\\.([a-z.]{2,6})[/\\\\w .-]*/?$';\n\n if (control?.errors?.['pattern']?.requiredPattern === re)\n return this.translateService.instant(\n 'VALIDATION_MESSAGE.VALUE_SHOUL_BE_URL'\n );\n else {\n return this.translateService.instant(\n 'VALIDATION_MESSAGE.INVALID_VALUE'\n );\n }\n // add more cases for other validators as needed\n default:\n return this.translateService.instant(\n 'VALIDATION_MESSAGE.INVALID_VALUE'\n );\n }\n } else return '';\n }\n\n ngOnDestroy(): void {\n this.sub$?.unsubscribe();\n }\n}\n","import { Directive, Input } from '@angular/core';\nimport { ControlValueAccessor, FormGroup } from '@angular/forms';\nimport { Subject, Subscription } from 'rxjs';\n\n@Directive()\nexport class BaseMetaField implements ControlValueAccessor {\n @Input() disable: boolean = false;\n @Input() control: any;\n @Input() parentForm!: FormGroup;\n fcs$!: Subscription | undefined;\n cfc$!: Subscription | undefined;\n\n public value!: any;\n public onChanged!: (value: any) => void;\n public onTouched!: () => void;\n ctrl: any;\n\n protected changeSub = new Subject<boolean>();\n protected changeSubs$!: Subscription;\n\n getInputValue(event: Event | any): any {\n if (event.value) {\n return event.value;\n }\n if (event.target instanceof HTMLInputElement) {\n return event.target.value?.trim();\n }\n if (event.target instanceof HTMLTextAreaElement) {\n return event.target.value;\n }\n return '';\n }\n\n writeValue(value: string): void {\n this.value = value;\n }\n registerOnChange(fn: any): void {\n this.onChanged = fn;\n this.changeSub.next(true);\n }\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disable = isDisabled;\n }\n\n ngOnDestroy(): void {\n this.changeSubs$?.unsubscribe();\n this.fcs$?.unsubscribe();\n this.cfc$?.unsubscribe();\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, forwardRef } from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { CalendarModule } from 'primeng/calendar';\nimport { InlineFieldError } from '../../meta-field-error/inline-field-error.component';\nimport { MetaLabelComponent } from '../../meta-field-label/meta-label.component';\nimport { BaseMetaField } from '../../utils/base-meta-field';\n\n@Component({\n selector: 'phoenix-meta-calendar',\n standalone: true,\n imports: [\n CommonModule,\n CalendarModule,\n MetaLabelComponent,\n FormsModule,\n InlineFieldError,\n ],\n template: ` <div [hidden]=\"control?.hidden\">\n <phoenix-meta-label [control]=\"control\"></phoenix-meta-label>\n <p-calendar\n [attr.data-cy]=\"'calendar-' + control?.id\"\n (onSelect)=\"onChanged(value)\"\n [style]=\"{ width: '100%' }\"\n [(ngModel)]=\"value\"\n [disabled]=\"disable\"\n [readonlyInput]=\"true\"\n [showButtonBar]=\"true\"\n [minDate]=\"control.configuration?.minDate\"\n [showIcon]=\"true\"\n (onClearClick)=\"onDateClear()\"\n [appendTo]=\"'body'\"\n ></p-calendar>\n <phoenix-inline-field-error [ctrl]=\"ctrl\"></phoenix-inline-field-error>\n </div>`,\n styleUrls: ['./meta-calendar.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MetaCalendarComponent),\n multi: true,\n },\n ],\n})\nexport class MetaCalendarComponent extends BaseMetaField {\n onDateClear() {\n this.parentForm.controls[this.control.configuration.key].setValue(null);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, forwardRef, inject } from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { OverlayPanelModule } from 'primeng/overlaypanel';\nimport { MetaLabelComponent } from '../../meta-field-label/meta-label.component';\nimport { BaseMetaField } from '../../utils/base-meta-field';\n\n@Component({\n selector: 'phoenix-meta-checkbox-color-picker',\n standalone: true,\n imports: [\n CommonModule,\n CheckboxModule,\n FormsModule,\n TranslateModule,\n OverlayPanelModule,\n MetaLabelComponent,\n ],\n template: `\n <p-overlayPanel #op>\n <div class=\"color-picker\">\n <ng-container\n *ngFor=\"let row of control.configuration.options; let last = last\"\n >\n <div class=\"color-row \" [ngClass]=\"{ 'mb-2': !last }\">\n <ng-container *ngFor=\"let color of row\">\n <div\n class=\"color-box\"\n [ngStyle]=\"{\n 'background-color': color,\n outline:\n focusedColor === color ? '3px solid ' + color : 'none',\n 'outline-offset': focusedColor === color ? '3px' : '0',\n }\"\n (click)=\"onChanged(color); changeColor(color)\"\n ></div>\n </ng-container>\n </div>\n </ng-container>\n </div>\n </p-overlayPanel>\n\n <phoenix-meta-label [control]=\"control\"></phoenix-meta-label>\n\n <div\n class=\"selected-color \"\n [ngStyle]=\"{ 'background-color': value, marginTop: '6px' }\"\n [attr.data-cy]=\"'checkbox-' + control?.id\"\n (click)=\"op.toggle($event)\"\n ></div>\n `,\n styles: [\n `\n ::ng-deep .p-overlaypanel .p-overlaypanel-content {\n padding: 0 !important;\n }\n .color-picker {\n display: flex;\n flex-direction: column;\n padding: 10px;\n }\n\n .color-row {\n display: flex;\n justify-content: center;\n gap: 8px;\n }\n\n .color-box {\n margin: 2px;\n width: 30px;\n height: 30px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n border-radius: 4px;\n }\n\n .color-box:hover {\n transform: scale(1.1);\n opacity: 0.9;\n box-shadow: 0px 0px 5px rgba(0, 0, 0, 0.2);\n }\n\n .color-box:focus {\n outline: 3px solid rgba(0, 0, 0, 0.2);\n outline-offset: 3px;\n }\n\n .selected-color {\n width: 35px;\n height: 35px;\n border: 2px solid #ccc;\n cursor: pointer;\n border-radius: 6px;\n }\n `,\n ],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MetaCheckboxColorPickerComponent),\n multi: true,\n },\n ],\n})\nexport class MetaCheckboxColorPickerComponent extends BaseMetaField {\n private translateService = inject(TranslateService);\n currentLang = this.translateService.currentLang;\n focusedColor: any;\n changeColor(color: string): void {\n this.focusedColor = color;\n this.value = color;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, forwardRef, inject } from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { BaseMetaField } from '../../utils/base-meta-field';\nimport { FieldLabelPipe } from '../../utils/field-label.pipe';\n\n@Component({\n selector: 'phoenix-meta-checkbox',\n standalone: true,\n imports: [\n CommonModule,\n CheckboxModule,\n FormsModule,\n TranslateModule,\n FieldLabelPipe,\n ],\n template: ` <div class=\"ml-3 field-checkbox\">\n <p-checkbox\n [attr.data-cy]=\"'checkbox-' + control?.id\"\n [(ngModel)]=\"value\"\n (onChange)=\"onChanged(value)\"\n [binary]=\"true\"\n inputId=\"binary\"\n [disabled]=\"control.readOnly || disable\"\n ></p-checkbox>\n\n <label for=\"binary\">\n {{ control | fieldLabel: currentLang | translate }}\n <span *ngIf=\"control.mandatory\" class=\"red-asterisk\">*</span></label\n >\n </div>`,\n styles: [],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MetaCheckboxComponent),\n multi: true,\n },\n ],\n})\nexport class MetaCheckboxComponent extends BaseMetaField {\n private translateService = inject(TranslateService);\n currentLang = this.translateService.currentLang;\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, forwardRef } from '@angular/core';\nimport {\n FormsModule,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n} from '@angular/forms';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { InlineFieldError } from '../../meta-field-error/inline-field-error.component';\nimport { MetaLabelComponent } from '../../meta-field-label/meta-label.component';\nimport { BaseMetaField } from '../../utils/base-meta-field';\nimport { ColorPickerModule } from 'primeng/colorpicker';\n\n@Component({\n selector: 'phoenix-meta-color-picker',\n standalone: true,\n imports: [\n CommonModule,\n ReactiveFormsModule,\n InlineFieldError,\n MetaLabelComponent,\n TranslateModule,\n ColorPickerModule,\n FormsModule,\n ],\n template: `\n <div>\n <phoenix-meta-label [control]=\"control\"></phoenix-meta-label>\n <p-colorPicker\n [attr.data-cy]=\"'color-picker-' + control?.id\"\n [hidden]=\"control?.hidden\"\n [(ngModel)]=\"value\"\n (onChange)=\"onChanged(value)\"\n [disabled]=\"disable\"\n ></p-colorPicker>\n <phoenix-inline-field-error\n *ngIf=\"!control?.hidden\"\n [ctrl]=\"ctrl\"\n ></phoenix-inline-field-error>\n </div>\n `,\n styles: [\n `\n :host::ng-deep {\n .p-inputswitch {\n margin-top: 12px;\n }\n }\n `,\n ],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MetaColorPickerComponent),\n multi: true,\n },\n ],\n})\nexport class MetaColorPickerComponent extends BaseMetaField {}\n","import { CommonModule } from '@angular/common';\nimport { Component, forwardRef } from '@angular/core';\nimport {\n FormsModule,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n} from '@angular/forms';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { InputNumberModule } from 'primeng/inputnumber';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { KeyFilterModule } from 'primeng/keyfilter';\nimport { InlineFieldError } from '../../meta-field-error/inline-field-error.component';\nimport { MetaLabelComponent } from '../../meta-field-label/meta-label.component';\nimport { BaseMetaField } from '../../utils/base-meta-field';\n\n@Component({\n selector: 'phoenix-meta-currency',\n standalone: true,\n imports: [\n CommonModule,\n ReactiveFormsModule,\n FormsModule,\n InputTextModule,\n InlineFieldError,\n MetaLabelComponent,\n TranslateModule,\n KeyFilterModule,\n InputNumberModule,\n ],\n template: `\n <div>\n <phoenix-meta-label [control]=\"control\"></phoenix-meta-label>\n <p-inputNumber\n [attr.data-cy]=\"'currency-' + control?.id\"\n #myInput\n [style.display]=\"control.hidden ? 'none' : 'block'\"\n mode=\"currency\"\n inputId=\"currency-germany\"\n currency=\"EUR\"\n locale=\"de-DE\"\n [min]=\"10\"\n [(ngModel)]=\"value\"\n (input)=\"input($event)\"\n (ngModelChange)=\"changeValue($event)\"\n (blur)=\"onTouched()\"\n [disabled]=\"disable\"\n class=\"w-full\"\n [style]=\"{ width: '100%' }\"\n >\n </p-inputNumber>\n <phoenix-inline-field-error\n *ngIf=\"!control?.hidden\"\n [ctrl]=\"ctrl\"\n ></phoenix-inline-field-error>\n </div>\n `,\n styles: [],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MetaCurrencyComponent),\n multi: true,\n },\n ],\n})\nexport class MetaCurrencyComponent extends BaseMetaField {\n changeValue(data: any) {\n this.parentForm.controls[this.control?.configuration?.key].setValue(data);\n }\n input(data: any) {\n const number = this.convertCurrencyStringToNumber(data.target.value);\n this.parentForm.controls[this.control?.configuration?.key].setValue(number);\n }\n\n convertCurrencyStringToNumber(currencyString: string) {\n // Remove dots for thousands separators\n const stringWithoutDots = currencyString.replace(/\\./g, '');\n\n // Replace comma with dot for decimal separator\n const stringWithDotDecimal = stringWithoutDots.replace(',', '.');\n\n // Parse the string into a number\n const numericValue = parseFloat(stringWithDotDecimal);\n\n return numericValue;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, forwardRef } from '@angular/core';\nimport {\n FormsModule,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n} from '@angular/forms';\nimport { MultiSelectModule } from 'primeng/multiselect';\nimport { MetaLabelComponent } from '../../meta-field-label/meta-label.component';\nimport { BaseMetaField } from '../../utils/base-meta-field';\nimport { InlineFieldError } from '../../meta-field-error/inline-field-error.component';\nimport { TranslateModule } from '@ngx-translate/core';\n\n@Component({\n selector: 'phoenix-meta-multiple-select',\n standalone: true,\n imports: [\n CommonModule,\n ReactiveFormsModule,\n MultiSelectModule,\n FormsModule,\n MetaLabelComponent,\n InlineFieldError,\n TranslateModule,\n ],\n template: `\n <phoenix-meta-label [control]=\"control\"></phoenix-meta-label>\n <p-multiSelect\n [attr.data-cy]=\"'multiSelect-' + control?.id\"\n [hidden]=\"control?.hidden\"\n (onChange)=\"onChanged(value)\"\n (onSelectAllChange)=\"onChanged(value)\"\n [(ngModel)]=\"value\"\n [options]=\"control.configuration.options\"\n optionLabel=\"userFriendlyMessage\"\n [filter]=\"control.configuration?.filter\"\n [style]=\"{ width: '100%' }\"\n [disabled]=\"disable\"\n appendTo=\"body\"\n [showHeader]=\"false\"\n ></p-multiSelect>\n <phoenix-inline-field-error\n *ngIf=\"!control?.hidden\"\n [ctrl]=\"ctrl\"\n ></phoenix-inline-field-error>\n `,\n styles: [],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MetaMultipleSelectComponent),\n multi: true,\n },\n ],\n})\nexport class MetaMultipleSelectComponent extends BaseMetaField {}\n","import { CommonModule } from '@angular/common';\nimport { Component, forwardRef, inject } from '@angular/core';\nimport {\n FormsModule,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n} from '@angular/forms';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { InlineFieldError } from '../../meta-field-error/inline-field-error.component';\nimport { MetaLabelComponent } from '../../meta-field-label/meta-label.component';\nimport { BaseMetaField } from '../../utils/base-meta-field';\nimport { KeyFilterModule } from 'primeng/keyfilter';\n// import { LanguageParamResolverPipe, Regex } from '@phoenix/util/util-common';\nimport { InputNumberModule } from 'primeng/inputnumber';\nimport { InputTextModule } from 'primeng/inputtext';\n\n@Component({\n selector: 'phoenix-meta-number-input',\n standalone: true,\n imports: [\n CommonModule,\n ReactiveFormsModule,\n InputNumberModule,\n InlineFieldError,\n FormsModule,\n MetaLabelComponent,\n TranslateModule,\n KeyFilterModule,\n InputTextModule,\n // LanguageParamResolverPipe,\n ],\n template: `\n <div [hidden]=\"control?.hidden\">\n <phoenix-meta-label [control]=\"control\"></phoenix-meta-label>\n <p-inputNumber\n [attr.data-cy]=\"'input-number-' + control?.id\"\n [(ngModel)]=\"value\"\n (onInput)=\"onChanged(getInputValue($event))\"\n (blur)=\"onTouched()\"\n [disabled]=\"disable\"\n [useGrouping]=\"false\"\n [min]=\"1\"\n class=\"w-full\"\n [style]=\"{ width: '100%' }\"\n >\n </p-inputNumber>\n <phoenix-inline-field-error\n *ngIf=\"!control?.hidden\"\n [ctrl]=\"ctrl\"\n ></phoenix-inline-field-error>\n </div>\n `,\n styles: [``],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MetaNumberComponent),\n multi: true,\n },\n ],\n})\nexport class MetaNumberComponent extends BaseMetaField {\n // public regex = Regex;\n lang = inject(TranslateService).currentLang;\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, forwardRef } from '@angular/core';\nimport {\n FormsModule,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n} from '@angular/forms';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { InputSwitchModule } from 'primeng/inputswitch';\nimport { InlineFieldError } from '../../meta-field-error/inline-field-error.component';\nimport { MetaLabelComponent } from '../../meta-field-label/meta-label.component';\nimport { BaseMetaField } from '../../utils/base-meta-field';\nimport { PasswordModule } from 'primeng/password';\n@Component({\n selector: 'phoenix-meta-password-feild',\n standalone: true,\n imports: [\n CommonModule,\n ReactiveFormsModule,\n InlineFieldError,\n MetaLabelComponent,\n TranslateModule,\n InputSwitchModule,\n FormsModule,\n PasswordModule,\n ],\n template: `\n <div>\n <phoenix-meta-label [control]=\"control\"></phoenix-meta-label>\n <p-password\n [attr.data-cy]=\"'password-' + control?.id\"\n [disabled]=\"disable\"\n [hidden]=\"control?.hidden\"\n [(ngModel)]=\"value\"\n [feedback]=\"false\"\n (input)=\"onChanged(getInputValue($event))\"\n class=\"ng-invalid ng-dirty\"\n ></p-password>\n <phoenix-inline-field-error\n *ngIf=\"!control?.hidden\"\n [ctrl]=\"ctrl\"\n ></phoenix-inline-field-error>\n </div>\n `,\n styles: [\n `\n :host::ng-deep {\n .p-component {\n width: 100%;\n }\n }\n `,\n ],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MetaPasswordFeildComponent),\n multi: true,\n },\n ],\n})\nexport class MetaPasswordFeildComponent extends BaseMetaField {}\n","import { CommonModule } from '@angular/common';\nimport { Component, forwardRef } from '@angular/core';\nimport {\n FormsModule,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n} from '@angular/forms';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { InputSwitchModule } from 'primeng/inputswitch';\nimport { InlineFieldError } from '../../meta-field-error/inline-field-error.component';\nimport { MetaLabelComponent } from '../../meta-field-label/meta-label.component';\nimport { BaseMetaField } from '../../utils/base-meta-field';\nimport { SelectButtonModule } from 'primeng/selectbutton';\n\n@Component({\n selector: 'phoenix-meta-select-button',\n standalone: true,\n imports: [\n CommonModule,\n ReactiveFormsModule,\n InlineFieldError,\n MetaLabelComponent,\n TranslateModule,\n FormsModule,\n SelectButtonModule,\n ],\n template: `\n <div>\n <phoenix-meta-label [control]=\"control\"></phoenix-meta-label>\n\n <p-selectButton\n [attr.data-cy]=\"'select-button-' + control?.id\"\n [options]=\"control.configuration.options\"\n [hidden]=\"control?.hidden\"\n [(ngModel)]=\"value\"\n [disabled]=\"disable\"\n (onChange)=\"onChanged(value)\"\n optionLabel=\"userFriendlyMessage\"\n optionValue=\"value\"\n ></p-selectButton>\n\n <phoenix-inline-field-error\n *ngIf=\"!control?.hidden\"\n [ctrl]=\"ctrl\"\n ></phoenix-inline-field-error>\n </div>\n `,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MetaSelectButtonComponent),\n multi: true,\n },\n ],\n})\nexport class MetaSelectButtonComponent extends BaseMetaField {}\n","import { inject, Pipe, PipeTransform } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Pipe({\n name: 'translateDropdownData',\n standalone: true,\n})\nexport class TranslateDropdownData implements PipeTransform {\n protected translateService = inject(TranslateService);\n transform(data: any, paramName: string): any {\n let arr: any = [];\n paramName\n ? data?.forEach((item: any) => {\n const obj = item;\n obj[paramName] = item[paramName]\n ? this.translateService.instant(item[paramName])\n : paramName;\n arr.push(obj);\n })\n : (arr = data);\n\n return arr;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, forwardRef } from '@angular/core';\nimport { DropdownModule } from 'primeng/dropdown';\n\nimport {\n FormsModule,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n} from '@angular/forms';\nimport { TranslateModule } from '@ngx-translate/core';\n\nimport { ImageModule } from 'primeng/image';\nimport { debounceTime, of, switchMap } from 'rxjs';\nimport { MetaLabelComponent } from '../../meta-field-label/meta-label.component';\nimport { BaseMetaField } from '../../utils/base-meta-field';\nimport { InlineFieldError } from '../../meta-field-error/inline-field-error.component';\nimport { TranslateDropdownData } from '../../utils/translate-dropdown-data.pipe';\n\n@Component({\n selector: 'phoenix-meta-single-select-object-based',\n standalone: true,\n imports: [\n CommonModule,\n ReactiveFormsModule,\n DropdownModule,\n MetaLabelComponent,\n FormsModule,\n TranslateModule,\n TranslateDropdownData,\n ImageModule,\n InlineFieldError,\n ],\n template: `\n <phoenix-meta-label [control]=\"control\"></phoenix-meta-label>\n <p-dropdown\n [attr.data-cy]=\"'single-select-ob' + control?.id\"\n [hidden]=\"control?.hidden\"\n filterBy=\"value\"\n [optionLabel]=\"oiKey\"\n [options]=\"\n control.configuration.options | translateDropdownData : 'value'\n \"\n [showClear]=\"control.configuration?.showClear\"\n [(ngModel)]=\"value\"\n [style]=\"{ width: '100%' }\"\n [disabled]=\"disable || control?.disable\"\n [filter]=\"control.configuration?.filter\"\n [group]=\"control.configuration.group\"\n (onClear)=\"onDateClear()\"\n (onChange)=\"onChanged(value)\"\n [panelStyle]=\"{ width: '100%' }\"\n appendTo=\"body\"\n >\n <ng-template let-option pTemplate=\"group\">\n <div class=\"flex align-items-center\">\n <span class=\"font-bold ml-2\">{{ option.value }}</span>\n </div>\n </ng-template>\n\n <ng-template let-data pTemplate=\"selectedItem\">\n <div class=\"flex align-items-center gap-2\" *ngIf=\"data\">\n <div>{{ data?.[oiKey] }}</div>\n </div>\n </ng-template>\n\n <ng-template let-option pTemplate=\"item\">\n <div class=\"flex\">\n <i *ngIf=\"option.icon\" [ngClass]=\"option.icon\" class=\"mr-1\"></i>\n <div>\n {{ option?.value }}\n </div>\n </div>\n </ng-template>\n </p-dropdown>\n <phoenix-inline-field-error\n *ngIf=\"!control?.hidden\"\n [ctrl]=\"ctrl\"\n ></phoenix-inline-field-error>\n `,\n styles: [],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MetaSingleSelectObjectBasedComponent),\n multi: true,\n },\n ],\n})\nexport class MetaSingleSelectObjectBasedComponent extends BaseMetaField {\n public oiKey: string = 'value';\n\n onDateClear() {\n this.parentForm.controls[this.control.configuration.key].setValue(null);\n }\n\n constructor() {\n super();\n this.changeSubs$ = this.changeSub\n .asObservable()\n .pipe(\n debounceTime(500),\n switchMap((item) => {\n return of(item);\n })\n )\n .subscribe((trigg: boolean) => {\n if (trigg) {\n this.changes();\n }\n });\n }\n\n ngOnInit(): void {\n this.changes();\n }\n\n changes(): void {\n let soi = this.control.configuration.options?.[0];\n\n ///set default property on options items for metaform model\n if (!this.parentForm.get(this.control.configuration.key)?.value) {\n this.control.configuration.options?.forEach((o: any, i: number) => {\n /////standardize DEFAULT VALUES for OptionItems THROGH METAFORMS. remove this conditions\n if (o.update?.default || o.default) {\n soi = this.control.configuration.options[i];\n this.parentForm.get(this.control.configuration.key)?.setValue(soi);\n }\n });\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, forwardRef, inject } from '@angular/core';\nimport { DropdownModule } from 'primeng/dropdown';\n\nimport {\n FormsModule,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n} from '@angular/forms';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { ImageModule } from 'primeng/image';\nimport { debounceTime, of, switchMap } from 'rxjs';\nimport { MetaLabelComponent } from '../../meta-field-label/meta-label.component';\nimport { BaseMetaField } from '../../utils/base-meta-field';\nimport { InlineFieldError } from '../../meta-field-error/inline-field-error.component';\nimport { TranslateDropdownData } from '../../utils/translate-dropdown-data.pipe';\n\n@Component({\n selector: 'phoenix-meta-single-select',\n standalone: true,\n imports: [\n CommonModule,\n ReactiveFormsModule,\n DropdownModule,\n MetaLabelComponent,\n FormsModule,\n TranslateModule,\n TranslateDropdownData,\n ImageModule,\n InlineFieldError,\n ],\n template: `\n <phoenix-meta-label [control]=\"control\"></phoenix-meta-label>\n <p-dropdown\n [attr.data-cy]=\"'single-select-' + control?.id\"\n [hidden]=\"control?.hidden\"\n filterBy=\"userFriendlyMessage\"\n [optionLabel]=\"oiKey ? oiKey : 'labelKeyValEn'\"\n [options]=\"\n control.configuration.options\n | translateDropdownData : (oiKey ? oiKey : 'labelKeyValEn')\n \"\n [showClear]=\"control.configuration?.showClear\"\n [(ngModel)]=\"value\"\n [style]=\"{ width: '100%' }\"\n [disabled]=\"disable || control?.disable\"\n [filter]=\"control.configuration?.filter\"\n [group]=\"control.configuration.group\"\n (onClear)=\"onDateClear()\"\n (onChange)=\"onChanged(value)\"\n [panelStyle]=\"{ width: '100%' }\"\n appendTo=\"body\"\n >\n <ng-template let-option pTemplate=\"group\">\n <div class=\"flex align-items-center\">\n <i [class]=\"option.icon\"></i>\n <span class=\"font-bold ml-2\">{{ option.label }}</span>\n </div>\n </ng-template>\n\n <ng-template let-data pTemplate=\"selectedItem\">\n <div class=\"flex align-items-center gap-2\" *ngIf=\"data\">\n <img\n *ngIf=\"data?.image\"\n alt=\"icon\"\n [src]=\"data.image\"\n height=\"17\"\n width=\"20\"\n />\n <div>\n {{ data?.[oiKey] ? data?.[oiKey] : data?.['labelKeyValEn'] }}\n </div>\n </div>\n </ng-template>\n\n <ng-template let-option pTemplate=\"item\">\n <div class=\"flex\">\n <i *ngIf=\"option.icon\" [ngClass]=\"option.icon\" class=\"mr-1\"></i>\n <p-image\n *ngIf=\"option?.image\"\n class=\"ml-2 mr-2\"\n alt=\"icon\"\n [src]=\"option.image\"\n height=\"20\"\n width=\"20\"\n ></p-image>\n <div>\n {{ option?.[oiKey] ? option?.[oiKey] : option?.['labelKeyValEn'] }}\n </div>\n </div>\n </ng-template>\n </p-dropdown>\n <phoenix-inline-field-error\n *ngIf=\"!control?.hidden\"\n [ctrl]=\"ctrl\"\n ></phoenix-inline-field-error>\n `,\n styles: [],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MetaSingleSelectComponent),\n multi: true,\n },\n ],\n})\nexport class MetaSingleSelectComponent extends BaseMetaField {\n public oiKey!: string;\n ///this should be in localstorage. better than calling for this and for label\n private translateService = inject(TranslateService);\n onDateClear() {\n this.parentForm.controls[this.control.configuration.key].setValue(null);\n }\n\n constructor() {\n super();\n this.changeSubs$ = this.changeSub\n .asObservable()\n .pipe(\n debounceTime(500),\n switchMap((item) => {\n return of(item);\n })\n )\n .subscribe((trigg: boolean) => {\n if (trigg) {\n this.changes();\n }\n });\n }\n\n ngOnInit(): void {\n this.changes();\n }\n\n changes(): void {\n this.oiKey = 'userFriendlyMessage';\n const currentLang = this.translateService.currentLang;\n let soi = this.control.configuration.options?.[0];\n // /NP-2690 if only one option item and if its mandatory\n if (\n this.control.mandatory &&\n this.control.configuration.options.length === 1\n ) {\n this.parentForm\n .get(this.control.configuration.key)\n ?.setValue(this.control.configuration.options[0]);\n }\n ///set default property on options items for metaform model\n if (!this.parentForm.get(this.control.configuration.key)?.value) {\n this.control.configuration.options?.forEach((o: any, i: number) => {\n /////standardize DEFAULT VALUES for OptionItems THROGH METAFORMS. remove this conditions\n if (o.update?.default || o.default) {\n soi = this.control.configuration.options[i];\n this.parentForm.get(this.control.configuration.key)?.setValue(soi);\n }\n });\n }\n\n if (soi?.labelKeyValEn) {\n //This creates something like this labelKeyValDe,labelKeyValSr,labelKeyValEn\n this.oiKey =\n 'labelKeyVal' +\n currentLang.charAt(0).toUpperCase() +\n currentLang.slice(1);\n return;\n }\n\n if (soi?.userFriendlyMessage) {\n this.oiKey = 'userFriendlyMessage';\n\n return;\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, forwardRef, Input } from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n FormControl,\n FormGroup,\n FormsModule,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n} from '@angular/forms';\nimport { CalendarModule } from 'primeng/calendar';\nimport { InlineFieldError } from '../../meta-field-error/inline-field-error.component';\nimport { MetaLabelComponent } from '../../meta-field-label/meta-label.component';\nimport { TranslateModule } from '@ngx-translate/core';\n\n@Component({\n selector: 'phoenix-meta-start-due-date',\n standalone: true,\n imports: [\n CommonModule,\n CalendarModule,\n InlineFieldError,\n ReactiveFormsModule,\n FormsModule,\n MetaLabelComponent,\n TranslateModule,\n ],\n template: `\n <div [hidden]=\"control?.hidden\">\n <phoenix-meta-label [control]=\"control\"></phoenix-meta-label>\n <div class=\"flex\">\n <div class=\"flex-grow-1\">\n <p-calendar\n [attr.data-cy]=\"'start-date-' + control?.id\"\n (onSelect)=\"onStartDateSelect($event)\"\n (onClearClick)=\"onStartDateClear()\"\n [style]=\"{ width: '100%' }\"\n [(ngModel)]=\"startDate\"\n [readonlyInput]=\"true\"\n [showButtonBar]=\"true\"\n [showIcon]=\"true\"\n [placeholder]=\"'MEASURE_CREATE_DIALOG.PLANNED_START' | translate\"\n appendTo=\"body\"\n ></p-calendar>\n </div>\n <div class=\" flex align-items-center p-2 \">\n <i\n class=\"pi pi-arrow-right text-sm\"\n style=\"color: 'var(--surface-600)'\"\n ></i>\n </div>\n <div class=\"flex-grow-1\">\n <p-calendar\n [attr.data-cy]=\"'due-date-' + control?.id\"\n (onSelect)=\"onEndDateSelect($event)\"\n (onClearClick)=\"onEndDateClear()\"\n [style]=\"{ width: '100%' }\"\n [(ngModel)]=\"endDate\"\n [readonlyInput]=\"true\"\n [showButtonBar]=\"true\"\n [showIcon]=\"true\"\n [placeholder]=\"'MEASURE_CREATE_DIALOG.PLANNED_END' | translate\"\n appendTo=\"body\"\n ></p-calendar>\n </div>\n </div>\n <phoenix-inline-field-error [ctrl]=\"ctrl\"></phoenix-inline-field-error>\n </div>\n `,\n styles: [``],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MetaStartDueDateComponent),\n multi: true,\n },\n ],\n})\nexport class MetaStartDueDateComponent implements ControlValueAccessor {\n @Input() control: any;\n @Input() parentForm!: FormGroup;\n ctrl: any;\n\n startDate?: any;\n endDate?: any;\n public onChanged!: (value: any) => void;\n public onTouched!: () => void;\n\n constructor() {}\n\n ngOnInit() {\n this.ctrl = this.parentForm.get(this.control.configuration.key);\n this.ctrl = this.parentForm.get(this.control.configuration.key);\n\n if (this.control.mandatory) this.ctrl.setValidators(this.ctrl.validator);\n\n this.parentForm\n .get(this.control.configuration.key)\n ?.valueChanges.subscribe(r => {\n this.validateDates();\n });\n\n this.validateDates();\n }\n\n writeValue(obj: any): void {\n if (obj) {\n this.startDate = obj.startDate;\n this.endDate = obj.endDate;\n } else {\n this.startDate = null;\n this.endDate = null;\n }\n }\n\n // Handle start date selection\n onStartDateSelect(event: any) {\n this.startDate = event;\n this.onChanged({ startDate: this.startDate, endDate: this.endDate });\n this.validateDates();\n }\n\n // Handle end date selection\n onEndDateSelect(event: any) {\n this.endDate = event;\n this.onChanged({ startDate: this.startDate, endDate: this.endDate });\n this.validateDates();\n }\n\n // Handle start date clear value\n onStartDateClear() {\n this.startDate = null;\n this.onChanged({ startDate: this.startDate, endDate: this.endDate });\n this.validateDates();\n }\n\n // Handle end date clear value\n onEndDateClear() {\n this.endDate = null;\n this.onChanged({ startDate: this.startDate, endDate: this.endDate });\n this.validateDates();\n }\n\n validateDates() {\n //Both dates are mandatory\n if (this.control.mandatory && (!this.startDate || !this.endDate)) {\n this.parentForm\n .get(this.control.configuration.key)\n ?.setErrors({ required: true });\n } else {\n this.parentForm.get(this.control.configuration.key)?.setErrors(null);\n }\n\n // End date must be after start date\n if (\n this.startDate &&\n this.endDate &&\n this.startDate.setHours(0, 0, 0, 0) > this.endDate.setHours(0, 0, 0, 0)\n ) {\n this.parentForm\n .get(this.control.configuration.key)\n ?.setErrors({ dueDate: true });\n }\n\n //TBD: Scenario if only one date is mandatory\n }\n\n registerOnChange(fn: (value: any) => void): void {\n this.onChanged = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, forwardRef } from '@angular/core';\nimport {\n FormsModule,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n} from '@angular/forms';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { InputSwitchModule } from 'primeng/inputswitch';\nimport { InlineFieldError } from '../../meta-field-error/inline-field-error.component';\nimport { MetaLabelComponent } from '../../meta-field-label/meta-label.component';\nimport { BaseMetaField } from '../../utils/base-meta-field';\n\n@Component({\n selector: 'phoenix-meta-switch',\n standalone: true,\n imports: [\n CommonModule,\n ReactiveFormsModule,\n InlineFieldError,\n MetaLabelComponent,\n TranslateModule,\n InputSwitchModule,\n FormsModule,\n ],\n template: `\n <div>\n <phoenix-meta-label [control]=\"control\"></phoenix-meta-label>\n <p-inputSwitch\n [attr.data-cy]=\"'switch-' + control?.id\"\n class=\"ml-1 mr-1\"\n [hidden]=\"control?.hidden\"\n [(ngModel)]=\"value\"\n (onChange)=\"onChanged(value)\"\n [disabled]=\"disable\"\n ></p-inputSwitch>\n <phoenix-inline-field-error\n *ngIf=\"!control?.hidden\"\n [ctrl]=\"ctrl\"\n ></phoenix-inline-field-error>\n </div>\n `,\n styles: [\n `\n :host::ng-deep {\n .p-inputswitch {\n margin-top: 12px;\n }\n }\n `,\n ],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MetaSwitchComponent),\n multi: true,\n },\n ],\n})\nexport class MetaSwitchComponent extends BaseMetaField {}\n","import { CommonModule } from '@angular/common';\nimport { Component, forwardRef, inject } from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { TextareaModule } from 'primeng/textarea';\n\nimport { InlineFieldError } from '../../meta-field-error/inline-field-error.component';\nimport { MetaLabelComponent } from '../../meta-field-label/meta-label.component';\nimport { BaseMetaField } from '../../utils/base-meta-field';\n\n@Component({\n selector: 'phoenix-meta-text-area',\n standalone: true,\n imports: [\n CommonModule,\n FormsModule,\n TextareaModule,\n MetaLabelComponent,\n TranslateModule,\n InlineFieldError,\n ],\n template: `\n <phoenix-meta-label [control]=\"control\"></phoenix-meta-label>\n <textarea\n [attr.data-cy]=\"'text-area-' + control?.id\"\n [hidden]=\"control?.hidden\"\n [(ngModel)]=\"value\"\n (input)=\"onChanged(getInputValue($event))\"\n [disabled]=\"disable\"\n (blur)=\"onTouched()\"\n [rows]=\"5\"\n [cols]=\"30\"\n pInputTextarea\n class=\"w-full h-10rem\"\n ></textarea>\n <phoenix-inline-field-error\n *ngIf=\"!control?.hidden\"\n [ctrl]=\"ctrl\"\n ></phoenix-inline-field-error>\n `,\n styles: [],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MetaTextAreaComponent),\n multi: true,\n },\n ],\n})\nexport class MetaTextAreaComponent extends BaseMetaField {\n lang = inject(TranslateService).currentLang;\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, forwardRef } from '@angular/core';\nimport {\n FormsModule,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n} from '@angular/forms';\nimport { EditorModule } from 'primeng/editor';\nimport { InlineFieldError } from '../../meta-field-error/inline-field-error.component';\nimport { MetaLabelComponent } from '../../meta-field-label/meta-label.component';\nimport { BaseMetaField } from '../../utils/base-meta-field';\nimport { TextareaModule } from 'primeng/textarea';\n\n@Component({\n selector: 'phoenix-meta-text-editor',\n standalone: true,\n imports: [\n CommonModule,\n EditorModule,\n MetaLabelComponent,\n ReactiveFormsModule,\n FormsModule,\n InlineFieldError,\n TextareaModule,\n ],\n template: `\n <div [hidden]=\"control?.hidden\">\n <phoenix-meta-label [control]=\"control\"></phoenix-meta-label>\n <p-editor\n [attr.data-cy]=\"'editor-' + control?.id\"\n [readonly]=\"disable\"\n [(ngModel)]=\"value\"\n (onTextChange)=\"onChanged(value); changeValue($event.htmlValue)\"\n (blur)=\"onTouched()\"\n [style]=\"{\n minHeight: '120px',\n height: '100%',\n }\"\n ></p-editor>\n <phoenix-inline-field-error\n *ngIf=\"!control?.hidden\"\n [ctrl]=\"ctrl\"\n ></phoenix-inline-field-error>\n </div>\n `,\n styles: [\n `\n :host::ng-deep {\n .p-editor-container .p-editor-content .ql-editor {\n min-height: 120px;\n }\n /* remove import image */\n .ql-image {\n display: none !important;\n }\n }\n `,\n ],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MetaTextEditorComponent),\n multi: true,\n },\n ],\n})\nexport class MetaTextEditorComponent extends BaseMetaField {\n changeValue(value: string) {\n this.parentForm.controls[this.control?.configuration?.key].setValue(value);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, forwardRef, inject } from '@angular/core';\nimport {\n FormsModule,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n} from '@angular/forms';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\n\nimport { InputTextModule } from 'primeng/inputtext';\nimport { KeyFilterModule } from 'primeng/keyfilter';\nimport { InlineFieldError } from '../../meta-field-error/inline-field-error.component';\nimport { MetaLabelComponent } from '../../meta-field-label/meta-label.component';\nimport { BaseMetaField } from '../../utils/base-meta-field';\n\n@Component({\n selector: 'phoenix-meta-text-input',\n standalone: true,\n imports: [\n CommonModule,\n ReactiveFormsModule,\n InputTextModule,\n InlineFieldError,\n FormsModule,\n MetaLabelComponent,\n TranslateModule,\n KeyFilterModule,\n ],\n template: `\n <div>\n <phoenix-meta-label [control]=\"control\"></phoenix-meta-label>\n <input\n [attr.data-cy]=\"'input-' + control?.id\"\n [hidden]=\"control?.hidden\"\n [(ngModel)]=\"value\"\n (input)=\"onChanged(getInputValue($event))\"\n (blur)=\"onTouched()\"\n [disabled]=\"disable\"\n type=\"text\"\n pInputText\n class=\"w-full\"\n />\n <phoenix-inline-field-error\n *ngIf=\"!control?.hidden\"\n [ctrl]=\"ctrl\"\n ></phoenix-inline-field-error>\n </div>\n `,\n styles: [``],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MetaTextInputComponent),\n multi: true,\n },\n ],\n})\nexport class MetaTextInputComponent extends BaseMetaField {\n lang = inject(TranslateService).currentLang;\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, forwardRef, inject } from '@angular/core';\nimport {\n ControlValueAccessor,\n FormGroup,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n} from '@angular/forms';\nimport { TranslateModule } from '@ngx-translate/core';\n\nimport { InputTextModule } from 'primeng/inputtext';\nimport { KeyFilterModule } from 'primeng/keyfilter';\nimport { InlineFieldError } from '../../meta-field-error/inline-field-error.component';\nimport { MetaLabelComponent } from '../../meta-field-label/meta-label.component';\n\n@Component({\n selector: 'phoenix-meta-timeperiod',\n standalone: true,\n imports: [\n CommonModule,\n ReactiveFormsModule,\n InputTextModule,\n InlineFieldError,\n MetaLabelComponent,\n TranslateModule,\n KeyFilterModule,\n ],\n template: `\n <div>\n <phoenix-meta-label [control]=\"control\"></phoenix-meta-label>\n <input\n [attr.data-cy]=\"'time-period-' + control?.id\"\n [hidden]=\"control?.hidden\"\n [value]=\"value\"\n (input)=\"onChanged(getInputValue($event))\"\n (blur)=\"onTouched()\"\n [disabled]=\"isDisabled\"\n type=\"text\"\n pInputText\n class=\"w-full\"\n />\n <phoenix-inline-field-error\n *ngIf=\"!control?.hidden\"\n [ctrl]=\"ctrl\"\n ></phoenix-inline-field-error>\n </div>\n `,\n styles: [],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MetaTimeperiodComponent),\n multi: true,\n },\n ],\n})\nexport class MetaTimeperiodComponent implements ControlValueAccessor {\n @Input() control: any;\n @Input() parentForm!: FormGroup;\n value!: string;\n ctrl: any;\n\n ngOnInit() {\n this.ctrl = this.parentForm.get(this.control.configuration.key);\n }\n\n public onChanged!: (value: string) => void;\n public onTouched!: () => void;\n public isDisabled!: boolean;\n getInputValue(event: Event): string {\n if (event.target instanceof HTMLInputElement) {\n return event.target.value;\n }\n if (event.target instanceof HTMLTextAreaElement) {\n return event.target.value;\n }\n return '';\n }\n writeValue(value: string): void {}\n registerOnChange(fn: any): void {\n this.onChanged = fn;\n }\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n setDisabledState(isDisabled: boolean) {\n this.isDisabled = isDisabled;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n ElementRef,\n ViewChild,\n forwardRef,\n inject,\n} from '@angular/core';\nimport {\n FormsModule,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n} from '@angular/forms';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { InlineFieldError } from '../../meta-field-error/inline-field-error.component';\nimport { MetaLabelComponent } from '../../meta-field-label/meta-label.component';\nimport { BaseMetaField } from '../../utils/base-meta-field';\nimport { KeyFilterModule } from 'primeng/keyfilter';\n\nimport { FileUploadModule } from 'primeng/fileupload';\nimport { ButtonModule } from 'primeng/button';\n\n@Component({\n selector: 'phoenix-meta-upload',\n standalone: true,\n imports: [\n CommonModule,\n ReactiveFormsModule,\n InputTextModule,\n InlineFieldError,\n FormsModule,\n MetaLabelComponent,\n TranslateModule,\n KeyFilterModule,\n\n FileUploadModule,\n ButtonModule,\n ],\n template: `\n <div>\n <phoenix-meta-label [control]=\"control\"></phoenix-meta-label>\n <p-button\n [label]=\"\n file?.name\n ? ('LABELS.SELECTED_FILE' | translate) + ': ' + file?.name\n : (control?.configuration?.label | translate)\n \"\n icon=\"pi pi-upload\"\n class=\" white-space-nowrap overflow-hidden text-overflow-ellipsis\"\n (click)=\"triggerFileInput()\"\n [text]=\"true\"\n />\n\n <input\n [attr.data-cy]=\"'upload-' + control?.id\"\n #fileInput\n [accept]=\"control?.configuration?.accept\"\n id=\"file-upload\"\n [hidden]=\"control?.hidden\"\n [(ngModel)]=\"value\"\n (input)=\"onChanged(this.fileChange($event))\"\n (blur)=\"onTouched()\"\n [disabled]=\"disable\"\n [pKeyFilter]=\"\"\n type=\"file\"\n pInputText\n class=\"w-full\"\n />\n <phoenix-inline-field-error\n *ngIf=\"!control?.hidden\"\n [ctrl]=\"ctrl\"\n ></phoenix-inline-field-error>\n </div>\n `,\n styles: [\n `\n input[type='file'] {\n display: none;\n }\n `,\n ],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MetaUploadComponent),\n multi: true,\n },\n ],\n})\nexport class MetaUploadComponent extends BaseMetaField {\n @ViewChild('fileInput') fileInput!: ElementRef;\n\n lang = inject(TranslateService).currentLang;\n file: any;\n fileChange(event: any) {\n this.file = event.target.files[0];\n return this.file;\n }\n\n triggerFileInput() {\n this.fileInput.nativeElement.click();\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'fieldCol',\n standalone: true,\n})\nexport class FieldColPipe implements PipeTransform {\n transform(value: any, ...args: unknown[]): string {\n if (value.style) {\n return `col-${value.style.colWidth} `;\n } else {\n return 'col-12';\n }\n }\n}\n","export enum GlobalPhase {\n SC_PHASE = 'sc',\n RA_PHASE = 'ra',\n PRA_PHASE = 'pra',\n IA_PHASE = 'ia',\n GAP_PHASE = 'gap',\n ADMINISTRATION_PHASE = 'administration',\n WF_PHASE = 'workflow',\n REPORT_PHASE = 'reporting',\n MY_TASKS = 'my-tasks',\n ALL_TASKS = 'all-tasks',\n TASKBOARD = 'taskboards',\n SPACES = 'spaces',\n CATALOG = 'catalog',\n CATEGORIES = 'categories',\n DASHBOARD = 'dashboard',\n MONITORING = 'monitoring',\n RISK_OVERVIEW = 'RISK_OVERVIEW',\n}\n","export class SoTypes {\n static readonly COMPL_APPLIED_MODULE = 'COMPL_APPLIED_MODULE';\n static readonly COMPL_APPLIED_MEASURE = 'COMPL_APPLIED_MEASURE';\n static readonly COMPL_APPLIED_REQUIREMENT = 'COMPL_APPLIED_REQUIREMENT';\n static readonly COMPL_APPLIED_THREAT = 'COMPL_APPLIED_THREAT';\n static readonly COMPL_APPLIED_RISK = 'COMPL_APPLIED_RISK';\n static readonly COMPL_APPLIED_CONTROL = 'COMPL_APPLIED_CONTROL';\n\n static resolveUrlType(typeLabelKey: SoTypes | string) {\n switch (typeLabelKey) {\n case SoTypes.COMPL_APPLIED_MODULE:\n return SoTypesString.MODULES;\n case SoTypes.COMPL_APPLIED_CONTROL:\n return SoTypesString.CONTROLS;\n case SoTypes.COMPL_APPLIED_REQUIREMENT:\n return SoTypesString.REQUIREMENTS;\n case SoTypes.COMPL_APPLIED_MEASURE:\n return SoTypesString.MEASURES;\n case SoTypes.COMPL_APPLIED_THREAT:\n return SoTypesString.THREATS;\n case SoTypes.COMPL_APPLIED_RISK:\n return SoTypesString.RISKS;\n case 'COMPL_RISK_OBJECT':\n return SoTypesString.RISKS;\n default:\n return SoTypesString.MODULES;\n }\n }\n\n static resolveUrlTypeByString(stringType: SoTypesString | string) {\n switch (stringType) {\n case SoTypesString.MODULES:\n return SoTypes.COMPL_APPLIED_MODULE;\n case SoTypesString.CONTROLS:\n return SoTypes.COMPL_APPLIED_CONTROL;\n case SoTypesString.REQUIREMENTS:\n return SoTypes.COMPL_APPLIED_REQUIREMENT;\n case SoTypesString.MEASURES:\n return SoTypes.COMPL_APPLIED_MEASURE;\n case SoTypesString.THREATS:\n return SoTypes.COMPL_APPLIED_THREAT;\n case SoTypesString.RISKS:\n return SoTypes.COMPL_APPLIED_RISK;\n default:\n return SoTypes.COMPL_APPLIED_MODULE;\n }\n }\n}\n\nexport enum SoTypesString {\n MODULES = 'modules',\n REQUIREMENTS = 'requirements',\n MEASURES = 'measures',\n THREATS = 'threats',\n RISKS = 'risks',\n VULNERABILITIES = 'vulnerabilities',\n DAMAGE_SCENARIO = 'damagescenarios',\n RISK_TREATMENT = 'risktreatments',\n CONTROLS = 'controls',\n ADDITIONAL_MEASURES = 'additionalmeasures',\n}\n","import {\n AfterViewInit,\n Component,\n DestroyRef,\n Input,\n OnInit,\n} from '@angular/core';\nimport { CommonModule, DatePipe } from '@angular/common';\nimport { MetaLabelComponent } from '../../meta-field-label/meta-label.component';\nimport { FormGroup, FormsModule } from '@angular/forms';\nimport { DomSanitizer } from '@angular/platform-browser';\n\nimport { InputSwitchModule } from 'primeng/inputswitch';\n// import { SerachCardComponent } from '@phoenix/ui/ui-common';\n// import { DateFormatService } from '@phoenix/service/common';\nimport { takeUntilDestroyed, toSignal } from '@angular/core/rxjs-interop';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { distinctUntilChanged } from 'rxjs';\nimport { PasswordModule } from 'primeng/password';\nimport { SelectButtonModule } from 'primeng/selectbutton';\nimport { EditorModule } from 'primeng/editor';\n\n// import { SearchResult } from '@phoenix/model-meta';\n// import { EnvService } from '@phoenix/environment';\n// import { TransformAttributeTypesService } from '@phoenix/service/isms';\nimport { OverlayPanelModule } from 'primeng/overlaypanel';\nimport { PanelModule } from 'primeng/panel';\nimport { ButtonModule } from 'primeng/button';\nimport { GlobalPhase } from '../../utils/global-phase.utils';\nimport { SoTypes } from '../../utils/so-types';\nimport { getLanguageParam } from '../../utils/lang.utils';\nimport { ControlType } from '../../utils/control-type.enum';\n\n@Component({\n selector: 'phoenix-read-only-input',\n standalone: true,\n imports: [\n CommonModule,\n MetaLabelComponent,\n InputSwitchModule,\n FormsModule,\n // SerachCardComponent,\n CheckboxModule,\n PasswordModule,\n TranslateModule,\n SelectButtonModule,\n EditorModule,\n OverlayPanelModule,\n PanelModule,\n ButtonModule,\n ],\n templateUrl: './read-only-input.component.html',\n styleUrls: ['./read-only-input.component.scss'],\n})\nexport class ReadOnlyInputComponent implements OnInit, AfterViewInit {\n @Input() control: any;\n @Input() metaform!: FormGroup;\n value!: any;\n ctrlType = ControlType;\n\n constructor(\n private sanitizer: DomSanitizer,\n private translateService: TranslateService,\n private dr: DestroyRef // private envService: EnvService, // private transformAtService: TransformAttributeTypesService\n ) {}\n\n ngAfterViewInit(): void {\n this.metaform\n .get(this.control.configuration.key)\n ?.valueChanges.pipe(takeUntilDestroyed(this.dr), distinctUntilChanged())\n .subscribe(() => {\n this.setData();\n });\n }\n\n ngOnInit() {\n this.setData();\n }\n\n selectEvent(data: any): void {\n // let url: string;\n // const phase = this.resolvePhase(data.type.labelKey);\n // switch (phase) {\n // case GlobalPhase.IA_PHASE:\n // url = `${this.envService.baseServerUrl}isms/${phase}/${data.scopes[0].uuid}/${data.type.labelKey}/${data.uuid}`;\n // break;\n // case 'CVE':\n // url = `${this.envService.baseServerUrl}assm/configuration/cv/${data.name}`;\n // break;\n // default:\n // url = `${this.envService.baseServerUrl}isms/${phase}/${\n // data.scopes[0].uuid\n // }/${data.togType}/${data.asset.uuid}/${SoTypes.resolveUrlType(\n // data.type.labelKey\n // )}/${data.uuid}`;\n // break;\n // }\n // window.open(url, '_blank');\n }\n\n resolvePhase(type: string) {\n switch (type) {\n case SoTypes.COMPL_APPLIED_THREAT:\n case SoTypes.COMPL_APPLIED_MEASURE:\n case SoTypes.COMPL_APPLIED_MODULE:\n case SoTypes.COMPL_APPLIED_REQUIREMENT:\n case SoTypes.COMPL_APPLIED_CONTROL:\n return GlobalPhase.SC_PHASE;\n case SoTypes.COMPL_APPLIED_THREAT:\n case 'COMPL_RISK_OBJECT':\n return GlobalPhase.RA_PHASE;\n case 'CVE':\n return 'CVE';\n default:\n return GlobalPhase.IA_PHASE;\n }\n }\n\n setData(): void {\n switch (this.control.configuration.type) {\n case ControlType.SS_OPTION:\n const currentLang = this.translateService.currentLang;\n const data = this.metaform.get(this.control.configuration.key)?.value;\n if (data?.labelKeyValEn) {\n this.value = getLanguageParam(data, currentLang, 'labelKeyVal');\n return;\n }\n this.value = data?.userFriendlyMessage;\n break;\n case ControlType.MS_OPTION:\n const values = this.metaform.get(this.control.configuration.key)?.value;\n this.value = values.map((v: any) => v.userFriendlyMessage);\n\n break;\n\n case ControlType.DATE:\n this.value = this.metaform.get(this.control.configuration.key)?.value;\n break;\n\n case ControlType.LINKS_DATA:\n this.value = this.control?.data?.task?.links;\n break;\n\n case ControlType.TIMEPERIOD:\n const formValue = this.metaform.get(\n this.control.configuration.key\n )?.value;\n const convertedValue = '';\n // typeof formValue === 'string'\n // ? formValue\n // : this.transformAtService.fromMS(formValue);\n\n this.value = convertedValue;\n break;\n\n case ControlType.TEXT_EDITOR:\n const htmlContent = this.metaform.get(\n this.control.configuration.key\n )?.value;\n if (htmlContent?.replace(/<\\/?[^>]+(>|$)/g, '')) {\n this.value = htmlContent;\n } else {\n this.value = null;\n }\n break;\n case ControlType.SWITCH:\n this.value = {\n isBoolean:\n typeof this.metaform.get(this.control.configuration.key)?.value ===\n 'boolean',\n res: this.metaform.get(this.control.configuration.key)?.value,\n };\n break;\n default:\n this.value = this.metaform.get(this.control.configuration.key)?.value;\n break;\n }\n }\n}\n","<phoenix-meta-label [control]=\"control\"></phoenix-meta-label>\n\n<ng-container [ngSwitch]=\"control.configuration.type\">\n <ng-container *ngSwitchCase=\"ctrlType.TEXT_EDITOR\">\n <p-editor\n [attr.data-cy]=\"'editor-' + control?.id\"\n *ngIf=\"value; else fallBack\"\n [readonly]=\"true\"\n [(ngModel)]=\"value\"\n ></p-editor>\n </ng-container>\n <ng-container *ngSwitchCase=\"ctrlType.SWITCH\">\n <p-inputSwitch\n [attr.data-cy]=\"'switch-' + control?.id\"\n *ngIf=\"value?.isBoolean; else fallBack\"\n styleClass=\"mt-2 ml-1 mr-1\"\n [disabled]=\"true\"\n [(ngModel)]=\"value.res\"\n ></p-inputSwitch>\n </ng-container>\n <ng-container *ngSwitchCase=\"ctrlType.DATE\">\n <div\n [attr.data-cy]=\"'date-' + control?.id\"\n *ngIf=\"value; else fallBack\"\n class=\"font-semibold text-500 mt-3 mb-2\"\n >\n {{ value | date }}\n </div>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"ctrlType.CHECKBOX\">\n <p-checkbox\n [attr.data-cy]=\"'checkbox-' + control?.id\"\n *ngIf=\"value; else fallBack\"\n styleClass=\"mt-3\"\n [(ngModel)]=\"value\"\n [binary]=\"true\"\n inputId=\"binary\"\n [disabled]=\"true\"\n ></p-checkbox>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"ctrlType.LINKS_DATA\">\n <div\n *ngIf=\"value; else fallBack\"\n class=\"font-semibold text-500 mt-3 mb-2 overflow-y-auto\"\n [attr.data-cy]=\"'link-' + control?.id\"\n >\n <ng-container *ngFor=\"let item of value\">\n <span class=\"m-2 text-sm font-light\">{{ item?.relationLabel }}</span>\n <!-- <ng-container *ngFor=\"let link of item?.objects\">\n <phoenix-serach-card\n [readOnly]=\"true\"\n [data]=\"link\"\n [deleteButton]=\"false\"\n (selectEvent)=\"selectEvent($event)\"\n />\n </ng-container> -->\n </ng-container>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"ctrlType.ASSIGN\">\n <div\n *ngIf=\"value?.name; else fallBack\"\n [attr.data-cy]=\"'number-' + control?.id\"\n >\n <div>\n <p-button [rounded]=\"true\" [text]=\"true\" (onClick)=\"op.toggle($event)\">\n <div class=\"person-wrap\">\n <div class=\"person-avatar\">\n {{ value?.name?.toUpperCase().charAt(0) }}\n </div>\n <div>\n <p\n class=\"white-space-nowrap overflow-hidden text-overflow-ellipsis\"\n >\n {{ value?.name }}\n </p>\n <p\n class=\"white-space-nowrap overflow-hidden text-overflow-ellipsis\"\n >\n {{ value?.function }}\n </p>\n </div>\n </div></p-button\n >\n <p-overlayPanel #op>\n <div>\n <span class=\"block mb-2\">\n <i class=\"pi pi-envelope mr-1 text-500\"></i>\n\n {{ value.email ?? \" --\" }}\n </span>\n <p>\n <i class=\"pi pi-phone mr-1 text-500\"></i\n >{{ value.phone ?? \" --\" }}\n </p>\n </div></p-overlayPanel\n >\n </div>\n\n <!-- <div class=\"person-wrap\">\n <div class=\"person-avatar\">\n {{ value?.name?.toUpperCase().charAt(0) }}\n </div>\n <div class=\"font-semibold text-500\">\n <p>\n {{ value?.name }}\n </p>\n <p>\n {{ value?.function }}\n </p>\n </div>\n </div> -->\n </div>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"ctrlType.PASSWORD\">\n <div\n [attr.data-cy]=\"'password-' + control?.id\"\n *ngIf=\"value; else fallBack\"\n class=\"font-semibold text-500 mt-3 mb-2\"\n >\n <p-password\n class=\"ng-invalid ng-dirty\"\n [disabled]=\"true\"\n [(ngModel)]=\"value\"\n [feedback]=\"false\"\n ></p-password>\n </div>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"ctrlType.SS_OPTION_OBJECT_BASED\">\n <div\n [attr.data-cy]=\"'SS-OPTION-OBJECT-BASED-' + control?.id\"\n *ngIf=\"value; else fallBack\"\n class=\"font-semibold text-500 mt-3 mb-2\"\n >\n {{ value.value }}\n </div>\n </ng-container>\n\n <!-- Remove this if necessary - spaces-overview GENERAL form contol -->\n <ng-container *ngSwitchCase=\"ctrlType.SS_OPTION\">\n <div\n [attr.data-cy]=\"'SS-OPTION-' + control?.id\"\n *ngIf=\"value; else fallBack\"\n class=\"font-semibold text-500 mt-3 mb-2\"\n >\n {{ value | translate }}\n </div>\n </ng-container>\n\n <ng-container *ngSwitchDefault>\n <div\n [attr.data-cy]=\"'test-' + control?.id\"\n *ngIf=\"value; else fallBack\"\n class=\"font-semibold text-500 mt-3 mb-2\"\n >\n {{ value }}\n </div>\n </ng-container>\n</ng-container>\n\n<ng-template #fallBack>\n <div\n [attr.data-cy]=\"'test-' + control?.id\"\n class=\"font-semibold text-500 mt-3 mb-2\"\n >\n --\n </div>\n</ng-template>\n\n<!-- <ng-container *ngFor=\"let link of item?.objects\">\n <phoenix-serach-card\n [data]=\"link\"\n (removeButtonEvent)=\"\n onLinkRemove(link.name, item.relationLabelKey)\n \"\n [deleteButton]=\"true\"\n />\n </ng-container> -->\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n OnChanges,\n OnDestroy,\n SimpleChanges,\n ViewEncapsulation,\n} from '@angular/core';\nimport { FormBuilder, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { ButtonModule } from 'primeng/button';\nimport { CalendarModule } from 'primeng/calendar';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { MultiSelectModule } from 'primeng/multiselect';\n///Meta Fields\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { EditorModule } from 'primeng/editor';\nimport { PanelModule } from 'primeng/panel';\nimport { MetaFormAbstract } from './meta-form-abstract';\nimport { MetaAssignResponsibleComponent } from './meta-form-fields/meta-assign-responsible/meta-assign-responsible.component';\nimport { MetaCalendarComponent } from './meta-form-fields/meta-calendar/meta-calendar.component';\nimport { MetaCheckboxColorPickerComponent } from './meta-form-fields/meta-checkbox-color-picker/meta-checkbox-color-picker.component';\nimport { MetaCheckboxComponent } from './meta-form-fields/meta-checkbox/meta-checkbox.component';\nimport { MetaColorPickerComponent } from './meta-form-fields/meta-color-picker/meta-color-picker.component';\nimport { MetaCurrencyComponent } from './meta-form-fields/meta-currency/meta-currency.component';\nimport { MetaMultipleSelectComponent } from './meta-form-fields/meta-multiple-select/meta-multiple-select.component';\nimport { MetaNumberComponent } from './meta-form-fields/meta-number-input/meta-number-input.component';\nimport { MetaPasswordFeildComponent } from './meta-form-fields/meta-password-feild/meta-password-feild.component';\nimport { MetaSelectButtonComponent } from './meta-form-fields/meta-select-button/meta-select-button.component';\nimport { MetaSingleSelectObjectBasedComponent } from './meta-form-fields/meta-single-select-object-based/meta-single-select-object_based.component';\nimport { MetaSingleSelectComponent } from './meta-form-fields/meta-single-select/meta-single-select.component';\nimport { MetaStartDueDateComponent } from './meta-form-fields/meta-start-due-date/meta-start-due-date.component';\nimport { MetaSwitchComponent } from './meta-form-fields/meta-switch/meta-switch.component';\nimport { MetaTextAreaComponent } from './meta-form-fields/meta-text-area/meta-text-area.component';\nimport { MetaTextEditorComponent } from './meta-form-fields/meta-text-editor/meta-text-editor.component';\nimport { MetaTextInputComponent } from './meta-form-fields/meta-text-input/meta-text-input.component';\nimport { MetaTimeperiodComponent } from './meta-form-fields/meta-timeperiod/meta-timeperiod.component';\nimport { MetaUploadComponent } from './meta-form-fields/meta-upload/meta-upload.component';\nimport { FieldColPipe } from './utils/field-col.pipe';\nimport { MetaFormService } from './services/meta-form.service';\nimport { HttpClient } from '@angular/common/http';\nimport { ControlType } from './utils/control-type.enum';\nimport { ReadOnlyInputComponent } from './meta-form-templates/read-only-input/read-only-input.component';\n\n@Component({\n selector: 'phoenix-meta-form',\n standalone: true,\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n InputTextModule,\n InputTextModule,\n CalendarModule,\n DropdownModule,\n ButtonModule,\n MultiSelectModule,\n TranslateModule,\n CheckboxModule,\n EditorModule,\n FieldColPipe,\n //metafields -> to one module and than import here\n MetaTextEditorComponent,\n MetaCheckboxComponent,\n MetaTextInputComponent,\n MetaSingleSelectComponent,\n MetaStartDueDateComponent,\n MetaTextAreaComponent,\n MetaTextEditorComponent,\n MetaMultipleSelectComponent,\n MetaCalendarComponent,\n\n MetaSwitchComponent,\n MetaPasswordFeildComponent,\n MetaTimeperiodComponent,\n MetaCurrencyComponent,\n MetaNumberComponent,\n MetaAssignResponsibleComponent,\n MetaColorPickerComponent,\n PanelModule,\n ReadOnlyInputComponent,\n MetaSelectButtonComponent,\n MetaUploadComponent,\n MetaSingleSelectObjectBasedComponent,\n MetaCheckboxColorPickerComponent,\n ],\n templateUrl: './meta-form.component.html',\n styleUrls: ['./meta-form.component.scss'],\n //changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class MetaFormComponent extends MetaFormAbstract implements OnChanges {\n constructor(\n fb: FormBuilder,\n metaService: MetaFormService,\n\n translateService: TranslateService,\n http: HttpClient\n // env: EnvService\n ) {\n super(fb, metaService, translateService, http);\n }\n\n public ControlType = ControlType;\n optionLabel!: string;\n\n ngOnChanges(simpleChanges: SimpleChanges): void {\n ///set dirty only when metaform changes, not others from simplechanges\n ///optimize this. check what is needed for creating form\n\n if (\n simpleChanges?.['metaFormControls'] ||\n simpleChanges?.['metaFormValues'] ||\n simpleChanges?.['metaForm']\n ) {\n this.createForm(this.metaFormControls);\n this.metaService.setFormDirtyStatus(this.metaForm.dirty);\n }\n }\n}\n","<form [formGroup]=\"metaForm\" (ngSubmit)=\"onSubmit()\">\n <!-- <small>{{ metaForm.value | json }}</small> -->\n <div class=\"grid\">\n <ng-container *ngFor=\"let control of metaFormControls\">\n <ng-container [ngSwitch]=\"control.configuration.type\">\n <div\n [style]=\"{ order: control.order }\"\n *ngSwitchCase=\"ControlType.TEXT\"\n [ngClass]=\"control?.hidden ? 'p-0' : (control | fieldCol)\"\n class=\"flex flex-column\"\n [attr.data-cy]=\"'text-' + control?.id\"\n >\n <!-- edit field & redonly field content -->\n <ng-container *ngIf=\"control.readOnly; else readOnly\">\n <phoenix-read-only-input\n *ngIf=\"!control?.hidden\"\n [control]=\"control\"\n [metaform]=\"metaForm\"\n ></phoenix-read-only-input>\n </ng-container>\n <ng-template #readOnly>\n <phoenix-meta-text-input\n [disable]=\"disableForm\"\n [formControlName]=\"control.configuration.key\"\n [control]=\"control\"\n [parentForm]=\"metaForm\"\n >\n </phoenix-meta-text-input>\n </ng-template>\n <!-- edit field & redonly field content end -->\n </div>\n\n <div\n [style]=\"{ order: control.order }\"\n *ngSwitchCase=\"ControlType.NUMBER\"\n [ngClass]=\"control?.hidden ? 'p-0' : (control | fieldCol)\"\n class=\"flex flex-column\"\n [attr.data-cy]=\"'number-' + control?.id\"\n >\n <!-- edit field & redonly field content -->\n <ng-container *ngIf=\"control.readOnly; else readOnly\">\n <phoenix-read-only-input\n *ngIf=\"!control?.hidden\"\n [control]=\"control\"\n [metaform]=\"metaForm\"\n ></phoenix-read-only-input>\n </ng-container>\n <ng-template #readOnly>\n <phoenix-meta-number-input\n [disable]=\"disableForm\"\n [formControlName]=\"control.configuration.key\"\n [control]=\"control\"\n [parentForm]=\"metaForm\"\n >\n </phoenix-meta-number-input>\n </ng-template>\n <!-- edit field & redonly field content end -->\n </div>\n\n <div\n [style]=\"{ order: control.order }\"\n *ngSwitchCase=\"ControlType.TIMEPERIOD\"\n [ngClass]=\"control?.hidden ? 'p-0' : (control | fieldCol)\"\n class=\"flex flex-column\"\n [attr.data-cy]=\"'timeperiod-' + control?.id\"\n >\n <!-- edit field & redonly field content -->\n <ng-container *ngIf=\"control.readOnly; else readOnly\">\n <phoenix-read-only-input\n *ngIf=\"!control?.hidden\"\n [control]=\"control\"\n [metaform]=\"metaForm\"\n ></phoenix-read-only-input>\n </ng-container>\n <ng-template #readOnly>\n <phoenix-meta-timeperiod\n [formControlName]=\"control.configuration.key\"\n [control]=\"control\"\n [parentForm]=\"metaForm\"\n >\n </phoenix-meta-timeperiod>\n </ng-template>\n <!-- edit field & redonly field content end -->\n </div>\n <div\n [style]=\"{ order: control.order }\"\n *ngSwitchCase=\"ControlType.CURRENCY\"\n [ngClass]=\"control?.hidden ? 'p-0' : (control | fieldCol)\"\n class=\"flex flex-column\"\n [attr.data-cy]=\"'currency-' + control?.id\"\n >\n <!-- edit field & redonly field content -->\n <ng-container *ngIf=\"control.readOnly; else readOnly\">\n <phoenix-read-only-input\n *ngIf=\"!control?.hidden\"\n [control]=\"control\"\n [metaform]=\"metaForm\"\n ></phoenix-read-only-input>\n </ng-container>\n <ng-template #readOnly>\n <phoenix-meta-currency\n [disable]=\"disableForm\"\n [formControlName]=\"control.configuration.key\"\n [control]=\"control\"\n [parentForm]=\"metaForm\"\n >\n </phoenix-meta-currency>\n </ng-template>\n <!-- edit field & redonly field content end -->\n </div>\n\n <div\n [style]=\"{ order: control.order }\"\n *ngSwitchCase=\"ControlType.TEXT_AREA\"\n [ngClass]=\"control?.hidden ? 'p-0' : (control | fieldCol)\"\n class=\"flex flex-column\"\n [attr.data-cy]=\"'text-area-' + control?.id\"\n >\n <!-- edit field & redonly field content -->\n <ng-container *ngIf=\"control.readOnly; else readOnly\">\n <phoenix-read-only-input\n *ngIf=\"!control?.hidden\"\n [control]=\"control\"\n [metaform]=\"metaForm\"\n ></phoenix-read-only-input>\n </ng-container>\n <ng-template #readOnly>\n <phoenix-meta-text-area\n [disable]=\"disableForm\"\n [formControlName]=\"control.configuration.key\"\n [control]=\"control\"\n [parentForm]=\"metaForm\"\n ></phoenix-meta-text-area>\n </ng-template>\n <!-- edit field & redonly field content end -->\n </div>\n\n <div\n [style]=\"{ order: control.order }\"\n *ngSwitchCase=\"ControlType.SS_OPTION\"\n [ngClass]=\"control?.hidden ? 'p-0' : (control | fieldCol)\"\n class=\"flex flex-column\"\n [attr.data-cy]=\"'ss-option-' + control?.id\"\n >\n <!-- edit field & redonly field content -->\n <ng-container *ngIf=\"control.readOnly; else readOnly\">\n <phoenix-read-only-input\n *ngIf=\"!control?.hidden\"\n [control]=\"control\"\n [metaform]=\"metaForm\"\n ></phoenix-read-only-input>\n </ng-container>\n <ng-template #readOnly>\n <phoenix-meta-single-select\n [disable]=\"disableForm\"\n [formControlName]=\"control.configuration.key\"\n [control]=\"control\"\n [parentForm]=\"metaForm\"\n ></phoenix-meta-single-select>\n </ng-template>\n <!-- edit field & redonly field content end -->\n </div>\n\n <div\n [style]=\"{ order: control.order }\"\n *ngSwitchCase=\"ControlType.SS_OPTION_OBJECT_BASED\"\n [ngClass]=\"control?.hidden ? 'p-0' : (control | fieldCol)\"\n class=\"flex flex-column\"\n [attr.data-cy]=\"'ss-option-object-based-' + control?.id\"\n >\n <!-- edit field & redonly field content -->\n <ng-container *ngIf=\"control.readOnly; else readOnly\">\n <phoenix-read-only-input\n *ngIf=\"!control?.hidden\"\n [control]=\"control\"\n [metaform]=\"metaForm\"\n ></phoenix-read-only-input>\n </ng-container>\n <ng-template #readOnly>\n <phoenix-meta-single-select-object-based\n [disable]=\"disableForm\"\n [formControlName]=\"control.configuration.key\"\n [control]=\"control\"\n [parentForm]=\"metaForm\"\n ></phoenix-meta-single-select-object-based>\n </ng-template>\n <!-- edit field & redonly field content end -->\n </div>\n\n <div\n [style]=\"{ order: control.order }\"\n *ngSwitchCase=\"ControlType.MS_OPTION\"\n [ngClass]=\"control?.hidden ? 'p-0' : (control | fieldCol)\"\n class=\"flex flex-column\"\n [attr.data-cy]=\"'ms-option-' + control?.id\"\n >\n <!-- edit field & redonly field content -->\n <ng-container *ngIf=\"control.readOnly; else readOnly\">\n <phoenix-read-only-input\n *ngIf=\"!control?.hidden\"\n [control]=\"control\"\n [metaform]=\"metaForm\"\n ></phoenix-read-only-input>\n </ng-container>\n <ng-template #readOnly>\n <phoenix-meta-multiple-select\n [attr.data-cy]=\"'multiSelect-' + control?.id\"\n [disable]=\"disableForm\"\n [formControlName]=\"control.configuration.key\"\n [control]=\"control\"\n [parentForm]=\"metaForm\"\n ></phoenix-meta-multiple-select>\n </ng-template>\n <!-- edit field & redonly field content end -->\n </div>\n\n <div\n [style]=\"{ order: control.order }\"\n *ngSwitchCase=\"ControlType.START_DUE_DATE\"\n [ngClass]=\"control?.hidden ? 'p-0' : (control | fieldCol)\"\n class=\"flex flex-column\"\n [attr.data-cy]=\"'start-due-date-' + control?.id\"\n >\n <!-- edit field & redonly field content -->\n <ng-container *ngIf=\"control.readOnly; else readOnly\">\n <phoenix-read-only-input\n *ngIf=\"!control?.hidden\"\n [control]=\"control\"\n [metaform]=\"metaForm\"\n ></phoenix-read-only-input>\n </ng-container>\n <ng-template #readOnly>\n <phoenix-meta-start-due-date\n [formControlName]=\"control.configuration.key\"\n [control]=\"control\"\n [parentForm]=\"metaForm\"\n >\n </phoenix-meta-start-due-date>\n </ng-template>\n <!-- edit field & redonly field content end -->\n </div>\n\n <div\n [style]=\"{ order: control.order }\"\n *ngSwitchCase=\"ControlType.DATE\"\n [ngClass]=\"control?.hidden ? 'p-0' : (control | fieldCol)\"\n class=\"flex flex-column\"\n [attr.data-cy]=\"'date-' + control?.id\"\n >\n <!-- edit field & redonly field content -->\n <ng-container *ngIf=\"control.readOnly; else readOnly\">\n <phoenix-read-only-input\n *ngIf=\"!control?.hidden\"\n [control]=\"control\"\n [metaform]=\"metaForm\"\n ></phoenix-read-only-input>\n </ng-container>\n <ng-template #readOnly>\n <phoenix-meta-calendar\n [disable]=\"disableForm\"\n [formControlName]=\"control.configuration.key\"\n [control]=\"control\"\n [parentForm]=\"metaForm\"\n ></phoenix-meta-calendar>\n </ng-template>\n <!-- edit field & redonly field content end -->\n </div>\n\n <div\n [style]=\"{ order: control.order }\"\n *ngSwitchCase=\"ControlType.TEXT_EDITOR\"\n [ngClass]=\"control?.hidden ? 'p-0' : (control | fieldCol)\"\n class=\"flex flex-column\"\n [attr.data-cy]=\"'text-editor-' + control?.id\"\n >\n <!-- edit field & redonly field content -->\n <ng-container *ngIf=\"control.readOnly; else readOnly\">\n <phoenix-read-only-input\n *ngIf=\"!control?.hidden\"\n [control]=\"control\"\n [metaform]=\"metaForm\"\n ></phoenix-read-only-input>\n </ng-container>\n <ng-template #readOnly>\n <phoenix-meta-text-editor\n [disable]=\"disableForm\"\n [formControlName]=\"control.configuration.key\"\n [control]=\"control\"\n [parentForm]=\"metaForm\"\n ></phoenix-meta-text-editor>\n </ng-template>\n <!-- edit field & redonly field content end -->\n </div>\n\n <div\n [style]=\"{ order: control.order }\"\n *ngSwitchCase=\"ControlType.CHECKBOX\"\n [ngClass]=\"control?.hidden ? 'p-0' : (control | fieldCol)\"\n class=\"flex flex-column justify-content-end\"\n [attr.data-cy]=\"'checkbox-' + control?.id\"\n >\n <!-- edit field & redonly field content -->\n <ng-container *ngIf=\"control.readOnly; else readOnly\">\n <phoenix-read-only-input\n *ngIf=\"!control?.hidden\"\n [control]=\"control\"\n [metaform]=\"metaForm\"\n ></phoenix-read-only-input>\n </ng-container>\n <ng-template #readOnly>\n <phoenix-meta-checkbox\n [disable]=\"disableForm\"\n [formControlName]=\"control.configuration.key\"\n [control]=\"control\"\n [parentForm]=\"metaForm\"\n ></phoenix-meta-checkbox>\n </ng-template>\n <!-- edit field & redonly field content end -->\n </div>\n\n <div\n [style]=\"{ order: control.order }\"\n *ngSwitchCase=\"ControlType.CHECKBOX_COLOR\"\n [ngClass]=\"control?.hidden ? 'p-0' : (control | fieldCol)\"\n class=\"flex flex-column justify-content-end\"\n [attr.data-cy]=\"'CHECKBOX_COLOR-' + control?.id\"\n >\n <!-- edit field & redonly field content -->\n <ng-container *ngIf=\"control.readOnly; else readOnly\">\n <phoenix-read-only-input\n *ngIf=\"!control?.hidden\"\n [control]=\"control\"\n [metaform]=\"metaForm\"\n ></phoenix-read-only-input>\n </ng-container>\n <ng-template #readOnly>\n <phoenix-meta-checkbox-color-picker\n [disable]=\"disableForm\"\n [formControlName]=\"control.configuration.key\"\n [control]=\"control\"\n [parentForm]=\"metaForm\"\n ></phoenix-meta-checkbox-color-picker>\n </ng-template>\n <!-- edit field & redonly field content end -->\n </div>\n\n <div\n [style]=\"{ order: control.order }\"\n *ngSwitchCase=\"ControlType.SWITCH\"\n [ngClass]=\"control?.hidden ? 'p-0' : (control | fieldCol)\"\n class=\"flex flex-column\"\n [attr.data-cy]=\"'switch-' + control?.id\"\n >\n <!-- edit field & redonly field content -->\n <ng-container *ngIf=\"control.readOnly; else readOnly\">\n <phoenix-read-only-input\n *ngIf=\"!control?.hidden\"\n [control]=\"control\"\n [metaform]=\"metaForm\"\n ></phoenix-read-only-input>\n </ng-container>\n <ng-template #readOnly>\n <phoenix-meta-switch\n [disable]=\"disableForm\"\n [formControlName]=\"control.configuration.key\"\n [control]=\"control\"\n [parentForm]=\"metaForm\"\n ></phoenix-meta-switch>\n </ng-template>\n <!-- edit field & redonly field content end -->\n </div>\n\n <div\n [style]=\"{ order: control.order }\"\n *ngSwitchCase=\"ControlType.SELECT_BUTTON\"\n [ngClass]=\"control?.hidden ? 'p-0' : (control | fieldCol)\"\n class=\"flex flex-column\"\n [attr.data-cy]=\"'select-button-' + control?.id\"\n >\n <!-- edit field & redonly field content -->\n <ng-container *ngIf=\"control.readOnly; else readOnly\">\n <phoenix-read-only-input\n *ngIf=\"!control?.hidden\"\n [control]=\"control\"\n [metaform]=\"metaForm\"\n ></phoenix-read-only-input>\n </ng-container>\n <ng-template #readOnly>\n <phoenix-meta-select-button\n [disable]=\"disableForm\"\n [formControlName]=\"control.configuration.key\"\n [control]=\"control\"\n [parentForm]=\"metaForm\"\n ></phoenix-meta-select-button>\n </ng-template>\n <!-- edit field & redonly field content end -->\n </div>\n\n <div\n [style]=\"{ order: control.order }\"\n *ngSwitchCase=\"ControlType.ASSIGN\"\n [ngClass]=\"control?.hidden ? 'p-0' : (control | fieldCol)\"\n class=\"flex flex-column\"\n [attr.data-cy]=\"'assign-' + control?.id\"\n >\n <!-- edit field & redonly field content -->\n <ng-container *ngIf=\"control.readOnly; else readOnly\">\n <phoenix-read-only-input\n *ngIf=\"!control?.hidden\"\n [control]=\"control\"\n [metaform]=\"metaForm\"\n ></phoenix-read-only-input>\n </ng-container>\n <ng-template #readOnly>\n <phoenix-meta-assign-responsible\n [disable]=\"disableForm\"\n [formControlName]=\"control.configuration.key\"\n [control]=\"control\"\n [parentForm]=\"metaForm\"\n >\n </phoenix-meta-assign-responsible>\n </ng-template>\n <!-- edit field & redonly field content end -->\n </div>\n\n <div\n [style]=\"{ order: control.order }\"\n *ngSwitchCase=\"ControlType.LINKS_DATA\"\n [ngClass]=\"control | fieldCol\"\n class=\"flex flex-column\"\n [attr.data-cy]=\"'links-' + control?.id\"\n >\n <!-- edit field & redonly field content -->\n <ng-container *ngIf=\"control.readOnly; else readOnly\">\n <phoenix-read-only-input\n *ngIf=\"!control?.hidden\"\n [control]=\"control\"\n [metaform]=\"metaForm\"\n ></phoenix-read-only-input>\n </ng-container>\n <ng-template #readOnly>\n <!-- <phoenix-meta-object-links\n [formControlName]=\"control.configuration.key\"\n [control]=\"control\"\n [parentForm]=\"metaForm\"\n ></phoenix-meta-object-links> -->\n </ng-template>\n <!-- edit field & redonly field content end -->\n </div>\n\n <div\n [style]=\"{ order: control.order }\"\n *ngSwitchCase=\"ControlType.PASSWORD\"\n [ngClass]=\"control?.hidden ? 'p-0' : (control | fieldCol)\"\n class=\"flex flex-column\"\n [attr.data-cy]=\"'password-' + control?.id\"\n >\n <!-- edit field & redonly field content -->\n <ng-container *ngIf=\"control.readOnly; else readOnly\">\n <phoenix-read-only-input\n *ngIf=\"!control?.hidden\"\n [control]=\"control\"\n [metaform]=\"metaForm\"\n ></phoenix-read-only-input>\n </ng-container>\n <ng-template #readOnly>\n <phoenix-meta-password-feild\n [disable]=\"disableForm\"\n [formControlName]=\"control.configuration.key\"\n [control]=\"control\"\n [parentForm]=\"metaForm\"\n ></phoenix-meta-password-feild>\n </ng-template>\n <!-- edit field & redonly field content end -->\n </div>\n\n <div\n [style]=\"{ order: control.order }\"\n *ngSwitchCase=\"ControlType.COLOR\"\n [ngClass]=\"control?.hidden ? 'p-0' : (control | fieldCol)\"\n class=\"flex flex-column\"\n [attr.data-cy]=\"'color-' + control?.id\"\n >\n <!-- edit field & redonly field content -->\n <ng-container *ngIf=\"control.readOnly; else readOnly\">\n <phoenix-read-only-input\n *ngIf=\"!control?.hidden\"\n [control]=\"control\"\n [metaform]=\"metaForm\"\n ></phoenix-read-only-input>\n </ng-container>\n <ng-template #readOnly>\n <phoenix-meta-color-picker\n [disable]=\"disableForm\"\n [formControlName]=\"control.configuration.key\"\n [control]=\"control\"\n [parentForm]=\"metaForm\"\n >\n </phoenix-meta-color-picker>\n </ng-template>\n <!-- edit field & redonly field content end -->\n </div>\n\n <div\n [style]=\"{ order: control.order }\"\n *ngSwitchCase=\"ControlType.UPLOAD\"\n [attr.data-cy]=\"'upload-' + control?.id\"\n [ngClass]=\"control?.hidden ? 'p-0' : (control | fieldCol)\"\n class=\"flex flex-column\"\n >\n <!-- edit field & redonly field content -->\n <ng-container *ngIf=\"control.readOnly; else readOnly\">\n <phoenix-read-only-input\n *ngIf=\"!control?.hidden\"\n [control]=\"control\"\n [metaform]=\"metaForm\"\n ></phoenix-read-only-input>\n </ng-container>\n <ng-template #readOnly>\n <phoenix-meta-upload\n [disable]=\"disableForm\"\n [formControlName]=\"control.configuration.key\"\n [control]=\"control\"\n [parentForm]=\"metaForm\"\n >\n </phoenix-meta-upload>\n </ng-template>\n <!-- edit field & redonly field content end -->\n </div>\n <ng-content\n *ngSwitchCase=\"ControlType.SLOT\"\n [select]=\"[control.configuration.key]\"\n ></ng-content>\n </ng-container>\n </ng-container>\n </div>\n <div *ngIf=\"formButtons\" class=\"flex justify-content-end\">\n <p-button\n class=\"mr-1\"\n [disabled]=\"!metaForm.valid || disableForm\"\n type=\"submit\"\n label=\"{{ 'ACTION.SAVE' | translate }}\"\n [attr.data-cy]=\"'submit-button'\"\n ></p-button>\n <p-button\n [disabled]=\"disableForm\"\n styleClass=\"p-button-link\"\n [text]=\"true\"\n (onClick)=\"onCancel()\"\n label=\"{{ 'ACTION.CANCEL' | translate }}\"\n [attr.data-cy]=\"'cancel-button'\"\n ></p-button>\n </div>\n</form>\n","import {\n Component,\n EventEmitter,\n input,\n Input,\n model,\n OnDestroy,\n OnInit,\n Output,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ButtonModule } from 'primeng/button';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { FormsModule } from '@angular/forms';\nimport { Observable, combineLatest, Subscription } from 'rxjs';\nimport { MetaFormService } from '../services/meta-form.service';\n\n@Component({\n selector: 'phoenix-meta-form-buttons',\n standalone: true,\n imports: [\n CommonModule,\n ButtonModule,\n TranslateModule,\n CheckboxModule,\n FormsModule,\n ],\n templateUrl: './meta-form-buttons.component.html',\n styleUrls: ['./meta-form-buttons.component.scss'],\n providers: [],\n})\nexport class MetaFormButtonsComponent implements OnInit, OnDestroy {\n isDisabled = input<boolean>();\n isCreateAnother = input<boolean>(false);\n isLoading = input<boolean>(false);\n\n @Output() handleSave = new EventEmitter<any>();\n @Output() handleCancel = new EventEmitter<any>();\n\n display!: boolean;\n formActive$!: Observable<boolean>;\n createAnother!: boolean;\n sub$!: Subscription;\n\n constructor(private metaFormService: MetaFormService) {\n this.formActive$ = this.metaFormService.formReadOnlyState;\n }\n ngOnInit(): void {\n this.sub$ = combineLatest([\n this.metaFormService.currentFormTabContent,\n this.metaFormService.formReadOnlyState,\n ]).subscribe((r) => {\n let [formTabContent, formReadOnlyStatus] = r;\n if (formTabContent === 'FORM' && !formReadOnlyStatus) {\n this.display = true;\n } else {\n this.display = false;\n }\n });\n }\n\n ngOnDestroy(): void {\n this.sub$?.unsubscribe();\n }\n}\n","<!-- <ng-template *ngIf=\"formActive$ | async as formState\" pTemplate=\"footer\">\n <div *ngIf=\"!formState\" class=\"flex justify-content-end p-2\"> -->\n<div *ngIf=\"display\" class=\"flex justify-content-end p-2\">\n <p-checkbox\n *ngIf=\"isCreateAnother()\"\n id=\"dialog-buttons-checkbox\"\n data-cy=\"dialog-buttons-checkbox-cy\"\n [(ngModel)]=\"createAnother\"\n [binary]=\"true\"\n inputId=\"binary\"\n class=\"mr-3\"\n ></p-checkbox>\n\n <button\n class=\"mr-2\"\n pButton\n [disabled]=\"!isDisabled()\"\n [loading]=\"isLoading()\"\n (click)=\"handleSave.emit({ isAnother: createAnother })\"\n [attr.data-cy]=\"'submit-button'\"\n >\n <span class=\"mx-1\">{{ \"ACTION.SAVE\" }}</span>\n </button>\n\n <p-button\n [text]=\"true\"\n (click)=\"handleCancel.emit('CANCEL')\"\n [attr.data-cy]=\"'cancel-button'\"\n >\n {{ \"ACTION.CANCEL\" | translate }}\n </p-button>\n</div>\n<!-- </div>\n</ng-template> -->\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n Input,\n OnChanges,\n OnInit,\n SimpleChanges,\n inject,\n} from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\n\nimport { ButtonModule } from 'primeng/button';\nimport { CalendarModule } from 'primeng/calendar';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { EditorModule } from 'primeng/editor';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { MessagesModule } from 'primeng/messages';\nimport { MultiSelectModule } from 'primeng/multiselect';\nimport { PanelModule } from 'primeng/panel';\nimport { MetaFormAbstract } from '../../meta-form-abstract';\nimport { MetaAssignResponsibleComponent } from '../../meta-form-fields/meta-assign-responsible/meta-assign-responsible.component';\nimport { MetaCalendarComponent } from '../../meta-form-fields/meta-calendar/meta-calendar.component';\nimport { MetaCheckboxComponent } from '../../meta-form-fields/meta-checkbox/meta-checkbox.component';\nimport { MetaCurrencyComponent } from '../../meta-form-fields/meta-currency/meta-currency.component';\nimport { MetaMultipleSelectComponent } from '../../meta-form-fields/meta-multiple-select/meta-multiple-select.component';\nimport { MetaNumberComponent } from '../../meta-form-fields/meta-number-input/meta-number-input.component';\nimport { MetaPasswordFeildComponent } from '../../meta-form-fields/meta-password-feild/meta-password-feild.component';\nimport { MetaSingleSelectObjectBasedComponent } from '../../meta-form-fields/meta-single-select-object-based/meta-single-select-object_based.component';\nimport { MetaSingleSelectComponent } from '../../meta-form-fields/meta-single-select/meta-single-select.component';\nimport { MetaStartDueDateComponent } from '../../meta-form-fields/meta-start-due-date/meta-start-due-date.component';\nimport { MetaSwitchComponent } from '../../meta-form-fields/meta-switch/meta-switch.component';\nimport { MetaTextAreaComponent } from '../../meta-form-fields/meta-text-area/meta-text-area.component';\nimport { MetaTextEditorComponent } from '../../meta-form-fields/meta-text-editor/meta-text-editor.component';\nimport { MetaTextInputComponent } from '../../meta-form-fields/meta-text-input/meta-text-input.component';\nimport { MetaTimeperiodComponent } from '../../meta-form-fields/meta-timeperiod/meta-timeperiod.component';\nimport { FieldColPipe } from '../../utils/field-col.pipe';\nimport { ReadOnlyInputComponent } from '../read-only-input/read-only-input.component';\nimport { ControlType } from '../../utils/control-type.enum';\nimport { AccordionModule } from 'primeng/accordion';\n\n@Component({\n selector: 'phoenix-groups-form',\n standalone: true,\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n InputTextModule,\n // InputTextareaModule,\n CalendarModule,\n DropdownModule,\n ButtonModule,\n MultiSelectModule,\n TranslateModule,\n CheckboxModule,\n EditorModule,\n FieldColPipe,\n MetaTextEditorComponent,\n MetaCheckboxComponent,\n MetaTextInputComponent,\n MetaSingleSelectComponent,\n MetaStartDueDateComponent,\n MetaTextAreaComponent,\n MetaTextEditorComponent,\n MetaMultipleSelectComponent,\n MetaCalendarComponent,\n AccordionModule,\n // MetaObjectLinksComponent,\n MetaSwitchComponent,\n MetaPasswordFeildComponent,\n MetaTimeperiodComponent,\n MetaCurrencyComponent,\n MetaNumberComponent,\n MetaAssignResponsibleComponent,\n PanelModule,\n ReadOnlyInputComponent,\n MessagesModule,\n MetaSingleSelectObjectBasedComponent,\n ],\n templateUrl: './groups-form.component.html',\n styleUrls: ['./groups-form.component.css'],\n})\nexport class GroupsFormComponent extends MetaFormAbstract implements OnChanges {\n @Input() activePanelsIndex: number[] = [0, 1, 2, 3];\n public ControlType = ControlType;\n optionLabel!: string;\n notiffication?: any;\n private trans = inject(TranslateService);\n\n ngOnChanges(simpleChanges?: SimpleChanges): void {\n if (\n simpleChanges?.['metaFormControls'] ||\n simpleChanges?.['metaFormValues'] ||\n simpleChanges?.['metaForm']\n ) {\n const mergedArr = this.metaFormControls.flatMap((ob: any) => ob.ctrl);\n this.createForm(mergedArr);\n this.metaService.setFormDirtyStatus(this.metaForm.dirty);\n }\n }\n}\n","<p-accordion [multiple]=\"true\" [(value)]=\"activePanelsIndex\">\n <form *ngIf=\"metaFormControls\" [formGroup]=\"metaForm\" (ngSubmit)=\"onSubmit()\">\n @for ( group of metaFormControls; track group.groupName; let idx = $index){\n <div [style]=\"{ order: group.order }\" class=\"w-full\">\n <p-accordion-panel [value]=\"idx\">\n <p-accordion-header>\n <ng-template #toggleicon let-active=\"active\">\n @if (active) {\n <i class=\"pi pi-minus-circle\"></i>\n } @else {\n <i class=\"pi pi-plus-circle\"></i>\n\n }\n </ng-template>\n {{ group.groupName }}\n </p-accordion-header>\n <p-accordion-content>\n <div class=\"grid align-items-end\">\n <ng-container *ngFor=\"let control of group.ctrl\">\n <ng-container [ngSwitch]=\"control.configuration.type\">\n <div\n [style]=\"{ order: control.order }\"\n *ngSwitchCase=\"ControlType.TEXT\"\n [ngClass]=\"control?.hidden ? 'p-0' : (control | fieldCol)\"\n class=\"flex flex-column\"\n >\n <ng-container *ngIf=\"control.readOnly; else readOnly\">\n <phoenix-read-only-input\n [control]=\"control\"\n [metaform]=\"metaForm\"\n ></phoenix-read-only-input>\n </ng-container>\n <ng-template #readOnly>\n <phoenix-meta-text-input\n [disable]=\"disableForm\"\n [formControlName]=\"control.configuration.key\"\n [control]=\"control\"\n [parentForm]=\"metaForm\"\n >\n </phoenix-meta-text-input>\n </ng-template>\n </div>\n\n <div\n [style]=\"{ order: control.order }\"\n *ngSwitchCase=\"ControlType.NUMBER\"\n [ngClass]=\"control?.hidden ? 'p-0' : (control | fieldCol)\"\n class=\"flex flex-column\"\n >\n <ng-container *ngIf=\"control.readOnly; else readOnly\">\n <phoenix-read-only-input\n [control]=\"control\"\n [metaform]=\"metaForm\"\n ></phoenix-read-only-input>\n </ng-container>\n <ng-template #readOnly>\n <phoenix-meta-number-input\n [disable]=\"disableForm\"\n [formControlName]=\"control.configuration.key\"\n [control]=\"control\"\n [parentForm]=\"metaForm\"\n >\n </phoenix-meta-number-input>\n </ng-template>\n </div>\n\n <div\n [style]=\"{ order: control.order }\"\n *ngSwitchCase=\"ControlType.TIMEPERIOD\"\n [ngClass]=\"control?.hidden ? 'p-0' : (control | fieldCol)\"\n class=\"flex flex-column\"\n >\n <ng-container *ngIf=\"control.readOnly; else readOnly\">\n <phoenix-read-only-input\n [control]=\"control\"\n [metaform]=\"metaForm\"\n ></phoenix-read-only-input>\n </ng-container>\n <ng-template #readOnly>\n <phoenix-meta-timeperiod\n [formControlName]=\"control.configuration.key\"\n [control]=\"control\"\n [parentForm]=\"metaForm\"\n >\n </phoenix-meta-timeperiod>\n </ng-template>\n </div>\n <div\n [style]=\"{ order: control.order }\"\n *ngSwitchCase=\"ControlType.CURRENCY\"\n [ngClass]=\"control?.hidden ? 'p-0' : (control | fieldCol)\"\n class=\"flex flex-column\"\n >\n <ng-container *ngIf=\"control.readOnly; else readOnly\">\n <phoenix-read-only-input\n [control]=\"control\"\n [metaform]=\"metaForm\"\n ></phoenix-read-only-input>\n </ng-container>\n <ng-template #readOnly>\n <phoenix-meta-currency\n [disable]=\"disableForm\"\n [formControlName]=\"control.configuration.key\"\n [control]=\"control\"\n [parentForm]=\"metaForm\"\n >\n </phoenix-meta-currency>\n </ng-template>\n </div>\n\n <div\n [style]=\"{ order: control.order }\"\n *ngSwitchCase=\"ControlType.TEXT_AREA\"\n [ngClass]=\"control?.hidden ? 'p-0' : (control | fieldCol)\"\n class=\"flex flex-column\"\n >\n <ng-container *ngIf=\"control.readOnly; else readOnly\">\n <phoenix-read-only-input\n [control]=\"control\"\n [metaform]=\"metaForm\"\n ></phoenix-read-only-input>\n </ng-container>\n <ng-template #readOnly>\n <phoenix-meta-text-area\n [disable]=\"disableForm\"\n [formControlName]=\"control.configuration.key\"\n [control]=\"control\"\n [parentForm]=\"metaForm\"\n ></phoenix-meta-text-area>\n </ng-template>\n </div>\n\n <div\n [style]=\"{ order: control.order }\"\n *ngSwitchCase=\"ControlType.SS_OPTION\"\n [ngClass]=\"control?.hidden ? 'p-0' : (control | fieldCol)\"\n class=\"flex flex-column\"\n >\n <ng-container *ngIf=\"control.readOnly; else readOnly\">\n <phoenix-read-only-input\n [control]=\"control\"\n [metaform]=\"metaForm\"\n ></phoenix-read-only-input>\n </ng-container>\n <ng-template #readOnly>\n <phoenix-meta-single-select\n [disable]=\"disableForm\"\n [formControlName]=\"control.configuration.key\"\n [control]=\"control\"\n [parentForm]=\"metaForm\"\n ></phoenix-meta-single-select>\n </ng-template>\n </div>\n\n <div\n [style]=\"{ order: control.order }\"\n *ngSwitchCase=\"ControlType.SS_OPTION_OBJECT_BASED\"\n [ngClass]=\"control?.hidden ? 'p-0' : (control | fieldCol)\"\n class=\"flex flex-column\"\n >\n <!-- edit field & redonly field content -->\n <ng-container *ngIf=\"control.readOnly; else readOnly\">\n <phoenix-read-only-input\n *ngIf=\"!control?.hidden\"\n [control]=\"control\"\n [metaform]=\"metaForm\"\n ></phoenix-read-only-input>\n </ng-container>\n <ng-template #readOnly>\n <phoenix-meta-single-select-object-based\n [disable]=\"disableForm\"\n [formControlName]=\"control.configuration.key\"\n [control]=\"control\"\n [parentForm]=\"metaForm\"\n ></phoenix-meta-single-select-object-based>\n </ng-template>\n <!-- edit field & redonly field content end -->\n </div>\n\n <div\n [style]=\"{ order: control.order }\"\n *ngSwitchCase=\"ControlType.MS_OPTION\"\n [ngClass]=\"control?.hidden ? 'p-0' : (control | fieldCol)\"\n class=\"flex flex-column\"\n >\n <phoenix-meta-multiple-select\n [disable]=\"disableForm\"\n [formControlName]=\"control.configuration.key\"\n [control]=\"control\"\n [parentForm]=\"metaForm\"\n ></phoenix-meta-multiple-select>\n </div>\n\n <div\n [style]=\"{ order: control.order }\"\n *ngSwitchCase=\"ControlType.START_DUE_DATE\"\n [ngClass]=\"control?.hidden ? 'p-0' : (control | fieldCol)\"\n class=\"flex flex-column\"\n >\n <ng-container *ngIf=\"control.readOnly; else readOnly\">\n <phoenix-read-only-input\n [control]=\"control\"\n [metaform]=\"metaForm\"\n ></phoenix-read-only-input>\n </ng-container>\n <ng-template #readOnly>\n <phoenix-meta-start-due-date\n [formControlName]=\"control.configuration.key\"\n [control]=\"control\"\n [parentForm]=\"metaForm\"\n >\n </phoenix-meta-start-due-date>\n </ng-template>\n </div>\n\n <div\n [style]=\"{ order: control.order }\"\n *ngSwitchCase=\"ControlType.DATE\"\n [ngClass]=\"control?.hidden ? 'p-0' : (control | fieldCol)\"\n class=\"flex flex-column\"\n >\n <ng-container *ngIf=\"control.readOnly; else readOnly\">\n <phoenix-read-only-input\n [control]=\"control\"\n [metaform]=\"metaForm\"\n ></phoenix-read-only-input>\n </ng-container>\n <ng-template #readOnly>\n <phoenix-meta-calendar\n [disable]=\"disableForm\"\n [formControlName]=\"control.configuration.key\"\n [control]=\"control\"\n [parentForm]=\"metaForm\"\n ></phoenix-meta-calendar>\n </ng-template>\n </div>\n\n <div\n [style]=\"{ order: control.order }\"\n *ngSwitchCase=\"ControlType.TEXT_EDITOR\"\n [ngClass]=\"control?.hidden ? 'p-0' : (control | fieldCol)\"\n class=\"flex flex-column\"\n >\n <ng-container *ngIf=\"control.readOnly; else readOnly\">\n <phoenix-read-only-input\n [control]=\"control\"\n [metaform]=\"metaForm\"\n ></phoenix-read-only-input>\n </ng-container>\n <ng-template #readOnly>\n <phoenix-meta-text-editor\n [disable]=\"disableForm\"\n [formControlName]=\"control.configuration.key\"\n [control]=\"control\"\n [parentForm]=\"metaForm\"\n ></phoenix-meta-text-editor>\n </ng-template>\n </div>\n\n <div\n [style]=\"{ order: control.order }\"\n *ngSwitchCase=\"ControlType.CHECKBOX\"\n [ngClass]=\"control?.hidden ? 'p-0' : (control | fieldCol)\"\n class=\"flex flex-column\"\n >\n <phoenix-meta-checkbox\n [disable]=\"disableForm\"\n [formControlName]=\"control.configuration.key\"\n [control]=\"control\"\n [parentForm]=\"metaForm\"\n ></phoenix-meta-checkbox>\n </div>\n\n <div\n [style]=\"{ order: control.order }\"\n *ngSwitchCase=\"ControlType.SWITCH\"\n [ngClass]=\"control?.hidden ? 'p-0' : (control | fieldCol)\"\n class=\"flex flex-column\"\n >\n <ng-container *ngIf=\"control.readOnly; else readOnly\">\n <phoenix-read-only-input\n [control]=\"control\"\n [metaform]=\"metaForm\"\n ></phoenix-read-only-input>\n </ng-container>\n <ng-template #readOnly>\n <phoenix-meta-switch\n [disable]=\"true\"\n [formControlName]=\"control.configuration.key\"\n [control]=\"control\"\n [parentForm]=\"metaForm\"\n ></phoenix-meta-switch>\n </ng-template>\n </div>\n\n <div\n [style]=\"{ order: control.order }\"\n *ngSwitchCase=\"ControlType.ASSIGN\"\n [ngClass]=\"control?.hidden ? 'p-0' : (control | fieldCol)\"\n class=\"flex flex-column\"\n >\n <ng-container *ngIf=\"control.readOnly; else readOnly\">\n <phoenix-read-only-input\n [control]=\"control\"\n [metaform]=\"metaForm\"\n ></phoenix-read-only-input>\n </ng-container>\n <ng-template #readOnly>\n <phoenix-meta-assign-responsible\n [disable]=\"disableForm\"\n [formControlName]=\"control.configuration.key\"\n [control]=\"control\"\n [parentForm]=\"metaForm\"\n >\n </phoenix-meta-assign-responsible>\n </ng-template>\n </div>\n\n <div\n [style]=\"{ order: control.order }\"\n *ngSwitchCase=\"ControlType.LINKS_DATA\"\n [ngClass]=\"control | fieldCol\"\n class=\"flex flex-column\"\n >\n <!-- <phoenix-meta-object-links\n [formControlName]=\"control.configuration.key\"\n [control]=\"control\"\n [parentForm]=\"metaForm\"\n ></phoenix-meta-object-links> -->\n </div>\n\n <div\n [style]=\"{ order: control.order }\"\n *ngSwitchCase=\"ControlType.PASSWORD\"\n [ngClass]=\"control?.hidden ? 'p-0' : (control | fieldCol)\"\n class=\"flex flex-column\"\n >\n <phoenix-meta-password-feild\n [disable]=\"disableForm\"\n [formControlName]=\"control.configuration.key\"\n [control]=\"control\"\n [parentForm]=\"metaForm\"\n ></phoenix-meta-password-feild>\n </div>\n </ng-container>\n </ng-container>\n </div>\n </p-accordion-content>\n </p-accordion-panel>\n </div>\n }\n </form>\n</p-accordion>\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'textLength',\n standalone: true,\n})\nexport class TextLength implements PipeTransform {\n /**\n * Transforms the specified text value\n * If the size of the string is greater than the limit, it returns a substring of the desired size, and adds ellipsis \"...\"\n * If the size of the string is less than the limit, it returns the original string\n * @param value\n * @param limit\n */\n\n transform(value: string, limit: number) {\n if (value?.length > limit) {\n return value.substring(0, limit) + ' ...';\n }\n return value;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'firstLetter',\n standalone: true,\n})\nexport class FirstLetterPipe implements PipeTransform {\n transform(value: string): string {\n return value.charAt(0).toUpperCase();\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, OnChanges } from '@angular/core';\nimport { TranslateModule } from '@ngx-translate/core';\n\n@Component({\n selector: 'phoenix-tag',\n standalone: true,\n imports: [CommonModule, TranslateModule],\n templateUrl: './tag.component.html',\n styleUrls: ['./tag.component.scss'],\n})\nexport class TagComponent implements OnChanges {\n @Input() key!: string;\n @Input() content!: string;\n @Input() customColor!: string;\n\n color: string | undefined;\n customStyle!: {\n 'background-color': string;\n border: string;\n color: string;\n };\n\n ngOnChanges(): void {\n if (this.customColor) {\n this.customStyle = {\n 'background-color': this.customColor,\n border: this.invertHex(this.customColor),\n color: 'white',\n //color: this.invertHex(this.customColor),\n };\n }\n }\n\n invertHex(hex: string) {\n if (hex.indexOf('#') === 0) {\n hex = hex.slice(1);\n }\n\n if (hex.length != 6) {\n console.warn('Hex color must be six hex numbers in length.');\n return '#' + hex;\n }\n\n hex = hex.toUpperCase();\n const splitNum: any = hex.split('');\n let resultNum = '';\n const simpleNum = 'FEDCBA9876'.split('');\n const complexNum: any = {\n A: '5',\n B: '4',\n C: '3',\n D: '2',\n E: '1',\n F: '0',\n };\n\n for (let i = 0; i < 6; i++) {\n if (!isNaN(Number(splitNum[i]))) {\n resultNum += simpleNum[splitNum[i]];\n } else if (complexNum[splitNum[i]]) {\n resultNum += complexNum[splitNum[i]];\n } else {\n console.warn('Hex colors must only include hex numbers 0-9, and A-F');\n return '#' + hex;\n }\n }\n\n return '#' + resultNum;\n }\n}\n","<ng-container>\n <span [class]=\"'phoenix-tag '\" [ngStyle]=\"customStyle\">\n {{ content | translate }}\n </span>\n</ng-container>\n\n<!-- class=\"text-800\" style color depends on theme -->\n","// export type StatusColType = \"LIST\" | \"TAG\" | \"DATE_LIST\" | \"DATE\" | \"STRING\" | \"ACTION\" | \"OWNER\" | \"PERSON\";\n\nexport enum StatusColType {\n TAG = 'TAG',\n STRING = 'STRING',\n PERSON = 'PERSON',\n DATE = 'DATE',\n DATE_LIST = 'DATE_LIST',\n LIST = 'LIST',\n }","import { CommonModule, DatePipe } from '@angular/common';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ImageModule } from 'primeng/image';\nimport { TooltipModule } from 'primeng/tooltip';\nimport { TextLength } from './pipes/text-length.pipe';\nimport { FirstLetterPipe } from './pipes/first-letter.pipe';\nimport { AvatarModule } from 'primeng/avatar';\nimport { PopoverModule } from 'primeng/popover';\nimport { TagComponent } from '../tag/tag.component';\nimport { StatusBarConfig } from './models/status-bar-configuration.model';\nimport { StatusColType } from './enums/status-col-type.enum';\n\n@Component({\n selector: 'phoenix-status-bar',\n standalone: true,\n templateUrl: './status-bar.component.html',\n styleUrls: ['./status-bar.component.scss'],\n imports: [\n CommonModule,\n TranslateModule,\n TooltipModule,\n ImageModule,\n AvatarModule,\n PopoverModule,\n TagComponent,\n DatePipe,\n TextLength,\n FirstLetterPipe\n ],\n})\nexport class StatusBarComponent {\n @Input() statusBarConfig!: StatusBarConfig;\n @Input() iconEnable = true;\n @Input() enableClosing = true;\n @Input() description = true;\n @Input() dateFormat = 'dd.MM.yyyy';\n\n @Output() onListItemClick = new EventEmitter<any>();\n\n isCollapsed = false;\n\n StatusColType = StatusColType;\n\n iconStyle = {\n height: 60,\n width: 60,\n };\n}","\n<p>{{ statusBarConfig.icon }}</p>\n<div class=\"surface-0\">\n <div *ngIf=\"statusBarConfig\" class=\"status-bar-wrapper\" [ngClass]=\"{ collapsed: isCollapsed }\">\n <div class=\"description flex\" *ngIf=\"description\">\n <!-- Entity icon -->\n <!-- <div *ngIf=\"iconEnable\" class=\"mr-3 flex justify-content-center align-items-center\" style=\"width: 60px; height: 60px\">\n <p-image\n [src]=\"'/assets/object_types/white/' + (statusBarConfig.icon || 'UNDEFINED') + '.svg'\"\n width=\"40\"\n height=\"40\"\n ></p-image>\n </div> -->\n <div\n class=\"type-icon flex justify-content-center align-items-center mr-3\"\n *ngIf=\"iconEnable\"\n [style.height]=\"iconStyle.height + 20 + 'px'\"\n [style.width]=\"iconStyle.width + 20 + 'px'\"\n >\n <p-image\n [src]=\"\n 'assets/object_types/white/' +\n (statusBarConfig.icon ? statusBarConfig.icon : 'UNDEFINED') +\n '.svg'\n \"\n [height]=\"iconStyle.height.toString()\"\n [width]=\"iconStyle.width.toString()\"\n ></p-image>\n </div>\n\n <!-- Descriptive data -->\n <ul>\n <li class=\"text-sm flex mb-1\" *ngFor=\"let attr of statusBarConfig.description\">\n <span class=\"text-600 mr-1\">{{ attr.label | translate }}:</span>\n <span *ngIf=\"attr.value; else empty\">\n <i *ngIf=\"attr.icon\" class=\"{{ attr.icon }} mr-1\" style=\"font-size: 0.8em\"></i>\n <ng-container [ngSwitch]=\"attr.type\">\n <span *ngSwitchCase=\"'DATE'\">{{ attr.value | date: dateFormat }}</span>\n <span *ngSwitchDefault>{{ attr.value }}</span>\n </ng-container>\n </span>\n </li>\n </ul>\n </div>\n\n <!-- Attributes -->\n <div class=\"flex flex-wrap gap-4 mt-3\" *ngIf=\"statusBarConfig.attributes?.length\">\n <div *ngFor=\"let attr of statusBarConfig.attributes\" class=\"attribute\">\n <!-- <div class=\"font-semibold\">{{ attr.label | translate }}</div> -->\n <div class=\"mt-1\">\n <ng-container [ngSwitch]=\"attr.type\">\n\n <!-- TAG -->\n <ng-container *ngSwitchCase=\"StatusColType.TAG\">\n <div class=\"attribute flex justify-content-center\">\n <div class=\"flex flex-column\">\n <div class=\"flex\">\n <span>{{ attr.label | translate }}</span>\n <i\n *ngIf=\"attr?.tooltip\"\n class=\"pi pi-info-circle text-blue-500 ml-2\"\n (mouseenter)=\"details.toggle($event)\"\n (mouseleave)=\"details.toggle($event)\"\n ></i>\n </div>\n <div *ngIf=\"attr?.value; else empty\" [style.color]=\"attr.color\" class=\"text-xl mt-2\">\n {{ attr.value }}\n </div>\n </div>\n </div>\n\n <p-popover #details>\n <ng-container *ngFor=\"let item of attr?.tooltip\">\n <div class=\"flex justify-content-between\">\n <span style=\"min-width: 100px\" class=\"m-2 text-500 font-semibold\">\n {{ item?.label }}:\n </span>\n <span style=\"min-width: 100px\" class=\"m-2 font-medium\">\n {{ item?.value }}\n </span>\n <span style=\"min-width: 100px\" class=\"ml-1 mt-2 mb-2 mr-1\">\n <phoenix-tag\n [customColor]=\"item.value1\"\n [content]=\"item.value\"\n ></phoenix-tag>\n </span>\n </div>\n </ng-container>\n </p-popover>\n </ng-container>\n\n <!-- STRING -->\n <ng-container *ngSwitchCase=\"StatusColType.STRING\">\n <div class=\"attribute\">\n <div class=\"flex flex-column\">\n <label>{{ attr.label | translate }}</label>\n <div\n *ngIf=\"attr?.value; else empty\"\n pTooltip=\"{{ attr?.value?.length > 150 ? attr.value : '' }}\"\n >\n {{ attr.value | translate | textLength: 150 }}\n </div>\n </div>\n </div>\n </ng-container>\n\n <!-- PERSON -->\n <ng-container *ngSwitchCase=\"StatusColType.PERSON\">\n <div class=\"attribute flex justify-content-center\">\n <div class=\"flex flex-column\">\n {{ attr.label | translate }}\n <div\n class=\"person-wrap\"\n *ngIf=\"attr?.value || attr?.value1; else empty\"\n >\n <div class=\"person-avatar\">\n {{ attr?.value?.charAt(0) }}\n </div>\n <div\n class=\"white-space-nowrap overflow-hidden text-overflow-ellipsis\"\n pTooltip=\"{{ attr?.value }} {{ attr?.value1 }}\"\n >\n {{ attr?.value }} {{ attr?.value1 }}\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n\n <!-- DATE -->\n <ng-container *ngSwitchCase=\"StatusColType.DATE\">\n <div class=\"attribute flex justify-content-center\">\n <div class=\"flex flex-column\">\n {{ attr.label | translate }}\n <div *ngIf=\"attr?.value; else empty\" class=\"flex align-items-center mt-2\">\n <i class=\"pi pi-calendar mr-1\"></i>\n {{ attr.value | date: dateFormat }}\n </div>\n </div>\n </div>\n </ng-container>\n\n <!-- DATE_LIST -->\n <ng-container *ngSwitchCase=\"StatusColType.DATE_LIST\">\n <div class=\"attribute\">\n <label class=\"white-space-nowrap\">{{ attr.label | translate }}</label>\n <i\n *ngIf=\"attr?.value\"\n class=\"pi pi-info-circle text-blue-500 mr-1\"\n (mouseenter)=\"overlayPanel.toggle($event)\"\n (mouseleave)=\"overlayPanel.toggle($event)\"\n ></i>\n <div *ngIf=\"attr?.value; else empty\">\n <div class=\"flex align-items-center\">\n <i class=\"pi pi-calendar mr-1\"></i>\n {{ attr.value | date: dateFormat + ' | HH:mm' }}\n </div>\n </div>\n </div>\n\n <p-popover #overlayPanel>\n <!-- Created by -->\n \n <div *ngFor=\"let item of attr.tooltip\" class=\"mb-4\">\n <div class=\"mb-2 text-600\">\n {{ item.label | translate }}\n </div>\n <div class=\"flex\">\n <div class=\"mr-2 align-self-center\">\n <p-avatar\n shape=\"circle\"\n [label]=\"item.value ? (item.value | firstLetter) : ''\"\n ></p-avatar>\n </div>\n <div>\n <div class=\"text-blue-800 font-bold\">\n {{ item.value }}\n </div>\n <div>\n {{ item.value1 | date: dateFormat + ' | HH:mm' }}\n </div>\n </div>\n </div>\n </div>\n </p-popover>\n </ng-container>\n\n <!-- LIST -->\n <ng-container *ngSwitchCase=\"StatusColType.LIST\">\n <div class=\"attribute flex justify-content-center\">\n <div>\n <label>{{ attr.label | translate }}</label>\n <ul class=\"list\" *ngIf=\"attr?.value && attr?.value?.length > 0; else empty\">\n <li\n [ngClass]=\"item?.disabled ? 'disableLinks' : ''\"\n class=\"white-space-nowrap mb-1\"\n *ngFor=\"let item of attr.value\"\n (click)=\"\n !item?.disabled ? onListItemClick.emit(item) : ''\n \"\n >\n {{ item.name | textLength: 20 }}\n <i class=\"pi pi-link\" class=\"mt-1\"></i>\n </li>\n </ul>\n </div>\n </div>\n </ng-container>\n\n </ng-container>\n </div>\n </div>\n </div>\n </div>\n\n <!-- Collapse/Expand button -->\n <div class=\"flex justify-content-center mt-2\" *ngIf=\"enableClosing\">\n <button (click)=\"isCollapsed = !isCollapsed\" class=\"p-button p-button-text\">\n <i class=\"pi\" [ngClass]=\"isCollapsed ? 'pi-angle-down' : 'pi-angle-up'\"></i>\n </button>\n </div>\n</div>\n\n<!-- Template used when a value is missing -->\n<ng-template #empty>\n <span>--</span>\n</ng-template>","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { TableComponent } from '../../data-table/table/table.component';\nimport { DrawerModule } from 'primeng/drawer';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ButtonModule } from 'primeng/button';\n\n@Component({\n selector: 'phoenix-quick-pick-sidepanel',\n imports: [\n CommonModule,\n DrawerModule,\n TableComponent,\n TranslateModule,\n ButtonModule\n ],\n templateUrl: './quick-pick-sidepanel.component.html',\n styleUrl: './quick-pick-sidepanel.component.css'\n})\nexport class QuickPickSidePanelComponent {\n @Input() title: string = 'Default Title'; // Panel title\n @Input() data: any[] = []; // Data for the table\n @Input() columns: any[] = []; // Table columns\n @Input() loading: boolean = false; // Indicates if the table is loading\n @Input() tableConfiguration: any = {}; // Table configuration\n @Input() panelState: boolean = false; // Indicates if the panel is open\n @Input() modal: boolean = false; // Modal behavior\n @Input() widthClass: string = 'w-7'; // Panel width\n @Input() isFullScreen: boolean = false; // Indicates if the panel is in fullscreen mode\n \n @Output() onRowClick = new EventEmitter<any>(); // Emits when a row in the table is clicked\n @Output() lazyLoadData = new EventEmitter<any>(); // Emits when data needs to be loaded lazily\n @Output() onClose = new EventEmitter<void>(); // Emits when the panel is closed\n\n @Output() handlePanelFullScreen = new EventEmitter(); // Emits when toggling fullscreen mode\n @Output() onCloseEvent = new EventEmitter<void>(); // Emits when the panel close event is triggered\n}\n","\n<p-drawer\n [styleClass]=\"widthClass\"\n [modal]=\"modal\"\n [(visible)]=\"panelState\"\n position=\"right\"\n [closable]=\"false\"\n>\n <ng-template pTemplate=\"header\">\n <!-- <phoenix-sidepanel-header\n [expand]=\"false\"\n [isFullScreen]=\"false\"\n [panelTitle]=\"title | translate\"\n ></phoenix-sidepanel-header> -->\n <div class=\"flex align-items-center justify-content-between\" style=\"width: 100%\">\n <p-button type=\"button\" (click)=\"handlePanelFullScreen.emit()\" [icon]=\"isFullScreen ? 'pi pi-arrow-down-right' : 'pi pi-arrow-up-left'\" rounded=\"true\" outlined=\"true\" styleClass=\"h-8 w-8\"></p-button>\n \n <span class=\"font-bold text-xl flex-grow-1\">\n {{ title }}\n </span>\n \n <button (click)=\"onCloseEvent.emit()\" pButton pRipple type=\"button\" icon=\"pi pi-times\"\n class=\"p-button-rounded p-button-text mr-2\"></button>\n </div>\n </ng-template>\n\n <ng-template pTemplate=\"content\">\n <div>\n <phoenix-table\n [data]=\"data\"\n [columns]=\"columns\"\n [tableConfiguration]=\"tableConfiguration\"\n ></phoenix-table>\n </div>\n </ng-template>\n</p-drawer>","export enum SimpleButtonType {\n REGULAR = 'regular',\n SPLIT = 'split'\n}\n\nexport type Severity =\n | 'success'\n | 'info'\n | 'warn'\n | 'danger'\n | 'help'\n | 'primary'\n | 'secondary'\n | 'contrast'\n | null\n | undefined;\n\nexport interface ActionButton {\n id?: number | string;\n label: string;\n icon?: string;\n disabled?: boolean;\n type?: SimpleButtonType;\n severity?: Severity;\n tooltip?: string;\n action?: () => void;\n splitItems?: { label: string; icon?: string; command: () => void }[];\n}","/*\n * Public API Surface of phoenix\n */\nexport * from './lib/components/sidebar/sidebar.component';\nexport * from './lib/components/topbar/topbar.component';\nexport * from './lib/components/search-bar/search-bar.component';\nexport * from './lib/components/sidebar-item/sidebar-item.component';\nexport * from './lib/components/user/user.component';\nexport * from './lib/components/status-header/status-header.component';\nexport * from './lib/components/shell/shell.component';\nexport * from './lib/components/data-table/phoenix-data-table/phoenix-data-table.component';\nexport * from './lib/components/data-table/table/table.component';\nexport * from './lib/components/meta-form/meta-form.component';\nexport * from './lib/components/meta-form/meta-form-buttons/meta-form-buttons.component';\nexport * from './lib/components/meta-form/meta-form-templates/groups-form/groups-form.component';\nexport * from './lib/components/meta-form/services/meta-form.service';\n//Status bar\nexport * from './lib/components/quick-pick/quick-pick/quick-pick.component';\nexport * from './lib/components/status-bar/status-bar.component';\nexport * from './lib/components/quick-pick/quick-pick-sidepanel/quick-pick-sidepanel.component';\nexport * from './lib/components/status-bar/models/status-attribute.model';\nexport * from './lib/components/status-bar/enums/status-col-type.enum';\nexport * from './lib/components/status-bar/models/status-bar-configuration.model';\n//model topbar\nexport * from './lib/models/shell-config.model';\nexport * from './lib/models/status.model';\n//data-table utils\nexport * from './lib/components/data-table/utils/dataTable.enum';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i4","i5","i1","i3","i6","i7","i8","i10","i15","i9","i2.MetaFormService","i1.MetaFormService"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fuentis-phoenix-ui.mjs","sources":["../../../projects/phoenix-ui/src/lib/components/sidebar-item/sidebar-item.component.ts","../../../projects/phoenix-ui/src/lib/components/sidebar/sidebar.component.ts","../../../projects/phoenix-ui/src/lib/components/sidebar/sidebar.component.html","../../../projects/phoenix-ui/src/lib/components/search-bar/search-bar.component.ts","../../../projects/phoenix-ui/src/lib/components/search-bar/search-bar.component.html","../../../projects/phoenix-ui/src/lib/components/user/user.component.ts","../../../projects/phoenix-ui/src/lib/components/topbar/topbar.component.ts","../../../projects/phoenix-ui/src/lib/components/topbar/topbar.component.html","../../../projects/phoenix-ui/src/lib/components/quick-pick/quick-pick/quick-pick.component.ts","../../../projects/phoenix-ui/src/lib/components/quick-pick/quick-pick/quick-pick.component.html","../../../projects/phoenix-ui/src/lib/components/status-header/status-header.component.ts","../../../projects/phoenix-ui/src/lib/components/status-header/status-header.component.html","../../../projects/phoenix-ui/src/lib/components/shell/shell.component.ts","../../../projects/phoenix-ui/src/lib/components/shell/shell.component.html","../../../projects/phoenix-ui/src/lib/components/data-table/utils/dataTable.enum.ts","../../../projects/phoenix-ui/src/lib/components/data-table/phoenix-data-table-action/phoenix-data-table-action.component.ts","../../../projects/phoenix-ui/src/lib/components/data-table/phoenix-data-table-action/phoenix-data-table-action.component.html","../../../projects/phoenix-ui/src/lib/components/data-table/utils/data-cell-value.pipe.ts","../../../projects/phoenix-ui/src/lib/components/data-table/utils/export-type.util.ts","../../../projects/phoenix-ui/src/lib/components/data-table/phoenix-data-table-tabs/phoenix-data-table-tabs.component.ts","../../../projects/phoenix-ui/src/lib/components/data-table/phoenix-data-table-tabs/phoenix-data-table-tabs.component.html","../../../projects/phoenix-ui/src/lib/components/data-table/phoenix-data-table/isSelected.pipe.ts","../../../projects/phoenix-ui/src/lib/components/data-table/utils/remove-html-tags.pipe.ts","../../../projects/phoenix-ui/src/lib/components/data-table/phoenix-data-table/phoenix-data-table.component.ts","../../../projects/phoenix-ui/src/lib/components/data-table/phoenix-data-table/phoenix-data-table.component.html","../../../projects/phoenix-ui/src/lib/components/data-table/table-caption/table-caption.component.ts","../../../projects/phoenix-ui/src/lib/components/data-table/table-caption/table-caption.component.html","../../../projects/phoenix-ui/src/lib/components/data-table/utils/table-cell.pipe.ts","../../../projects/phoenix-ui/src/lib/components/data-table/table/table.component.ts","../../../projects/phoenix-ui/src/lib/components/data-table/table/table.component.html","../../../projects/phoenix-ui/src/lib/components/meta-form/meta-validators/due-date/start-due-date.validator.ts","../../../projects/phoenix-ui/src/lib/components/meta-form/meta-validators/timeperiod/timeperiod.validator.ts","../../../projects/phoenix-ui/src/lib/components/meta-form/utils/control-type.enum.ts","../../../projects/phoenix-ui/src/lib/components/meta-form/utils/get-field-type.utils.ts","../../../projects/phoenix-ui/src/lib/components/meta-form/meta-validators/white-space-validator.ts","../../../projects/phoenix-ui/src/lib/components/meta-form/services/meta-form.service.ts","../../../projects/phoenix-ui/src/lib/components/meta-form/meta-form-abstract.ts","../../../projects/phoenix-ui/src/lib/components/meta-form/utils/lang.utils.ts","../../../projects/phoenix-ui/src/lib/components/meta-form/utils/field-label.pipe.ts","../../../projects/phoenix-ui/src/lib/components/meta-form/meta-field-label/meta-label.component.ts","../../../projects/phoenix-ui/src/lib/components/meta-form/meta-form-fields/meta-assign-responsible/meta-assign-responsible.component.ts","../../../projects/phoenix-ui/src/lib/components/meta-form/utils/error-type.util.ts","../../../projects/phoenix-ui/src/lib/components/meta-form/meta-field-error/inline-field-error.component.ts","../../../projects/phoenix-ui/src/lib/components/meta-form/utils/base-meta-field.ts","../../../projects/phoenix-ui/src/lib/components/meta-form/meta-form-fields/meta-calendar/meta-calendar.component.ts","../../../projects/phoenix-ui/src/lib/components/meta-form/meta-form-fields/meta-checkbox-color-picker/meta-checkbox-color-picker.component.ts","../../../projects/phoenix-ui/src/lib/components/meta-form/meta-form-fields/meta-checkbox/meta-checkbox.component.ts","../../../projects/phoenix-ui/src/lib/components/meta-form/meta-form-fields/meta-color-picker/meta-color-picker.component.ts","../../../projects/phoenix-ui/src/lib/components/meta-form/meta-form-fields/meta-currency/meta-currency.component.ts","../../../projects/phoenix-ui/src/lib/components/meta-form/meta-form-fields/meta-multiple-select/meta-multiple-select.component.ts","../../../projects/phoenix-ui/src/lib/components/meta-form/meta-form-fields/meta-number-input/meta-number-input.component.ts","../../../projects/phoenix-ui/src/lib/components/meta-form/meta-form-fields/meta-password-feild/meta-password-feild.component.ts","../../../projects/phoenix-ui/src/lib/components/meta-form/meta-form-fields/meta-select-button/meta-select-button.component.ts","../../../projects/phoenix-ui/src/lib/components/meta-form/utils/translate-dropdown-data.pipe.ts","../../../projects/phoenix-ui/src/lib/components/meta-form/meta-form-fields/meta-single-select-object-based/meta-single-select-object_based.component.ts","../../../projects/phoenix-ui/src/lib/components/meta-form/meta-form-fields/meta-single-select/meta-single-select.component.ts","../../../projects/phoenix-ui/src/lib/components/meta-form/meta-form-fields/meta-start-due-date/meta-start-due-date.component.ts","../../../projects/phoenix-ui/src/lib/components/meta-form/meta-form-fields/meta-switch/meta-switch.component.ts","../../../projects/phoenix-ui/src/lib/components/meta-form/meta-form-fields/meta-text-area/meta-text-area.component.ts","../../../projects/phoenix-ui/src/lib/components/meta-form/meta-form-fields/meta-text-editor/meta-text-editor.component.ts","../../../projects/phoenix-ui/src/lib/components/meta-form/meta-form-fields/meta-text-input/meta-text-input.component.ts","../../../projects/phoenix-ui/src/lib/components/meta-form/meta-form-fields/meta-timeperiod/meta-timeperiod.component.ts","../../../projects/phoenix-ui/src/lib/components/meta-form/meta-form-fields/meta-upload/meta-upload.component.ts","../../../projects/phoenix-ui/src/lib/components/meta-form/utils/field-col.pipe.ts","../../../projects/phoenix-ui/src/lib/components/meta-form/utils/global-phase.utils.ts","../../../projects/phoenix-ui/src/lib/components/meta-form/utils/so-types.ts","../../../projects/phoenix-ui/src/lib/components/meta-form/meta-form-templates/read-only-input/read-only-input.component.ts","../../../projects/phoenix-ui/src/lib/components/meta-form/meta-form-templates/read-only-input/read-only-input.component.html","../../../projects/phoenix-ui/src/lib/components/meta-form/meta-form.component.ts","../../../projects/phoenix-ui/src/lib/components/meta-form/meta-form.component.html","../../../projects/phoenix-ui/src/lib/components/meta-form/meta-form-buttons/meta-form-buttons.component.ts","../../../projects/phoenix-ui/src/lib/components/meta-form/meta-form-buttons/meta-form-buttons.component.html","../../../projects/phoenix-ui/src/lib/components/meta-form/meta-form-templates/groups-form/groups-form.component.ts","../../../projects/phoenix-ui/src/lib/components/meta-form/meta-form-templates/groups-form/groups-form.component.html","../../../projects/phoenix-ui/src/lib/components/status-bar/pipes/text-length.pipe.ts","../../../projects/phoenix-ui/src/lib/components/status-bar/pipes/first-letter.pipe.ts","../../../projects/phoenix-ui/src/lib/components/tag/tag.component.ts","../../../projects/phoenix-ui/src/lib/components/tag/tag.component.html","../../../projects/phoenix-ui/src/lib/components/status-bar/enums/status-col-type.enum.ts","../../../projects/phoenix-ui/src/lib/components/status-bar/status-bar.component.ts","../../../projects/phoenix-ui/src/lib/components/status-bar/status-bar.component.html","../../../projects/phoenix-ui/src/lib/components/quick-pick/quick-pick-sidepanel/quick-pick-sidepanel.component.ts","../../../projects/phoenix-ui/src/lib/components/quick-pick/quick-pick-sidepanel/quick-pick-sidepanel.component.html","../../../projects/phoenix-ui/src/lib/models/status.model.ts","../../../projects/phoenix-ui/src/public-api.ts","../../../projects/phoenix-ui/src/fuentis-phoenix-ui.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { Component, Input, ViewEncapsulation } from '@angular/core';\nimport { Router, RouterLink, RouterLinkActive } from '@angular/router';\nimport { ButtonModule } from 'primeng/button';\nimport { TranslateModule } from '@ngx-translate/core';\n\nimport { TooltipModule } from 'primeng/tooltip';\nimport { SidebarItem } from '../../models/shell-config.model';\n\n@Component({\n selector: 'pho-sidebar-item',\n standalone: true,\n styleUrl: '../../styles/global.css',\n imports: [\n CommonModule,\n ButtonModule,\n RouterLink,\n RouterLinkActive,\n TooltipModule,\n TranslateModule,\n ],\n encapsulation: ViewEncapsulation.None,\n\n template: `<li class=\"list-none\">\n <a\n [routerLink]=\"item.disabled ? null : item.path\"\n routerLinkActive=\"bg-primary-50 font-bold\"\n [pTooltip]=\"!isOpen ? item.label : ''\"\n [ngClass]=\"[\n classname,\n item.disabled ? 'opacity-50 cursor-not-allowed' : ''\n ]\"\n class=\"p-button no-underline w-full pt-2 pb-2 justify-content-start surface-0 hover:surface-100\t border-none overflow-hidden bg-transparent\"\n [style.pointer-events]=\"item.disabled ? 'none' : 'auto'\"\n >\n <img width=\"30\" [src]=\"item.icon\" alt=\"\" />\n <span *ngIf=\"isOpen\" class=\"text-primary\">{{\n item.label | translate\n }}</span>\n </a>\n <p-button\n class=\"p-tooltip\"\n pTooltip=\"Confirm to proceed\"\n showDelay=\"1000\"\n hideDelay=\"20000\"\n label=\"Save\"\n [disabled]=\"item.disabled\"\n />\n </li>`,\n})\nexport class SidebarItemComponent {\n @Input() item!: SidebarItem;\n @Input() classname: string = '';\n @Input() isOpen: boolean = true;\n\n constructor(private router: Router) {}\n}\n","import { Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';\nimport { ButtonModule } from 'primeng/button';\nimport {\n SidebarItemComponent,\n} from '../sidebar-item/sidebar-item.component';\nimport { CommonModule } from '@angular/common';\nimport { SidebarItem } from '../../models/shell-config.model';\n\n@Component({\n selector: 'pho-sidebar',\n standalone: true,\n imports: [CommonModule, ButtonModule, SidebarItemComponent],\n templateUrl: './sidebar.component.html',\n styleUrl: '../../styles/global.css',\n encapsulation: ViewEncapsulation.None\n})\nexport class SidebarComponent {\n @Output() toggleSidebar = new EventEmitter<void>();\n @Input() classname: string = '';\n\n @Input() mainItems: SidebarItem[][] = [];\n @Input() footerItem: SidebarItem[] = [];\n\n @Input() isSidebarOpen = true;\n}\n","<aside\n [attr.data-sidebar-state]=\"isSidebarOpen ? 'exanded' : 'collapsed'\"\n class=\"relative shadow-3 pt-3 h-full\"\n>\n <!-- <span\n (click)=\"toggleSidebar.emit()\"\n [style.transition]=\"'transform 0.3s ease-in-out'\"\n [style.transform]=\"isSidebarOpen ? 'rotate(180deg)' : ''\"\n style=\"right: -10px\"\n class=\"pi pi-angle-right absolute top-0 border-circle z-5 p-1 cursor-pointer bg-gray-200 hover:bg-white-alpha-50\"\n ></span> -->\n\n <div\n class=\"flex flex-column gap-2 h-full\"\n style=\"scroll-padding-bottom: 5rem\"\n >\n <div class=\"group\">\n <ul class=\"flex flex-column p-0 m-0\">\n <ng-container\n *ngFor=\"let itemGroup of mainItems; let groupIndex = index\"\n >\n <!-- One sidebar group -->\n <ng-container *ngFor=\"let subItem of itemGroup; let subIndex = index\">\n <div\n *ngIf=\"groupIndex !== 0 && subIndex === 0\"\n style=\"height: 2px\"\n class=\"my-2 surface-100\"\n ></div>\n\n <pho-sidebar-item\n [isOpen]=\"isSidebarOpen\"\n [item]=\"subItem\"\n class=\"group-item\"\n />\n </ng-container>\n </ng-container>\n </ul>\n </div>\n\n <div\n *ngIf=\"footerItem.length\"\n class=\"absolute bottom-0 left-0 flex flex-column w-full\"\n >\n <div style=\"height: 2px\" class=\"my-2 surface-100\"></div>\n\n <ul class=\"flex flex-column gap-3 mb-2 p-0 m-0\">\n @for (item of footerItem; track $index) {\n\n <pho-sidebar-item\n [isOpen]=\"isSidebarOpen\"\n [item]=\"{\n label: 'Settings',\n path: '/settings',\n icon: '/assets/settings.svg'\n }\"\n class=\"group-item\"\n />\n }\n </ul>\n </div>\n </div>\n</aside>\n","import {\n animate,\n state,\n style,\n transition,\n trigger,\n} from '@angular/animations';\nimport { CommonModule } from '@angular/common';\nimport {\n Component,\n EventEmitter,\n Input,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { IconField } from 'primeng/iconfield';\nimport { InputIcon } from 'primeng/inputicon';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { OverlayPanelModule } from 'primeng/overlaypanel';\nimport { Popover, PopoverModule } from 'primeng/popover';\nimport { TabsModule } from 'primeng/tabs';\n\n@Component({\n selector: 'pho-search-bar',\n standalone: true,\n imports: [\n IconField,\n InputIcon,\n TabsModule,\n FormsModule,\n CommonModule,\n PopoverModule,\n TranslateModule,\n InputTextModule,\n OverlayPanelModule,\n ],\n styleUrls: ['./search-bar.component.css'],\n templateUrl: './search-bar.component.html',\n animations: [\n trigger('openClose', [\n state(\n 'closed',\n style({\n width: '13vw',\n opacity: 0.8,\n })\n ),\n state(\n 'open',\n style({\n width: '50vw',\n opacity: 1,\n })\n ),\n transition('closed <=> open', [animate('300ms ease-in-out')]),\n ]),\n ],\n})\nexport class SearchBarComponent {\n isExpanded = false;\n searchQuery: string = '';\n\n @ViewChild('op') op!: Popover;\n\n @Input() expandable: boolean = true;\n @Input() placeholder: string = 'Global Search...';\n @Input() message: string = 'Start typing to see data';\n\n @Output() searchQueryChange = new EventEmitter<string>();\n\n // TODO: remove this when done\n tabIndex: number = 0;\n assetActive: boolean = false;\n ismsActive: boolean = false;\n tabChange(event: any) {\n this.tabIndex = event.index;\n }\n\n members = [\n {\n name: 'Amy Elsner',\n image: 'amyelsner.png',\n email: 'amy@email.com',\n role: 'Owner',\n },\n ];\n\n toggleExpand() {\n this.isExpanded = !this.isExpanded;\n }\n\n onInputFocus(event: Event): void {\n this.isExpanded = true;\n if (this.op) {\n this.op.show(event);\n }\n }\n\n clickInside(event: Event) {\n console.log('clickInside', event);\n }\n\n onInputBlur(event: Event): void {\n if (this.op) {\n console.log(event);\n setTimeout(() => {\n this.op.hide();\n this.isExpanded = false;\n }, 200);\n }\n }\n clickOutside(event: Event) {\n console.log('clickOutside', event);\n }\n\n onSearchQueryChange() {\n this.searchQueryChange.emit(this.searchQuery);\n }\n}\n","<p-iconfield [@openClose]=\"isExpanded ? 'open' : 'closed'\" style=\"width: 100%\">\n <p-inputicon styleClass=\"pi pi-search\" />\n <input\n pInputText\n type=\"text\"\n style=\"width: 100%\"\n [ngStyle]=\"{ 'font-size': '14px' }\"\n [(ngModel)]=\"searchQuery\"\n [placeholder]=\"placeholder\"\n (focus)=\"onInputFocus($event)\"\n (blur)=\"onInputBlur($event)\"\n />\n</p-iconfield>\n<p-popover\n #op\n [dismissable]=\"false\"\n [style]=\"{ width: '50vw' }\"\n (click)=\"clickInside($event)\"\n [showTransitionOptions]=\"'.2s ease-in'\"\n [hideTransitionOptions]=\"'.2s ease-in-out'\"\n>\n <div\n role=\"banner\"\n *ngIf=\"!searchQuery\"\n style=\"border-radius: 3px\"\n class=\"text-center text-blue-900 p-inline-message-text p-2 bg-pho-secondary\"\n >\n <i class=\"pi pi-info-circle mr-2\"></i>\n <p class=\"inline\">{{ message }}</p>\n </div>\n\n <ng-content></ng-content>\n\n <div\n *ngIf=\"searchQuery\"\n class=\"flex fit-content flex-wrap\"\n style=\"width: 100%\"\n >\n <div\n class=\"overflow-container\"\n style=\"\n overflow-y: auto;\n max-height: 70vh;\n width: 100%;\n word-wrap: break-word;\n \"\n >\n <p-tabs value=\"ISMS\">\n <p-tablist>\n <p-tab value=\"ISMS\">ISMS</p-tab>\n <p-tab value=\"BCMS\">BCMS</p-tab>\n </p-tablist>\n <p-tabpanels>\n <p-tabpanel value=\"ISMS\">\n <div>\n <h3>Isms</h3>\n <p>Searching for: {{ searchQuery }}</p>\n </div>\n </p-tabpanel>\n\n <p-tabpanel value=\"BCMS\">\n <div>\n <h3>People Results</h3>\n <p>People matching: {{ searchQuery }}</p>\n </div>\n </p-tabpanel>\n </p-tabpanels>\n </p-tabs>\n </div>\n </div>\n</p-popover>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { Avatar } from 'primeng/avatar';\nimport { Popover } from 'primeng/popover';\n\ninterface User {\n email: string;\n imageUrl?: string;\n username: string;\n}\n\n@Component({\n selector: 'pho-user',\n imports: [Avatar, Popover, TranslateModule],\n template: `\n <a\n (click)=\"op.toggle($event)\"\n class=\"layout-topbar-action flex flex-row justify-content-center align-items-center px-2 rounded-circle\"\n pRipple\n >\n <p-avatar [label]=\"user.imageUrl\" shape=\"circle\" />\n </a>\n <p-popover #op>\n <div class=\"flex gap-2 w-20rem\">\n <p-avatar label=\"U\" size=\"large\" shape=\"circle\" />\n <div class=\"flex gap-2 flex-column\">\n <div class=\"text-sm mt-auto\">{{ user.username }}</div>\n <div class=\"text-sm\">{{ user.email }}</div>\n </div>\n </div>\n\n <div\n class=\"border-top-1 border-300 flex flex-row justify-content-between mt-2 pt-2 mx-2\"\n >\n <a\n class=\"flex flex-row align-items-center cursor-pointer\"\n (click)=\"editSettings.emit()\"\n pRipple\n >\n <i class=\"pi pi-user-edit p-2\" style=\"font-size: 1.5rem\"></i>\n <span>{{ 'ACTION.EDIT_SETTINGS' | translate }}</span>\n </a>\n\n <a\n style=\"color: red\"\n class=\"flex flex-row align-items-center cursor-pointer\"\n (click)=\"logout.emit()\"\n pRipple\n >\n <i class=\"pi pi-power-off p-2\"></i>\n <span>{{ 'ACTION.LOGOUT' | translate }}</span>\n </a>\n </div>\n </p-popover>\n `,\n})\nexport class UserComponent {\n @Input() user!: User;\n @Output() logout = new EventEmitter<void>();\n @Output() editSettings = new EventEmitter<void>();\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, OnInit, ViewEncapsulation } from '@angular/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { DrawerModule } from 'primeng/drawer';\nimport { SearchBarComponent } from '../search-bar/search-bar.component';\nimport { UserComponent } from '../user/user.component';\nimport { RouterModule } from '@angular/router';\nimport { DividerModule } from 'primeng/divider';\n\nexport interface TopbarModuleItem {\n label: string;\n fullName?: string; // Opcioni, jer ne postoji kod svih modula\n icon?: string;\n url?: string;\n routerLink?: string[];\n disabled?: boolean;\n}\n\nexport interface TopbarModuleGroup {\n label: string;\n layout: 'full' | 'grid';\n showIconBackground: boolean;\n items: TopbarModuleItem[];\n}\n\nexport interface TopbarFooterConfig {\n companyName: string;\n companyUrl: string;\n guideLabel: string;\n guideUrl: string;\n copyrightText: string;\n}\n\n@Component({\n selector: 'pho-topbar',\n standalone: true,\n imports: [\n CommonModule,\n SearchBarComponent,\n UserComponent,\n TranslateModule,\n RouterModule,\n DrawerModule,\n DividerModule,\n ],\n templateUrl: './topbar.component.html',\n encapsulation: ViewEncapsulation.None,\n})\nexport class TopbarComponent {\n sidebarConfig = { visible: false, type: '' };\n currentYear: number = new Date().getFullYear();\n isSidebarVisible: boolean = false;\n\n @Input() homeUrl: string = '/';\n @Input() user!: { email: string; imageUrl?: string; username: string };\n @Input() shortModuleName?: string = 'FLEX';\n @Input() topbarModulesMenu: TopbarModuleGroup[] = [];\n @Input() footerConfig: TopbarFooterConfig = {\n companyName: 'fuentis',\n companyUrl: 'https://fuentis.com/',\n guideLabel: 'Guide',\n guideUrl: 'https://fuentis.atlassian.net/wiki/spaces/FSUG/overview',\n copyrightText:\n '© ' + new Date().getFullYear() + ' fuentis. All Rights Reserved.',\n };\n\n openSidebarPanel() {\n this.isSidebarVisible = true;\n }\n\n /** ✅ Zatvara sidebar */\n closeSidebar() {\n this.isSidebarVisible = false;\n }\n\n goToHome() {\n if (this.homeUrl) {\n window.location.href = this.homeUrl;\n }\n }\n\n get bindImageUrl(): string {\n return this.user?.imageUrl\n ? `url(${this.user.imageUrl})`\n : `url('assets/default-user.png')`;\n }\n}\n","<header\n class=\"h-full px-2 justify-content-between w-full flex items-center align-items-center shadow-1\"\n>\n <!-- Title -->\n <div class=\"flex align-items-center justify-content-center mb-2 ml-2\">\n <img class=\"h-2rem\" src=\"assets/logo_rose.png\" alt=\"fuentis_logo_white\" />\n\n <span *ngIf=\"shortModuleName\" class=\"text-3xl text-300\">|</span>\n <span class=\"text-xl text-400 mt-2\">\n {{ shortModuleName }}\n </span>\n </div>\n <!-- children -->\n <ng-content></ng-content>\n\n <div class=\"flex gap-2\">\n <!-- Search Bar -->\n <pho-search-bar></pho-search-bar>\n\n <!-- Side Panel (Opens Sidebar) -->\n <a\n class=\"layout-topbar-action flex flex-row justify-content-center align-items-center px-2 rounded-circle\"\n (click)=\"openSidebarPanel()\"\n pRipple\n >\n <i class=\"pi pi-th-large\" style=\"font-size: 1.1rem\"></i>\n </a>\n\n <!-- User Icon -->\n <pho-user [user]=\"user\" />\n </div>\n</header>\n\n<!-- Sidebar Menu -->\n<p-drawer\n styleClass=\"w-20rem\"\n position=\"right\"\n [(visible)]=\"isSidebarVisible\"\n [closable]=\"false\"\n>\n <div class=\"flex flex-column h-full\">\n <!-- Loop through module groups (e.g., 'Management Modules', 'Support') -->\n <ng-container\n *ngFor=\"let moduleGroup of topbarModulesMenu; let last = last\"\n >\n <h4 class=\"mt-5 ml-3\">{{ moduleGroup.label }}</h4>\n\n <div class=\"grid\">\n <!-- If layout is 'full', it takes up the entire row -->\n <ng-container *ngIf=\"moduleGroup.layout === 'full'\">\n <div\n *ngFor=\"let module of moduleGroup.items\"\n class=\"col-12 p-3 surface-0 hover:surface-100 cursor-pointer\"\n >\n <a\n class=\"text-primary flex align-items-center gap-3\"\n [href]=\"module.url || '#'\"\n style=\"text-decoration: none; cursor: pointer\"\n >\n <div\n class=\"w-3rem h-3rem border-round-sm flex justify-content-center align-items-center\"\n [style.backgroundColor]=\"\n moduleGroup.showIconBackground\n ? module.disabled\n ? '#ccc'\n : '#e74360'\n : 'transparent'\n \"\n >\n <img *ngIf=\"module.icon\" [src]=\"module.icon\" class=\"w-2rem\" />\n </div>\n <div>\n <h4 class=\"mb-0 mt-0\">{{ module.label }}</h4>\n <p class=\"w-11rem text-500 text-sm line-height-1 m-0\">\n {{ module.fullName || \"\" }}\n </p>\n </div>\n </a>\n </div>\n </ng-container>\n\n <!-- If layout is 'grid', modules are arranged in a 3-column grid -->\n <ng-container *ngIf=\"moduleGroup.layout === 'grid'\">\n <div\n *ngFor=\"let module of moduleGroup.items\"\n class=\"col-4 p-3 surface-0 hover:surface-100 cursor-pointer p-0 m-0\"\n >\n <a\n class=\"text-primary flex flex-column align-items-center gap-2\"\n [href]=\"module.url || '#'\"\n style=\"text-decoration: none; cursor: pointer\"\n >\n <div\n class=\"w-4rem border-round-sm flex justify-content-center align-items-center\"\n [style.backgroundColor]=\"\n moduleGroup.showIconBackground\n ? module.disabled\n ? '#ccc'\n : '#e74360'\n : 'transparent'\n \"\n >\n <img *ngIf=\"module.icon\" [src]=\"module.icon\" class=\"w-2rem\" />\n </div>\n <span class=\"text-sm text-center\">{{ module.label }}</span>\n </a>\n </div>\n </ng-container>\n </div>\n\n <!-- Divider between module groups (except after the last one) -->\n <p-divider *ngIf=\"!last\" class=\"mt-3 mb-3\"></p-divider>\n </ng-container>\n\n <!-- Footer links -->\n <div class=\"mt-auto p-2\">\n <p-divider class=\"mt-2 mb-2\"></p-divider>\n <div class=\"flex justify-content-between pb-3\">\n <a\n class=\"text-primary no-underline text-sm\"\n [href]=\"footerConfig.guideUrl\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n <span class=\"flex align-items-center\">\n <i class=\"pi pi-info-circle p-2\"></i>\n {{ footerConfig.guideLabel }}\n </span>\n </a>\n <a\n class=\"text-primary no-underline text-sm\"\n [href]=\"footerConfig.companyUrl\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n <span class=\"flex align-items-center\">\n <i class=\"pi pi-globe p-2\"></i> {{ footerConfig.companyName }}\n </span>\n </a>\n </div>\n\n <div class=\"text-500 text-sm pl-2\">\n {{ footerConfig.copyrightText }}\n </div>\n </div>\n </div>\n</p-drawer>\n","import { Component, EventEmitter, Output } from '@angular/core';\n\n@Component({\n selector: 'phoenix-quick-pick',\n imports: [],\n templateUrl: './quick-pick.component.html',\n styleUrl: './quick-pick.component.css'\n})\nexport class QuickPickComponent {\n @Output() onBack = new EventEmitter<void>();\n @Output() onQuickPick = new EventEmitter<void>();\n @Output() onForward = new EventEmitter<void>();\n}\n","<div class=\"flex items-center\">\n <span (click)=\"onBack.emit()\" class=\"slide cursor-pointer\">\n <i class=\"pi pi-chevron-left cursor-pointer hover:text-blue-500\" style=\"color: #00395b\"></i>\n </span>\n <span (click)=\"onQuickPick.emit()\" class=\"slide\">\n <i class=\"pi pi-table ml-3 mr-3 cursor-pointer hover:text-blue-500\" style=\"color: #00395b\"></i>\n </span>\n <span (click)=\"onForward.emit()\" class=\"slide\">\n <i class=\"pi pi-chevron-right cursor-pointer hover:text-blue-500\" style=\"color: #00395b\"></i>\n </span>\n </div>","import { Component, Input, ChangeDetectionStrategy, EventEmitter, Output } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ButtonModule } from 'primeng/button';\nimport { SplitButtonModule } from 'primeng/splitbutton';\nimport { PanelModule } from 'primeng/panel';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { TooltipModule } from 'primeng/tooltip';\nimport { TieredMenuModule } from 'primeng/tieredmenu';\nimport { QuickPickComponent } from '../quick-pick/quick-pick/quick-pick.component';\n\n@Component({\n selector: 'phoenix-status-header',\n standalone: true,\n imports: [\n CommonModule, \n PanelModule, \n ButtonModule, \n SplitButtonModule, \n TranslateModule, \n TooltipModule,\n TieredMenuModule,\n QuickPickComponent\n ],\n templateUrl: './status-header.component.html',\n styleUrls: ['./status-header.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class StatusHeaderComponent {\n @Output() onQuickPickClickEmiter = new EventEmitter<void>();\n @Output() onToggleClickEmmiter = new EventEmitter<'forward' | 'back'>();\n @Output() onCloseEvent = new EventEmitter<void>();\n\n @Input() name: string = '';\n @Input() title: string = '';\n @Input() enableQuickPick: boolean = false;\n @Input() actions: any[] = [];\n @Input() panelState: boolean = false;\n @Input() customClose: boolean = true;\n\n validSeverities: string[] = ['success', 'info', 'warn', 'danger', 'help', 'primary', 'secondary', 'contrast'];\n\n onToggleClick(direction: 'forward' | 'back') {\n this.onToggleClickEmmiter.emit(direction);\n }\n\n toggleSidePanel() {\n this.onQuickPickClickEmiter.emit();\n }\n\n closePanel() {\n this.onCloseEvent.emit();\n }\n}","<p-panel [style]=\"{ width: '100%' }\" [toggleable]=\"false\">\n <ng-template pTemplate=\"header\">\n <div class=\"flex justify-between items-center w-full flex-wrap gap-2\">\n @if (enableQuickPick) {\n <phoenix-quick-pick\n (onBack)=\"onToggleClick('back')\"\n (onQuickPick)=\"toggleSidePanel()\"\n (onForward)=\"onToggleClick('forward')\"\n ></phoenix-quick-pick>\n }\n <div class=\"flex items-baseline gap-2\">\n <span class=\"text-xl font-semibold\">{{ name }}</span>\n <span class=\"text-base text-gray-500\">{{ title }}</span>\n </div>\n </div>\n </ng-template>\n\n <ng-template pTemplate=\"icons\">\n <div class=\"flex\">\n <ng-container *ngFor=\"let button of actions; index as i\">\n <ng-container [ngSwitch]=\"button.type\">\n <ng-container *ngSwitchCase=\"'split'\">\n <button\n [attr.data-cy]=\"'split-button-' + i\"\n #btn\n type=\"button\"\n pButton\n class=\"p-button-text\"\n [disabled]=\"button?.disabled\"\n (click)=\"menu.toggle($event)\"\n >\n <span class=\"button-icon mr-2\">\n <i class=\"{{ button.icon }}\"></i>\n </span>\n <span class=\"button-label\">\n {{ button.label | translate }}\n </span>\n <span class=\"button-icon ml-2\">\n <i class=\"pi pi-chevron-down\" style=\"font-size: 0.9rem\"></i>\n </span>\n </button>\n <p-tieredMenu\n #menu\n [model]=\"button.splitItems!\"\n [popup]=\"true\"\n ></p-tieredMenu>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'regular'\">\n <p-button\n [attr.data-cy]=\"'regular-button-' + i\"\n id=\"{{ button.id }}\"\n data-cy=\"s-ab-button-cy\"\n class=\"mr-2\"\n [text]=\"true\"\n icon=\"{{ button.icon }}\"\n label=\"{{ button.label! | translate }}\"\n [pTooltip]=\"!button.tooltip ? '' : (button.tooltip | translate)\"\n tooltipPosition=\"\"\n [disabled]=\"button.disabled\"\n [severity]=\"validSeverities.includes(button.severity!) ? button.severity : undefined\"\n ></p-button>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n </ng-template>\n</p-panel>","import { CommonModule } from '@angular/common';\nimport { Component, Input, ViewEncapsulation } from '@angular/core';\nimport { SidebarComponent } from '../sidebar/sidebar.component';\nimport { TopbarComponent } from '../topbar/topbar.component';\nimport { ShellConfig } from '../../models/shell-config.model';\n\n@Component({\n selector: 'pho-shell',\n imports: [\n SidebarComponent,\n TopbarComponent,\n CommonModule\n ],\n templateUrl: './shell.component.html',\n encapsulation: ViewEncapsulation.None,\n})\nexport class ShellComponent {\n @Input() config!: ShellConfig;\n @Input() isSidebarOpen!: boolean;\n\n toggleSidebar() {\n this.isSidebarOpen = !this.isSidebarOpen;\n }\n}\n","<!-- Sidebar Layout -->\n<div\n [style]=\"{\n 'grid-template-columns': '16rem 1fr',\n 'grid-template-rows': '3.5rem 1fr',\n }\"\n class=\"pho-grid w-full h-screen overflow-hidden m-0 p-0\"\n>\n <!-- Top header -->\n <pho-topbar\n class=\"bg-white pho-col-span-2 z-1\"\n [user]=\"config.user\"\n [topbarModulesMenu]=\"config.topbarModulesMenu\"\n >\n </pho-topbar>\n <!-- Sidebar -->\n <pho-sidebar\n [mainItems]=\"config.mainItems\"\n [footerItem]=\"config.footerItem\"\n (toggleSidebar)=\"toggleSidebar()\"\n ></pho-sidebar>\n <!-- Main content -->\n <div class=\"bg-primary-50\">\n <ng-content> </ng-content>\n </div>\n</div>\n","export enum tableActionType {\n CREATE = 'create',\n EDIT = 'edit',\n DELETE = 'delete',\n DETAILS = 'details',\n ASSIGN = 'assign',\n APPLY = 'apply',\n OPEN_IN_NEW_TAB = 'open_in_new_tab',\n TAB = 'tab',\n OPEN_FULL_SCREEN = 'open_full_screen',\n ADD_LINK = 'add_link',\n DISCONNECT = 'disconnect',\n REMOVE = 'remove',\n SYNC = 'sync',\n MENU = 'menu',\n DROP = 'drop',\n OVERVIEW = 'overview',\n HISTORY = 'syncHistory',\n DOWNLOAD = 'download',\n ATTACH = 'attach',\n IMPORT = 'import',\n ///multiple options\n ASSIGN_FROM_CATALOG = 'ASSIGN_FROM_CATALOG',\n ASSIGN_FROM_ITEM = 'ASSIGN_FROM_ITEM',\n ASSIGN_CONTROLS = 'ASSING_CONTROLS',\n ASSIGN_MEASURE = 'ASSGIN_MEASURE',\n CREATE_ADITIONAL_MEASURE = 'CREATE_ADITIONAL_MEASURE',\n}\n\nexport enum tableButtonFormat {\n TEXT_ICON = 'TEXT_ICON',\n TEXT = 'TEXT',\n ICON = 'ICON',\n ICON_ROUNDED = 'ICON_ROUNDED',\n}\n\nexport enum tableButtonContext {\n GLOBAL = 'GLOBAL',\n BULK = 'BULK',\n ROW = 'ROW',\n}\n\nexport enum tableColumnType {\n TEXT = 'TEXT',\n RICH_TEXT = 'RICH_TEXT',\n TEXT_AREA = 'TEXT_AREA',\n DATE = 'DATE',\n DATE_COMPLEX = 'DATE_COMPLEX', //Date and time\n TAG = 'TAG',\n NUMBER = 'NUMBER',\n PERSON = 'PERSON',\n COMPLETNESS = 'COMPLETNESS',\n BOOLEAN = 'BOOLEAN',\n LIST = 'LIST',\n CUSTOM = 'CUSTOM',\n}\n\nexport enum tableSelectionType {\n CHECKBOX = 'checkbox',\n RADIO_BTN = 'radio_btn',\n}\n\nexport enum tableFilterType {\n ///not using text, its in global srch\n // TEXT = 'text',\n DATE = 'date',\n // NUMERIC = 'numeric',\n BOOLEAN = 'boolean',\n MULTISELECT = 'multiselect',\n COMPLETNESS = 'completness',\n // ICON = 'icon',\n}\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n EventEmitter,\n Input,\n OnChanges,\n Output,\n} from '@angular/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ButtonModule } from 'primeng/button';\nimport { OverlayPanelModule } from 'primeng/overlaypanel';\nimport { TooltipModule } from 'primeng/tooltip';\nimport { tableActionType, tableButtonContext } from '../utils/dataTable.enum';\nimport { TableAction } from '../utils/dataTable.interface';\nimport { PopoverModule } from 'primeng/popover';\n\ninterface BtnConfig {\n text: boolean;\n label: string;\n icon: string;\n outlined: boolean;\n class?: string;\n type?: string; // default is 'button' , for multiselect button set 'multiselect'\n items?: any;\n severity?:\n | 'info'\n | 'success'\n | 'warn'\n | 'danger'\n | 'secondary'\n | 'contrast'\n | 'help'\n | 'primary';\n checkboxrelatedauth?: boolean;\n}\nenum ico {\n import = 'pi pi-file-import',\n create = 'pi pi-plus',\n open_full_screen = 'pi pi-external-link',\n edit = 'pi pi-pencil',\n delete = 'pi pi-exclamation-triangle',\n assign = 'pi pi-paperclip',\n apply = 'pi pi-check-square',\n open_in_new_tab = 'pi pi-external-link',\n add_link = 'pi pi-link',\n disconnect = 'pi pi-link',\n remove = 'pi pi-minus',\n sync = 'pi pi-sync',\n menu = 'pi pi-ellipsis-v',\n drop = 'pi pi-angle-down',\n overview = 'pi pi-history',\n syncHistory = 'pi pi-history',\n download = 'pi pi-download',\n attach = 'pi pi-paperclip',\n details = 'pi pi-info-circle',\n}\n\n@Component({\n selector: 'phoenix-phoenix-data-table-action',\n standalone: true,\n imports: [\n CommonModule,\n ButtonModule,\n TooltipModule,\n TranslateModule,\n PopoverModule,\n ],\n templateUrl: './phoenix-data-table-action.component.html',\n styleUrls: ['./phoenix-data-table-action.component.css'],\n})\n\n/// two disble opt\n/// Read only: Default scope/enity or any other reason | referenced type etc...\n/// solved with readonly property from response and it works per row. It works independed from user. Response has to return readonly:boolean\n\n/// Authorization\n//// needs in btn configuration and its fro all buttons. all rows\nexport class PhoenixDataTableActionComponent implements OnChanges {\n @Input({ required: true }) actionConfig!: TableAction;\n @Input() rowData!: any;\n @Input() selectedData!: any;\n\n @Output() actionClick = new EventEmitter<any>();\n\n icon!: string;\n disabled!: boolean | undefined;\n btnConfig!: BtnConfig;\n\n ngOnChanges(): void {\n this.icon = ico[this.actionConfig.type as keyof typeof ico];\n\n ///set standard btn configuraton\n this.btnConfig = {\n text: true,\n label: this.actionConfig.label,\n icon: 'pi pi-circle',\n class: '',\n outlined: false,\n type: this.actionConfig.buttonType,\n items: this.actionConfig.items,\n checkboxrelatedauth: this.actionConfig.checkboxrelatedauth\n ? this.actionConfig.checkboxrelatedauth\n : false,\n };\n switch (this.actionConfig.context) {\n case tableButtonContext.GLOBAL:\n ///disable by permission\n\n this.disabled = this.actionConfig.disabled;\n break;\n case tableButtonContext.BULK:\n this.btnConfig.label = '';\n this.btnConfig.outlined = true;\n this.btnConfig.class = 'ml-1';\n ///disable by permission\n this.disabled = this.actionConfig.disabled;\n \n ///configure bulk delete button\n if (this.actionConfig.type === tableActionType.DELETE) {\n this.btnConfig.label = 'Delete';\n this.btnConfig.text = true;\n this.btnConfig.outlined = false;\n this.btnConfig.severity = 'warn';\n }\n\n break;\n case tableButtonContext.ROW:\n this.btnConfig.label = '';\n ///Test the order of disabling\n ///disable by permission\n this.disabled = this.actionConfig.disabled;\n if (this.actionConfig?.type && !this.actionConfig?.notauthorized) {\n this.disabled =\n this.rowData[this.actionConfig.type] != undefined &&\n this.rowData[this.actionConfig.type] != null\n ? !this.rowData[this.actionConfig.type]\n : false;\n }\n /// always disable delete button if object response is readOnly:true\n if (\n this.rowData?.readOnly &&\n this.actionConfig.type === tableActionType.DELETE\n ) {\n this.disabled = true;\n }\n /// this CUSTOM condition is only for BCMS Resources. readOnly is not enough (its not appropriate for ISMS & BCMS) we should have isEditable, isDeletable ets... boolean for each action :)\n if (\n this.rowData?.typeLabelKey === 'CUSTOM' &&\n this.actionConfig.type === tableActionType.OPEN_IN_NEW_TAB\n ) {\n this.disabled = true;\n }\n\n break;\n }\n }\n\n onActionClick($event: any) {\n this.actionClick.emit($event);\n }\n}\n","<p-popover #op>\n <ul class=\"list-none p-0 m-0\">\n <ng-container *ngFor=\"let item of btnConfig.items; let last = last\">\n <li\n class=\"cursor-pointer block\"\n [ngClass]=\"{ 'mb-3': !last, disabledAction: item.disabled }\"\n (click)=\"onActionClick(item)\"\n >\n <i class=\"mr-2\" [class]=\"item.icon\"></i> {{ item.label | translate }}\n </li>\n </ng-container>\n </ul>\n</p-popover>\n\n<p-button\n [attr.data-cy]=\"'table-button-' + this.actionConfig.type\"\n [label]=\"btnConfig.label | translate\"\n [text]=\"btnConfig.text\"\n [icon]=\"icon\"\n [disabled]=\"disabled\"\n [iconPos]=\"btnConfig.type === 'multiselect' ? 'right' : 'left'\"\n (click)=\"\n btnConfig.type === 'multiselect'\n ? op.toggle($event)\n : onActionClick(actionConfig)\n \"\n [outlined]=\"btnConfig.outlined\"\n [pTooltip]=\"actionConfig.label | translate\"\n tooltipPosition=\"bottom\"\n [class]=\"btnConfig.class\"\n [severity]=\"btnConfig.severity\"\n>\n</p-button>\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { TableColumn } from './dataTable.interface';\nimport { DatePipe } from '@angular/common';\nimport { tableColumnType } from './dataTable.enum';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Pipe({\n name: 'cellValue',\n standalone: true,\n})\nexport class CellValuePipe implements PipeTransform {\n /**\n * @todo Cell limit and Rich text ??? check if this is a solution\n */\n constructor(private datePipe: DatePipe, private trnalste: TranslateService) {}\n transform(value: any, col: TableColumn) {\n if (value) {\n\n switch (col.columnType) {\n case tableColumnType.TEXT:\n /** checking if there is a object instead of string. objects goes into non-lazy tables */\n\n const textValue = value?.name ?? value;\n\n if (typeof textValue === 'string') {\n return textValue;\n }\n\n return '--';\n\n case tableColumnType.DATE:\n return this.datePipe.transform(value);\n case tableColumnType.NUMBER:\n return value;\n }\n } else return '--';\n }\n}\n","export enum ExportType {\n PDF = 'PDF',\n EXCEL = 'EXCEL',\n}\n","import {\n Component,\n DestroyRef,\n EventEmitter,\n Input,\n OnInit,\n Output,\n inject,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TableAction } from '../utils/dataTable.interface';\nimport { SelectButtonModule } from 'primeng/selectbutton';\nimport { FormsModule } from '@angular/forms';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { BadgeModule } from 'primeng/badge';\nimport { ActivatedRoute, NavigationEnd, Router } from '@angular/router';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nenum soType {\n modules = 'COMPL_APPLIED_MODULE',\n requirements = 'COMPL_APPLIED_REQUIREMENT',\n measures = 'COMPL_APPLIED_MEASURE',\n threats = 'COMPL_APPLIED_THREAT',\n risks = 'COMPL_APPLIED_RISK',\n controls = 'COMPL_APPLIED_CONTROL',\n}\n\n@Component({\n selector: 'phoenix-data-table-tabs',\n standalone: true,\n imports: [\n CommonModule,\n SelectButtonModule,\n FormsModule,\n TranslateModule,\n BadgeModule,\n ],\n templateUrl: './phoenix-data-table-tabs.component.html',\n styleUrls: ['./phoenix-data-table-tabs.component.css'],\n})\nexport class PhoenixDataTableTabsComponent implements OnInit {\n @Input({ required: true }) actions!: TableAction[];\n @Output() actionClick = new EventEmitter<any>();\n\n private route = inject(ActivatedRoute);\n private router = inject(Router);\n private dr = inject(DestroyRef);\n value!: string | undefined;\n\n ngOnInit(): void {\n this.preselectTab();\n this.router.events.pipe(takeUntilDestroyed(this.dr)).subscribe((event) => {\n if (event instanceof NavigationEnd) {\n this.preselectTab();\n }\n });\n }\n preselectTab() {\n const sotype = this.route.snapshot.paramMap.get('sotype');\n const hasSouuid = this.route.snapshot.paramMap.has('souuid');\n\n if (sotype) {\n this.value = soType[sotype as keyof typeof soType];\n }\n\n if (hasSouuid && this.actions && this.actions.length > 0) {\n this.value = this.actions[0].key;\n }\n }\n onActionClick(event: any) {\n let opt = this.actions.find((i) => i.key === event.value);\n\n this.actionClick.emit({ action: opt });\n }\n}\n","<p-selectButton\n [options]=\"actions\"\n optionValue=\"key\"\n [(ngModel)]=\"value\"\n optionLabel=\"icon\"\n [unselectable]=\"true\"\n (onChange)=\"onActionClick($event)\"\n>\n <ng-template #item let-item>\n <span>\n {{ item.label }}\n </span>\n <span>\n <p-badge\n *ngIf=\"item.badgeCount\"\n [value]=\"item.badgeCount\"\n severity=\"danger\"\n badgeSize=\"small\"\n />\n </span>\n </ng-template>\n</p-selectButton>\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'isSelected',\n standalone: true,\n})\nexport class IsSelectedPipe implements PipeTransform {\n transform(item: any, selectedColumns: any[]): boolean {\n return selectedColumns.some(\n selectedItem => selectedItem.field == item.field,\n );\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'removeHTMLTags',\n standalone: true,\n})\nexport class RemoveHTMLTagsPipe implements PipeTransform {\n transform(text: string): string {\n return text ? String(text).replace(/<[^>]+>/gm, '') : '';\n }\n}\n\n/* \n\nDIFFERENT PIPE\n==============\n\nimport { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'removeHTMLTags',\n standalone: true,\n})\nexport class RemoveHTMLTagsPipe implements PipeTransform {\n transform(text: string, ...usefulTags: any[]): string {\n return usefulTags.length > 0\n ? text.replace(\n new RegExp(`<(?!\\/?(${usefulTags.join('|')})\\s*\\/?)[^>]+>`, 'g'),\n '',\n )\n : text.replace(/<(?:.|\\s)*?>/g, '');\n }\n} */\n","import { CommonModule, LowerCasePipe } from '@angular/common';\nimport {\n CUSTOM_ELEMENTS_SCHEMA,\n Component,\n DestroyRef,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n ViewChild,\n inject,\n input,\n} from '@angular/core';\nimport { ButtonModule } from 'primeng/button';\nimport {\n Table,\n TableHeaderCheckboxToggleEvent,\n TableLazyLoadEvent,\n TableModule,\n} from 'primeng/table';\nimport { PhoenixDataTableActionComponent } from '../phoenix-data-table-action/phoenix-data-table-action.component';\n\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n FormBuilder,\n FormControl,\n FormGroup,\n FormsModule,\n ReactiveFormsModule,\n} from '@angular/forms';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\n// import { DateFormatService } from '@phoenix/service/common'; - configuration?\n// import * as FileSaver from 'file-saver'; - what package json\n// import jsPDF from 'jspdf'; - what package json\n// import autoTable from 'jspdf-autotable'; - what package json\nimport { FilterMatchMode } from 'primeng/api';\nimport { AvatarModule } from 'primeng/avatar';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { MultiSelectModule } from 'primeng/multiselect';\nimport { SkeletonModule } from 'primeng/skeleton';\nimport { TagModule } from 'primeng/tag';\nimport { CellValuePipe } from '../utils/data-cell-value.pipe';\nimport {\n tableButtonContext,\n tableColumnType,\n tableFilterType,\n tableSelectionType,\n} from '../utils/dataTable.enum';\nimport { TableColumn, TableConfiguration } from '../utils/dataTable.interface';\nimport { ExportType } from '../utils/export-type.util';\nimport { PhoenixDataTableTabsComponent } from '../phoenix-data-table-tabs/phoenix-data-table-tabs.component';\nimport { TooltipModule } from 'primeng/tooltip';\nimport { IsSelectedPipe } from './isSelected.pipe';\nimport { ListboxModule } from 'primeng/listbox';\nimport { RemoveHTMLTagsPipe } from '../utils/remove-html-tags.pipe';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { SelectModule } from 'primeng/select';\nimport { IconFieldModule } from 'primeng/iconfield';\nimport { InputIconModule } from 'primeng/inputicon';\nimport { PopoverModule } from 'primeng/popover';\n\n/**\n * Transform data for non-lazy filtering\n * 1. transform data that goes into table (string to object value/name props )\n * 2. transform data that goes into dropdown filter (string to object value/name props )\n * 3. in cell-value pipe in table check if it's non-lazy tabel, if is take object.name (add lazyTable argument to pipe)\n */\n\n/**\n * @todo Add option to pass custom color to status tag -> modify response to match columnName + Color -> sample: actualRiskColor\n * @todo Check DATE format. there is a cell-pipe for that\n * @todo Filter persistance in localstorage\n * @todo Frozen columns fix\n *\n *\n *\n * * @todo unauthorized API for population MS filters\n * - Entities\n * - Catalogs\n * - Statuses\n * - Responsibles\n * - Types\n * - CIA att\n */\n\n///transforms input into context arrays. Action positions in table\nfunction resolveActions(value: TableConfiguration): any {\n const transformed: any = {\n globalActions: [],\n rowActions: [],\n bulkActions: [],\n\n ...value,\n };\n value.actions.forEach((a) => {\n switch (a.context) {\n case tableButtonContext.GLOBAL:\n transformed.globalActions.push(a);\n break;\n case tableButtonContext.ROW:\n transformed.rowActions.push(a);\n break;\n case tableButtonContext.BULK:\n transformed.bulkActions.push(a);\n break;\n default:\n break;\n }\n });\n\n transformed.globalFilter =\n transformed.globalFilter === undefined ? true : transformed.globalFilter;\n\n return transformed;\n}\n@Component({\n selector: 'phoenix-data-table',\n standalone: true,\n imports: [\n CommonModule,\n TableModule,\n ButtonModule,\n InputTextModule,\n MultiSelectModule,\n AvatarModule,\n TagModule,\n FormsModule,\n ReactiveFormsModule,\n SkeletonModule,\n TranslateModule,\n CheckboxModule,\n SelectModule,\n IconFieldModule,\n InputIconModule,\n ///Custom components\n PhoenixDataTableActionComponent,\n PhoenixDataTableTabsComponent,\n // Pipes\n CellValuePipe,\n TooltipModule,\n PopoverModule,\n ListboxModule,\n IsSelectedPipe,\n RemoveHTMLTagsPipe,\n LowerCasePipe,\n ],\n templateUrl: './phoenix-data-table.component.html',\n styleUrls: ['./phoenix-data-table.component.css'],\n ///allow semantic\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class PhoenixDataTableComponent implements OnInit, OnChanges {\n @ViewChild('btn', { static: false }) overviewBtn!: any;\n @ViewChild('dt', { static: false }) table?: Table;\n @Input({ required: true }) data: any;\n @Input({ required: false }) exportdData: any;\n @Input({ required: true }) columns!: TableColumn[];\n loading = input.required<boolean>();\n @Input() totalRecords!: number;\n @Input({ required: true, transform: resolveActions }) tableConfiguration: any;\n @Output() actionClickEmmiter = new EventEmitter<any>();\n @Output() lazyLoadDataEmmiter = new EventEmitter<any>();\n @Output() onRowClickEmmiter = new EventEmitter<any>();\n @Output() onRowCheckboxRadioClickEmmiter = new EventEmitter<any>();\n @Output() onExportClickEmmiter = new EventEmitter<ExportType>();\n @Output() onSaveColumnsClickEmmiter = new EventEmitter<string[]>();\n @Output() onHeaderCheckboxToggleEmmiter = new EventEmitter<any>();\n @Input() exportData?: {\n type: ExportType;\n data: any;\n };\n public exportType = ExportType;\n\n ///injects\n translateService = inject(TranslateService);\n fb = inject(FormBuilder);\n // dateFormatService = inject(DateFormatService);\n dr = inject(DestroyRef);\n // private datePipe = inject(DatePipe);\n ///enum\n columnTypeEnum = tableColumnType;\n tableFilterTypeEnum = tableFilterType;\n selectionTypeEnum = tableSelectionType;\n ///columns\n _selectedColumns!: TableColumn[];\n selectedData: any[] = [];\n // configuration for Date Filter\n dateFormat!: string;\n dateFilterOptions = [\n {\n label: this.translateService.instant('primeng.dateIs'),\n value: FilterMatchMode.DATE_IS,\n },\n {\n label: this.translateService.instant('primeng.dateBefore'),\n value: FilterMatchMode.DATE_BEFORE,\n },\n {\n label: this.translateService.instant('primeng.dateAfter'),\n value: FilterMatchMode.DATE_AFTER,\n },\n ];\n\n globalFilterFields!: string[];\n filtersForm = new FormGroup({});\n originalData!: any;\n ngOnInit() {\n ///convert to signal\n this.originalData = [...this.data];\n if (this.tableConfiguration.filterConfiguration) {\n this.tableConfiguration.filterConfiguration.forEach((fc: any) => {\n const fControl = new FormControl();\n this.filtersForm.addControl(fc.key, fControl);\n });\n this.filtersForm.valueChanges\n .pipe(takeUntilDestroyed(this.dr))\n .subscribe((r) => {\n this.data = this.filterTableData(this.originalData, r);\n });\n }\n }\n\n // Example array of field configurations\n\n filterTableData(originalArray: any[], mapping: any) {\n return originalArray.filter((item) => {\n let matches = true;\n\n for (const key in mapping) {\n if (mapping[key] && mapping[key].key) {\n if (item[key] !== mapping[key].key) {\n matches = false;\n break;\n }\n }\n }\n\n return matches;\n });\n }\n resetFilters() {\n this.data = this.originalData;\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes?.['data']) {\n //Reset selection when data changes\n this.selectedData = [];\n }\n\n if (this.tableConfiguration.toggleColumns) {\n this._selectedColumns =\n this.tableConfiguration.toogleColumnsData &&\n this.tableConfiguration.toogleColumnsData.length > 0\n ? this.tableConfiguration.toogleColumnsData\n : this.columns;\n } else {\n this._selectedColumns = this.columns;\n }\n\n if (this._selectedColumns) {\n this.globalFilterFields = this._selectedColumns\n .filter(\n (sc) =>\n sc.columnType === this.columnTypeEnum.TEXT &&\n sc.filter === undefined\n )\n .map((sc) => sc.field);\n }\n ///adds 5 empty rows in order to display shimering\n if (this.data?.length === 0 && this.loading()) {\n for (let i = 0; i < 5; i++) {\n this.data.push({});\n }\n return this.data;\n }\n\n // if (this.exportdData?.type) {\n // if (this.exportdData.type === this.exportType.EXCEL) {\n // this.exportExcel(this.exportdData.data);\n // } else {\n // this.exportPdf(this.exportdData.data);\n // }\n // this.exportdData = null;\n // }\n\n if (this.exportData?.type) {\n switch (this.exportData?.type) {\n case ExportType.EXCEL:\n this.exportExcel(this.exportData.data);\n break;\n\n default:\n this.exportPdf(this.exportData.data);\n break;\n }\n this.exportdData = null;\n }\n }\n\n /**\n * Emits table actions\n * table source change (SC phase), global actions (create, assing), bluk and row actions\n * @description\n */\n actionClick(action: any, data?: any) {\n this.actionClickEmmiter.emit({ action, data });\n }\n\n /**\n * Lazy load\n * Use when lazy is set to TRUE\n * @description\n */\n loadData(event: TableLazyLoadEvent) {\n const tableFilter = {\n page: event.first && event.rows ? event.first / event.rows : 0,\n size: event.rows ? event.rows : 5,\n rows: event.rows,\n sortField: event.sortField,\n sortOrder: this.convertSortOrder(event?.sortOrder),\n filters: event.filters,\n globalFilter: event.globalFilter,\n };\n if (tableFilter.filters) delete tableFilter.filters['global'];\n this.lazyLoadDataEmmiter.emit(tableFilter);\n }\n\n convertSortOrder(sortOrder: number | null | undefined): string {\n return sortOrder ? (sortOrder === 1 ? 'ASC' : 'DESC') : 'ASC';\n }\n\n /**\n * Row click\n * --\n * @description custom method added for row click\n */\n onRowClick(event: Event, row: any) {\n ///emits row data when selecting radio or checkbox selection\n this.onRowCheckboxRadioClickEmmiter.emit(row);\n if ((event.target as HTMLElement).tagName === 'TD') {\n this.onRowClickEmmiter.emit(row);\n } else {\n this.enableDisableCheckBoxRelatedGlobalActions();\n }\n }\n\n enableDisableCheckBoxRelatedGlobalActions() {\n this.tableConfiguration.globalActions\n .filter((action: any) => action.checkboxrelatedauth)\n .map(\n (action: any) =>\n (this.overviewBtn.disabled = this.selectedData\n ? this.selectedData.length === 0\n : true)\n );\n }\n\n onHeaderCheckboxToggle(event: TableHeaderCheckboxToggleEvent) {\n this.enableDisableCheckBoxRelatedGlobalActions();\n this.onHeaderCheckboxToggleEmmiter.emit(event);\n }\n\n isRowSelectable(event: any): boolean | undefined {\n return typeof event.data?.canSelect === 'boolean'\n ? event.data.canSelect\n : true;\n }\n\n exportExcel(data: any[]) {\n /// missing dependencies\n // const filteredData: any = [];\n // let newList: TableColumn[] = JSON.parse(JSON.stringify(this.columns));\n // data?.forEach((item: any) => {\n // const filteredItem: any = {};\n // newList.forEach((col) => {\n // const field = col.field;\n // let convertToString;\n // if (item[field]?.hasOwnProperty('value')) {\n // convertToString = item[field].value?.toString() || '--';\n // } else if (item[field]?.hasOwnProperty('name')) {\n // convertToString = item[field].name?.toString() || '--';\n // } else {\n // convertToString = item[field]?.toString() || '--';\n // }\n // if (\n // col.columnType === tableColumnType.DATE ||\n // col.columnType === tableColumnType.DATE_COMPLEX\n // ) {\n // if (this.isISODateString(convertToString)) {\n // convertToString = this.datePipe.transform(\n // new Date(convertToString),\n // this.dateFormat\n // );\n // }\n // }\n // if (\n // (convertToString && col?.header) ||\n // (convertToString === null && col?.header) ||\n // (convertToString === '' && col?.header) ||\n // (convertToString === undefined && col?.header)\n // ) {\n // const header = this.translateService.instant(col.header);\n // if (convertToString) {\n // filteredItem[header] =\n // this.translateService.instant(convertToString);\n // } else {\n // filteredItem[header] = convertToString;\n // }\n // }\n // });\n // filteredData.push(filteredItem);\n // });\n // import('xlsx').then((xlsx) => {\n // const worksheet = xlsx.utils.json_to_sheet(filteredData);\n // const wscols = Object.keys(filteredData[0]).map((key) => {\n // const maxLength = filteredData.reduce((max: any, item: any) => {\n // const value = item[key] || '';\n // return Math.max(max, value.length);\n // }, key.length);\n // return { width: maxLength + 2 };\n // });\n // worksheet['!cols'] = wscols;\n // const workbook = { Sheets: { data: worksheet }, SheetNames: ['data'] };\n // const excelBuffer = xlsx.write(workbook, {\n // bookType: 'xlsx',\n // type: 'array',\n // });\n // this.saveAsExcelFile(excelBuffer);\n // });\n }\n\n exportPdf(data: any[]) {\n /// missing dependencies\n // const doc = new jsPDF({\n // orientation: 'landscape',\n // });\n // doc.setFont('helvetica');\n // const colHeaders = this.columns.map((col) => {\n // if (col.header) {\n // return this.translateService.instant(col.header);\n // }\n // });\n // const rows = data.map((item: any) =>\n // this.columns.map((col) => {\n // let value;\n // if (item[col.field]?.hasOwnProperty('value')) {\n // value = item[col.field].value?.toString() || '--';\n // } else if (item[col.field]?.hasOwnProperty('name')) {\n // value = item[col.field].name?.toString() || '--';\n // } else {\n // value = item[col.field]?.toString() || '--';\n // }\n // if (\n // col.columnType === tableColumnType.DATE ||\n // col.columnType === tableColumnType.DATE_COMPLEX\n // ) {\n // if (this.isISODateString(value)) {\n // value = this.datePipe.transform(new Date(value), this.dateFormat);\n // }\n // }\n // if (value) {\n // return this.translateService.instant(value);\n // } else {\n // return value;\n // }\n // })\n // );\n // autoTable(doc, {\n // head: [colHeaders],\n // body: rows,\n // styles: {\n // font: 'helvetica', // Ovde postavite font\n // fontSize: 10, // Ako je potrebno, promenite veličinu fonta\n // },\n // });\n // doc.save(\n // 'export - ' + this.datePipe.transform(new Date(), 'short') + '.pdf'\n // );\n }\n\n isISODateString(value: string): boolean {\n // Check if the string is a valid ISO date or a valid Date string\n const isoDateRegex = /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?Z$/;\n\n // Check if the value matches the ISO date format\n if (isoDateRegex.test(value)) {\n return true;\n }\n\n // Check if the string can be parsed into a valid Date object\n const date = new Date(value);\n return !isNaN(date.getTime());\n }\n\n saveAsExcelFile(buffer: any): void {\n /// missing dependencies\n // const EXCEL_TYPE =\n // 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8';\n // const EXCEL_EXTENSION = '.xlsx';\n // const data: Blob = new Blob([buffer], {\n // type: EXCEL_TYPE,\n // });\n // FileSaver.saveAs(\n // data,\n // 'export - ' +\n // this.datePipe.transform(new Date(), 'short') +\n // EXCEL_EXTENSION\n // );\n }\n\n saveColumns() {\n this.onSaveColumnsClickEmmiter.emit(\n this._selectedColumns.map((col) => col.field)\n );\n }\n\n resetColumns() {\n this._selectedColumns = this.columns;\n this.saveColumns();\n }\n\n get selectedColumns(): TableColumn[] {\n return this._selectedColumns;\n }\n\n set selectedColumns(val: TableColumn[]) {\n //restore original order\n this._selectedColumns = this.columns.filter((col) =>\n val.some((v) => v.field === col.field)\n );\n }\n}\n","<!-- total records lazy???? -->\n<div class=\"border-1 border-round-sm border-300 border-round-md m-2\">\n <p-table\n #dt\n [selectionMode]=\"tableConfiguration.selectionMode\"\n [dataKey]=\"tableConfiguration.key ? tableConfiguration.key : 'id'\"\n [value]=\"data\"\n [rowSelectable]=\"isRowSelectable\"\n [resizableColumns]=\"true\"\n columnResizeMode=\"expand\"\n [globalFilterFields]=\"globalFilterFields\"\n [resizableColumns]=\"true\"\n [size]=\"'small'\"\n [scrollHeight]=\"tableConfiguration.scrollHeight\"\n [selectionPageOnly]=\"true\"\n [(selection)]=\"selectedData\"\n [scrollable]=\"true\" \n scrollHeight=\"400px\" \n [virtualScroll]=\"true\" \n [virtualScrollItemSize]=\"46\"\n [rowHover]=\"true\"\n (onHeaderCheckboxToggle)=\"onHeaderCheckboxToggle($event)\"\n >\n <!-- ********** CAPTION CAPTION CAPTION *********************** -->\n <ng-template pTemplate=\"caption\">\n <div class=\"flex justify-content-between\">\n <global-table-actions>\n <ng-container\n *ngFor=\"\n let action of tableConfiguration.globalActions;\n let i = index\n \"\n >\n <phoenix-phoenix-data-table-action\n #btn\n [actionConfig]=\"action\"\n (actionClick)=\"actionClick($event)\"\n ></phoenix-phoenix-data-table-action\n ></ng-container>\n <phoenix-data-table-tabs\n [attr.data-cy]=\"\n 'table-select-button-' + tableConfiguration.tabs?.key\n \"\n [actions]=\"tableConfiguration.tabs\"\n (actionClick)=\"actionClick($event)\"\n ></phoenix-data-table-tabs>\n </global-table-actions>\n <div class=\"flex align-items-center\">\n <p-button\n icon=\"pi pi-filter\"\n [rounded]=\"true\"\n label=\"Filter\"\n [text]=\"true\"\n severity=\"primary\"\n class=\"mr-2\"\n (onClick)=\"filters.toggle($event)\"\n />\n\n <p-button\n icon=\"pi pi-sliders-v\"\n [rounded]=\"true\"\n [text]=\"true\"\n severity=\"primary\"\n label=\"Columns\"\n class=\"mr-2\"\n [attr.data-cy]=\"'table-togg-button'\"\n (onClick)=\"cols.toggle($event)\"\n />\n\n <span\n *ngIf=\"tableConfiguration.globalFilter\"\n class=\"p-input-icon-left ml-auto\"\n >\n <p-iconfield>\n <p-inputicon styleClass=\"pi pi-search\" />\n <input\n [attr.data-cy]=\"'table-global-search'\"\n type=\"text\"\n (input)=\"dt.filterGlobal($any($event.target).value, 'contains')\"\n pInputText\n placeholder=\"{{\n 'SEARCH_PLACEHOLDERS.SEARCH_KEYWORD' | translate\n }}\"\n />\n </p-iconfield>\n </span>\n <p-button\n icon=\"pi pi-ellipsis-v\"\n [rounded]=\"true\"\n [text]=\"true\"\n severity=\"primary\"\n (onClick)=\"export.toggle($event)\"\n class=\"ml-2\"\n />\n\n <bulk-table-actions>\n <ng-container *ngFor=\"let action of tableConfiguration.bulkActions\">\n <phoenix-phoenix-data-table-action\n [actionConfig]=\"action\"\n [selectedData]=\"selectedData\"\n (actionClick)=\"actionClick(action, selectedData)\"\n ></phoenix-phoenix-data-table-action\n ></ng-container>\n </bulk-table-actions>\n </div>\n </div>\n </ng-template>\n <!-- ********** HEADER HEADER HEADER *********************** -->\n <ng-template pTemplate=\"header\">\n <tr style=\"height: 40px\" class=\"dt-header\">\n <ng-container [ngSwitch]=\"tableConfiguration.selectionType\">\n <th class=\"custom-th\" *ngSwitchCase=\"selectionTypeEnum.CHECKBOX\">\n <p-tableHeaderCheckbox\n [attr.data-cy]=\"'table-header-checkbox'\"\n ></p-tableHeaderCheckbox>\n </th>\n <th\n class=\"custom-th\"\n *ngSwitchCase=\"selectionTypeEnum.RADIO_BTN\"\n ></th>\n </ng-container>\n <!-- rest of columns -->\n <ng-container *ngFor=\"let col of selectedColumns; let i = index\">\n <th\n [attr.data-cy]=\"'table-col-' + i\"\n pResizableColumn\n class=\"custom-th font-bold\"\n [pSortableColumn]=\"\n col.filter === 'multiselect' && tableConfiguration.lazy != true\n ? col.field + '.name'\n : col.field\n \"\n >\n <!-- set sort icon visible by default -->\n <p-sortIcon\n [attr.data-cy]=\"'table-sort-' + col.field\"\n *ngIf=\"col.sortable === undefined ? true : col.sortable\"\n field=\"{{ col.field }}\"\n ></p-sortIcon>\n {{ col.header | translate }}\n </th>\n </ng-container>\n\n <!-- create empty th placeholders for actions -->\n <th class=\"custom-th\"></th>\n </tr>\n </ng-template>\n <!-- ********** BODY BODY BODY *********************** -->\n <ng-template pTemplate=\"body\" let-rowData let-rowIndex=\"rowIndex\">\n <ng-template #shimmer>\n <tr [attr.data-cy]=\"'table-row-' + rowIndex\">\n <td *ngFor=\"let col of columns; let even = even\">\n <p-skeleton\n [ngStyle]=\"{\n width: '60%',\n }\"\n ></p-skeleton>\n </td>\n\n <td>\n <p-skeleton\n [ngStyle]=\"{\n width: '20%',\n }\"\n ></p-skeleton>\n </td>\n </tr>\n </ng-template>\n <tr\n *ngIf=\"!loading(); else shimmer\"\n (click)=\"onRowClick($event, rowData)\"\n [pSelectableRow]=\"rowData\"\n [attr.data-cy]=\"'table-row-' + rowIndex\"\n >\n <ng-container [ngSwitch]=\"tableConfiguration.selectionType\">\n <td class=\"w-2rem\" *ngSwitchCase=\"selectionTypeEnum.CHECKBOX\">\n <p-tableCheckbox\n [attr.data-cy]=\"'table-checkbox'\"\n [disabled]=\"\n rowData?.canSelect !== undefined ? !rowData.canSelect : false\n \"\n [value]=\"rowData\"\n ></p-tableCheckbox>\n </td>\n <td *ngSwitchCase=\"selectionTypeEnum.RADIO_BTN\">\n <p-tableRadioButton\n [value]=\"rowData\"\n [attr.data-cy]=\"'table-radio-button'\"\n ></p-tableRadioButton>\n </td>\n </ng-container>\n\n <ng-container *ngFor=\"let col of selectedColumns; let i = index\">\n <td class=\"cursor-pointer\">\n <ng-container\n *ngTemplateOutlet=\"\n cellValueTemp;\n context: { value: { rowData, col } }\n \"\n ></ng-container>\n </td>\n </ng-container>\n\n <!-- p-0 on td because buttons already have marign. so it makes row bigger -->\n <td class=\"p-0\">\n <ng-container *ngFor=\"let action of tableConfiguration.rowActions\">\n <phoenix-phoenix-data-table-action\n *ngIf=\"\n action.notauthorized ||\n (rowData[action.type] != undefined &&\n rowData[action.type] != null)\n \"\n [actionConfig]=\"action\"\n [rowData]=\"rowData\"\n (actionClick)=\"actionClick($event, rowData)\"\n ></phoenix-phoenix-data-table-action\n ></ng-container>\n </td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"paginatorright\" let-state>\n <!-- Total Records: {{ state.totalRecords }} -->\n <!-- <i class=\"pi pi-cog\" style=\"font-size: 1.2rem; color: grey\"></i> -->\n </ng-template>\n <ng-template pTemplate=\"emptymessage\">\n <td class=\"p-2\" colspan=\"100\">\n <div class=\"flex align-items-center\">\n <i class=\"pi pi-info-circle mr-2\"></i>\n {{ \"NO_RESULTS_FOUND\" | translate }}\n </div>\n </td>\n </ng-template>\n </p-table>\n</div>\n\n<!-- Celll value template -->\n\n<ng-template #cellValueTemp let-val=\"value\">\n <ng-container [ngSwitch]=\"val.col.columnType\">\n <ng-container *ngSwitchCase=\"columnTypeEnum.TAG\">\n <ng-container *ngIf=\"val.rowData[val.col.field]; else emptyCell\">\n <!-- checking if there is a object instead of string. objects goes into non-lazy tables -> val.rowData[val.col.field].name || val.rowData[val.col.field] -->\n <p-tag\n [attr.data-cy]=\"'table-cell-' + (columnTypeEnum.TAG | lowercase)\"\n [style]=\"{ 'background-color': val.rowData[val.col.field + 'Color'] }\"\n [value]=\"\n val.rowData[val.col.field].name || val.rowData[val.col.field]\n \"\n ></p-tag>\n </ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"columnTypeEnum.PERSON\">\n <ng-container *ngIf=\"val.rowData[val.col.field]; else emptyCell\">\n <p-avatar\n [attr.data-cy]=\"'table-cell-' + (columnTypeEnum.PERSON | lowercase)\"\n [label]=\"val.rowData[val.col.field].name.charAt(0)\"\n styleClass=\"mr-1\"\n [style]=\"{ 'background-color': '#9c27b0', color: '#ffffff' }\"\n shape=\"circle\"\n ></p-avatar>\n {{ val.rowData[val.col.field].name }}\n </ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"columnTypeEnum.DATE\">\n <ng-container *ngIf=\"val.rowData[val.col.field]; else emptyCell\">\n {{ val.rowData[val.col.field] | date : dateFormat }}\n </ng-container>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"columnTypeEnum.DATE_COMPLEX\">\n <ng-container *ngIf=\"val.rowData[val.col.field]; else emptyCell\">\n {{ val.rowData[val.col.field] | date : dateFormat + \" | HH:mm\" }}\n </ng-container>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"columnTypeEnum.LIST\">\n <ng-container *ngIf=\"val.rowData[val.col.field]; else emptyCell\">\n <ul\n *ngFor=\"let item of val.rowData[val.col.field]\"\n [attr.data-cy]=\"'table-cell-' + (columnTypeEnum.LIST | lowercase)\"\n >\n <li>{{ item.name }}</li>\n </ul>\n </ng-container>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"columnTypeEnum.RICH_TEXT\">\n <ng-container *ngIf=\"val.rowData[val.col.field]; else emptyCell\">\n <div\n [pTooltip]=\"val.rowData[val.col.field] | removeHTMLTags\"\n style=\"width: 200px\"\n [attr.data-cy]=\"\n 'table-cell-' + (columnTypeEnum.RICH_TEXT | lowercase)\n \"\n >\n {{ val.rowData[val.col.field] | removeHTMLTags }}\n </div>\n </ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"columnTypeEnum.TEXT_AREA\">\n <ng-container *ngIf=\"val.rowData[val.col.field]; else emptyCell\">\n <div\n [pTooltip]=\"val.rowData[val.col.field]\"\n style=\"width: 200px\"\n [attr.data-cy]=\"\n 'table-cell-' + (columnTypeEnum.TEXT_AREA | lowercase)\n \"\n >\n {{ val.rowData[val.col.field] }}\n </div>\n </ng-container>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"columnTypeEnum.BOOLEAN\">\n <ng-container *ngIf=\"val.rowData[val.col.field]; else emptyCell\">\n <i\n [attr.data-cy]=\"'table-cell-' + (columnTypeEnum.BOOLEAN | lowercase)\"\n class=\"pi\"\n [ngClass]=\"{\n 'text-green-500 pi-check-circle': val.rowData[val.col.field],\n }\"\n ></i>\n </ng-container>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"columnTypeEnum.CUSTOM\">\n <span\n [innerHTML]=\"val.col.customRenderer(val.rowData)\"\n [attr.data-cy]=\"'table-cell-' + (columnTypeEnum.CUSTOM | lowercase)\"\n ></span>\n </ng-container>\n\n <ng-container *ngSwitchDefault\n ><td [attr.data-cy]=\"'table-cell-text'\">\n {{ val.rowData[val.col.field] | cellValue : val.col }}\n </td>\n </ng-container>\n </ng-container>\n</ng-template>\n\n<ng-template #emptyCell> -- </ng-template>\n\n<!-- Overlays for Columns/Filters/Exports -->\n\n<p-popover #cols>\n <div class=\"flex flex-column gap-3 w-25rem\">\n <div class=\"flex justify-content-between align-items-center\">\n <div class=\"text-lg font-bold\">Columns</div>\n <div>\n <p-button\n icon=\"pi pi-save\"\n [text]=\"true\"\n [label]=\"'ACTION.SAVE' | translate\"\n class=\"mr-2\"\n (click)=\"saveColumns()\"\n [attr.data-cy]=\"'table-save-col-button'\"\n />\n <p-button\n icon=\"pi pi-undo\"\n [text]=\"true\"\n [label]=\"'ACTION.RESET_FILTERS' | translate\"\n class=\"mr-2\"\n (click)=\"resetColumns()\"\n [attr.data-cy]=\"'table-reset-col-button'\"\n />\n </div>\n </div>\n\n <p-listbox\n [options]=\"columns\"\n [(ngModel)]=\"selectedColumns\"\n [multiple]=\"true\"\n [metaKeySelection]=\"false\"\n [listStyle]=\"{ 'max-height': '420px' }\"\n [attr.data-cy]=\"'table-list-box'\"\n >\n <ng-template let-item pTemplate=\"item\">\n <i *ngIf=\"item | isSelected : selectedColumns\" class=\"pi pi-eye\"></i>\n <i\n *ngIf=\"!(item | isSelected : selectedColumns)\"\n class=\"pi pi-eye-slash\"\n ></i>\n <span class=\"ml-2\"> {{ item.header | translate }}</span>\n </ng-template>\n </p-listbox>\n </div>\n</p-popover>\n\n<p-popover #filters>\n <div class=\"flex flex-column gap-3 w-25rem\">\n <div class=\"flex justify-content-between align-items-center\">\n <div class=\"text-lg font-bold\">Filter</div>\n <div>\n <p-button\n icon=\"pi pi-save\"\n [text]=\"true\"\n [label]=\"'ACTION.SAVE' | translate\"\n class=\"mr-2\"\n [attr.data-cy]=\"'table-save-col-button'\"\n />\n <p-button\n icon=\"pi pi-times\"\n [text]=\"true\"\n [label]=\"'Clear'\"\n class=\"mr-2\"\n (click)=\"resetFilters()\"\n [attr.data-cy]=\"'table-reset-col-button'\"\n />\n </div>\n </div>\n\n <div>\n <form [formGroup]=\"filtersForm\">\n @for(control of tableConfiguration.filterConfiguration; track\n control.key ){ @switch(control.type) { @case ('checkbox') {\n <div class=\"mb-4\">\n <p-checkbox\n binary=\"true\"\n type=\"checkbox\"\n [formControlName]=\"control.key\"\n />\n <label class=\"ml-2\">{{ control.label }}</label>\n </div>\n\n } @case ('dropdown') {\n <div class=\"mb-4\">\n <label class=\"mb-2 block\">{{ control.label }}</label>\n <p-select\n class=\"w-full\"\n [options]=\"control.options\"\n optionLabel=\"label\"\n [formControlName]=\"control.key\"\n [showClear]=\"true\"\n />\n </div>\n\n } } }\n </form>\n </div>\n </div>\n</p-popover>\n\n<p-popover #export>\n <div class=\"flex flex-column gap-1\">\n <p-button\n pRipple\n text=\"true\"\n icon=\"pi pi-file-pdf\"\n (click)=\"onExportClickEmmiter.emit(exportType.PDF)\"\n class=\"mr-2\"\n [label]=\"'ACTION.EXPORT_TO_PDF' | translate\"\n ></p-button>\n\n <p-button\n pRipple\n text=\"true\"\n icon=\"pi pi-file-excel\"\n (click)=\"onExportClickEmmiter.emit(exportType.EXCEL)\"\n class=\"mr-2\"\n [label]=\"'ACTION.EXPORT_TO_XLS' | translate\"\n ></p-button>\n </div>\n</p-popover>\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output, OnInit, inject, DestroyRef } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule, FormBuilder, FormGroup } from '@angular/forms';\nimport { PopoverModule } from 'primeng/popover';\nimport { ButtonModule } from 'primeng/button';\nimport { SelectModule } from 'primeng/select';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { InputIconModule } from 'primeng/inputicon';\nimport { IconFieldModule } from 'primeng/iconfield';\nimport { MultiSelectModule } from 'primeng/multiselect';\nimport { PhoenixDataTableActionComponent } from '../phoenix-data-table-action/phoenix-data-table-action.component';\nimport { PhoenixDataTableTabsComponent } from '../phoenix-data-table-tabs/phoenix-data-table-tabs.component';\nimport { ListboxModule } from 'primeng/listbox';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { IsSelectedPipe } from '../phoenix-data-table/isSelected.pipe';\nimport { TableColumn } from '../utils/dataTable.interface';\nimport { tableColumnType } from '../utils/dataTable.enum';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Component({\n selector: 'table-caption',\n standalone: true,\n imports: [\n CommonModule,\n PopoverModule,\n ButtonModule,\n SelectModule,\n InputTextModule,\n FormsModule,\n ReactiveFormsModule,\n InputIconModule,\n IconFieldModule,\n MultiSelectModule,\n PhoenixDataTableActionComponent,\n PhoenixDataTableTabsComponent,\n ListboxModule,\n TranslateModule,\n IsSelectedPipe\n ],\n templateUrl: './table-caption.component.html',\n styleUrl: './table-caption.component.css'\n})\nexport class TableCaptionComponent implements OnInit {\n @Input() tableConfiguration!: any;\n @Input() columns: any[] = []; \n @Input() searchQuery: string = '';\n @Input() selectedItems: any[] = [];\n\n @Output() applyFiltersEvent = new EventEmitter<any>();\n @Output() applyColumnsEvent = new EventEmitter<string[]>();\n @Output() searchChange = new EventEmitter<string>();\n @Output() actionClick = new EventEmitter<any>(); // Emit actions\n\n translateService = inject(TranslateService);\n dr = inject(DestroyRef);\n fb = inject(FormBuilder);\n filtersForm: FormGroup = this.fb.group({});\n _selectedColumns!: TableColumn[];\n globalFilterFields!: string[];\n\n ngOnInit() {\n if (this.tableConfiguration?.filterConfiguration) {\n this.tableConfiguration.filterConfiguration.forEach((filter: any) => {\n this.filtersForm.addControl(filter.key, this.fb.control(null));\n });\n this.filtersForm.valueChanges\n .pipe(takeUntilDestroyed(this.dr))\n .subscribe((r) => {\n this.applyFilters();\n });\n }\n this._selectedColumns = [...this.columns];\n\n if (this._selectedColumns) {\n this.globalFilterFields = this._selectedColumns\n .filter(\n (sc) =>\n sc.columnType === tableColumnType.TEXT &&\n sc.filter === undefined\n )\n .map((sc) => sc.field);\n }\n\n // this.selectedColumns = [...this.tableConfiguration.availableColumns];\n }\n\n emitSearch(query: string) {\n this.searchChange.emit(query);\n }\n\n applyFilters() {\n this.applyFiltersEvent.emit(this.filtersForm.value);\n }\n\n resetFilters() {\n this.filtersForm.reset();\n this.applyFilters();\n }\n\n applyColumns() {\n const selectedColumnKeys = this._selectedColumns.map(col => col.field); // Ekstraktujemo samo `field` vrednosti\n this.applyColumnsEvent.emit(selectedColumnKeys);\n }\n\n resetColumns() {\n this._selectedColumns = this.columns;\n this.applyColumns();\n }\n\n get selectedColumns(): TableColumn[] {\n return this._selectedColumns;\n }\n\n set selectedColumns(val: TableColumn[]) {\n //restore original order\n this._selectedColumns = this.columns.filter((col) =>\n val.some((v) => v.field === col.field)\n );\n this.applyColumns();\n }\n\n handleActionClick(action: any) {\n\n this.actionClick.emit({ action, selectedItems: this.selectedItems });\n console.log(action);\n \n }\n}","<div class=\"flex justify-content-between border-bottom-1 border-300 p-2\">\n <!-- Global Actions & Tabs -->\n <div class=\"flex align-items-center gap-2\">\n <ng-container *ngFor=\"let action of tableConfiguration.globalActions\">\n <phoenix-phoenix-data-table-action \n [actionConfig]=\"action\" \n (actionClick)=\"actionClick.emit($event)\">\n </phoenix-phoenix-data-table-action>\n </ng-container>\n\n <phoenix-data-table-tabs \n [attr.data-cy]=\"'table-select-button-' + tableConfiguration.tabs?.key\"\n [actions]=\"tableConfiguration.tabs\" \n (actionClick)=\"actionClick.emit($event)\">\n </phoenix-data-table-tabs>\n </div>\n \n\n <div class=\"flex align-items-center gap-2\">\n <!-- Filter, Columns, Search -->\n <p-button icon=\"pi pi-filter\" [rounded]=\"true\" label=\"Filter\" [text]=\"true\" class=\"mr-2\"\n (onClick)=\"filtersPopover.toggle($event)\" />\n \n <p-button icon=\"pi pi-sliders-v\" [rounded]=\"true\" [text]=\"true\" label=\"Columns\" class=\"mr-2\"\n (onClick)=\"columnsPopover.toggle($event)\" />\n \n <span class=\"p-input-icon-left ml-auto\">\n <p-iconfield>\n <p-inputicon styleClass=\"pi pi-search\" />\n <input type=\"text\" (input)=\"emitSearch($any($event.target).value)\" pInputText\n placeholder=\"{{ 'SEARCH_KEYWORD' | translate }}\" />\n </p-iconfield>\n </span>\n\n </div>\n\n</div>\n\n<!-- Popover Filters -->\n<p-popover #filtersPopover>\n <div class=\"flex flex-column gap-3 w-25rem\">\n <div class=\"flex justify-content-between align-items-center\">\n <div class=\"text-lg font-bold\">{{ 'FILTERS' | translate }}</div>\n <div>\n <p-button icon=\"pi pi-save\" [text]=\"true\" label=\"{{ 'SAVE' | translate }}\" class=\"mr-2\"\n (click)=\"applyFilters()\" />\n\n <p-button icon=\"pi pi-times\" [text]=\"true\" label=\"{{ 'CLEAR' | translate }}\" class=\"mr-2\"\n (click)=\"filtersForm.reset()\" />\n </div>\n </div>\n\n <form [formGroup]=\"filtersForm\">\n @for(control of tableConfiguration.filterConfiguration; track control.key ){ \n @switch(control.type) { \n @case ('checkbox') {\n <div class=\"mb-4\">\n <p-checkbox\n binary=\"true\"\n type=\"checkbox\"\n [formControlName]=\"control.key\"\n />\n <label class=\"ml-2\">{{ control.label }}</label>\n </div>\n } \n @case ('dropdown') {\n <div class=\"mb-4\">\n <label class=\"mb-2 block\">{{ control.label }}</label>\n <p-select\n class=\"w-full\"\n [options]=\"control.options\"\n optionLabel=\"label\"\n [formControlName]=\"control.key\"\n [showClear]=\"true\"\n />\n </div>\n } \n } \n }\n </form>\n </div>\n</p-popover>\n\n<!-- Popover Columns -->\n<p-popover #columnsPopover>\n \n <div class=\"flex flex-column gap-3 w-25rem\">\n <div class=\"flex justify-content-between align-items-center\">\n <div class=\"text-lg font-bold\">{{ 'COLUMS' | translate }}</div>\n <div>\n <p-button icon=\"pi pi-save\" [text]=\"true\" label=\"{{ 'SAVE' | translate }}\" class=\"mr-2\"\n (click)=\"applyColumns()\" />\n </div>\n </div>\n\n <p-listbox\n [options]=\"columns\"\n [(ngModel)]=\"selectedColumns\"\n [multiple]=\"true\"\n [metaKeySelection]=\"false\"\n [listStyle]=\"{ 'max-height': '420px' }\"\n [attr.data-cy]=\"'table-list-box'\"\n >\n <ng-template let-item pTemplate=\"item\">\n <i *ngIf=\"item | isSelected : selectedColumns\" class=\"pi pi-eye\"></i>\n <i\n *ngIf=\"!(item | isSelected : selectedColumns)\"\n class=\"pi pi-eye-slash\"\n ></i>\n <span class=\"ml-2\"> {{ item.header | translate }}</span>\n </ng-template>\n </p-listbox>\n </div>\n</p-popover>","import { Pipe, PipeTransform } from '@angular/core';\nimport { DatePipe } from '@angular/common';\n\n@Pipe({\n name: 'cell',\n standalone: true,\n pure: false\n})\nexport class TableCellPipe implements PipeTransform {\n constructor(private datePipe: DatePipe) {}\n\n transform(value: any, col: any, dateFormat: string = 'yyyy-MM-dd'): any {\n if (!value) return '--';\n\n switch (col.columnType) {\n\n case 'PERSON':\n return { name: value?.name || '--', avatar: value?.name?.charAt(0) || '?' };\n\n case 'DATE':\n return this.datePipe.transform(value, dateFormat);\n\n case 'DATE_COMPLEX':\n return this.datePipe.transform(value, dateFormat + ' | HH:mm');\n\n case 'LIST':\n return value.map((item: any) => item.name).join(', ');\n\n case 'RICH_TEXT':\n case 'TEXT_AREA':\n return value;\n\n case 'BOOLEAN':\n return value ? '✔️' : '❌';\n\n case 'CUSTOM':\n return col.customRenderer ? col.customRenderer(value) : value;\n\n default:\n return value.toString();\n }\n }\n}\n","import { Component, Input, signal, effect, OnInit, EventEmitter, Output, inject } from '@angular/core';\nimport { TableLazyLoadEvent, TableModule } from 'primeng/table';\nimport { TableCaptionComponent } from '../table-caption/table-caption.component';\nimport { CommonModule } from '@angular/common';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { PhoenixDataTableActionComponent } from '../phoenix-data-table-action/phoenix-data-table-action.component';\nimport { TagModule } from 'primeng/tag';\nimport { AvatarModule } from 'primeng/avatar';\nimport { TooltipModule } from 'primeng/tooltip';\nimport { tableColumnType } from '../utils/dataTable.enum';\nimport { TableCellPipe } from '../utils/table-cell.pipe';\nimport { SkeletonModule } from 'primeng/skeleton';\n\n\n@Component({\n selector: 'phoenix-table',\n standalone: true,\n imports: [\n CommonModule,\n TableModule, \n TableCaptionComponent,\n TranslateModule,\n PhoenixDataTableActionComponent,\n TagModule,\n AvatarModule,\n TooltipModule,\n TableCellPipe,\n SkeletonModule\n ],\n templateUrl: './table.component.html',\n styleUrls: ['./table.component.css'],\n})\nexport class TableComponent implements OnInit {\n // Input data\n @Input() set data(value: any[]) {\n this.allData = value;\n this.originalData = [...value]; // Dave origin table data\n this.totalRecords.set(this.allData.length);\n this.loadLazyData({ first: 0, rows: 100 }); // Load the first chunk of data\n }\n\n @Input() columns: any[] = [];\n @Input() tableConfiguration: any;\n\n // Output events for parent component communication\n @Output() actionClick = new EventEmitter<any>();\n @Output() rowSelection = new EventEmitter<any>();\n\n // Inject translation service\n translateService = inject(TranslateService);\n\n // Signals for reactive state management\n allData: any[] = []; // Complete dataset\n tableDataSignal = signal<any[]>([]); // Data currently displayed in the table\n searchQuery = signal('');\n selectedColumns = signal(this.columns);\n selectedItems = signal<any[]>([]);\n bulkMode = signal<boolean>(false);\n totalRecords = signal<number>(0);\n multiSortMeta = signal<any[]>([]);\n isLoading = signal<boolean>(false);\n lastLoadedIndex = 0; // Tracks the last loaded index to prevent redundant loading\n originalData: any[] = []; // Holds origin table data\n\n private hasLoadedInitialData = false; // Prevents multiple initial calls\n\n // Enum for column types\n columnTypeEnum = tableColumnType;\n\n // Date format (to be configured)\n dateFormat!: string;\n\n constructor() {\n // Reset table data when initialized\n effect(() => {\n this.tableDataSignal.set([]);\n });\n }\n\n ngOnInit() {\n console.log('Current language:', this.translateService.currentLang);\n if (this.columns.length > 0) {\n this.selectedColumns.set(this.columns);\n }\n }\n\n // **Lazy Data Loading**\n loadLazyData(event: TableLazyLoadEvent) {\n let { first, rows, multiSortMeta } = event;\n\n if (this.allData?.length === 0) {\n return;\n }\n\n if (!rows || rows <= 0) {\n rows = 100;\n }\n if (first === undefined || first < 0) {\n first = this.lastLoadedIndex; // Continues from the last loaded index\n }\n\n // Prevent multiple initial calls before data is loaded\n if (!this.hasLoadedInitialData && this.allData.length === 0) {\n this.hasLoadedInitialData = true; // Marks initial load as done\n return;\n }\n\n this.isLoading.set(true);\n\n setTimeout(() => {\n let sortedData = [...this.allData];\n\n if (multiSortMeta && multiSortMeta.length > 0) {\n sortedData.sort((a, b) => {\n for (const sortMeta of multiSortMeta) {\n const field = sortMeta.field;\n const order = sortMeta.order;\n\n let valueA = a[field];\n let valueB = b[field];\n\n const isNumberA = !isNaN(parseFloat(valueA)) && isFinite(valueA);\n const isNumberB = !isNaN(parseFloat(valueB)) && isFinite(valueB);\n\n if (isNumberA && isNumberB) {\n return (valueA - valueB) * order; // Correct numerical sorting\n } else {\n valueA = valueA ? valueA.toString().toLowerCase() : '';\n valueB = valueB ? valueB.toString().toLowerCase() : '';\n\n if (valueA < valueB) return -1 * order;\n if (valueA > valueB) return 1 * order;\n }\n }\n return 0;\n });\n }\n\n // Retrieve the required segment of data\n const newData = sortedData.slice(first, first + rows);\n const currentData = [...this.allData];\n\n // Uses the same approach as the original code with `splice.apply()`\n Array.prototype.splice.apply(currentData, [first, rows, ...newData]);\n\n // Updates the tableDataSignal with the modified data\n this.tableDataSignal.set(currentData);\n\n this.isLoading.set(false);\n this.lastLoadedIndex = first + rows;\n\n // Forces table refresh\n if (event.forceUpdate) {\n event.forceUpdate();\n }\n }, 100);\n }\n\n // **Apply Filters**\n applyFilters(filters: { [key: string]: any }) {\n this.allData = this.originalData.filter(item => {\n return Object.keys(filters).every(key => {\n const filterValue = filters[key]?.key || filters[key];\n const itemValue = item[key]?.key || item[key];\n\n return filterValue\n ? itemValue?.toString().toLowerCase() === filterValue.toString().toLowerCase()\n : true;\n });\n });\n\n // Update total record count and reset loaded index\n this.totalRecords.set(this.allData.length);\n this.lastLoadedIndex = 0;\n this.tableDataSignal.set([]);\n this.loadLazyData({ first: 0, rows: 100 });\n }\n\n // **Apply Column Selection**\n applyColumns(selectedColumns: string[]) {\n this.selectedColumns.set(this.columns.filter(col => selectedColumns.includes(col.field)));\n }\n\n // **Handle Search Query**\n onSearch(query: string) {\n this.searchQuery.set(query.toLowerCase());\n this.filterTableData();\n }\n\n // **Handle Row Click**\n onRowClick(event: Event, rowData: any) {\n event.stopPropagation(); // Prevent checkbox selection conflict\n this.rowSelection.emit(rowData);\n }\n\n // **Handle Checkbox Selection**\n onSelectionChange(selected: any[]) {\n console.log(selected.length > 0);\n\n this.bulkMode.set(selected.length > 0)\n \n this.selectedItems.set(selected);\n }\n\n // **Handle Action Clicks**\n handleActionClick(event: any) {\n this.actionClick.emit(event);\n }\n\n // **Translate Key**\n translateKey(key: string): string {\n return this.translateService.instant(key);\n }\n\n // **Filter table data on search**\n filterTableData() {\n const query = this.searchQuery();\n const filteredData = this.allData.filter(item =>\n Object.values(item).some(value =>\n value?.toString().toLowerCase().includes(query)\n )\n );\n this.tableDataSignal.set(filteredData);\n}\n}\n\n","<div class=\"border-1 border-round-sm border-300 border-round-md m-2\">\n @if (selectedItems().length <= 0){\n <table-caption\n [columns]=\"columns\"\n [tableConfiguration]=\"tableConfiguration\"\n [selectedItems]=\"selectedItems()\"\n (applyFiltersEvent)=\"applyFilters($event)\"\n (applyColumnsEvent)=\"applyColumns($event)\"\n (searchChange)=\"onSearch($event)\"\n (actionClick)=\"handleActionClick($event)\"\n >\n </table-caption>\n } @else {\n <div\n style=\"min-height: 40px; padding: 8px\"\n class=\"flex justify-content-between align-items-center border-bottom-1 border-300 pl-5 pr-5 text-sm text-500\"\n >\n <span>{{ selectedItems().length }} items selected</span>\n <div>\n <ng-container *ngFor=\"let action of tableConfiguration.bulkActions\">\n <phoenix-phoenix-data-table-action\n [actionConfig]=\"action\"\n [selectedData]=\"selectedItems\"\n (actionClick)=\"actionClick.emit({ action, selectedItems })\"\n ></phoenix-phoenix-data-table-action>\n </ng-container>\n\n <button\n class=\"p-button p-button-text p-button-plain\"\n (click)=\"selectedItems.set([])\"\n aria-label=\"Clear Selection\"\n >\n <i class=\"pi pi-times\"></i>\n </button>\n </div>\n </div>\n }\n\n <p-table\n [columns]=\"selectedColumns()\"\n [value]=\"tableDataSignal()\"\n [size]=\"'small'\"\n scrollable=\"true\"\n [scrollHeight]=\"tableConfiguration.scrollHeight\"\n [virtualScroll]=\"true\"\n [virtualScrollItemSize]=\"50\"\n [rows]=\"100\"\n [lazy]=\"true\"\n [totalRecords]=\"totalRecords()\"\n (onLazyLoad)=\"loadLazyData($event)\"\n [selection]=\"selectedItems()\"\n (selectionChange)=\"onSelectionChange($event)\"\n [sortMode]=\"'multiple'\"\n [size]=\"'small'\"\n [resizableColumns]=\"true\"\n columnResizeMode=\"expand\"\n >\n <ng-template #header let-columns>\n <tr style=\"height: 40px\" class=\"dt-header\">\n <th class=\"custom-th\" style=\"width: 4rem\"><p-tableHeaderCheckbox /></th>\n <th\n pResizableColumn\n class=\"custom-th font-bold\"\n *ngFor=\"let col of columns\"\n [pSortableColumn]=\"col.field\"\n >\n {{ col.header | translate }}\n <p-sortIcon [field]=\"col.field\"></p-sortIcon>\n </th>\n <!-- create empty th placeholders for actions -->\n <th class=\"custom-th\"></th>\n </tr>\n </ng-template>\n\n <ng-template\n #body\n let-rowData\n let-columns=\"columns\"\n let-rowIndex=\"rowIndex\"\n >\n <tr>\n <td>\n <p-tableCheckbox [value]=\"rowData\" />\n </td>\n <td\n *ngFor=\"let col of columns; let i = index\"\n (click)=\"\n i < 2 && tableConfiguration.hasCellClick\n ? onRowClick($event, rowData)\n : null\n \"\n [ngClass]=\"{\n 'text-blue-500 underline cursor-pointer':\n i < 2 && tableConfiguration.hasCellClick\n }\"\n >\n <ng-container [ngSwitch]=\"col.columnType\">\n <!-- TAG case -->\n <ng-container *ngSwitchCase=\"columnTypeEnum.TAG\">\n <ng-container *ngIf=\"rowData[col.field]; else emptyCell\">\n <p-tag\n styleClass=\"custom-tag\"\n [style]=\"{\n 'background-color': rowData[col.field + 'Color'] || '#ccc',\n \n }\"\n [value]=\"rowData[col.field]?.name || rowData[col.field]\"\n >\n </p-tag>\n </ng-container>\n </ng-container>\n\n <!-- PERSON case -->\n <ng-container *ngSwitchCase=\"columnTypeEnum.PERSON\">\n <ng-container *ngIf=\"rowData[col.field]; else emptyCell\">\n <p-avatar\n [label]=\"(rowData[col.field] | cell : col)?.avatar\"\n class=\"mr-1\"\n [style]=\"{ 'background-color': '#9c27b0', color: '#ffffff' }\"\n shape=\"circle\"\n >\n </p-avatar>\n {{ (rowData[col.field] | cell : col)?.name }}\n </ng-container>\n </ng-container>\n\n <!-- LIST case -->\n <ng-container *ngSwitchCase=\"columnTypeEnum.LIST\">\n <ng-container *ngIf=\"rowData[col.field]; else emptyCell\">\n <ul\n *ngFor=\"let item of rowData[col.field]\"\n [attr.data-cy]=\"\n 'table-cell-' + (columnTypeEnum.LIST | lowercase)\n \"\n >\n <li>{{ item.name }}</li>\n </ul>\n </ng-container>\n </ng-container>\n\n <!-- DEFAULT case -->\n <ng-container *ngSwitchDefault>\n <span\n [innerHTML]=\"rowData[col.field] | cell : col : dateFormat\"\n ></span>\n </ng-container>\n </ng-container>\n </td>\n\n <td class=\"p-0\">\n <ng-container *ngFor=\"let action of tableConfiguration.rowActions\">\n <phoenix-phoenix-data-table-action\n [actionConfig]=\"action\"\n [rowData]=\"rowData\"\n (actionClick)=\"handleActionClick({ $event, rowData })\"\n ></phoenix-phoenix-data-table-action\n ></ng-container>\n </td>\n </tr>\n </ng-template>\n\n <ng-template #emptyCell> -- </ng-template>\n\n <ng-template pTemplate=\"loadingbody\" let-columns>\n <tr style=\"height: 46px\">\n <td *ngFor=\"let col of columns; let even = even\">\n <tr>\n <td *ngFor=\"let col of columns; let even = even\">\n <p-skeleton\n [ngStyle]=\"{\n width: '60%',\n }\"\n ></p-skeleton>\n </td>\n\n <td>\n <p-skeleton\n [ngStyle]=\"{\n width: '20%',\n }\"\n ></p-skeleton>\n </td>\n </tr>\n </td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"emptymessage\">\n <td class=\"p-2\" colspan=\"100\">\n <div class=\"flex align-items-center\">\n <i class=\"pi pi-info-circle mr-2\"></i>\n {{ \"NO_RESULTS_FOUND\" | translate }}\n </div>\n </td>\n </ng-template>\n </p-table>\n <div class=\"border-top-1 border-300 pl-2 p-1 text-sm text-500\">\n Total records: {{ tableDataSignal().length }}\n </div>\n</div>\n","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\n\nexport function startDueDateValidator(\n control: AbstractControl,\n): { [key: string]: any } | null {\n const startDate = control.get('startDate')?.value;\n const dueDate = control.get('dueDate')?.value;\n\n return { invalidDate: true };\n}\n","import {\n AbstractControl,\n AsyncValidatorFn,\n ValidatorFn,\n Validators,\n} from '@angular/forms';\nimport { debounceTime, map, of, switchMap, timer } from 'rxjs';\n\nconst regexPatternEn =\n /^(?:(\\d+(?:\\.\\d+)?)w\\s*|)(?:(\\d+(?:\\.\\d+)?)d\\s*|)(?:(\\d+(?:\\.\\d+)?)h\\s*|)(?:(\\d+(?:\\.\\d+)?)m\\s*|)$/;\nconst regexPatternDe =\n /^(?:(\\d+(?:\\.\\d+)?)w\\s*|)(?:(\\d+(?:\\.\\d+)?)t\\s*|)(?:(\\d+(?:\\.\\d+)?)s\\s*|)(?:(\\d+(?:\\.\\d+)?)m\\s*|)$/;\n\nconst regexPatternSr =\n /^(?:(\\d+(?:\\.\\d+)?)n\\s*|)(?:(\\d+(?:\\.\\d+)?)d\\s*|)(?:(\\d+(?:\\.\\d+)?)č\\s*|)(?:(\\d+(?:\\.\\d+)?)m\\s*|)$/;\n\nfunction toMS(input: string, regex: RegExp) {\n const match = input?.match(regex);\n if (!match) return 0; // or handle it differently\n\n const weeks = parseFloat(match[1]) || 0;\n const days = parseFloat(match[2]) || 0;\n const hours = parseFloat(match[3]) || 0;\n const minutes = parseFloat(match[4]) || 0;\n\n const milliseconds =\n (weeks * 7 + days) * 24 * 60 * 60 * 1000 +\n hours * 60 * 60 * 1000 +\n minutes * 60 * 1000;\n return milliseconds;\n}\n\nfunction getLangPattern(currentLang: string) {\n switch (currentLang) {\n case 'de':\n return regexPatternDe;\n case 'en':\n return regexPatternEn;\n default:\n return regexPatternSr;\n }\n}\n\nexport function timePeriod(currentLang: string, tpMin: number): ValidatorFn {\n return (control: AbstractControl) => {\n if (!control.pristine) {\n const regValidator = Validators.pattern(getLangPattern(currentLang));\n if (regValidator(control)) {\n return { timeperiod: true };\n }\n\n if (control.status === 'VALID' && control.dirty) {\n if (toMS(control.value, getLangPattern(currentLang)) > 31536000000) {\n return { timeperiod_limit_max: true };\n }\n if (\n tpMin != null &&\n toMS(control.value, getLangPattern(currentLang)) <= tpMin\n ) {\n return { timeperiod_limit_min: true };\n }\n return null;\n }\n return null;\n }\n\n return null;\n };\n}\n","export enum ControlType {\n TEXT = 'TEXT',\n NUMBER = 'NUMBER',\n MS_OPTION = 'MS_OPTION',\n SS_OPTION = 'SS_OPTION',\n TEXT_AREA = 'TEXT_AREA',\n TEXT_EDITOR = 'TEXT_EDITOR',\n DATE = 'DATE',\n START_DUE_DATE = 'START_DUE_DATE',\n CHECKBOX = 'CHECKBOX',\n CHECKBOX_COLOR = 'CHECKBOX_COLOR',\n LINKS_DATA = 'LINKS_DATA',\n PASSWORD = 'PASSWORD',\n SWITCH = 'SWITCH',\n TIMEPERIOD = 'TIMEPERIOD',\n CURRENCY = 'CURRENCY',\n ASSIGN = 'ASSIGN',\n COLOR = 'COLOR',\n SELECT_BUTTON = 'SELECT_BUTTON',\n UPLOAD = 'UPLOAD',\n SLOT = 'SLOT',\n SS_OPTION_OBJECT_BASED = 'SS_OPTION_OBJECT_BASED',\n}\n","import { ControlType } from './control-type.enum';\n\nexport function getFieldType(control: any) {\n switch (control.configuration.type) {\n case ControlType.TEXT:\n case ControlType.TEXT_AREA:\n case ControlType.TEXT_EDITOR:\n case ControlType.CHECKBOX:\n return control.dataValue;\n case ControlType.SS_OPTION:\n return control.dataOptionValue;\n case ControlType.MS_OPTION:\n return control.dataOptionValues;\n default:\n // console.log(control + ' ' + control.configuration.type);\n }\n}\n","import { AbstractControl, UntypedFormControl } from '@angular/forms';\n\nexport class WhiteSpaceValidator {\n static noWhiteSpaceValidator(control: AbstractControl<any, any>) {\n if (typeof control.value === 'object') {\n return { whitespace: false };\n }\n if (control.value === '') {\n return { whitespace: false };\n }\n const isWhitespace = (control.value || '').trim().length === 0;\n const isValid = !isWhitespace;\n return isValid ? null : { whitespace: true };\n }\n static noWhiteSpaceValidatorForEditor(control: UntypedFormControl) {\n const isWhitespace =\n (control.value?.replace(/(<([^>]+)>)/gi, '') || '').trim().length === 0;\n const isValid = !isWhitespace;\n return isValid ? null : { whitespace: true };\n }\n}\n","import { Injectable, inject } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { BehaviorSubject, Subject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class MetaFormService {\n router = inject(Router);\n private formEvent = new Subject<any>();\n private formReadOnlySubject = new BehaviorSubject<boolean>(false);\n private formTabContent = new BehaviorSubject<string>('FORM');\n private formDirtyStatus = new BehaviorSubject<boolean>(false);\n private formBuildCompletedSubject = new BehaviorSubject<boolean>(false);\n\n currentFormState = this.formEvent.asObservable();\n formReadOnlyState = this.formReadOnlySubject.asObservable();\n currentFormTabContent = this.formTabContent.asObservable();\n currentFormDirtyStatus = this.formDirtyStatus.asObservable();\n\n /**\n * Notify when form is completed\n * @description Notifies you about when form bild is completed in meta-form component class. Usefull when you need to attach some listeners on form controls or any other action related to form when all controls are avaiable\n * @returns {boolean}\n */\n formBuildCompleted = this.formBuildCompletedSubject.asObservable();\n\n constructor() {}\n\n setFormEvent(event: any): void {\n this.formEvent.next(event);\n }\n\n setFormReadOnlyState(state: boolean) {\n this.formReadOnlySubject.next(state);\n // this.router.navigate([], {\n // queryParams: {\n // edit: state ? null : !state,\n // },\n // queryParamsHandling: 'merge',\n // });\n }\n\n setFormTabContent(tabContent: string) {\n this.formTabContent.next(tabContent);\n }\n\n setFormDirtyStatus(status: boolean) {\n this.formDirtyStatus.next(status);\n }\n /**\n * Sets the form build completion status to indicate when the form is created.\n *\n * @param {boolean} isCompleted - A boolean value to indicate whether the form build is completed.\n * Set to `true` when the form is fully created.\n *\n * @description This method is used to notify when the form is created and ready for use.\n */\n setFormBuildCompletition(isCompleted: boolean) {\n this.formBuildCompletedSubject.next(isCompleted);\n }\n}\n","import { Directive, EventEmitter, Input, Output } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Observable, Subscription } from 'rxjs';\n\nimport { HttpClient } from '@angular/common/http';\n// import { EnvService } from '@phoenix/environment';\nimport { startDueDateValidator } from './meta-validators/due-date/start-due-date.validator';\n\nimport { timePeriod } from './meta-validators/timeperiod/timeperiod.validator';\n\nimport { MetaControl } from './meta-form-interface/interfaces';\nimport { MetaFormService } from './services/meta-form.service';\nimport { ControlType } from './utils/control-type.enum';\nimport { getFieldType } from './utils/get-field-type.utils';\nimport { WhiteSpaceValidator } from './meta-validators/white-space-validator';\n\n@Directive()\nexport abstract class MetaFormAbstract {\n @Input() metaForm!: FormGroup;\n @Input() metaFormValues: any;\n @Input() metaFormControls: any;\n @Input() disableForm: boolean = false;\n @Input() formButtons: boolean = true;\n @Input() groupForm: boolean = false;\n @Output() onFormSubmit = new EventEmitter();\n @Output() onFormCancel = new EventEmitter();\n\n formActive$!: Observable<boolean>;\n formSub$!: Subscription;\n\n constructor(\n private fb: FormBuilder,\n public metaService: MetaFormService,\n\n private translateService: TranslateService,\n private http: HttpClient // private env: EnvService\n ) {\n this.metaForm = this.fb.group({});\n this.formActive$ = this.metaService.formReadOnlyState;\n ///check if this has usecase\n this.formSub$ = this.metaForm.valueChanges.subscribe((ev: any) => {\n this.metaService.setFormEvent(ev);\n });\n }\n\n createForm(controls: MetaControl[] | any) {\n controls?.forEach((control: any) => {\n this.metaForm.addControl(\n control.configuration?.key,\n this.fb.control(\n getFieldType(control)\n ///updateOn: blur only for controls with async validators. If added for all each tab/step toggle removes form value. Check why\n // control.asyncValidators && { updateOn: 'blur' },\n )\n );\n //add validators\n this.addControlValidators(control);\n\n //disable non editable fields\n if (control.disable) {\n this.metaForm.get(control.configuration.key)?.disable();\n }\n });\n ///patch values in form\n if (this.metaFormValues) {\n this.metaForm.patchValue(this.metaFormValues);\n }\n\n this.metaService.setFormBuildCompletition(true);\n }\n\n activateForm() {\n throw new Error('not implemented');\n }\n\n addControlValidators(control: any) {\n const validators: any[] = [];\n const asyncValidators: any[] = [];\n\n // if (control.asyncValidators) {\n // control?.asyncValidators?.uniqueName &&\n // asyncValidators.push(\n // uniqueEntry(control, this.metaFormValues?.uuid, this.http)\n // );\n\n // control?.asyncValidators?.uniqueTitle &&\n // asyncValidators.push(\n // uniqueTitle(control, this.metaFormValues?.uuid, this.http)\n // );\n\n // control?.asyncValidators?.uniqueValue &&\n // asyncValidators.push(uniqueValue(control, this.http));\n // }\n\n if (control.validators) {\n control.validators.min &&\n validators.push(Validators.min(control.validators.min));\n\n control.validators.max &&\n validators.push(Validators.max(control.validators.max));\n\n control.validators.maxLenght &&\n validators.push(Validators.maxLength(control.validators.maxLenght));\n\n control.validators.minLength &&\n validators.push(Validators.minLength(control.validators.minLength));\n\n control.validators.email && validators.push(Validators.email);\n\n control.validators.regex &&\n validators.push(\n Validators.pattern(control.validators.regex?.regexType)\n );\n\n control.validators.timeperiod &&\n validators.push(\n timePeriod(\n this.translateService.currentLang,\n control.validators.tpMin\n )\n );\n\n control.validators.dueDate && validators.push(startDueDateValidator);\n }\n if (control?.mandatory) {\n validators.push(Validators.required);\n }\n\n if (control?.mandatory && control.configuration.type === ControlType.TEXT) {\n validators.push(WhiteSpaceValidator.noWhiteSpaceValidator);\n }\n\n if (\n control?.mandatory &&\n control.configuration.type === ControlType.TEXT_AREA\n ) {\n validators.push(WhiteSpaceValidator.noWhiteSpaceValidator);\n }\n\n this.metaForm.get(control.configuration.key)?.setValidators(validators);\n this.metaForm\n .get(control.configuration.key)\n ?.setAsyncValidators(asyncValidators);\n }\n\n onSubmit() {\n this.onFormSubmit.emit(this.metaForm);\n }\n\n onCancel() {\n this.metaForm.reset();\n this.onFormCancel.emit();\n }\n\n /**\n * Resets form to initial state\n *\n * @description Useful when user interact with form (edit some inputs) and than clicks CANCEL. This method patch original values to FormGroup again\n *\n */\n resetToInitialValues() {\n this.metaForm.patchValue(this.metaFormValues);\n }\n\n ngOnDestroy(): void {\n if (this.formSub$) this.formSub$.unsubscribe();\n }\n}\n","export function getLanguageParam(\n obj: any,\n langType: string,\n paramName: string,\n): string {\n if (!langType) langType = 'en';\n if (langType && paramName) {\n const param: string =\n paramName + langType.charAt(0).toUpperCase() + langType.slice(1);\n const fallBackParam: string = paramName + 'En';\n if (obj?.[param]) {\n return obj[param];\n } else if (obj?.[fallBackParam]) {\n return obj[fallBackParam];\n } else {\n return param;\n }\n } else {\n return '***NO VALUE***';\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { getLanguageParam } from './lang.utils';\n\n@Pipe({\n name: 'fieldLabel',\n standalone: true,\n})\nexport class FieldLabelPipe implements PipeTransform {\n transform(value: any, currentLang: string): string {\n if (value.hasOwnProperty('userFriendlyMessage')) {\n return value?.userFriendlyMessage;\n }\n const metaLabel = getLanguageParam(value, currentLang, 'labelKeyVal');\n return metaLabel;\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { FieldLabelPipe } from '../utils/field-label.pipe';\n\n@Component({\n selector: 'phoenix-meta-label',\n standalone: true,\n imports: [CommonModule, TranslateModule, FieldLabelPipe],\n template: `\n <label class=\"mb-1 block\" *ngIf=\"!control?.hidden\">\n {{ control | fieldLabel: currentLang | translate }}\n <span *ngIf=\"control.mandatory\" class=\"red-asterisk\">*</span>\n </label>\n `,\n styles: [],\n})\nexport class MetaLabelComponent {\n @Input() control: any;\n currentLang: string;\n constructor(private translateService: TranslateService) {\n this.currentLang = this.translateService.currentLang;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, forwardRef, inject } from '@angular/core';\nimport {\n ControlValueAccessor,\n FormGroup,\n NG_VALUE_ACCESSOR,\n} from '@angular/forms';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\n// import { Assignee } from '@phoenix/model-meta';\n// import { PhoenixDialogService } from '@phoenix/service/common';\nimport { ButtonModule } from 'primeng/button';\nimport { OverlayPanelModule } from 'primeng/overlaypanel';\nimport { PanelModule } from 'primeng/panel';\nimport { MetaLabelComponent } from '../../meta-field-label/meta-label.component';\nimport { ObjectItemDialogComponent } from '../object-item-dialog/object-item-dialog.component';\n\n@Component({\n selector: 'phoenix-meta-assign-responsible',\n standalone: true,\n imports: [\n CommonModule,\n ButtonModule,\n MetaLabelComponent,\n TranslateModule,\n OverlayPanelModule,\n PanelModule,\n ],\n template: `\n <div [style.display]=\"control.hidden ? 'none' : 'block'\">\n <phoenix-meta-label [control]=\"control\"></phoenix-meta-label>\n <div\n [attr.data-cy]=\"'assign-' + control?.id\"\n *ngIf=\"\n parentForm.controls[this.control.configuration.key].value &&\n parentForm.controls[this.control.configuration.key].value.uuid\n \"\n class=\"flex align-items-center\"\n >\n <div>\n <p-button\n [rounded]=\"true\"\n [text]=\"true\"\n (onClick)=\"op.toggle($event)\"\n >\n <div class=\"person-wrap\">\n <div class=\"person-avatar\">\n {{\n parentForm.controls[\n this.control.configuration.key\n ].value?.name?.charAt(0)\n }}\n </div>\n <div>\n <p\n class=\"white-space-nowrap overflow-hidden text-overflow-ellipsis\"\n >\n {{\n parentForm.controls[this.control.configuration.key].value\n ?.name\n }}\n </p>\n <p\n class=\"white-space-nowrap overflow-hidden text-overflow-ellipsis\"\n >\n {{\n parentForm.controls[this.control.configuration.key].value\n ?.function\n }}\n </p>\n </div>\n </div></p-button\n >\n <p-overlayPanel #op>\n <div>\n <span class=\"block mb-2\">\n <i class=\"pi pi-envelope mr-1 text-500\"></i>\n\n {{\n parentForm.controls[this.control.configuration.key].value\n ?.email ?? ' --'\n }}\n </span>\n <p>\n <i class=\"pi pi-phone mr-1 text-500\"></i\n >{{\n parentForm.controls[this.control.configuration.key].value\n ?.phone ?? ' --'\n }}\n </p>\n </div></p-overlayPanel\n >\n </div>\n\n <div style=\"paddingBottom:4px\">\n <p-button\n *ngIf=\"\n parentForm.controls[this.control.configuration.key].value &&\n parentForm.controls[this.control.configuration.key].value.uuid\n \"\n styleClass=\"p-button-sm mt-1\"\n type=\"button\"\n [text]=\"true\"\n label=\"{{ 'ACTION.REASSIGN' | translate }}\"\n (click)=\"assignResponsible()\"\n ></p-button>\n <p-button\n *ngIf=\"\n parentForm.controls[this.control.configuration.key].value &&\n parentForm.controls[this.control.configuration.key].value.uuid\n \"\n type=\"button\"\n icon=\"pi pi-times\"\n (click)=\"clear()\"\n [text]=\"true\"\n styleClass=\"p-button-danger p-button-sm mt-1 ml-2\"\n ></p-button>\n </div>\n </div>\n <p-button\n *ngIf=\"\n !(\n parentForm.controls[this.control.configuration.key].value &&\n parentForm.controls[this.control.configuration.key].value.uuid\n )\n \"\n type=\"button\"\n icon=\"pi pi-user-plus\"\n styleClass=\"p-button-sm mt-1\"\n label=\"{{ 'ACTION.ASSIGN' | translate }}\"\n (click)=\"assignResponsible()\"\n [text]=\"true\"\n ></p-button>\n </div>\n `,\n styles: [\n `\n .person-wrap {\n display: flex;\n align-items: center;\n\n margin-left: -6px;\n\n & p {\n margin: 0;\n }\n\n .person-avatar {\n display: flex;\n justify-content: center;\n align-items: center;\n width: 28px;\n height: 28px;\n min-width: 28px;\n min-height: 28px;\n margin-right: 5px;\n background-color: rgb(233, 66, 96);\n color: white;\n border-radius: 50%;\n /* font-weight: 800; */\n font-size: 1rem;\n }\n .person-name :first-child {\n font-size: 1rem;\n }\n }\n\n .person-details {\n border-top: 1px solid #e0e0e0;\n padding: 5px;\n margin-left: -6px;\n width: 150px;\n\n p {\n margin: 0;\n display: flex;\n align-items: center;\n }\n\n i {\n color: #e94260;\n padding-right: 5px;\n }\n\n .p-editor-container {\n padding-left: 0 !important;\n }\n }\n `,\n ],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MetaAssignResponsibleComponent),\n multi: true,\n },\n ],\n})\nexport class MetaAssignResponsibleComponent implements ControlValueAccessor {\n @Input() control: any;\n @Input() parentForm!: FormGroup;\n @Input() disable?: boolean;\n\n public onChanged!: (value: any) => void;\n public onTouched!: () => void;\n public isDisabled!: boolean;\n writeValue(value: any): void {}\n registerOnChange(fn: any): void {\n this.onChanged = fn;\n }\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n setDisabledState(isDisabled: boolean) {\n this.isDisabled = isDisabled;\n }\n // private phoenixDialog = inject(PhoenixDialogService);\n private translateService = inject(TranslateService);\n person!: any;\n\n clear() {\n this.parentForm.controls[this.control.configuration.key].setValue(null);\n }\n assignResponsible() {\n // const ref = this.phoenixDialog.initDialog(\n // ObjectItemDialogComponent,\n // { appSource: this.control.configuration.app },\n // this.translateService.instant('COMMON.LIST_OF_RESPONSIBLE_PERSONS'),\n // 'large',\n // '',\n // true\n // );\n // ref.onClose.subscribe((response: Assignee) => {\n // if (response) {\n // this.person = response;\n // this.parentForm.controls[this.control.configuration.key].setValue(\n // response\n // );\n // }\n // });\n }\n}\n","export enum ErrorType {\n REQUIRED = 'required',\n MIN_LENGTH = 'minlength',\n MAX_LENGTH = 'maxlength',\n EMAIL = 'email',\n CUSTOM = 'custom',\n PATTERN = 'pattern',\n UIQUE_ENTRY = 'uniqueEntry',\n TIMEPERIOD = 'timeperiod',\n TIMEPERIOD_LIMIT_MAX = 'timeperiod_limit_max',\n TIMEPERIOD_LIMIT_MIN = 'timeperiod_limit_min',\n DUE_DATE = 'dueDate',\n UIQUE = 'unique',\n BOTH_DATES = 'both_dates',\n MAX = 'max',\n MIN = 'min',\n}\n","import { animate, style, transition, trigger } from '@angular/animations';\nimport { CommonModule } from '@angular/common';\nimport { Component, Input, OnChanges, OnDestroy, inject } from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Subscription, combineLatestWith } from 'rxjs';\nimport { MetaFormService } from '../services/meta-form.service';\nimport { ErrorType } from '../utils/error-type.util';\n\n@Component({\n standalone: true,\n imports: [CommonModule],\n selector: 'phoenix-inline-field-error',\n styles: [``],\n animations: [\n trigger('slideInOut', [\n transition(':enter', [\n style({ transform: 'translateY(-60%)' }),\n animate('100ms ease-out', style({ transform: 'translateY(0%)' })),\n ]),\n transition(':leave', [\n animate(\n '50ms ease-out',\n style({ transform: 'translateY(-100%)', opacity: '0' })\n ),\n ]),\n ]),\n ],\n template: `\n <div style=\"height: 1px;\">\n <div *ngIf=\"note\" [@slideInOut] class=\"static\">\n <small class=\"text-blue-700\" *ngIf=\"note.type === 'info'; else warn\">\n <i class=\"pi pi-spin pi-spinner\" style=\"font-size: 11px\"></i>\n {{ note.content }}\n </small>\n <ng-template #warn>\n <small class=\"p-error\">\n <i style=\"font-size: 11px\" class=\"pi pi-exclamation-circle\"></i>\n {{ note }}\n </small>\n </ng-template>\n </div>\n </div>\n `,\n})\nexport class InlineFieldError implements OnDestroy, OnChanges {\n constructor(private translateService: TranslateService) {}\n sub$!: Subscription;\n metaFormService = inject(MetaFormService);\n loaded: Boolean = false;\n\n ngOnChanges(): void {\n if (this.ctrl && !this.loaded) {\n if (this.ctrl?.status === 'PENDING') {\n ///this is only for async validators for name and title. Remove this one, we have this in onChange() method\n this.ctrl.updateValueAndValidity();\n }\n this.sub$ = this.ctrl?.statusChanges\n ?.pipe(combineLatestWith(this.metaFormService.formReadOnlyState))\n .subscribe((arr) => {\n if (arr[0] !== 'VALID') {\n setTimeout(() => {\n this.note = this.getErrorMessage(this.ctrl);\n });\n } else {\n setTimeout(() => {\n this.note = null;\n });\n }\n // if (arr[1]) {\n // setTimeout(() => {\n // this.note = null;\n // });\n // }\n });\n this.loaded = true;\n }\n }\n\n @Input() ctrl!: AbstractControl;\n note!: any;\n\n getErrorMessage(control: AbstractControl): any {\n if (control?.status === 'PENDING') {\n return {\n type: 'info',\n content: this.translateService.instant(\n 'VALIDATION_MESSAGE.CHECKING_ENTRY_AVAILABILITY'\n ),\n };\n }\n // if (control?.status === 'VALID') {\n // return 'ENTRY OK';\n // }\n\n if (control?.errors) {\n switch (Object.keys(control.errors)[0]) {\n case ErrorType.REQUIRED:\n return this.translateService.instant(\n 'VALIDATION_MESSAGE.THIS_FIELD_IS_REQUIRED'\n );\n case ErrorType.MIN_LENGTH:\n return this.translateService.instant(\n 'VALIDATION_MESSAGE.VALUE_AT_LEAST',\n { minlength: control.errors['minlength'].requiredLength }\n );\n case ErrorType.MAX_LENGTH:\n return this.translateService.instant(\n 'VALIDATION_MESSAGE.VALUE_NO_MORE',\n { maxlength: control.errors['maxlength'].requiredLength }\n );\n case ErrorType.EMAIL:\n return this.translateService.instant(\n 'VALIDATION_MESSAGE.ENTER_VALID_EMAIL'\n );\n case ErrorType.CUSTOM:\n return this.translateService.instant(control?.errors?.['custom']);\n\n case ErrorType.UIQUE_ENTRY:\n return control.errors['uniqueEntry'];\n\n case ErrorType.TIMEPERIOD:\n return this.translateService.instant(\n 'VALIDATION_MESSAGE.VALUE_SHOULD_MATCH_TIMEPATTERN'\n );\n\n case ErrorType.MAX:\n return this.translateService.instant(\n 'VALIDATION_MESSAGE.VALUE_SHOULD_BE_LESS_THAN_AND_MORE_THAN',\n {\n lowerValue: control.errors['min']?.min ?? 0,\n upperValue: control.errors['max']?.max,\n }\n );\n\n case ErrorType.DUE_DATE:\n return this.translateService.instant(\n 'VALIDATION_MESSAGE.INVALID_DATE'\n );\n case ErrorType.UIQUE:\n return this.translateService.instant(\n 'VALIDATION_MESSAGE.VALUE_IS_ALREADY_IN_USE'\n );\n case ErrorType.TIMEPERIOD_LIMIT_MAX:\n return this.translateService.instant(\n 'VALIDATION_MESSAGE.VALUE_SHOULD_MATCH_TIMEPATTERN_LIMIT_MAX'\n );\n\n case ErrorType.TIMEPERIOD_LIMIT_MIN:\n return this.translateService.instant(\n 'VALIDATION_MESSAGE.VALUE_SHOULD_MATCH_TIMEPATTERN_LIMIT_MIN'\n );\n\n case ErrorType.BOTH_DATES:\n return this.translateService.instant(\n 'VALIDATION_MESSAGE.BOTH_START_END_DATE_REQUIRED'\n );\n\n // add more cases for other validators as needed\n case ErrorType.PATTERN:\n const re = '^(https?://)?([\\\\da-z.-]+)\\\\.([a-z.]{2,6})[/\\\\w .-]*/?$';\n\n if (control?.errors?.['pattern']?.requiredPattern === re)\n return this.translateService.instant(\n 'VALIDATION_MESSAGE.VALUE_SHOUL_BE_URL'\n );\n else {\n return this.translateService.instant(\n 'VALIDATION_MESSAGE.INVALID_VALUE'\n );\n }\n // add more cases for other validators as needed\n default:\n return this.translateService.instant(\n 'VALIDATION_MESSAGE.INVALID_VALUE'\n );\n }\n } else return '';\n }\n\n ngOnDestroy(): void {\n this.sub$?.unsubscribe();\n }\n}\n","import { Directive, Input } from '@angular/core';\nimport { ControlValueAccessor, FormGroup } from '@angular/forms';\nimport { Subject, Subscription } from 'rxjs';\n\n@Directive()\nexport class BaseMetaField implements ControlValueAccessor {\n @Input() disable: boolean = false;\n @Input() control: any;\n @Input() parentForm!: FormGroup;\n fcs$!: Subscription | undefined;\n cfc$!: Subscription | undefined;\n\n public value!: any;\n public onChanged!: (value: any) => void;\n public onTouched!: () => void;\n ctrl: any;\n\n protected changeSub = new Subject<boolean>();\n protected changeSubs$!: Subscription;\n\n getInputValue(event: Event | any): any {\n if (event.value) {\n return event.value;\n }\n if (event.target instanceof HTMLInputElement) {\n return event.target.value?.trim();\n }\n if (event.target instanceof HTMLTextAreaElement) {\n return event.target.value;\n }\n return '';\n }\n\n writeValue(value: string): void {\n this.value = value;\n }\n registerOnChange(fn: any): void {\n this.onChanged = fn;\n this.changeSub.next(true);\n }\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disable = isDisabled;\n }\n\n ngOnDestroy(): void {\n this.changeSubs$?.unsubscribe();\n this.fcs$?.unsubscribe();\n this.cfc$?.unsubscribe();\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, forwardRef } from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { CalendarModule } from 'primeng/calendar';\nimport { InlineFieldError } from '../../meta-field-error/inline-field-error.component';\nimport { MetaLabelComponent } from '../../meta-field-label/meta-label.component';\nimport { BaseMetaField } from '../../utils/base-meta-field';\n\n@Component({\n selector: 'phoenix-meta-calendar',\n standalone: true,\n imports: [\n CommonModule,\n CalendarModule,\n MetaLabelComponent,\n FormsModule,\n InlineFieldError,\n ],\n template: ` <div [hidden]=\"control?.hidden\">\n <phoenix-meta-label [control]=\"control\"></phoenix-meta-label>\n <p-calendar\n [attr.data-cy]=\"'calendar-' + control?.id\"\n (onSelect)=\"onChanged(value)\"\n [style]=\"{ width: '100%' }\"\n [(ngModel)]=\"value\"\n [disabled]=\"disable\"\n [readonlyInput]=\"true\"\n [showButtonBar]=\"true\"\n [minDate]=\"control.configuration?.minDate\"\n [showIcon]=\"true\"\n (onClearClick)=\"onDateClear()\"\n [appendTo]=\"'body'\"\n ></p-calendar>\n <phoenix-inline-field-error [ctrl]=\"ctrl\"></phoenix-inline-field-error>\n </div>`,\n styleUrls: ['./meta-calendar.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MetaCalendarComponent),\n multi: true,\n },\n ],\n})\nexport class MetaCalendarComponent extends BaseMetaField {\n onDateClear() {\n this.parentForm.controls[this.control.configuration.key].setValue(null);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, forwardRef, inject } from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { OverlayPanelModule } from 'primeng/overlaypanel';\nimport { MetaLabelComponent } from '../../meta-field-label/meta-label.component';\nimport { BaseMetaField } from '../../utils/base-meta-field';\n\n@Component({\n selector: 'phoenix-meta-checkbox-color-picker',\n standalone: true,\n imports: [\n CommonModule,\n CheckboxModule,\n FormsModule,\n TranslateModule,\n OverlayPanelModule,\n MetaLabelComponent,\n ],\n template: `\n <p-overlayPanel #op>\n <div class=\"color-picker\">\n <ng-container\n *ngFor=\"let row of control.configuration.options; let last = last\"\n >\n <div class=\"color-row \" [ngClass]=\"{ 'mb-2': !last }\">\n <ng-container *ngFor=\"let color of row\">\n <div\n class=\"color-box\"\n [ngStyle]=\"{\n 'background-color': color,\n outline:\n focusedColor === color ? '3px solid ' + color : 'none',\n 'outline-offset': focusedColor === color ? '3px' : '0',\n }\"\n (click)=\"onChanged(color); changeColor(color)\"\n ></div>\n </ng-container>\n </div>\n </ng-container>\n </div>\n </p-overlayPanel>\n\n <phoenix-meta-label [control]=\"control\"></phoenix-meta-label>\n\n <div\n class=\"selected-color \"\n [ngStyle]=\"{ 'background-color': value, marginTop: '6px' }\"\n [attr.data-cy]=\"'checkbox-' + control?.id\"\n (click)=\"op.toggle($event)\"\n ></div>\n `,\n styles: [\n `\n ::ng-deep .p-overlaypanel .p-overlaypanel-content {\n padding: 0 !important;\n }\n .color-picker {\n display: flex;\n flex-direction: column;\n padding: 10px;\n }\n\n .color-row {\n display: flex;\n justify-content: center;\n gap: 8px;\n }\n\n .color-box {\n margin: 2px;\n width: 30px;\n height: 30px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n border-radius: 4px;\n }\n\n .color-box:hover {\n transform: scale(1.1);\n opacity: 0.9;\n box-shadow: 0px 0px 5px rgba(0, 0, 0, 0.2);\n }\n\n .color-box:focus {\n outline: 3px solid rgba(0, 0, 0, 0.2);\n outline-offset: 3px;\n }\n\n .selected-color {\n width: 35px;\n height: 35px;\n border: 2px solid #ccc;\n cursor: pointer;\n border-radius: 6px;\n }\n `,\n ],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MetaCheckboxColorPickerComponent),\n multi: true,\n },\n ],\n})\nexport class MetaCheckboxColorPickerComponent extends BaseMetaField {\n private translateService = inject(TranslateService);\n currentLang = this.translateService.currentLang;\n focusedColor: any;\n changeColor(color: string): void {\n this.focusedColor = color;\n this.value = color;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, forwardRef, inject } from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { BaseMetaField } from '../../utils/base-meta-field';\nimport { FieldLabelPipe } from '../../utils/field-label.pipe';\n\n@Component({\n selector: 'phoenix-meta-checkbox',\n standalone: true,\n imports: [\n CommonModule,\n CheckboxModule,\n FormsModule,\n TranslateModule,\n FieldLabelPipe,\n ],\n template: ` <div class=\"ml-3 field-checkbox\">\n <p-checkbox\n [attr.data-cy]=\"'checkbox-' + control?.id\"\n [(ngModel)]=\"value\"\n (onChange)=\"onChanged(value)\"\n [binary]=\"true\"\n inputId=\"binary\"\n [disabled]=\"control.readOnly || disable\"\n ></p-checkbox>\n\n <label for=\"binary\">\n {{ control | fieldLabel: currentLang | translate }}\n <span *ngIf=\"control.mandatory\" class=\"red-asterisk\">*</span></label\n >\n </div>`,\n styles: [],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MetaCheckboxComponent),\n multi: true,\n },\n ],\n})\nexport class MetaCheckboxComponent extends BaseMetaField {\n private translateService = inject(TranslateService);\n currentLang = this.translateService.currentLang;\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, forwardRef } from '@angular/core';\nimport {\n FormsModule,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n} from '@angular/forms';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { InlineFieldError } from '../../meta-field-error/inline-field-error.component';\nimport { MetaLabelComponent } from '../../meta-field-label/meta-label.component';\nimport { BaseMetaField } from '../../utils/base-meta-field';\nimport { ColorPickerModule } from 'primeng/colorpicker';\n\n@Component({\n selector: 'phoenix-meta-color-picker',\n standalone: true,\n imports: [\n CommonModule,\n ReactiveFormsModule,\n InlineFieldError,\n MetaLabelComponent,\n TranslateModule,\n ColorPickerModule,\n FormsModule,\n ],\n template: `\n <div>\n <phoenix-meta-label [control]=\"control\"></phoenix-meta-label>\n <p-colorPicker\n [attr.data-cy]=\"'color-picker-' + control?.id\"\n [hidden]=\"control?.hidden\"\n [(ngModel)]=\"value\"\n (onChange)=\"onChanged(value)\"\n [disabled]=\"disable\"\n ></p-colorPicker>\n <phoenix-inline-field-error\n *ngIf=\"!control?.hidden\"\n [ctrl]=\"ctrl\"\n ></phoenix-inline-field-error>\n </div>\n `,\n styles: [\n `\n :host::ng-deep {\n .p-inputswitch {\n margin-top: 12px;\n }\n }\n `,\n ],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MetaColorPickerComponent),\n multi: true,\n },\n ],\n})\nexport class MetaColorPickerComponent extends BaseMetaField {}\n","import { CommonModule } from '@angular/common';\nimport { Component, forwardRef } from '@angular/core';\nimport {\n FormsModule,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n} from '@angular/forms';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { InputNumberModule } from 'primeng/inputnumber';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { KeyFilterModule } from 'primeng/keyfilter';\nimport { InlineFieldError } from '../../meta-field-error/inline-field-error.component';\nimport { MetaLabelComponent } from '../../meta-field-label/meta-label.component';\nimport { BaseMetaField } from '../../utils/base-meta-field';\n\n@Component({\n selector: 'phoenix-meta-currency',\n standalone: true,\n imports: [\n CommonModule,\n ReactiveFormsModule,\n FormsModule,\n InputTextModule,\n InlineFieldError,\n MetaLabelComponent,\n TranslateModule,\n KeyFilterModule,\n InputNumberModule,\n ],\n template: `\n <div>\n <phoenix-meta-label [control]=\"control\"></phoenix-meta-label>\n <p-inputNumber\n [attr.data-cy]=\"'currency-' + control?.id\"\n #myInput\n [style.display]=\"control.hidden ? 'none' : 'block'\"\n mode=\"currency\"\n inputId=\"currency-germany\"\n currency=\"EUR\"\n locale=\"de-DE\"\n [min]=\"10\"\n [(ngModel)]=\"value\"\n (input)=\"input($event)\"\n (ngModelChange)=\"changeValue($event)\"\n (blur)=\"onTouched()\"\n [disabled]=\"disable\"\n class=\"w-full\"\n [style]=\"{ width: '100%' }\"\n >\n </p-inputNumber>\n <phoenix-inline-field-error\n *ngIf=\"!control?.hidden\"\n [ctrl]=\"ctrl\"\n ></phoenix-inline-field-error>\n </div>\n `,\n styles: [],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MetaCurrencyComponent),\n multi: true,\n },\n ],\n})\nexport class MetaCurrencyComponent extends BaseMetaField {\n changeValue(data: any) {\n this.parentForm.controls[this.control?.configuration?.key].setValue(data);\n }\n input(data: any) {\n const number = this.convertCurrencyStringToNumber(data.target.value);\n this.parentForm.controls[this.control?.configuration?.key].setValue(number);\n }\n\n convertCurrencyStringToNumber(currencyString: string) {\n // Remove dots for thousands separators\n const stringWithoutDots = currencyString.replace(/\\./g, '');\n\n // Replace comma with dot for decimal separator\n const stringWithDotDecimal = stringWithoutDots.replace(',', '.');\n\n // Parse the string into a number\n const numericValue = parseFloat(stringWithDotDecimal);\n\n return numericValue;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, forwardRef } from '@angular/core';\nimport {\n FormsModule,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n} from '@angular/forms';\nimport { MultiSelectModule } from 'primeng/multiselect';\nimport { MetaLabelComponent } from '../../meta-field-label/meta-label.component';\nimport { BaseMetaField } from '../../utils/base-meta-field';\nimport { InlineFieldError } from '../../meta-field-error/inline-field-error.component';\nimport { TranslateModule } from '@ngx-translate/core';\n\n@Component({\n selector: 'phoenix-meta-multiple-select',\n standalone: true,\n imports: [\n CommonModule,\n ReactiveFormsModule,\n MultiSelectModule,\n FormsModule,\n MetaLabelComponent,\n InlineFieldError,\n TranslateModule,\n ],\n template: `\n <phoenix-meta-label [control]=\"control\"></phoenix-meta-label>\n <p-multiSelect\n [attr.data-cy]=\"'multiSelect-' + control?.id\"\n [hidden]=\"control?.hidden\"\n (onChange)=\"onChanged(value)\"\n (onSelectAllChange)=\"onChanged(value)\"\n [(ngModel)]=\"value\"\n [options]=\"control.configuration.options\"\n optionLabel=\"userFriendlyMessage\"\n [filter]=\"control.configuration?.filter\"\n [style]=\"{ width: '100%' }\"\n [disabled]=\"disable\"\n appendTo=\"body\"\n [showHeader]=\"false\"\n ></p-multiSelect>\n <phoenix-inline-field-error\n *ngIf=\"!control?.hidden\"\n [ctrl]=\"ctrl\"\n ></phoenix-inline-field-error>\n `,\n styles: [],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MetaMultipleSelectComponent),\n multi: true,\n },\n ],\n})\nexport class MetaMultipleSelectComponent extends BaseMetaField {}\n","import { CommonModule } from '@angular/common';\nimport { Component, forwardRef, inject } from '@angular/core';\nimport {\n FormsModule,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n} from '@angular/forms';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { InlineFieldError } from '../../meta-field-error/inline-field-error.component';\nimport { MetaLabelComponent } from '../../meta-field-label/meta-label.component';\nimport { BaseMetaField } from '../../utils/base-meta-field';\nimport { KeyFilterModule } from 'primeng/keyfilter';\n// import { LanguageParamResolverPipe, Regex } from '@phoenix/util/util-common';\nimport { InputNumberModule } from 'primeng/inputnumber';\nimport { InputTextModule } from 'primeng/inputtext';\n\n@Component({\n selector: 'phoenix-meta-number-input',\n standalone: true,\n imports: [\n CommonModule,\n ReactiveFormsModule,\n InputNumberModule,\n InlineFieldError,\n FormsModule,\n MetaLabelComponent,\n TranslateModule,\n KeyFilterModule,\n InputTextModule,\n // LanguageParamResolverPipe,\n ],\n template: `\n <div [hidden]=\"control?.hidden\">\n <phoenix-meta-label [control]=\"control\"></phoenix-meta-label>\n <p-inputNumber\n [attr.data-cy]=\"'input-number-' + control?.id\"\n [(ngModel)]=\"value\"\n (onInput)=\"onChanged(getInputValue($event))\"\n (blur)=\"onTouched()\"\n [disabled]=\"disable\"\n [useGrouping]=\"false\"\n [min]=\"1\"\n class=\"w-full\"\n [style]=\"{ width: '100%' }\"\n >\n </p-inputNumber>\n <phoenix-inline-field-error\n *ngIf=\"!control?.hidden\"\n [ctrl]=\"ctrl\"\n ></phoenix-inline-field-error>\n </div>\n `,\n styles: [``],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MetaNumberComponent),\n multi: true,\n },\n ],\n})\nexport class MetaNumberComponent extends BaseMetaField {\n // public regex = Regex;\n lang = inject(TranslateService).currentLang;\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, forwardRef } from '@angular/core';\nimport {\n FormsModule,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n} from '@angular/forms';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { InputSwitchModule } from 'primeng/inputswitch';\nimport { InlineFieldError } from '../../meta-field-error/inline-field-error.component';\nimport { MetaLabelComponent } from '../../meta-field-label/meta-label.component';\nimport { BaseMetaField } from '../../utils/base-meta-field';\nimport { PasswordModule } from 'primeng/password';\n@Component({\n selector: 'phoenix-meta-password-feild',\n standalone: true,\n imports: [\n CommonModule,\n ReactiveFormsModule,\n InlineFieldError,\n MetaLabelComponent,\n TranslateModule,\n InputSwitchModule,\n FormsModule,\n PasswordModule,\n ],\n template: `\n <div>\n <phoenix-meta-label [control]=\"control\"></phoenix-meta-label>\n <p-password\n [attr.data-cy]=\"'password-' + control?.id\"\n [disabled]=\"disable\"\n [hidden]=\"control?.hidden\"\n [(ngModel)]=\"value\"\n [feedback]=\"false\"\n (input)=\"onChanged(getInputValue($event))\"\n class=\"ng-invalid ng-dirty\"\n ></p-password>\n <phoenix-inline-field-error\n *ngIf=\"!control?.hidden\"\n [ctrl]=\"ctrl\"\n ></phoenix-inline-field-error>\n </div>\n `,\n styles: [\n `\n :host::ng-deep {\n .p-component {\n width: 100%;\n }\n }\n `,\n ],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MetaPasswordFeildComponent),\n multi: true,\n },\n ],\n})\nexport class MetaPasswordFeildComponent extends BaseMetaField {}\n","import { CommonModule } from '@angular/common';\nimport { Component, forwardRef } from '@angular/core';\nimport {\n FormsModule,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n} from '@angular/forms';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { InputSwitchModule } from 'primeng/inputswitch';\nimport { InlineFieldError } from '../../meta-field-error/inline-field-error.component';\nimport { MetaLabelComponent } from '../../meta-field-label/meta-label.component';\nimport { BaseMetaField } from '../../utils/base-meta-field';\nimport { SelectButtonModule } from 'primeng/selectbutton';\n\n@Component({\n selector: 'phoenix-meta-select-button',\n standalone: true,\n imports: [\n CommonModule,\n ReactiveFormsModule,\n InlineFieldError,\n MetaLabelComponent,\n TranslateModule,\n FormsModule,\n SelectButtonModule,\n ],\n template: `\n <div>\n <phoenix-meta-label [control]=\"control\"></phoenix-meta-label>\n\n <p-selectButton\n [attr.data-cy]=\"'select-button-' + control?.id\"\n [options]=\"control.configuration.options\"\n [hidden]=\"control?.hidden\"\n [(ngModel)]=\"value\"\n [disabled]=\"disable\"\n (onChange)=\"onChanged(value)\"\n optionLabel=\"userFriendlyMessage\"\n optionValue=\"value\"\n ></p-selectButton>\n\n <phoenix-inline-field-error\n *ngIf=\"!control?.hidden\"\n [ctrl]=\"ctrl\"\n ></phoenix-inline-field-error>\n </div>\n `,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MetaSelectButtonComponent),\n multi: true,\n },\n ],\n})\nexport class MetaSelectButtonComponent extends BaseMetaField {}\n","import { inject, Pipe, PipeTransform } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Pipe({\n name: 'translateDropdownData',\n standalone: true,\n})\nexport class TranslateDropdownData implements PipeTransform {\n protected translateService = inject(TranslateService);\n transform(data: any, paramName: string): any {\n let arr: any = [];\n paramName\n ? data?.forEach((item: any) => {\n const obj = item;\n obj[paramName] = item[paramName]\n ? this.translateService.instant(item[paramName])\n : paramName;\n arr.push(obj);\n })\n : (arr = data);\n\n return arr;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, forwardRef } from '@angular/core';\nimport { DropdownModule } from 'primeng/dropdown';\n\nimport {\n FormsModule,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n} from '@angular/forms';\nimport { TranslateModule } from '@ngx-translate/core';\n\nimport { ImageModule } from 'primeng/image';\nimport { debounceTime, of, switchMap } from 'rxjs';\nimport { MetaLabelComponent } from '../../meta-field-label/meta-label.component';\nimport { BaseMetaField } from '../../utils/base-meta-field';\nimport { InlineFieldError } from '../../meta-field-error/inline-field-error.component';\nimport { TranslateDropdownData } from '../../utils/translate-dropdown-data.pipe';\n\n@Component({\n selector: 'phoenix-meta-single-select-object-based',\n standalone: true,\n imports: [\n CommonModule,\n ReactiveFormsModule,\n DropdownModule,\n MetaLabelComponent,\n FormsModule,\n TranslateModule,\n TranslateDropdownData,\n ImageModule,\n InlineFieldError,\n ],\n template: `\n <phoenix-meta-label [control]=\"control\"></phoenix-meta-label>\n <p-dropdown\n [attr.data-cy]=\"'single-select-ob' + control?.id\"\n [hidden]=\"control?.hidden\"\n filterBy=\"value\"\n [optionLabel]=\"oiKey\"\n [options]=\"\n control.configuration.options | translateDropdownData : 'value'\n \"\n [showClear]=\"control.configuration?.showClear\"\n [(ngModel)]=\"value\"\n [style]=\"{ width: '100%' }\"\n [disabled]=\"disable || control?.disable\"\n [filter]=\"control.configuration?.filter\"\n [group]=\"control.configuration.group\"\n (onClear)=\"onDateClear()\"\n (onChange)=\"onChanged(value)\"\n [panelStyle]=\"{ width: '100%' }\"\n appendTo=\"body\"\n >\n <ng-template let-option pTemplate=\"group\">\n <div class=\"flex align-items-center\">\n <span class=\"font-bold ml-2\">{{ option.value }}</span>\n </div>\n </ng-template>\n\n <ng-template let-data pTemplate=\"selectedItem\">\n <div class=\"flex align-items-center gap-2\" *ngIf=\"data\">\n <div>{{ data?.[oiKey] }}</div>\n </div>\n </ng-template>\n\n <ng-template let-option pTemplate=\"item\">\n <div class=\"flex\">\n <i *ngIf=\"option.icon\" [ngClass]=\"option.icon\" class=\"mr-1\"></i>\n <div>\n {{ option?.value }}\n </div>\n </div>\n </ng-template>\n </p-dropdown>\n <phoenix-inline-field-error\n *ngIf=\"!control?.hidden\"\n [ctrl]=\"ctrl\"\n ></phoenix-inline-field-error>\n `,\n styles: [],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MetaSingleSelectObjectBasedComponent),\n multi: true,\n },\n ],\n})\nexport class MetaSingleSelectObjectBasedComponent extends BaseMetaField {\n public oiKey: string = 'value';\n\n onDateClear() {\n this.parentForm.controls[this.control.configuration.key].setValue(null);\n }\n\n constructor() {\n super();\n this.changeSubs$ = this.changeSub\n .asObservable()\n .pipe(\n debounceTime(500),\n switchMap((item) => {\n return of(item);\n })\n )\n .subscribe((trigg: boolean) => {\n if (trigg) {\n this.changes();\n }\n });\n }\n\n ngOnInit(): void {\n this.changes();\n }\n\n changes(): void {\n let soi = this.control.configuration.options?.[0];\n\n ///set default property on options items for metaform model\n if (!this.parentForm.get(this.control.configuration.key)?.value) {\n this.control.configuration.options?.forEach((o: any, i: number) => {\n /////standardize DEFAULT VALUES for OptionItems THROGH METAFORMS. remove this conditions\n if (o.update?.default || o.default) {\n soi = this.control.configuration.options[i];\n this.parentForm.get(this.control.configuration.key)?.setValue(soi);\n }\n });\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, forwardRef, inject } from '@angular/core';\nimport { DropdownModule } from 'primeng/dropdown';\n\nimport {\n FormsModule,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n} from '@angular/forms';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { ImageModule } from 'primeng/image';\nimport { debounceTime, of, switchMap } from 'rxjs';\nimport { MetaLabelComponent } from '../../meta-field-label/meta-label.component';\nimport { BaseMetaField } from '../../utils/base-meta-field';\nimport { InlineFieldError } from '../../meta-field-error/inline-field-error.component';\nimport { TranslateDropdownData } from '../../utils/translate-dropdown-data.pipe';\n\n@Component({\n selector: 'phoenix-meta-single-select',\n standalone: true,\n imports: [\n CommonModule,\n ReactiveFormsModule,\n DropdownModule,\n MetaLabelComponent,\n FormsModule,\n TranslateModule,\n TranslateDropdownData,\n ImageModule,\n InlineFieldError,\n ],\n template: `\n <phoenix-meta-label [control]=\"control\"></phoenix-meta-label>\n <p-dropdown\n [attr.data-cy]=\"'single-select-' + control?.id\"\n [hidden]=\"control?.hidden\"\n filterBy=\"userFriendlyMessage\"\n [optionLabel]=\"oiKey ? oiKey : 'labelKeyValEn'\"\n [options]=\"\n control.configuration.options\n | translateDropdownData : (oiKey ? oiKey : 'labelKeyValEn')\n \"\n [showClear]=\"control.configuration?.showClear\"\n [(ngModel)]=\"value\"\n [style]=\"{ width: '100%' }\"\n [disabled]=\"disable || control?.disable\"\n [filter]=\"control.configuration?.filter\"\n [group]=\"control.configuration.group\"\n (onClear)=\"onDateClear()\"\n (onChange)=\"onChanged(value)\"\n [panelStyle]=\"{ width: '100%' }\"\n appendTo=\"body\"\n >\n <ng-template let-option pTemplate=\"group\">\n <div class=\"flex align-items-center\">\n <i [class]=\"option.icon\"></i>\n <span class=\"font-bold ml-2\">{{ option.label }}</span>\n </div>\n </ng-template>\n\n <ng-template let-data pTemplate=\"selectedItem\">\n <div class=\"flex align-items-center gap-2\" *ngIf=\"data\">\n <img\n *ngIf=\"data?.image\"\n alt=\"icon\"\n [src]=\"data.image\"\n height=\"17\"\n width=\"20\"\n />\n <div>\n {{ data?.[oiKey] ? data?.[oiKey] : data?.['labelKeyValEn'] }}\n </div>\n </div>\n </ng-template>\n\n <ng-template let-option pTemplate=\"item\">\n <div class=\"flex\">\n <i *ngIf=\"option.icon\" [ngClass]=\"option.icon\" class=\"mr-1\"></i>\n <p-image\n *ngIf=\"option?.image\"\n class=\"ml-2 mr-2\"\n alt=\"icon\"\n [src]=\"option.image\"\n height=\"20\"\n width=\"20\"\n ></p-image>\n <div>\n {{ option?.[oiKey] ? option?.[oiKey] : option?.['labelKeyValEn'] }}\n </div>\n </div>\n </ng-template>\n </p-dropdown>\n <phoenix-inline-field-error\n *ngIf=\"!control?.hidden\"\n [ctrl]=\"ctrl\"\n ></phoenix-inline-field-error>\n `,\n styles: [],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MetaSingleSelectComponent),\n multi: true,\n },\n ],\n})\nexport class MetaSingleSelectComponent extends BaseMetaField {\n public oiKey!: string;\n ///this should be in localstorage. better than calling for this and for label\n private translateService = inject(TranslateService);\n onDateClear() {\n this.parentForm.controls[this.control.configuration.key].setValue(null);\n }\n\n constructor() {\n super();\n this.changeSubs$ = this.changeSub\n .asObservable()\n .pipe(\n debounceTime(500),\n switchMap((item) => {\n return of(item);\n })\n )\n .subscribe((trigg: boolean) => {\n if (trigg) {\n this.changes();\n }\n });\n }\n\n ngOnInit(): void {\n this.changes();\n }\n\n changes(): void {\n this.oiKey = 'userFriendlyMessage';\n const currentLang = this.translateService.currentLang;\n let soi = this.control.configuration.options?.[0];\n // /NP-2690 if only one option item and if its mandatory\n if (\n this.control.mandatory &&\n this.control.configuration.options.length === 1\n ) {\n this.parentForm\n .get(this.control.configuration.key)\n ?.setValue(this.control.configuration.options[0]);\n }\n ///set default property on options items for metaform model\n if (!this.parentForm.get(this.control.configuration.key)?.value) {\n this.control.configuration.options?.forEach((o: any, i: number) => {\n /////standardize DEFAULT VALUES for OptionItems THROGH METAFORMS. remove this conditions\n if (o.update?.default || o.default) {\n soi = this.control.configuration.options[i];\n this.parentForm.get(this.control.configuration.key)?.setValue(soi);\n }\n });\n }\n\n if (soi?.labelKeyValEn) {\n //This creates something like this labelKeyValDe,labelKeyValSr,labelKeyValEn\n this.oiKey =\n 'labelKeyVal' +\n currentLang.charAt(0).toUpperCase() +\n currentLang.slice(1);\n return;\n }\n\n if (soi?.userFriendlyMessage) {\n this.oiKey = 'userFriendlyMessage';\n\n return;\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, forwardRef, Input } from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n FormControl,\n FormGroup,\n FormsModule,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n} from '@angular/forms';\nimport { CalendarModule } from 'primeng/calendar';\nimport { InlineFieldError } from '../../meta-field-error/inline-field-error.component';\nimport { MetaLabelComponent } from '../../meta-field-label/meta-label.component';\nimport { TranslateModule } from '@ngx-translate/core';\n\n@Component({\n selector: 'phoenix-meta-start-due-date',\n standalone: true,\n imports: [\n CommonModule,\n CalendarModule,\n InlineFieldError,\n ReactiveFormsModule,\n FormsModule,\n MetaLabelComponent,\n TranslateModule,\n ],\n template: `\n <div [hidden]=\"control?.hidden\">\n <phoenix-meta-label [control]=\"control\"></phoenix-meta-label>\n <div class=\"flex\">\n <div class=\"flex-grow-1\">\n <p-calendar\n [attr.data-cy]=\"'start-date-' + control?.id\"\n (onSelect)=\"onStartDateSelect($event)\"\n (onClearClick)=\"onStartDateClear()\"\n [style]=\"{ width: '100%' }\"\n [(ngModel)]=\"startDate\"\n [readonlyInput]=\"true\"\n [showButtonBar]=\"true\"\n [showIcon]=\"true\"\n [placeholder]=\"'MEASURE_CREATE_DIALOG.PLANNED_START' | translate\"\n appendTo=\"body\"\n ></p-calendar>\n </div>\n <div class=\" flex align-items-center p-2 \">\n <i\n class=\"pi pi-arrow-right text-sm\"\n style=\"color: 'var(--surface-600)'\"\n ></i>\n </div>\n <div class=\"flex-grow-1\">\n <p-calendar\n [attr.data-cy]=\"'due-date-' + control?.id\"\n (onSelect)=\"onEndDateSelect($event)\"\n (onClearClick)=\"onEndDateClear()\"\n [style]=\"{ width: '100%' }\"\n [(ngModel)]=\"endDate\"\n [readonlyInput]=\"true\"\n [showButtonBar]=\"true\"\n [showIcon]=\"true\"\n [placeholder]=\"'MEASURE_CREATE_DIALOG.PLANNED_END' | translate\"\n appendTo=\"body\"\n ></p-calendar>\n </div>\n </div>\n <phoenix-inline-field-error [ctrl]=\"ctrl\"></phoenix-inline-field-error>\n </div>\n `,\n styles: [``],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MetaStartDueDateComponent),\n multi: true,\n },\n ],\n})\nexport class MetaStartDueDateComponent implements ControlValueAccessor {\n @Input() control: any;\n @Input() parentForm!: FormGroup;\n ctrl: any;\n\n startDate?: any;\n endDate?: any;\n public onChanged!: (value: any) => void;\n public onTouched!: () => void;\n\n constructor() {}\n\n ngOnInit() {\n this.ctrl = this.parentForm.get(this.control.configuration.key);\n this.ctrl = this.parentForm.get(this.control.configuration.key);\n\n if (this.control.mandatory) this.ctrl.setValidators(this.ctrl.validator);\n\n this.parentForm\n .get(this.control.configuration.key)\n ?.valueChanges.subscribe(r => {\n this.validateDates();\n });\n\n this.validateDates();\n }\n\n writeValue(obj: any): void {\n if (obj) {\n this.startDate = obj.startDate;\n this.endDate = obj.endDate;\n } else {\n this.startDate = null;\n this.endDate = null;\n }\n }\n\n // Handle start date selection\n onStartDateSelect(event: any) {\n this.startDate = event;\n this.onChanged({ startDate: this.startDate, endDate: this.endDate });\n this.validateDates();\n }\n\n // Handle end date selection\n onEndDateSelect(event: any) {\n this.endDate = event;\n this.onChanged({ startDate: this.startDate, endDate: this.endDate });\n this.validateDates();\n }\n\n // Handle start date clear value\n onStartDateClear() {\n this.startDate = null;\n this.onChanged({ startDate: this.startDate, endDate: this.endDate });\n this.validateDates();\n }\n\n // Handle end date clear value\n onEndDateClear() {\n this.endDate = null;\n this.onChanged({ startDate: this.startDate, endDate: this.endDate });\n this.validateDates();\n }\n\n validateDates() {\n //Both dates are mandatory\n if (this.control.mandatory && (!this.startDate || !this.endDate)) {\n this.parentForm\n .get(this.control.configuration.key)\n ?.setErrors({ required: true });\n } else {\n this.parentForm.get(this.control.configuration.key)?.setErrors(null);\n }\n\n // End date must be after start date\n if (\n this.startDate &&\n this.endDate &&\n this.startDate.setHours(0, 0, 0, 0) > this.endDate.setHours(0, 0, 0, 0)\n ) {\n this.parentForm\n .get(this.control.configuration.key)\n ?.setErrors({ dueDate: true });\n }\n\n //TBD: Scenario if only one date is mandatory\n }\n\n registerOnChange(fn: (value: any) => void): void {\n this.onChanged = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, forwardRef } from '@angular/core';\nimport {\n FormsModule,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n} from '@angular/forms';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { InputSwitchModule } from 'primeng/inputswitch';\nimport { InlineFieldError } from '../../meta-field-error/inline-field-error.component';\nimport { MetaLabelComponent } from '../../meta-field-label/meta-label.component';\nimport { BaseMetaField } from '../../utils/base-meta-field';\n\n@Component({\n selector: 'phoenix-meta-switch',\n standalone: true,\n imports: [\n CommonModule,\n ReactiveFormsModule,\n InlineFieldError,\n MetaLabelComponent,\n TranslateModule,\n InputSwitchModule,\n FormsModule,\n ],\n template: `\n <div>\n <phoenix-meta-label [control]=\"control\"></phoenix-meta-label>\n <p-inputSwitch\n [attr.data-cy]=\"'switch-' + control?.id\"\n class=\"ml-1 mr-1\"\n [hidden]=\"control?.hidden\"\n [(ngModel)]=\"value\"\n (onChange)=\"onChanged(value)\"\n [disabled]=\"disable\"\n ></p-inputSwitch>\n <phoenix-inline-field-error\n *ngIf=\"!control?.hidden\"\n [ctrl]=\"ctrl\"\n ></phoenix-inline-field-error>\n </div>\n `,\n styles: [\n `\n :host::ng-deep {\n .p-inputswitch {\n margin-top: 12px;\n }\n }\n `,\n ],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MetaSwitchComponent),\n multi: true,\n },\n ],\n})\nexport class MetaSwitchComponent extends BaseMetaField {}\n","import { CommonModule } from '@angular/common';\nimport { Component, forwardRef, inject } from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { TextareaModule } from 'primeng/textarea';\n\nimport { InlineFieldError } from '../../meta-field-error/inline-field-error.component';\nimport { MetaLabelComponent } from '../../meta-field-label/meta-label.component';\nimport { BaseMetaField } from '../../utils/base-meta-field';\n\n@Component({\n selector: 'phoenix-meta-text-area',\n standalone: true,\n imports: [\n CommonModule,\n FormsModule,\n TextareaModule,\n MetaLabelComponent,\n TranslateModule,\n InlineFieldError,\n ],\n template: `\n <phoenix-meta-label [control]=\"control\"></phoenix-meta-label>\n <textarea\n [attr.data-cy]=\"'text-area-' + control?.id\"\n [hidden]=\"control?.hidden\"\n [(ngModel)]=\"value\"\n (input)=\"onChanged(getInputValue($event))\"\n [disabled]=\"disable\"\n (blur)=\"onTouched()\"\n [rows]=\"5\"\n [cols]=\"30\"\n pInputTextarea\n class=\"w-full h-10rem\"\n ></textarea>\n <phoenix-inline-field-error\n *ngIf=\"!control?.hidden\"\n [ctrl]=\"ctrl\"\n ></phoenix-inline-field-error>\n `,\n styles: [],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MetaTextAreaComponent),\n multi: true,\n },\n ],\n})\nexport class MetaTextAreaComponent extends BaseMetaField {\n lang = inject(TranslateService).currentLang;\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, forwardRef } from '@angular/core';\nimport {\n FormsModule,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n} from '@angular/forms';\nimport { EditorModule } from 'primeng/editor';\nimport { InlineFieldError } from '../../meta-field-error/inline-field-error.component';\nimport { MetaLabelComponent } from '../../meta-field-label/meta-label.component';\nimport { BaseMetaField } from '../../utils/base-meta-field';\nimport { TextareaModule } from 'primeng/textarea';\n\n@Component({\n selector: 'phoenix-meta-text-editor',\n standalone: true,\n imports: [\n CommonModule,\n EditorModule,\n MetaLabelComponent,\n ReactiveFormsModule,\n FormsModule,\n InlineFieldError,\n TextareaModule,\n ],\n template: `\n <div [hidden]=\"control?.hidden\">\n <phoenix-meta-label [control]=\"control\"></phoenix-meta-label>\n <p-editor\n [attr.data-cy]=\"'editor-' + control?.id\"\n [readonly]=\"disable\"\n [(ngModel)]=\"value\"\n (onTextChange)=\"onChanged(value); changeValue($event.htmlValue)\"\n (blur)=\"onTouched()\"\n [style]=\"{\n minHeight: '120px',\n height: '100%',\n }\"\n ></p-editor>\n <phoenix-inline-field-error\n *ngIf=\"!control?.hidden\"\n [ctrl]=\"ctrl\"\n ></phoenix-inline-field-error>\n </div>\n `,\n styles: [\n `\n :host::ng-deep {\n .p-editor-container .p-editor-content .ql-editor {\n min-height: 120px;\n }\n /* remove import image */\n .ql-image {\n display: none !important;\n }\n }\n `,\n ],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MetaTextEditorComponent),\n multi: true,\n },\n ],\n})\nexport class MetaTextEditorComponent extends BaseMetaField {\n changeValue(value: string) {\n this.parentForm.controls[this.control?.configuration?.key].setValue(value);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, forwardRef, inject } from '@angular/core';\nimport {\n FormsModule,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n} from '@angular/forms';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\n\nimport { InputTextModule } from 'primeng/inputtext';\nimport { KeyFilterModule } from 'primeng/keyfilter';\nimport { InlineFieldError } from '../../meta-field-error/inline-field-error.component';\nimport { MetaLabelComponent } from '../../meta-field-label/meta-label.component';\nimport { BaseMetaField } from '../../utils/base-meta-field';\n\n@Component({\n selector: 'phoenix-meta-text-input',\n standalone: true,\n imports: [\n CommonModule,\n ReactiveFormsModule,\n InputTextModule,\n InlineFieldError,\n FormsModule,\n MetaLabelComponent,\n TranslateModule,\n KeyFilterModule,\n ],\n template: `\n <div>\n <phoenix-meta-label [control]=\"control\"></phoenix-meta-label>\n <input\n [attr.data-cy]=\"'input-' + control?.id\"\n [hidden]=\"control?.hidden\"\n [(ngModel)]=\"value\"\n (input)=\"onChanged(getInputValue($event))\"\n (blur)=\"onTouched()\"\n [disabled]=\"disable\"\n type=\"text\"\n pInputText\n class=\"w-full\"\n />\n <phoenix-inline-field-error\n *ngIf=\"!control?.hidden\"\n [ctrl]=\"ctrl\"\n ></phoenix-inline-field-error>\n </div>\n `,\n styles: [``],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MetaTextInputComponent),\n multi: true,\n },\n ],\n})\nexport class MetaTextInputComponent extends BaseMetaField {\n lang = inject(TranslateService).currentLang;\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, forwardRef, inject } from '@angular/core';\nimport {\n ControlValueAccessor,\n FormGroup,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n} from '@angular/forms';\nimport { TranslateModule } from '@ngx-translate/core';\n\nimport { InputTextModule } from 'primeng/inputtext';\nimport { KeyFilterModule } from 'primeng/keyfilter';\nimport { InlineFieldError } from '../../meta-field-error/inline-field-error.component';\nimport { MetaLabelComponent } from '../../meta-field-label/meta-label.component';\n\n@Component({\n selector: 'phoenix-meta-timeperiod',\n standalone: true,\n imports: [\n CommonModule,\n ReactiveFormsModule,\n InputTextModule,\n InlineFieldError,\n MetaLabelComponent,\n TranslateModule,\n KeyFilterModule,\n ],\n template: `\n <div>\n <phoenix-meta-label [control]=\"control\"></phoenix-meta-label>\n <input\n [attr.data-cy]=\"'time-period-' + control?.id\"\n [hidden]=\"control?.hidden\"\n [value]=\"value\"\n (input)=\"onChanged(getInputValue($event))\"\n (blur)=\"onTouched()\"\n [disabled]=\"isDisabled\"\n type=\"text\"\n pInputText\n class=\"w-full\"\n />\n <phoenix-inline-field-error\n *ngIf=\"!control?.hidden\"\n [ctrl]=\"ctrl\"\n ></phoenix-inline-field-error>\n </div>\n `,\n styles: [],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MetaTimeperiodComponent),\n multi: true,\n },\n ],\n})\nexport class MetaTimeperiodComponent implements ControlValueAccessor {\n @Input() control: any;\n @Input() parentForm!: FormGroup;\n value!: string;\n ctrl: any;\n\n ngOnInit() {\n this.ctrl = this.parentForm.get(this.control.configuration.key);\n }\n\n public onChanged!: (value: string) => void;\n public onTouched!: () => void;\n public isDisabled!: boolean;\n getInputValue(event: Event): string {\n if (event.target instanceof HTMLInputElement) {\n return event.target.value;\n }\n if (event.target instanceof HTMLTextAreaElement) {\n return event.target.value;\n }\n return '';\n }\n writeValue(value: string): void {}\n registerOnChange(fn: any): void {\n this.onChanged = fn;\n }\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n setDisabledState(isDisabled: boolean) {\n this.isDisabled = isDisabled;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n ElementRef,\n ViewChild,\n forwardRef,\n inject,\n} from '@angular/core';\nimport {\n FormsModule,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n} from '@angular/forms';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { InlineFieldError } from '../../meta-field-error/inline-field-error.component';\nimport { MetaLabelComponent } from '../../meta-field-label/meta-label.component';\nimport { BaseMetaField } from '../../utils/base-meta-field';\nimport { KeyFilterModule } from 'primeng/keyfilter';\n\nimport { FileUploadModule } from 'primeng/fileupload';\nimport { ButtonModule } from 'primeng/button';\n\n@Component({\n selector: 'phoenix-meta-upload',\n standalone: true,\n imports: [\n CommonModule,\n ReactiveFormsModule,\n InputTextModule,\n InlineFieldError,\n FormsModule,\n MetaLabelComponent,\n TranslateModule,\n KeyFilterModule,\n\n FileUploadModule,\n ButtonModule,\n ],\n template: `\n <div>\n <phoenix-meta-label [control]=\"control\"></phoenix-meta-label>\n <p-button\n [label]=\"\n file?.name\n ? ('LABELS.SELECTED_FILE' | translate) + ': ' + file?.name\n : (control?.configuration?.label | translate)\n \"\n icon=\"pi pi-upload\"\n class=\" white-space-nowrap overflow-hidden text-overflow-ellipsis\"\n (click)=\"triggerFileInput()\"\n [text]=\"true\"\n />\n\n <input\n [attr.data-cy]=\"'upload-' + control?.id\"\n #fileInput\n [accept]=\"control?.configuration?.accept\"\n id=\"file-upload\"\n [hidden]=\"control?.hidden\"\n [(ngModel)]=\"value\"\n (input)=\"onChanged(this.fileChange($event))\"\n (blur)=\"onTouched()\"\n [disabled]=\"disable\"\n [pKeyFilter]=\"\"\n type=\"file\"\n pInputText\n class=\"w-full\"\n />\n <phoenix-inline-field-error\n *ngIf=\"!control?.hidden\"\n [ctrl]=\"ctrl\"\n ></phoenix-inline-field-error>\n </div>\n `,\n styles: [\n `\n input[type='file'] {\n display: none;\n }\n `,\n ],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MetaUploadComponent),\n multi: true,\n },\n ],\n})\nexport class MetaUploadComponent extends BaseMetaField {\n @ViewChild('fileInput') fileInput!: ElementRef;\n\n lang = inject(TranslateService).currentLang;\n file: any;\n fileChange(event: any) {\n this.file = event.target.files[0];\n return this.file;\n }\n\n triggerFileInput() {\n this.fileInput.nativeElement.click();\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'fieldCol',\n standalone: true,\n})\nexport class FieldColPipe implements PipeTransform {\n transform(value: any, ...args: unknown[]): string {\n if (value.style) {\n return `col-${value.style.colWidth} `;\n } else {\n return 'col-12';\n }\n }\n}\n","export enum GlobalPhase {\n SC_PHASE = 'sc',\n RA_PHASE = 'ra',\n PRA_PHASE = 'pra',\n IA_PHASE = 'ia',\n GAP_PHASE = 'gap',\n ADMINISTRATION_PHASE = 'administration',\n WF_PHASE = 'workflow',\n REPORT_PHASE = 'reporting',\n MY_TASKS = 'my-tasks',\n ALL_TASKS = 'all-tasks',\n TASKBOARD = 'taskboards',\n SPACES = 'spaces',\n CATALOG = 'catalog',\n CATEGORIES = 'categories',\n DASHBOARD = 'dashboard',\n MONITORING = 'monitoring',\n RISK_OVERVIEW = 'RISK_OVERVIEW',\n}\n","export class SoTypes {\n static readonly COMPL_APPLIED_MODULE = 'COMPL_APPLIED_MODULE';\n static readonly COMPL_APPLIED_MEASURE = 'COMPL_APPLIED_MEASURE';\n static readonly COMPL_APPLIED_REQUIREMENT = 'COMPL_APPLIED_REQUIREMENT';\n static readonly COMPL_APPLIED_THREAT = 'COMPL_APPLIED_THREAT';\n static readonly COMPL_APPLIED_RISK = 'COMPL_APPLIED_RISK';\n static readonly COMPL_APPLIED_CONTROL = 'COMPL_APPLIED_CONTROL';\n\n static resolveUrlType(typeLabelKey: SoTypes | string) {\n switch (typeLabelKey) {\n case SoTypes.COMPL_APPLIED_MODULE:\n return SoTypesString.MODULES;\n case SoTypes.COMPL_APPLIED_CONTROL:\n return SoTypesString.CONTROLS;\n case SoTypes.COMPL_APPLIED_REQUIREMENT:\n return SoTypesString.REQUIREMENTS;\n case SoTypes.COMPL_APPLIED_MEASURE:\n return SoTypesString.MEASURES;\n case SoTypes.COMPL_APPLIED_THREAT:\n return SoTypesString.THREATS;\n case SoTypes.COMPL_APPLIED_RISK:\n return SoTypesString.RISKS;\n case 'COMPL_RISK_OBJECT':\n return SoTypesString.RISKS;\n default:\n return SoTypesString.MODULES;\n }\n }\n\n static resolveUrlTypeByString(stringType: SoTypesString | string) {\n switch (stringType) {\n case SoTypesString.MODULES:\n return SoTypes.COMPL_APPLIED_MODULE;\n case SoTypesString.CONTROLS:\n return SoTypes.COMPL_APPLIED_CONTROL;\n case SoTypesString.REQUIREMENTS:\n return SoTypes.COMPL_APPLIED_REQUIREMENT;\n case SoTypesString.MEASURES:\n return SoTypes.COMPL_APPLIED_MEASURE;\n case SoTypesString.THREATS:\n return SoTypes.COMPL_APPLIED_THREAT;\n case SoTypesString.RISKS:\n return SoTypes.COMPL_APPLIED_RISK;\n default:\n return SoTypes.COMPL_APPLIED_MODULE;\n }\n }\n}\n\nexport enum SoTypesString {\n MODULES = 'modules',\n REQUIREMENTS = 'requirements',\n MEASURES = 'measures',\n THREATS = 'threats',\n RISKS = 'risks',\n VULNERABILITIES = 'vulnerabilities',\n DAMAGE_SCENARIO = 'damagescenarios',\n RISK_TREATMENT = 'risktreatments',\n CONTROLS = 'controls',\n ADDITIONAL_MEASURES = 'additionalmeasures',\n}\n","import {\n AfterViewInit,\n Component,\n DestroyRef,\n Input,\n OnInit,\n} from '@angular/core';\nimport { CommonModule, DatePipe } from '@angular/common';\nimport { MetaLabelComponent } from '../../meta-field-label/meta-label.component';\nimport { FormGroup, FormsModule } from '@angular/forms';\nimport { DomSanitizer } from '@angular/platform-browser';\n\nimport { InputSwitchModule } from 'primeng/inputswitch';\n// import { SerachCardComponent } from '@phoenix/ui/ui-common';\n// import { DateFormatService } from '@phoenix/service/common';\nimport { takeUntilDestroyed, toSignal } from '@angular/core/rxjs-interop';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { distinctUntilChanged } from 'rxjs';\nimport { PasswordModule } from 'primeng/password';\nimport { SelectButtonModule } from 'primeng/selectbutton';\nimport { EditorModule } from 'primeng/editor';\n\n// import { SearchResult } from '@phoenix/model-meta';\n// import { EnvService } from '@phoenix/environment';\n// import { TransformAttributeTypesService } from '@phoenix/service/isms';\nimport { OverlayPanelModule } from 'primeng/overlaypanel';\nimport { PanelModule } from 'primeng/panel';\nimport { ButtonModule } from 'primeng/button';\nimport { GlobalPhase } from '../../utils/global-phase.utils';\nimport { SoTypes } from '../../utils/so-types';\nimport { getLanguageParam } from '../../utils/lang.utils';\nimport { ControlType } from '../../utils/control-type.enum';\n\n@Component({\n selector: 'phoenix-read-only-input',\n standalone: true,\n imports: [\n CommonModule,\n MetaLabelComponent,\n InputSwitchModule,\n FormsModule,\n // SerachCardComponent,\n CheckboxModule,\n PasswordModule,\n TranslateModule,\n SelectButtonModule,\n EditorModule,\n OverlayPanelModule,\n PanelModule,\n ButtonModule,\n ],\n templateUrl: './read-only-input.component.html',\n styleUrls: ['./read-only-input.component.scss'],\n})\nexport class ReadOnlyInputComponent implements OnInit, AfterViewInit {\n @Input() control: any;\n @Input() metaform!: FormGroup;\n value!: any;\n ctrlType = ControlType;\n\n constructor(\n private sanitizer: DomSanitizer,\n private translateService: TranslateService,\n private dr: DestroyRef // private envService: EnvService, // private transformAtService: TransformAttributeTypesService\n ) {}\n\n ngAfterViewInit(): void {\n this.metaform\n .get(this.control.configuration.key)\n ?.valueChanges.pipe(takeUntilDestroyed(this.dr), distinctUntilChanged())\n .subscribe(() => {\n this.setData();\n });\n }\n\n ngOnInit() {\n this.setData();\n }\n\n selectEvent(data: any): void {\n // let url: string;\n // const phase = this.resolvePhase(data.type.labelKey);\n // switch (phase) {\n // case GlobalPhase.IA_PHASE:\n // url = `${this.envService.baseServerUrl}isms/${phase}/${data.scopes[0].uuid}/${data.type.labelKey}/${data.uuid}`;\n // break;\n // case 'CVE':\n // url = `${this.envService.baseServerUrl}assm/configuration/cv/${data.name}`;\n // break;\n // default:\n // url = `${this.envService.baseServerUrl}isms/${phase}/${\n // data.scopes[0].uuid\n // }/${data.togType}/${data.asset.uuid}/${SoTypes.resolveUrlType(\n // data.type.labelKey\n // )}/${data.uuid}`;\n // break;\n // }\n // window.open(url, '_blank');\n }\n\n resolvePhase(type: string) {\n switch (type) {\n case SoTypes.COMPL_APPLIED_THREAT:\n case SoTypes.COMPL_APPLIED_MEASURE:\n case SoTypes.COMPL_APPLIED_MODULE:\n case SoTypes.COMPL_APPLIED_REQUIREMENT:\n case SoTypes.COMPL_APPLIED_CONTROL:\n return GlobalPhase.SC_PHASE;\n case SoTypes.COMPL_APPLIED_THREAT:\n case 'COMPL_RISK_OBJECT':\n return GlobalPhase.RA_PHASE;\n case 'CVE':\n return 'CVE';\n default:\n return GlobalPhase.IA_PHASE;\n }\n }\n\n setData(): void {\n switch (this.control.configuration.type) {\n case ControlType.SS_OPTION:\n const currentLang = this.translateService.currentLang;\n const data = this.metaform.get(this.control.configuration.key)?.value;\n if (data?.labelKeyValEn) {\n this.value = getLanguageParam(data, currentLang, 'labelKeyVal');\n return;\n }\n this.value = data?.userFriendlyMessage;\n break;\n case ControlType.MS_OPTION:\n const values = this.metaform.get(this.control.configuration.key)?.value;\n this.value = values.map((v: any) => v.userFriendlyMessage);\n\n break;\n\n case ControlType.DATE:\n this.value = this.metaform.get(this.control.configuration.key)?.value;\n break;\n\n case ControlType.LINKS_DATA:\n this.value = this.control?.data?.task?.links;\n break;\n\n case ControlType.TIMEPERIOD:\n const formValue = this.metaform.get(\n this.control.configuration.key\n )?.value;\n const convertedValue = '';\n // typeof formValue === 'string'\n // ? formValue\n // : this.transformAtService.fromMS(formValue);\n\n this.value = convertedValue;\n break;\n\n case ControlType.TEXT_EDITOR:\n const htmlContent = this.metaform.get(\n this.control.configuration.key\n )?.value;\n if (htmlContent?.replace(/<\\/?[^>]+(>|$)/g, '')) {\n this.value = htmlContent;\n } else {\n this.value = null;\n }\n break;\n case ControlType.SWITCH:\n this.value = {\n isBoolean:\n typeof this.metaform.get(this.control.configuration.key)?.value ===\n 'boolean',\n res: this.metaform.get(this.control.configuration.key)?.value,\n };\n break;\n default:\n this.value = this.metaform.get(this.control.configuration.key)?.value;\n break;\n }\n }\n}\n","<phoenix-meta-label [control]=\"control\"></phoenix-meta-label>\n\n<ng-container [ngSwitch]=\"control.configuration.type\">\n <ng-container *ngSwitchCase=\"ctrlType.TEXT_EDITOR\">\n <p-editor\n [attr.data-cy]=\"'editor-' + control?.id\"\n *ngIf=\"value; else fallBack\"\n [readonly]=\"true\"\n [(ngModel)]=\"value\"\n ></p-editor>\n </ng-container>\n <ng-container *ngSwitchCase=\"ctrlType.SWITCH\">\n <p-inputSwitch\n [attr.data-cy]=\"'switch-' + control?.id\"\n *ngIf=\"value?.isBoolean; else fallBack\"\n styleClass=\"mt-2 ml-1 mr-1\"\n [disabled]=\"true\"\n [(ngModel)]=\"value.res\"\n ></p-inputSwitch>\n </ng-container>\n <ng-container *ngSwitchCase=\"ctrlType.DATE\">\n <div\n [attr.data-cy]=\"'date-' + control?.id\"\n *ngIf=\"value; else fallBack\"\n class=\"font-semibold text-500 mt-3 mb-2\"\n >\n {{ value | date }}\n </div>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"ctrlType.CHECKBOX\">\n <p-checkbox\n [attr.data-cy]=\"'checkbox-' + control?.id\"\n *ngIf=\"value; else fallBack\"\n styleClass=\"mt-3\"\n [(ngModel)]=\"value\"\n [binary]=\"true\"\n inputId=\"binary\"\n [disabled]=\"true\"\n ></p-checkbox>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"ctrlType.LINKS_DATA\">\n <div\n *ngIf=\"value; else fallBack\"\n class=\"font-semibold text-500 mt-3 mb-2 overflow-y-auto\"\n [attr.data-cy]=\"'link-' + control?.id\"\n >\n <ng-container *ngFor=\"let item of value\">\n <span class=\"m-2 text-sm font-light\">{{ item?.relationLabel }}</span>\n <!-- <ng-container *ngFor=\"let link of item?.objects\">\n <phoenix-serach-card\n [readOnly]=\"true\"\n [data]=\"link\"\n [deleteButton]=\"false\"\n (selectEvent)=\"selectEvent($event)\"\n />\n </ng-container> -->\n </ng-container>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"ctrlType.ASSIGN\">\n <div\n *ngIf=\"value?.name; else fallBack\"\n [attr.data-cy]=\"'number-' + control?.id\"\n >\n <div>\n <p-button [rounded]=\"true\" [text]=\"true\" (onClick)=\"op.toggle($event)\">\n <div class=\"person-wrap\">\n <div class=\"person-avatar\">\n {{ value?.name?.toUpperCase().charAt(0) }}\n </div>\n <div>\n <p\n class=\"white-space-nowrap overflow-hidden text-overflow-ellipsis\"\n >\n {{ value?.name }}\n </p>\n <p\n class=\"white-space-nowrap overflow-hidden text-overflow-ellipsis\"\n >\n {{ value?.function }}\n </p>\n </div>\n </div></p-button\n >\n <p-overlayPanel #op>\n <div>\n <span class=\"block mb-2\">\n <i class=\"pi pi-envelope mr-1 text-500\"></i>\n\n {{ value.email ?? \" --\" }}\n </span>\n <p>\n <i class=\"pi pi-phone mr-1 text-500\"></i\n >{{ value.phone ?? \" --\" }}\n </p>\n </div></p-overlayPanel\n >\n </div>\n\n <!-- <div class=\"person-wrap\">\n <div class=\"person-avatar\">\n {{ value?.name?.toUpperCase().charAt(0) }}\n </div>\n <div class=\"font-semibold text-500\">\n <p>\n {{ value?.name }}\n </p>\n <p>\n {{ value?.function }}\n </p>\n </div>\n </div> -->\n </div>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"ctrlType.PASSWORD\">\n <div\n [attr.data-cy]=\"'password-' + control?.id\"\n *ngIf=\"value; else fallBack\"\n class=\"font-semibold text-500 mt-3 mb-2\"\n >\n <p-password\n class=\"ng-invalid ng-dirty\"\n [disabled]=\"true\"\n [(ngModel)]=\"value\"\n [feedback]=\"false\"\n ></p-password>\n </div>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"ctrlType.SS_OPTION_OBJECT_BASED\">\n <div\n [attr.data-cy]=\"'SS-OPTION-OBJECT-BASED-' + control?.id\"\n *ngIf=\"value; else fallBack\"\n class=\"font-semibold text-500 mt-3 mb-2\"\n >\n {{ value.value }}\n </div>\n </ng-container>\n\n <!-- Remove this if necessary - spaces-overview GENERAL form contol -->\n <ng-container *ngSwitchCase=\"ctrlType.SS_OPTION\">\n <div\n [attr.data-cy]=\"'SS-OPTION-' + control?.id\"\n *ngIf=\"value; else fallBack\"\n class=\"font-semibold text-500 mt-3 mb-2\"\n >\n {{ value | translate }}\n </div>\n </ng-container>\n\n <ng-container *ngSwitchDefault>\n <div\n [attr.data-cy]=\"'test-' + control?.id\"\n *ngIf=\"value; else fallBack\"\n class=\"font-semibold text-500 mt-3 mb-2\"\n >\n {{ value }}\n </div>\n </ng-container>\n</ng-container>\n\n<ng-template #fallBack>\n <div\n [attr.data-cy]=\"'test-' + control?.id\"\n class=\"font-semibold text-500 mt-3 mb-2\"\n >\n --\n </div>\n</ng-template>\n\n<!-- <ng-container *ngFor=\"let link of item?.objects\">\n <phoenix-serach-card\n [data]=\"link\"\n (removeButtonEvent)=\"\n onLinkRemove(link.name, item.relationLabelKey)\n \"\n [deleteButton]=\"true\"\n />\n </ng-container> -->\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n OnChanges,\n OnDestroy,\n SimpleChanges,\n ViewEncapsulation,\n} from '@angular/core';\nimport { FormBuilder, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { ButtonModule } from 'primeng/button';\nimport { CalendarModule } from 'primeng/calendar';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { MultiSelectModule } from 'primeng/multiselect';\n///Meta Fields\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { EditorModule } from 'primeng/editor';\nimport { PanelModule } from 'primeng/panel';\nimport { MetaFormAbstract } from './meta-form-abstract';\nimport { MetaAssignResponsibleComponent } from './meta-form-fields/meta-assign-responsible/meta-assign-responsible.component';\nimport { MetaCalendarComponent } from './meta-form-fields/meta-calendar/meta-calendar.component';\nimport { MetaCheckboxColorPickerComponent } from './meta-form-fields/meta-checkbox-color-picker/meta-checkbox-color-picker.component';\nimport { MetaCheckboxComponent } from './meta-form-fields/meta-checkbox/meta-checkbox.component';\nimport { MetaColorPickerComponent } from './meta-form-fields/meta-color-picker/meta-color-picker.component';\nimport { MetaCurrencyComponent } from './meta-form-fields/meta-currency/meta-currency.component';\nimport { MetaMultipleSelectComponent } from './meta-form-fields/meta-multiple-select/meta-multiple-select.component';\nimport { MetaNumberComponent } from './meta-form-fields/meta-number-input/meta-number-input.component';\nimport { MetaPasswordFeildComponent } from './meta-form-fields/meta-password-feild/meta-password-feild.component';\nimport { MetaSelectButtonComponent } from './meta-form-fields/meta-select-button/meta-select-button.component';\nimport { MetaSingleSelectObjectBasedComponent } from './meta-form-fields/meta-single-select-object-based/meta-single-select-object_based.component';\nimport { MetaSingleSelectComponent } from './meta-form-fields/meta-single-select/meta-single-select.component';\nimport { MetaStartDueDateComponent } from './meta-form-fields/meta-start-due-date/meta-start-due-date.component';\nimport { MetaSwitchComponent } from './meta-form-fields/meta-switch/meta-switch.component';\nimport { MetaTextAreaComponent } from './meta-form-fields/meta-text-area/meta-text-area.component';\nimport { MetaTextEditorComponent } from './meta-form-fields/meta-text-editor/meta-text-editor.component';\nimport { MetaTextInputComponent } from './meta-form-fields/meta-text-input/meta-text-input.component';\nimport { MetaTimeperiodComponent } from './meta-form-fields/meta-timeperiod/meta-timeperiod.component';\nimport { MetaUploadComponent } from './meta-form-fields/meta-upload/meta-upload.component';\nimport { FieldColPipe } from './utils/field-col.pipe';\nimport { MetaFormService } from './services/meta-form.service';\nimport { HttpClient } from '@angular/common/http';\nimport { ControlType } from './utils/control-type.enum';\nimport { ReadOnlyInputComponent } from './meta-form-templates/read-only-input/read-only-input.component';\n\n@Component({\n selector: 'phoenix-meta-form',\n standalone: true,\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n InputTextModule,\n InputTextModule,\n CalendarModule,\n DropdownModule,\n ButtonModule,\n MultiSelectModule,\n TranslateModule,\n CheckboxModule,\n EditorModule,\n FieldColPipe,\n //metafields -> to one module and than import here\n MetaTextEditorComponent,\n MetaCheckboxComponent,\n MetaTextInputComponent,\n MetaSingleSelectComponent,\n MetaStartDueDateComponent,\n MetaTextAreaComponent,\n MetaTextEditorComponent,\n MetaMultipleSelectComponent,\n MetaCalendarComponent,\n\n MetaSwitchComponent,\n MetaPasswordFeildComponent,\n MetaTimeperiodComponent,\n MetaCurrencyComponent,\n MetaNumberComponent,\n MetaAssignResponsibleComponent,\n MetaColorPickerComponent,\n PanelModule,\n ReadOnlyInputComponent,\n MetaSelectButtonComponent,\n MetaUploadComponent,\n MetaSingleSelectObjectBasedComponent,\n MetaCheckboxColorPickerComponent,\n ],\n templateUrl: './meta-form.component.html',\n styleUrls: ['./meta-form.component.scss'],\n //changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class MetaFormComponent extends MetaFormAbstract implements OnChanges {\n constructor(\n fb: FormBuilder,\n metaService: MetaFormService,\n\n translateService: TranslateService,\n http: HttpClient\n // env: EnvService\n ) {\n super(fb, metaService, translateService, http);\n }\n\n public ControlType = ControlType;\n optionLabel!: string;\n\n ngOnChanges(simpleChanges: SimpleChanges): void {\n ///set dirty only when metaform changes, not others from simplechanges\n ///optimize this. check what is needed for creating form\n\n if (\n simpleChanges?.['metaFormControls'] ||\n simpleChanges?.['metaFormValues'] ||\n simpleChanges?.['metaForm']\n ) {\n this.createForm(this.metaFormControls);\n this.metaService.setFormDirtyStatus(this.metaForm.dirty);\n }\n }\n}\n","<form [formGroup]=\"metaForm\" (ngSubmit)=\"onSubmit()\">\n <!-- <small>{{ metaForm.value | json }}</small> -->\n <div class=\"grid\">\n <ng-container *ngFor=\"let control of metaFormControls\">\n <ng-container [ngSwitch]=\"control.configuration.type\">\n <div\n [style]=\"{ order: control.order }\"\n *ngSwitchCase=\"ControlType.TEXT\"\n [ngClass]=\"control?.hidden ? 'p-0' : (control | fieldCol)\"\n class=\"flex flex-column\"\n [attr.data-cy]=\"'text-' + control?.id\"\n >\n <!-- edit field & redonly field content -->\n <ng-container *ngIf=\"control.readOnly; else readOnly\">\n <phoenix-read-only-input\n *ngIf=\"!control?.hidden\"\n [control]=\"control\"\n [metaform]=\"metaForm\"\n ></phoenix-read-only-input>\n </ng-container>\n <ng-template #readOnly>\n <phoenix-meta-text-input\n [disable]=\"disableForm\"\n [formControlName]=\"control.configuration.key\"\n [control]=\"control\"\n [parentForm]=\"metaForm\"\n >\n </phoenix-meta-text-input>\n </ng-template>\n <!-- edit field & redonly field content end -->\n </div>\n\n <div\n [style]=\"{ order: control.order }\"\n *ngSwitchCase=\"ControlType.NUMBER\"\n [ngClass]=\"control?.hidden ? 'p-0' : (control | fieldCol)\"\n class=\"flex flex-column\"\n [attr.data-cy]=\"'number-' + control?.id\"\n >\n <!-- edit field & redonly field content -->\n <ng-container *ngIf=\"control.readOnly; else readOnly\">\n <phoenix-read-only-input\n *ngIf=\"!control?.hidden\"\n [control]=\"control\"\n [metaform]=\"metaForm\"\n ></phoenix-read-only-input>\n </ng-container>\n <ng-template #readOnly>\n <phoenix-meta-number-input\n [disable]=\"disableForm\"\n [formControlName]=\"control.configuration.key\"\n [control]=\"control\"\n [parentForm]=\"metaForm\"\n >\n </phoenix-meta-number-input>\n </ng-template>\n <!-- edit field & redonly field content end -->\n </div>\n\n <div\n [style]=\"{ order: control.order }\"\n *ngSwitchCase=\"ControlType.TIMEPERIOD\"\n [ngClass]=\"control?.hidden ? 'p-0' : (control | fieldCol)\"\n class=\"flex flex-column\"\n [attr.data-cy]=\"'timeperiod-' + control?.id\"\n >\n <!-- edit field & redonly field content -->\n <ng-container *ngIf=\"control.readOnly; else readOnly\">\n <phoenix-read-only-input\n *ngIf=\"!control?.hidden\"\n [control]=\"control\"\n [metaform]=\"metaForm\"\n ></phoenix-read-only-input>\n </ng-container>\n <ng-template #readOnly>\n <phoenix-meta-timeperiod\n [formControlName]=\"control.configuration.key\"\n [control]=\"control\"\n [parentForm]=\"metaForm\"\n >\n </phoenix-meta-timeperiod>\n </ng-template>\n <!-- edit field & redonly field content end -->\n </div>\n <div\n [style]=\"{ order: control.order }\"\n *ngSwitchCase=\"ControlType.CURRENCY\"\n [ngClass]=\"control?.hidden ? 'p-0' : (control | fieldCol)\"\n class=\"flex flex-column\"\n [attr.data-cy]=\"'currency-' + control?.id\"\n >\n <!-- edit field & redonly field content -->\n <ng-container *ngIf=\"control.readOnly; else readOnly\">\n <phoenix-read-only-input\n *ngIf=\"!control?.hidden\"\n [control]=\"control\"\n [metaform]=\"metaForm\"\n ></phoenix-read-only-input>\n </ng-container>\n <ng-template #readOnly>\n <phoenix-meta-currency\n [disable]=\"disableForm\"\n [formControlName]=\"control.configuration.key\"\n [control]=\"control\"\n [parentForm]=\"metaForm\"\n >\n </phoenix-meta-currency>\n </ng-template>\n <!-- edit field & redonly field content end -->\n </div>\n\n <div\n [style]=\"{ order: control.order }\"\n *ngSwitchCase=\"ControlType.TEXT_AREA\"\n [ngClass]=\"control?.hidden ? 'p-0' : (control | fieldCol)\"\n class=\"flex flex-column\"\n [attr.data-cy]=\"'text-area-' + control?.id\"\n >\n <!-- edit field & redonly field content -->\n <ng-container *ngIf=\"control.readOnly; else readOnly\">\n <phoenix-read-only-input\n *ngIf=\"!control?.hidden\"\n [control]=\"control\"\n [metaform]=\"metaForm\"\n ></phoenix-read-only-input>\n </ng-container>\n <ng-template #readOnly>\n <phoenix-meta-text-area\n [disable]=\"disableForm\"\n [formControlName]=\"control.configuration.key\"\n [control]=\"control\"\n [parentForm]=\"metaForm\"\n ></phoenix-meta-text-area>\n </ng-template>\n <!-- edit field & redonly field content end -->\n </div>\n\n <div\n [style]=\"{ order: control.order }\"\n *ngSwitchCase=\"ControlType.SS_OPTION\"\n [ngClass]=\"control?.hidden ? 'p-0' : (control | fieldCol)\"\n class=\"flex flex-column\"\n [attr.data-cy]=\"'ss-option-' + control?.id\"\n >\n <!-- edit field & redonly field content -->\n <ng-container *ngIf=\"control.readOnly; else readOnly\">\n <phoenix-read-only-input\n *ngIf=\"!control?.hidden\"\n [control]=\"control\"\n [metaform]=\"metaForm\"\n ></phoenix-read-only-input>\n </ng-container>\n <ng-template #readOnly>\n <phoenix-meta-single-select\n [disable]=\"disableForm\"\n [formControlName]=\"control.configuration.key\"\n [control]=\"control\"\n [parentForm]=\"metaForm\"\n ></phoenix-meta-single-select>\n </ng-template>\n <!-- edit field & redonly field content end -->\n </div>\n\n <div\n [style]=\"{ order: control.order }\"\n *ngSwitchCase=\"ControlType.SS_OPTION_OBJECT_BASED\"\n [ngClass]=\"control?.hidden ? 'p-0' : (control | fieldCol)\"\n class=\"flex flex-column\"\n [attr.data-cy]=\"'ss-option-object-based-' + control?.id\"\n >\n <!-- edit field & redonly field content -->\n <ng-container *ngIf=\"control.readOnly; else readOnly\">\n <phoenix-read-only-input\n *ngIf=\"!control?.hidden\"\n [control]=\"control\"\n [metaform]=\"metaForm\"\n ></phoenix-read-only-input>\n </ng-container>\n <ng-template #readOnly>\n <phoenix-meta-single-select-object-based\n [disable]=\"disableForm\"\n [formControlName]=\"control.configuration.key\"\n [control]=\"control\"\n [parentForm]=\"metaForm\"\n ></phoenix-meta-single-select-object-based>\n </ng-template>\n <!-- edit field & redonly field content end -->\n </div>\n\n <div\n [style]=\"{ order: control.order }\"\n *ngSwitchCase=\"ControlType.MS_OPTION\"\n [ngClass]=\"control?.hidden ? 'p-0' : (control | fieldCol)\"\n class=\"flex flex-column\"\n [attr.data-cy]=\"'ms-option-' + control?.id\"\n >\n <!-- edit field & redonly field content -->\n <ng-container *ngIf=\"control.readOnly; else readOnly\">\n <phoenix-read-only-input\n *ngIf=\"!control?.hidden\"\n [control]=\"control\"\n [metaform]=\"metaForm\"\n ></phoenix-read-only-input>\n </ng-container>\n <ng-template #readOnly>\n <phoenix-meta-multiple-select\n [attr.data-cy]=\"'multiSelect-' + control?.id\"\n [disable]=\"disableForm\"\n [formControlName]=\"control.configuration.key\"\n [control]=\"control\"\n [parentForm]=\"metaForm\"\n ></phoenix-meta-multiple-select>\n </ng-template>\n <!-- edit field & redonly field content end -->\n </div>\n\n <div\n [style]=\"{ order: control.order }\"\n *ngSwitchCase=\"ControlType.START_DUE_DATE\"\n [ngClass]=\"control?.hidden ? 'p-0' : (control | fieldCol)\"\n class=\"flex flex-column\"\n [attr.data-cy]=\"'start-due-date-' + control?.id\"\n >\n <!-- edit field & redonly field content -->\n <ng-container *ngIf=\"control.readOnly; else readOnly\">\n <phoenix-read-only-input\n *ngIf=\"!control?.hidden\"\n [control]=\"control\"\n [metaform]=\"metaForm\"\n ></phoenix-read-only-input>\n </ng-container>\n <ng-template #readOnly>\n <phoenix-meta-start-due-date\n [formControlName]=\"control.configuration.key\"\n [control]=\"control\"\n [parentForm]=\"metaForm\"\n >\n </phoenix-meta-start-due-date>\n </ng-template>\n <!-- edit field & redonly field content end -->\n </div>\n\n <div\n [style]=\"{ order: control.order }\"\n *ngSwitchCase=\"ControlType.DATE\"\n [ngClass]=\"control?.hidden ? 'p-0' : (control | fieldCol)\"\n class=\"flex flex-column\"\n [attr.data-cy]=\"'date-' + control?.id\"\n >\n <!-- edit field & redonly field content -->\n <ng-container *ngIf=\"control.readOnly; else readOnly\">\n <phoenix-read-only-input\n *ngIf=\"!control?.hidden\"\n [control]=\"control\"\n [metaform]=\"metaForm\"\n ></phoenix-read-only-input>\n </ng-container>\n <ng-template #readOnly>\n <phoenix-meta-calendar\n [disable]=\"disableForm\"\n [formControlName]=\"control.configuration.key\"\n [control]=\"control\"\n [parentForm]=\"metaForm\"\n ></phoenix-meta-calendar>\n </ng-template>\n <!-- edit field & redonly field content end -->\n </div>\n\n <div\n [style]=\"{ order: control.order }\"\n *ngSwitchCase=\"ControlType.TEXT_EDITOR\"\n [ngClass]=\"control?.hidden ? 'p-0' : (control | fieldCol)\"\n class=\"flex flex-column\"\n [attr.data-cy]=\"'text-editor-' + control?.id\"\n >\n <!-- edit field & redonly field content -->\n <ng-container *ngIf=\"control.readOnly; else readOnly\">\n <phoenix-read-only-input\n *ngIf=\"!control?.hidden\"\n [control]=\"control\"\n [metaform]=\"metaForm\"\n ></phoenix-read-only-input>\n </ng-container>\n <ng-template #readOnly>\n <phoenix-meta-text-editor\n [disable]=\"disableForm\"\n [formControlName]=\"control.configuration.key\"\n [control]=\"control\"\n [parentForm]=\"metaForm\"\n ></phoenix-meta-text-editor>\n </ng-template>\n <!-- edit field & redonly field content end -->\n </div>\n\n <div\n [style]=\"{ order: control.order }\"\n *ngSwitchCase=\"ControlType.CHECKBOX\"\n [ngClass]=\"control?.hidden ? 'p-0' : (control | fieldCol)\"\n class=\"flex flex-column justify-content-end\"\n [attr.data-cy]=\"'checkbox-' + control?.id\"\n >\n <!-- edit field & redonly field content -->\n <ng-container *ngIf=\"control.readOnly; else readOnly\">\n <phoenix-read-only-input\n *ngIf=\"!control?.hidden\"\n [control]=\"control\"\n [metaform]=\"metaForm\"\n ></phoenix-read-only-input>\n </ng-container>\n <ng-template #readOnly>\n <phoenix-meta-checkbox\n [disable]=\"disableForm\"\n [formControlName]=\"control.configuration.key\"\n [control]=\"control\"\n [parentForm]=\"metaForm\"\n ></phoenix-meta-checkbox>\n </ng-template>\n <!-- edit field & redonly field content end -->\n </div>\n\n <div\n [style]=\"{ order: control.order }\"\n *ngSwitchCase=\"ControlType.CHECKBOX_COLOR\"\n [ngClass]=\"control?.hidden ? 'p-0' : (control | fieldCol)\"\n class=\"flex flex-column justify-content-end\"\n [attr.data-cy]=\"'CHECKBOX_COLOR-' + control?.id\"\n >\n <!-- edit field & redonly field content -->\n <ng-container *ngIf=\"control.readOnly; else readOnly\">\n <phoenix-read-only-input\n *ngIf=\"!control?.hidden\"\n [control]=\"control\"\n [metaform]=\"metaForm\"\n ></phoenix-read-only-input>\n </ng-container>\n <ng-template #readOnly>\n <phoenix-meta-checkbox-color-picker\n [disable]=\"disableForm\"\n [formControlName]=\"control.configuration.key\"\n [control]=\"control\"\n [parentForm]=\"metaForm\"\n ></phoenix-meta-checkbox-color-picker>\n </ng-template>\n <!-- edit field & redonly field content end -->\n </div>\n\n <div\n [style]=\"{ order: control.order }\"\n *ngSwitchCase=\"ControlType.SWITCH\"\n [ngClass]=\"control?.hidden ? 'p-0' : (control | fieldCol)\"\n class=\"flex flex-column\"\n [attr.data-cy]=\"'switch-' + control?.id\"\n >\n <!-- edit field & redonly field content -->\n <ng-container *ngIf=\"control.readOnly; else readOnly\">\n <phoenix-read-only-input\n *ngIf=\"!control?.hidden\"\n [control]=\"control\"\n [metaform]=\"metaForm\"\n ></phoenix-read-only-input>\n </ng-container>\n <ng-template #readOnly>\n <phoenix-meta-switch\n [disable]=\"disableForm\"\n [formControlName]=\"control.configuration.key\"\n [control]=\"control\"\n [parentForm]=\"metaForm\"\n ></phoenix-meta-switch>\n </ng-template>\n <!-- edit field & redonly field content end -->\n </div>\n\n <div\n [style]=\"{ order: control.order }\"\n *ngSwitchCase=\"ControlType.SELECT_BUTTON\"\n [ngClass]=\"control?.hidden ? 'p-0' : (control | fieldCol)\"\n class=\"flex flex-column\"\n [attr.data-cy]=\"'select-button-' + control?.id\"\n >\n <!-- edit field & redonly field content -->\n <ng-container *ngIf=\"control.readOnly; else readOnly\">\n <phoenix-read-only-input\n *ngIf=\"!control?.hidden\"\n [control]=\"control\"\n [metaform]=\"metaForm\"\n ></phoenix-read-only-input>\n </ng-container>\n <ng-template #readOnly>\n <phoenix-meta-select-button\n [disable]=\"disableForm\"\n [formControlName]=\"control.configuration.key\"\n [control]=\"control\"\n [parentForm]=\"metaForm\"\n ></phoenix-meta-select-button>\n </ng-template>\n <!-- edit field & redonly field content end -->\n </div>\n\n <div\n [style]=\"{ order: control.order }\"\n *ngSwitchCase=\"ControlType.ASSIGN\"\n [ngClass]=\"control?.hidden ? 'p-0' : (control | fieldCol)\"\n class=\"flex flex-column\"\n [attr.data-cy]=\"'assign-' + control?.id\"\n >\n <!-- edit field & redonly field content -->\n <ng-container *ngIf=\"control.readOnly; else readOnly\">\n <phoenix-read-only-input\n *ngIf=\"!control?.hidden\"\n [control]=\"control\"\n [metaform]=\"metaForm\"\n ></phoenix-read-only-input>\n </ng-container>\n <ng-template #readOnly>\n <phoenix-meta-assign-responsible\n [disable]=\"disableForm\"\n [formControlName]=\"control.configuration.key\"\n [control]=\"control\"\n [parentForm]=\"metaForm\"\n >\n </phoenix-meta-assign-responsible>\n </ng-template>\n <!-- edit field & redonly field content end -->\n </div>\n\n <div\n [style]=\"{ order: control.order }\"\n *ngSwitchCase=\"ControlType.LINKS_DATA\"\n [ngClass]=\"control | fieldCol\"\n class=\"flex flex-column\"\n [attr.data-cy]=\"'links-' + control?.id\"\n >\n <!-- edit field & redonly field content -->\n <ng-container *ngIf=\"control.readOnly; else readOnly\">\n <phoenix-read-only-input\n *ngIf=\"!control?.hidden\"\n [control]=\"control\"\n [metaform]=\"metaForm\"\n ></phoenix-read-only-input>\n </ng-container>\n <ng-template #readOnly>\n <!-- <phoenix-meta-object-links\n [formControlName]=\"control.configuration.key\"\n [control]=\"control\"\n [parentForm]=\"metaForm\"\n ></phoenix-meta-object-links> -->\n </ng-template>\n <!-- edit field & redonly field content end -->\n </div>\n\n <div\n [style]=\"{ order: control.order }\"\n *ngSwitchCase=\"ControlType.PASSWORD\"\n [ngClass]=\"control?.hidden ? 'p-0' : (control | fieldCol)\"\n class=\"flex flex-column\"\n [attr.data-cy]=\"'password-' + control?.id\"\n >\n <!-- edit field & redonly field content -->\n <ng-container *ngIf=\"control.readOnly; else readOnly\">\n <phoenix-read-only-input\n *ngIf=\"!control?.hidden\"\n [control]=\"control\"\n [metaform]=\"metaForm\"\n ></phoenix-read-only-input>\n </ng-container>\n <ng-template #readOnly>\n <phoenix-meta-password-feild\n [disable]=\"disableForm\"\n [formControlName]=\"control.configuration.key\"\n [control]=\"control\"\n [parentForm]=\"metaForm\"\n ></phoenix-meta-password-feild>\n </ng-template>\n <!-- edit field & redonly field content end -->\n </div>\n\n <div\n [style]=\"{ order: control.order }\"\n *ngSwitchCase=\"ControlType.COLOR\"\n [ngClass]=\"control?.hidden ? 'p-0' : (control | fieldCol)\"\n class=\"flex flex-column\"\n [attr.data-cy]=\"'color-' + control?.id\"\n >\n <!-- edit field & redonly field content -->\n <ng-container *ngIf=\"control.readOnly; else readOnly\">\n <phoenix-read-only-input\n *ngIf=\"!control?.hidden\"\n [control]=\"control\"\n [metaform]=\"metaForm\"\n ></phoenix-read-only-input>\n </ng-container>\n <ng-template #readOnly>\n <phoenix-meta-color-picker\n [disable]=\"disableForm\"\n [formControlName]=\"control.configuration.key\"\n [control]=\"control\"\n [parentForm]=\"metaForm\"\n >\n </phoenix-meta-color-picker>\n </ng-template>\n <!-- edit field & redonly field content end -->\n </div>\n\n <div\n [style]=\"{ order: control.order }\"\n *ngSwitchCase=\"ControlType.UPLOAD\"\n [attr.data-cy]=\"'upload-' + control?.id\"\n [ngClass]=\"control?.hidden ? 'p-0' : (control | fieldCol)\"\n class=\"flex flex-column\"\n >\n <!-- edit field & redonly field content -->\n <ng-container *ngIf=\"control.readOnly; else readOnly\">\n <phoenix-read-only-input\n *ngIf=\"!control?.hidden\"\n [control]=\"control\"\n [metaform]=\"metaForm\"\n ></phoenix-read-only-input>\n </ng-container>\n <ng-template #readOnly>\n <phoenix-meta-upload\n [disable]=\"disableForm\"\n [formControlName]=\"control.configuration.key\"\n [control]=\"control\"\n [parentForm]=\"metaForm\"\n >\n </phoenix-meta-upload>\n </ng-template>\n <!-- edit field & redonly field content end -->\n </div>\n <ng-content\n *ngSwitchCase=\"ControlType.SLOT\"\n [select]=\"[control.configuration.key]\"\n ></ng-content>\n </ng-container>\n </ng-container>\n </div>\n <div *ngIf=\"formButtons\" class=\"flex justify-content-end\">\n <p-button\n class=\"mr-1\"\n [disabled]=\"!metaForm.valid || disableForm\"\n type=\"submit\"\n label=\"{{ 'ACTION.SAVE' | translate }}\"\n [attr.data-cy]=\"'submit-button'\"\n ></p-button>\n <p-button\n [disabled]=\"disableForm\"\n styleClass=\"p-button-link\"\n [text]=\"true\"\n (onClick)=\"onCancel()\"\n label=\"{{ 'ACTION.CANCEL' | translate }}\"\n [attr.data-cy]=\"'cancel-button'\"\n ></p-button>\n </div>\n</form>\n","import {\n Component,\n EventEmitter,\n input,\n Input,\n model,\n OnDestroy,\n OnInit,\n Output,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ButtonModule } from 'primeng/button';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { FormsModule } from '@angular/forms';\nimport { Observable, combineLatest, Subscription } from 'rxjs';\nimport { MetaFormService } from '../services/meta-form.service';\n\n@Component({\n selector: 'phoenix-meta-form-buttons',\n standalone: true,\n imports: [\n CommonModule,\n ButtonModule,\n TranslateModule,\n CheckboxModule,\n FormsModule,\n ],\n templateUrl: './meta-form-buttons.component.html',\n styleUrls: ['./meta-form-buttons.component.scss'],\n providers: [],\n})\nexport class MetaFormButtonsComponent implements OnInit, OnDestroy {\n isDisabled = input<boolean>();\n isCreateAnother = input<boolean>(false);\n isLoading = input<boolean>(false);\n\n @Output() handleSave = new EventEmitter<any>();\n @Output() handleCancel = new EventEmitter<any>();\n\n display!: boolean;\n formActive$!: Observable<boolean>;\n createAnother!: boolean;\n sub$!: Subscription;\n\n constructor(private metaFormService: MetaFormService) {\n this.formActive$ = this.metaFormService.formReadOnlyState;\n }\n ngOnInit(): void {\n this.sub$ = combineLatest([\n this.metaFormService.currentFormTabContent,\n this.metaFormService.formReadOnlyState,\n ]).subscribe((r) => {\n let [formTabContent, formReadOnlyStatus] = r;\n if (formTabContent === 'FORM' && !formReadOnlyStatus) {\n this.display = true;\n } else {\n this.display = false;\n }\n });\n }\n\n ngOnDestroy(): void {\n this.sub$?.unsubscribe();\n }\n}\n","<!-- <ng-template *ngIf=\"formActive$ | async as formState\" pTemplate=\"footer\">\n <div *ngIf=\"!formState\" class=\"flex justify-content-end p-2\"> -->\n<div *ngIf=\"display\" class=\"flex justify-content-end p-2\">\n <p-checkbox\n *ngIf=\"isCreateAnother()\"\n id=\"dialog-buttons-checkbox\"\n data-cy=\"dialog-buttons-checkbox-cy\"\n [(ngModel)]=\"createAnother\"\n [binary]=\"true\"\n inputId=\"binary\"\n class=\"mr-3\"\n ></p-checkbox>\n\n <button\n class=\"mr-2\"\n pButton\n [disabled]=\"!isDisabled()\"\n [loading]=\"isLoading()\"\n (click)=\"handleSave.emit({ isAnother: createAnother })\"\n [attr.data-cy]=\"'submit-button'\"\n >\n <span class=\"mx-1\">{{ \"ACTION.SAVE\" }}</span>\n </button>\n\n <p-button\n [text]=\"true\"\n (click)=\"handleCancel.emit('CANCEL')\"\n [attr.data-cy]=\"'cancel-button'\"\n >\n {{ \"ACTION.CANCEL\" | translate }}\n </p-button>\n</div>\n<!-- </div>\n</ng-template> -->\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n Input,\n OnChanges,\n OnInit,\n SimpleChanges,\n inject,\n} from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\n\nimport { ButtonModule } from 'primeng/button';\nimport { CalendarModule } from 'primeng/calendar';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { EditorModule } from 'primeng/editor';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { MessagesModule } from 'primeng/messages';\nimport { MultiSelectModule } from 'primeng/multiselect';\nimport { PanelModule } from 'primeng/panel';\nimport { MetaFormAbstract } from '../../meta-form-abstract';\nimport { MetaAssignResponsibleComponent } from '../../meta-form-fields/meta-assign-responsible/meta-assign-responsible.component';\nimport { MetaCalendarComponent } from '../../meta-form-fields/meta-calendar/meta-calendar.component';\nimport { MetaCheckboxComponent } from '../../meta-form-fields/meta-checkbox/meta-checkbox.component';\nimport { MetaCurrencyComponent } from '../../meta-form-fields/meta-currency/meta-currency.component';\nimport { MetaMultipleSelectComponent } from '../../meta-form-fields/meta-multiple-select/meta-multiple-select.component';\nimport { MetaNumberComponent } from '../../meta-form-fields/meta-number-input/meta-number-input.component';\nimport { MetaPasswordFeildComponent } from '../../meta-form-fields/meta-password-feild/meta-password-feild.component';\nimport { MetaSingleSelectObjectBasedComponent } from '../../meta-form-fields/meta-single-select-object-based/meta-single-select-object_based.component';\nimport { MetaSingleSelectComponent } from '../../meta-form-fields/meta-single-select/meta-single-select.component';\nimport { MetaStartDueDateComponent } from '../../meta-form-fields/meta-start-due-date/meta-start-due-date.component';\nimport { MetaSwitchComponent } from '../../meta-form-fields/meta-switch/meta-switch.component';\nimport { MetaTextAreaComponent } from '../../meta-form-fields/meta-text-area/meta-text-area.component';\nimport { MetaTextEditorComponent } from '../../meta-form-fields/meta-text-editor/meta-text-editor.component';\nimport { MetaTextInputComponent } from '../../meta-form-fields/meta-text-input/meta-text-input.component';\nimport { MetaTimeperiodComponent } from '../../meta-form-fields/meta-timeperiod/meta-timeperiod.component';\nimport { FieldColPipe } from '../../utils/field-col.pipe';\nimport { ReadOnlyInputComponent } from '../read-only-input/read-only-input.component';\nimport { ControlType } from '../../utils/control-type.enum';\nimport { AccordionModule } from 'primeng/accordion';\n\n@Component({\n selector: 'phoenix-groups-form',\n standalone: true,\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n InputTextModule,\n // InputTextareaModule,\n CalendarModule,\n DropdownModule,\n ButtonModule,\n MultiSelectModule,\n TranslateModule,\n CheckboxModule,\n EditorModule,\n FieldColPipe,\n MetaTextEditorComponent,\n MetaCheckboxComponent,\n MetaTextInputComponent,\n MetaSingleSelectComponent,\n MetaStartDueDateComponent,\n MetaTextAreaComponent,\n MetaTextEditorComponent,\n MetaMultipleSelectComponent,\n MetaCalendarComponent,\n AccordionModule,\n // MetaObjectLinksComponent,\n MetaSwitchComponent,\n MetaPasswordFeildComponent,\n MetaTimeperiodComponent,\n MetaCurrencyComponent,\n MetaNumberComponent,\n MetaAssignResponsibleComponent,\n PanelModule,\n ReadOnlyInputComponent,\n MessagesModule,\n MetaSingleSelectObjectBasedComponent,\n ],\n templateUrl: './groups-form.component.html',\n styleUrls: ['./groups-form.component.css'],\n})\nexport class GroupsFormComponent extends MetaFormAbstract implements OnChanges {\n @Input() activePanelsIndex: number[] = [0, 1, 2, 3];\n public ControlType = ControlType;\n optionLabel!: string;\n notiffication?: any;\n private trans = inject(TranslateService);\n\n ngOnChanges(simpleChanges?: SimpleChanges): void {\n if (\n simpleChanges?.['metaFormControls'] ||\n simpleChanges?.['metaFormValues'] ||\n simpleChanges?.['metaForm']\n ) {\n const mergedArr = this.metaFormControls.flatMap((ob: any) => ob.ctrl);\n this.createForm(mergedArr);\n this.metaService.setFormDirtyStatus(this.metaForm.dirty);\n }\n }\n}\n","<p-accordion [multiple]=\"true\" [(value)]=\"activePanelsIndex\">\n <form *ngIf=\"metaFormControls\" [formGroup]=\"metaForm\" (ngSubmit)=\"onSubmit()\">\n @for ( group of metaFormControls; track group.groupName; let idx = $index){\n <div [style]=\"{ order: group.order }\" class=\"w-full\">\n <p-accordion-panel [value]=\"idx\">\n <p-accordion-header>\n <ng-template #toggleicon let-active=\"active\">\n @if (active) {\n <i class=\"pi pi-minus-circle\"></i>\n } @else {\n <i class=\"pi pi-plus-circle\"></i>\n\n }\n </ng-template>\n {{ group.groupName }}\n </p-accordion-header>\n <p-accordion-content>\n <div class=\"grid align-items-end\">\n <ng-container *ngFor=\"let control of group.ctrl\">\n <ng-container [ngSwitch]=\"control.configuration.type\">\n <div\n [style]=\"{ order: control.order }\"\n *ngSwitchCase=\"ControlType.TEXT\"\n [ngClass]=\"control?.hidden ? 'p-0' : (control | fieldCol)\"\n class=\"flex flex-column\"\n >\n <ng-container *ngIf=\"control.readOnly; else readOnly\">\n <phoenix-read-only-input\n [control]=\"control\"\n [metaform]=\"metaForm\"\n ></phoenix-read-only-input>\n </ng-container>\n <ng-template #readOnly>\n <phoenix-meta-text-input\n [disable]=\"disableForm\"\n [formControlName]=\"control.configuration.key\"\n [control]=\"control\"\n [parentForm]=\"metaForm\"\n >\n </phoenix-meta-text-input>\n </ng-template>\n </div>\n\n <div\n [style]=\"{ order: control.order }\"\n *ngSwitchCase=\"ControlType.NUMBER\"\n [ngClass]=\"control?.hidden ? 'p-0' : (control | fieldCol)\"\n class=\"flex flex-column\"\n >\n <ng-container *ngIf=\"control.readOnly; else readOnly\">\n <phoenix-read-only-input\n [control]=\"control\"\n [metaform]=\"metaForm\"\n ></phoenix-read-only-input>\n </ng-container>\n <ng-template #readOnly>\n <phoenix-meta-number-input\n [disable]=\"disableForm\"\n [formControlName]=\"control.configuration.key\"\n [control]=\"control\"\n [parentForm]=\"metaForm\"\n >\n </phoenix-meta-number-input>\n </ng-template>\n </div>\n\n <div\n [style]=\"{ order: control.order }\"\n *ngSwitchCase=\"ControlType.TIMEPERIOD\"\n [ngClass]=\"control?.hidden ? 'p-0' : (control | fieldCol)\"\n class=\"flex flex-column\"\n >\n <ng-container *ngIf=\"control.readOnly; else readOnly\">\n <phoenix-read-only-input\n [control]=\"control\"\n [metaform]=\"metaForm\"\n ></phoenix-read-only-input>\n </ng-container>\n <ng-template #readOnly>\n <phoenix-meta-timeperiod\n [formControlName]=\"control.configuration.key\"\n [control]=\"control\"\n [parentForm]=\"metaForm\"\n >\n </phoenix-meta-timeperiod>\n </ng-template>\n </div>\n <div\n [style]=\"{ order: control.order }\"\n *ngSwitchCase=\"ControlType.CURRENCY\"\n [ngClass]=\"control?.hidden ? 'p-0' : (control | fieldCol)\"\n class=\"flex flex-column\"\n >\n <ng-container *ngIf=\"control.readOnly; else readOnly\">\n <phoenix-read-only-input\n [control]=\"control\"\n [metaform]=\"metaForm\"\n ></phoenix-read-only-input>\n </ng-container>\n <ng-template #readOnly>\n <phoenix-meta-currency\n [disable]=\"disableForm\"\n [formControlName]=\"control.configuration.key\"\n [control]=\"control\"\n [parentForm]=\"metaForm\"\n >\n </phoenix-meta-currency>\n </ng-template>\n </div>\n\n <div\n [style]=\"{ order: control.order }\"\n *ngSwitchCase=\"ControlType.TEXT_AREA\"\n [ngClass]=\"control?.hidden ? 'p-0' : (control | fieldCol)\"\n class=\"flex flex-column\"\n >\n <ng-container *ngIf=\"control.readOnly; else readOnly\">\n <phoenix-read-only-input\n [control]=\"control\"\n [metaform]=\"metaForm\"\n ></phoenix-read-only-input>\n </ng-container>\n <ng-template #readOnly>\n <phoenix-meta-text-area\n [disable]=\"disableForm\"\n [formControlName]=\"control.configuration.key\"\n [control]=\"control\"\n [parentForm]=\"metaForm\"\n ></phoenix-meta-text-area>\n </ng-template>\n </div>\n\n <div\n [style]=\"{ order: control.order }\"\n *ngSwitchCase=\"ControlType.SS_OPTION\"\n [ngClass]=\"control?.hidden ? 'p-0' : (control | fieldCol)\"\n class=\"flex flex-column\"\n >\n <ng-container *ngIf=\"control.readOnly; else readOnly\">\n <phoenix-read-only-input\n [control]=\"control\"\n [metaform]=\"metaForm\"\n ></phoenix-read-only-input>\n </ng-container>\n <ng-template #readOnly>\n <phoenix-meta-single-select\n [disable]=\"disableForm\"\n [formControlName]=\"control.configuration.key\"\n [control]=\"control\"\n [parentForm]=\"metaForm\"\n ></phoenix-meta-single-select>\n </ng-template>\n </div>\n\n <div\n [style]=\"{ order: control.order }\"\n *ngSwitchCase=\"ControlType.SS_OPTION_OBJECT_BASED\"\n [ngClass]=\"control?.hidden ? 'p-0' : (control | fieldCol)\"\n class=\"flex flex-column\"\n >\n <!-- edit field & redonly field content -->\n <ng-container *ngIf=\"control.readOnly; else readOnly\">\n <phoenix-read-only-input\n *ngIf=\"!control?.hidden\"\n [control]=\"control\"\n [metaform]=\"metaForm\"\n ></phoenix-read-only-input>\n </ng-container>\n <ng-template #readOnly>\n <phoenix-meta-single-select-object-based\n [disable]=\"disableForm\"\n [formControlName]=\"control.configuration.key\"\n [control]=\"control\"\n [parentForm]=\"metaForm\"\n ></phoenix-meta-single-select-object-based>\n </ng-template>\n <!-- edit field & redonly field content end -->\n </div>\n\n <div\n [style]=\"{ order: control.order }\"\n *ngSwitchCase=\"ControlType.MS_OPTION\"\n [ngClass]=\"control?.hidden ? 'p-0' : (control | fieldCol)\"\n class=\"flex flex-column\"\n >\n <phoenix-meta-multiple-select\n [disable]=\"disableForm\"\n [formControlName]=\"control.configuration.key\"\n [control]=\"control\"\n [parentForm]=\"metaForm\"\n ></phoenix-meta-multiple-select>\n </div>\n\n <div\n [style]=\"{ order: control.order }\"\n *ngSwitchCase=\"ControlType.START_DUE_DATE\"\n [ngClass]=\"control?.hidden ? 'p-0' : (control | fieldCol)\"\n class=\"flex flex-column\"\n >\n <ng-container *ngIf=\"control.readOnly; else readOnly\">\n <phoenix-read-only-input\n [control]=\"control\"\n [metaform]=\"metaForm\"\n ></phoenix-read-only-input>\n </ng-container>\n <ng-template #readOnly>\n <phoenix-meta-start-due-date\n [formControlName]=\"control.configuration.key\"\n [control]=\"control\"\n [parentForm]=\"metaForm\"\n >\n </phoenix-meta-start-due-date>\n </ng-template>\n </div>\n\n <div\n [style]=\"{ order: control.order }\"\n *ngSwitchCase=\"ControlType.DATE\"\n [ngClass]=\"control?.hidden ? 'p-0' : (control | fieldCol)\"\n class=\"flex flex-column\"\n >\n <ng-container *ngIf=\"control.readOnly; else readOnly\">\n <phoenix-read-only-input\n [control]=\"control\"\n [metaform]=\"metaForm\"\n ></phoenix-read-only-input>\n </ng-container>\n <ng-template #readOnly>\n <phoenix-meta-calendar\n [disable]=\"disableForm\"\n [formControlName]=\"control.configuration.key\"\n [control]=\"control\"\n [parentForm]=\"metaForm\"\n ></phoenix-meta-calendar>\n </ng-template>\n </div>\n\n <div\n [style]=\"{ order: control.order }\"\n *ngSwitchCase=\"ControlType.TEXT_EDITOR\"\n [ngClass]=\"control?.hidden ? 'p-0' : (control | fieldCol)\"\n class=\"flex flex-column\"\n >\n <ng-container *ngIf=\"control.readOnly; else readOnly\">\n <phoenix-read-only-input\n [control]=\"control\"\n [metaform]=\"metaForm\"\n ></phoenix-read-only-input>\n </ng-container>\n <ng-template #readOnly>\n <phoenix-meta-text-editor\n [disable]=\"disableForm\"\n [formControlName]=\"control.configuration.key\"\n [control]=\"control\"\n [parentForm]=\"metaForm\"\n ></phoenix-meta-text-editor>\n </ng-template>\n </div>\n\n <div\n [style]=\"{ order: control.order }\"\n *ngSwitchCase=\"ControlType.CHECKBOX\"\n [ngClass]=\"control?.hidden ? 'p-0' : (control | fieldCol)\"\n class=\"flex flex-column\"\n >\n <phoenix-meta-checkbox\n [disable]=\"disableForm\"\n [formControlName]=\"control.configuration.key\"\n [control]=\"control\"\n [parentForm]=\"metaForm\"\n ></phoenix-meta-checkbox>\n </div>\n\n <div\n [style]=\"{ order: control.order }\"\n *ngSwitchCase=\"ControlType.SWITCH\"\n [ngClass]=\"control?.hidden ? 'p-0' : (control | fieldCol)\"\n class=\"flex flex-column\"\n >\n <ng-container *ngIf=\"control.readOnly; else readOnly\">\n <phoenix-read-only-input\n [control]=\"control\"\n [metaform]=\"metaForm\"\n ></phoenix-read-only-input>\n </ng-container>\n <ng-template #readOnly>\n <phoenix-meta-switch\n [disable]=\"true\"\n [formControlName]=\"control.configuration.key\"\n [control]=\"control\"\n [parentForm]=\"metaForm\"\n ></phoenix-meta-switch>\n </ng-template>\n </div>\n\n <div\n [style]=\"{ order: control.order }\"\n *ngSwitchCase=\"ControlType.ASSIGN\"\n [ngClass]=\"control?.hidden ? 'p-0' : (control | fieldCol)\"\n class=\"flex flex-column\"\n >\n <ng-container *ngIf=\"control.readOnly; else readOnly\">\n <phoenix-read-only-input\n [control]=\"control\"\n [metaform]=\"metaForm\"\n ></phoenix-read-only-input>\n </ng-container>\n <ng-template #readOnly>\n <phoenix-meta-assign-responsible\n [disable]=\"disableForm\"\n [formControlName]=\"control.configuration.key\"\n [control]=\"control\"\n [parentForm]=\"metaForm\"\n >\n </phoenix-meta-assign-responsible>\n </ng-template>\n </div>\n\n <div\n [style]=\"{ order: control.order }\"\n *ngSwitchCase=\"ControlType.LINKS_DATA\"\n [ngClass]=\"control | fieldCol\"\n class=\"flex flex-column\"\n >\n <!-- <phoenix-meta-object-links\n [formControlName]=\"control.configuration.key\"\n [control]=\"control\"\n [parentForm]=\"metaForm\"\n ></phoenix-meta-object-links> -->\n </div>\n\n <div\n [style]=\"{ order: control.order }\"\n *ngSwitchCase=\"ControlType.PASSWORD\"\n [ngClass]=\"control?.hidden ? 'p-0' : (control | fieldCol)\"\n class=\"flex flex-column\"\n >\n <phoenix-meta-password-feild\n [disable]=\"disableForm\"\n [formControlName]=\"control.configuration.key\"\n [control]=\"control\"\n [parentForm]=\"metaForm\"\n ></phoenix-meta-password-feild>\n </div>\n </ng-container>\n </ng-container>\n </div>\n </p-accordion-content>\n </p-accordion-panel>\n </div>\n }\n </form>\n</p-accordion>\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'textLength',\n standalone: true,\n})\nexport class TextLength implements PipeTransform {\n /**\n * Transforms the specified text value\n * If the size of the string is greater than the limit, it returns a substring of the desired size, and adds ellipsis \"...\"\n * If the size of the string is less than the limit, it returns the original string\n * @param value\n * @param limit\n */\n\n transform(value: string, limit: number) {\n if (value?.length > limit) {\n return value.substring(0, limit) + ' ...';\n }\n return value;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'firstLetter',\n standalone: true,\n})\nexport class FirstLetterPipe implements PipeTransform {\n transform(value: string): string {\n return value.charAt(0).toUpperCase();\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, OnChanges } from '@angular/core';\nimport { TranslateModule } from '@ngx-translate/core';\n\n@Component({\n selector: 'phoenix-tag',\n standalone: true,\n imports: [CommonModule, TranslateModule],\n templateUrl: './tag.component.html',\n styleUrls: ['./tag.component.scss'],\n})\nexport class TagComponent implements OnChanges {\n @Input() key!: string;\n @Input() content!: string;\n @Input() customColor!: string;\n\n color: string | undefined;\n customStyle!: {\n 'background-color': string;\n border: string;\n color: string;\n };\n\n ngOnChanges(): void {\n if (this.customColor) {\n this.customStyle = {\n 'background-color': this.customColor,\n border: this.invertHex(this.customColor),\n color: 'white',\n //color: this.invertHex(this.customColor),\n };\n }\n }\n\n invertHex(hex: string) {\n if (hex.indexOf('#') === 0) {\n hex = hex.slice(1);\n }\n\n if (hex.length != 6) {\n console.warn('Hex color must be six hex numbers in length.');\n return '#' + hex;\n }\n\n hex = hex.toUpperCase();\n const splitNum: any = hex.split('');\n let resultNum = '';\n const simpleNum = 'FEDCBA9876'.split('');\n const complexNum: any = {\n A: '5',\n B: '4',\n C: '3',\n D: '2',\n E: '1',\n F: '0',\n };\n\n for (let i = 0; i < 6; i++) {\n if (!isNaN(Number(splitNum[i]))) {\n resultNum += simpleNum[splitNum[i]];\n } else if (complexNum[splitNum[i]]) {\n resultNum += complexNum[splitNum[i]];\n } else {\n console.warn('Hex colors must only include hex numbers 0-9, and A-F');\n return '#' + hex;\n }\n }\n\n return '#' + resultNum;\n }\n}\n","<ng-container>\n <span [class]=\"'phoenix-tag '\" [ngStyle]=\"customStyle\">\n {{ content | translate }}\n </span>\n</ng-container>\n\n<!-- class=\"text-800\" style color depends on theme -->\n","// export type StatusColType = \"LIST\" | \"TAG\" | \"DATE_LIST\" | \"DATE\" | \"STRING\" | \"ACTION\" | \"OWNER\" | \"PERSON\";\n\nexport enum StatusColType {\n TAG = 'TAG',\n STRING = 'STRING',\n PERSON = 'PERSON',\n DATE = 'DATE',\n DATE_LIST = 'DATE_LIST',\n LIST = 'LIST',\n }","import { CommonModule, DatePipe } from '@angular/common';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ImageModule } from 'primeng/image';\nimport { TooltipModule } from 'primeng/tooltip';\nimport { TextLength } from './pipes/text-length.pipe';\nimport { FirstLetterPipe } from './pipes/first-letter.pipe';\nimport { AvatarModule } from 'primeng/avatar';\nimport { PopoverModule } from 'primeng/popover';\nimport { TagComponent } from '../tag/tag.component';\nimport { StatusBarConfig } from './models/status-bar-configuration.model';\nimport { StatusColType } from './enums/status-col-type.enum';\n\n@Component({\n selector: 'phoenix-status-bar',\n standalone: true,\n templateUrl: './status-bar.component.html',\n styleUrls: ['./status-bar.component.scss'],\n imports: [\n CommonModule,\n TranslateModule,\n TooltipModule,\n ImageModule,\n AvatarModule,\n PopoverModule,\n TagComponent,\n DatePipe,\n TextLength,\n FirstLetterPipe\n ],\n})\nexport class StatusBarComponent {\n @Input() statusBarConfig!: StatusBarConfig;\n @Input() iconEnable = true;\n @Input() enableClosing = true;\n @Input() description = true;\n @Input() dateFormat = 'dd.MM.yyyy';\n\n @Output() onListItemClick = new EventEmitter<any>();\n\n isCollapsed = false;\n\n StatusColType = StatusColType;\n\n iconStyle = {\n height: 60,\n width: 60,\n };\n}","\n<div class=\"surface-0\">\n <div *ngIf=\"statusBarConfig\" class=\"status-bar-wrapper\" [ngClass]=\"{ collapsed: isCollapsed }\">\n <div class=\"description flex\" *ngIf=\"description\">\n <!-- Entity icon -->\n <div\n class=\"type-icon flex justify-content-center align-items-center mr-3\"\n [style.height]=\"iconStyle.height + 20 + 'px'\"\n [style.width]=\"iconStyle.width + 20 + 'px'\"\n >\n <p-image\n [src]=\"\n 'assets/object_types/white/' +\n (statusBarConfig.icon ? statusBarConfig.icon : 'UNDEFINED') +\n '.svg'\n \"\n [height]=\"iconStyle.height.toString()\"\n [width]=\"iconStyle.width.toString()\"\n ></p-image>\n </div>\n\n <!-- Descriptive data -->\n <ul>\n <li class=\"text-sm flex mb-1\" *ngFor=\"let attr of statusBarConfig.description\">\n <span class=\"text-600 mr-1\">{{ attr.label | translate }}:</span>\n <span *ngIf=\"attr.value; else empty\">\n <i *ngIf=\"attr.icon\" class=\"{{ attr.icon }} mr-1\" style=\"font-size: 0.8em\"></i>\n <ng-container [ngSwitch]=\"attr.type\">\n <span *ngSwitchCase=\"'DATE'\">{{ attr.value | date: dateFormat }}</span>\n <span *ngSwitchDefault>{{ attr.value }}</span>\n </ng-container>\n </span>\n </li>\n </ul>\n </div>\n\n <!-- Attributes -->\n <div class=\"flex flex-wrap gap-4 mt-3\" *ngIf=\"statusBarConfig.attributes?.length\">\n <div *ngFor=\"let attr of statusBarConfig.attributes\" class=\"attribute\">\n <!-- <div class=\"font-semibold\">{{ attr.label | translate }}</div> -->\n <div class=\"mt-1\">\n <ng-container [ngSwitch]=\"attr.type\">\n\n <!-- TAG -->\n <ng-container *ngSwitchCase=\"StatusColType.TAG\">\n <div class=\"attribute flex justify-content-center\">\n <div class=\"flex flex-column\">\n <div class=\"flex\">\n <span>{{ attr.label | translate }}</span>\n <i\n *ngIf=\"attr?.tooltip\"\n class=\"pi pi-info-circle text-blue-500 ml-2\"\n (mouseenter)=\"details.toggle($event)\"\n (mouseleave)=\"details.toggle($event)\"\n ></i>\n </div>\n <div *ngIf=\"attr?.value; else empty\" [style.color]=\"attr.color\" class=\"text-xl mt-2\">\n {{ attr.value }}\n </div>\n </div>\n </div>\n\n <p-popover #details>\n <ng-container *ngFor=\"let item of attr?.tooltip\">\n <div class=\"flex justify-content-between\">\n <span style=\"min-width: 100px\" class=\"m-2 text-500 font-semibold\">\n {{ item?.label }}:\n </span>\n <span style=\"min-width: 100px\" class=\"m-2 font-medium\">\n {{ item?.value }}\n </span>\n <span style=\"min-width: 100px\" class=\"ml-1 mt-2 mb-2 mr-1\">\n <phoenix-tag\n [customColor]=\"item.value1\"\n [content]=\"item.value\"\n ></phoenix-tag>\n </span>\n </div>\n </ng-container>\n </p-popover>\n </ng-container>\n\n <!-- STRING -->\n <ng-container *ngSwitchCase=\"StatusColType.STRING\">\n <div class=\"attribute\">\n <div class=\"flex flex-column\">\n <label>{{ attr.label | translate }}</label>\n <div\n *ngIf=\"attr?.value; else empty\"\n pTooltip=\"{{ attr?.value?.length > 150 ? attr.value : '' }}\"\n >\n {{ attr.value | translate | textLength: 150 }}\n </div>\n </div>\n </div>\n </ng-container>\n\n <!-- PERSON -->\n <ng-container *ngSwitchCase=\"StatusColType.PERSON\">\n <div class=\"attribute flex justify-content-center\">\n <div class=\"flex flex-column\">\n {{ attr.label | translate }}\n <div\n class=\"person-wrap\"\n *ngIf=\"attr?.value || attr?.value1; else empty\"\n >\n <div class=\"person-avatar\">\n {{ attr?.value?.charAt(0) }}\n </div>\n <div\n class=\"white-space-nowrap overflow-hidden text-overflow-ellipsis\"\n pTooltip=\"{{ attr?.value }} {{ attr?.value1 }}\"\n >\n {{ attr?.value }} {{ attr?.value1 }}\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n\n <!-- DATE -->\n <ng-container *ngSwitchCase=\"StatusColType.DATE\">\n <div class=\"attribute flex justify-content-center\">\n <div class=\"flex flex-column\">\n {{ attr.label | translate }}\n <div *ngIf=\"attr?.value; else empty\" class=\"flex align-items-center mt-2\">\n <i class=\"pi pi-calendar mr-1\"></i>\n {{ attr.value | date: dateFormat }}\n </div>\n </div>\n </div>\n </ng-container>\n\n <!-- DATE_LIST -->\n <ng-container *ngSwitchCase=\"StatusColType.DATE_LIST\">\n <div class=\"attribute\">\n <label class=\"white-space-nowrap\">{{ attr.label | translate }}</label>\n <i\n *ngIf=\"attr?.value\"\n class=\"pi pi-info-circle text-blue-500 mr-1\"\n (mouseenter)=\"overlayPanel.toggle($event)\"\n (mouseleave)=\"overlayPanel.toggle($event)\"\n ></i>\n <div *ngIf=\"attr?.value; else empty\">\n <div class=\"flex align-items-center\">\n <i class=\"pi pi-calendar mr-1\"></i>\n {{ attr.value | date: dateFormat + ' | HH:mm' }}\n </div>\n </div>\n </div>\n\n <p-popover #overlayPanel>\n <!-- Created by -->\n \n <div *ngFor=\"let item of attr.tooltip\" class=\"mb-4\">\n <div class=\"mb-2 text-600\">\n {{ item.label | translate }}\n </div>\n <div class=\"flex\">\n <div class=\"mr-2 align-self-center\">\n <p-avatar\n shape=\"circle\"\n [label]=\"item.value ? (item.value | firstLetter) : ''\"\n ></p-avatar>\n </div>\n <div>\n <div class=\"text-blue-800 font-bold\">\n {{ item.value }}\n </div>\n <div>\n {{ item.value1 | date: dateFormat + ' | HH:mm' }}\n </div>\n </div>\n </div>\n </div>\n </p-popover>\n </ng-container>\n\n <!-- LIST -->\n <ng-container *ngSwitchCase=\"StatusColType.LIST\">\n <div class=\"attribute flex justify-content-center\">\n <div>\n <label>{{ attr.label | translate }}</label>\n <ul class=\"list\" *ngIf=\"attr?.value && attr?.value?.length > 0; else empty\">\n <li\n [ngClass]=\"item?.disabled ? 'disableLinks' : ''\"\n class=\"white-space-nowrap mb-1\"\n *ngFor=\"let item of attr.value\"\n (click)=\"\n !item?.disabled ? onListItemClick.emit(item) : ''\n \"\n >\n {{ item.name | textLength: 20 }}\n <i class=\"pi pi-link\" class=\"mt-1\"></i>\n </li>\n </ul>\n </div>\n </div>\n </ng-container>\n\n </ng-container>\n </div>\n </div>\n </div>\n </div>\n\n <!-- Collapse/Expand button -->\n <div class=\"flex justify-content-center mt-2\" *ngIf=\"enableClosing\">\n <button (click)=\"isCollapsed = !isCollapsed\" class=\"p-button p-button-text\">\n <i class=\"pi\" [ngClass]=\"isCollapsed ? 'pi-angle-down' : 'pi-angle-up'\"></i>\n </button>\n </div>\n</div>\n\n<!-- Template used when a value is missing -->\n<ng-template #empty>\n <span>--</span>\n</ng-template>","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { TableComponent } from '../../data-table/table/table.component';\nimport { DrawerModule } from 'primeng/drawer';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ButtonModule } from 'primeng/button';\n\n@Component({\n selector: 'phoenix-quick-pick-sidepanel',\n imports: [\n CommonModule,\n DrawerModule,\n TableComponent,\n TranslateModule,\n ButtonModule\n ],\n templateUrl: './quick-pick-sidepanel.component.html',\n styleUrl: './quick-pick-sidepanel.component.css'\n})\nexport class QuickPickSidePanelComponent {\n @Input() title: string = 'Default Title'; // Panel title\n @Input() data: any[] = []; // Data for the table\n @Input() columns: any[] = []; // Table columns\n @Input() loading: boolean = false; // Indicates if the table is loading\n @Input() tableConfiguration: any = {}; // Table configuration\n @Input() panelState: boolean = false; // Indicates if the panel is open\n @Input() modal: boolean = false; // Modal behavior\n @Input() widthClass: string = 'w-7'; // Panel width\n @Input() isFullScreen: boolean = false; // Indicates if the panel is in fullscreen mode\n \n @Output() onRowClick = new EventEmitter<any>(); // Emits when a row in the table is clicked\n @Output() lazyLoadData = new EventEmitter<any>(); // Emits when data needs to be loaded lazily\n @Output() onClose = new EventEmitter<void>(); // Emits when the panel is closed\n\n @Output() handlePanelFullScreen = new EventEmitter(); // Emits when toggling fullscreen mode\n @Output() onCloseEvent = new EventEmitter<void>(); // Emits when the panel close event is triggered\n}\n","\n<p-drawer\n [styleClass]=\"widthClass\"\n [modal]=\"modal\"\n [(visible)]=\"panelState\"\n position=\"right\"\n [closable]=\"false\"\n>\n <ng-template pTemplate=\"header\">\n <!-- <phoenix-sidepanel-header\n [expand]=\"false\"\n [isFullScreen]=\"false\"\n [panelTitle]=\"title | translate\"\n ></phoenix-sidepanel-header> -->\n <div class=\"flex align-items-center justify-content-between\" style=\"width: 100%\">\n <p-button type=\"button\" (click)=\"handlePanelFullScreen.emit()\" [icon]=\"isFullScreen ? 'pi pi-arrow-down-right' : 'pi pi-arrow-up-left'\" rounded=\"true\" outlined=\"true\" styleClass=\"h-8 w-8\"></p-button>\n \n <span class=\"font-bold text-xl flex-grow-1\">\n {{ title }}\n </span>\n \n <button (click)=\"onCloseEvent.emit()\" pButton pRipple type=\"button\" icon=\"pi pi-times\"\n class=\"p-button-rounded p-button-text mr-2\"></button>\n </div>\n </ng-template>\n\n <ng-template pTemplate=\"content\">\n <div>\n <phoenix-table\n [data]=\"data\"\n [columns]=\"columns\"\n [tableConfiguration]=\"tableConfiguration\"\n ></phoenix-table>\n </div>\n </ng-template>\n</p-drawer>","export enum SimpleButtonType {\n REGULAR = 'regular',\n SPLIT = 'split'\n}\n\nexport type Severity =\n | 'success'\n | 'info'\n | 'warn'\n | 'danger'\n | 'help'\n | 'primary'\n | 'secondary'\n | 'contrast'\n | null\n | undefined;\n\nexport interface ActionButton {\n id?: number | string;\n label: string;\n icon?: string;\n disabled?: boolean;\n type?: SimpleButtonType;\n severity?: Severity;\n tooltip?: string;\n action?: () => void;\n splitItems?: { label: string; icon?: string; command: () => void }[];\n}","/*\n * Public API Surface of phoenix\n */\nexport * from './lib/components/sidebar/sidebar.component';\nexport * from './lib/components/topbar/topbar.component';\nexport * from './lib/components/search-bar/search-bar.component';\nexport * from './lib/components/sidebar-item/sidebar-item.component';\nexport * from './lib/components/user/user.component';\nexport * from './lib/components/status-header/status-header.component';\nexport * from './lib/components/shell/shell.component';\nexport * from './lib/components/data-table/phoenix-data-table/phoenix-data-table.component';\nexport * from './lib/components/data-table/table/table.component';\nexport * from './lib/components/meta-form/meta-form.component';\nexport * from './lib/components/meta-form/meta-form-buttons/meta-form-buttons.component';\nexport * from './lib/components/meta-form/meta-form-templates/groups-form/groups-form.component';\nexport * from './lib/components/meta-form/services/meta-form.service';\n//Status bar\nexport * from './lib/components/quick-pick/quick-pick/quick-pick.component';\nexport * from './lib/components/status-bar/status-bar.component';\nexport * from './lib/components/quick-pick/quick-pick-sidepanel/quick-pick-sidepanel.component';\nexport * from './lib/components/status-bar/models/status-attribute.model';\nexport * from './lib/components/status-bar/enums/status-col-type.enum';\nexport * from './lib/components/status-bar/models/status-bar-configuration.model';\n//model topbar\nexport * from './lib/models/shell-config.model';\nexport * from './lib/models/status.model';\n//data-table utils\nexport * from './lib/components/data-table/utils/dataTable.enum';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i4","i5","i1","i3","i6","i7","i8","i10","i15","i9","i2.MetaFormService","i1.MetaFormService"],"mappings":"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"}
|