{"version":3,"file":"onecx-portal-integration-angular.mjs","sources":["../../../../libs/portal-integration-angular/src/lib/core/directives/autofocus.directive.ts","../../../../libs/portal-integration-angular/src/lib/core/directives/basic.directive.ts","../../../../libs/portal-integration-angular/src/lib/core/directives/patch-form-group-values.driective.ts","../../../../libs/portal-integration-angular/src/lib/core/directives/set-input-value.directive.ts","../../../../libs/portal-integration-angular/src/lib/core/components/loading-indicator/loading-indicator.component.ts","../../../../libs/portal-integration-angular/src/lib/core/components/loading-indicator/loading-indicator.component.html","../../../../libs/portal-integration-angular/src/lib/core/directives/loading-indicator.directive.ts","../../../../libs/portal-integration-angular/src/lib/core/directives/content.directive.ts","../../../../libs/portal-integration-angular/src/lib/core/directives/content-container.directive.ts","../../../../libs/portal-integration-angular/src/lib/core/components/loading/loading.component.ts","../../../../libs/portal-integration-angular/src/lib/core/components/mfe-debug/mfe-debug.component.ts","../../../../libs/portal-integration-angular/src/lib/core/components/mfe-debug/mfe-debug.component.html","../../../../libs/portal-integration-angular/src/lib/core/components/page-content/page-content.component.ts","../../../../libs/portal-integration-angular/src/lib/core/components/page-content/page-content.component.html","../../../../libs/portal-integration-angular/src/lib/services/portal-ui.service.ts","../../../../libs/portal-integration-angular/src/lib/core/components/paging-info/paging-info.component.ts","../../../../libs/portal-integration-angular/src/lib/core/components/portal-page/portal-page.component.ts","../../../../libs/portal-integration-angular/src/lib/core/components/portal-page/portal-page.component.html","../../../../libs/portal-integration-angular/src/lib/services/support-ticket-api.service.ts","../../../../libs/portal-integration-angular/src/lib/core/components/no-help-item/no-help-item.component.ts","../../../../libs/portal-integration-angular/src/lib/core/components/no-help-item/no-help-item.component.html","../../../../libs/portal-integration-angular/src/lib/services/help-api-service.ts","../../../../libs/portal-integration-angular/src/lib/model/announcement-item.ts","../../../../libs/portal-integration-angular/src/lib/services/announcements-api.service.ts","../../../../libs/portal-integration-angular/src/lib/core/components/announcement-banner/announcement-banner.component.ts","../../../../libs/portal-integration-angular/src/lib/core/components/announcement-banner/announcement-banner.component.html","../../../../libs/portal-integration-angular/src/lib/services/menu-api.service.ts","../../../../libs/portal-integration-angular/src/lib/services/app.menu.service.ts","../../../../libs/portal-integration-angular/src/lib/api/constants.ts","../../../../libs/portal-integration-angular/src/lib/core/components/user-avatar/user-avatar.component.ts","../../../../libs/portal-integration-angular/src/lib/core/components/user-avatar/user-avatar.component.html","../../../../libs/portal-integration-angular/src/lib/core/components/inline-profile/inline-profile.component.ts","../../../../libs/portal-integration-angular/src/lib/core/components/inline-profile/inline-profile.component.html","../../../../libs/portal-integration-angular/src/lib/core/components/error-component/global-error.component.ts","../../../../libs/portal-integration-angular/src/lib/core/components/error-component/global-error.component.html","../../../../libs/portal-integration-angular/src/lib/core/utils/image-logo-url.utils.ts","../../../../libs/portal-integration-angular/src/lib/core/components/portal-header/header.component.ts","../../../../libs/portal-integration-angular/src/lib/core/components/portal-header/header.component.html","../../../../libs/portal-integration-angular/src/lib/core/components/help-item-editor/help-item-editor.component.ts","../../../../libs/portal-integration-angular/src/lib/core/components/help-item-editor/help-item-editor.component.html","../../../../libs/portal-integration-angular/src/lib/core/components/portal-footer/portal-footer.component.ts","../../../../libs/portal-integration-angular/src/lib/core/components/portal-footer/portal-footer.component.html","../../../../libs/portal-integration-angular/src/lib/core/components/portal-menu/submenu.component.ts","../../../../libs/portal-integration-angular/src/lib/core/components/portal-menu/submenu.component.html","../../../../libs/portal-integration-angular/src/lib/core/components/portal-menu/portal-menu.component.ts","../../../../libs/portal-integration-angular/src/lib/core/components/portal-menu/portal-menu.component.html","../../../../libs/portal-integration-angular/src/lib/core/components/portal-menu-horizontal/portal-menu-horizontal.component.ts","../../../../libs/portal-integration-angular/src/lib/core/components/portal-menu-horizontal/portal-menu-horizontal.component.html","../../../../libs/portal-integration-angular/src/lib/core/components/support-ticket/support-ticket.component.ts","../../../../libs/portal-integration-angular/src/lib/core/components/support-ticket/support-ticket.component.html","../../../../libs/portal-integration-angular/src/lib/core/components/portal-viewport/portal-viewport.component.ts","../../../../libs/portal-integration-angular/src/lib/core/components/portal-viewport/portal-viewport.component.html","../../../../libs/portal-integration-angular/src/lib/core/components/search-criteria/search-page.ts","../../../../libs/portal-integration-angular/src/lib/core/components/search-criteria/criteria-template/criteria-template.component.ts","../../../../libs/portal-integration-angular/src/lib/core/components/search-criteria/criteria-template/criteria-template.component.html","../../../../libs/portal-integration-angular/src/lib/core/components/search-criteria/search-criteria.component.ts","../../../../libs/portal-integration-angular/src/lib/core/components/search-criteria/search-criteria.component.html","../../../../libs/portal-integration-angular/src/lib/core/components/delete-dialog/delete-dialog.component.ts","../../../../libs/portal-integration-angular/src/lib/core/components/delete-dialog/delete-dialog.component.html","../../../../libs/portal-integration-angular/src/lib/core/components/data-view-controls/view-template-picker/view-template-picker.component.ts","../../../../libs/portal-integration-angular/src/lib/core/components/data-view-controls/view-template-picker/view-template-picker.component.html","../../../../libs/portal-integration-angular/src/lib/core/components/data-view-controls/column-toggler-component/column-toggler.component.ts","../../../../libs/portal-integration-angular/src/lib/core/components/data-view-controls/column-toggler-component/column-toggler.component.html","../../../../libs/portal-integration-angular/src/lib/core/components/data-view-controls/data-view-controls.component.ts","../../../../libs/portal-integration-angular/src/lib/core/components/data-view-controls/data-view-controls.component.html","../../../../libs/portal-integration-angular/src/lib/core/components/debug/debug.component.ts","../../../../libs/portal-integration-angular/src/lib/core/components/button-dialog/dialog-message-content/dialog-message-content.component.ts","../../../../libs/portal-integration-angular/src/lib/core/components/button-dialog/dialog-message-content/dialog-message-content.component.html","../../../../libs/portal-integration-angular/src/lib/core/components/button-dialog/button-dialog.component.ts","../../../../libs/portal-integration-angular/src/lib/core/components/button-dialog/button-dialog.component.html","../../../../libs/portal-integration-angular/src/lib/core/components/content-container/content-container.component.ts","../../../../libs/portal-integration-angular/src/lib/core/components/content-container/content-container.component.html","../../../../libs/portal-integration-angular/src/lib/core/components/content/content.component.ts","../../../../libs/portal-integration-angular/src/lib/core/components/content/content.component.html","../../../../libs/portal-integration-angular/src/lib/core/components/lifecycle/lifecycle.component.ts","../../../../libs/portal-integration-angular/src/lib/core/components/lifecycle/lifecycle.component.html","../../../../libs/portal-integration-angular/src/lib/core/components/dialog/dialog-content/dialog-content.component.ts","../../../../libs/portal-integration-angular/src/lib/core/components/dialog/dialog-content/dialog-content.component.html","../../../../libs/portal-integration-angular/src/lib/core/components/dialog/dialog-footer/dialog-footer.component.ts","../../../../libs/portal-integration-angular/src/lib/core/components/dialog/dialog-footer/dialog-footer.component.html","../../../../libs/portal-integration-angular/src/lib/core/components/dialog/dialog-inline/dialog-inline.component.ts","../../../../libs/portal-integration-angular/src/lib/core/components/dialog/dialog-inline/dialog-inline.component.html","../../../../libs/portal-integration-angular/src/lib/services/portal-api.service.ts","../../../../libs/portal-integration-angular/src/lib/services/initialize-module-guard.service.ts","../../../../libs/portal-integration-angular/src/lib/services/userprofile-api.service.ts","../../../../libs/portal-integration-angular/src/lib/services/portal-dialog.service.ts","../../../../libs/portal-integration-angular/src/lib/services/export-data.service.ts","../../../../libs/portal-integration-angular/src/lib/core/pipes/relative-date.pipe.ts","../../../../libs/portal-integration-angular/src/lib/mock-auth/mock-auth.service.ts","../../../../libs/portal-integration-angular/src/lib/mock-auth/mock-auth.module.ts","../../../../libs/portal-integration-angular/src/lib/model/microfrontend-dto.ts","../../../../libs/portal-integration-angular/src/lib/model/person.model.ts","../../../../libs/portal-integration-angular/src/lib/core/debug.module.ts","../../../../libs/portal-integration-angular/src/lib/core/initializer/standalone.initializer.ts","../../../../libs/portal-integration-angular/src/lib/core/primeng.module.ts","../../../../libs/portal-integration-angular/src/lib/core/portal-core.module.ts","../../../../libs/portal-integration-angular/src/lib/core/utils/add-initialize-module-guard.utils.ts","../../../../libs/portal-integration-angular/src/lib/core/utils/translate-service-initializer.utils.ts","../../../../libs/portal-integration-angular/src/index.ts","../../../../libs/portal-integration-angular/src/onecx-portal-integration-angular.ts"],"sourcesContent":["import { Directive, ElementRef, OnInit } from '@angular/core'\n\n@Directive({ selector: '[ocxAutofocus]' })\nexport class AutofocusDirective implements OnInit {\n  constructor(private el: ElementRef) {}\n\n  ngOnInit() {\n    window.setTimeout(() => this.el.nativeElement.focus())\n  }\n}\n","import { Directive, DoCheck, Optional, TemplateRef, ViewContainerRef } from '@angular/core'\nimport { SearchHeaderComponent } from '@onecx/angular-accelerator'\n\n@Directive({ selector: '[ocxBasic]' })\nexport class BasicDirective implements DoCheck {\n  constructor(\n    private viewContainer: ViewContainerRef,\n    @Optional() private templateRef?: TemplateRef<any>,\n    @Optional() private searchHeader?: SearchHeaderComponent\n  ) {\n    if (!searchHeader) {\n      throw 'Basic directive can only be used inside search header component'\n    }\n  }\n  ngDoCheck(): void {\n    if (this.searchHeader?.viewMode === 'basic') {\n      if (this.templateRef && !this.viewContainer.length) {\n        this.viewContainer.createEmbeddedView(this.templateRef)\n      }\n    } else {\n      this.viewContainer.clear()\n    }\n  }\n}\n","import { Directive, Input } from '@angular/core'\n\n@Directive({\n  selector: '[ocxPatchFormGroupValues]',\n})\nexport class PatchFormGroupValuesDirective {\n  @Input() formGroup: any\n  @Input() emitEvents = false\n  @Input()\n  set ocxPatchFormGroupValues(val: any) {\n    if (!val) return\n    this.formGroup.patchValue(val, { emitEvent: this.emitEvents })\n  }\n}\n","import { Directive, Input, Optional } from '@angular/core'\nimport { NgControl } from '@angular/forms'\n\n@Directive({\n  selector: '[ocxSetInputValue]',\n})\nexport class SetInputValueDirective {\n  @Input()\n  set ocxSetInputValue(val: any) {\n    if (this.ngControl.control) {\n      this.ngControl.control.setValue(val, { emitEvent: false })\n    }\n  }\n\n  constructor(@Optional() private ngControl: NgControl) {}\n}\n","import { Component } from '@angular/core'\n\n@Component({\n  selector: 'ocx-loading-indicator',\n  templateUrl: './loading-indicator.component.html',\n  styleUrls: ['./loading-indicator.component.scss'],\n})\n\nexport class LoadingIndicatorComponent {}\n","<div class=\"full-overlay\">\n  <div class=\"overlay\">\n    <span class=\"loader\"></span>\n  </div>\n</div>","import {\n  ComponentRef,\n  Directive,\n  ElementRef,\n  Input,\n  OnChanges,\n  Renderer2,\n  SimpleChanges,\n  ViewContainerRef,\n} from '@angular/core'\nimport { LoadingIndicatorComponent } from '../components/loading-indicator/loading-indicator.component'\n\n@Directive({\n  selector: '[ocxLoadingIndicator]',\n})\nexport class LoadingIndicatorDirective implements OnChanges {\n  @Input() ocxLoadingIndicator = false\n  @Input() overlayFullPage = false\n  @Input() isLoaderSmall? = false\n\n  private componentRef: ComponentRef<LoadingIndicatorComponent> | undefined\n\n  constructor(private viewContainerRef: ViewContainerRef, private el: ElementRef, private renderer: Renderer2) {}\n\n  ngOnChanges(changes: SimpleChanges) {\n    if (changes['ocxLoadingIndicator'] || changes['overlayFullPage']) {\n      this.toggleLoadingIndicator()\n    }\n  }\n\n  private elementLoader() {\n    this.renderer.addClass(this.el.nativeElement, 'element-overlay')\n    const loaderElement = document.createElement('div')\n    loaderElement.className = 'loader'\n    if (this.isLoaderSmall) {\n      loaderElement.className = 'loader loader-small'\n    }\n    this.renderer.appendChild(this.el.nativeElement, loaderElement)\n  }\n\n  private toggleLoadingIndicator() {\n    if (this.ocxLoadingIndicator) {\n      if (this.overlayFullPage == false) {\n        this.elementLoader()\n      } else {\n        this.componentRef = this.viewContainerRef.createComponent(LoadingIndicatorComponent)\n      }\n    } else {\n      this.viewContainerRef.clear()\n      if (this.componentRef) {\n        this.componentRef.destroy()\n      }\n    }\n  }\n}\n","import { Directive, ElementRef, Input, OnChanges, OnInit } from '@angular/core'\n\n@Directive({ selector: '[ocxContent]' })\nexport class OcxContentDirective implements OnInit, OnChanges {\n  /**\n   * Used for passing a title text which should be rendered in the upper left corner of the content area.\n   * @example [ocxContent]=\"My Cool Title\"\n   */\n  @Input() ocxContent = ''\n\n  private baseId = 'ocx_content_title_element'\n  private titleElementId: string | undefined\n\n  constructor(private el: ElementRef) {}\n\n  ngOnInit() {\n    this.titleElementId = this.getUniqueTitleID(this.baseId)\n    this.init()\n  }\n\n  ngOnChanges() {\n    this.init()\n  }\n\n  private init() {\n    this.addContentStyles()\n    if (this.ocxContent) {\n      this.prependTitle()\n    } else {\n      this.removeTitle()\n    }\n  }\n\n  private addContentStyles() {\n    const addClasses = (classes: string[]) => this.el.nativeElement.classList.add(...classes)\n    addClasses(['card'])\n  }\n\n  private prependTitle() {\n    if (this.titleElementId) {\n      const titleElement = this.el.nativeElement.querySelector(`#${this.titleElementId}`)\n      if (titleElement) {\n        titleElement.textContent = this.ocxContent\n      } else {\n        const title = document.createElement('p')\n        title.classList.add('font-medium')\n        title.classList.add('text-lg')\n        title.id = this.titleElementId\n        title.textContent = this.ocxContent\n        this.el.nativeElement.prepend(title)\n      }\n    }\n  }\n\n  private getUniqueTitleID(baseId: string) {\n    let counter = 0\n    let generatedID = baseId\n\n    while (document.getElementById(generatedID)) {\n      generatedID = baseId + counter\n      counter++\n    }\n\n    return generatedID\n  }\n\n  private removeTitle() {\n    if (this.titleElementId) {\n      const titleElement = this.el.nativeElement.querySelector(`#${this.titleElementId}`)\n      if (titleElement) {\n        titleElement.remove()\n      }\n    }\n  }\n}\n","import { Directive, ElementRef, Input, OnChanges, OnInit } from '@angular/core'\n\n@Directive({ selector: '[ocxContentContainer]' })\nexport class OcxContentContainerDirective implements OnInit, OnChanges {\n  /**\n   * Used for passing the direction, in which the content inside the container should be rendered.\n   * Default: horizontal\n   * @example [ocxContentContainer]=\"horizontal\"\n   * @example [ocxContentContainer]=\"vertical\"\n   */\n  @Input() layout: 'horizontal' | 'vertical' = 'horizontal'\n\n  /**\n   * Used for passing in the breakpoint below which a horizontal layout should switch to a vertical layout.\n   * Only necessary if horizontal layout is used\n   * Default: md\n   */\n  @Input() breakpoint: 'sm' | 'md' | 'lg' | 'xl' = 'md'\n\n  constructor(private el: ElementRef) {}\n\n  ngOnInit() {\n    this.addContainerStyles()\n  }\n\n  ngOnChanges() {\n    this.addContainerStyles()\n  }\n\n  private addContainerStyles() {\n    const addClasses = (classes: string[]) => this.el.nativeElement.classList.add(...classes)\n    const removeClasses = (classes: string[]) => this.el.nativeElement.classList.remove(...classes)\n    // We need to ensure that all breakpoint dependent flex-row classes are removed from the element\n    // This way we can avoid multiple contradictory layout classes and unexpected effects\n    const removeResponsiveLayoutClasses = () => {\n      const classesToRemove: string[] = []\n      const regexPattern = /\\w+:flex-row$/      \n      this.el.nativeElement.classList.forEach((className: string) => {        \n        if (regexPattern.test(className)) {\n          classesToRemove.push(className)\n        }\n      })\n      removeClasses(classesToRemove)\n    }\n    const sharedClasses = ['flex', 'gap-3', 'flex-column']\n    removeResponsiveLayoutClasses()\n    addClasses(sharedClasses)\n    if (this.layout != 'vertical') {\n      const responsiveLayoutClass = `${this.breakpoint || 'md'}:flex-row`\n      addClasses([responsiveLayoutClass])\n    }\n  }\n}\n","import { Component } from '@angular/core'\n\n@Component({\n  selector: 'ocx-loading',\n  template: `\n    <div class=\"loading-panel p-2\">\n      <span class=\"loader loader--style8\" title=\"7\">\n        <svg\n          version=\"1.1\"\n          id=\"Layer_1\"\n          xmlns=\"http://www.w3.org/2000/svg\"\n          xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n          x=\"0px\"\n          y=\"0px\"\n          width=\"24px\"\n          height=\"30px\"\n          viewBox=\"0 0 24 30\"\n          style=\"enable-background:new 0 0 50 50;\"\n          xml:space=\"preserve\"\n        >\n          <rect x=\"0\" y=\"5.25098\" width=\"4\" height=\"19.498\" fill=\"#333\" opacity=\"0.2\">\n            <animate\n              attributeName=\"opacity\"\n              attributeType=\"XML\"\n              values=\"0.2; 1; .2\"\n              begin=\"0s\"\n              dur=\"0.6s\"\n              repeatCount=\"indefinite\"\n            ></animate>\n            <animate\n              attributeName=\"height\"\n              attributeType=\"XML\"\n              values=\"10; 20; 10\"\n              begin=\"0s\"\n              dur=\"0.6s\"\n              repeatCount=\"indefinite\"\n            ></animate>\n            <animate\n              attributeName=\"y\"\n              attributeType=\"XML\"\n              values=\"10; 5; 10\"\n              begin=\"0s\"\n              dur=\"0.6s\"\n              repeatCount=\"indefinite\"\n            ></animate>\n          </rect>\n          <rect x=\"8\" y=\"7.75098\" width=\"4\" height=\"14.498\" fill=\"#333\" opacity=\"0.2\">\n            <animate\n              attributeName=\"opacity\"\n              attributeType=\"XML\"\n              values=\"0.2; 1; .2\"\n              begin=\"0.15s\"\n              dur=\"0.6s\"\n              repeatCount=\"indefinite\"\n            ></animate>\n            <animate\n              attributeName=\"height\"\n              attributeType=\"XML\"\n              values=\"10; 20; 10\"\n              begin=\"0.15s\"\n              dur=\"0.6s\"\n              repeatCount=\"indefinite\"\n            ></animate>\n            <animate\n              attributeName=\"y\"\n              attributeType=\"XML\"\n              values=\"10; 5; 10\"\n              begin=\"0.15s\"\n              dur=\"0.6s\"\n              repeatCount=\"indefinite\"\n            ></animate>\n          </rect>\n          <rect x=\"16\" y=\"9.74902\" width=\"4\" height=\"10.502\" fill=\"#333\" opacity=\"0.2\">\n            <animate\n              attributeName=\"opacity\"\n              attributeType=\"XML\"\n              values=\"0.2; 1; .2\"\n              begin=\"0.3s\"\n              dur=\"0.6s\"\n              repeatCount=\"indefinite\"\n            ></animate>\n            <animate\n              attributeName=\"height\"\n              attributeType=\"XML\"\n              values=\"10; 20; 10\"\n              begin=\"0.3s\"\n              dur=\"0.6s\"\n              repeatCount=\"indefinite\"\n            ></animate>\n            <animate\n              attributeName=\"y\"\n              attributeType=\"XML\"\n              values=\"10; 5; 10\"\n              begin=\"0.3s\"\n              dur=\"0.6s\"\n              repeatCount=\"indefinite\"\n            ></animate>\n          </rect>\n        </svg>\n      </span>\n      <p>Loading...</p>\n    </div>\n  `,\n  styles: [],\n})\nexport class LoadingComponent {}\n","import { Component } from '@angular/core'\nimport { map, Observable } from 'rxjs'\nimport { MfeInfo } from '../../../model/mfe-info.model'\nimport { AppStateService } from '@onecx/angular-integration-interface'\n\n@Component({\n  selector: 'ocx-mfe-debug',\n  templateUrl: './mfe-debug.component.html',\n})\nexport class MfeDebugComponent {\n  isMFE$: Observable<boolean>\n  mfeInfo$: Observable<MfeInfo>\n\n  constructor(private appStateService: AppStateService) {\n    this.isMFE$ = this.appStateService.currentMfe$.pipe(map((mfe) => !!mfe))\n    this.mfeInfo$ = this.appStateService.currentMfe$.asObservable()\n  }\n}\n","<div>\n  <div class=\"font-medium text-3xl mb-3\">Microfrontend info</div>\n\n  <ul class=\"list-none p-0 m-0\">\n    <li class=\"flex align-items-center py-3 px-2 border-top-1 surface-border flex-wrap\">\n      <div class=\"text-500 w-6 md:w-2 font-medium\">Running as Microfrontend?</div>\n      <div class=\"text-900 w-full md:w-8 md:flex-order-0 flex-order-1\">{{isMFE$ | async}}</div>\n    </li>\n\n    <ng-container *ngIf=\"mfeInfo$\">\n      <li class=\"flex align-items-center py-3 px-2 border-top-1 surface-border flex-wrap\">\n        <div class=\"text-500 w-6 md:w-2 font-medium\">Shell Name</div>\n        <div class=\"text-900 w-full md:w-8 md:flex-order-0 flex-order-1\">{{(mfeInfo$ | async)?.shellName}}</div>\n      </li>\n      <li class=\"flex align-items-center py-3 px-2 border-top-1 surface-border flex-wrap\">\n        <div class=\"text-500 w-6 md:w-2 font-medium\">Base href</div>\n        <div class=\"text-900 w-full md:w-8 md:flex-order-0 flex-order-1\">{{(mfeInfo$ | async)?.baseHref}}</div>\n      </li>\n      <li class=\"flex align-items-center py-3 px-2 border-top-1 surface-border flex-wrap\">\n        <div class=\"text-500 w-6 md:w-2 font-medium\">Base url</div>\n        <div class=\"text-900 w-full md:w-8 md:flex-order-0 flex-order-1\">{{(mfeInfo$ | async)?.remoteBaseUrl}}</div>\n      </li>\n      <li class=\"flex align-items-center py-3 px-2 border-top-1 surface-border flex-wrap\">\n        <div class=\"text-500 w-6 md:w-2 font-medium\">Mount path</div>\n        <div class=\"text-900 w-full md:w-8 md:flex-order-0 flex-order-1\">{{(mfeInfo$ | async)?.mountPath}}</div>\n      </li>\n      <li class=\"flex align-items-center py-3 px-2 border-top-1 surface-border flex-wrap\">\n        <div class=\"text-500 w-6 md:w-2 font-medium\">Remote info</div>\n        <div class=\"text-900 w-full md:w-8 md:flex-order-0 flex-order-1\">{{(mfeInfo$ | async)?.remote}}</div>\n      </li>\n      <li class=\"flex align-items-center py-3 px-2 border-top-1 surface-border flex-wrap\">\n        <div class=\"text-500 w-6 md:w-2 font-medium\">Remote Version</div>\n        <div class=\"text-900 w-full md:w-8 md:flex-order-0 flex-order-1\">{{(mfeInfo$ | async)?.version}}</div>\n      </li>\n    </ng-container>\n  </ul>\n</div>\n","import { Component, Input } from '@angular/core'\n/**\n * @deprecated This component will be removed in favor of ocx-content and ocx-content-container in a future release.\n */\n@Component({\n  selector: 'ocx-page-content',\n  templateUrl: './page-content.component.html',\n  styleUrls: ['./page-content.component.scss'],\n})\nexport class PageContentComponent {\n  @Input() public styleClass: string | undefined\n}\n","<div [class]=\"'content-wrap ' + styleClass\">\n  <ng-content></ng-content>\n</div>\n","import { Injectable } from '@angular/core'\nimport { BehaviorSubject, Subject } from 'rxjs'\nimport { Translations } from '../api/translations'\n\n@Injectable({ providedIn: 'root' })\nexport class PortalUIService {\n  menuHoverActive = false\n  isSlim = false\n  isHorizontal = false\n  isStatic = false\n  menuActive = false\n  mobileMenuActive = false\n  isDesktop = false\n  isMobile = false\n  fixedHeader = true\n  private translation: Translations = {}\n\n  activeMenuItemId: Subject<string> = new BehaviorSubject<string>('')\n\n  private translationSource = new Subject<any>()\n\n  translationObserver = this.translationSource.asObservable()\n\n  getTranslation(key: keyof Translations) {\n    return this.translation[key]\n  }\n\n  setTranslation(value: Translations) {\n    this.translation = { ...this.translation, ...value }\n    this.translationSource.next(this.translation)\n  }\n}\n","import { Component, Input } from '@angular/core'\nimport { PortalUIService } from '../../../services/portal-ui.service'\n\n@Component({\n  selector: 'ocx-paging-info',\n  template: `\n    <span *ngIf=\"resultsCount > 0 && state.totalRecords > 0; else noResults\">\n      {{ textShowing }} {{ state.first + 1 }} -\n      {{ state.rows * (state.page + 1) < state.totalRecords ? state.rows * (state.page + 1) : state.totalRecords }}\n      {{ textOf }} {{ state.totalRecords }}\n    </span>\n    <ng-template #noResults>\n      {{ textNoResults }}\n    </ng-template>\n  `,\n})\nexport class PagingInfoComponent {\n  @Input() resultsCount = 0\n  @Input() state!: CustomTableState\n\n  textShowing?: string\n  textRows?: string\n  textTotal?: string\n  textOf?: string\n  textNoResults?: string\n\n  constructor(private api: PortalUIService) {\n    this.textShowing = this.api.getTranslation('pagingShowing')\n    this.textRows = this.api.getTranslation('pagingRows')\n    this.textTotal = this.api.getTranslation('pagingTotal')\n    this.textOf = this.api.getTranslation('pagingOf')\n    this.textNoResults = this.api.getTranslation('pagingNoResults')\n  }\n}\n\ninterface CustomTableState {\n  page: number\n  pageCount: number\n  rows: number\n  first: number\n  totalRecords: number\n}\n","import { Component, Inject, Input, OnInit, Optional } from '@angular/core'\nimport { HAS_PERMISSION_CHECKER, HasPermissionChecker } from '@onecx/angular-utils'\nimport { AppStateService } from '@onecx/angular-integration-interface'\nimport { UserService } from '@onecx/angular-integration-interface'\n\n/**\n * @deprecated\n * Please import from `@onecx/angular-utils` instead.\n */\n@Component({\n  selector: 'ocx-portal-page',\n  templateUrl: './portal-page.component.html',\n  styleUrls: ['./portal-page.component.scss'],\n})\nexport class PortalPageComponent implements OnInit {\n  @Input() permission = ''\n  @Input() helpArticleId = ''\n  @Input() pageName = ''\n  @Input() applicationId = ''\n\n  collapsed = false\n\n  constructor(\n    private appState: AppStateService,\n    private userService: UserService,\n    @Inject(HAS_PERMISSION_CHECKER)\n    @Optional()\n    private hasPermissionChecker?: HasPermissionChecker,\n  ) {}\n\n  hasAccess() {\n    if(this.hasPermissionChecker) {\n      return this.permission ? this.hasPermissionChecker.hasPermission(this.permission) : true\n    }\n    return this.permission ? this.userService.hasPermission(this.permission) : true\n  }\n\n  ngOnInit(): void {\n    if (!this.helpArticleId) {\n      console.warn(\n        `ocx-portal-page on url ${location.pathname} does not have 'helpArticleId' set. Set to some unique string in order to support help management feature.`\n      )\n    }\n    this.appState.currentPage$.publish({\n      path: document.location.pathname,\n      helpArticleId: this.helpArticleId,\n      permission: this.permission,\n      pageName: this.pageName,\n      applicationId: this.applicationId,\n    })\n  }\n}\n","<div class=\"content-wrapper\">\n  <ng-container *ngIf=\"hasAccess(); else noAccess\">\n    <ng-content></ng-content>\n  </ng-container>\n</div>\n\n<ng-template #noAccess>\n  <h3>Unauthorized</h3>\n  <p>\n    Sorry, you do not have the permission required to view this page.\n    <span>Missing permission key: '{{ permission }}'</span>\n  </p>\n</ng-template>\n","import { Injectable } from '@angular/core'\nimport { HttpClient } from '@angular/common/http'\nimport { SupportTicket } from '../model/support-ticket'\nimport { CreateIssueRequest } from '../model/create-issue-request'\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class SupportTicketApiService {\n  private baseUrl = './portal-api/v1/supportTicket/send'\n\n  constructor(private http: HttpClient) {}\n\n  createSupportTicket(ticket: SupportTicket, appId: string | undefined) {\n    const request: CreateIssueRequest = {\n      processId: ticket.title,\n      processStep: ticket.description,\n      source: appId,\n      sourceDeepLink: window.location.href,\n    }\n\n    return this.http.post(this.baseUrl, request)\n  }\n}\n","import { Component } from '@angular/core'\nimport { DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog'\n\n@Component({\n  selector: 'ocx-no-help-item',\n  templateUrl: './no-help-item.component.html',\n  styleUrls: ['./no-help-item.component.scss'],\n})\nexport class NoHelpItemComponent {\n  public helpArticleId: string\n\n  constructor(public config: DynamicDialogConfig, public ref: DynamicDialogRef) {\n    this.helpArticleId = config.data.helpArticleId\n  }\n\n  close() {\n    this.ref.close()\n  }\n}\n","<div>\n  <div class=\"dialog-content\">\n    <span>No help items were found for this page. Please ask your system administrator to add it.</span>\n    <div *ngIf=\"helpArticleId\">\n      <span> The help Item ID for this page is:</span>\n      <span class=\"code p-my-2\">{{ helpArticleId }}</span>\n    </div>\n  </div>\n</div>\n","import { HttpClient, HttpHeaders, HttpResponse } from '@angular/common/http'\nimport { Injectable } from '@angular/core'\nimport { map, Observable } from 'rxjs'\nimport { HelpData } from '../model/help-data'\n\nconst baseUrl = './ahm-api/internal/applications'\n\n@Injectable({ providedIn: 'root' })\nexport class HelpPageAPIService {\n  httpOptions = {\n    headers: new HttpHeaders({ 'Content-Type': 'application/json' }),\n  }\n  constructor(private httpClient: HttpClient) {}\n\n  /* eslint-disable @typescript-eslint/no-unused-vars */\n  getHelpDataItem(appId: string, helpItemId: string, type = 'PAGE'): Observable<HelpData> {\n    return this.httpClient\n      .get<HelpData[]>(`${baseUrl}/${appId}/helpItems`, {\n        params: {\n          helpItemId,\n        },\n      })\n      .pipe(map((helpItems) => helpItems[0]))\n  }\n\n  saveHelpPage(appId: string, helpItem: HelpData): Observable<HttpResponse<any>> {\n    if (helpItem.id) {\n      return this.httpClient.patch(`${baseUrl}/${appId}/helpItems/${helpItem.id}`, helpItem, {\n        observe: 'response',\n      })\n    } else {\n      return this.httpClient.post(`${baseUrl}/${appId}/helpItems`, helpItem, {\n        observe: 'response',\n      })\n    }\n  }\n\n  saveHelpPageLegacy(helpItem: HelpData): Observable<HttpResponse<any>> {\n    return this.httpClient.post(`${baseUrl}/helpdata`, helpItem, {\n      headers: {\n        'Content-Type': 'application/v1+json',\n        Accept: 'application/v1+json',\n      },\n      observe: 'response',\n    })\n  }\n}\n","export interface AnnouncementItem {\n  creationDate?: string\n  creationUser?: string\n  modificationDate?: string\n  modificationUser?: string\n  version?: number\n  id: string\n  appId?: string\n  content?: string\n  endDate?: string\n  priority?: AnnouncementPriorityType\n  startDate?: string\n  status?: AnnouncementStatus\n  title?: string\n  type?: AnnouncementType\n}\nexport enum AnnouncementPriorityType {\n  Important = 'IMPORTANT',\n  Low = 'LOW',\n  Normal = 'NORMAL',\n}\n\nenum AnnouncementStatus {\n  Active = 'ACTIVE',\n  Inactive = 'INACTIVE',\n}\nexport enum AnnouncementType {\n  Event = 'EVENT',\n  Info = 'INFO',\n  SystemMaintenance = 'SYSTEM_MAINTENANCE',\n}\n","import { HttpClient, HttpHeaders } from '@angular/common/http'\nimport { Injectable } from '@angular/core'\nimport { Observable } from 'rxjs'\nimport { AnnouncementItem } from '../model/announcement-item'\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class AnnouncementsApiService {\n  httpOptions = {\n    headers: new HttpHeaders({ 'Content-Type': 'application/json' }),\n  }\n\n  constructor(private http: HttpClient) {}\n\n  public getAnnouncements(\n    appId: string,\n    startDateTo: string,\n    endDateFrom: string\n  ): Observable<Array<AnnouncementItem>> {\n    return this.http.get<Array<AnnouncementItem>>(`./ahm-api/internal/announcements`, {\n      params: { appId: appId, status: 'ACTIVE', startDateTo: startDateTo, endDateFrom: endDateFrom },\n      headers: { Accept: 'application/json' },\n    })\n  }\n\n  public getAnnouncementById(id: string): Observable<AnnouncementItem> {\n    return this.http.get<AnnouncementItem>(`./ahm-api/internal/announcements/${id}`)\n  }\n}\n","import { Component } from '@angular/core'\nimport { catchError, map, Observable, of, switchMap, tap, throwError, EMPTY, mergeMap } from 'rxjs'\nimport { AppStateService, ConfigurationService } from '@onecx/angular-integration-interface'\nimport { AnnouncementItem, AnnouncementPriorityType } from '../../../model/announcement-item'\nimport { AnnouncementsApiService } from '../../../services/announcements-api.service'\n\n@Component({\n  selector: 'ocx-announcement-banner',\n  templateUrl: './announcement-banner.component.html',\n  styleUrls: ['./announcement-banner.component.css'],\n})\nexport class AnnouncementBannerComponent {\n  private currentDate = new Date().toISOString()\n  shouldShow = false\n  prioItem$: Observable<AnnouncementItem>\n  constructor(\n    private api: AnnouncementsApiService,\n    private configService: ConfigurationService,\n    private appStateService: AppStateService\n  ) {\n    this.prioItem$ = this.appStateService.currentPortal$.pipe(\n      mergeMap((portal) =>\n        this.api.getAnnouncements(portal.id || '', this.currentDate, this.currentDate).pipe(\n          map((results) => results.filter((a) => a.priority === AnnouncementPriorityType.Important)),\n          switchMap((data) => {\n            if (data[0] == undefined) {\n              return EMPTY\n            }\n            return this.api.getAnnouncementById(data[0].id)\n          }),\n          tap((firstHighPrio) => {\n            this.shouldShow = firstHighPrio.id !== localStorage.getItem('onecx_messages_read_lastid')\n          }),\n          catchError((error) => {\n            return this.appStateService.currentMfe$.pipe(\n              mergeMap((mfe) => (mfe ? throwError(() => error) : of({ id: 'ignore-the-error-in-standalone-mode' })))\n            )\n          })\n        )\n      )\n    )\n  }\n\n  hide(id: string) {\n    localStorage.setItem('onecx_messages_read_lastid', id)\n    this.shouldShow = false\n  }\n}\n","<ng-container *ngIf=\"prioItem$ | async as item\">\n  <div class=\"p-2 bg-orange-200 text-orange-800 border-round mb-2 flex align-items-center\" *ngIf=\"shouldShow\">\n    <div class=\"px-4\">\n      <i class=\"pi pi-info-circle text-xl\"></i>\n    </div>\n    <div class=\"flex-1\">\n      <div class=\"font-bold pb-1\">{{item.title}}</div>\n      <div>{{item.content}}</div>\n    </div>\n    <div>\n      <button\n        class=\"p-button-rounded p-button-text text-orange-800\"\n        pButton\n        (click)=\"hide(item.id!)\"\n        icon=\"pi pi-times\"\n      ></button>\n    </div>\n  </div>\n</ng-container>\n","import { HttpClient, HttpHeaders } from '@angular/common/http'\nimport { Injectable } from '@angular/core'\n// import { withCache } from '@ngneat/cashew'\nimport { Observable, of } from 'rxjs'\nimport { PortalMenuItem } from '../model/menu-item.model'\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class MenuApiService {\n  private menuUrl = './portal-api/v1/portals' // URL to web api\n\n  httpOptions = {\n    headers: new HttpHeaders({ 'Content-Type': 'application/json' }),\n  }\n\n  constructor(private http: HttpClient) {}\n\n  getMenuItems(portalId: string): Observable<PortalMenuItem[]> {\n    return this.http.get<PortalMenuItem[]>(`${this.menuUrl}/${portalId}/menu`)\n  }\n\n  /**\n   * Handle Http operation that failed.\n   * Let the app continue.\n   * @param operation - name of the operation that failed\n   * @param result - optional value to return as the observable result\n   */\n  private handleError<T>(operation = 'operation', result?: T) {\n    return (error: any): Observable<T> => {\n      // TODO: send the error to remote logging infrastructure\n      console.error(error) // log to console instead\n\n      // TODO: better job of transforming error for user consumption\n      this.log(`${operation} failed: ${error.message}, will return ${JSON.stringify(result)}`)\n\n      // Let the app keep running by returning an empty result.\n      return of(result as T)\n    }\n  }\n\n  /** Log a HeroService message with the MessageService */\n  private log(message: string) {\n    console.log(message)\n  }\n}\n","import { Inject, Injectable, Optional } from '@angular/core'\nimport { Router } from '@angular/router'\nimport { APP_BASE_HREF, PlatformLocation } from '@angular/common'\nimport { MenuItem } from 'primeng/api'\nimport { map, Observable, of, shareReplay, Subject, withLatestFrom } from 'rxjs'\nimport { UserService, ConfigurationService, CONFIG_KEY } from '@onecx/angular-integration-interface'\nimport { PortalMenuItem } from '../model/menu-item.model'\nimport { MenuApiService } from './menu-api.service'\n\n@Injectable({ providedIn: 'root' })\nexport class MenuService {\n  private menuSource = new Subject<string>()\n  private resetSource = new Subject()\n  private menuItems$: Observable<MenuItem[]> | undefined\n\n  menuSource$ = this.menuSource.asObservable()\n  resetSource$ = this.resetSource.asObservable()\n\n  constructor(\n    private api: MenuApiService,\n    private config: ConfigurationService,\n    private router: Router,\n    private platformLoc: PlatformLocation,\n    @Inject(APP_BASE_HREF) @Optional() private baseURL: string,\n    private userService: UserService\n  ) {\n    if (!this.baseURL) {\n      this.baseURL = this.platformLoc.getBaseHrefFromDOM()\n    }\n  }\n\n  public init(items: MenuItem[]) {\n    this.menuItems$ = of(items)\n  }\n\n  onMenuStateChange(key: string) {\n    this.menuSource.next(key)\n  }\n\n  reset() {\n    this.resetSource.next(undefined)\n  }\n\n  getMenuItems(forceReload = false): Observable<MenuItem[]> {\n    if (!this.menuItems$ || forceReload) {\n      const portalId = this.config.getProperty(CONFIG_KEY.TKIT_PORTAL_ID)\n      if (portalId) {\n        this.menuItems$ = this.api.getMenuItems(portalId).pipe(\n          withLatestFrom(this.userService.lang$),\n          map(([data, userLang]) => this.constructMenuItems(data, userLang)),\n          shareReplay()\n        )\n      } else {\n        console.error('No portal defined - set one in your app configuration')\n        return of([])\n      }\n    }\n    return this.menuItems$\n  }\n\n  private constructMenuItems(portalMenuItems: PortalMenuItem[], userLang: string): MenuItem[] {\n    const menuItems = portalMenuItems.filter((item) => {\n      return item\n    })\n    if (menuItems) {\n      return menuItems\n        .sort((a, b) => a.position - b.position)\n        .filter((i) => i)\n        .map((item) => this.mapMenuItem(item, userLang))\n    } else {\n      return []\n    }\n  }\n\n  private toRouteUrl(url: string | undefined) {\n    if (!url) {\n      return url\n    }\n    if (url?.startsWith('/')) {\n      url = url.substring(1)\n    }\n    if (url.endsWith('/')) {\n      url = url.substring(0, url.length - 1)\n    }\n    return url\n  }\n\n  private isLocal(url: string) {\n    if (url && url.startsWith('http')) {\n      return false\n    }\n    const path = url?.trim().split('?')[0]\n    if (\n      this.router.config.some((r) => {\n        return this.toRouteUrl(path) === this.toRouteUrl(this.baseURL + r.path)\n      })\n    ) {\n      return true\n    }\n\n    return false\n  }\n\n  private stripBaseHref(url: string): string {\n    if (this.baseURL && url) {\n      return url.replace(this.baseURL, '')\n    } else {\n      return url\n    }\n  }\n\n  private mapMenuItem(item: PortalMenuItem, userLang: string): MenuItem {\n    const isLocal = this.isLocal(item.url)\n    const label = item.i18n[userLang] || item.name\n    return {\n      id: item.key,\n      items:\n        item.children && item.children.length > 0\n          ? item.children\n              .sort((a, b) => a.position - b.position)\n              .filter((i) => i)\n              .map((i) => this.mapMenuItem(i, userLang))\n          : undefined,\n      label,\n      icon: item.badge || undefined,\n      routerLink: isLocal ? this.stripBaseHref(item.url) : undefined,\n      routerLinkActiveOptions: [{ exact: false }],\n      url: isLocal ? undefined : item.url,\n      badge: isLocal ? 'mf' : 'ext',\n    }\n  }\n}\n","export const API_PREFIX = 'portal-api'\n\nexport const DEFAULT_LANG = 'en'\n","import { Component, Input } from '@angular/core'\nimport { BehaviorSubject, first, map, Observable } from 'rxjs'\n\nimport { API_PREFIX } from '../../../api/constants'\nimport { UserProfile } from '../../../model/user-profile.model'\n\n/**\n * @deprecated Replace with onecx-avatar-image slot\n */\n@Component({\n  selector: 'ocx-user-avatar',\n  templateUrl: './user-avatar.component.html',\n  styleUrls: ['./user-avatar.component.scss'],\n})\nexport class UserAvatarComponent {\n  @Input() set user$(value: Observable<UserProfile | undefined> | undefined) {\n    value?.pipe(first()).subscribe((user) => (this.user = user))\n  }\n  @Input() set user(value: UserProfile | undefined) {\n    this.imagePath$.next(value?.avatar?.smallImageUrl ?? this.placeHolderPath)\n  }\n\n  public placeHolderPath = 'onecx-portal-lib/assets/images/default_avatar.png'\n  imagePath$ = new BehaviorSubject<string>(this.placeHolderPath)\n  apiPrefix$ = this.imagePath$.pipe(\n    map((path) => {\n      if (path.match(/^(http|https)/g)) {\n        return ''\n      }\n      return API_PREFIX\n    })\n  )\n}\n","<div style=\"height: 32px\">\n  <img [ocxSrc]=\"(imagePath$ | async ) ?? ''\" alt=\"avatar\" class=\"profile-image\" />\n</div>","import { animate, state, style, transition, trigger } from '@angular/animations'\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core'\nimport { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy'\nimport { map, Observable } from 'rxjs'\nimport { MenuItem } from 'primeng/api'\nimport { UserService } from '@onecx/angular-integration-interface'\nimport { MenuService } from '../../../services/app.menu.service'\nimport { UserProfile } from '../../../model/user-profile.model'\nimport { EventsPublisher } from '@onecx/integration-interface'\n\n@Component({\n  selector: 'ocx-inline-profile',\n  templateUrl: 'inline-profile.component.html',\n  styleUrls: ['./inline-profile.component.scss'],\n  animations: [\n    trigger('menu', [\n      state(\n        'hiddenAnimated',\n        style({\n          height: '0px',\n          paddingBottom: '0px',\n          overflow: 'hidden',\n        })\n      ),\n      state(\n        'visibleAnimated',\n        style({\n          height: '*',\n          overflow: 'visible',\n        })\n      ),\n      state(\n        'visible',\n        style({\n          opacity: 1,\n          'z-index': 100,\n        })\n      ),\n      state(\n        'hidden',\n        style({\n          opacity: 0,\n          'z-index': '*',\n        })\n      ),\n      transition('visibleAnimated => hiddenAnimated', animate('400ms cubic-bezier(0.86, 0, 0.07, 1)')),\n      transition('hiddenAnimated => visibleAnimated', animate('400ms cubic-bezier(0.86, 0, 0.07, 1)')),\n      transition('visible => hidden', animate('.1s linear')),\n      transition('hidden => visible', [\n        style({ transform: 'scaleY(0.8)' }),\n        animate('.12s cubic-bezier(0, 0, 0.2, 1)'),\n      ]),\n    ]),\n  ],\n})\n@UntilDestroy()\nexport class AppInlineProfileComponent implements OnInit {\n  userProfile$: Observable<UserProfile> | undefined\n  activeInlineMenuElement: string | undefined\n  userMenuItems: MenuItem[] = []\n\n  @Input() style: any\n\n  @Input() styleClass = ''\n\n  @Input()\n  inlineMenuActive = false\n\n  @Output()\n  inlineMenuClick: EventEmitter<UIEvent> = new EventEmitter()\n\n  displayName$: Observable<string> | undefined\n  eventsPublisher$: EventsPublisher = new EventsPublisher()\n\n  constructor(\n    private menuService: MenuService,\n    private userService: UserService\n  ) {}\n\n  ngOnInit() {\n    this.userProfile$ = this.userService.profile$.asObservable()\n    this.displayName$ = this.userService.profile$.pipe(map((userProfile) => this.determineDisplayName(userProfile)))\n\n    this.menuService\n      .getMenuItems()\n      .pipe(untilDestroyed(this))\n      .subscribe((el) => this.createMenu(el))\n  }\n\n  private createMenu(menuItems: MenuItem[]) {\n    const menu = menuItems?.filter((item) => item.id === 'USER_PROFILE_MENU').pop()\n    this.userMenuItems = menu?.items ? menu.items : []\n  }\n\n  determineDisplayName(userProfile: UserProfile) {\n    if (userProfile) {\n      const person = userProfile.person\n      if (person.displayName) {\n        return person.displayName\n      } else if (person.firstName && person.lastName) {\n        return person.firstName + ' ' + person.lastName\n      } else {\n        return userProfile.userId\n      }\n    } else {\n      return 'Guest'\n    }\n  }\n\n  get tabIndex() {\n    return !this.inlineMenuActive ? '-1' : null\n  }\n\n  onClick(event: UIEvent) {\n    this.inlineMenuClick.emit(event)\n    event.preventDefault()\n    event.stopPropagation()\n  }\n\n  logout(event: Event) {\n    event.preventDefault()\n    this.eventsPublisher$.publish({ type: 'authentication#logoutButtonClicked' })\n  }\n}\n","<div\n  [ngClass]=\"{'layout-inline-menu': true, 'layout-inline-menu-active': inlineMenuActive}\"\n  [ngStyle]=\"style\"\n  [class]=\"styleClass\"\n>\n  <a class=\"layout-inline-menu-action flex flex-row align-items-center p-3\" (click)=\"onClick($event)\">\n    <ocx-user-avatar [user]=\"(userProfile$ | async) ?? undefined\"></ocx-user-avatar>\n    <span class=\"flex flex-column ml-2\">\n      <span class=\"font-bold\">{{ displayName$ | async }}</span>\n      <small>Portal User</small>\n    </span>\n    <i class=\"layout-inline-menu-icon pi pi-angle-down ml-auto\"></i>\n  </a>\n\n  <ul class=\"layout-inline-menu-action-panel\" [@menu]=\"inlineMenuActive ? 'visibleAnimated' : 'hiddenAnimated'\">\n    <li class=\"p-element layout-inline-menu-action-item\" *ngFor=\"let item of userMenuItems; let i = index;\">\n      <a\n        class=\"flex flex-row align-items-center\"\n        [attr.tabindex]=\"tabIndex\"\n        routerLink=\"{{item.routerLink}}\"\n        routerLinkActive=\"active-item\"\n      >\n        <i [ngClass]=\"'pi-' + item.icon || ''\" class=\"layout-menuitem-icon pi\"></i>\n        <span>{{ item.label }}</span>\n      </a>\n    </li>\n    <li class=\"p-element layout-inline-menu-action-item\">\n      <a class=\"flex flex-row align-items-center\" [attr.tabindex]=\"tabIndex\" href=\"#\" (click)=\"logout($event)\">\n        <i class=\"pi pi-power-off pi-fw\"></i>\n        <span>Logout</span>\n      </a>\n    </li>\n  </ul>\n</div>\n","import { Component, Input } from '@angular/core'\nimport { ActivatedRoute, Router } from '@angular/router'\n\n@Component({\n  selector: 'ocx-error',\n  templateUrl: './global-error.component.html',\n  styleUrls: ['./global-error.component.scss'],\n})\nexport class GlobalErrorComponent {\n  @Input()\n  errCode: string | undefined\n  backUrl: string\n\n  constructor(private router: Router, private route: ActivatedRoute) {\n    this.errCode = this.route.snapshot.queryParamMap.get('err') || 'E1001_FAILED_START'\n    this.backUrl = this.route.snapshot.queryParamMap.get('return') || '/'\n  }\n\n  onGoBack() {\n    this.router.navigateByUrl(this.backUrl)\n  }\n\n  reload() {\n    window.location.reload()\n  }\n}\n","<div class=\"pages-body error-page flex flex-column\">\n  <div class=\"align-self-center mt-auto mb-auto\">\n    <div class=\"pages-panel card flex flex-column\">\n      <div class=\"pages-header px-3 py-1\">\n        <h2>ERROR</h2>\n      </div>\n      <div class=\"card mt-3 px-6\">\n        <img src=\"assets/images/error.png\" alt=\"\" />\n      </div>\n      <div class=\"pages-detail pb-6\">{{errCode}}</div>\n      <button pButton pRipple type=\"button\" label=\"Try Again\" (click)=\"reload()\" class=\"p-button-text\"></button>\n    </div>\n  </div>\n</div>\n","export class ImageLogoUrlUtils {\n  public static createLogoUrl(apiPrefix: string, url?: string): string | undefined {\n    //if the url is from the backend, then we insert the apiPrefix\n    if ((url && !url.match(/^(http|https)/g)) ) {\n      return apiPrefix + url\n    } else {\n      return url\n    }\n  }\n}","import { animate, style, transition, trigger } from '@angular/animations'\nimport { Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core'\nimport { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy'\nimport { combineLatest, filter, map, Observable } from 'rxjs'\nimport { MenuItem, MenuItemCommandEvent } from 'primeng/api/menuitem'\nimport { PrimeIcons } from 'primeng/api'\n\nimport {\n  AppStateService,\n  UserService,\n  ThemeService,\n  ConfigurationService,\n  CONFIG_KEY,\n} from '@onecx/angular-integration-interface'\n\nimport { UserProfile } from '../../../model/user-profile.model'\nimport { MenuService } from '../../../services/app.menu.service'\nimport { ImageLogoUrlUtils } from '../../utils/image-logo-url.utils'\nimport { EventsPublisher } from '@onecx/integration-interface'\nimport { API_PREFIX } from '../../../api/constants'\n\ntype MenuItemPerm = MenuItem & { permission: string }\n@Component({\n  selector: 'ocx-header',\n  templateUrl: './header.component.html',\n  styleUrls: ['./header.component.scss'],\n  animations: [\n    trigger('topbarActionPanelAnimation', [\n      transition(':enter', [\n        style({ opacity: 0, transform: 'scaleY(0.8)' }),\n        animate('.12s cubic-bezier(0, 0, 0.2, 1)', style({ opacity: 1, transform: '*' })),\n      ]),\n      transition(':leave', [animate('.1s linear', style({ opacity: 0 }))]),\n    ]),\n  ],\n})\n@UntilDestroy()\nexport class HeaderComponent implements OnInit {\n  menuExpanded = false\n  searchUrl: string | undefined\n  favoritesDisabled = false\n  feedbackDisabled = false\n  supportTicketDisabled = false\n  searchDisabled = false\n  announcementHelpDisabled = false\n  passwordChangeDisabled = false\n  settingsDisabled = false\n  myRolesPermissionsDisabled = false\n  helpDisabled = false\n  helpEditorDisabled = false\n  userMenuItems: MenuItem[] = []\n  moreMenuItems: MenuItemPerm[] = []\n  fallbackImg = false\n\n  @ViewChild('searchInput')\n  searchInputViewChild: ElementRef | undefined\n\n  // TODO doesn't always work (cd related?)\n  @Input()\n  menuButtonTitle: string | undefined\n  @Output()\n  menuButtonClick: EventEmitter<any> = new EventEmitter()\n  @Output()\n  topbarItemClick: EventEmitter<any> = new EventEmitter()\n  @Output()\n  openHelpPage: EventEmitter<any> = new EventEmitter()\n  @Output()\n  openHelpPageEditor: EventEmitter<any> = new EventEmitter()\n  @Output()\n  openFeedback: EventEmitter<any> = new EventEmitter()\n  @Output()\n  openAddToLaunchpad: EventEmitter<any> = new EventEmitter()\n  @Output()\n  openSupportTicket: EventEmitter<any> = new EventEmitter()\n  @Output()\n  searchClick: EventEmitter<any> = new EventEmitter()\n\n  @Input()\n  activeTopbarItem: any\n  @Input()\n  disableBreadcrumbs = false\n  @Input()\n  fullPortalLayout = true\n  @Input()\n  homeNavUrl = '/'\n  @Input()\n  homeNavTitle = 'Home'\n\n  logoUrl$: Observable<string | undefined>\n  currentUser$: Observable<UserProfile>\n  eventsPublisher$: EventsPublisher = new EventsPublisher()\n\n  constructor(\n    private config: ConfigurationService,\n    private menuService: MenuService,\n    private themeService: ThemeService,\n    private userService: UserService,\n    private appStateService: AppStateService\n  ) {\n    this.currentUser$ = this.userService.profile$\n      .pipe(untilDestroyed(this))\n      .pipe(filter((x) => x !== undefined)) as Observable<UserProfile>\n\n    this.logoUrl$ = combineLatest([\n      this.themeService.currentTheme$.asObservable(),\n      this.appStateService.currentPortal$.asObservable(),\n    ]).pipe(\n      map(([theme, portal]) => {\n        return ImageLogoUrlUtils.createLogoUrl(API_PREFIX, theme.logoUrl || portal.logoUrl)\n      })\n    )\n  }\n\n  ngOnInit() {\n    this.searchUrl = this.config.getProperty(CONFIG_KEY.TKIT_SEARCH_BASE_URL) || '/ops/enterprise-search'\n\n    /* previous idea made by Matusz & Co => to be rethink later\n        Use parameter management (MFE) to manipulate these config values\n        Fallback are permission management?\n      Trian's decision 10/2023\n        First we use permissions only (auth service) => strong dependency between shell/mfe/auth!\n    */\n    /*\n    this.favoritesDisabled = this.config.getProperty(CONFIG_KEY_ONECX_PORTAL_FAVORITES_DISABLED) === 'true'\n    this.feedbackDisabled = this.config.getProperty(CONFIG_KEY_ONECX_PORTAL_FEEDBACK_DISABLED) === 'true'\n    this.supportTicketDisabled = this.config.getProperty(CONFIG_KEY_ONECX_PORTAL_SUPPORT_TICKET_DISABLED) === 'true'\n    this.searchDisabled = this.config.getProperty(CONFIG_KEY_ONECX_PORTAL_SEARCH_DISABLED) === 'true'\n    this.announcementHelpDisabled = this.config.getProperty(CONFIG_KEY_ONECX_PORTAL_ANNOUNCEMENTS_DISABLED) === 'true'\n    this.passwordChangeDisabled = this.config.getProperty(CONFIG_KEY_ONECX_PORTAL_PASSWORD_CHANGE_DISABLED) === 'true'\n    this.settingsDisabled = this.config.getProperty(CONFIG_KEY_ONECX_PORTAL_SETTINGS_DISABLED) === 'true'\n    this.myRolesPermissionsDisabled =\n      this.config.getProperty(CONFIG_KEY_ONECX_PORTAL_MY_ROLES_PERMISSIONS_DISABLED) === 'true'\n    this.helpDisabled = this.config.getProperty(CONFIG_KEY_ONECX_PORTAL_HELP_DISABLED) === 'true'\n    this.helpEditorDisabled =\n      this.config.getProperty(CONFIG_KEY_ONECX_PORTAL_HELP_DISABLED) === 'true' ||\n      !this.authService.hasPermission('PORTAL_HEADER_HELP_ITEM_EDITOR#VIEW')\n    */\n    this.menuService.getMenuItems().subscribe((el) => this.createMenu(el))\n\n    // TODO add translations\n    this.moreMenuItems = [\n      {\n        command: (e) => this.onOpenFeedback(e),\n        icon: PrimeIcons.COMMENT,\n        label: 'Feedback',\n        disabled: this.feedbackDisabled,\n        permission: 'PORTAL_HEADER_GIVE_FEEDBACK#VIEW',\n      },\n      {\n        command: (e) => this.onAddToFavourites(e),\n        icon: PrimeIcons.STAR,\n        label: 'Add to Favorites',\n        disabled: this.favoritesDisabled,\n        permission: 'PORTAL_HEADER_ADD_TO_MY_FAVORITES#VIEW',\n      },\n      {\n        command: (e) => this.onOpenSupportTicket(e),\n        icon: PrimeIcons.TICKET,\n        label: 'Create Support Ticket',\n        disabled: this.supportTicketDisabled,\n        permission: 'PORTAL_HEADER_CREATE_SUPPORT_TICKET#VIEW',\n      },\n      {\n        command: (e) => this.onTopbarItemClick(e, 'search'),\n        icon: PrimeIcons.SEARCH,\n        label: 'Search',\n        disabled: this.searchDisabled,\n        permission: 'PORTAL_HEADER_ENTERPRISE_SEARCH#VIEW',\n      },\n      {\n        command: (e) => this.onOpenHelpPage(e),\n        icon: PrimeIcons.QUESTION_CIRCLE,\n        label: 'Show Help for this article',\n        disabled: this.helpDisabled,\n        permission: 'PORTAL_HEADER_HELP#VIEW',\n      },\n      {\n        command: (e) => this.onOpenHelpPageEditor(e),\n        icon: PrimeIcons.PENCIL,\n        label: 'Edit Help for this article',\n        disabled: this.helpEditorDisabled,\n        permission: 'PORTAL_HEADER_HELP_ITEM_EDITOR#VIEW',\n      },\n    ]\n  }\n\n  private createMenu(menuItems: MenuItem[]) {\n    this.userMenuItems = menuItems.find(({ id }) => id === 'USER_PROFILE_MENU')?.items || []\n  }\n\n  logout(event: Event) {\n    event.preventDefault()\n    this.eventsPublisher$.publish({ type: 'authentication#logoutButtonClicked' })\n  }\n\n  onMenuButtonClick(e: MouseEvent) {\n    this.menuButtonClick.emit(e)\n  }\n  onTopbarItemClick(e: MouseEvent | MenuItemCommandEvent, arg: any) {\n    this.topbarItemClick.emit({ event: e, arg })\n  }\n  onOpenHelpPageEditor(e: MenuItemCommandEvent) {\n    this.openHelpPageEditor.emit(e)\n  }\n  onOpenHelpPage(e: MenuItemCommandEvent) {\n    this.openHelpPage.emit(e)\n  }\n  onOpenFeedback(e: MenuItemCommandEvent) {\n    this.openFeedback.emit(e)\n  }\n  onAddToFavourites(e: MenuItemCommandEvent) {\n    this.openAddToLaunchpad.emit(e)\n  }\n  onOpenSupportTicket(e: MenuItemCommandEvent) {\n    this.openSupportTicket.emit(e)\n  }\n\n  onSearchClick(e: MouseEvent | MenuItemCommandEvent, val: boolean) {\n    this.searchClick.emit({ event: e, val })\n  }\n}\n","<div class=\"layout-topbar shadow-4\" id=\"header\" role=\"banner\">\n  <div class=\"layout-topbar-left\">\n    <a class=\"layout-topbar-logo\" [routerLink]=\"homeNavUrl\" [title]=\"homeNavTitle\">\n      <img\n        id=\"app-logo\"\n        src=\"{{(logoUrl$ | async) || 'assets/images/logo.png'}}\"\n        alt=\"Logo\"\n        style=\"max-height: 100%; max-width: 100%\"\n        *ngIf=\"(logoUrl$ | async) && !fallbackImg\"\n        (error)=\"fallbackImg=true\"\n      />\n      <svg *ngIf=\"((logoUrl$ | async) === null) || fallbackImg\" width=\"160\" viewBox=\"0 0 283 72\" class=\"default-logo\">\n        <defs id=\"SvgjsDefs4962\"></defs>\n        <g\n          id=\"SvgjsG4963\"\n          featurekey=\"symbolFeature-0\"\n          transform=\"matrix(0.7555406501686023,0,0,0.7555406501686023,-4.883814572467361,-0.26595028490140254)\"\n        >\n          <path\n            xmlns=\"http://www.w3.org/2000/svg\"\n            d=\"M88.54,46.256L9.464,0.616c-0.616-0.352-1.384-0.352-2,0c-0.62,0.36-1,1.02-1,1.736v91.296c0,0.716,0.38,1.375,1,1.731  c0.308,0.185,0.656,0.269,1,0.269c0.344,0,0.692-0.084,1-0.269L88.54,49.729c0.616-0.36,1-1.021,1-1.736  C89.54,47.276,89.152,46.616,88.54,46.256z M60.08,49.771L21.388,69.805c-0.288,0.147-0.604,0.223-0.92,0.223  c-0.36,0-0.72-0.092-1.04-0.287c-0.596-0.364-0.96-1.008-0.96-1.713v-40.06c0-0.696,0.364-1.344,0.96-1.712  c0.596-0.36,1.336-0.392,1.96-0.068l38.696,20.028c0.664,0.344,1.084,1.032,1.084,1.772C61.164,48.74,60.744,49.428,60.08,49.771z\"\n          ></path>\n          <path xmlns=\"http://www.w3.org/2000/svg\" d=\"M22.464,64.744l32.345-16.748l-32.345-16.74V64.744z\"></path>\n        </g>\n        <g\n          id=\"SvgjsG4964\"\n          featurekey=\"nameFeature-0\"\n          transform=\"matrix(1.0207331753701396,0,0,1.0207331753701396,81.5644404108694,15.72408377414908)\"\n        >\n          <path\n            d=\"M17.344 32.6562 c-0.78125 -0.15625 -1.5105 -0.3907 -2.1876 -0.7032 c-1.4584 -0.67711 -2.7344 -1.6146 -3.8281 -2.8125 c-1.0416 -1.0938 -1.875 -2.4479 -2.5 -4.0625 c-0.57289 -1.6146 -0.85938 -3.2552 -0.85938 -4.9219 l0 -0.15625 l0 -0.23438 c0 -1.7188 0.28648 -3.3854 0.85938 -5 c0.67711 -1.6666 1.5105 -2.9948 2.5001 -3.9844 c1.0416 -1.1979 2.2916 -2.1094 3.75 -2.7344 c0.88539 -0.41664 1.6406 -0.67703 2.2656 -0.78117 l0 -5.8594 c-1.8229 0.26039 -3.4375 0.70313 -4.8438 1.3281 c-2.2916 0.98961 -4.2448 2.3177 -5.8594 3.9844 s-2.8906 3.6458 -3.8281 5.9374 s-1.4063 4.6875 -1.4063 7.1875 l0 0.15625 l0 0.23438 c0 2.5521 0.46875 4.948 1.4063 7.1876 c0.83336 2.2396 2.0834 4.1927 3.75 5.8594 c1.6666 1.7188 3.6198 3.0469 5.8594 3.9844 c1.4063 0.625 3.0469 1.0677 4.9219 1.3281 l0 -5.9375 z M38.594 20 l0.000076294 -0.23438 c0 -2.5521 -0.46875 -4.948 -1.4063 -7.1876 c-0.9375 -2.2916 -2.2135 -4.2708 -3.8281 -5.9374 c-1.5625 -1.6666 -3.4896 -2.9688 -5.7813 -3.9063 c-1.3021 -0.625 -2.8906 -1.0677 -4.7656 -1.3281 l0 5.9375 l0.9375 0.3125 c0.46875 0.15625 0.83336 0.28648 1.0938 0.39063 c1.4584 0.67711 2.7344 1.6146 3.8281 2.8125 c1.0416 1.0938 1.875 2.4479 2.5 4.0625 c0.57289 1.6146 0.85938 3.2552 0.85938 4.9219 l0 0.15625 l0 0.23438 c0 1.7188 -0.28648 3.3854 -0.85938 5 c-0.67711 1.6666 -1.5105 2.9948 -2.5001 3.9844 c-1.0416 1.1979 -2.2916 2.1094 -3.75 2.7344 c-0.67711 0.3125 -1.3802 0.54688 -2.1094 0.70313 l0 5.9375 c1.5625 -0.20836 3.125 -0.65109 4.6875 -1.3282 c2.1354 -0.88539 4.0885 -2.2135 5.8594 -3.9844 c1.7188 -1.8229 2.9948 -3.802 3.8281 -5.9374 c0.9375 -2.2916 1.4063 -4.6875 1.4063 -7.1875 l0 -0.15625 z M43.8281 38.5937 l6.4844 0 l0 -19.922 l-6.4844 -9.1406 l0 29.063 z M69.76599999999999 1.4059999999999988 l0 25.703 l-18.359 -25.703 l-7.0313 0 l26.406 37.188 l5.3906 0 l0 -37.188 l-6.4063 0 z M86.0938 1.4059999999999988 l27.813 0 l0 5.9375 l-27.813 0 l0 -5.9375 z M86.0938 32.6562 l27.734 0 l0 5.9375 l-27.734 0 l0 -5.9375 z M86.0938 16.875 l25.078 0 l0 5.8594 l-25.078 0 l0 -5.8594 z M127.2656 12.5 c0.9375 -2.2916 2.2916 -4.2447 4.0624 -5.8593 c1.6146 -1.6146 3.698 -2.9167 6.2501 -3.9063 s5.2344 -1.4844 8.0469 -1.4844 l8.6719 0 l0 5.9375 l-8.5938 0 c-2.0313 0 -3.8281 0.33852 -5.3906 1.0156 c-1.6666 0.67711 -3.0208 1.5625 -4.0624 2.6563 c-1.0938 1.0416 -1.9791 2.3958 -2.6563 4.0624 c-0.625 1.5104 -0.9375 3.2031 -0.9375 5.0781 s0.3125 3.5677 0.9375 5.0781 c0.625 1.5625 1.5104 2.9166 2.6563 4.0625 c1.0416 1.0416 2.3958 1.901 4.0624 2.5781 c1.6666 0.625 3.4635 0.9375 5.3906 0.9375 l8.5938 0 l0 5.9375 l-8.6719 0 c-2.9166 0 -5.5729 -0.46875 -7.9688 -1.4063 c-2.5 -1.0416 -4.6094 -2.3698 -6.3281 -3.9844 c-1.7709 -1.6666 -3.125 -3.6458 -4.0625 -5.9374 c-0.98961 -2.3959 -1.4844 -4.8438 -1.4844 -7.3438 c0 -2.6563 0.49477 -5.1302 1.4844 -7.4219 z M176.484 29.375 l3.5156 -4.6875 l-0.078125 -0.15625 z M196.875 1.4059999999999988 l-7.5 0 l-9.2969 13.359 l-9.2188 -13.359 l-7.7344 0 l13.047 18.281 l-13.516 18.906 l8.3594 0 z M197.344 38.5937 l-10.313 -14.609 l-3.9063 5.2344 l6.5625 9.375 l7.6563 0 z\"\n          ></path>\n        </g>\n      </svg>\n    </a>\n\n    <a\n      class=\"layout-menu-button shadow-6\"\n      (click)=\"onMenuButtonClick($event)\"\n      pRipple\n      [title]=\"menuButtonTitle ?? ('OCX_HEADER.MENU_TOGGLE' | translate)\"\n    >\n      <i class=\"pi pi-chevron-right\"></i>\n    </a>\n  </div>\n\n  <div class=\"layout-topbar-right\">\n    <div class=\"layout-topbar-actions-left\">\n      <ng-content></ng-content>\n      <!-- <tk-breadcrumb *ngIf=\"disableBreadcrumbs\" [disableBreadcrumbs]=\"disableBreadcrumbs\"\n        [fullPortalLayout]=\"fullPortalLayout\" (openHelpPage)=\"onOpenHelpPage($event)\"\n        (openHelpPageEditor)=\"onOpenHelpPageEditor($event)\"></tk-breadcrumb> -->\n    </div>\n    <!-- TODO *ngIf=\"fullPortalLayout\" -->\n    <div class=\"layout-topbar-actions-right\">\n      <ul class=\"layout-topbar-items\">\n        <!-- Only desktop: Actions (favorites, support, search, ...) as icon buttons -->\n        <ng-container *ocxIfBreakpoint=\"'desktop'\">\n          <ng-container *ngFor=\"let item of moreMenuItems\">\n            <li class=\"layout-topbar-item\" *ocxIfPermission=\"item.permission\">\n              <!-- *ngIf=\"!item?.disabled\" -->\n              <a\n                class=\"layout-topbar-action rounded-circle\"\n                pRipple\n                (click)=\"item?.command({originalEvent: $event, item})\"\n                [title]=\"item.label\"\n                [pTooltip]=\"item.label || ''\"\n                tooltipPosition=\"bottom\"\n              >\n                <i [ngClass]=\"item.icon || ''\" class=\"fs-large\"></i>\n              </a>\n            </li>\n          </ng-container>\n        </ng-container>\n\n        <!-- Search panel overlay -->\n        <li class=\"layout-topbar-item layout-search-item\">\n          <div\n            class=\"layout-search-panel p-inputgroup\"\n            [@topbarActionPanelAnimation]=\"'visible'\"\n            *ngIf=\"activeTopbarItem === 'search'\"\n          >\n            <span class=\"p-inputgroup-addon\"><i class=\"pi pi-search\"></i></span>\n            <input type=\"text\" pInputText ocxAutofocus placeholder=\"Search...\" />\n            <span class=\"p-inputgroup-addon\">\n              <button\n                pButton\n                pRipple\n                type=\"button\"\n                icon=\"pi pi-times\"\n                class=\"p-button-rounded p-button-text p-button-plain\"\n                (click)=\"onSearchClick($event, false)\"\n              ></button>\n            </span>\n          </div>\n        </li>\n\n        <!-- Notification icon button + overlay -->\n        <li *ngIf=\"!announcementHelpDisabled\" class=\"layout-topbar-item notifications\">\n          <a\n            *ocxIfPermission=\"'PORTAL_HEADER_NOTIFICATION#VIEW'\"\n            class=\"layout-topbar-action rounded-circle\"\n            (click)=\"onTopbarItemClick($event, 'notifications')\"\n            pRipple\n            title=\"Notifications\"\n            pTooltip=\"Notifications\"\n            tooltipPosition=\"bottom\"\n          >\n            <i class=\"pi pi-bell fs-large\"></i>\n          </a>\n\n          <ul\n            class=\"layout-topbar-action-panel shadow-6\"\n            [@topbarActionPanelAnimation]=\"'visible'\"\n            *ngIf=\"activeTopbarItem === 'notifications'\"\n          >\n            <li class=\"mb-3\">\n              <span class=\"px-3 fs-small\">Not implemented.</span>\n            </li>\n            <li class=\"layout-topbar-action-item\">\n              <div class=\"flex flex-row align-items-center\">\n                <p class=\"avatar-monogram\">MM</p>\n                <div class=\"flex flex-column ml-3\" style=\"flex-grow: 1\">\n                  <div class=\"flex align-items-center justify-content-between mb-1\">\n                    <span class=\"fs-small font-bold\">John Doe</span>\n                    <small>42 mins ago</small>\n                  </div>\n                  <span class=\"fs-small\">Notification example.</span>\n                </div>\n              </div>\n            </li>\n          </ul>\n        </li>\n\n        <!-- Profile icon button + overlay -->\n        <li class=\"layout-topbar-item\">\n          <a\n            class=\"layout-topbar-action flex flex-row justify-content-center align-items-center px-2 rounded-circle\"\n            pRipple\n            (click)=\"onTopbarItemClick($event, 'profile')\"\n            title=\"Profile\"\n            pTooltip=\"Profile\"\n            tooltipPosition=\"bottom\"\n          >\n            <ocx-user-avatar [user$]=\"currentUser$\"></ocx-user-avatar>\n          </a>\n\n          <ul\n            class=\"layout-topbar-action-panel shadow-6\"\n            [@topbarActionPanelAnimation]=\"'visible'\"\n            *ngIf=\"activeTopbarItem === 'profile' && userMenuItems\"\n          >\n            <li class=\"layout-topbar-action-item flex flex-column\" *ocxIfPermission=\"'PROFILE#VIEW'\">\n              <div *ngIf=\"currentUser$ | async as user\">\n                <h5 class=\"flex flex-row align-items-center justify-content-center text-color-secondary\">\n                  {{ user.person.displayName }}\n                </h5>\n                <span class=\"flex flex-row align-items-center justify-content-center text-color-secondary\"\n                  >{{user.person.email}}</span\n                >\n                <span\n                  *ngIf=\"user.tenantName\"\n                  class=\"flex flex-row align-items-center justify-content-center text-color-secondary\"\n                >\n                  Tenant: {{user.tenantName}}</span\n                >\n              </div>\n            </li>\n            <li class=\"layout-topbar-action-item\" *ngFor=\"let item of userMenuItems; let i = index;\">\n              <a class=\"flex flex-row align-items-center\" pRipple href=\"#\" [routerLink]=\"item.routerLink\">\n                <i [ngClass]=\"'pi-' + item.icon || ''\" class=\"layout-menuitem-icon pi\"></i>\n                <span class=\"layout-menuitem-text ml-2\">{{ item.label }}</span>\n              </a>\n            </li>\n            <li class=\"layout-topbar-action-item\">\n              <a class=\"flex flex-row align-items-center\" pRipple href=\"#\" (click)=\"logout($event)\">\n                <i class=\"mr-2 pi pi-power-off\"></i>\n                <span>Logout</span>\n              </a>\n            </li>\n          </ul>\n        </li>\n\n        <!-- Only mobile: Actions (favorites, support, search, ...) as 'more' button + overlay -->\n        <li class=\"layout-topbar-item\" *ocxIfBreakpoint=\"'mobile'\">\n          <a\n            class=\"layout-topbar-action rounded-circle\"\n            (click)=\"onTopbarItemClick($event, 'more')\"\n            pRipple\n            title=\"More\"\n            pTooltip=\"More\"\n            tooltipPosition=\"bottom\"\n          >\n            <i class=\"pi pi-ellipsis-v fs-large\"></i>\n          </a>\n\n          <ul\n            class=\"layout-topbar-action-panel shadow-6\"\n            [@topbarActionPanelAnimation]=\"'visible'\"\n            *ngIf=\"activeTopbarItem === 'more' && moreMenuItems\"\n          >\n            <ng-container *ngFor=\"let item of moreMenuItems\">\n              <li class=\"layout-topbar-action-item\" *ocxIfPermission=\"item.permission\">\n                <!-- *ngIf=\"!item?.disabled\" -->\n                <a\n                  class=\"flex flex-row align-items-center\"\n                  pRipple\n                  href=\"#\"\n                  [routerLink]=\"item.routerLink\"\n                  (click)=\"item?.command({originalEvent: $event, item})\"\n                >\n                  <i [ngClass]=\"'pi-' + item.icon || ''\" class=\"layout-menuitem-icon pi\"></i>\n                  <span class=\"layout-menuitem-text ml-2\">{{ item.label }}</span>\n                </a>\n              </li>\n            </ng-container>\n          </ul>\n        </li>\n      </ul>\n    </div>\n  </div>\n</div>\n","import { Component, EventEmitter, Input, OnChanges, Output, SimpleChanges } from '@angular/core'\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms'\nimport { PortalMessageService } from '@onecx/angular-integration-interface'\nimport { HelpData } from '../../../model/help-data'\n\n@Component({\n  selector: 'ocx-help-item-editor',\n  templateUrl: './help-item-editor.component.html',\n  styleUrls: ['./help-item-editor.component.scss'],\n})\nexport class HelpItemEditorComponent implements OnChanges {\n  @Input() public displayDialog = true\n  @Output() public displayDialogChange = new EventEmitter<boolean>()\n\n  @Input() helpItem!: HelpData | undefined\n  @Output() saveHelpItem = new EventEmitter<HelpData>()\n\n  public formGroup!: FormGroup\n  constructor(private fb: FormBuilder, private portalMessageService: PortalMessageService) {\n    this.formGroup = this.fb.group({\n      appId: new FormControl({ value: null, disabled: true }, [Validators.required]),\n      helpItemId: new FormControl({ value: null, disabled: true }, [Validators.required]),\n      resourceUrl: new FormControl(null, Validators.required),\n    })\n  }\n  public ngOnChanges(changes: SimpleChanges): void {\n    if (changes['helpItem'] && this.helpItem) {\n      this.formGroup.patchValue({ ...this.helpItem })\n    }\n  }\n\n  public save() {\n    if (this.formGroup.valid && this.helpItem) {\n      this.helpItem.resourceUrl = this.formGroup.value['resourceUrl']\n      this.saveHelpItem.emit(this.helpItem)\n    } else {\n      this.portalMessageService.error({\n        summaryKey: 'OCX_HELP_ITEM_EDITOR.SAVE_ERROR',\n      })\n    }\n  }\n\n  public close(): void {\n    this.displayDialogChange.emit(false)\n  }\n}\n","<p-dialog\n  header=\"Edit help item for this page\"\n  [contentStyle]=\"{ overflow: 'visible' }\"\n  [style]=\"{ width: '400px', 'max-height': '300px' }\"\n  [(visible)]=\"displayDialog\"\n  (onHide)=\"close()\"\n>\n  <form [formGroup]=\"formGroup\" class=\"p-grid p-fluid help-editor-form\">\n    <div class=\"p-col-12\">\n      <span class=\"p-float-label\">\n        <input id=\"helpItemId\" type=\"text\" pInputText name=\"helpItemId\" formControlName=\"helpItemId\" />\n        <label for=\"helpItemId\">Help Item Id</label>\n      </span>\n    </div>\n    <div class=\"p-col-12\">\n      <span class=\"p-float-label\">\n        <input id=\"appId\" type=\"text\" pInputText name=\"appId\" formControlName=\"appId\" />\n        <label for=\"appId\">Application Id</label>\n      </span>\n    </div>\n    <div class=\"p-col-12\">\n      <span class=\"p-float-label\">\n        <input id=\"resourceUrl\" type=\"text\" pInputText name=\"resourceUrl\" formControlName=\"resourceUrl\" />\n        <label for=\"resourceUrl\">Url</label>\n      </span>\n    </div>\n  </form>\n  <ng-template pTemplate=\"footer\">\n    <button pButton class=\"primary\" value=\"Save\" label=\"Save\" icon=\"pi pi-check\" (click)=\"save()\"></button>\n    <button\n      pButton\n      icon=\"pi pi-times\"\n      class=\"flat\"\n      value=\"Cancel\"\n      label=\"Cancel\"\n      (click)=\"displayDialog = false\"\n    ></button\n  ></ng-template>\n</p-dialog>\n","import { ChangeDetectorRef, Component, OnInit } from '@angular/core'\nimport { Router } from '@angular/router'\nimport { combineLatest, concat, map, Observable, of, withLatestFrom } from 'rxjs'\nimport { MenuItem } from 'primeng/api'\nimport { AppStateService, ConfigurationService, ThemeService, CONFIG_KEY } from '@onecx/angular-integration-interface'\nimport { MenuService } from '../../../services/app.menu.service'\nimport { API_PREFIX } from '../../../api/constants'\nimport { ImageLogoUrlUtils } from '../../utils/image-logo-url.utils'\n@Component({\n  selector: 'ocx-footer',\n  templateUrl: './portal-footer.component.html',\n  styleUrls: ['./portal-footer.component.scss'],\n})\nexport class PortalFooterComponent implements OnInit {\n  copyrightMsg$: Observable<string> | undefined\n  logoUrl$: Observable<string | undefined>\n  currentYear = new Date().getFullYear()\n  portalMenuItems: MenuItem[] = []\n  versionInfo$: Observable<string | undefined>\n  apiPrefix: string = API_PREFIX\n\n  constructor(\n    private configurationService: ConfigurationService,\n    public router: Router,\n    private appState: AppStateService,\n    private menuService: MenuService,\n    private themeService: ThemeService,\n    private ref: ChangeDetectorRef\n  ) {\n    this.versionInfo$ = this.appState.currentMfe$.pipe(\n      withLatestFrom(this.appState.currentPortal$.asObservable()),\n      map(([mfe, portal]) => {\n        const mfeInfoVersion = mfe?.version || ''\n        const mfeName = mfe?.displayName\n        const hostVersion = this.configurationService.getProperty(CONFIG_KEY.APP_VERSION) || 'DEV-LOCAL'\n        const mfInfoText = mfeName ? `MF ${mfeName} v${mfeInfoVersion}` : ''\n        return `Portal: ${portal.portalName} v${hostVersion} ${mfInfoText}`\n      })\n    )\n    this.logoUrl$ = combineLatest([\n      this.themeService.currentTheme$.asObservable(),\n      this.appState.currentPortal$.asObservable(),\n    ]).pipe(map(([theme, portalData]) => ImageLogoUrlUtils.createLogoUrl(API_PREFIX, theme.logoUrl || portalData.logoUrl)))\n  }\n  ngOnInit(): void {\n    this.copyrightMsg$ = concat(\n      of('All rights reserved.'),\n      this.appState.currentPortal$.pipe(\n        map((portalData) => {\n          if (\n            !(\n              portalData.footerLabel === '' ||\n              portalData.footerLabel === 'string' ||\n              portalData.footerLabel === undefined\n            )\n          ) {\n            return portalData.companyName || portalData.footerLabel || 'All rights reserved.'\n          }\n          return ''\n        })\n      )\n    )\n\n    this.menuService\n      .getMenuItems()\n      .subscribe((el) =>\n        el.find((item) => (item.id === 'PORTAL_FOOTER_MENU' ? this.createMenu(item as MenuItem) : null))\n      )\n  }\n  public onErrorHandleSrc(): void {\n    this.logoUrl$ = of(undefined)\n  }\n  private createMenu(menuItem: MenuItem): void {\n    if (menuItem && menuItem.items) {\n      this.portalMenuItems = menuItem.items\n        .sort((a: any, b: any) => a.position - b.position)\n        .filter((m: any, i) => {\n          if (i < 4) return m // max 4 entries in footer\n        })\n        .map((item: MenuItem) => {\n          return item\n        })\n      this.ref.detectChanges()\n    } else {\n      this.portalMenuItems = []\n    }\n  }\n\n  private setImageUrl(url?: string): string | undefined {\n    //if the url is from the backend, then we insert the apiPrefix\n    if (url && !url.match(/^(http|https)/g)) {\n      return this.apiPrefix + url\n    } else {\n      return url\n    }\n  }\n}\n","<div class=\"ml-3 py-2 lg:ml-5 flex flex-wrap align-items-center justify-content-between row-gap-1\">\n  <div class=\"flex flex-wrap align-items-center justify-content-start gap-3 row-gap-1\">\n    <img *ngIf=\"logoUrl$ | async\" alt=\"logo\" class=\"max-h-1rem\" [src]=\"logoUrl$ | async\" (error)=\"onErrorHandleSrc()\" />\n    <div class=\"flex-none text-sm\">&copy; {{copyrightMsg$ | async}}</div>\n    <ul\n      class=\"ml-0 sm:ml-6 list-none flex flex-row gap-4 text-xs m-0 p-0\"\n      *ngIf=\"portalMenuItems && portalMenuItems.length > 0\"\n    >\n      <li *ngFor=\"let item of portalMenuItems; let i = index;\">\n        <a *ngIf=\"!item.routerLink\" [attr.href]=\"item.url\"> {{ item.label }} </a>\n        <a\n          *ngIf=\"item.routerLink\"\n          [routerLink]=\"item.url\"\n          routerLinkActive=\"active-menuitem-routerlink\"\n          [routerLinkActiveOptions]=\"{ exact: true }\"\n        >\n          {{ item.label }}\n        </a>\n      </li>\n    </ul>\n  </div>\n  <div class=\"mr-5 text-sm\">{{versionInfo$ | async}}</div>\n</div>\n","import { animate, state, style, transition, trigger } from '@angular/animations'\nimport { Component, Input, OnInit } from '@angular/core'\nimport { DomSanitizer } from '@angular/platform-browser'\nimport { ActivatedRoute, NavigationEnd, Router } from '@angular/router'\nimport { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy'\nimport { MenuItem } from 'primeng/api'\nimport { filter } from 'rxjs'\nimport { PortalUIService } from '../../../services/portal-ui.service'\n\n@Component({\n  selector: 'ocx-submenu',\n  templateUrl: './submenu.component.html',\n  styleUrls: ['./submenu.component.scss'],\n  animations: [\n    trigger('children', [\n      state(\n        'void',\n        style({\n          height: '0px',\n          padding: '0px',\n        })\n      ),\n      state(\n        'hiddenAnimated',\n        style({\n          height: '0px',\n          padding: '0px',\n        })\n      ),\n      state(\n        'visibleAnimated',\n        style({\n          height: '*',\n        })\n      ),\n      state(\n        'visible',\n        style({\n          height: '*',\n        })\n      ),\n      state(\n        'hidden',\n        style({\n          height: '0px',\n          padding: '0px',\n        })\n      ),\n      transition('visibleAnimated => hiddenAnimated', animate('400ms cubic-bezier(0.86, 0, 0.07, 1)')),\n      transition('hiddenAnimated => visibleAnimated', animate('400ms cubic-bezier(0.86, 0, 0.07, 1)')),\n      transition('void => visibleAnimated, visibleAnimated => void', animate('400ms cubic-bezier(0.86, 0, 0.07, 1)')),\n    ]),\n  ],\n})\n@UntilDestroy()\nexport class SubMenuComponent implements OnInit {\n  @Input() item!: MenuItem\n\n  @Input() index!: number\n\n  @Input() root = false\n\n  @Input() parentKey: string | undefined\n\n  active = false\n\n  // menuSourceSubscription: Subscription\n\n  // menuResetSubscription: Subscription\n\n  // key!: string\n  // isParent: boolean | undefined\n  type: 'parent' | 'routerLink' | 'href' | 'command' | 'label' = 'label'\n\n  constructor(\n    public router: Router,\n    private activeRoute: ActivatedRoute,\n    public uiConfig: PortalUIService,\n    private sanitizer: DomSanitizer\n  ) {\n    this.router.events\n      .pipe(untilDestroyed(this))\n      .pipe(filter((event) => event instanceof NavigationEnd))\n      .subscribe(() => {\n        if (this.uiConfig.isHorizontal || this.uiConfig.isSlim) {\n          this.active = false\n        } else {\n          if (this.type === 'routerLink' || this.type === 'parent') {\n            this.updateActiveStateFromRoute()\n          } else {\n            this.active = false\n          }\n        }\n      })\n  }\n\n  ngOnInit() {\n    // this.key = this.parentKey ? this.parentKey + '-' + this.index : String(this.index)\n\n    this.type = this.getItemType(this.item)\n    if (!(this.uiConfig.isHorizontal || this.uiConfig.isSlim) && this.item.routerLink) {\n      this.updateActiveStateFromRoute()\n    }\n  }\n\n  sanitize(url?: string) {\n    if (url) {\n      return this.sanitizer.bypassSecurityTrustUrl(url)\n    } else {\n      return url\n    }\n  }\n\n  updateActiveStateFromRoute() {\n    this.active = this.isSelfOrChildActive(this.item)\n  }\n\n  getItemType(item: MenuItem): 'parent' | 'routerLink' | 'href' | 'command' | 'label' {\n    if (item.items && item.items.length > 0) {\n      return 'parent'\n    } else if (item.routerLink) {\n      return 'routerLink'\n    } else if (item.command) {\n      return 'command'\n    } else if (item.url) {\n      return 'href'\n    } else {\n      return 'label'\n    }\n  }\n\n  isSelfOrChildActive(item: MenuItem) {\n    // const matchMode = this.type === 'parent' ? 'subset' : 'exact'\n    const matchMode = 'subset'\n\n    if (this.getItemType(item) === 'parent' && item.items) {\n      for (const child of item.items) {\n        if (this.isSelfOrChildActive(child)) {\n          return true\n        }\n      }\n      return false\n    } else {\n      let url = item.routerLink || item.url\n      if (!url) {\n        console.warn(`Item without any url ${item.id} ${item.label}`)\n        return false\n      }\n      url = url.startsWith('/') ? url.substring(1) : url\n      url = url.endsWith('/') ? url.substring(0, url.length - 1) : url\n      return this.router.isActive(url, {\n        paths: matchMode,\n        queryParams: 'ignored',\n        fragment: 'ignored',\n        matrixParams: 'ignored',\n      })\n    }\n  }\n\n  itemClick(event: Event) {\n    // avoid processing disabled items\n    if (this.item.disabled) {\n      event.preventDefault()\n      return\n    }\n\n    // navigate with hover in horizontal mode\n    if (this.root) {\n      this.uiConfig.menuHoverActive = !this.uiConfig.menuHoverActive\n    }\n\n    // notify other items\n    // this.menuService.onMenuStateChange(this.key)\n\n    // execute command\n    if (this.item.command) {\n      this.item.command({ originalEvent: event, item: this.item })\n    }\n\n    // toggle active state\n    if (this.type === 'parent') {\n      this.active = !this.active\n      event.preventDefault()\n      event.stopPropagation()\n    } else {\n      // activate item\n      this.active = true\n\n      // reset horizontal and slim menu\n      if (this.uiConfig.isHorizontal || this.uiConfig.isSlim) {\n        // this.menuService.reset()\n        this.uiConfig.menuHoverActive = false\n      }\n\n      if (!this.uiConfig.isStatic) {\n        this.uiConfig.menuActive = false\n      }\n\n      this.uiConfig.mobileMenuActive = false\n    }\n\n    this.removeActiveInk(event)\n  }\n\n  onMouseEnter() {\n    // activate item on hover\n    if (this.root && (this.uiConfig.isHorizontal || this.uiConfig.isSlim) && this.uiConfig.isDesktop) {\n      if (this.uiConfig.menuHoverActive) {\n        // this.menuService.onMenuStateChange(this.key)\n        this.active = true\n      }\n    }\n  }\n\n  removeActiveInk(event: Event) {\n    const currentTarget = event.currentTarget as HTMLElement\n    setTimeout(() => {\n      if (currentTarget) {\n        const activeInk = currentTarget.querySelector('.p-ink-active')\n        if (activeInk) {\n          if (activeInk.classList) {\n            activeInk.classList.remove('p-ink-active')\n          } else {\n            activeInk.className = activeInk.className.replace(\n              new RegExp('(^|\\\\b)' + 'p-ink-active'.split(' ').join('|') + '(\\\\b|$)', 'gi'),\n              ' '\n            )\n          }\n        }\n      }\n    }, 401)\n  }\n\n  // ngOnDestroy() {\n  //   // if (this.menuSourceSubscription) {\n  //   //   this.menuSourceSubscription.unsubscribe()\n  //   // }\n\n  //   // if (this.menuResetSubscription) {\n  //   //   this.menuResetSubscription.unsubscribe()\n  //   // }\n  // }\n}\n","<li\n  [ngSwitch]=\"type\"\n  routerLinkActive=\"active-menu-parent\"\n  [ngClass]=\"{ 'active-menu-parent': active, 'parent-menu': type === 'parent' }\"\n  attr.debug=\"{{ type }} url {{ item.url }} router: {{ item.routerLink }} active {{ active }}\"\n>\n  <!-- not clickable menu item -->\n  <div *ngSwitchCase=\"'label'\">\n    <span class=\"layout-menuitem-text\">{{ item.label }}</span>\n  </div>\n  <!-- external href -->\n  <a\n    *ngSwitchCase=\"'href'\"\n    [attr.href]=\"sanitize(item.url)\"\n    (click)=\"itemClick($event)\"\n    (keydown.enter)=\"itemClick($event)\"\n    [attr.target]=\"item.target\"\n    [attr.tabindex]=\"0\"\n    (mouseenter)=\"onMouseEnter()\"\n    pRipple\n    [pTooltip]=\"item.label || ''\"\n    [tooltipDisabled]=\"active || !(root && uiConfig.isSlim && !uiConfig.isMobile)\"\n  >\n    <i [ngClass]=\"'pi-' + item.icon || ''\" class=\"layout-menuitem-icon pi\"></i>\n    <span class=\"layout-menuitem-text\">{{ item.label }}</span>\n    <span class=\"p-tag p-component ml-auto\" [ngClass]=\"item.badgeStyleClass || ''\" *ngIf=\"item.badge && !root\"\n      >{{ item.badge }}</span\n    >\n  </a>\n  <!-- internal router link -->\n  <a\n    *ngSwitchCase=\"'routerLink'\"\n    (click)=\"itemClick($event)\"\n    [routerLink]=\"[item.routerLink]\"\n    routerLinkActive=\"active-menuitem-routerlink\"\n    [routerLinkActiveOptions]=\"\n        item.routerLinkActiveOptions || {\n          paths: 'subset',\n          matrixParams: 'ignored',\n          queryParams: 'ignored',\n          fragment: 'ignored'\n        }\n      \"\n    [attr.target]=\"item.target\"\n    [attr.tabindex]=\"0\"\n    (mouseenter)=\"onMouseEnter()\"\n    pRipple\n    [pTooltip]=\"item.label || ''\"\n    [tooltipDisabled]=\"active || !(root && uiConfig.isSlim && !uiConfig.isMobile)\"\n  >\n    <i [ngClass]=\"'pi-' + item.icon || ''\" class=\"layout-menuitem-icon pi\"></i>\n    <span class=\"layout-menuitem-text\">{{ item.label }}</span>\n    <span class=\"p-tag p-component ml-auto\" [ngClass]=\"item.badgeStyleClass || ''\" *ngIf=\"item.badge && !root\"\n      >{{ item.badge }}</span\n    >\n  </a>\n  <!-- parent menu item -->\n  <ng-container *ngSwitchCase=\"'parent'\">\n    <a\n      (click)=\"itemClick($event)\"\n      [attr.tabindex]=\"0\"\n      (mouseenter)=\"onMouseEnter()\"\n      pRipple\n      [pTooltip]=\"item.label || ''\"\n      [tooltipDisabled]=\"active || !(root && uiConfig.isSlim && !uiConfig.isMobile)\"\n    >\n      <i [ngClass]=\"'pi-' + item.icon || ''\" class=\"layout-menuitem-icon pi\"></i>\n      <span class=\"layout-menuitem-text\">{{ item.label }}</span>\n      <span class=\"p-tag p-component ml-auto\" [ngClass]=\"item.badgeStyleClass || ''\" *ngIf=\"item.badge && !root\"\n        >{{ item.badge }}</span\n      >\n      <i class=\"pi pi-fw pi-angle-down layout-submenu-toggler\"></i>\n    </a>\n    <!-- <ul [@children]=\"root ? 'visible' : active ? 'visibleAnimated' : 'hiddenAnimated'\" > -->\n    <ul\n      class=\"level-2\"\n      [@children]=\"active ? 'visibleAnimated' : 'hiddenAnimated'\"\n      *ngIf=\"item.items && active && item.visible !== false\"\n    >\n      <!-- <ocx-submenu *ngFor=\"let child of item.items; index as i;\" [item]=\"child\" [index]=\"i\" [class]=\"child.badgeStyleClass\"></ocx-submenu> -->\n      <ng-template ngFor let-child let-i=\"index\" [ngForOf]=\"item.items\">\n        <ocx-submenu [item]=\"child\" [index]=\"i\" [class]=\"child.badgeStyleClass\"></ocx-submenu>\n      </ng-template>\n    </ul>\n  </ng-container>\n\n  <div *ngSwitchDefault>{{ item.label }}<i class=\"pi pi-warn\"></i></div>\n</li>\n","import { Component } from '@angular/core'\nimport { MenuItem } from 'primeng/api'\nimport { Observable } from 'rxjs'\nimport { MenuService } from '../../../services/app.menu.service'\nimport { map } from 'rxjs/operators'\n\n@Component({\n  selector: 'ocx-portal-menu',\n  templateUrl: './portal-menu.component.html',\n  styleUrls: ['./portal-menu.component.css'],\n})\nexport class PortalMenuComponent {\n  menuItems$: Observable<MenuItem[]>\n  constructor(private menuService: MenuService) {\n    this.menuItems$ = this.menuService.getMenuItems().pipe(\n      map((el) => {\n        return el.find((item: MenuItem) => item.id === 'PORTAL_MAIN_MENU')?.items\n      })\n    ) as Observable<MenuItem[]>\n  }\n}\n","<ul class=\"layout-menu\" id=\"nav\" role=\"navigation\">\n  <ng-container *ngIf=\"menuItems$ | async as items; else loading\">\n    <ocx-submenu *ngFor=\"let item of items; let i = index;\" [item]=\"item\" [index]=\"i\" [root]=\"true\"></ocx-submenu>\n  </ng-container>\n  <ng-template #loading>\n    <!-- TODO implement me -->\n    loading...\n  </ng-template>\n</ul>\n","import { AfterViewChecked, Component, ElementRef, HostListener, Renderer2, ViewChild } from '@angular/core'\nimport { MenuService } from '../../../services/app.menu.service'\nimport { MenuItem } from 'primeng/api'\nimport { Menubar } from 'primeng/menubar'\n\n@Component({\n  selector: 'ocx-portal-menu-horizontal',\n  templateUrl: './portal-menu-horizontal.component.html',\n  styleUrls: ['./portal-menu-horizontal.component.scss'],\n})\nexport class PortalMenuHorizontalComponent implements AfterViewChecked {\n  @ViewChild('menubar') menubar?: Menubar\n  menuItems: MenuItem[] = []\n\n  private _mainMenuItems: MenuItem[] = []\n  private _sizeCache: DOMRect[] | null = [] // perf: valid cache on init\n\n  constructor(private menuService: MenuService, private elementRef: ElementRef, private renderer: Renderer2) {\n    this.menuService.getMenuItems().subscribe((el) => this.onMenuItemsChange(el))\n  }\n\n  ngAfterViewChecked(): void {\n    if (\n      // only perform update, when\n      !this._sizeCache && // menu items changed\n      this.menubar?.model === this.menuItems // menubar (+ DOM) was updated with new items\n    ) {\n      this.updateVisibleMenuItems()\n    }\n  }\n\n  onMenuItemsChange(menuItems: MenuItem[]) {\n    this._mainMenuItems = menuItems.find(({ id }) => id === 'PORTAL_MAIN_MENU')?.items || []\n    this.invalidateCache()\n  }\n\n  @HostListener('window:resize')\n  onResize() {\n    this.updateVisibleMenuItems()\n  }\n\n  invalidateCache() {\n    this.menuItems = [\n      ...this._mainMenuItems,\n      // last item = 'More' item\n      {\n        label: 'More', // TODO add translation\n        items: [], // render with angle-down button\n      },\n    ]\n    // invalidate cache, force recalculation\n    this._sizeCache = null\n  }\n\n  updateSizeCache() {\n    const el = this.elementRef?.nativeElement as HTMLElement | undefined\n    if (!el) return\n\n    this._sizeCache = []\n    const menuItemEls = el.querySelectorAll('.p-menubar .p-menubar-root-list > .p-menuitem')\n    menuItemEls.forEach((el) => this._sizeCache?.push(el.getBoundingClientRect()))\n  }\n\n  /**\n   * Priority+ navigation pattern:\n   * * Fits menu items into parent container width\n   * * Shows 'more' element for hidden items\n   * * Limitations: does not respect margin between menu items\n   *\n   * Implementation details:\n   *\n   * The algorithm works in two phases.\n   * 1. The menubar is rendered with all menu items + a placeholder 'more' item.\n   *    The menubar can be overflowing now visually for a very brief moment.\n   *    The rendered view is used to fill the size cache by checking the width of each element.\n   * 2. The size cache is used to calculate the visible elements.\n   *    The menubar items will be set according to the calculation.\n   *\n   * Everytime the menu items update, the algorithm starts in phase 1.\n   * Everytime the viewport resizes, the algorithm can skip phase 1 and use the cache.\n   */\n  updateVisibleMenuItems() {\n    if (!this._sizeCache) this.updateSizeCache()\n\n    // cache stale/invalid\n    if (this._sizeCache?.length !== this._mainMenuItems.length + 1) {\n      this.invalidateCache()\n      return\n    }\n\n    const parentEl = this.elementRef?.nativeElement?.parentElement as Element | undefined\n    if (!parentEl) return\n\n    // get container width without padding\n    const parentStyle = getComputedStyle(parentEl)\n    const parentWidth =\n      parentEl.clientWidth - parseFloat(parentStyle.paddingLeft) - parseFloat(parentStyle.paddingRight)\n\n    // calculate visible elements\n    const getWidth = (i: number) => this._sizeCache?.[i].width || 100 // default\n    const totalWidth = this._mainMenuItems.reduce((totalWidth, _, i) => getWidth(i) + totalWidth, 0)\n    let menuItems: MenuItem[]\n    if (totalWidth > parentWidth) {\n      // overflow\n      const moreItemWidth = getWidth(this._sizeCache.length - 1) // last item = 'More' item\n      let spaceLeft = parentWidth - moreItemWidth // show \"More\" button\n      let i = 0\n      for (; i < this._sizeCache.length; ++i) {\n        spaceLeft -= getWidth(i)\n        if (spaceLeft < 0) break\n      }\n      menuItems = [\n        ...this._mainMenuItems.slice(0, i),\n        {\n          label: 'More', // TODO add translation\n          items: this._mainMenuItems.slice(i),\n        },\n      ]\n    } else {\n      // no overflow\n      menuItems = this._mainMenuItems\n    }\n\n    // set menuitems outside of lifecycle\n    setTimeout(() => (this.menuItems = menuItems), 0)\n  }\n}\n","<p-menubar #menubar [model]=\"menuItems\" styleClass=\"layout-menubar fadeinup\"></p-menubar>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core'\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms'\nimport { SupportTicket } from '../../../model/support-ticket'\n\n@Component({\n  selector: 'ocx-support-ticket',\n  templateUrl: './support-ticket.component.html',\n  styleUrls: ['./support-ticket.component.scss'],\n})\nexport class SupportTicketComponent implements OnInit {\n  public formGroup!: FormGroup\n\n  @Input() public displayDialog = true\n  @Output() public displayDialogChange = new EventEmitter<boolean>()\n\n  @Output()\n  submitTicket: EventEmitter<SupportTicket> = new EventEmitter()\n\n  constructor(private fb: FormBuilder) {}\n\n  ngOnInit(): void {\n    this.formGroup = this.fb.group({\n      title: ['', Validators.required],\n      description: ['', Validators.required],\n    })\n  }\n\n  close(): void {\n    this.displayDialogChange.emit(false)\n  }\n\n  submit(): void {\n    this.submitTicket.emit(this.formGroup.value)\n  }\n}\n","<p-dialog\n  header=\"Create Support Ticket\"\n  [contentStyle]=\"{ overflow: 'visible' }\"\n  [style]=\"{ width: '400px', 'max-height': '300px' }\"\n  [(visible)]=\"displayDialog\"\n  (onHide)=\"close()\"\n>\n  <form [formGroup]=\"formGroup\">\n    <div class=\"p-grid support-ticket-container\">\n      <div class=\"p-col-12\">\n        <label for=\"ticket-title\">Title</label>\n        <input id=\"ticket-title\" formControlName=\"title\" pInputText />\n      </div>\n      <div class=\"p-col-12\">\n        <label for=\"ticket-description\">Description</label>\n        <textarea id=\"ticket-description\" formControlName=\"description\" pInputTextarea rows=\"10\"> </textarea>\n      </div>\n      <div class=\"p-col-12\" style=\"float: right\">\n        <button pButton label=\"Submit\" (click)=\"submit()\" [disabled]=\"formGroup.invalid\"></button>\n      </div>\n    </div>\n  </form>\n</p-dialog>\n","import { AfterViewInit, Component, HostListener, Input, OnDestroy, OnInit, Renderer2 } from '@angular/core'\nimport { HttpClient, HttpResponse } from '@angular/common/http'\nimport { NavigationEnd, Router } from '@angular/router'\nimport { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy'\nimport { catchError, combineLatest, filter, first, map, mergeMap, Observable, of, withLatestFrom } from 'rxjs'\nimport { MenuItem, MessageService, PrimeNGConfig } from 'primeng/api'\nimport { DialogService } from 'primeng/dynamicdialog'\nimport { AppStateService, UserService, ThemeService, PortalMessageService } from '@onecx/angular-integration-interface'\nimport { SupportTicketApiService } from './../../../services/support-ticket-api.service'\nimport { PortalUIService } from '../../../services/portal-ui.service'\nimport { SupportTicket } from '../../../model/support-ticket'\nimport { HelpData } from '../../../model/help-data'\nimport { NoHelpItemComponent } from '../no-help-item/no-help-item.component'\nimport { HelpPageAPIService } from '../../../services/help-api-service'\n\n@Component({\n  selector: 'ocx-portal-viewport',\n  templateUrl: './portal-viewport.component.html',\n  styleUrls: ['./portal-viewport.component.scss'],\n  providers: [DialogService],\n})\n@UntilDestroy()\nexport class PortalViewportComponent implements OnInit, AfterViewInit, OnDestroy {\n  @Input()\n  showProfileInSidebar = true\n\n  @Input()\n  enableBreadcrumbs = false\n\n  @Input()\n  fullPortalLayout = true\n\n  activeTopbarItem: string | undefined\n  inlineProfileActive = false\n  menuActive = true\n  supportTicketDisplayed = false\n  helpPageEditorDisplayed = false\n\n  removeDocumentClickListener: (() => void) | undefined\n\n  topbarTheme = 'var'\n  colorScheme: 'auto' | 'light' | 'dark' = 'light'\n  layoutMode: 'auto' | 'light' | 'dark' = 'light'\n  menuMode: 'horizontal' | 'static' | 'overlay' | 'slim' | 'slimplus' = 'static'\n  inputStyle = 'outline'\n  ripple = true\n  isMobile = false\n\n  globalErrMsg: string | undefined\n  portalHomeMenuItem$: Observable<MenuItem> | undefined\n  showMenuButtonTitle: string | undefined\n  hideMenuButtonTitle: string | undefined\n  pageName$: Observable<string> | undefined\n  helpArticleId$: Observable<string> | undefined\n  applicationId$: Observable<string> | undefined\n  helpDataItem$: Observable<HelpData> | undefined\n\n  constructor(\n    private renderer: Renderer2,\n    private router: Router,\n    private primengConfig: PrimeNGConfig,\n    private portalUIConfig: PortalUIService,\n    private appStateService: AppStateService,\n    private themeService: ThemeService,\n    private messageService: MessageService,\n    private supportTicketApiService: SupportTicketApiService,\n    private helpDataService: HelpPageAPIService,\n    private dialogService: DialogService,\n    private userService: UserService,\n    private portalMessageService: PortalMessageService,\n    private httpClient: HttpClient\n  ) {\n    this.portalMessageService.message$.subscribe((message) => this.messageService.add(message))\n    this.hideMenuButtonTitle = this.portalUIConfig.getTranslation('hideMenuButton')\n    this.showMenuButtonTitle = this.portalUIConfig.getTranslation('showMenuButton')\n\n    this.portalHomeMenuItem$ = this.appStateService.currentPortal$.asObservable().pipe(\n      map((portal) => ({\n        url: portal.homePage,\n        label: 'Home',\n      }))\n    )\n\n    this.themeService.currentTheme$\n      .pipe(\n        first(),\n        mergeMap((theme) => {\n          return theme.faviconUrl\n            ? this.httpClient\n                .get(theme.faviconUrl, { responseType: 'blob' })\n                .pipe(map((blob) => URL.createObjectURL(blob)))\n            : of('')\n        })\n      )\n      .subscribe((url) => {\n        let link = document.querySelector(\"link[rel~='icon']\") as any\n        if (!link) {\n          link = document.createElement('link')\n          link.rel = 'icon'\n          document.head.appendChild(link)\n        }\n        link.onload = () => {\n          URL.revokeObjectURL(url)\n        }\n        link.href = url\n      })\n\n    this.pageName$ = this.appStateService.currentPage$.pipe(map((page) => page?.pageName ?? ''))\n    this.helpArticleId$ = combineLatest([\n      this.appStateService.currentPage$.asObservable(),\n      this.router.events.pipe(filter((event) => event instanceof NavigationEnd)),\n    ]).pipe(\n      map(\n        ([page, routerEvent]) =>\n          page?.helpArticleId ??\n          page?.pageName ??\n          (routerEvent instanceof NavigationEnd ? routerEvent.url.split('#')[0] : '')\n      )\n    )\n\n    this.applicationId$ = combineLatest([\n      this.appStateService.currentPage$.asObservable(),\n      this.appStateService.currentMfe$.asObservable(),\n    ]).pipe(map(([page, mfe]) => page?.applicationId ?? mfe.displayName ?? ''))\n\n    this.helpDataItem$ = combineLatest([this.applicationId$, this.helpArticleId$]).pipe(\n      mergeMap(([applicationId, helpArticleId]) => {\n        if (applicationId && helpArticleId) return this.loadHelpArticle(applicationId, helpArticleId)\n        return of()\n      }),\n      catchError(() => {\n        console.log(`Failed to load help article`)\n        return of()\n      })\n    )\n\n    this.userService.profile$.pipe(untilDestroyed(this)).subscribe((profile) => {\n      this.menuMode =\n        (profile?.accountSettings?.layoutAndThemeSettings?.menuMode?.toLowerCase() as\n          | typeof this.menuMode\n          | undefined) || this.menuMode\n\n      this.colorScheme =\n        (profile?.accountSettings?.layoutAndThemeSettings?.colorScheme?.toLowerCase() as\n          | typeof this.colorScheme\n          | undefined) || this.colorScheme\n    })\n  }\n\n  get menuButtonTitle(): string | undefined {\n    return this.menuActive ? this.hideMenuButtonTitle : this.showMenuButtonTitle\n  }\n\n  ngOnInit() {\n    this.primengConfig.ripple = true\n\n    this.appStateService.globalError$\n      .pipe(untilDestroyed(this))\n      .pipe(filter((i) => i !== undefined))\n      .subscribe((err) => {\n        this.globalErrMsg = err\n      })\n\n    this.onResize()\n  }\n\n  ngAfterViewInit() {\n    // hides the horizontal submenus or top menu if outside is clicked\n    this.removeDocumentClickListener = this.renderer.listen('body', 'click', () => {\n      this.activeTopbarItem = undefined\n      if (this.isMobile) this.menuActive = false\n    })\n  }\n\n  ngOnDestroy() {\n    this.removeDocumentClickListener?.()\n  }\n\n  @HostListener('window:resize')\n  onResize() {\n    const mobileBreakpointVar = getComputedStyle(document.documentElement).getPropertyValue('--mobile-break-point')\n    const isMobile = window.matchMedia(`(max-width: ${mobileBreakpointVar})`).matches\n    // auto show sidebar when changing to desktop, hide when changing to mobile\n    if (isMobile !== this.isMobile) this.menuActive = !isMobile\n    this.isMobile = isMobile\n  }\n\n  onMenuButtonClick(event: MouseEvent) {\n    this.activeTopbarItem = undefined\n    this.menuActive = !this.menuActive\n    event.preventDefault()\n    event.stopPropagation()\n  }\n\n  onInlineProfileClick(event: UIEvent) {\n    this.inlineProfileActive = !this.inlineProfileActive\n    event.preventDefault()\n  }\n\n  onTopbarItemClick(event: UIEvent, item: string) {\n    if (this.isMobile) this.menuActive = false\n\n    if (this.activeTopbarItem === item) {\n      this.activeTopbarItem = undefined\n    } else {\n      this.activeTopbarItem = item\n    }\n\n    event.preventDefault()\n    event.stopPropagation()\n  }\n\n  onTopbarSubItemClick(event: UIEvent) {\n    event.preventDefault()\n    event.stopPropagation()\n  }\n  onSupportTicketClick() {\n    this.supportTicketDisplayed = true\n  }\n  onSubmitTicket(ticket: SupportTicket) {\n    this.pageName$\n      ?.pipe(\n        first(),\n        mergeMap((pageName) => this.supportTicketApiService.createSupportTicket(ticket, pageName))\n      )\n      .subscribe({\n        next: () => {\n          this.portalMessageService.success({\n            summaryKey: 'OCX_PORTAL_VIEWPORT.SUCCESS',\n            detailKey: 'OCX_PORTAL_VIEWPORT.TICKET_SUCCESS',\n          })\n        },\n        error: () =>\n          this.portalMessageService.error({\n            summaryKey: 'OCX_PORTAL_VIEWPORT.ERROR',\n            detailKey: 'OCX_PORTAL_VIEWPORT.TICKET_ERROR',\n          }),\n      })\n  }\n  isHorizontalMenuMode() {\n    return this.menuMode === 'horizontal' && !this.isMobile\n  }\n\n  isStaticalMenuVisible() {\n    return this.menuActive && !this.isHorizontalMenuMode()\n  }\n\n  isHorizontalMenuVisible() {\n    return this.isHorizontalMenuMode()\n  }\n\n  public openHelpPageEditor(): void {\n    combineLatest([this.helpArticleId$ ?? of(), this.applicationId$ ?? of(), this.helpDataItem$ ?? of()])\n      .pipe(first())\n      .subscribe(([helpArticleId, applicationId, helpDataItem]) => {\n        if (helpArticleId && applicationId) {\n          if (!helpDataItem) {\n            helpDataItem = { appId: applicationId, helpItemId: helpArticleId }\n          }\n          this.helpPageEditorDisplayed = true\n        } else {\n          this.portalMessageService.error({\n            summaryKey: 'OCX_PORTAL_VIEWPORT.OPEN_HELP_PAGE_EDITOR_ERROR',\n          })\n        }\n      })\n  }\n\n  public openHelpPage(event: any) {\n    this.helpDataItem$\n      ?.pipe(withLatestFrom(this.helpArticleId$ ?? of()), first())\n      .subscribe(([helpDataItem, helpArticleId]) => {\n        if (helpDataItem && helpDataItem.id) {\n          const url = helpDataItem.resourceUrl\n          if (url) {\n            console.log(`navigate to help page: ${url}`)\n            try {\n              window.open(new URL(url), '_blank')?.focus\n            } catch (e) {\n              console.log(`Error constructing help page URL`, e)\n              this.portalMessageService.error({\n                summaryKey: 'OCX_PORTAL_VIEWPORT.OPEN_HELP_PAGE_ERROR',\n              })\n            }\n          }\n        } else {\n          this.dialogService.open(NoHelpItemComponent, {\n            header: 'OCX_PORTAL_VIEWPORT.OPEN_HELP_PAGE_DIALOG_HEADER',\n            width: '400px',\n            data: {\n              helpArticleId: helpArticleId,\n            },\n          })\n        }\n      })\n    event.preventDefault()\n  }\n  private loadHelpArticle(appId: string, helpItemId: string) {\n    return this.helpDataService.getHelpDataItem(appId, helpItemId)\n  }\n  public updateHelpArticle(helpItem: HelpData) {\n    this.applicationId$\n      ?.pipe(\n        first(),\n        mergeMap((applicationId) =>\n          this.helpDataService\n            .saveHelpPage(applicationId, helpItem)\n            .pipe(map((res): [string, HttpResponse<any>] => [applicationId, res]))\n        )\n      )\n      .subscribe({\n        next: ([applicationId, res]) => {\n          if (applicationId && helpItem) {\n            console.log(`Help item saved: ${res.status}`)\n            this.helpPageEditorDisplayed = false\n\n            this.portalMessageService.info({\n              summaryKey: 'OCX_PORTAL_VIEWPORT.UPDATE_HELP_ARTICLE_INFO',\n            })\n            if (helpItem.helpItemId && applicationId) {\n              this.loadHelpArticle(applicationId, helpItem.helpItemId)\n            }\n            this.helpPageEditorDisplayed = false\n          }\n        },\n        error: (error) => {\n          console.log(`Could not save help item`)\n          this.portalMessageService.error({\n            summaryKey: 'OCX_PORTAL_VIEWPORT.UPDATE_HELP_ARTICLE_ERROR',\n            detailKey: `Server error: ${error.status}`,\n          })\n          this.helpPageEditorDisplayed = false\n        },\n      })\n  }\n}\n","<div\n  *ngIf=\"!globalErrMsg; else globalError\"\n  class=\"layout-wrapper\"\n  [ngClass]=\"{\n    'p-input-filled': inputStyle === 'filled', \n    'p-ripple-disabled': !ripple,\n    'layout-menu-active': isStaticalMenuVisible(),\n    'layout-menu-button-hidden': isHorizontalMenuMode()\n  }\"\n  [class]=\"'layout-menu-' + colorScheme + ' layout-topbar-' + topbarTheme\"\n>\n  <ocx-header\n    [menuButtonTitle]=\"menuButtonTitle\"\n    [activeTopbarItem]=\"activeTopbarItem\"\n    [disableBreadcrumbs]=\"!enableBreadcrumbs\"\n    [homeNavTitle]=\"(portalHomeMenuItem$ | async)?.label!\"\n    [homeNavUrl]=\"(portalHomeMenuItem$ | async)?.url!\"\n    [fullPortalLayout]=\"fullPortalLayout\"\n    (menuButtonClick)=\"onMenuButtonClick($event)\"\n    (topbarItemClick)=\"onTopbarItemClick($event.event, $event.arg)\"\n    (openSupportTicket)=\"onSupportTicketClick()\"\n    (openHelpPage)=\"openHelpPage($event)\"\n    (openHelpPageEditor)=\"openHelpPageEditor()\"\n  >\n    <ocx-portal-menu-horizontal *ngIf=\"isHorizontalMenuVisible()\"></ocx-portal-menu-horizontal>\n  </ocx-header>\n\n  <p-toast></p-toast>\n\n  <!-- Vertical = Static - hidden on smaller screens or horizontal menu -->\n  <div id=\"ocx_vertical_menu_wrapper\" class=\"menu-wrapper\">\n    <div class=\"layout-menu-container\" *ngIf=\"isStaticalMenuVisible()\">\n      <ocx-inline-profile\n        *ngIf=\"showProfileInSidebar\"\n        [inlineMenuActive]=\"inlineProfileActive\"\n        (inlineMenuClick)=\"onInlineProfileClick($event)\"\n      ></ocx-inline-profile>\n      <ocx-portal-menu></ocx-portal-menu>\n    </div>\n  </div>\n\n  <div class=\"layout-main\">\n    <div class=\"layout-content relative\">\n      <ocx-announcement-banner></ocx-announcement-banner>\n\n      <ng-content></ng-content>\n      <router-outlet></router-outlet>\n    </div>\n\n    <ocx-footer></ocx-footer>\n  </div>\n\n  <div *ngIf=\"menuActive || !!activeTopbarItem\" class=\"layout-mask modal-in\"></div>\n</div>\n<ng-template #globalError>\n  <ocx-error [errCode]=\"globalErrMsg\"></ocx-error>\n</ng-template>\n<ocx-support-ticket\n  [(displayDialog)]=\"supportTicketDisplayed\"\n  (submitTicket)=\"onSubmitTicket($event)\"\n></ocx-support-ticket>\n<ocx-help-item-editor\n  [(displayDialog)]=\"helpPageEditorDisplayed\"\n  [helpItem]=\"(helpDataItem$ | async) ?? {}\"\n  (saveHelpItem)=\"updateHelpArticle($event)\"\n></ocx-help-item-editor>\n","import { isObservable, Observable } from 'rxjs'\n\nimport { forwardRef } from '@angular/core'\n\nexport function provideParent(component: any, parentType?: any) {\n  return {\n    provide: parentType || PortalSearchPage,\n    useExisting: forwardRef(() => component),\n  }\n}\n\nexport abstract class PortalSearchPage<T> {\n  searchInProgress = false\n  public results: T[] = []\n\n  abstract search(mode: 'basic' | 'advanced'): T[] | Observable<T[]>\n  abstract reset(mode: 'basic' | 'advanced'): void\n\n  onSearch(mode: 'basic' | 'advanced') {\n    this.searchInProgress = true\n    const resultIntermediate = this.search(mode)\n    if (isObservable(resultIntermediate)) {\n      const obs$ = resultIntermediate.subscribe((data) => {\n        this.results = data\n        this.searchInProgress = false\n        obs$.unsubscribe()\n      })\n    } else {\n      this.results = resultIntermediate\n      this.searchInProgress = false\n    }\n  }\n\n  onReset(mode: 'basic' | 'advanced') {\n    this.results = []\n    this.reset(mode)\n  }\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core'\ninterface SearchCriteriaTemplate {\n  name: string\n  value: string\n}\n@Component({\n  selector: 'ocx-criteria-template',\n  templateUrl: './criteria-template.component.html',\n  styleUrls: ['./criteria-template.component.scss'],\n})\nexport class CriteriaTemplateComponent {\n  @Input() searchId!: string\n  @Output() readonly templateSelected: EventEmitter<SearchCriteriaTemplate> = new EventEmitter<SearchCriteriaTemplate>()\n\n  protected selectedTemplate: SearchCriteriaTemplate | undefined\n  protected templates: SearchCriteriaTemplate[] = []\n}\n","<div>\n  <p-dropdown\n    [options]=\"templates\"\n    [(ngModel)]=\"selectedTemplate\"\n    ngDefaultControl\n    [editable]=\"false\"\n    appendTo=\"body\"\n    optionLabel=\"name\"\n    name=\"searchCriteriaTemplateDropdown\"\n    [filter]=\"true\"\n    filterBy=\"name\"\n    placeholder=\"Select saved filter\"\n    [showClear]=\"true\"\n  ></p-dropdown>\n  <span class=\"c-template-modified-indicator\"></span>\n</div>\n","import { Component, EventEmitter, Inject, Input, OnInit, Optional, Output } from '@angular/core'\nimport { BreadcrumbService } from '@onecx/angular-accelerator'\nimport { Action, PageHeaderComponent } from '@onecx/angular-accelerator'\nimport { PortalSearchPage } from './search-page'\nimport { TranslateService } from '@ngx-translate/core'\nimport { AppStateService } from '@onecx/angular-integration-interface'\nimport { UserService } from '@onecx/angular-integration-interface'\n\n/**\n * @deprecated Will be replaced by ocx-search-header\n */\n@Component({\n  selector: 'ocx-search-criteria',\n  templateUrl: './search-criteria.component.html',\n  styleUrls: ['./search-criteria.component.scss'],\n})\nexport class SearchCriteriaComponent extends PageHeaderComponent implements OnInit {\n  /** Whether to show advanced toggle button or not*/\n  @Input() disableAdvancedToggle = false\n\n  /**\n   * Unique identifier of this search.\n   * It is used for search template fetching, preferences and other usecases.\n   * Recommended structure is `app_object_search` e.g. `ibt_order_search` */\n  @Input() searchId?: string\n\n  private _criteriaTemplateEnabled = false\n\n  /**\n   * Whether criteria template feature is enabled or not. Data is fetch based on 'searchId' attribute. */\n  @Input()\n  get criteriaTemplate(): boolean {\n    return this._criteriaTemplateEnabled\n  }\n  set criteriaTemplate(value: boolean) {\n    if (!this.searchId) {\n      throw new Error('Search template feature requires `searchId` parameter to be set')\n    }\n    this._criteriaTemplateEnabled = value\n  }\n\n  /** Event emitted when the search button has been pressed. */\n  @Output() readonly search: EventEmitter<'basic' | 'advanced'> = new EventEmitter<'basic' | 'advanced'>()\n\n  /** Event emitted when the reset button has been pressed. */\n  // eslint-disable-next-line @angular-eslint/no-output-native\n  @Output() readonly reset: EventEmitter<'basic' | 'advanced'> = new EventEmitter<'basic' | 'advanced'>()\n\n  /** Event emitted when the adnvanced view has been toggled. */\n  @Output() readonly advancedViewToggle = new EventEmitter()\n\n  protected advancedSearchActive = false\n\n  // in SIMPLE mode ... enable switching to ADVANCED\n  private enableAdvancedSearch: Action = {\n    label: 'Advanced',\n    title: 'Switch to Advanced Search',\n    show: 'always',\n    actionCallback: () => {\n      this.activateAdvancedSearch(true)\n    },\n  }\n  // in ADVANCED mode ... enable switching to SIMPLE\n  private enableSimpleSearch: Action = {\n    label: 'Simple',\n    title: 'Switch to Simple Search',\n    show: 'always',\n    actionCallback: () => {\n      this.activateAdvancedSearch(false)\n    },\n  }\n\n  constructor(\n    breadcrumbs: BreadcrumbService,\n    translateService: TranslateService,\n    appStateService: AppStateService,\n    userService: UserService,\n    @Inject(PortalSearchPage) @Optional() private searchPage?: PortalSearchPage<unknown>\n  ) {\n    super(breadcrumbs, translateService, appStateService, userService)\n  }\n\n  override ngOnInit(): void {\n    if (!this.actions) {\n      this.actions = []\n    }\n    if (!this.disableAdvancedToggle) {\n      this.actions.push(this.enableAdvancedSearch)\n    }\n    super.ngOnInit()\n  }\n\n  protected switchCriteriaBlock($event: { checked: boolean }) {\n    this.advancedSearchActive = $event.checked\n    this.advancedViewToggle.emit()\n  }\n  protected emitSearchEvent() {\n    this.search.emit(this.advancedSearchActive ? 'advanced' : 'basic')\n    if (this.searchPage) {\n      this.searchPage.onSearch(this.advancedSearchActive ? 'advanced' : 'basic')\n    }\n  }\n  protected emitResetEvent() {\n    this.reset.emit(this.advancedSearchActive ? 'advanced' : 'basic')\n    if (this.searchPage) {\n      this.searchPage.onReset(this.advancedSearchActive ? 'advanced' : 'basic')\n    }\n  }\n\n  public activateAdvancedSearch(advanced: boolean) {\n    this.advancedSearchActive = advanced\n    const actions = [...(this.actions || [])]\n    const index = actions.findIndex(\n      (a) => (advanced && a === this.enableAdvancedSearch) || (!advanced && a === this.enableSimpleSearch)\n    )\n    if (index >= 0) {\n      actions[index] = advanced ? this.enableSimpleSearch : this.enableAdvancedSearch\n    } else {\n      actions.push(advanced ? this.enableSimpleSearch : this.enableAdvancedSearch)\n    }\n    this.actions = actions\n  }\n}\n","<div class=\"onecx-search-criteria\">\n  <ocx-page-header\n    [header]=\"header\"\n    [actions]=\"actions\"\n    [subheader]=\"subheader\"\n    [manualBreadcrumbs]=\"manualBreadcrumbs\"\n  >\n    <div toolbarItems class=\"toolbar-items-wrap flex gap-2 align-items-center\">\n      <ocx-criteria-template class=\"ocx-criteria-template\" *ngIf=\"criteriaTemplate\"></ocx-criteria-template>\n      <ng-content select=\"[toolbarItems]\"> </ng-content>\n    </div>\n\n    <div class=\"flex flex-column md:flex-row md:gap-4 md:align-items-center row-gap-3\">\n      <ng-container *ngIf=\"!advancedSearchActive || disableAdvancedToggle\">\n        <ng-content select=\"[simpleCriteria]\"> </ng-content>\n        <div class=\"flex justify-content-start gap-2\">\n          <button\n            id=\"ocx-search-button\"\n            pButton\n            icon=\"pi pi-search\"\n            class=\"search-button\"\n            type=\"button\"\n            label=\"Search\"\n            (click)=\"emitSearchEvent()\"\n          ></button>\n        </div>\n      </ng-container>\n      <ng-container *ngIf=\"advancedSearchActive && !disableAdvancedToggle\">\n        <ng-content select=\"[advancedCriteria]\"> </ng-content>\n        <div class=\"flex flex-row justify-content-start gap-2\">\n          <button\n            id=\"ocx-search-button-advanced\"\n            pButton\n            icon=\"pi pi-search\"\n            type=\"submit\"\n            label=\"Search\"\n            title=\"Trigger\"\n            (click)=\"emitSearchEvent()\"\n          ></button>\n          <button\n            id=\"ocx-reset-button\"\n            *ngIf=\"advancedSearchActive && !disableAdvancedToggle\"\n            class=\"p-button\"\n            pButton\n            icon=\"pi pi-eraser\"\n            type=\"button\"\n            label=\"Reset\"\n            (click)=\"emitResetEvent()\"\n          ></button>\n        </div>\n      </ng-container>\n    </div>\n  </ocx-page-header>\n</div>\n","import { Component, OnInit } from '@angular/core'\nimport { DynamicDialogRef } from 'primeng/dynamicdialog'\nimport { DynamicDialogConfig } from 'primeng/dynamicdialog'\n\n@Component({\n  selector: 'ocx-delete-dialog',\n  templateUrl: './delete-dialog.component.html',\n  styleUrls: ['./delete-dialog.component.scss'],\n})\nexport class DeleteDialogComponent implements OnInit {\n  yesDelete = 'Delete'\n  cancelDelete = 'Cancel'\n\n  constructor(public ref: DynamicDialogRef, public config: DynamicDialogConfig) {}\n\n  ngOnInit() {\n    this.yesDelete = this.config.data.yesDelete\n    this.cancelDelete = this.config.data.cancelDelete\n  }\n\n  exitDeleteWindow(deleteConfirmed: boolean) {\n    this.ref.close(deleteConfirmed)\n  }\n}\n","<div class=\"div-delete-btn\">\n  <button\n    type=\"button\"\n    pButton\n    icon=\"pi pi-check\"\n    class=\"deleteBtn\"\n    (click)=\"exitDeleteWindow(true)\"\n    label=\"{{ this.yesDelete }}\"\n  ></button>\n  <button\n    type=\"button\"\n    class=\"deleteBtn\"\n    pButton\n    icon=\"pi pi-times\"\n    (click)=\"exitDeleteWindow(false)\"\n    label=\"{{ this.cancelDelete }}\"\n  ></button>\n</div>\n","import { ColumnViewTemplate } from '../../../../model/column-view-template'\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core'\nimport { TranslateService } from '@ngx-translate/core'\nimport { DropdownChangeEvent } from 'primeng/dropdown'\n@Component({\n  templateUrl: './view-template-picker.component.html',\n  selector: 'ocx-data-view-template-picker',\n  styleUrls: ['./view-template-picker.component.scss'],\n})\nexport class ViewTemplatePickerComponent implements OnInit {\n  @Input() templates: ColumnViewTemplate[] = []\n  @Input() placeholder = ''\n  @Output() templateChanged: EventEmitter<{ activeCols: string[]; inactiveCols: string[] }> = new EventEmitter()\n  @Output() templateReset: EventEmitter<void> = new EventEmitter()\n  public labels: { label: string; value: string }[] = []\n  public value: null | string = null\n  public placeholderText = ''\n  constructor(private translate: TranslateService) {}\n  ngOnInit() {\n    if (this.templates.length > 0) {\n      this.templates.forEach((template) => {\n        this.labels.push({ label: this.translate.instant(template.label), value: template.label })\n      })\n    }\n    if (this.placeholder) {\n      this.placeholderText = this.translate.instant(this.placeholder)\n    } else {\n      this.placeholderText = 'Template'\n    }\n  }\n\n  handleTemplateChange(event: DropdownChangeEvent) {\n    const pickedTemplate = this.templates.filter((template) => template.label === event.value).at(0)\n    if (pickedTemplate) {\n      const activeColumnIds = pickedTemplate.template\n        .filter((c) => {\n          return c.active === true\n        })\n        .map((a) => {\n          return a.field\n        })\n\n      const inactiveColumnIds = pickedTemplate.template\n        .filter((c) => {\n          return c.active === false\n        })\n        .map((a) => {\n          return a.field\n        })\n\n      this.templateChanged.emit({\n        activeCols: activeColumnIds,\n        inactiveCols: inactiveColumnIds,\n      })\n    } else {\n      this.templateReset.emit()\n    }\n  }\n\n  handleTemplateReset() {\n    this.templateReset.emit()\n  }\n\n  reset() {\n    this.value = null\n  }\n}\n","<p-dropdown\n  *ngIf=\"labels.length > 0\"\n  (onClear)=\"handleTemplateReset()\"\n  (onChange)=\"handleTemplateChange($event)\"\n  [options]=\"labels\"\n  [placeholder]=\"placeholderText\"\n  [showClear]=\"true\"\n  [(ngModel)]=\"value\"\n></p-dropdown>\n","import { Component, OnInit } from '@angular/core'\nimport { DialogService, DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog'\n\n@Component({\n  templateUrl: './column-toggler.component.html',\n  providers: [DialogService],\n})\nexport class ColumnTogglerComponent implements OnInit {\n  sourceLabel = 'OCX_CUSTOM_GROUP_COLUMN_SELECTOR.ACTIVE_COLUMNS_LABEL'\n  targetLabel = 'OCX_CUSTOM_GROUP_COLUMN_SELECTOR.INACTIVE_COLUMNS_LABEL'\n  saveButtonLabel = 'OCX_CUSTOM_GROUP_COLUMN_SELECTOR.SAVE_BUTTON_LABEL'\n\n  allColumns: { field: string; header: string; active: boolean; translationPrefix?: string }[] = []\n  activeColumns: { field: string; header: string; active: boolean; translationPrefix?: string }[] = []\n  inactiveColumns: { field: string; header: string; active: boolean; translationPrefix?: string }[] = []\n\n  activeCols: string[] = []\n  inactiveCols: string[] = []\n\n  constructor(private ref: DynamicDialogRef, private config: DynamicDialogConfig) {}\n\n  submitResults(\n    colActive: { field: string; header: string; active: boolean; translationPrefix?: string }[],\n    colInactive: { field: string; header: string; active: boolean; translationPrefix?: string }[]\n  ) {\n    this.allColumns = colActive.concat(colInactive)\n    this.ref.close(this.allColumns)\n  }\n\n  ngOnInit(): void {\n    this.allColumns = this.config.data.colDef\n    this.activeCols = this.config.data.activeColIds\n    this.inactiveCols = this.config.data.inactiveColIds\n\n    if (this.activeCols.length > 0) {\n      this.loadColumns()\n    } else {\n      this.initColumns()\n    }\n\n    if (this.config.data.inactiveColumnHeader) {\n      this.targetLabel = this.config.data.inactiveColumnHeader\n    }\n    if (this.config.data.activeColumnHeader) {\n      this.sourceLabel = this.config.data.activeColumnHeader\n    }\n    if (this.config.data.saveButtonLabel) {\n      this.saveButtonLabel = this.config.data.saveButtonLabel\n    }\n  }\n\n  loadColumns(): void {\n    if (this.activeCols.length > 0) {\n      this.activeColumns = this.activeCols.map((active) => this.allColumns.find((col) => col.field === active)) as {\n        field: string\n        header: string\n        active: boolean\n        translationPrefix?: string\n      }[]\n\n      this.inactiveColumns = this.inactiveCols.map((active) => this.allColumns.find((col) => col.field === active)) as {\n        field: string\n        header: string\n        active: boolean\n        translationPrefix?: string\n      }[]\n    }\n  }\n\n  initColumns(): void {\n    this.activeColumns = this.allColumns.filter((a: { active: boolean }) => {\n      return a.active === true\n    })\n    this.inactiveColumns = this.allColumns.filter((a: { active: boolean }) => {\n      return a.active === false\n    })\n  }\n\n  setActive(event: { field: string; header: string; active: boolean; translationPrefix?: string }[]): void {\n    event.forEach((element) => {\n      element.active = true\n    })\n  }\n\n  setInactive(event: { field: string; header: string; active: boolean; translationPrefix?: string }[]): void {\n    event.forEach((element) => {\n      element.active = false\n    })\n  }\n  sanitizeToggleTranslation(header: string, prefix?: string) {\n    if (prefix) {\n      return (prefix + '.' + header).replace('..', '.')\n    } else {\n      return ('PORTAL_ITEM.' + header).replace('..', '.')\n    }\n  }\n}\n","<p-pickList\n  [source]=\"activeColumns\"\n  [target]=\"inactiveColumns\"\n  [sourceHeader]=\"sourceLabel | translate\"\n  [targetHeader]=\"targetLabel | translate\"\n  [dragdrop]=\"true\"\n  [responsive]=\"false\"\n  [sourceStyle]=\"{ height: '300px' }\"\n  [targetStyle]=\"{ height: '300px' }\"\n  [upButtonAriaLabel]=\"('OCX_CUSTOM_GROUP_COLUMN_SELECTOR.ARIA_LABELS.UP' | translate)\"\n  [topButtonAriaLabel]=\"('OCX_CUSTOM_GROUP_COLUMN_SELECTOR.ARIA_LABELS.TOP' | translate)\"\n  [downButtonAriaLabel]=\"('OCX_CUSTOM_GROUP_COLUMN_SELECTOR.ARIA_LABELS.DOWN' | translate)\"\n  [bottomButtonAriaLabel]=\"('OCX_CUSTOM_GROUP_COLUMN_SELECTOR.ARIA_LABELS.BOTTOM' | translate)\"\n  [rightButtonAriaLabel]=\"('OCX_CUSTOM_GROUP_COLUMN_SELECTOR.ARIA_LABELS.RIGHT' | translate)\"\n  [allRightButtonAriaLabel]=\"('OCX_CUSTOM_GROUP_COLUMN_SELECTOR.ARIA_LABELS.ALL_RIGHT' | translate)\"\n  [leftButtonAriaLabel]=\"('OCX_CUSTOM_GROUP_COLUMN_SELECTOR.ARIA_LABELS.LEFT' | translate)\"\n  [allLeftButtonAriaLabel]=\"('OCX_CUSTOM_GROUP_COLUMN_SELECTOR.ARIA_LABELS.ALL_LEFT' | translate)\"\n  (onMoveToTarget)=\"setInactive($event.items)\"\n  (onMoveToSource)=\"setActive($event.items)\"\n  (onMoveAllToTarget)=\"setInactive($event.items)\"\n  (onMoveAllToSource)=\"setActive($event.items)\"\n>\n  <ng-template let-column pTemplate=\"item\">\n    <div>{{ sanitizeToggleTranslation(column.header, column.translationPrefix) | translate}}</div>\n  </ng-template>\n</p-pickList>\n<p-footer class=\"p-dialog-footer p-4 flex justify-content-end\">\n  <button\n    pButton\n    type=\"submit\"\n    [label]=\"saveButtonLabel | translate\"\n    (click)=\"submitResults(activeColumns, inactiveColumns)\"\n  ></button>\n</p-footer>\n","import { Component, EventEmitter, Input, OnInit, OnChanges, Output, ViewChild, ElementRef } from '@angular/core'\nimport { DialogService, DynamicDialogRef } from 'primeng/dynamicdialog'\nimport { TranslateService } from '@ngx-translate/core'\nimport { Column } from '../../../model/column'\nimport { ColumnViewTemplate } from '../../../model/column-view-template'\nimport { ColumnTogglerComponent } from './column-toggler-component/column-toggler.component'\nimport { ViewTemplatePickerComponent } from './view-template-picker/view-template-picker.component'\nimport { PrimeIcons } from 'primeng/api'\nimport { PrimeIcon } from '@onecx/angular-accelerator'\nimport { DropdownChangeEvent } from 'primeng/dropdown'\nimport { ToggleButtonChangeEvent } from 'primeng/togglebutton'\n\ninterface ViewingModes {\n  icon: PrimeIcon\n  mode: string\n  title?: string\n  titleKey?: string\n}\n\ntype ViewMode = {\n  id: string\n  icon: PrimeIcon\n  mode: string\n  labelKey: string\n  tooltipKey: string\n}\n\nconst ALL_VIEW_MODES: ViewMode[] = [\n  {\n    id: 'ocx-data-layout-selection-list',\n    icon: PrimeIcons.LIST,\n    mode: 'list',\n    tooltipKey: 'OCX_DATA_VIEW_CONTROLS.LAYOUT.LIST',\n    labelKey: 'OCX_DATA_VIEW_CONTROLS.LAYOUT.LIST',\n  },\n  {\n    id: 'ocx-data-layout-selection-grid',\n    icon: PrimeIcons.TH_LARGE,\n    mode: 'grid',\n    tooltipKey: 'OCX_DATA_VIEW_CONTROLS.LAYOUT.GRID',\n    labelKey: 'OCX_DATA_VIEW_CONTROLS.LAYOUT.GRID',\n  },\n  {\n    id: 'ocx-data-layout-selection-table',\n    icon: PrimeIcons.TABLE,\n    mode: 'table',\n    tooltipKey: 'OCX_DATA_VIEW_CONTROLS.LAYOUT.TABLE',\n    labelKey: 'OCX_DATA_VIEW_CONTROLS.LAYOUT.TABLE',\n  },\n]\n\ninterface DefaultColumnDefinition {\n  active: string[]\n  disabled: string[]\n}\n\n/**\n * Can be used to pass in translation that are used in several places in the data-view-controls component.\n *\n * The component provides fallbacks for all configurable translations.\n */\nexport interface DataViewControlTranslations {\n  /**\n   * Placeholder for the filter input field\n   */\n  filterInputPlaceholder?: string\n  /**\n   * Tooltip for the filter input\n   */\n  filterInputTooltip?: string\n  /**\n   * Placeholder for the sorting dropdown\n   */\n  sortDropdownPlaceholder?: string\n  /**\n   * Tooltip for the sorting dropdown\n   */\n  sortDropdownTooltip?: string\n  /**\n   * Tooltips displayed for the sort order toggle button\n   */\n  sortOrderTooltips?: {\n    ascending?: string\n    descending?: string\n  }\n  /**\n   * Tooltips displayed for the data view mode toggle button\n   */\n  viewModeToggleTooltips?: {\n    list?: string\n    grid?: string\n    table?: string\n  }\n  /**\n   * Placeholder for the template picker dropdown\n   */\n  templatePickerDropdownPlaceholder?: string\n  /**\n   * Tooltip for the column toggle button\n   */\n  toggleColumnButtonTooltip?: string\n  /**\n   * Header text displayed at the top of the column toggle dialog\n   */\n  columnDialogHeaderText?: string\n  /**\n   * Column header text for active/shown columns in the column toggle dialog\n   */\n  columnDialogActiveHeader?: string\n  /**\n   * Column header text for inactive/hidden columns in the column toggle dialog\n   */\n  columnDialogInactiveHeader?: string\n  /**\n   * Label text for the save button displayed in the column toggle dialog\n   */\n  columnDialogSaveButtonLabel?: string\n}\n\n/**\n * @deprecated Will be split up in separate compoments for better abstraction layers\n */\n@Component({\n  selector: 'ocx-data-view-controls',\n  templateUrl: './data-view-controls.component.html',\n  styleUrls: ['./data-view-controls.component.scss'],\n  providers: [DialogService],\n})\nexport class DataViewControlsComponent implements OnInit, OnChanges {\n  @Input() supportedViews: Array<string> = []\n  @Input() initialViewMode: string | undefined\n  @Input() filterValue: string | undefined\n  @Input() enableFiltering = false\n  @Input() enableSorting = false\n  @Input() sortingOptions: { label: string; value: string }[] = []\n  @Input() defaultSortOption = ''\n  @Input() defaultSortDirection = false\n  @Input() columnDefinitions: { field: string; header: string; active?: boolean; translationPrefix?: string }[] = []\n  @Input() columnTemplates: ColumnViewTemplate[] = []\n  /**\n   * @deprecated Instead, please use the `translations` input and specify the `templatePickerDropdownPlaceholder` property.\n   *\n   * Will be overwritten by `translations.templatePickerDropdownPlaceholder` if it is specified.\n   */\n  @Input() dropdownPlaceholderText = ''\n  @Input() filterColumns: Array<string> = []\n  @Input() translations: DataViewControlTranslations | undefined\n\n  @Output() sortChange: EventEmitter<string> = new EventEmitter()\n  @Output() filterChange: EventEmitter<string> = new EventEmitter()\n  @Output() dataViewChange: EventEmitter<'list' | 'grid'> = new EventEmitter()\n  @Output() sortDirectionChange: EventEmitter<boolean> = new EventEmitter()\n  @Output() columnsChange: EventEmitter<string[]> = new EventEmitter()\n\n  @ViewChild(ViewTemplatePickerComponent) templatePicker!: ViewTemplatePickerComponent\n  @ViewChild('dvFilterInput') dvFilter: ElementRef | undefined\n\n  activeColumnIds: string[] = []\n  inactiveColumnIds: string[] = []\n  selectedSortingOption = ''\n  selectedSortDirection: boolean | undefined = false\n\n  viewingModes: ViewingModes[] = []\n\n  selectedViewMode: ViewingModes | undefined\n\n  toggleColumnActive = false\n\n  ref: DynamicDialogRef = new DynamicDialogRef()\n\n  defaultCols: DefaultColumnDefinition = {\n    active: [],\n    disabled: [],\n  }\n\n  constructor(\n    private dialogService: DialogService,\n    private translate: TranslateService\n  ) {}\n\n  ngOnInit(): void {\n    this.defaultCols = this.generateDefaultColumnDefinitions(this.columnDefinitions)\n    this.viewingModes = ALL_VIEW_MODES.filter((vm) => this.supportedViews.includes(vm.mode))\n    this.viewingModes.forEach((v) => {\n      if (v.mode === 'list') {\n        v.title = this.translations?.viewModeToggleTooltips?.list\n      } else if (v.mode === 'grid') {\n        v.title = this.translations?.viewModeToggleTooltips?.grid\n      } else {\n        v.title = this.translations?.viewModeToggleTooltips?.table\n      }\n    })\n\n    if (this.initialViewMode) {\n      this.selectedViewMode = this.viewingModes.find((v) => v.mode === this.initialViewMode)\n    }\n    this.toggleColumnActive = this.supportedViews.includes('table')\n\n    this.selectedSortingOption = this.defaultSortOption\n    this.selectedSortDirection = this.defaultSortDirection\n  }\n\n  ngOnChanges(): void {\n    this.changeFilterValue()\n  }\n\n  toggleColumns() {\n    this.ref = this.dialogService.open(ColumnTogglerComponent, {\n      data: {\n        colDef: this.columnDefinitions,\n        activeColIds: this.activeColumnIds,\n        inactiveColIds: this.inactiveColumnIds,\n        inactiveColumnHeader: this.translations?.columnDialogInactiveHeader,\n        activeColumnHeader: this.translations?.columnDialogActiveHeader,\n        saveButtonLabel: this.translations?.columnDialogSaveButtonLabel,\n      },\n      header:\n        this.translations?.columnDialogHeaderText ||\n        this.translate.instant('OCX_DATA_VIEW_CONTROLS.DIALOG_TITLE'),\n      width: '70%',\n      contentStyle: { 'max-height': '500px', overflow: 'auto', padding: 0 },\n    })\n\n    this.ref.onClose.subscribe(\n      (col: { field: string; header: string; active: boolean; translationPrefix?: string }[]) => {\n        if (col) {\n          if (this.templatePicker) {\n            this.templatePicker.reset()\n          }\n          this.initActiveColumnIds(col)\n          this.initInactiveColumnIds(col)\n        }\n      }\n    )\n  }\n\n  initActiveColumnIds(col: { field: string; header: string; active: boolean; translationPrefix?: string }[]): void {\n    this.activeColumnIds = col\n      .filter((c) => {\n        return c.active === true\n      })\n      .map((a) => {\n        return a.field\n      })\n    this.columnsChange.emit(this.activeColumnIds)\n  }\n\n  handleTemplateChange(event: { activeCols: string[]; inactiveCols: string[] }) {\n    this.activeColumnIds = event.activeCols\n    this.inactiveColumnIds = event.inactiveCols\n    this.columnDefinitions.forEach((col) => {\n      if (this.activeColumnIds.includes(col.field)) {\n        col.active = true\n      } else if (this.inactiveColumnIds.includes(col.field)) {\n        col.active = false\n      }\n    })\n    this.columnsChange.emit(this.activeColumnIds)\n  }\n\n  handleTemplateReset() {\n    this.columnDefinitions.forEach((col) => {\n      if (this.defaultCols.active.includes(col.field)) {\n        col.active = true\n      } else {\n        col.active = false\n      }\n    })\n    this.activeColumnIds = this.defaultCols.active\n    this.inactiveColumnIds = this.defaultCols.disabled\n    this.columnsChange.emit(this.activeColumnIds)\n  }\n\n  initInactiveColumnIds(col: { field: string; header: string; active: boolean; translationPrefix?: string }[]): void {\n    this.inactiveColumnIds = col\n      .filter((c) => {\n        return c.active === false\n      })\n      .map((a) => {\n        return a.field\n      })\n  }\n\n  viewModeChange(event: { icon: PrimeIcon; mode: 'list' | 'grid' }): void {\n    this.dataViewChange.emit(event.mode)\n    this.enableToggleColumnButton(event.mode)\n  }\n\n  enableToggleColumnButton(mode: string) {\n    this.toggleColumnActive = mode === 'table' ? true : false\n  }\n\n  selectSorting(event: DropdownChangeEvent): void {\n    this.sortChange.emit(event.value)\n  }\n\n  searchFilterInput(event: Event): void {\n    this.filterChange.emit((event.target as HTMLInputElement).value)\n  }\n\n  sortDirection(event: ToggleButtonChangeEvent): void {\n    this.selectedSortDirection = event.checked\n    this.sortDirectionChange.emit(event.checked)\n  }\n\n  generateDefaultColumnDefinitions(cols: Column[]): DefaultColumnDefinition {\n    const active: string[] = []\n    const disabled: string[] = []\n    cols.forEach((col) => {\n      if (col.active) {\n        active.push(col.field)\n      } else {\n        disabled.push(col.field)\n      }\n    })\n    return {\n      active,\n      disabled,\n    }\n  }\n\n  public onClearFilter() {\n    if (this.dvFilter) {\n      this.dvFilter.nativeElement.value = ''\n      this.filterChange.emit('')\n    }\n  }\n  private changeFilterValue() {\n    if (this.dvFilter) {\n      if (this.filterValue) {\n        this.dvFilter.nativeElement.value = this.filterValue\n        this.filterChange.emit(this.filterValue)\n      } else {\n        this.dvFilter.nativeElement.value = ''\n        this.filterChange.emit('')\n      }\n    }\n  }\n}\n","<div class=\"flex flex-wrap justify-content-between align-items-center p-1 gap-2\">\n  <!-- if there is no view mode selection and no toggle columns then create a dummy for a stable design -->\n  <div *ngIf=\"viewingModes.length < 2 && !toggleColumnActive\" class=\"hidden sm:block sm:w-1rem\"></div>\n  <p-selectButton\n    *ngIf=\"viewingModes.length > 1\"\n    [options]=\"viewingModes\"\n    [(ngModel)]=\"selectedViewMode\"\n    optionLabel=\"id\"\n    (onChange)=\"viewModeChange($event.value)\"\n  >\n    <ng-template let-item pTemplate>\n      <i [class]=\"item.icon\" [pTooltip]=\"item.tooltip || (item.tooltipKey | translate)\" tooltipPosition=\"top\"></i>\n      <label style=\"display: none\" id=\"{{item.id}}\">{{item.labelKey | translate}}</label>\n    </ng-template>\n  </p-selectButton>\n\n  <div class=\"flex justify-content-between gap-2\" *ngIf=\"toggleColumnActive\">\n    <ocx-data-view-template-picker\n      [templates]=\"columnTemplates\"\n      *ngIf=\"columnTemplates.length > 0 && toggleColumnActive\"\n      (templateChanged)=\"handleTemplateChange($event)\"\n      (templateReset)=\"handleTemplateReset()\"\n      [placeholder]=\"translations?.templatePickerDropdownPlaceholder || dropdownPlaceholderText || ('OCX_DATA_VIEW_CONTROLS.NO_GROUP_SELECTED' | translate)\"\n    >\n    </ocx-data-view-template-picker>\n    <button\n      *ngIf=\"toggleColumnActive\"\n      type=\"button\"\n      (click)=\"toggleColumns()\"\n      pButton\n      [pTooltip]=\"translations?.toggleColumnButtonTooltip || ('OCX_DATA_VIEW_CONTROLS.OPEN_BUTTON_DETAIL' | translate)\"\n      tooltipPosition=\"top\"\n      [attr.aria-label]=\"translations?.toggleColumnButtonTooltip || ('OCX_DATA_VIEW_CONTROLS.OPEN_BUTTON_DETAIL' | translate)\"\n      icon=\"pi pi-cog\"\n    ></button>\n  </div>\n\n  <div *ngIf=\"enableFiltering\" class=\"p-inputgroup w-auto\">\n    <span class=\"p-inputgroup-addon data-view-control-border\">\n      <i class=\"pi pi-filter\"></i>\n    </span>\n    <span class=\"p-float-label\">\n      <input\n        #dvFilterInput\n        id=\"data-view-control-filter\"\n        type=\"text\"\n        class=\"search-filter-input data-view-control-border\"\n        pInputText\n        [pTooltip]=\"translations?.filterInputTooltip || (filterColumns.length > 0 ? ('Filter by ' + filterColumns.join(', ')) : 'Filter')\"\n        tooltipPosition=\"top\"\n        (input)=\"searchFilterInput($event)\"\n      />\n      <label for=\"data-view-control-filter\">{{ translations?.filterInputPlaceholder || 'Filter' }}</label>\n    </span>\n    <span\n      tabindex=\"0\"\n      id=\"data-view-control-filter_clear\"\n      class=\"p-inputgroup-addon pseudo-button bg-primary data-view-control-border cursor-pointer\"\n      (click)=\"onClearFilter()\"\n      (keydown.enter)=\"onClearFilter()\"\n      (keydown.space)=\"onClearFilter()\"\n    >\n      <i class=\"pi pi-filter-slash\"></i>\n    </span>\n  </div>\n\n  <div *ngIf=\"enableSorting\" class=\"flex flex-wrap align-items-center gap-2 mt-2 sm:mt-0\">\n    <span class=\"p-float-label\">\n      <p-dropdown\n        [(ngModel)]=\"selectedSortingOption\"\n        id=\"data-view-control-sortby\"\n        class=\"sort-dropdown\"\n        styleClass=\"data-view-control-border min-w-min w-7rem\"\n        [options]=\"sortingOptions\"\n        (onChange)=\"selectSorting($event)\"\n        [ariaLabel]=\"('OCX_DATA_VIEW_CONTROLS.DROPDOWN.ARIA_LABEL' | translate)\"\n      ></p-dropdown>\n      <label for=\"data-view-control-sortby\" class=\"white-space-nowrap\"\n        >{{ translations?.sortDropdownTooltip || 'Sort by' }}</label\n      >\n    </span>\n    <p-toggleButton\n      [(ngModel)]=\"selectedSortDirection\"\n      onIcon=\"pi pi-sort-amount-up\"\n      offIcon=\"pi pi-sort-amount-down\"\n      (onChange)=\"sortDirection($event)\"\n      [pTooltip]=\"!selectedSortDirection ? (translations?.sortOrderTooltips?.ascending || ('OCX_DATA_VIEW_CONTROLS.TOGGLE_BUTTON.ASCENDING_TOOLTIP' | translate)) : (translations?.sortOrderTooltips?.descending || ('OCX_DATA_VIEW_CONTROLS.TOGGLE_BUTTON.DESCENDING_TOOLTIP' | translate))\"\n      tooltipPosition=\"top\"\n      [ariaLabel]=\"!selectedSortDirection ? (translations?.sortOrderTooltips?.ascending || ('OCX_DATA_VIEW_CONTROLS.TOGGLE_BUTTON.ASCENDING_TOOLTIP' | translate)) : (translations?.sortOrderTooltips?.descending || ('OCX_DATA_VIEW_CONTROLS.TOGGLE_BUTTON.DESCENDING_TOOLTIP' | translate))\"\n    ></p-toggleButton>\n  </div>\n</div>\n","import { Component } from '@angular/core'\n\n@Component({\n  selector: 'ocx-debug',\n  template: `Oh hi`,\n})\nexport class DebugComponent {}\n","import { Component, Input } from '@angular/core'\n\n@Component({\n  templateUrl: `./dialog-message-content.component.html`,\n})\nexport class DialogMessageContentComponent {\n  @Input() message = 'message'\n  @Input() messageParameters: object = {}\n  @Input() icon = ''\n}\n","<div class=\"dialogMessageContent\">\n  <div>\n    <i *ngIf=\"icon !== ''\" [class]=\"icon\"></i>\n    <span id=\"dialogMessage\">{{message | translate:messageParameters}}</span>\n  </div>\n</div>","import {\n  AfterViewInit,\n  Component,\n  ComponentRef,\n  ElementRef,\n  EventEmitter,\n  Input,\n  OnInit,\n  Output,\n  QueryList,\n  ViewChild,\n  ViewChildren,\n  ViewContainerRef,\n} from '@angular/core'\nimport { BehaviorSubject, Observable, from, isObservable, map, of, startWith, withLatestFrom } from 'rxjs'\nimport { DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog'\n\nimport {\n  ButtonDialogButtonDetails,\n  ButtonDialogConfig,\n  ButtonDialogCustomButtonDetails,\n  ButtonDialogData,\n} from '../../../model/button-dialog'\nimport { DialogMessageContentComponent } from './dialog-message-content/dialog-message-content.component'\nimport {\n  DialogButtonClicked,\n  DialogCustomButtonsDisabled,\n  DialogPrimaryButtonDisabled,\n  DialogResult,\n  DialogSecondaryButtonDisabled,\n  DialogState,\n  DialogStateButtonClicked,\n} from '../../../services/portal-dialog.service'\n\n@Component({\n  selector: 'ocx-button-dialog',\n  templateUrl: './button-dialog.component.html',\n  styleUrls: ['./button-dialog.component.scss'],\n})\nexport class ButtonDialogComponent implements OnInit, AfterViewInit {\n  defaultPrimaryButtonDetails: ButtonDialogButtonDetails = {\n    key: 'OCX_BUTTON_DIALOG.CONFIRM',\n  }\n\n  defaultSecondaryButtonDetails: ButtonDialogButtonDetails = {\n    key: 'OCX_BUTTON_DIALOG.CANCEL',\n  }\n\n  defaultDialogData: ButtonDialogData = {\n    component: DialogMessageContentComponent,\n    config: {\n      primaryButtonDetails: this.defaultPrimaryButtonDetails,\n      secondaryButtonIncluded: true,\n      secondaryButtonDetails: this.defaultSecondaryButtonDetails,\n    },\n    componentData: {},\n  }\n\n  @Input() config: ButtonDialogConfig = {}\n\n  @Output() resultEmitter = new EventEmitter()\n\n  @ViewChild('container', { static: true, read: ViewContainerRef })\n  dialogHost!: ViewContainerRef\n  @ViewChild('primaryButton', { static: true, read: ViewContainerRef })\n  primaryButton!: ViewContainerRef\n  _secondaryButton!: ViewContainerRef\n  @ViewChild('secondaryButton', { static: false, read: ViewContainerRef })\n  set secondaryButton(content: ViewContainerRef) {\n    if (content) {\n      this._secondaryButton = content\n    }\n  }\n  get secondaryButton(): ViewContainerRef {\n    return this._secondaryButton\n  }\n  @ViewChildren('customButton') customButtons!: QueryList<ElementRef>\n\n  dialogData: ButtonDialogData = this.defaultDialogData\n  componentRef!: ComponentRef<any>\n  primaryButtonDisabled$: Observable<boolean | undefined> | undefined\n  secondaryButtonDisabled$: Observable<boolean | undefined> | undefined\n  customButtonsDisabled$: BehaviorSubject<Record<string, boolean>> = new BehaviorSubject({})\n  leftCustomButtons: ButtonDialogCustomButtonDetails[] = []\n  rightCustomButtons: ButtonDialogCustomButtonDetails[] = []\n\n  constructor(\n    public dynamicDialogConfig: DynamicDialogConfig,\n    public dynamicDialogRef: DynamicDialogRef\n  ) {}\n  ngAfterViewInit(): void {\n    if (this.dialogData.config.autoFocusButton === 'primary' || !this.dialogData.config.autoFocusButton) {\n      this.primaryButton.element.nativeElement.focus()\n    } else if (this.dialogData.config.autoFocusButton === 'secondary') {\n      this.secondaryButton.element.nativeElement.focus()\n    } else if (this.dialogData.config.autoFocusButton === 'custom') {\n      const button = this.customButtons.find((customButton) => {\n        return customButton.nativeElement.id === this.dialogData.config.autoFocusButtonCustomId\n      })\n      setTimeout(() => {\n        button?.nativeElement.focus()\n      })\n    }\n  }\n\n  ngOnInit(): void {\n    this.loadComponent()\n  }\n\n  primaryButtonAction() {\n    return this.buttonAction('primary')\n  }\n\n  secondaryButtonAction() {\n    return this.buttonAction('secondary')\n  }\n\n  customButtonAction(button: ButtonDialogCustomButtonDetails) {\n    return this.buttonAction(`custom`, button.id)\n  }\n\n  resolveCustomButtonDisabled(customButtonsDisabled: Record<string, boolean>, buttonId: string) {\n    return buttonId in customButtonsDisabled ? customButtonsDisabled[buttonId] : true\n  }\n\n  loadComponent() {\n    if (this.dynamicDialogConfig.data) {\n      this.setUpDialogDataForDynamicConfig()\n    } else {\n      this.setUpDialogDataForInput()\n    }\n  }\n\n  setUpDialogDataForDynamicConfig() {\n    const dynamicConfigData: ButtonDialogData = this.dynamicDialogConfig.data\n    if (dynamicConfigData.config) {\n      const dialogConfig = dynamicConfigData.config\n      if (!!dialogConfig.primaryButtonDetails && !!dialogConfig.primaryButtonDetails.key) {\n        this.dialogData.config.primaryButtonDetails = dialogConfig.primaryButtonDetails\n      }\n      if (dialogConfig.secondaryButtonIncluded !== undefined) {\n        this.dialogData.config.secondaryButtonIncluded = dialogConfig.secondaryButtonIncluded\n      }\n      if (!!dialogConfig.secondaryButtonDetails && !!dialogConfig.secondaryButtonDetails.key) {\n        this.dialogData.config.secondaryButtonDetails = dialogConfig.secondaryButtonDetails\n      }\n      this.dialogData.config.autoFocusButton = dialogConfig.autoFocusButton\n      this.dialogData.config.autoFocusButtonCustomId = dialogConfig.autoFocusButtonCustomId\n    }\n    if (dynamicConfigData.component) {\n      this.dialogData.component = dynamicConfigData.component\n    }\n    if (dynamicConfigData.componentData) {\n      this.dialogData.componentData = dynamicConfigData.componentData\n    }\n\n    this.setupCustomButtons(dynamicConfigData)\n\n    const viewContainerRef = this.dialogHost\n    viewContainerRef.clear()\n\n    if (this.dialogData.component) {\n      const componentRef = viewContainerRef.createComponent<any>(this.dialogData.component)\n\n      if (this.isDialogPrimaryButtonDisabledImplemented(componentRef.instance)) {\n        this.primaryButtonDisabled$ = componentRef.instance.primaryButtonEnabled.pipe(\n          startWith(false),\n          map((isEnabled: boolean) => !isEnabled)\n        )\n      }\n      if (this.isDialogSecondaryButtonDisabledImplemented(componentRef.instance)) {\n        this.secondaryButtonDisabled$ = componentRef.instance.secondaryButtonEnabled.pipe(\n          startWith(false),\n          map((isEnabled: boolean) => !isEnabled)\n        )\n      }\n      if (this.isDialogCustomButtonDisabledImplemented(componentRef.instance)) {\n        const initCustomButtons: Record<string, boolean> = {}\n        this.rightCustomButtons.concat(this.leftCustomButtons).map((button) => {\n          initCustomButtons[button.id] = true\n        })\n        this.customButtonsDisabled$.next(initCustomButtons)\n        componentRef.instance.customButtonEnabled\n          .pipe(\n            withLatestFrom(this.customButtonsDisabled$),\n            map(([buttonEnabled, customButtonsDisabled]) => {\n              if (customButtonsDisabled[buttonEnabled.id] !== !buttonEnabled.enabled) {\n                customButtonsDisabled[buttonEnabled.id] = !buttonEnabled.enabled\n              }\n              return customButtonsDisabled\n            })\n          )\n          .subscribe(this.customButtonsDisabled$)\n      }\n\n      //populate container\n      Object.keys(this.dialogData.componentData).forEach((k) => {\n        componentRef.setInput(k, this.dialogData.componentData[k])\n      })\n      this.componentRef = componentRef\n    }\n  }\n\n  setUpDialogDataForInput() {\n    this.dialogData.component = undefined\n    this.dialogData.componentData = undefined\n    if (this.config) {\n      if (!!this.config.primaryButtonDetails && !!this.config.primaryButtonDetails.key) {\n        this.dialogData.config.primaryButtonDetails = this.config.primaryButtonDetails\n      }\n      if (this.config.secondaryButtonIncluded) {\n        this.dialogData.config.secondaryButtonIncluded = this.config.secondaryButtonIncluded\n      }\n      if (!!this.config.secondaryButtonDetails && !!this.config.secondaryButtonDetails.key) {\n        this.dialogData.config.secondaryButtonDetails = this.config.secondaryButtonDetails\n      }\n    }\n    this.dialogData.config.customButtons = this.config.customButtons\n    this.setupCustomButtons(this.dialogData)\n  }\n\n  private buttonAction(resultButtonClickedName: DialogStateButtonClicked, buttonId?: string) {\n    if (!this.componentRef) {\n      this.resultEmitter.emit(resultButtonClickedName)\n      return\n    }\n\n    const state: DialogState<unknown> = {\n      button: resultButtonClickedName,\n      result: undefined,\n      id: buttonId,\n    }\n\n    this.resolveButtonClick(state)\n  }\n\n  private setupCustomButtons(dialogData: ButtonDialogData) {\n    this.leftCustomButtons = dialogData.config.customButtons?.filter((button) => button.alignment === 'left') ?? []\n    this.rightCustomButtons = dialogData.config.customButtons?.filter((button) => button.alignment === 'right') ?? []\n  }\n\n  private resolveButtonClick(state: DialogState<unknown>) {\n    const component = this.componentRef.instance\n\n    const hasDialogResult = this.isDialogResultImplemented(component)\n    if (hasDialogResult) {\n      state.result = component.dialogResult\n    }\n    const closeResult = state\n    // check if component implements DialogButtonClicked\n    if (this.isDialogButtonClickedImplemented(component)) {\n      const buttonResult = component.ocxDialogButtonClicked(state)\n      // If undefined or void is returned, close dialog and return result\n      if (buttonResult === undefined) {\n        if (hasDialogResult) {\n          closeResult.result = component.dialogResult\n        }\n        return this.dynamicDialogRef.close(closeResult)\n      }\n      this.toObservable(buttonResult).subscribe((result: boolean) => {\n        if (result === true) {\n          if (hasDialogResult) {\n            closeResult.result = component.dialogResult\n          }\n          this.dynamicDialogRef.close(closeResult)\n        }\n      })\n    } else {\n      return this.dynamicDialogRef.close(closeResult)\n    }\n  }\n\n  private toObservable(\n    ocxDialogButtonClickedResult: boolean | Observable<boolean> | Promise<boolean> | undefined\n  ): Observable<boolean> {\n    if (ocxDialogButtonClickedResult === undefined) {\n      return of(true)\n    }\n    if (isObservable(ocxDialogButtonClickedResult)) {\n      return ocxDialogButtonClickedResult\n    }\n    return from(Promise.resolve(ocxDialogButtonClickedResult))\n  }\n\n  private isDialogResultImplemented(component: any): component is DialogResult<unknown> {\n    return 'dialogResult' in component\n  }\n\n  private isDialogButtonClickedImplemented(component: any): component is DialogButtonClicked {\n    return typeof component.ocxDialogButtonClicked === 'function'\n  }\n\n  private isDialogPrimaryButtonDisabledImplemented(component: any): component is DialogPrimaryButtonDisabled {\n    return 'primaryButtonEnabled' in component\n  }\n\n  private isDialogSecondaryButtonDisabledImplemented(component: any): component is DialogSecondaryButtonDisabled {\n    return 'secondaryButtonEnabled' in component\n  }\n\n  private isDialogCustomButtonDisabledImplemented(component: any): component is DialogCustomButtonsDisabled {\n    return 'customButtonEnabled' in component\n  }\n}\n","<div>\n  <div class=\"buttonDialogScrollableContent\">\n    <ng-container #container></ng-container>\n    <ng-content></ng-content>\n  </div>\n  <div class=\"w-full flex-row justify-content-end flex flex-wrap gap-2\">\n    <ng-container *ngFor=\"let button of leftCustomButtons; index as i\">\n      <div [ngStyle]=\"{'margin-right': (i === leftCustomButtons.length - 1) ? 'auto' : 0}\">\n        <ng-container *ngTemplateOutlet=\"customButtonTemplate; context: {button: button}\"> </ng-container>\n      </div>\n    </ng-container>\n    <ng-container *ngFor=\"let button of rightCustomButtons\">\n      <div>\n        <ng-container *ngTemplateOutlet=\"customButtonTemplate; context: {button: button}\"> </ng-container>\n      </div>\n    </ng-container>\n    <div>\n      <button\n        #secondaryButton\n        id=\"{{dialogData.config.secondaryButtonDetails?.id ?? 'buttonDialogSecondaryButton'}}\"\n        pButton\n        *ngIf=\"dialogData.config.secondaryButtonIncluded\"\n        [icon]=\"dialogData.config.secondaryButtonDetails!.icon !== undefined ? dialogData.config.secondaryButtonDetails!.icon : ''\"\n        (click)=\"secondaryButtonAction()\"\n        [label]=\"dialogData.config.secondaryButtonDetails!.key | translate:dialogData.config.secondaryButtonDetails?.parameters\"\n        [disabled]=\"secondaryButtonDisabled$ | async\"\n        [pTooltip]=\"dialogData.config.secondaryButtonDetails!.tooltipKey ? (dialogData.config.secondaryButtonDetails!.tooltipKey | translate) : null\"\n        [tooltipPosition]=\"dialogData.config.secondaryButtonDetails?.tooltipPosition ?? ''\"\n        [attr.aria-label]=\"dialogData.config.secondaryButtonDetails!.key | translate:dialogData.config.secondaryButtonDetails?.parameters\"\n      ></button>\n    </div>\n    <div>\n      <button\n        #primaryButton\n        id=\"{{dialogData.config.primaryButtonDetails?.id ?? 'buttonDialogPrimaryButton'}}\"\n        pButton\n        [icon]=\"dialogData.config.primaryButtonDetails!.icon !== undefined ? dialogData.config.primaryButtonDetails!.icon : ''\"\n        (click)=\"primaryButtonAction()\"\n        [label]=\"dialogData.config.primaryButtonDetails!.key | translate:dialogData.config.primaryButtonDetails?.parameters\"\n        [disabled]=\"primaryButtonDisabled$ | async\"\n        [pTooltip]=\"dialogData.config.primaryButtonDetails!.tooltipKey ? (dialogData.config.primaryButtonDetails!.tooltipKey | translate) : null\"\n        [tooltipPosition]=\"dialogData.config.primaryButtonDetails?.tooltipPosition ?? ''\"\n        [attr.aria-label]=\"dialogData.config.primaryButtonDetails!.key | translate:dialogData.config.primaryButtonDetails?.parameters\"\n      ></button>\n    </div>\n  </div>\n</div>\n\n<ng-template #customButtonTemplate let-button=\"button\">\n  <button\n    #customButton\n    id=\"{{button.id}}\"\n    pButton\n    [icon]=\"button.icon !== undefined ? button.icon : ''\"\n    (click)=\"customButtonAction(button)\"\n    [label]=\"button.key | translate:button.parameters\"\n    [disabled]=\"resolveCustomButtonDisabled((customButtonsDisabled$ | async) ?? {}, button.id)\"\n    [pTooltip]=\"button.tooltipKey ? (button.tooltipKey | translate) : null\"\n    [tooltipPosition]=\"button.tooltipPosition ?? ''\"\n    [attr.aria-label]=\"button.key | translate:button.parameters\"\n  ></button>\n</ng-template>\n","import { Component, Input } from '@angular/core'\n\n@Component({\n  selector: 'ocx-content-container',\n  templateUrl: './content-container.component.html',\n})\nexport class OcxContentContainerComponent {\n  /**\n   * Allows specifying the layout direction of the container\n   */\n  @Input() layout: 'vertical' | 'horizontal' = 'horizontal';\n\n  /**\n   * Allows specifying the breakpoint below which a horizontal layout switches to a vertical layout.\n   * Only necessary if horizontal layout is used\n   * Default: md\n   */\n    @Input() breakpoint: 'sm' | 'md' | 'lg' | 'xl' = 'md'\n}\n","<div ocxContentContainer [layout]=\"layout\" [breakpoint]=\"breakpoint\">\n    <ng-content></ng-content>\n</div>","import { Component, Input } from '@angular/core'\n\n@Component({\n  selector: 'ocx-content',\n  templateUrl: './content.component.html',\n})\nexport class OcxContentComponent {\n  /**\n   * Optionally allows specifying a title for the content card\n   */\n  @Input() title = '';\n}\n","<div [ocxContent]=\"title\">\n    <ng-content></ng-content>\n</div>","import { Component, Input } from '@angular/core'\n\nexport interface LifecycleStep {\n  id: string\n  title: string,\n  details?: string,\n}\n\n@Component({\n  selector: 'ocx-lifecycle',\n  templateUrl: './lifecycle.component.html',\n})\nexport class LifecycleComponent {\n  @Input() steps: LifecycleStep[] = []\n  @Input() activeStepId: string | undefined\n}\n","<p-timeline [value]=\"steps\">\n  <ng-template pTemplate=\"marker\" let-step>\n    <span class=\"p-timeline-event-marker\" [ngClass]=\"activeStepId && activeStepId === step.id ? 'bg-primary' : ''\"></span>\n</ng-template>\n  <ng-template pTemplate=\"content\" let-step>\n    <div class=\"pb-4 h-full\">\n        <div class=\"card h-full\" [ngClass]=\"activeStepId && activeStepId === step.id ? 'bg-primary' : ''\">\n            <p class=\"font-bold text-xl\" [ngClass]=\"step.details ? 'mb-2' : ''\">{{ step.title }}</p>\n            <p *ngIf=\"step.details\" [ngClass]=\"activeStepId && activeStepId === step.id ? '' : 'text-color-secondary'\">{{ step.details }}</p>\n        </div>\n    </div>\n  </ng-template>\n</p-timeline>\n","import { Component, ComponentRef, OnDestroy, OnInit, ViewChild, ViewContainerRef } from '@angular/core'\nimport { Observable, Subscription, from, isObservable, of, startWith } from 'rxjs'\nimport { DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog'\nimport { ButtonDialogData } from '../../../../model/button-dialog'\nimport { DialogMessageContentComponent } from '../../button-dialog/dialog-message-content/dialog-message-content.component'\nimport {\n  DialogButtonClicked,\n  DialogCustomButtonsDisabled,\n  DialogPrimaryButtonDisabled,\n  DialogResult,\n  DialogSecondaryButtonDisabled,\n  PortalDialogServiceData,\n} from '../../../../services/portal-dialog.service'\n\n@Component({\n  selector: 'ocx-dialog-content',\n  templateUrl: './dialog-content.component.html',\n  styleUrls: ['./dialog-content.component.scss'],\n})\nexport class DialogContentComponent implements OnInit, OnDestroy {\n  defaultDialogData: ButtonDialogData = {\n    component: DialogMessageContentComponent,\n    config: {},\n    componentData: {},\n  }\n\n  @ViewChild('container', { static: true, read: ViewContainerRef })\n  dialogHost!: ViewContainerRef\n\n  dialogData: ButtonDialogData = this.defaultDialogData\n  componentRef!: ComponentRef<any>\n\n  primaryButtonEnabledSub?: Subscription\n  secondaryButtonEnabledSub?: Subscription\n  customButtonEnabledSub?: Subscription\n  buttonClickedSub?: Subscription\n\n  constructor(\n    public dynamicDialogConfig: DynamicDialogConfig,\n    public dynamicDialogRef: DynamicDialogRef\n  ) {}\n\n  ngOnInit(): void {\n    this.loadComponent()\n  }\n\n  ngOnDestroy(): void {\n    this.primaryButtonEnabledSub?.unsubscribe()\n    this.secondaryButtonEnabledSub?.unsubscribe()\n    this.customButtonEnabledSub?.unsubscribe()\n    this.buttonClickedSub?.unsubscribe()\n  }\n\n  loadComponent() {\n    if (this.dynamicDialogConfig.data) {\n      this.setUpDialogDataForDynamicConfig()\n    }\n  }\n\n  setUpDialogDataForDynamicConfig() {\n    const dynamicConfigData: ButtonDialogData = this.dynamicDialogConfig.data\n    const portalDialogServiceData: PortalDialogServiceData = this.dynamicDialogConfig.data.portalDialogServiceData\n    if (dynamicConfigData.component) {\n      this.dialogData.component = dynamicConfigData.component\n    }\n    if (dynamicConfigData.componentData) {\n      this.dialogData.componentData = dynamicConfigData.componentData\n    }\n\n    const viewContainerRef = this.dialogHost\n    viewContainerRef.clear()\n\n    this.buttonClickedSub = portalDialogServiceData.buttonClicked$.subscribe((state) => {\n      const component = this.componentRef.instance\n\n      const hasDialogResult = this.isDialogResultImplemented(component)\n      if (hasDialogResult) {\n        state.result = component.dialogResult\n      }\n      const closeResult = state\n      // check if component implements DialogButtonClicked\n      if (this.isDialogButtonClickedImplemented(component)) {\n        const buttonResult = component.ocxDialogButtonClicked(state)\n        // If undefined or void is returned, close dialog and return result\n        if (buttonResult === undefined) {\n          if (hasDialogResult) {\n            closeResult.result = component.dialogResult\n          }\n          return this.dynamicDialogRef.close(closeResult)\n        }\n        this.toObservable(buttonResult).subscribe((result: boolean) => {\n          if (result === true) {\n            if (hasDialogResult) {\n              closeResult.result = component.dialogResult\n            }\n            this.dynamicDialogRef.close(closeResult)\n          }\n        })\n      } else {\n        return this.dynamicDialogRef.close(closeResult)\n      }\n    })\n\n    if (this.dialogData.component) {\n      const componentRef = viewContainerRef.createComponent<any>(this.dialogData.component)\n\n      if (this.isDialogPrimaryButtonDisabledImplemented(componentRef.instance)) {\n        this.primaryButtonEnabledSub = componentRef.instance.primaryButtonEnabled\n          .pipe(startWith(false))\n          .subscribe((isEnabled) => {\n            portalDialogServiceData.primaryButtonEnabled$.emit(isEnabled)\n          })\n      }\n      if (this.isDialogSecondaryButtonDisabledImplemented(componentRef.instance)) {\n        this.secondaryButtonEnabledSub = componentRef.instance.secondaryButtonEnabled\n          .pipe(startWith(false))\n          .subscribe((isEnabled) => {\n            portalDialogServiceData.secondaryButtonEnabled$.emit(isEnabled)\n          })\n      }\n      if (this.isDialogCustomButtonDisabledImplemented(componentRef.instance)) {\n        this.customButtonEnabledSub = componentRef.instance.customButtonEnabled.subscribe((buttonEnabled) => {\n          portalDialogServiceData.customButtonEnabled$.emit(buttonEnabled)\n        })\n      }\n\n      //populate container\n      Object.keys(this.dialogData.componentData).forEach((k) => {\n        componentRef.setInput(k, this.dialogData.componentData[k])\n      })\n      this.componentRef = componentRef\n    }\n  }\n\n  private toObservable(\n    ocxDialogButtonClickedResult: boolean | Observable<boolean> | Promise<boolean> | undefined\n  ): Observable<boolean> {\n    if (ocxDialogButtonClickedResult === undefined) {\n      return of(true)\n    }\n    if (isObservable(ocxDialogButtonClickedResult)) {\n      return ocxDialogButtonClickedResult\n    }\n    return from(Promise.resolve(ocxDialogButtonClickedResult))\n  }\n\n  private isDialogResultImplemented(component: any): component is DialogResult<unknown> {\n    return 'dialogResult' in component\n  }\n\n  private isDialogButtonClickedImplemented(component: any): component is DialogButtonClicked {\n    return typeof component.ocxDialogButtonClicked === 'function'\n  }\n\n  private isDialogPrimaryButtonDisabledImplemented(component: any): component is DialogPrimaryButtonDisabled {\n    return 'primaryButtonEnabled' in component\n  }\n\n  private isDialogSecondaryButtonDisabledImplemented(component: any): component is DialogSecondaryButtonDisabled {\n    return 'secondaryButtonEnabled' in component\n  }\n\n  private isDialogCustomButtonDisabledImplemented(component: any): component is DialogCustomButtonsDisabled {\n    return 'customButtonEnabled' in component\n  }\n}\n","<div class=\"buttonDialogScrollableContent\">\n  <ng-container #container></ng-container>\n  <ng-content></ng-content>\n</div>\n","import {\n  AfterViewInit,\n  Component,\n  ElementRef,\n  EventEmitter,\n  Input,\n  OnInit,\n  Output,\n  QueryList,\n  ViewChild,\n  ViewChildren,\n  ViewContainerRef,\n} from '@angular/core'\nimport { BehaviorSubject, Observable, map, withLatestFrom } from 'rxjs'\nimport { DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog'\nimport {\n  ButtonDialogButtonDetails,\n  ButtonDialogConfig,\n  ButtonDialogCustomButtonDetails,\n  ButtonDialogData,\n} from '../../../../model/button-dialog'\nimport {\n  DialogState,\n  DialogStateButtonClicked,\n  PortalDialogServiceData,\n} from '../../../../services/portal-dialog.service'\n\n@Component({\n  selector: 'ocx-dialog-footer',\n  templateUrl: './dialog-footer.component.html',\n  styleUrls: ['./dialog-footer.component.scss'],\n})\nexport class DialogFooterComponent implements OnInit, AfterViewInit {\n  defaultPrimaryButtonDetails: ButtonDialogButtonDetails = {\n    key: 'OCX_BUTTON_DIALOG.CONFIRM',\n  }\n\n  defaultSecondaryButtonDetails: ButtonDialogButtonDetails = {\n    key: 'OCX_BUTTON_DIALOG.CANCEL',\n  }\n\n  defaultDialogData: ButtonDialogData = {\n    config: {\n      primaryButtonDetails: this.defaultPrimaryButtonDetails,\n      secondaryButtonIncluded: true,\n      secondaryButtonDetails: this.defaultSecondaryButtonDetails,\n    },\n    componentData: {},\n  }\n\n  @Input() config: ButtonDialogConfig = {}\n\n  dialogData: ButtonDialogData = this.defaultDialogData\n  primaryButtonDisabled$: Observable<boolean | undefined> | undefined\n  secondaryButtonDisabled$: Observable<boolean | undefined> | undefined\n  customButtonsDisabled$: BehaviorSubject<Record<string, boolean>> = new BehaviorSubject({})\n  leftCustomButtons: ButtonDialogCustomButtonDetails[] = []\n  rightCustomButtons: ButtonDialogCustomButtonDetails[] = []\n\n  @Output() buttonClickedEmitter: EventEmitter<DialogState<unknown>> = new EventEmitter()\n\n  @ViewChild('primaryButton', { static: true, read: ViewContainerRef })\n  primaryButton!: ViewContainerRef\n  _secondaryButton!: ViewContainerRef\n  @ViewChild('secondaryButton', { static: false, read: ViewContainerRef })\n  set secondaryButton(content: ViewContainerRef) {\n    if (content) {\n      this._secondaryButton = content\n    }\n  }\n  get secondaryButton(): ViewContainerRef {\n    return this._secondaryButton\n  }\n  @ViewChildren('customButton') customButtons!: QueryList<ElementRef>\n\n  constructor(\n    public dynamicDialogConfig: DynamicDialogConfig,\n    public dynamicDialogRef: DynamicDialogRef\n  ) {}\n\n  ngAfterViewInit(): void {\n    if (!(this.dynamicDialogConfig.data && this.dynamicDialogConfig.data.config)) return\n\n    const config = this.dynamicDialogConfig.data.config\n    if (config.autoFocusButton === 'primary') {\n      this.primaryButton.element.nativeElement.focus()\n    } else if (config.autoFocusButton === 'secondary') {\n      this.secondaryButton.element.nativeElement.focus()\n    } else if (config.autoFocusButton === 'custom') {\n      const button = this.customButtons.find((customButton) => {\n        return customButton.nativeElement.id === config.autoFocusButtonCustomId\n      })\n      setTimeout(() => {\n        button?.nativeElement.focus()\n      })\n    }\n  }\n\n  ngOnInit(): void {\n    this.loadComponent()\n  }\n\n  primaryButtonAction() {\n    return this.buttonAction('primary')\n  }\n\n  secondaryButtonAction() {\n    return this.buttonAction('secondary')\n  }\n\n  customButtonAction(button: ButtonDialogCustomButtonDetails) {\n    return this.buttonAction(`custom`, button.id)\n  }\n\n  resolveCustomButtonDisabled(customButtonsDisabled: Record<string, boolean>, buttonId: string) {\n    return buttonId in customButtonsDisabled ? customButtonsDisabled[buttonId] : true\n  }\n\n  loadComponent() {\n    if (this.dynamicDialogConfig.data) {\n      this.setUpDialogDataForDynamicConfig()\n    } else {\n      this.setUpDialogDataForInput()\n    }\n  }\n\n  setUpDialogDataForInput() {\n    if (this.config) {\n      if (!!this.config.primaryButtonDetails && !!this.config.primaryButtonDetails.key) {\n        this.dialogData.config.primaryButtonDetails = this.config.primaryButtonDetails\n      }\n      if (this.config.secondaryButtonIncluded) {\n        this.dialogData.config.secondaryButtonIncluded = this.config.secondaryButtonIncluded\n      }\n      if (!!this.config.secondaryButtonDetails && !!this.config.secondaryButtonDetails.key) {\n        this.dialogData.config.secondaryButtonDetails = this.config.secondaryButtonDetails\n      }\n    }\n    this.dialogData.config.customButtons = this.config.customButtons\n    this.setupCustomButtons(this.dialogData)\n  }\n\n  setUpDialogDataForDynamicConfig() {\n    const dynamicConfigData: ButtonDialogData = this.dynamicDialogConfig.data\n    const portalDialogServiceData: PortalDialogServiceData = this.dynamicDialogConfig.data.portalDialogServiceData\n    if (dynamicConfigData.config) {\n      const dialogConfig = dynamicConfigData.config\n      if (!!dialogConfig.primaryButtonDetails && !!dialogConfig.primaryButtonDetails.key) {\n        this.dialogData.config.primaryButtonDetails = dialogConfig.primaryButtonDetails\n      }\n      if (dialogConfig.secondaryButtonIncluded !== undefined) {\n        this.dialogData.config.secondaryButtonIncluded = dialogConfig.secondaryButtonIncluded\n      }\n      if (!!dialogConfig.secondaryButtonDetails && !!dialogConfig.secondaryButtonDetails.key) {\n        this.dialogData.config.secondaryButtonDetails = dialogConfig.secondaryButtonDetails\n      }\n    }\n\n    this.setupCustomButtons(dynamicConfigData)\n\n    this.primaryButtonDisabled$ = portalDialogServiceData.primaryButtonEnabled$.pipe(map((isEnabled) => !isEnabled))\n    this.secondaryButtonDisabled$ = portalDialogServiceData.secondaryButtonEnabled$.pipe(map((isEnabled) => !isEnabled))\n\n    const initCustomButtons: Record<string, boolean> = {}\n    this.rightCustomButtons.concat(this.leftCustomButtons).map((button) => {\n      initCustomButtons[button.id] = true\n    })\n    this.customButtonsDisabled$.next(initCustomButtons)\n    portalDialogServiceData.customButtonEnabled$\n      .pipe(\n        withLatestFrom(this.customButtonsDisabled$),\n        map(([buttonEnabled, customButtonsDisabled]) => {\n          if (customButtonsDisabled[buttonEnabled.id] !== !buttonEnabled.enabled) {\n            customButtonsDisabled[buttonEnabled.id] = !buttonEnabled.enabled\n          }\n          return customButtonsDisabled\n        })\n      )\n      .subscribe(this.customButtonsDisabled$)\n\n    this.buttonClickedEmitter = portalDialogServiceData.buttonClicked$\n  }\n\n  private buttonAction(resultButtonClickedName: DialogStateButtonClicked, buttonId?: string) {\n    const state: DialogState<unknown> = {\n      button: resultButtonClickedName,\n      result: undefined,\n      id: buttonId,\n    }\n\n    this.buttonClickedEmitter?.emit(state)\n  }\n\n  private setupCustomButtons(dialogData: ButtonDialogData) {\n    this.leftCustomButtons = dialogData.config.customButtons?.filter((button) => button.alignment === 'left') ?? []\n    this.rightCustomButtons = dialogData.config.customButtons?.filter((button) => button.alignment === 'right') ?? []\n  }\n}\n","<div class=\"w-full flex-row justify-content-end flex flex-wrap gap-2\">\n  <ng-container *ngFor=\"let button of leftCustomButtons; index as i\">\n    <div [ngStyle]=\"{'margin-right': (i === leftCustomButtons.length - 1) ? 'auto' : 0}\">\n      <ng-container *ngTemplateOutlet=\"customButtonTemplate; context: {button: button}\"> </ng-container>\n    </div>\n  </ng-container>\n  <ng-container *ngFor=\"let button of rightCustomButtons\">\n    <div>\n      <ng-container *ngTemplateOutlet=\"customButtonTemplate; context: {button: button}\"> </ng-container>\n    </div>\n  </ng-container>\n  <div>\n    <button\n      #secondaryButton\n      id=\"{{dialogData.config.secondaryButtonDetails?.id ?? 'buttonDialogSecondaryButton'}}\"\n      pButton\n      *ngIf=\"dialogData.config.secondaryButtonIncluded\"\n      [icon]=\"dialogData.config.secondaryButtonDetails!.icon !== undefined ? dialogData.config.secondaryButtonDetails!.icon : ''\"\n      (click)=\"secondaryButtonAction()\"\n      [label]=\"dialogData.config.secondaryButtonDetails!.key | translate:dialogData.config.secondaryButtonDetails?.parameters\"\n      [disabled]=\"secondaryButtonDisabled$ | async\"\n      [pTooltip]=\"dialogData.config.secondaryButtonDetails!.tooltipKey ? (dialogData.config.secondaryButtonDetails!.tooltipKey | translate) : null\"\n      [tooltipPosition]=\"dialogData.config.secondaryButtonDetails?.tooltipPosition ?? ''\"\n      [attr.aria-label]=\"dialogData.config.secondaryButtonDetails!.key | translate:dialogData.config.secondaryButtonDetails?.parameters\"\n    ></button>\n  </div>\n  <div>\n    <button\n      #primaryButton\n      id=\"{{dialogData.config.primaryButtonDetails?.id ?? 'buttonDialogPrimaryButton'}}\"\n      pButton\n      autofocus\n      [icon]=\"dialogData.config.primaryButtonDetails!.icon !== undefined ? dialogData.config.primaryButtonDetails!.icon : ''\"\n      (click)=\"primaryButtonAction()\"\n      [label]=\"dialogData.config.primaryButtonDetails!.key | translate:dialogData.config.primaryButtonDetails?.parameters\"\n      [disabled]=\"primaryButtonDisabled$ | async\"\n      [pTooltip]=\"dialogData.config.primaryButtonDetails!.tooltipKey ? (dialogData.config.primaryButtonDetails!.tooltipKey | translate) : null\"\n      [tooltipPosition]=\"dialogData.config.primaryButtonDetails?.tooltipPosition ?? ''\"\n      [attr.aria-label]=\"dialogData.config.primaryButtonDetails!.key | translate:dialogData.config.primaryButtonDetails?.parameters\"\n    ></button>\n  </div>\n</div>\n\n<ng-template #customButtonTemplate let-button=\"button\">\n  <button\n    #customButton\n    id=\"{{button.id}}\"\n    pButton\n    [icon]=\"button.icon !== undefined ? button.icon : ''\"\n    (click)=\"customButtonAction(button)\"\n    [label]=\"button.key | translate:button.parameters\"\n    [disabled]=\"resolveCustomButtonDisabled((customButtonsDisabled$ | async) ?? {}, button.id)\"\n    [pTooltip]=\"button.tooltipKey ? (button.tooltipKey | translate) : null\"\n    [tooltipPosition]=\"button.tooltipPosition ?? ''\"\n    [attr.aria-label]=\"button.key | translate:button.parameters\"\n  ></button>\n</ng-template>\n","import { Component, EventEmitter, Input, Output } from '@angular/core'\nimport { ButtonDialogConfig } from '../../../../model/button-dialog'\nimport { DialogState } from '../../../../services/portal-dialog.service'\n\n@Component({\n  selector: 'ocx-dialog-inline',\n  templateUrl: './dialog-inline.component.html',\n  styleUrls: ['./dialog-inline.component.scss'],\n})\nexport class DialogInlineComponent {\n  @Input() config: ButtonDialogConfig = {}\n\n  @Output() resultEmitter = new EventEmitter()\n\n  buttonClicked(event: DialogState<unknown>) {\n    this.resultEmitter.emit(event.button)\n  }\n}\n","<div>\n  <ocx-dialog-content>\n    <ng-content></ng-content>\n  </ocx-dialog-content>\n  <ocx-dialog-footer [config]=\"config\" (buttonClickedEmitter)=\"buttonClicked($event)\"></ocx-dialog-footer>\n</div>\n","import { HttpClient } from '@angular/common/http'\nimport { Injectable } from '@angular/core'\n// import { withCache } from '@ngneat/cashew'\nimport { Observable } from 'rxjs'\nimport { Portal } from '../model/portal'\nimport { PortalWrapper } from '../model/portal-wrapper'\n\n@Injectable({ providedIn: 'root' })\nexport class PortalApiService {\n  constructor(private readonly httpClient: HttpClient) {}\n  baseUrlV1 = './portal-api/v1/portals'\n  baseUrlInternal = './portal-api/internal/portals'\n\n  getAllPortals(): Observable<Array<Portal>> {\n    return this.httpClient.get<Array<Portal>>(`${this.baseUrlInternal}`)\n  }\n\n  // internal: by portal id\n  getPortal(portal: string): Observable<Portal> {\n    return this.httpClient.get<Portal>(`${this.baseUrlInternal}/${portal}`)\n  }\n  // external: by portal name\n  getPortalData(portal: string): Observable<Portal> {\n    return this.httpClient.get<Portal>(`${this.baseUrlV1}/${portal}`)\n  }\n\n  getCurrentPortalData(url: string): Observable<PortalWrapper> {\n    return this.httpClient.get<PortalWrapper>(`${this.baseUrlV1}/current?url=${url}`)\n  }\n}\n","import { Injectable } from '@angular/core'\nimport { TranslateService } from '@ngx-translate/core'\nimport { AppStateService, ConfigurationService, UserService, InitializeModuleGuard as _InitializeModuleGuard } from '@onecx/angular-integration-interface'\n/**\n * @deprecated\n * Please import from @onecx/angular-integration-interface, because in edge cases permission errors occur,\n * when @onecx/angular-integration-interface is not shared and the version from portal-integration-angular is used.\n */\n\n@Injectable({ providedIn: 'any' })\nexport class InitializeModuleGuard extends _InitializeModuleGuard {\n  constructor(\n    translateService: TranslateService,\n    configService: ConfigurationService,\n    appStateService: AppStateService,\n    userService: UserService\n  ) {\n    super(translateService, configService, appStateService, userService)\n  }\n}\n","import { Injectable } from '@angular/core'\nimport { HttpClient } from '@angular/common/http'\nimport { Observable } from 'rxjs'\nimport { UserProfile } from '../model/user-profile.model'\nimport { PlatformLocation } from '@angular/common'\n\n@Injectable({ providedIn: 'root' })\nexport class UserProfileAPIService {\n  private url = './portal-api/v1/userProfile/me'\n  private personUrl = './portal-api/v1/userProfile/me/userPerson'\n  private avatarUrl = './portal-api/v1/userProfile/me/avatar'\n  private settingsUrl = './portal-api/v1/userProfile/me/settings'\n  private changePasswordUrl = './portal-api/v1/userProfile/me/change-password'\n\n  constructor(private http: HttpClient, private platformLoc: PlatformLocation) {}\n\n  getCurrentUser(): Observable<UserProfile> {\n    return this.http.get<UserProfile>(this.platformLoc.getBaseHrefFromDOM() + this.url)\n  }\n}\n","import { EventEmitter, Injectable, OnDestroy, Type, isDevMode } from '@angular/core'\nimport { TranslateService } from '@ngx-translate/core'\nimport { Observable, filter, mergeMap } from 'rxjs'\nimport { DialogService, DynamicDialogComponent, DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog'\n\nimport { ButtonDialogButtonDetails, ButtonDialogCustomButtonDetails, ButtonDialogData } from '../model/button-dialog'\nimport { DialogMessageContentComponent } from '../core/components/button-dialog/dialog-message-content/dialog-message-content.component'\nimport { PrimeIcon } from '@onecx/angular-accelerator'\nimport { DialogFooterComponent } from '../core/components/dialog/dialog-footer/dialog-footer.component'\nimport { DialogContentComponent } from '../core/components/dialog/dialog-content/dialog-content.component'\nimport { NavigationStart, Router } from '@angular/router'\nimport { CurrentLocationTopicPayload, EventsTopic, TopicEventType } from '@onecx/integration-interface'\nimport { Capability, ShellCapabilityService } from '@onecx/angular-integration-interface'\nimport { AppStateService } from '@onecx/angular-integration-interface'\n\n/**\n * Object containing key for translation with parameters object for translation\n *\n * @example\n * ## Assume such translation is in the translation file\n * ```typescript\n * const translations = {\n *   MY_KEY = 'text with parameter value = {{value}}',\n * }\n * ```\n *\n * ## TranslationKeyWithParameters declaration\n * ```\n * // will be translated into\n * // text with parameter value = hello\n * const myKey: TranslationKeyWithParameters = {\n *   key: 'MY_KEY',\n *   parameters: {\n *     value: 'hello',\n *   },\n * }\n * ```\n */\ntype TranslationKeyWithParameters = { key: string; parameters: Record<string, unknown> }\n/**\n * String with key to translation or {@link TranslationKeyWithParameters} object. If provided string cannot be translated it will be displayed as is.\n */\ntype TranslationKey = string | TranslationKeyWithParameters\n/**\n * Object containing message of type {@link TranslationKey} and icon to be displayed along the message.\n *\n * @example\n * DialogMessage with TranslationKey will display 'text with parameter value = hello' and question mark icon\n *\n * ## Assume such translation is in the translation file\n * ```\n * const translations = {\n *   MY_KEY = 'text with parameter value = {{value}}',\n * }\n * ```\n *\n * ## DialogMessage declaration\n * ```\n * const myDialogMessage: DialogMessage = {\n *   message: {\n *     key: 'MY_KEY',\n *     parameters: {\n *       value = 'hello',\n *     },\n *   },\n *   icon: PrimeIcons.QUESTION\n * }\n * ```\n */\ntype DialogMessage = { message: TranslationKey; icon: PrimeIcon }\n\n/**\n * Implement via component class to be displayed by {@link PortalDialogService.openDialog}\n *\n * Use if you want {@link PortalDialogService.openDialog} to return state of displayed component's current dialogResult value alongside the clicked button.\n *\n * @example\n * Display component implementing DialogResult<string> and react on the returned value\n *\n * ## Component declaration\n * ```\n * ⁣@Component({template: `<div>\n * <input (change)=\"onInputChange($event)\">\n * </div>`})\n * export class MyInputComponent implements DialogResult<string> {\n *   dialogResult: string = ''\n *\n *   onInputChange(event: any) {\n *     this.dialogResult = event.target.value\n *   }\n * }\n * ```\n *\n * ## PortalDialogService call\n * ```\n * portalDialogService.openDialog(title, { type: MyInputComponent }, primaryButton, ...).subscribe((result: DialogState<string>) => {\n * // result.value === MyInputComponent.dialogResult (during button click)\n * // behavior when dialog closes\n * })\n * ```\n *\n */\nexport interface DialogResult<T> {\n  dialogResult: T\n}\n/**\n * Implement via component class to be displayed by {@link PortalDialogService.openDialog}\n *\n * Use to control the state of the primary button (disabled or enabled). Whenever your component wants to disable/enable primary button it should emit boolean equal to whether primary button should be enabled.\n *\n * If you implement this interface then primary button will be disabled until the emitter emits true\n */\nexport interface DialogPrimaryButtonDisabled {\n  primaryButtonEnabled: EventEmitter<boolean>\n}\n/**\n * Implement via component class to be displayed by {@link PortalDialogService.openDialog}\n *\n * Use to control the state of the secondary button (disabled or enabled). Whenever your component wants to disable/enable secondary button it should emit boolean equal to whether secondary button should be enabled.\n *\n * If you implement this interface then secondary button will be disabled until the emitter emits true\n */\nexport interface DialogSecondaryButtonDisabled {\n  secondaryButtonEnabled: EventEmitter<boolean>\n}\n\n/**\n * Implement via component class to be displayed by {@link PortalDialogService.openDialog}\n *\n * Use to control the state of custom buttons (disabled or enabled). Whenever your component wants to disable/enable any custom button it should emit an object indicating which button should be disabled/enabled. This object should contain id property (string) related to previously defined button and enabled property (boolean) equal to whether custom button should be enabled.\n *\n * If you implement this interface then all custom buttons will be disabled until the emitter emits true\n */\nexport interface DialogCustomButtonsDisabled {\n  customButtonEnabled: EventEmitter<{ id: string; enabled: boolean }>\n}\n/**\n * Implement via component class to be displayed by {@link PortalDialogService.openDialog}\n *\n * Use to add behavior on button clicks. {@link DialogButtonClicked.ocxDialogButtonClicked} method will be called everytime any button is clicked and should return boolean value (or Observable<boolean> or Promise<boolean>) equal to whether dialog should be closed or not.\n *\n * {@link DialogButtonClicked.ocxDialogButtonClicked} will recieve object containing component's state captured on button click. It will have button property with value 'primary' or 'secondary' which determines which button was clicked.\n *\n * It will also have result property which by default will be undefined, however if you want to add any properties to the state please combine this interface with {@link DialogResult}. That way result will be equal to component's dialogResult property captured on button click.\n *\n * @example\n * Display component implementing DialogResult<string> and DialogButtonClicked which should not close dialog on clear click but should close when send clicked and api call was sucessful\n *\n * ## Component declaration\n * ```\n * ⁣@Component({template: `<div>\n * <input (change)=\"onInputChange($event)\">\n * </div>`})\n * export class MyInputComponent implements DialogResult<string>, DialogButtonClicked {\n *   dialogResult: string = ''\n *\n *   onInputChange(event: any) {\n *     this.dialogResult = event.target.value\n *   }\n *\n *   ocxDialogButtonClicked(state: DialogState<string>) {\n *     // here you can do any operations you desire\n *     // such as form validation\n *     // api calls and so on\n *     if (state.button === 'primary') {\n *       // send form data to server\n *       this.apiService.postInput(state.result, ...).pipe(\n *         // map response to boolean meaning if call was successfull\n *       )\n *       return true // if dialog should be closed return true\n *     } else {\n *       // clear input\n *       return false // don't want to close the dialog, only to clear it\n *     }\n *   }\n * }\n * ```\n *\n * ## PortalDialogService call\n * ```\n * portalDialogService.openDialog(title, { type: MyInputComponent }, \"Send\", \"Clear\").subscribe((result: DialogState<string>) => {\n * // behavior to be fired when dialog closes\n * })\n * ```\n */\nexport interface DialogButtonClicked<T = unknown> {\n  ocxDialogButtonClicked(state: DialogState<T>): Observable<boolean> | Promise<boolean> | boolean | undefined | void\n}\n\n/**\n * Object containing component type to be displayed and inputs to populate the component.\n *\n * @example\n *\n * ```\n * ⁣@Component({template: `<h1>{{content}}</h1>`})\n * export class MyComponent {\n *   ⁣@Input() content: string = ''\n * }\n * const myComponent = {\n *   type: MyComponent,\n *   inputs: {\n *     content: 'My header content',\n *   },\n * }\n * ```\n */\n// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-constraint\ntype Component<T extends unknown> = unknown extends T\n  ? {\n      type: Type<any>\n      inputs?: Record<string, unknown>\n    }\n  : {\n      type: Type<DialogResult<T>>\n      inputs?: Record<string, unknown>\n    }\n\nexport type DialogButton = 'primary' | 'secondary' | 'custom'\nexport type DialogStateButtonClicked = 'primary' | 'secondary' | 'custom'\n\n/**\n * Object containing information about clicked button ('primary' or 'secondary') and displayed component state captured on button click (only if component implements {@link DialogResult} interface)\n */\nexport type DialogState<T> = {\n  button: DialogStateButtonClicked\n  result: T | undefined\n  id?: string\n}\n\nexport type PortalDialogConfig = {\n  showXButton?: boolean\n  customButtons?: ButtonDialogCustomButtonDetails[]\n  autoFocusButton?: DialogButton\n  autoFocusButtonCustomId?: string\n  ariaLabelledBy?: string\n  width?: string\n  height?: string\n  closeOnEscape?: boolean\n  focusOnShow?: boolean\n  focusTrap?: boolean\n  baseZIndex?: number\n  autoZIndex?: boolean\n  dismissableMask?: boolean\n  showHeader?: boolean\n  modal?: boolean\n  resizable?: boolean\n  draggable?: boolean\n  keepInViewport?: boolean\n  minX?: number\n  minY?: number\n  maximizable?: boolean\n  maximizeIcon?: string\n  minimizeIcon?: string\n  position?: string\n  closeAriaLabel?: string\n}\n\nexport interface PortalDialogServiceData {\n  primaryButtonEnabled$: EventEmitter<boolean>\n  secondaryButtonEnabled$: EventEmitter<boolean>\n  customButtonEnabled$: EventEmitter<{ id: string; enabled: boolean }>\n  buttonClicked$: EventEmitter<DialogState<unknown>>\n}\n\n@Injectable({ providedIn: 'any' })\nexport class PortalDialogService implements OnDestroy {\n  private eventsTopic: EventsTopic = new EventsTopic()\n  constructor(\n    private dialogService: DialogService,\n    private translateService: TranslateService,\n    private capabilityService: ShellCapabilityService,\n    private appStateService: AppStateService,\n    private router: Router\n  ) {\n    this.router.events.subscribe((event) => {\n      if (event instanceof NavigationStart) {\n        this.cleanupAndCloseDialog()\n      }\n    })\n    let observable: Observable<TopicEventType | CurrentLocationTopicPayload> =\n      this.appStateService.currentLocation$.asObservable()\n    if (!this.capabilityService.hasCapability(Capability.CURRENT_LOCATION_TOPIC)) {\n      observable = this.eventsTopic.pipe(filter((e) => e.type === 'navigated'))\n    }\n    observable.subscribe(() => {\n      this.cleanupAndCloseDialog()\n    })\n  }\n\n  ngOnDestroy(): void {\n    this.cleanupAndCloseDialog()\n    this.eventsTopic.destroy()\n  }\n\n  /**\n   * @deprecated\n   */\n  open(componentType: Type<any>, config: DynamicDialogConfig): DynamicDialogRef {\n    if (isDevMode()) {\n      console.warn('You are using a deprecated method to display a dialog. Please move to the new one')\n    }\n    return this.dialogService.open(componentType, config)\n  }\n\n  /**\n   * Opens dialog with a component or message to display and one or two buttons. This method allows you to customize the dialog using parameters and by implementic specific interfaces via component to be displayed. The dialog is only shown if if you subscribe to this function.\n   *\n   * Displaying component inisde the dialog can be achieved by providing the component class with optional inputs. By default the component will be shown without any interaction with the dialog, however you can implement the following interfaces by your component class to allow for some interactions:\n   * - {@link DialogResult} - dialog state will contain dialogResult property\n   *\n   * - {@link DialogButtonClicked} - on button click ocxDialogButtonClicked function will be called with dialog state as a parameter. You should return true if you want dialog to be close or false if not and add any operations on your component.\n   *\n   * - {@link DialogPrimaryButtonDisabled} - dialog will use the EventEmitter to determine if the primary button should be disabled\n   *\n   * - {@link DialogSecondaryButtonDisabled} - dialog will use the EventEmitter to determine if the secondary button should be disabled\n   *\n   * - {@link DialogCustomButtonsDisabled} - dialog will use the EventEmitter to determine if the custom buttons should be disabled\n   *\n   * @param title Translation key for dialog title\n   * @param componentOrMessage Either a component or a translation key of a message with optional parameters and icon to be displayed next to the message\n   * @param primaryButtonTranslationKeyOrDetails Translation key with optional parameters and icon to be displayed next to the text of the button\n   * @param secondaryButtonTranslationKeyOrDetails Translation key with optional parameters and icon to be displayed next to the text of the button\n   * @param extras Configuration object allowing for customization of the dialog behavior and visual aspects\n   * @returns Observable containing dialog state on close\n   *\n   *\n   * @example\n   * Display dialog with message and two buttons using translation keys\n   *\n   * ```\n   * // assume 'TITLE_KEY', 'WELCOME_MESSAGE', 'OK_BUTTON' and 'REFRESH_BUTTON' are translation keys\n   * this.portalDialogService.openDialog('TITLE_KEY', 'WELCOME_MESSAGE', 'OK_BUTTON', 'REFRESH_BUTTON').subscribe((stateOnClose) => {\n   *   // operations when dialog has been closed\n   * })\n   * ```\n   *\n   * @example\n   * Display dialog message with icon and single button\n   *\n   * ```\n   * // Welcome message with question mark icon\n   * const dialogMessage = {\n   *   key: 'WELCOME_MESSAGE',\n   *   icon: PrimeIcons.QUESTION\n   * }\n   * this.portalDialogService.openDialog('TITLE_KEY', dialogMessage, 'OK_BUTTON').subscribe((stateOnClose) => {\n   *   // operations when dialog has been closed\n   * })\n   * ```\n   *\n   * @example\n   * Display dialog message with two customized buttons\n   *\n   * ```\n   * // Ok button with check icon\n   * const primaryButton = {\n   *   key: 'OK_BUTTON',\n   *   icon: PrimeIcons.CHECK\n   *   tooltipKey: 'OK_TOOLTIP',\n   *   tooltipPosition: 'bottom'\n   * }\n   *\n   * // Refresh button with refresh icon\n   * const secondaryButton = {\n   *   key: 'REFRESH_BUTTON',\n   *   icon: PrimeIcons.REFRESH\n   *   tooltipKey: 'REFRESH_TOOLTIP',\n   *   tooltipPosition: 'right'\n   * }\n   *\n   * this.portalDialogService.openDialog('TITLE_KEY', 'WELCOME_MESSAGE', primaryButton, secondaryButton).subscribe((stateOnClose) => {\n   *   // operations when dialog has been closed\n   * })\n   * ```\n   *\n   * @example\n   * Display dialog message without X button in top right corner\n   *\n   * ```\n   * this.portalDialogService.openDialog('TITLE_KEY', 'WELCOME_MESSAGE', 'OK_BUTTON', 'REFRESH_BUTTON', false).subscribe((stateOnClose) => {\n   *   // operations when dialog has been closed\n   * })\n   * ```\n   *\n   * @example\n   * React on dialog closing\n   *\n   * ```\n   * this.portalDialogService.openDialog('TITLE_KEY', 'WELCOME_MESSAGE', 'OK_BUTTON', 'REFRESH_BUTTON').subscribe((stateOnClose) => {\n   *   // operations when dialog has been closed\n   * })\n   * ```\n   *\n   * @example\n   * Display dialog with component\n   *\n   * ## Component declaration\n   * ```\n   * ⁣@Component({template: `<div>\n   * <h1>{{header | translate}}</h1>\n   * <input (change)=\"onInputChange($event)\">\n   * </div>`})\n   * export class MyInputComponent implements DialogResult<string>,  DialogButtonClicked, DialogPrimaryButtonDisabled, DialogSecondaryButtonDisabled {\n   *   ⁣@Input() header: string = ''\n   *   // change value to manipulate component state visible by dialog\n   *   dialogResult: string = ''\n   *   // emit true/false to disable primary button\n   *   ⁣@Output() primaryButtonEnabled: EventEmitter<boolean> = new EventEmitter()\n   *   // emit true/false to disable secondary button\n   *   ⁣@Output() secondaryButtonEnabled: EventEmitter<boolean> = new EventEmitter()\n   *\n   *   // implement operations to be done on button clicks and return if the dialog should be closed\n   *   ocxDialogButtonClicked(state: DialogState<string>) {\n   *     return true\n   *   }\n   *\n   *   onInputChange(event: any) {\n   *     this.dialogResult = event.target.value\n   *   }\n   * }\n   * ```\n   *\n   * ## PortalDialogService call\n   * ```\n   * const myComponent = {\n   *   type: MyInputComponent,\n   *   inputs: {\n   *     header: 'DIALOG_HEADER'\n   *   }\n   * }\n   * this.portalDialogService.openDialog('TITLE_KEY', myComponent, 'OK_BUTTON', 'REFRESH_BUTTON').subscribe((stateOnClose) => {\n   *   // operations when dialog has been closed\n   * })\n   * ```\n   *\n   * @example\n   * Display dialog with component without passing inputs\n   *\n   * ## PortalDialogService call\n   * ```\n   * this.portalDialogService.openDialog('TITLE_KEY', MyInputComponent, 'OK_BUTTON', 'REFRESH_BUTTON').subscribe((stateOnClose) => {\n   *   // operations when dialog has been closed\n   * })\n   * ```\n   */\n  openDialog<T>(\n    title: TranslationKey | null,\n    componentOrMessage: Type<any> | Type<DialogResult<T>> | Component<T> | TranslationKey | DialogMessage,\n    primaryButtonTranslationKeyOrDetails: TranslationKey | ButtonDialogButtonDetails,\n    secondaryButtonTranslationKeyOrDetails?: TranslationKey | ButtonDialogButtonDetails,\n    extras?: PortalDialogConfig\n  ): Observable<DialogState<T>>\n  /**\n   * @deprecated Use `extras` instead of `showXButton`\n   */\n  openDialog<T>(\n    title: TranslationKey | null,\n    componentOrMessage: Type<any> | Type<DialogResult<T>> | Component<T> | TranslationKey | DialogMessage,\n    primaryButtonTranslationKeyOrDetails: TranslationKey | ButtonDialogButtonDetails,\n    secondaryButtonTranslationKeyOrDetails?: TranslationKey | ButtonDialogButtonDetails,\n    showXButton?: boolean\n  ): Observable<DialogState<T>>\n  openDialog<T>(\n    title: TranslationKey | null,\n    componentOrMessage: Type<any> | Type<DialogResult<T>> | Component<T> | TranslationKey | DialogMessage,\n    primaryButtonTranslationKeyOrDetails: TranslationKey | ButtonDialogButtonDetails,\n    secondaryButtonTranslationKeyOrDetails?: TranslationKey | ButtonDialogButtonDetails,\n    extrasOrShowXButton: PortalDialogConfig | boolean = {}\n  ): Observable<DialogState<T>> {\n    const dialogOptions: PortalDialogConfig =\n      typeof extrasOrShowXButton === 'object'\n        ? extrasOrShowXButton\n        : {\n            showXButton: extrasOrShowXButton,\n          }\n    const translateParams = this.prepareTitleForTranslation(title)\n\n    const componentToRender: Component<any> = this.getComponentToRender(componentOrMessage)\n    const dynamicDialogDataConfig: ButtonDialogData = {\n      component: componentToRender.type as Type<any>,\n      config: {\n        primaryButtonDetails: this.buttonDetailsOrTranslationKey(primaryButtonTranslationKeyOrDetails),\n        secondaryButtonIncluded: secondaryButtonTranslationKeyOrDetails !== undefined,\n        secondaryButtonDetails: this.buttonDetailsOrTranslationKey(secondaryButtonTranslationKeyOrDetails),\n        customButtons: dialogOptions.customButtons?.map(\n          (button) => this.buttonDetailsOrTranslationKey(button) as ButtonDialogCustomButtonDetails\n        ),\n        autoFocusButton: dialogOptions.autoFocusButton,\n        autoFocusButtonCustomId: dialogOptions.autoFocusButtonCustomId,\n      },\n      componentData: componentToRender.inputs,\n    }\n\n    return this.translateService.get(translateParams.key, translateParams.parameters).pipe(\n      mergeMap((dialogTitle) => {\n        return this.dialogService.open(DialogContentComponent, {\n          header: dialogTitle,\n          data: {\n            ...dynamicDialogDataConfig,\n            portalDialogServiceData: {\n              primaryButtonEnabled$: new EventEmitter(),\n              secondaryButtonEnabled$: new EventEmitter(),\n              customButtonEnabled$: new EventEmitter(),\n              buttonClicked$: new EventEmitter(),\n            } satisfies PortalDialogServiceData,\n          },\n          closable: dialogOptions.showXButton && secondaryButtonTranslationKeyOrDetails !== undefined,\n          ...dialogOptions,\n          focusOnShow: false,\n          appendTo: 'body', // Important for the function findBodyChild\n          duplicate: true, // Since dialog always opens DialogContentComponent, duplicates must be always allowed\n          templates: {\n            footer: DialogFooterComponent,\n          },\n        }).onClose\n      })\n    )\n  }\n\n  private cleanupAndCloseDialog() {\n    if (this.dialogService.dialogComponentRefMap.size > 0) {\n      this.dialogService.dialogComponentRefMap.forEach((_, dialogRef) => {\n        const dialogComponent = this.dialogService.getInstance(dialogRef)\n        dialogRef.close()\n        this.removeDialogFromHtml(dialogComponent)\n      })\n    }\n  }\n\n  private removeDialogFromHtml(dialogComponent: DynamicDialogComponent) {\n    const container = dialogComponent.container\n    if (!container) return\n    const bodyChild = this.findBodyChild(container)\n    bodyChild && document.body.removeChild(bodyChild)\n  }\n\n  private findBodyChild(element: HTMLElement) {\n    let currentNode = element\n    while (currentNode.parentElement && currentNode.parentElement != document.body) {\n      currentNode = currentNode.parentElement\n    }\n    return currentNode.parentElement === document.body ? currentNode : undefined\n  }\n\n  private prepareTitleForTranslation(title: TranslationKey | null): TranslationKeyWithParameters {\n    if (!title) return { key: '', parameters: {} }\n    if (this.isString(title)) return { key: title, parameters: {} }\n    return title\n  }\n\n  private buttonDetailsOrTranslationKey(\n    buttonTranslationKeyOrDetails:\n      | TranslationKey\n      | ButtonDialogButtonDetails\n      | ButtonDialogCustomButtonDetails\n      | undefined\n  ): ButtonDialogButtonDetails | ButtonDialogCustomButtonDetails | undefined {\n    if (buttonTranslationKeyOrDetails === undefined) {\n      return undefined\n    }\n\n    let buttonDetails\n\n    if (this.isString(buttonTranslationKeyOrDetails)) {\n      buttonDetails = {\n        key: buttonTranslationKeyOrDetails,\n      }\n    } else {\n      buttonDetails = buttonTranslationKeyOrDetails\n    }\n\n    return buttonDetails\n  }\n\n  private getComponentToRender(\n    componentOrMessage: Type<any> | Type<DialogResult<any>> | Component<any> | TranslationKey | DialogMessage\n  ): Component<any> {\n    if (this.isTranslationKey(componentOrMessage)) {\n      return {\n        type: DialogMessageContentComponent,\n        inputs: {\n          message: this.isString(componentOrMessage) ? componentOrMessage : componentOrMessage.key,\n          messageParameters: this.isString(componentOrMessage) ? {} : componentOrMessage.parameters,\n        },\n      }\n    } else if (this.isDialogMessage(componentOrMessage)) {\n      return {\n        type: DialogMessageContentComponent,\n        inputs: {\n          message: this.isString(componentOrMessage.message)\n            ? componentOrMessage.message\n            : componentOrMessage.message.key,\n          icon: componentOrMessage.icon,\n          messageParameters: this.isString(componentOrMessage.message) ? {} : componentOrMessage.message.parameters,\n        },\n      }\n    } else if (this.isType(componentOrMessage)) {\n      return {\n        type: componentOrMessage,\n      }\n    }\n    return componentOrMessage\n  }\n\n  private isTranslationKey(obj: any): obj is TranslationKey {\n    return this.isString(obj) || ('key' in obj && 'parameters' in obj)\n  }\n\n  private isString(obj: any): obj is string {\n    return typeof obj === 'string' || obj instanceof String\n  }\n\n  private isDialogMessage(obj: any): obj is DialogMessage {\n    return 'message' in obj && 'icon' in obj\n  }\n\n  private isType(obj: any): obj is Type<any> {\n    return obj instanceof Type\n  }\n}\n\nexport function providePortalDialogService() {\n  return [DialogService, PortalDialogService]\n}\n","import { Inject, Injectable, LOCALE_ID } from '@angular/core'\nimport { TranslateService } from '@ngx-translate/core'\nimport { firstValueFrom, map, Observable, of } from 'rxjs'\nimport { DateUtils } from '@onecx/angular-accelerator'\nimport { ObjectUtils } from '@onecx/angular-accelerator'\nimport { ColumnType } from '@onecx/angular-accelerator'\n\n@Injectable({ providedIn: 'any' })\nexport class ExportDataService {\n  constructor(\n    private dateUtils: DateUtils,\n    private translateService: TranslateService,\n    @Inject(LOCALE_ID) private locale: string\n  ) {}\n\n  async exportCsv<T extends string | number | symbol>(\n    columns: { id: string; nameKey: string; columnType: ColumnType }[],\n    data: Partial<Record<T, unknown | undefined>>[],\n    fileName: string\n  ): Promise<void> {\n    if (!columns.length) {\n      return\n    }\n    const flattenedData = data.map((d) =>\n      columns.reduce((obj, c) => ({ ...obj, [c.id]: ObjectUtils.resolveFieldData(d, c.id) }), {})\n    )\n    const translatedData = await firstValueFrom(this.translateData(columns, flattenedData))\n    const dataToExport = this.formatData(columns, translatedData)\n    const delimiter = this.locale.startsWith('de') ? ';' : ','\n    const dataString = dataToExport\n      .map((d) =>\n        columns\n          .reduce((arr: unknown[], c) => [...arr, d[c.id]], [])\n          .map((d) => this.escapeDelimiter(delimiter, d))\n          .join(delimiter)\n      )\n      .join('\\r\\n')\n    const headerString = (await firstValueFrom(this.translateColumnNames(columns)))\n      .map((c) => c.name)\n      .map((c) => this.escapeDelimiter(delimiter, c))\n      .join(delimiter)\n\n    const csvString = headerString + '\\r\\n' + dataString\n\n    const blob = new Blob(['\\ufeff' + csvString], {\n      type: 'text/csv;charset=utf-8;',\n    })\n    const dwldLink = document.createElement('a')\n    const url = URL.createObjectURL(blob)\n\n    dwldLink.setAttribute('href', url)\n\n    dwldLink.setAttribute('download', fileName)\n    dwldLink.click()\n  }\n\n  private translateColumnNames(\n    columns: { id: string; nameKey: string; columnType: ColumnType }[]\n  ): Observable<{ id: string; name: string; columnType: ColumnType }[]> {\n    return this.translateService\n      .get(columns.map((c) => c.nameKey))\n      .pipe(map((translations) => columns.map((c) => ({ ...c, name: translations[c.nameKey] }))))\n  }\n\n  private formatData(\n    columns: { id: string; nameKey: string; columnType: ColumnType }[],\n    data: Record<string, unknown>[]\n  ): { [columnId: string]: unknown }[] {\n    return data.map((d) =>\n      columns.reduce((obj, c) => {\n        if (c.columnType === ColumnType.DATE || c.columnType === ColumnType.RELATIVE_DATE) {\n          return {\n            ...obj,\n            [c.id]: this.dateUtils.localizedDate(d[c.id] ? String(d[c.id]) : undefined),\n          }\n        }\n        return { ...obj, [c.id]: d[c.id] }\n      }, {})\n    )\n  }\n\n  private translateData(\n    columns: { id: string; nameKey: string; columnType: ColumnType }[],\n    data: Record<string, unknown>[]\n  ): Observable<{ [columnId: string]: unknown }[]> {\n    let translationKeys: string[] = []\n    const translatedColumns = columns.filter((c) => c.columnType === ColumnType.TRANSLATION_KEY)\n    translatedColumns.forEach((c) => {\n      translationKeys = [...translationKeys, ...data.map((i) => i[c.id]?.toString() ?? '')]\n    })\n    if (translationKeys.length) {\n      return this.translateService.get(translationKeys).pipe(\n        map((translatedValues: Record<string, string>) => {\n          return data.map((d) =>\n            columns.reduce(\n              (obj, c) => ({\n                ...obj,\n                [c.id]: c.columnType === ColumnType.TRANSLATION_KEY ? translatedValues[String(d[c.id])] : d[c.id],\n              }),\n              {}\n            )\n          )\n        })\n      )\n    }\n    return of(data)\n  }\n\n  private escapeDelimiter(delimiter: ';' | ',', data: unknown) {\n    if (data === null || data === undefined) {\n      return data\n    }\n\n    let str = String(data)\n\n    if (str.includes('\"')) {\n      str = str.replaceAll('\"', '\"\"')\n    }\n\n    if (str.includes(delimiter)) {\n      str = `\"${str}\"`\n    }\n    return str\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core'\nimport { TranslateService } from '@ngx-translate/core'\n\nconst DIVISIONS: { amount: number; name: Intl.RelativeTimeFormatUnit }[] = [\n  { amount: 60, name: 'seconds' },\n  { amount: 60, name: 'minutes' },\n  { amount: 24, name: 'hours' },\n  { amount: 7, name: 'days' },\n  { amount: 4.34524, name: 'weeks' },\n  { amount: 12, name: 'months' },\n  { amount: Number.POSITIVE_INFINITY, name: 'years' },\n]\n\n@Pipe({\n  name: 'relativeDate',\n})\nexport class RelativeDatePipe implements PipeTransform {\n  rtf: Intl.RelativeTimeFormat\n\n  constructor(private translateService: TranslateService) {\n    this.rtf = new Intl.RelativeTimeFormat(this.translateService.currentLang, {\n      style: 'long',\n    })\n  }\n\n  transform(value: any): any {\n    let date: Date = new Date()\n    switch (typeof value) {\n      case 'string':\n        date = new Date(value)\n        break\n      case 'object':\n        date = value\n        break\n      default:\n        break\n    }\n\n    let duration = (date.getTime() - new Date().getTime()) / 1000\n    for (let i = 0; i <= DIVISIONS.length; i++) {\n      const division = DIVISIONS[i]\n      if (Math.abs(duration) < division.amount) {\n        return this.rtf.format(Math.round(duration), division.name)\n      }\n      duration /= division.amount\n    }\n  }\n}\n","import { Injectable } from '@angular/core'\nimport { BehaviorSubject } from 'rxjs'\nimport { IAuthService } from '@onecx/angular-integration-interface'\nimport { UserProfile } from '../model/user-profile.model'\n\n@Injectable()\nexport class MockAuthService implements IAuthService {\n  private mockUser: UserProfile = {\n    person: {\n      displayName: 'Max Musterman',\n      firstName: 'Max',\n      lastName: 'Mustermann',\n      email: 'max.mustermann@example.com',\n      address: {\n        street: 'Broadway',\n        streetNo: '13',\n        city: 'New York',\n        postalCode: '123456',\n        country: 'Long Country Name',\n      },\n      phone: {\n        number: '+12 456789123',\n      },\n    },\n    accountSettings: {\n      localeAndTimeSettings: { locale: 'de', timezone: 'GMT' },\n      notificationSettings: {},\n      privacySettings: {},\n    },\n    id: 'ID_MOCK_USER',\n    identityProvider: 'MOCK_TKIT_PORTAL_LIB',\n    identityProviderId: 'MOCK_ID',\n    roles: ['user', 'admin'],\n    memberships: [\n      {\n        application: 'APP1',\n        roleMemberships: [\n          {\n            role: 'user',\n            permissions: [\n              {\n                action: 'EDIT',\n                resource: 'ITEM',\n                name: 'Edit item',\n                key: 'ITEM#EDIT',\n              },\n            ],\n          },\n        ],\n      },\n    ],\n    userId: 'mock-user',\n  }\n\n  currentUser$: BehaviorSubject<UserProfile | undefined> = new BehaviorSubject<UserProfile | undefined>(this.mockUser)\n\n  getCurrentUser(): UserProfile | null {\n    return this.mockUser\n  }\n\n  getUserRoles(): string[] {\n    return this.mockUser.roles || []\n  }\n\n  currentUser(): UserProfile {\n    return this.mockUser\n  }\n\n  public init(): Promise<boolean> {\n    return new Promise((resolve) => resolve(true))\n  }\n\n  /* eslint-disable @typescript-eslint/no-unused-vars */\n  hasPermission(permissionKey: string): boolean {\n    return true\n  }\n\n  logout() {\n    throw new Error('Method not implemented.')\n  }\n\n  getAuthProviderName() {\n    return 'MOCK_TKIT_PORTAL_LIB'\n  }\n\n  /* eslint-disable @typescript-eslint/no-unused-vars */\n  hasRole(role: string | string[]): boolean {\n    return true\n  }\n\n  getRoles(): string[] {\n    return ['tkit-portal-admin']\n  }\n\n  getIdToken(): string | null {\n    return 'ID_TOKEN'\n  }\n}\n","import { CommonModule } from '@angular/common'\nimport { APP_INITIALIZER, NgModule } from '@angular/core'\nimport { AUTH_SERVICE } from '@onecx/angular-integration-interface'\nimport { MockAuthService } from './mock-auth.service'\n\nfunction initializer(authService: MockAuthService): () => Promise<any> {\n\n  return (): Promise<any> =>\n    authService.init().then((res) => {\n      return res\n    })\n}\n\n/**\n * Mock auth module providing mocked user profile and authnetication. For dev use only.\n */\n@NgModule({\n  imports: [CommonModule],\n  exports: [],\n  declarations: [],\n  providers: [\n    {\n      provide: AUTH_SERVICE,\n      useClass: MockAuthService,\n    },\n    {\n      provide: APP_INITIALIZER,\n      useFactory: initializer,\n      multi: true,\n      deps: [AUTH_SERVICE],\n    },\n  ],\n})\nexport class MockAuthModule {}\n","export interface MfePortalRegistration {\n  portalName: string\n  tenantId?: string\n}\n\nexport enum ModuleType {\n  Angular = 'ANGULAR',\n  Webcomponent = 'WEBCOMPONENT',\n}\n\nexport interface MicrofrontendDTO {\n  id?: string\n  remoteEntry?: string\n  remoteName?: string\n  exposedModule?: string\n  displayName?: string\n  moduleType?: ModuleType\n  wcTagName?: string\n  appId?: string\n  appVersion?: string\n  note?: string\n  contact?: string\n  remoteBaseUrl?: string\n  portals?: MfePortalRegistration[]\n}\n","/**\n * 1000kit internal api\n * API for portal\n *\n * OpenAPI spec version: v1\n *\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nexport interface UserPerson {\n  firstName?: string\n  lastName?: string\n  displayName?: string\n  email?: string\n  address?: UserPersonAddress\n  phone?: UserPersonPhone\n}\n\nexport interface UserPersonAddress {\n  street?: string\n  streetNo?: string\n  city?: string\n  postalCode?: string\n  country?: string\n}\n\nexport interface UserPersonPhone {\n  type?: PhoneType\n  number?: string\n}\n\nexport enum PhoneType {\n  MOBILE = 'MOBILE',\n  LANDLINE = 'LANDLINE',\n}\n","import { NgModule } from '@angular/core'\nimport { DebugComponent } from './components/debug/debug.component'\n\n@NgModule({\n  imports: [],\n  exports: [DebugComponent],\n  declarations: [DebugComponent],\n  providers: [],\n})\nexport class DebugModule {}\n","import {\n  AppStateService,\n  CONFIG_KEY,\n  ConfigurationService,\n  ThemeService,\n  UserService,\n} from '@onecx/angular-integration-interface'\nimport { MfeInfo } from '@onecx/integration-interface'\nimport { firstValueFrom } from 'rxjs'\nimport { PortalApiService } from '../../services/portal-api.service'\nimport { UserProfileAPIService } from '../../services/userprofile-api.service'\n\nconst CONFIG_INIT_ERR = 'CONFIG_INIT_ERR'\nconst USER_INIT_ERR = 'USER_INIT_ERR'\nconst THEME_INIT_ERR = 'THEME_INIT_ERR'\nconst PORTAL_LOAD_INIT_ERR = 'PORTAL_LOAD_INIT_ERR'\n\n/**\n * This initializer only runs in standalone mode of the apps and not in portal-mf-shell\n */\nexport function standaloneInitializer(\n  config: ConfigurationService,\n  portalApi: PortalApiService,\n  themeService: ThemeService,\n  appName: string,\n  appStateService: AppStateService,\n  userService: UserService,\n  userProfileAPIService: UserProfileAPIService\n): () => Promise<any> {\n  // eslint-disable-next-line no-restricted-syntax\n  console.time('initializer')\n  console.log(`⭐ Standalone initializer for: `, appName)\n  let errCause: string\n\n  return async () => {\n    try {\n      let configOk = false\n      try {\n        configOk = await config.init()\n        await config.isInitialized\n      } catch (e) {\n        errCause = CONFIG_INIT_ERR\n        throw e\n      }\n      console.log(`📑 config OK? ${configOk}`)\n\n      await appStateService.isAuthenticated$.isInitialized\n\n      try {\n        const profile = await firstValueFrom(userProfileAPIService.getCurrentUser())\n        await userService.profile$.publish(profile)\n      } catch (e) {\n        errCause = USER_INIT_ERR\n        throw e\n      }\n      console.log('📑 user initialized')\n      let portal = undefined\n      try {\n        portal = await firstValueFrom(portalApi.getPortalData(config.getProperty(CONFIG_KEY.TKIT_PORTAL_ID) || 'ADMIN'))\n      } catch (e) {\n        errCause = PORTAL_LOAD_INIT_ERR\n        throw e\n      }\n      console.log(`📃 portal OK? `, portal)\n      await appStateService.currentPortal$.publish({\n        ...portal,\n        workspaceName: portal.portalName,\n      })\n\n      const standaloneMfeInfo: MfeInfo = {\n        mountPath: '/',\n        remoteBaseUrl: '.',\n        baseHref: '/',\n        shellName: 'standalone',\n        appId: '',\n        productName: '',\n        remoteName: '',\n        elementName: '',\n      }\n      await appStateService.globalLoading$.publish(true)\n      await appStateService.currentMfe$.publish(standaloneMfeInfo)\n      await appStateService.globalLoading$.publish(false)\n\n      let theme = undefined\n      if (!portal) {\n        throw new Error('No portal data found')\n      } else {\n        try {\n          if (portal.themeName) {\n            theme = await firstValueFrom(themeService.loadAndApplyTheme(portal.themeName))\n          }\n        } catch (e) {\n          errCause = THEME_INIT_ERR\n          throw e\n        }\n      }\n      return theme\n    } catch (e) {\n      console.log('Standalone Initializer')\n      console.log(`🛑 Error during initialization: ${errCause} ${e} `)\n      console.dir(e)\n      await appStateService.globalError$.publish(errCause || 'INITIALIZATION_ERROR')\n      return undefined\n    } finally {\n      // eslint-disable-next-line no-restricted-syntax\n      console.timeEnd('initializer')\n    }\n  }\n}\n","import { NgModule } from '@angular/core'\nimport { BadgeModule } from 'primeng/badge'\nimport { BreadcrumbModule } from 'primeng/breadcrumb'\nimport { ButtonModule } from 'primeng/button'\nimport { DropdownModule } from 'primeng/dropdown'\nimport { MenuModule } from 'primeng/menu'\nimport { MenubarModule } from 'primeng/menubar'\nimport { MessageModule } from 'primeng/message'\nimport { MessagesModule } from 'primeng/messages'\nimport { RippleModule } from 'primeng/ripple'\nimport { SkeletonModule } from 'primeng/skeleton'\nimport { ToastModule } from 'primeng/toast'\nimport { TooltipModule } from 'primeng/tooltip'\nimport { SelectButtonModule } from 'primeng/selectbutton'\nimport { InputTextModule } from 'primeng/inputtext'\nimport { ToggleButtonModule } from 'primeng/togglebutton'\nimport { PickListModule } from 'primeng/picklist'\nimport { MultiSelectModule } from 'primeng/multiselect'\nimport { TableModule } from 'primeng/table'\nimport { InputNumberModule } from 'primeng/inputnumber'\nimport { DialogModule } from 'primeng/dialog'\nimport { InputSwitchModule } from 'primeng/inputswitch'\nimport { DataViewModule } from 'primeng/dataview'\nimport { ChartModule } from 'primeng/chart'\nimport { CheckboxModule } from 'primeng/checkbox'\nimport { TimelineModule } from 'primeng/timeline'\n\n@NgModule({\n  imports: [\n    BadgeModule,\n    BreadcrumbModule,\n    ButtonModule,\n    DialogModule,\n    DropdownModule,\n    InputSwitchModule,\n    MenuModule,\n    MenubarModule,\n    MessageModule,\n    MessagesModule,\n    RippleModule,\n    SkeletonModule,\n    ToastModule,\n    TooltipModule,\n    SelectButtonModule,\n    InputTextModule,\n    InputNumberModule,\n    ToggleButtonModule,\n    PickListModule,\n    MultiSelectModule,\n    TableModule,\n    DataViewModule,\n    ChartModule,\n    MessageModule,\n    CheckboxModule,\n    TimelineModule,\n  ],\n  exports: [\n    BadgeModule,\n    BreadcrumbModule,\n    ButtonModule,\n    DialogModule,\n    DropdownModule,\n    InputSwitchModule,\n    MenuModule,\n    MenubarModule,\n    MessageModule,\n    MessagesModule,\n    RippleModule,\n    SkeletonModule,\n    ToastModule,\n    TooltipModule,\n    SelectButtonModule,\n    InputTextModule,\n    InputNumberModule,\n    ToggleButtonModule,\n    PickListModule,\n    MultiSelectModule,\n    TableModule,\n    DataViewModule,\n    ChartModule,\n    MessageModule,\n    CheckboxModule,\n    TimelineModule,\n  ],\n})\nexport class PrimeNgModule {}\n","import { CommonModule, registerLocaleData } from '@angular/common'\nimport de from '@angular/common/locales/de'\nimport { APP_INITIALIZER, Inject, LOCALE_ID, ModuleWithProviders, NgModule, Optional, SkipSelf } from '@angular/core'\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms'\nimport { RouterModule } from '@angular/router'\nimport { MissingTranslationHandler, MissingTranslationHandlerParams, TranslateModule } from '@ngx-translate/core'\nimport { AngularAcceleratorModule } from '@onecx/angular-accelerator'\nimport {\n  APPLICATION_NAME,\n  AppStateService,\n  ConfigurationService,\n  SANITY_CHECK,\n  ThemeService,\n  UserService,\n} from '@onecx/angular-integration-interface'\nimport { MessageService } from 'primeng/api'\nimport { ConfirmDialogModule } from 'primeng/confirmdialog'\nimport { PortalApiService } from '../services/portal-api.service'\nimport { UserProfileAPIService } from '../services/userprofile-api.service'\nimport { AnnouncementBannerComponent } from './components/announcement-banner/announcement-banner.component'\nimport { ButtonDialogComponent } from './components/button-dialog/button-dialog.component'\nimport { DialogMessageContentComponent } from './components/button-dialog/dialog-message-content/dialog-message-content.component'\nimport { OcxContentContainerComponent } from './components/content-container/content-container.component'\nimport { OcxContentComponent } from './components/content/content.component'\nimport { ColumnTogglerComponent } from './components/data-view-controls/column-toggler-component/column-toggler.component'\nimport { DataViewControlsComponent } from './components/data-view-controls/data-view-controls.component'\nimport { ViewTemplatePickerComponent } from './components/data-view-controls/view-template-picker/view-template-picker.component'\nimport { DeleteDialogComponent } from './components/delete-dialog/delete-dialog.component'\nimport { GlobalErrorComponent } from './components/error-component/global-error.component'\nimport { HelpItemEditorComponent } from './components/help-item-editor/help-item-editor.component'\nimport { AppInlineProfileComponent } from './components/inline-profile/inline-profile.component'\nimport { LifecycleComponent } from './components/lifecycle/lifecycle.component'\nimport { LoadingIndicatorComponent } from './components/loading-indicator/loading-indicator.component'\nimport { LoadingComponent } from './components/loading/loading.component'\nimport { MfeDebugComponent } from './components/mfe-debug/mfe-debug.component'\nimport { NoHelpItemComponent } from './components/no-help-item/no-help-item.component'\nimport { PageContentComponent } from './components/page-content/page-content.component'\nimport { PagingInfoComponent } from './components/paging-info/paging-info.component'\nimport { PortalFooterComponent } from './components/portal-footer/portal-footer.component'\nimport { HeaderComponent } from './components/portal-header/header.component'\nimport { PortalMenuHorizontalComponent } from './components/portal-menu-horizontal/portal-menu-horizontal.component'\nimport { PortalMenuComponent } from './components/portal-menu/portal-menu.component'\nimport { SubMenuComponent } from './components/portal-menu/submenu.component'\nimport { PortalPageComponent } from './components/portal-page/portal-page.component'\nimport { PortalViewportComponent } from './components/portal-viewport/portal-viewport.component'\nimport { CriteriaTemplateComponent } from './components/search-criteria/criteria-template/criteria-template.component'\nimport { SearchCriteriaComponent } from './components/search-criteria/search-criteria.component'\nimport { SupportTicketComponent } from './components/support-ticket/support-ticket.component'\nimport { UserAvatarComponent } from './components/user-avatar/user-avatar.component'\nimport { AutofocusDirective } from './directives/autofocus.directive'\nimport { BasicDirective } from './directives/basic.directive'\nimport { OcxContentContainerDirective } from './directives/content-container.directive'\nimport { OcxContentDirective } from './directives/content.directive'\nimport { LoadingIndicatorDirective } from './directives/loading-indicator.directive'\nimport { PatchFormGroupValuesDirective } from './directives/patch-form-group-values.driective'\nimport { SetInputValueDirective } from './directives/set-input-value.directive'\nimport { standaloneInitializer } from './initializer/standalone.initializer'\nimport { PrimeNgModule } from './primeng.module'\nimport { DialogFooterComponent } from './components/dialog/dialog-footer/dialog-footer.component'\nimport { DialogContentComponent } from './components/dialog/dialog-content/dialog-content.component'\nimport { DialogInlineComponent } from './components/dialog/dialog-inline/dialog-inline.component'\nimport { TRANSLATION_PATH } from '@onecx/angular-utils'\n\nexport class PortalMissingTranslationHandler implements MissingTranslationHandler {\n  handle(params: MissingTranslationHandlerParams) {\n    console.log(`Missing translation for ${params.key}`, params)\n    return params.key\n  }\n}\n\n@NgModule({\n  imports: [\n    CommonModule,\n    RouterModule,\n    FormsModule,\n    ReactiveFormsModule,\n    PrimeNgModule,\n    AngularAcceleratorModule,\n    TranslateModule,\n    ConfirmDialogModule,\n  ],\n  declarations: [\n    AnnouncementBannerComponent,\n    AppInlineProfileComponent,\n    AutofocusDirective,\n    ColumnTogglerComponent,\n    CriteriaTemplateComponent,\n    DataViewControlsComponent,\n    DeleteDialogComponent,\n    GlobalErrorComponent,\n    HeaderComponent,\n    HelpItemEditorComponent,\n    LoadingComponent,\n    MfeDebugComponent,\n    NoHelpItemComponent,\n    PageContentComponent,\n    PagingInfoComponent,\n    PortalFooterComponent,\n    PortalMenuComponent,\n    PortalMenuHorizontalComponent,\n    PortalPageComponent,\n    PortalViewportComponent,\n    SearchCriteriaComponent,\n    SubMenuComponent,\n    SupportTicketComponent,\n    UserAvatarComponent,\n    ViewTemplatePickerComponent,\n    LoadingIndicatorComponent,\n    LoadingIndicatorDirective,\n    BasicDirective,\n    PatchFormGroupValuesDirective,\n    SetInputValueDirective,\n    ButtonDialogComponent,\n    DialogFooterComponent,\n    DialogContentComponent,\n    DialogInlineComponent,\n    DialogMessageContentComponent,\n    OcxContentDirective,\n    OcxContentContainerDirective,\n    OcxContentComponent,\n    OcxContentContainerComponent,\n    LifecycleComponent,\n  ],\n  providers: [\n    {\n      provide: LOCALE_ID,\n      useFactory: (userService: UserService) => {\n        return userService.lang$.getValue()\n      },\n      deps: [UserService],\n    },\n    {\n      provide: TRANSLATION_PATH,\n      useValue: './onecx-portal-lib/assets/i18n/',\n      multi: true\n    },\n    {\n      provide: TRANSLATION_PATH,\n      useValue: './onecx-portal-lib/assets/i18n/primeng/',\n      multi: true\n    },\n    {\n      provide: MessageService,\n      useClass: MessageService,\n    },\n  ],\n  exports: [\n    AngularAcceleratorModule,\n    AnnouncementBannerComponent,\n    AppInlineProfileComponent,\n    AutofocusDirective,\n    ColumnTogglerComponent,\n    CriteriaTemplateComponent,\n    DataViewControlsComponent,\n    DeleteDialogComponent,\n    GlobalErrorComponent,\n    HeaderComponent,\n    HelpItemEditorComponent,\n    LoadingComponent,\n    MfeDebugComponent,\n    NoHelpItemComponent,\n    PageContentComponent,\n    PagingInfoComponent,\n    PortalFooterComponent,\n    PortalMenuComponent,\n    PortalMenuHorizontalComponent,\n    PortalPageComponent,\n    PortalViewportComponent,\n    SearchCriteriaComponent,\n    SubMenuComponent,\n    SupportTicketComponent,\n    UserAvatarComponent,\n    ViewTemplatePickerComponent,\n    TranslateModule,\n    PrimeNgModule,\n    LoadingIndicatorComponent,\n    LoadingIndicatorDirective,\n    BasicDirective,\n    PatchFormGroupValuesDirective,\n    SetInputValueDirective,\n    ButtonDialogComponent,\n    DialogFooterComponent,\n    DialogContentComponent,\n    DialogInlineComponent,\n    DialogMessageContentComponent,\n    OcxContentDirective,\n    OcxContentContainerDirective,\n    OcxContentComponent,\n    OcxContentContainerComponent,\n    LifecycleComponent,\n  ],\n})\nexport class PortalCoreModule {\n  public static forMicroFrontend(): ModuleWithProviders<PortalCoreModule> {\n    return {\n      ngModule: PortalCoreModule,\n      providers: [{ provide: SANITY_CHECK, useValue: 'mfe' }],\n    }\n  }\n\n  public static forRoot(appName: string, disableInitializer = false): ModuleWithProviders<PortalCoreModule> {\n    const module: ModuleWithProviders<PortalCoreModule> = {\n      ngModule: PortalCoreModule,\n      providers: [\n        { provide: SANITY_CHECK, useValue: 'root' },\n        { provide: APPLICATION_NAME, useValue: appName },\n      ],\n    }\n    if (!disableInitializer) {\n      module.providers &&\n        module.providers.push({\n          provide: APP_INITIALIZER,\n          multi: true,\n          useFactory: standaloneInitializer,\n          deps: [\n            ConfigurationService,\n            PortalApiService,\n            ThemeService,\n            APPLICATION_NAME,\n            AppStateService,\n            UserService,\n            UserProfileAPIService,\n          ],\n        })\n    }\n    return module\n  }\n\n  constructor(\n    @Optional() @Inject(SANITY_CHECK) sanityCheck?: string,\n    @Optional() @SkipSelf() @Inject(SANITY_CHECK) parentSanityCheck?: string\n  ) {\n    console.log(`*** Portal Core module constructor, mode:  ${sanityCheck}`)\n    if (sanityCheck === undefined) {\n      throw new Error(`Always import PortalCoreModule using either 'forRoot()' or 'forMicroFrontend()' helper methods.`)\n    }\n    if (parentSanityCheck === sanityCheck && sanityCheck === 'root') {\n      throw new Error(\n        `PortalCoreModule with scope '${sanityCheck}' is already loaded.\n         Make sure you only use 'PortalCoreModule.forRoot()' in you root AppModule and that you use 'PortalCoreModule.forMicrofrontend()' in your feature modules`\n      )\n    }\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    registerLocaleData((de as any).default ?? de)\n    //  Do not change the line above until the following ts-jest bug is fixed: https://github.com/kulshekhar/ts-jest/issues/3925\n    //  The ts-jest bug causes that the locale is not imported correctly.\n  }\n}\n","import { CanActivateFn, Route } from '@angular/router'\nimport { InitializeModuleGuard } from '../../services/initialize-module-guard.service'\nimport { addInitializeModuleGuard as _addInitializeModuleGuard } from '@onecx/angular-integration-interface'\n\n/**\n * @deprecated\n * Please import from @onecx/angular-integration-interface, because in edge cases permission errors occur,\n * when @onecx/angular-integration-interface is not shared and the version from portal-integration-angular is used.\n */\nexport function addInitializeModuleGuard(\n  routes: Route[],\n  initializeModuleGuard: typeof InitializeModuleGuard | CanActivateFn = InitializeModuleGuard\n): Route[] {\n  return _addInitializeModuleGuard(routes, initializeModuleGuard)\n}\n","import { TranslateService } from '@ngx-translate/core'\nimport { firstValueFrom, mergeMap } from 'rxjs'\nimport { UserService } from '@onecx/angular-integration-interface'\n\nexport function translateServiceInitializer(\n  userService: UserService,\n  translateService: TranslateService\n): () => Promise<unknown> {\n  return () => {\n    translateService.setDefaultLang('en')\n    return firstValueFrom(\n      userService.lang$.pipe(\n        mergeMap((l) => {\n          return translateService.use(l)\n        })\n      )\n    )\n  }\n}\n","// directives\nexport * from './lib/core/directives/autofocus.directive'\nexport * from './lib/core/directives/basic.directive'\nexport * from './lib/core/directives/patch-form-group-values.driective'\nexport * from './lib/core/directives/set-input-value.directive'\nexport * from './lib/core/directives/loading-indicator.directive'\nexport * from './lib/core/directives/content.directive'\nexport * from './lib/core/directives/content-container.directive'\n\n// components\nexport * from './lib/core/components/loading/loading.component'\nexport * from './lib/core/components/mfe-debug/mfe-debug.component'\nexport * from './lib/core/components/page-content/page-content.component'\nexport * from './lib/core/components/paging-info/paging-info.component'\nexport * from './lib/core/components/portal-page/portal-page.component'\nexport * from './lib/core/components/portal-viewport/portal-viewport.component'\nexport * from './lib/core/components/search-criteria/search-criteria.component'\nexport * from './lib/core/components/delete-dialog/delete-dialog.component'\nexport * from './lib/core/components/support-ticket/support-ticket.component'\nexport * from './lib/core/components/help-item-editor/help-item-editor.component'\nexport * from './lib/core/components/no-help-item/no-help-item.component'\nexport * from './lib/core/components/announcement-banner/announcement-banner.component'\nexport * from './lib/core/components/search-criteria/criteria-template/criteria-template.component'\nexport * from './lib/core/components/data-view-controls/view-template-picker/view-template-picker.component'\nexport * from './lib/core/components/inline-profile/inline-profile.component'\nexport * from './lib/core/components/portal-footer/portal-footer.component'\nexport * from './lib/core/components/portal-header/header.component'\nexport * from './lib/core/components/portal-menu/portal-menu.component'\nexport * from './lib/core/components/portal-menu-horizontal/portal-menu-horizontal.component'\nexport * from './lib/core/components/portal-menu/submenu.component'\nexport * from './lib/core/components/user-avatar/user-avatar.component'\nexport * from './lib/core/components/data-view-controls/data-view-controls.component'\nexport * from './lib/core/components/data-view-controls/column-toggler-component/column-toggler.component'\nexport * from './lib/core/components/debug/debug.component'\nexport * from './lib/core/components/error-component/global-error.component'\nexport * from './lib/core/components/search-criteria/search-page'\nexport * from './lib/core/components/button-dialog/button-dialog.component'\nexport * from './lib/core/components/button-dialog/dialog-message-content/dialog-message-content.component'\nexport * from './lib/core/components/loading-indicator/loading-indicator.component'\nexport * from './lib/core/components/content-container/content-container.component'\nexport * from './lib/core/components/content/content.component'\nexport * from './lib/core/components/lifecycle/lifecycle.component'\nexport * from './lib/core/components/dialog/dialog-content/dialog-content.component'\nexport * from './lib/core/components/dialog/dialog-inline/dialog-inline.component'\nexport * from './lib/core/components/dialog/dialog-footer/dialog-footer.component'\n\n// services\nexport * from './lib/services/app.menu.service'\nexport * from './lib/services/menu-api.service'\nexport * from './lib/services/portal-api.service'\nexport * from './lib/services/initialize-module-guard.service'\nexport * from './lib/services/userprofile-api.service'\nexport * from './lib/services/portal-dialog.service'\nexport * from './lib/services/export-data.service'\n// pipes\nexport * from './lib/core/pipes/relative-date.pipe'\n\n// models\nexport * from './lib/mock-auth/mock-auth.module'\nexport * from './lib/model/avatar-info.model'\nexport * from './lib/model/microfrontend'\nexport * from './lib/model/portal-wrapper'\nexport * from './lib/model/column'\nexport * from './lib/model/column-view-template'\nexport * from './lib/model/menu-item.model'\nexport * from './lib/model/microfrontend-dto'\nexport * from './lib/model/person.model'\nexport * from './lib/model/page-info.model'\nexport * from './lib/model/portal'\nexport * from './lib/model/user-profile.model'\nexport * from './lib/model/button-dialog'\n\n// core\nexport * from './lib/api/constants'\nexport * from './lib/core/debug.module'\nexport * from './lib/core/portal-core.module'\n\nexport * from './lib/core/primeng.module'\n\n// utils\nexport * from './lib/core/utils/image-logo-url.utils'\nexport * from './lib/core/utils/add-initialize-module-guard.utils'\nexport * from './lib/core/utils/translate-service-initializer.utils'\n\nexport * from '@onecx/angular-accelerator'\nexport {\n  AppConfigService,\n  AppStateService,\n  ConfigurationService,\n  UserService,\n  PortalMessageService,\n  ThemeService,\n  RemoteComponentsService,\n  CONFIG_KEY,\n  IAuthService,\n  LibConfig,\n  MfeInfo,\n  Theme,\n  APP_CONFIG,\n  AUTH_SERVICE,\n  SANITY_CHECK,\n  APPLICATION_NAME,\n} from '@onecx/angular-integration-interface'\n\nexport { PortalApiConfiguration } from '@onecx/angular-utils'\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i1.PortalUIService","i1.AnnouncementsApiService","i2","i3","i1.MenuService","i4","i5.UserAvatarComponent","i2.MenuService","i6","i7","i9","i10.AutofocusDirective","i11.UserAvatarComponent","i12","i5","i3.MenuService","i2.PortalUIService","map","i3.SubMenuComponent","i3.PortalUIService","i5.SupportTicketApiService","i6.HelpPageAPIService","i8","i11.AnnouncementBannerComponent","i12.AppInlineProfileComponent","i13.GlobalErrorComponent","i14.HeaderComponent","i15.HelpItemEditorComponent","i16.PortalFooterComponent","i17.PortalMenuComponent","i18.PortalMenuHorizontalComponent","i19.SupportTicketComponent","i6.CriteriaTemplateComponent","i10","i12.ViewTemplatePickerComponent","i1.OcxContentContainerDirective","i1.OcxContentDirective","i1.DialogFooterComponent","i2.DialogContentComponent","_InitializeModuleGuard","_addInitializeModuleGuard"],"mappings":"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"}