@onemrvapublic/design-system 20.3.1 → 20.3.2-develop.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"onemrvapublic-design-system-layout.mjs","sources":["../../../../projects/onemrva/design-system/layout/src/components/layout-subroute/layout-subroute.component.ts","../../../../projects/onemrva/design-system/layout/src/components/layout-subroute/layout-subroute.component.html","../../../../projects/onemrva/design-system/layout/src/components/layout-route/layout-route.component.ts","../../../../projects/onemrva/design-system/layout/src/components/layout-route/layout-route.component.html","../../../../projects/onemrva/design-system/layout/src/components/layout-content/layout-content.component.ts","../../../../projects/onemrva/design-system/layout/src/components/layout-title/layout-title.component.ts","../../../../projects/onemrva/design-system/layout/src/enums/environment.enum.ts","../../../../projects/onemrva/design-system/layout/src/components/layout-footer/layout-footer.component.ts","../../../../projects/onemrva/design-system/layout/src/components/layout-login-menu/layout-login-menu.component.ts","../../../../projects/onemrva/design-system/layout/src/directives/drawer-host.directive.ts","../../../../projects/onemrva/design-system/layout/src/services/drawer.service.ts","../../../../projects/onemrva/design-system/layout/src/services/left-sidenav.service.ts","../../../../projects/onemrva/design-system/layout/src/components/layout-sidenav/layout-sidenav.component.ts","../../../../projects/onemrva/design-system/layout/src/components/layout-sidenav/layout-sidenav.component.html","../../../../projects/onemrva/design-system/layout/src/components/layout-after-nav/layout-after-nav.component.ts","../../../../projects/onemrva/design-system/layout/src/components/layout/layout.component.ts","../../../../projects/onemrva/design-system/layout/src/components/layout/layout.component.html","../../../../projects/onemrva/design-system/layout/src/components/layout-sidenav-title/layout-sidenav-title.component.ts","../../../../projects/onemrva/design-system/layout/src/components/layout-left-sidenav/layout-left-sidenav.component.ts","../../../../projects/onemrva/design-system/layout/src/components/layout-left-sidenav/layout-left-sidenav.component.html","../../../../projects/onemrva/design-system/layout/src/components/layout-drawer-actions/layout-drawer-actions.component.ts","../../../../projects/onemrva/design-system/layout/src/components/layout-drawer-actions/layout-drawer-actions.component.html","../../../../projects/onemrva/design-system/layout/src/components/layout-drawer-content/layout-drawer-content.component.ts","../../../../projects/onemrva/design-system/layout/src/components/layout-drawer-content/layout-drawer-content.component.html","../../../../projects/onemrva/design-system/layout/src/components/layout-drawer-title/layout-drawer-title.component.ts","../../../../projects/onemrva/design-system/layout/src/components/layout-drawer-title/layout-drawer-title.component.html","../../../../projects/onemrva/design-system/layout/src/components/index.ts","../../../../projects/onemrva/design-system/layout/src/directives/striphtml.pipe.ts","../../../../projects/onemrva/design-system/layout/src/decorators/coerce-boolean-input.decorator.ts","../../../../projects/onemrva/design-system/layout/src/decorators/observable-content.decorator.ts","../../../../projects/onemrva/design-system/layout/src/models/onemrva-profile.model.ts","../../../../projects/onemrva/design-system/layout/src/layout.module.ts","../../../../projects/onemrva/design-system/layout/onemrvapublic-design-system-layout.ts"],"sourcesContent":["import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n Input,\n QueryList,\n TemplateRef,\n ViewChild,\n inject,\n} from '@angular/core';\nimport { Router, RouterLink } from '@angular/router';\n\n@Component({\n selector: 'onemrva-layout-subroute',\n templateUrl: 'layout-subroute.component.html',\n\n standalone: true,\n})\nexport class LayoutSubrouteComponent implements AfterViewInit {\n private cd = inject(ChangeDetectorRef);\n private router = inject(Router);\n\n @Input() customNgClass: any;\n\n @ViewChild(TemplateRef) template?: TemplateRef<any>;\n\n @Input() routerLink: typeof RouterLink.prototype.routerLink | string;\n @Input() routerLinkActiveOptions?: any;\n @Input() public dataCy?: string;\n @Input() label?: string;\n @Input() icon?: string;\n\n @ContentChildren(LayoutSubrouteComponent)\n subroutes?: QueryList<LayoutSubrouteComponent>;\n\n ngAfterViewInit() {\n if (this.label === undefined) {\n console.error(\n 'ONEM/RVA DESIGN SYSTEM ERROR : Since 20.1.0 , you must add a label attribute to the onemrva-layout-route',\n this.routerLink,\n );\n }\n this.cd.detectChanges();\n }\n\n hasSubroutes() {\n return this.subroutes !== undefined && this.subroutes.length > 0;\n }\n\n hasActiveSubroute() {\n return this.subroutes?.some(x => this.isActiveRoute(x)) ?? false;\n }\n\n private isActiveRoute(subroute: LayoutSubrouteComponent): boolean {\n if (subroute.routerLink) {\n const routerLink = Array.isArray(subroute.routerLink)\n ? this.router.createUrlTree(subroute.routerLink)\n : this.router.createUrlTree([subroute.routerLink]);\n\n return this.router.isActive(routerLink, {\n paths: 'exact',\n queryParams: 'exact',\n fragment: 'ignored',\n matrixParams: 'ignored',\n });\n } else {\n return false;\n }\n }\n}\n","<ng-template>\n {{ label }}\n</ng-template>\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n inject,\n Input,\n QueryList,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport { Router, RouterLink, RouterLinkActive } from '@angular/router';\nimport { LayoutSubrouteComponent } from '../layout-subroute/layout-subroute.component';\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\nimport { MatIcon } from '@angular/material/icon';\nimport { MatMenu, MatMenuItem, MatMenuTrigger } from '@angular/material/menu';\n\n@Component({\n selector: 'onemrva-layout-route',\n templateUrl: 'layout-route.component.html',\n\n standalone: true,\n imports: [\n MatIcon,\n MatMenu,\n MatMenuTrigger,\n RouterLink,\n MatMenuItem,\n RouterLinkActive,\n NgTemplateOutlet,\n NgClass,\n ],\n})\nexport class LayoutRouteComponent implements AfterViewInit {\n @Input() customNgClass: any;\n\n @ViewChild('navTpl') template: TemplateRef<any> | null = null;\n\n @Input() routerLink?: string;\n @Input() routerLinkActiveOptions?: any;\n @Input() public dataCy?: string;\n @Input() baseRouteForActiveMenu?: string;\n @Input() label?: string;\n @Input() icon?: string;\n\n @ContentChildren(LayoutSubrouteComponent)\n subroutes?: QueryList<LayoutSubrouteComponent>;\n\n hasSubroutes() {\n return this.subroutes !== undefined && this.subroutes.length > 0;\n }\n\n cd = inject(ChangeDetectorRef);\n router = inject(Router);\n\n ngAfterViewInit() {\n this.cd.detectChanges();\n\n if (this.label === undefined) {\n console.error(\n 'ONEM/RVA DESIGN SYSTEM ERROR : Since 20.1.0 , you must add a label attribute to the onemrva-layout-route',\n this.routerLink,\n );\n }\n }\n\n isRouteActive() {\n if (this.routerLink === null || this.routerLink === undefined) {\n if (this.baseRouteForActiveMenu) {\n const currentRoute = this.router.url;\n const isParentRoutePresent = new RegExp(\n this.baseRouteForActiveMenu + '/',\n ).test(currentRoute);\n const isExactRoutePresent = new RegExp(\n this.baseRouteForActiveMenu + '$',\n ).test(currentRoute);\n\n return isParentRoutePresent || isExactRoutePresent;\n }\n }\n return false;\n }\n}\n","<ng-template #navTpl>\n @if (!hasSubroutes()) {\n {{ label }}\n } @else if (hasSubroutes()) {\n <span role=\"button\" [matMenuTriggerFor]=\"menu\">\n {{ label }}\n </span>\n <mat-icon [matMenuTriggerFor]=\"menu\">expand_more</mat-icon>\n <mat-menu #menu>\n @for (e of subroutes?.toArray(); track e.routerLink) {\n @if (!e.hasSubroutes()) {\n <button\n mat-menu-item\n [routerLink]=\"e.routerLink\"\n routerLinkActive=\"active\"\n [attr.data-cy]=\"e.dataCy\"\n >\n @if (e.template; as routeTemplate) {\n <ng-container *ngTemplateOutlet=\"routeTemplate\"></ng-container>\n }\n </button>\n }\n @if (e.hasSubroutes()) {\n <button\n mat-menu-item\n [matMenuTriggerFor]=\"submenu\"\n [ngClass]=\"{ active: e.hasActiveSubroute() }\"\n [attr.data-cy]=\"e.dataCy\"\n >\n @if (e.template; as routeTemplate) {\n <ng-container *ngTemplateOutlet=\"routeTemplate\"></ng-container>\n }\n </button>\n <mat-menu #submenu>\n @for (es of e.subroutes?.toArray(); track es.routerLink) {\n <button\n mat-menu-item\n [routerLink]=\"es.routerLink\"\n routerLinkActive=\"active\"\n >\n @if (es.template; as routeTemplate) {\n <ng-container *ngTemplateOutlet=\"routeTemplate\">\n </ng-container>\n }\n </button>\n }\n </mat-menu>\n }\n }\n </mat-menu>\n }\n</ng-template>\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n Input,\n TemplateRef,\n ViewChild,\n inject,\n} from '@angular/core';\n\n@Component({\n selector: 'onemrva-layout-content',\n template: '<ng-template><ng-content></ng-content></ng-template>',\n standalone: true,\n})\nexport class LayoutContentComponent implements AfterViewInit {\n @Input() customNgClass: any;\n\n @ViewChild(TemplateRef) template?: TemplateRef<any>;\n private cd = inject(ChangeDetectorRef);\n\n ngAfterViewInit() {\n this.cd.detectChanges();\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n Input,\n TemplateRef,\n ViewChild,\n inject,\n} from '@angular/core';\n\n@Component({\n selector: 'onemrva-layout-title',\n template: '<ng-template><ng-content></ng-content></ng-template>',\n standalone: true,\n})\nexport class LayoutTitleComponent implements AfterViewInit {\n private cd = inject(ChangeDetectorRef);\n\n @Input() customNgClass: any;\n\n @ViewChild(TemplateRef) template?: TemplateRef<any>;\n\n ngAfterViewInit() {\n this.cd.detectChanges();\n }\n}\n","export enum Environment {\n LOCAL = 'LOCAL',\n TEST = 'TEST',\n VAL = 'VAL',\n PROD = 'PROD',\n}\n","import { Component, TemplateRef, ViewChild } from '@angular/core';\n\n@Component({\n selector: 'onemrva-layout-footer',\n\n template: '<ng-template><ng-content></ng-content></ng-template>',\n standalone: true,\n})\nexport class LayoutFooterComponent {\n @ViewChild(TemplateRef) template?: TemplateRef<any>;\n}\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n Input,\n TemplateRef,\n ViewChild,\n inject,\n} from '@angular/core';\n\n@Component({\n selector: 'onemrva-layout-login-menu',\n template: '<ng-template><ng-content></ng-content></ng-template>',\n\n standalone: true,\n})\nexport class LayoutLoginMenuComponent implements AfterViewInit {\n private cd = inject(ChangeDetectorRef);\n\n @Input() customNgClass: any;\n\n @ViewChild(TemplateRef) template?: TemplateRef<any>;\n\n ngAfterViewInit() {\n this.cd.detectChanges();\n }\n}\n","// Command to generate ng g d <Directive name>\n\nimport {\n AfterViewInit,\n DestroyRef,\n Directive,\n inject,\n ViewContainerRef,\n Type,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { DOCUMENT } from '@angular/core';\nimport { MatDrawer } from '@angular/material/sidenav';\n\n@Directive({\n selector: '[drawerhost]',\n standalone: true,\n})\nexport class DrawerHostDirective implements AfterViewInit {\n public destroyRef = inject(DestroyRef);\n public drawer = inject(MatDrawer);\n public viewContainerRef = inject(ViewContainerRef);\n public document = inject(DOCUMENT);\n\n createComponent<T>(component: Type<T>) {\n this.viewContainerRef.clear();\n return this.viewContainerRef.createComponent(component);\n }\n\n public bodyClass() {\n if (this.drawer?.opened) {\n this.document.body.style.overflow = 'hidden';\n } else {\n this.document.body.style.overflow = 'inherit';\n }\n }\n\n ngAfterViewInit(): void {\n this.drawer?.openedChange\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.bodyClass();\n });\n }\n}\n","import { effect, Injectable, signal, WritableSignal } from '@angular/core';\nimport { DrawerHostDirective } from '../directives/drawer-host.directive';\nimport { MatDrawer } from '@angular/material/sidenav';\nimport { OnemrvaMatSize } from '@onemrvapublic/design-system/utils';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class OnemrvaDrawerService {\n public host?: DrawerHostDirective;\n private drawer?: MatDrawer;\n\n hasBackdrop = signal(true);\n size: WritableSignal<OnemrvaMatSize> = signal('');\n isSide = false;\n\n toggle(isSide = false) {\n if (!this.drawer) return;\n this.isSide = isSide;\n this.drawer?.toggle();\n }\n\n open(isSide = false) {\n if (!this.drawer) return;\n this.isSide = isSide;\n this.drawer?.open();\n }\n\n close() {\n if (!this.drawer) return;\n this.drawer?.close();\n }\n\n classes() {\n if (this.isSide) {\n return [this.size(), 'side-menu'];\n }\n return [this.size()];\n }\n\n setDrawer(drawer: MatDrawer) {\n this.drawer = drawer;\n }\n}\n","import { Injectable, WritableSignal, inject, signal } from '@angular/core';\nimport { NavigationEnd, Router } from '@angular/router';\nimport { filter } from 'rxjs/operators';\nimport { NavItem } from '@onemrvapublic/design-system/mat-navigation';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class OnemrvaLeftSidenavService {\n private originalItems: NavItem[] = [];\n readonly items: WritableSignal<NavItem[]> = signal<NavItem[]>([]);\n private router: Router = inject(Router);\n\n constructor() {\n this.router.events\n .pipe(filter((e): e is NavigationEnd => e instanceof NavigationEnd))\n .subscribe(() => this.reset());\n }\n\n setOriginal(items: NavItem[]): void {\n this.originalItems = items ?? [];\n this.items.set(this.originalItems);\n }\n\n updateItems(items: NavItem[]): void {\n this.items.set(items ?? []);\n }\n\n reset(): void {\n this.items.set(this.originalItems);\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { Component, inject, Input, OnInit, QueryList } from '@angular/core';\nimport { TranslatePipe, TranslateService } from '@ngx-translate/core';\nimport { LayoutRouteComponent } from '../layout-route/layout-route.component';\nimport { OnemrvaDrawerService } from '../../services';\nimport {\n animate,\n state,\n style,\n transition,\n trigger,\n} from '@angular/animations';\nimport { OnemRvaLanguage } from '../../models';\nimport { MatIconButton } from '@angular/material/button';\nimport { MatIcon } from '@angular/material/icon';\nimport {\n NavItem,\n OnemrvaMatNavigationComponent,\n} from '@onemrvapublic/design-system/mat-navigation';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatSelectModule } from '@angular/material/select';\nimport { FormsModule } from '@angular/forms';\nimport { LayoutSubrouteComponent } from '../layout-subroute/layout-subroute.component';\n\n@Component({\n selector: 'onemrva-layout-sidenav',\n templateUrl: 'layout-sidenav.component.html',\n styleUrl: 'layout-sidenav.component.scss',\n animations: [\n trigger('slideInOut', [\n state(\n 'in',\n style({\n overflow: 'hidden',\n height: '*',\n }),\n ),\n state(\n 'out',\n style({\n opacity: '0',\n overflow: 'hidden',\n height: '0px',\n }),\n ),\n transition('in => out', animate('400ms ease-in-out')),\n transition('out => in', animate('400ms ease-in-out')),\n ]),\n ],\n standalone: true,\n imports: [\n MatIconButton,\n MatIcon,\n TranslatePipe,\n OnemrvaMatNavigationComponent,\n MatFormFieldModule,\n MatSelectModule,\n FormsModule,\n ],\n})\nexport class LayoutSidenavComponent implements OnInit {\n @Input() isSmall!: boolean;\n @Input() routes?: QueryList<LayoutRouteComponent>;\n @Input() languages: OnemRvaLanguage[] = [];\n\n items: NavItem[] = [];\n\n currentLanguage?: OnemRvaLanguage;\n\n helpMenuOpen!: string[][];\n\n translateService = inject(TranslateService);\n document = inject(DOCUMENT);\n drawerService = inject(OnemrvaDrawerService);\n\n ngOnInit() {\n this.currentLanguage = this.languages.filter(\n l => l.code == this.translateService.currentLang,\n )[0];\n\n if (this.routes)\n this.helpMenuOpen = this.routes.map(route =>\n route.hasSubroutes()\n ? ['out', ...route.subroutes!.map(() => 'out')]\n : ['in'],\n );\n // Replace your existing items population with:\n this.items = this.populateItemsRecursively(this.routes!);\n }\n\n changeLanguage(event: any) {\n this.translateService.use(event.value.code);\n this.document.documentElement.lang = event.value.code;\n }\n\n close() {\n this.drawerService.close();\n }\n\n private populateItemsRecursively(\n routes:\n | QueryList<LayoutRouteComponent>\n | QueryList<LayoutSubrouteComponent>\n | LayoutRouteComponent[]\n | LayoutSubrouteComponent[],\n ): NavItem[] {\n const items: NavItem[] = [];\n if (routes === undefined) routes = [];\n\n const routeArray = Array.isArray(routes) ? routes : routes.toArray();\n\n for (const route of routeArray) {\n const navItem: NavItem = {\n routerLink:\n typeof route.routerLink === 'string' ? route.routerLink : undefined,\n label: this.getRouteLabel(route),\n icon: (route as any).icon, // LayoutSubrouteComponent doesn't have icon, so cast to any\n dataCy: route.dataCy,\n };\n\n // Recursively populate children if subroutes exist\n if (route.hasSubroutes() && route.subroutes) {\n navItem.children = this.populateItemsRecursively(route.subroutes);\n }\n\n items.push(navItem);\n }\n\n return items;\n }\n\n private getRouteLabel(\n route: LayoutRouteComponent | LayoutSubrouteComponent,\n ): string {\n // Check if it's a LayoutRouteComponent with label property\n if ('label' in route && route.label) {\n return route.label;\n }\n return 'Unnamed Route';\n }\n}\n","@if (\n isSmall && (routes?.toArray()?.length || (languages && languages.length > 1))\n) {\n <div class=\"sidebar\">\n @if (isSmall && routes?.toArray()?.length) {\n <div class=\"navigation\">\n <div class=\"close-button\">\n <button\n type=\"button\"\n mat-icon-button\n (click)=\"close()\"\n data-cy=\"smallDeviceMenu\"\n attr.aria-label=\"{{ 'layout.menu' | translate }}\"\n >\n <mat-icon>close</mat-icon>\n </button>\n </div>\n <onemrva-mat-navigation [items]=\"items\"></onemrva-mat-navigation>\n </div>\n @if (languages && languages.length > 1) {\n <div class=\"language-selector\">\n <mat-form-field>\n <mat-select\n [ngModel]=\"currentLanguage\"\n (selectionChange)=\"changeLanguage($event)\"\n >\n @for (lang of languages; track lang.code) {\n <mat-option\n [value]=\"lang\"\n [attr.data-cy]=\"'language_' + lang.code\"\n >\n {{ lang.label }}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n }\n }\n </div>\n}\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n Input,\n TemplateRef,\n ViewChild,\n inject,\n} from '@angular/core';\n\n@Component({\n selector: 'onemrva-layout-after-nav',\n template: '<ng-template><ng-content></ng-content></ng-template>',\n standalone: true,\n})\nexport class LayoutAfterNavComponent implements AfterViewInit {\n private cd = inject(ChangeDetectorRef);\n\n @Input() customNgClass: any;\n\n @ViewChild(TemplateRef) template?: TemplateRef<any>;\n\n ngAfterViewInit() {\n this.cd.detectChanges();\n }\n}\n","import {\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n Input,\n AfterViewInit,\n OnDestroy,\n QueryList,\n OnInit,\n isDevMode,\n EventEmitter,\n Output,\n ViewChild,\n inject,\n signal,\n} from '@angular/core';\n\nimport { LayoutRouteComponent } from '../layout-route/layout-route.component';\nimport { TranslatePipe, TranslateService } from '@ngx-translate/core';\nimport { LayoutContentComponent } from '../layout-content/layout-content.component';\nimport { startWith, Subject, takeUntil } from 'rxjs';\nimport { LayoutTitleComponent } from '../layout-title/layout-title.component';\n\nimport { Environment } from '../../enums/environment.enum';\nimport {\n BreakpointObserver,\n Breakpoints,\n BreakpointState,\n} from '@angular/cdk/layout';\nimport { DOCUMENT, NgClass, NgStyle, NgTemplateOutlet } from '@angular/common';\nimport { LayoutFooterComponent } from '../layout-footer/layout-footer.component';\nimport { OnemRvaProfile } from '../../models/onemrva-profile.model';\nimport { LayoutLoginMenuComponent } from '../layout-login-menu/layout-login-menu.component';\nimport {\n MatDrawer,\n MatDrawerContainer,\n MatSidenavModule,\n} from '@angular/material/sidenav';\nimport { DrawerHostDirective } from '../../directives/drawer-host.directive';\nimport { OnemrvaDrawerService } from '../../services/drawer.service';\nimport { LayoutSidenavComponent } from '../layout-sidenav/layout-sidenav.component';\nimport { LayoutAfterNavComponent } from '../layout-after-nav/layout-after-nav.component';\nimport { OnemRvaLanguage } from '../../models/onem-language.model';\nimport {\n OnemRvaCDNService,\n OnemRvaColorDirective,\n OnemRvaSizeDirective,\n} from '@onemrvapublic/design-system/shared';\nimport { RouterLink, RouterLinkActive } from '@angular/router';\nimport { MatToolbar } from '@angular/material/toolbar';\nimport { MatTabLink, MatTabNav, MatTabNavPanel } from '@angular/material/tabs';\nimport { MatDivider } from '@angular/material/divider';\nimport { OnemrvaMatAvatarModule } from '@onemrvapublic/design-system/mat-avatar';\nimport { MatMenu, MatMenuItem, MatMenuTrigger } from '@angular/material/menu';\nimport { MatIcon } from '@angular/material/icon';\nimport { MatFabButton, MatIconButton } from '@angular/material/button';\nimport { MatTooltip } from '@angular/material/tooltip';\nimport { MatRipple } from '@angular/material/core';\n\n@Component({\n selector: 'onemrva-layout',\n templateUrl: './layout.component.html',\n styleUrls: ['./layout.component.scss'],\n standalone: true,\n imports: [\n RouterLink,\n NgStyle,\n NgClass,\n MatToolbar,\n MatDrawerContainer,\n MatTabNav,\n MatTabLink,\n RouterLinkActive,\n MatTabNavPanel,\n MatDivider,\n OnemrvaMatAvatarModule,\n MatMenuTrigger,\n MatMenu,\n MatIcon,\n MatMenuItem,\n NgTemplateOutlet,\n TranslatePipe,\n MatIconButton,\n MatFabButton,\n MatTooltip,\n MatDrawer,\n DrawerHostDirective,\n MatRipple,\n OnemRvaSizeDirective,\n OnemRvaColorDirective,\n MatSidenavModule,\n ],\n})\nexport class LayoutComponent implements OnInit, AfterViewInit, OnDestroy {\n @ContentChildren(LayoutRouteComponent)\n routes?: QueryList<LayoutRouteComponent>;\n\n @ContentChild(LayoutTitleComponent) title?: LayoutTitleComponent;\n @ContentChild(LayoutLoginMenuComponent) loginMenu?: LayoutLoginMenuComponent;\n @ContentChild(LayoutContentComponent) content?: LayoutContentComponent;\n @ContentChild(LayoutAfterNavComponent) afterNav?: LayoutAfterNavComponent;\n\n @ContentChild(LayoutFooterComponent)\n footer?: LayoutFooterComponent;\n\n @Input()\n logo = ''; // custom logo, empty string will show default onem/rva/neo/lfa localised logo\n\n @Input()\n languages: OnemRvaLanguage[] = []; // list of languages\n\n @Input()\n environment?: Environment; // possible environment to show on the frontend LOCAL, TEST, VAL, PROD\n\n @Input()\n logoRedictionUrl?: string | any[] | null = ''; // value for routerLink from logo. \"\" by default. Deactivated when set to null\n\n selectedIndex = 0;\n destroyNotifier$ = new Subject<void>();\n\n @Input()\n profile: OnemRvaProfile | null = null; // To be defined for application with authentication\n\n @Output()\n login: EventEmitter<void> = new EventEmitter<void>();\n\n @Output()\n logout: EventEmitter<void> = new EventEmitter<void>();\n // isLogoutUsed: boolean = false;\n\n env = Environment;\n\n isSmall = true;\n\n @ViewChild(MatDrawer, { static: true }) drawer!: MatDrawer;\n @ViewChild(DrawerHostDirective, { static: true })\n drawerHost!: DrawerHostDirective;\n\n @Input()\n id = 'main';\n\n @Input()\n role = 'main';\n\n @Input()\n showThemeSwitcher = true;\n\n activeTheme = signal<'light' | 'dark' | 'system'>('system');\n\n toggleTheme(newTheme: 'light' | 'dark' | 'system') {\n this.activeTheme.set(newTheme);\n // Find all elements with onemrva-theme class\n const overlayThemeDivs = document.querySelectorAll('.onemrva-theme');\n overlayThemeDivs.forEach(div => {\n // Remove existing theme classes\n div.classList.remove('light-theme', 'dark-theme');\n\n // Add new theme class if not system\n if (newTheme !== 'system') {\n div.classList.add(`${newTheme}-theme`);\n }\n });\n }\n\n private readonly translateService = inject(TranslateService);\n private readonly cdn = inject(OnemRvaCDNService);\n private readonly cd = inject(ChangeDetectorRef);\n public readonly breakpointObserver = inject(BreakpointObserver);\n private readonly document = inject(DOCUMENT);\n public readonly drawerService = inject(OnemrvaDrawerService);\n\n constructor() {\n if (this.languages.length === 0) {\n this.translateService.getLangs().forEach(value => {\n this.languages.push({\n code: value,\n label: value.toUpperCase(),\n } as OnemRvaLanguage);\n });\n }\n }\n\n ngOnInit() {\n this.selectedIndex = this.languages.findIndex(\n l => l.code === this.translateService.currentLang,\n );\n\n this.document.documentElement.lang = this.translateService.currentLang;\n\n this.breakpointObserver\n .observe([Breakpoints.XSmall, Breakpoints.Small])\n .pipe(takeUntil(this.destroyNotifier$))\n .subscribe((state: BreakpointState) => {\n if (state.matches) {\n this.isSmall = true;\n } else {\n this.drawerService.close();\n this.isSmall = false;\n }\n });\n\n if (this.logo === '') {\n this.translateService.onLangChange\n .pipe(\n startWith({ lang: this.translateService.currentLang }),\n takeUntil(this.destroyNotifier$),\n )\n .subscribe(lang => {\n this.logo = this.cdn.getImg(\n `logo/logo_${lang.lang?.toLocaleLowerCase()}.svg`,\n );\n });\n }\n this.translateService.onLangChange\n .pipe(takeUntil(this.destroyNotifier$))\n .subscribe(event => {\n this.selectedIndex = this.languages.findIndex(\n lang => lang.code === event.lang,\n );\n });\n\n this.drawerService.host = this.drawerHost;\n this.drawerService.setDrawer(this.drawer);\n }\n\n get currentLanguage() {\n return this.translateService.currentLang || '';\n }\n\n ngAfterViewInit() {\n if (isDevMode()) {\n this.cd.detectChanges();\n }\n // this.drawer.closedStart\n // .pipe(takeUntil(this.destroyNotifier$))\n // .subscribe(() => {\n // });\n }\n\n ngOnDestroy(): void {\n this.destroyNotifier$.next();\n this.destroyNotifier$.complete();\n }\n\n doLogout() {\n this.logout.next();\n }\n\n doLogin() {\n this.login.next();\n }\n\n changeLanguage(langCode: string) {\n this.translateService.use(langCode);\n this.document.documentElement.lang = langCode;\n }\n\n toggleSideNav() {\n const componentRef = this.drawerHost.createComponent(\n LayoutSidenavComponent,\n );\n this.drawerService.size.set('');\n componentRef.instance.isSmall = this.isSmall;\n componentRef.instance.languages = this.languages;\n componentRef.instance.routes = this.routes;\n this.drawerService.toggle(true);\n }\n}\n","<mat-drawer-container\n id=\"onemrva-drawer-container\"\n [hasBackdrop]=\"drawerService.hasBackdrop()\"\n autosize\n>\n <mat-drawer\n #mainDrawer\n [class]=\"drawerService.classes()\"\n mode=\"over\"\n position=\"end\"\n >\n <ng-template drawerhost></ng-template>\n </mat-drawer>\n <mat-drawer-content>\n <div class=\"app-content\">\n <header>\n <mat-toolbar class=\"mat-elevation-z4\">\n <div class=\"environment\" [class]=\"environment\">\n {{ environment }}\n </div>\n <div class=\"nav-container onemrva-layout-container flex-center g-m\">\n {{ logoRedictionUrl }}\n <img\n class=\"logo align-center clickable\"\n [src]=\"logo\"\n [attr.data-cy]=\"\n 'onemrva_logo_' + currentLanguage.toLocaleLowerCase()\n \"\n alt=\"Logo ONEM/RVA\"\n [routerLink]=\"\n logoRedictionUrl !== null ? logoRedictionUrl : undefined\n \"\n [ngStyle]=\"{\n cursor: logoRedictionUrl !== null ? 'pointer' : 'default',\n }\"\n />\n <div\n class=\"application-title\"\n [ngClass]=\"{ 'small-screen': isSmall }\"\n >\n @if (title?.template; as titleTpl) {\n <ng-container *ngTemplateOutlet=\"titleTpl\"></ng-container>\n }\n </div>\n\n <div style=\"flex: 1\"></div>\n\n @if (!isSmall) {\n <div\n class=\"flex-center topMenu\"\n mat-tab-nav-bar\n [tabPanel]=\"tabPanel\"\n >\n @for (e of routes?.toArray(); track $index) {\n <a\n mat-tab-link\n [routerLink]=\"e.routerLink\"\n [attr.data-ci]=\"e.dataCy\"\n [attr.data-cy]=\"e.dataCy\"\n [routerLinkActiveOptions]=\"{\n fragment: 'exact',\n matrixParams: 'exact',\n paths: 'exact',\n queryParams: 'ignored',\n }\"\n #rla=\"routerLinkActive\"\n routerLinkActive=\"mdc-tab--active\"\n [active]=\"rla.isActive || e.isRouteActive()\"\n >\n @if (e.template; as routeTemplate) {\n <ng-container\n *ngTemplateOutlet=\"routeTemplate\"\n ></ng-container>\n }\n </a>\n }\n </div>\n }\n <mat-tab-nav-panel #tabPanel></mat-tab-nav-panel>\n\n @if (showThemeSwitcher) {\n <button\n mat-icon-button\n [matMenuTriggerFor]=\"themeSwitch\"\n [matTooltip]=\"'layout.mode.select' | translate\"\n >\n <mat-icon>{{\n activeTheme() === 'dark'\n ? 'dark_mode'\n : activeTheme() === 'light'\n ? 'light_mode'\n : 'brightness_auto'\n }}</mat-icon>\n </button>\n <mat-menu #themeSwitch>\n <button\n mat-menu-item\n [attr.aria-label]=\"'layout.mode.dark' | translate\"\n (click)=\"toggleTheme('dark')\"\n >\n <mat-icon>dark_mode</mat-icon>\n <span>{{ 'layout.mode.dark' | translate }}</span>\n </button>\n <button\n mat-menu-item\n [attr.aria-label]=\"'layout.mode.light' | translate\"\n (click)=\"toggleTheme('light')\"\n >\n <mat-icon>light_mode</mat-icon>\n <span>{{ 'layout.mode.light' | translate }}</span>\n </button>\n <button\n mat-menu-item\n [attr.aria-label]=\"'layout.mode.system' | translate\"\n (click)=\"toggleTheme('system')\"\n >\n <mat-icon>brightness_auto</mat-icon>\n <span>{{ 'layout.mode.system' | translate }}</span>\n </button>\n </mat-menu>\n }\n @if (afterNav?.template; as tpl) {\n <ng-container *ngTemplateOutlet=\"tpl\"></ng-container>\n }\n\n @if (profile !== null) {\n @if (!isSmall) {\n <mat-divider\n vertical\n style=\"height: 1em; align-self: center\"\n ></mat-divider>\n }\n @if (profile.isLoggedIn) {\n <onemrva-mat-avatar\n matRipple\n [matMenuTriggerFor]=\"menu\"\n initials=\"{{ profile.initials() }}\"\n color=\"accent\"\n size=\"xsmall\"\n class=\"clickable\"\n ></onemrva-mat-avatar>\n }\n @if (!profile.isLoggedIn) {\n <onemrva-mat-avatar\n matRipple\n [matMenuTriggerFor]=\"menu\"\n icon=\"account_circle\"\n color=\"\"\n size=\"xsmall\"\n class=\"clickable\"\n ></onemrva-mat-avatar>\n }\n <mat-menu #menu=\"matMenu\">\n @if (profile.isLoggedIn) {\n <div class=\"menu-header m mb-m\">\n {{ profile.firstName }} {{ profile.lastName }}\n </div>\n <mat-divider style=\"align-self: stretch\"></mat-divider>\n\n @if (loginMenu?.template; as menuLoginTpl) {\n <ng-container\n *ngTemplateOutlet=\"menuLoginTpl\"\n ></ng-container>\n }\n\n <button\n type=\"button\"\n class=\"mat-mdc-menu-item\"\n mat-menu-item\n data-cy=\"logoutButton\"\n (click)=\"doLogout()\"\n [attr.aria-label]=\"'layout.logout' | translate\"\n >\n <mat-icon>logout</mat-icon>\n {{ 'layout.logout' | translate }}\n </button>\n } @else {\n <button\n type=\"button\"\n mat-menu-item\n data-cy=\"loginButton\"\n (click)=\"doLogin()\"\n [attr.aria-label]=\"'layout.login' | translate\"\n >\n <mat-icon>login</mat-icon>\n {{ 'layout.login' | translate }}\n </button>\n }\n </mat-menu>\n }\n\n @if (\n isSmall &&\n (routes?.toArray()?.length || (languages && languages.length > 1))\n ) {\n <button\n type=\"button\"\n mat-icon-button\n class=\"menu-button\"\n data-cy=\"smallDeviceMenu\"\n (click)=\"this.toggleSideNav()\"\n [attr.aria-label]=\"'layout.menu' | translate\"\n >\n <mat-icon>menu</mat-icon>\n </button>\n }\n @if (!isSmall) {\n <div class=\"flex-center\" mat-tab-nav-bar [tabPanel]=\"tabPanel\">\n <a\n [matMenuTriggerFor]=\"languageMenu\"\n data-cy=\"languageMenu\"\n [attr.aria-label]=\"'language.selection' | translate\"\n mat-tab-link\n >\n {{ currentLanguage }}\n <mat-icon style=\"width: 16px\">expand_more</mat-icon>\n </a>\n </div>\n }\n <mat-menu #languageMenu>\n @for (lang of languages; track lang.code) {\n <button\n type=\"button\"\n class=\"mat-mdc-menu-item\"\n mat-menu-item\n [attr.data-cy]=\"'language_' + lang.code\"\n (click)=\"changeLanguage(lang.code)\"\n [attr.aria-label]=\"lang.label\"\n >\n {{ lang.label }}\n </button>\n }\n </mat-menu>\n </div>\n </mat-toolbar>\n </header>\n <ng-container>\n @if (content?.template; as tpl) {\n <div\n [id]=\"id\"\n [attr.role]=\"role\"\n class=\"onemrva-layout-content onemrva-layout-container\"\n >\n <ng-container *ngTemplateOutlet=\"tpl\"></ng-container>\n @if (\n environment &&\n (environment === env.LOCAL || environment === env.TEST)\n ) {\n <button\n id=\"accessibility_fab\"\n mat-fab\n color=\"accent\"\n aria-label=\"Accessibility check\"\n matTooltip=\"Accessibility check\"\n onclick=\"(function() {var _p='//openfed.github.io/AccessibilityCheck/build/';var _i=function(s,cb) {var sc=document.createElement('script');sc.onload = function() {sc.onload = null;sc.onreadystatechange = null;cb.call(this);};sc.onreadystatechange = function(){if(/^(complete|loaded)$/.test(this.readyState) === true){sc.onreadystatechange = null;sc.onload();}};sc.src=s;if (document.head) {document.head.appendChild(sc);} else {document.getElementsByTagName('head')[0].appendChild(sc);}}; var options={path:_p};_i(_p+'HTMLCS.js',function(){HTMLCSAuditor.run('WCAG2AA',null,options);});})();\"\n >\n <mat-icon>accessibility</mat-icon>\n </button>\n }\n </div>\n }\n\n <footer class=\"onemrva-footer p mb text-center\">\n @if (footer?.template; as footerTpl) {\n <div class=\"onemrva-layout-container\">\n <ng-container *ngTemplateOutlet=\"footerTpl\"></ng-container>\n </div>\n }\n </footer>\n </ng-container>\n </div>\n </mat-drawer-content>\n</mat-drawer-container>\n","import { Component, TemplateRef, ViewChild } from '@angular/core';\n\n@Component({\n selector: 'onemrva-layout-sidenav-title',\n template: `\n <ng-template>\n <ng-content></ng-content>\n </ng-template>\n `,\n\n standalone: true,\n})\nexport class LayoutSidenavTitleComponent {\n @ViewChild(TemplateRef) template?: TemplateRef<any>;\n}\n","import { Component, Input, inject } from '@angular/core';\n\nimport {\n NavItem,\n OnemrvaMatNavigationComponent,\n} from '@onemrvapublic/design-system/mat-navigation';\nimport { OnemrvaLeftSidenavService } from '../../services/left-sidenav.service';\n\n@Component({\n selector: 'onemrva-layout-left-sidenav',\n templateUrl: 'layout-left-sidenav.component.html',\n styleUrl: 'layout-left-sidenav.component.scss',\n imports: [OnemrvaMatNavigationComponent],\n})\nexport class LayoutLeftSidenavComponent {\n private _items: NavItem[] = [];\n\n @Input()\n set items(value: NavItem[]) {\n this._items = value ?? [];\n this.leftSidenavService.setOriginal(this._items);\n }\n get items(): NavItem[] {\n return this._items;\n }\n\n leftSidenavService = inject(OnemrvaLeftSidenavService);\n}\n","@if (leftSidenavService.items().length > 0) {\n <onemrva-mat-navigation\n [items]=\"leftSidenavService.items()\"\n ></onemrva-mat-navigation>\n} @else {\n <ng-content></ng-content>\n}\n","import { Component, inject } from '@angular/core';\nimport { OnemrvaDrawerService } from '../../services/drawer.service';\n\n@Component({\n selector: 'onemrva-drawer-actions',\n templateUrl: 'layout-drawer-actions.component.html',\n styleUrl: 'layout-drawer-actions.component.scss',\n standalone: true,\n})\nexport class LayoutDrawerActionsComponent {\n drawerService = inject(OnemrvaDrawerService);\n}\n","<ng-content></ng-content>\n","import { Component, inject } from '@angular/core';\nimport { OnemrvaDrawerService } from '../../services/drawer.service';\n\n@Component({\n selector: 'onemrva-drawer-content',\n templateUrl: 'layout-drawer-content.component.html',\n styleUrl: 'layout-drawer-content.component.scss',\n standalone: true,\n})\nexport class LayoutDrawerContentComponent {\n drawerService = inject(OnemrvaDrawerService);\n}\n","<span><ng-content></ng-content></span>\n","import { Component, inject, Input } from '@angular/core';\nimport { OnemrvaDrawerService } from '../../services/drawer.service';\nimport { MatIcon } from '@angular/material/icon';\n\n@Component({\n selector: 'onemrva-drawer-title',\n templateUrl: 'layout-drawer-title.component.html',\n styleUrl: 'layout-drawer-title.component.scss',\n standalone: true,\n imports: [MatIcon],\n})\nexport class LayoutDrawerTitleComponent {\n @Input()\n showClose = true;\n\n drawerService = inject(OnemrvaDrawerService);\n}\n","<span><ng-content></ng-content></span>\n@if (showClose) {\n <mat-icon\n class=\"close-drawer clickable large float-right\"\n (click)=\"drawerService.close()\"\n >close</mat-icon\n >\n}\n","import { LayoutComponent } from './layout/layout.component';\nimport { LayoutContentComponent } from './layout-content/layout-content.component';\nimport { LayoutFooterComponent } from './layout-footer/layout-footer.component';\nimport { LayoutRouteComponent } from './layout-route/layout-route.component';\nimport { LayoutTitleComponent } from './layout-title/layout-title.component';\nimport { LayoutSidenavTitleComponent } from './layout-sidenav-title/layout-sidenav-title.component';\nimport { LayoutSidenavComponent } from './layout-sidenav/layout-sidenav.component';\nimport { LayoutLoginMenuComponent } from './layout-login-menu/layout-login-menu.component';\nimport { LayoutSubrouteComponent } from './layout-subroute/layout-subroute.component';\nimport { LayoutAfterNavComponent } from './layout-after-nav/layout-after-nav.component';\nimport { LayoutLeftSidenavComponent } from './layout-left-sidenav/layout-left-sidenav.component';\n\nexport const layoutComponents = [\n LayoutComponent,\n LayoutContentComponent,\n LayoutFooterComponent,\n LayoutRouteComponent,\n LayoutSubrouteComponent,\n LayoutTitleComponent,\n LayoutSidenavTitleComponent,\n LayoutSidenavComponent,\n LayoutLoginMenuComponent,\n LayoutAfterNavComponent,\n LayoutLeftSidenavComponent,\n];\n\nexport * from './layout/layout.component';\nexport * from './layout-content/layout-content.component';\nexport * from './layout-footer/layout-footer.component';\nexport * from './layout-route/layout-route.component';\nexport * from './layout-subroute/layout-subroute.component';\nexport * from './layout-title/layout-title.component';\nexport * from './layout-sidenav-title/layout-sidenav-title.component';\nexport * from './layout-login-menu/layout-login-menu.component';\nexport * from './layout-sidenav/layout-sidenav.component';\nexport * from './layout-left-sidenav/layout-left-sidenav.component';\nexport * from './layout-after-nav/layout-after-nav.component';\nexport * from './layout-drawer-actions/layout-drawer-actions.component';\nexport * from './layout-drawer-content/layout-drawer-content.component';\nexport * from './layout-drawer-title/layout-drawer-title.component';\nexport * from './layout-left-sidenav/layout-left-sidenav.component';\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'striphtml',\n standalone: true,\n})\nexport class StripHtmlPipe implements PipeTransform {\n transform(value: string): any {\n return value.replace(/<.*?>/g, ''); // replace tags\n }\n}\n","import { coerceBooleanProperty } from '@angular/cdk/coercion';\n\nexport function CoerceBooleanInput(defaultValue: boolean) {\n return (target: any, propertyKey: string | symbol) => {\n Object.defineProperty(target, propertyKey, {\n get() {\n return this[propertyKey.toString() + '__underlying_field'];\n },\n set(newValue: any) {\n const v =\n newValue === '' || newValue === null || newValue === undefined\n ? defaultValue\n : coerceBooleanProperty(newValue);\n\n this[propertyKey.toString() + '__underlying_field'] = v;\n },\n });\n };\n}\n","import { BehaviorSubject } from 'rxjs';\n\nexport function ObservableContent() {\n return (target: any, propertyKey: string) => {\n const value = new BehaviorSubject(undefined);\n Object.defineProperty(target, propertyKey, {\n get: () => value,\n set: (v: any) => {\n value.next(v);\n },\n });\n };\n}\n","export class OnemRvaProfile {\n private _isLoggedIn = false;\n private _firstName = '';\n private _lastName = '';\n\n public constructor();\n public constructor(firstName: string, lastName: string);\n\n public constructor(...args: any[]) {\n if (args.length === 2) {\n this._firstName = args[0];\n this._lastName = args[1];\n this._isLoggedIn = true;\n }\n }\n\n initials(): string {\n if (this._firstName === '' || this._lastName === '') return '';\n return `${this._firstName.slice(0, 1)}${this._lastName.slice(0, 1)}`;\n }\n\n get firstName(): string {\n return this._firstName;\n }\n\n set firstName(value: string) {\n this._firstName = value;\n }\n\n get lastName(): string {\n return this._lastName;\n }\n\n set lastName(value: string) {\n this._lastName = value;\n }\n\n get isLoggedIn(): boolean {\n return this._isLoggedIn;\n }\n\n set isLoggedIn(value: boolean) {\n this._isLoggedIn = value;\n }\n\n login(firstName: string, lastName: string) {\n this._firstName = firstName;\n this._lastName = lastName;\n this._isLoggedIn = true;\n }\n\n logout() {\n this._firstName = '';\n this._lastName = '';\n this._isLoggedIn = false;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { LayoutModule } from '@angular/cdk/layout';\nimport { RouterModule } from '@angular/router';\n\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatIconModule } from '@angular/material/icon';\n\nimport { layoutComponents } from './components';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatSidenavModule } from '@angular/material/sidenav';\nimport { DrawerHostDirective } from './directives/drawer-host.directive';\nimport { StripHtmlPipe } from './directives/striphtml.pipe';\nimport { MAT_SNACK_BAR_DEFAULT_OPTIONS } from '@angular/material/snack-bar';\nimport { OnemrvaMatAvatarModule } from '@onemrvapublic/design-system/mat-avatar';\nimport { MatRipple } from '@angular/material/core';\n\n@NgModule({\n declarations: [],\n imports: [\n ...layoutComponents,\n StripHtmlPipe,\n DrawerHostDirective,\n CommonModule,\n RouterModule,\n LayoutModule,\n MatToolbarModule,\n MatDividerModule,\n MatSidenavModule,\n MatTabsModule,\n MatButtonModule,\n MatMenuModule,\n MatIconModule,\n OnemrvaMatAvatarModule,\n MatTooltipModule,\n TranslateModule,\n MatRipple,\n ],\n exports: [...layoutComponents, LayoutModule],\n providers: [\n {\n provide: MAT_SNACK_BAR_DEFAULT_OPTIONS,\n useValue: { horizontalPosition: 'right' },\n },\n ],\n})\nexport class OnemrvaLayoutModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["DOCUMENT","i1.LayoutComponent","i4.LayoutRouteComponent","i8.LayoutSidenavComponent","i11.LayoutLeftSidenavComponent"],"mappings":"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"}
1
+ {"version":3,"file":"onemrvapublic-design-system-layout.mjs","sources":["../../../../projects/onemrva/design-system/layout/src/components/layout-subroute/layout-subroute.component.ts","../../../../projects/onemrva/design-system/layout/src/components/layout-subroute/layout-subroute.component.html","../../../../projects/onemrva/design-system/layout/src/components/layout-route/layout-route.component.ts","../../../../projects/onemrva/design-system/layout/src/components/layout-route/layout-route.component.html","../../../../projects/onemrva/design-system/layout/src/components/layout-content/layout-content.component.ts","../../../../projects/onemrva/design-system/layout/src/components/layout-title/layout-title.component.ts","../../../../projects/onemrva/design-system/layout/src/enums/environment.enum.ts","../../../../projects/onemrva/design-system/layout/src/components/layout-footer/layout-footer.component.ts","../../../../projects/onemrva/design-system/layout/src/components/layout-login-menu/layout-login-menu.component.ts","../../../../projects/onemrva/design-system/layout/src/directives/drawer-host.directive.ts","../../../../projects/onemrva/design-system/layout/src/services/drawer.service.ts","../../../../projects/onemrva/design-system/layout/src/services/left-sidenav.service.ts","../../../../projects/onemrva/design-system/layout/src/components/layout-sidenav/layout-sidenav.component.ts","../../../../projects/onemrva/design-system/layout/src/components/layout-sidenav/layout-sidenav.component.html","../../../../projects/onemrva/design-system/layout/src/components/layout-after-nav/layout-after-nav.component.ts","../../../../projects/onemrva/design-system/layout/src/components/layout-left-sidenav/layout-left-sidenav.component.ts","../../../../projects/onemrva/design-system/layout/src/components/layout-left-sidenav/layout-left-sidenav.component.html","../../../../projects/onemrva/design-system/layout/src/components/layout/layout.component.ts","../../../../projects/onemrva/design-system/layout/src/components/layout/layout.component.html","../../../../projects/onemrva/design-system/layout/src/components/layout-sidenav-title/layout-sidenav-title.component.ts","../../../../projects/onemrva/design-system/layout/src/components/layout-drawer-actions/layout-drawer-actions.component.ts","../../../../projects/onemrva/design-system/layout/src/components/layout-drawer-actions/layout-drawer-actions.component.html","../../../../projects/onemrva/design-system/layout/src/components/layout-drawer-content/layout-drawer-content.component.ts","../../../../projects/onemrva/design-system/layout/src/components/layout-drawer-content/layout-drawer-content.component.html","../../../../projects/onemrva/design-system/layout/src/components/layout-drawer-title/layout-drawer-title.component.ts","../../../../projects/onemrva/design-system/layout/src/components/layout-drawer-title/layout-drawer-title.component.html","../../../../projects/onemrva/design-system/layout/src/components/index.ts","../../../../projects/onemrva/design-system/layout/src/directives/striphtml.pipe.ts","../../../../projects/onemrva/design-system/layout/src/decorators/coerce-boolean-input.decorator.ts","../../../../projects/onemrva/design-system/layout/src/decorators/observable-content.decorator.ts","../../../../projects/onemrva/design-system/layout/src/models/onemrva-profile.model.ts","../../../../projects/onemrva/design-system/layout/src/layout.module.ts","../../../../projects/onemrva/design-system/layout/onemrvapublic-design-system-layout.ts"],"sourcesContent":["import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n Input,\n QueryList,\n TemplateRef,\n ViewChild,\n inject,\n} from '@angular/core';\nimport { Router, RouterLink } from '@angular/router';\n\n@Component({\n selector: 'onemrva-layout-subroute',\n templateUrl: 'layout-subroute.component.html',\n\n standalone: true,\n})\nexport class LayoutSubrouteComponent implements AfterViewInit {\n private cd = inject(ChangeDetectorRef);\n private router = inject(Router);\n\n @Input() customNgClass: any;\n\n @ViewChild(TemplateRef) template?: TemplateRef<any>;\n\n @Input() routerLink: typeof RouterLink.prototype.routerLink | string;\n @Input() routerLinkActiveOptions?: any;\n @Input() public dataCy?: string;\n @Input() label?: string;\n @Input() icon?: string;\n\n @ContentChildren(LayoutSubrouteComponent)\n subroutes?: QueryList<LayoutSubrouteComponent>;\n\n ngAfterViewInit() {\n if (this.label === undefined) {\n console.error(\n 'ONEM/RVA DESIGN SYSTEM ERROR : Since 20.1.0 , you must add a label attribute to the onemrva-layout-route',\n this.routerLink,\n );\n }\n this.cd.detectChanges();\n }\n\n hasSubroutes() {\n return this.subroutes !== undefined && this.subroutes.length > 0;\n }\n\n hasActiveSubroute() {\n return this.subroutes?.some(x => this.isActiveRoute(x)) ?? false;\n }\n\n private isActiveRoute(subroute: LayoutSubrouteComponent): boolean {\n if (subroute.routerLink) {\n const routerLink = Array.isArray(subroute.routerLink)\n ? this.router.createUrlTree(subroute.routerLink)\n : this.router.createUrlTree([subroute.routerLink]);\n\n return this.router.isActive(routerLink, {\n paths: 'exact',\n queryParams: 'exact',\n fragment: 'ignored',\n matrixParams: 'ignored',\n });\n } else {\n return false;\n }\n }\n}\n","<ng-template>\n {{ label }}\n</ng-template>\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n inject,\n Input,\n QueryList,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport { Router, RouterLink, RouterLinkActive } from '@angular/router';\nimport { LayoutSubrouteComponent } from '../layout-subroute/layout-subroute.component';\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\nimport { MatIcon } from '@angular/material/icon';\nimport { MatMenu, MatMenuItem, MatMenuTrigger } from '@angular/material/menu';\n\n@Component({\n selector: 'onemrva-layout-route',\n templateUrl: 'layout-route.component.html',\n\n standalone: true,\n imports: [\n MatIcon,\n MatMenu,\n MatMenuTrigger,\n RouterLink,\n MatMenuItem,\n RouterLinkActive,\n NgTemplateOutlet,\n NgClass,\n ],\n})\nexport class LayoutRouteComponent implements AfterViewInit {\n @Input() customNgClass: any;\n\n @ViewChild('navTpl') template: TemplateRef<any> | null = null;\n\n @Input() routerLink?: string;\n @Input() routerLinkActiveOptions?: any;\n @Input() public dataCy?: string;\n @Input() baseRouteForActiveMenu?: string;\n @Input() label?: string;\n @Input() icon?: string;\n\n @ContentChildren(LayoutSubrouteComponent)\n subroutes?: QueryList<LayoutSubrouteComponent>;\n\n hasSubroutes() {\n return this.subroutes !== undefined && this.subroutes.length > 0;\n }\n\n cd = inject(ChangeDetectorRef);\n router = inject(Router);\n\n ngAfterViewInit() {\n this.cd.detectChanges();\n\n if (this.label === undefined) {\n console.error(\n 'ONEM/RVA DESIGN SYSTEM ERROR : Since 20.1.0 , you must add a label attribute to the onemrva-layout-route',\n this.routerLink,\n );\n }\n }\n\n isRouteActive() {\n if (this.routerLink === null || this.routerLink === undefined) {\n if (this.baseRouteForActiveMenu) {\n const currentRoute = this.router.url;\n const isParentRoutePresent = new RegExp(\n this.baseRouteForActiveMenu + '/',\n ).test(currentRoute);\n const isExactRoutePresent = new RegExp(\n this.baseRouteForActiveMenu + '$',\n ).test(currentRoute);\n\n return isParentRoutePresent || isExactRoutePresent;\n }\n }\n return false;\n }\n}\n","<ng-template #navTpl>\n @if (!hasSubroutes()) {\n {{ label }}\n } @else if (hasSubroutes()) {\n <span role=\"button\" [matMenuTriggerFor]=\"menu\">\n {{ label }}\n </span>\n <mat-icon [matMenuTriggerFor]=\"menu\">expand_more</mat-icon>\n <mat-menu #menu>\n @for (e of subroutes?.toArray(); track e.routerLink) {\n @if (!e.hasSubroutes()) {\n <button\n mat-menu-item\n [routerLink]=\"e.routerLink\"\n routerLinkActive=\"active\"\n [attr.data-cy]=\"e.dataCy\"\n >\n @if (e.template; as routeTemplate) {\n <ng-container *ngTemplateOutlet=\"routeTemplate\"></ng-container>\n }\n </button>\n }\n @if (e.hasSubroutes()) {\n <button\n mat-menu-item\n [matMenuTriggerFor]=\"submenu\"\n [ngClass]=\"{ active: e.hasActiveSubroute() }\"\n [attr.data-cy]=\"e.dataCy\"\n >\n @if (e.template; as routeTemplate) {\n <ng-container *ngTemplateOutlet=\"routeTemplate\"></ng-container>\n }\n </button>\n <mat-menu #submenu>\n @for (es of e.subroutes?.toArray(); track es.routerLink) {\n <button\n mat-menu-item\n [routerLink]=\"es.routerLink\"\n routerLinkActive=\"active\"\n >\n @if (es.template; as routeTemplate) {\n <ng-container *ngTemplateOutlet=\"routeTemplate\">\n </ng-container>\n }\n </button>\n }\n </mat-menu>\n }\n }\n </mat-menu>\n }\n</ng-template>\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n Input,\n TemplateRef,\n ViewChild,\n inject,\n} from '@angular/core';\n\n@Component({\n selector: 'onemrva-layout-content',\n template: '<ng-template><ng-content></ng-content></ng-template>',\n standalone: true,\n})\nexport class LayoutContentComponent implements AfterViewInit {\n @Input() customNgClass: any;\n\n @ViewChild(TemplateRef) template?: TemplateRef<any>;\n private cd = inject(ChangeDetectorRef);\n\n ngAfterViewInit() {\n this.cd.detectChanges();\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n Input,\n TemplateRef,\n ViewChild,\n inject,\n} from '@angular/core';\n\n@Component({\n selector: 'onemrva-layout-title',\n template: '<ng-template><ng-content></ng-content></ng-template>',\n standalone: true,\n})\nexport class LayoutTitleComponent implements AfterViewInit {\n private cd = inject(ChangeDetectorRef);\n\n @Input() customNgClass: any;\n\n @ViewChild(TemplateRef) template?: TemplateRef<any>;\n\n ngAfterViewInit() {\n this.cd.detectChanges();\n }\n}\n","export enum Environment {\n LOCAL = 'LOCAL',\n TEST = 'TEST',\n VAL = 'VAL',\n PROD = 'PROD',\n}\n","import { Component, TemplateRef, ViewChild } from '@angular/core';\n\n@Component({\n selector: 'onemrva-layout-footer',\n\n template: '<ng-template><ng-content></ng-content></ng-template>',\n standalone: true,\n})\nexport class LayoutFooterComponent {\n @ViewChild(TemplateRef) template?: TemplateRef<any>;\n}\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n Input,\n TemplateRef,\n ViewChild,\n inject,\n} from '@angular/core';\n\n@Component({\n selector: 'onemrva-layout-login-menu',\n template: '<ng-template><ng-content></ng-content></ng-template>',\n\n standalone: true,\n})\nexport class LayoutLoginMenuComponent implements AfterViewInit {\n private cd = inject(ChangeDetectorRef);\n\n @Input() customNgClass: any;\n\n @ViewChild(TemplateRef) template?: TemplateRef<any>;\n\n ngAfterViewInit() {\n this.cd.detectChanges();\n }\n}\n","// Command to generate ng g d <Directive name>\n\nimport {\n AfterViewInit,\n DestroyRef,\n Directive,\n inject,\n ViewContainerRef,\n Type,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { DOCUMENT } from '@angular/core';\nimport { MatDrawer } from '@angular/material/sidenav';\n\n@Directive({\n selector: '[drawerhost]',\n standalone: true,\n})\nexport class DrawerHostDirective implements AfterViewInit {\n public destroyRef = inject(DestroyRef);\n public drawer = inject(MatDrawer);\n public viewContainerRef = inject(ViewContainerRef);\n public document = inject(DOCUMENT);\n\n createComponent<T>(component: Type<T>) {\n this.viewContainerRef.clear();\n return this.viewContainerRef.createComponent(component);\n }\n\n public bodyClass() {\n if (this.drawer?.opened) {\n this.document.body.style.overflow = 'hidden';\n } else {\n this.document.body.style.overflow = 'inherit';\n }\n }\n\n ngAfterViewInit(): void {\n this.drawer?.openedChange\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.bodyClass();\n });\n }\n}\n","import { effect, Injectable, signal, WritableSignal } from '@angular/core';\nimport { DrawerHostDirective } from '../directives/drawer-host.directive';\nimport { MatDrawer } from '@angular/material/sidenav';\nimport { OnemrvaMatSize } from '@onemrvapublic/design-system/utils';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class OnemrvaDrawerService {\n public host?: DrawerHostDirective;\n private drawer?: MatDrawer;\n\n hasBackdrop = signal(true);\n size: WritableSignal<OnemrvaMatSize> = signal('');\n isSide = false;\n\n toggle(isSide = false) {\n if (!this.drawer) return;\n this.isSide = isSide;\n this.drawer?.toggle();\n }\n\n open(isSide = false) {\n if (!this.drawer) return;\n this.isSide = isSide;\n this.drawer?.open();\n }\n\n close() {\n if (!this.drawer) return;\n this.drawer?.close();\n }\n\n classes() {\n if (this.isSide) {\n return [this.size(), 'side-menu'];\n }\n return [this.size()];\n }\n\n setDrawer(drawer: MatDrawer) {\n this.drawer = drawer;\n }\n}\n","import { Injectable, WritableSignal, inject, signal } from '@angular/core';\nimport { NavigationEnd, Router } from '@angular/router';\nimport { filter } from 'rxjs/operators';\nimport { NavItem } from '@onemrvapublic/design-system/mat-navigation';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class OnemrvaLeftSidenavService {\n private originalItems: NavItem[] = [];\n readonly items: WritableSignal<NavItem[]> = signal<NavItem[]>([]);\n private router: Router = inject(Router);\n\n constructor() {\n this.router.events\n .pipe(filter((e): e is NavigationEnd => e instanceof NavigationEnd))\n .subscribe(() => this.reset());\n }\n\n setOriginal(items: NavItem[]): void {\n this.originalItems = items ?? [];\n this.items.set(this.originalItems);\n }\n\n updateItems(items: NavItem[]): void {\n this.items.set(items ?? []);\n }\n\n reset(): void {\n this.items.set(this.originalItems);\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { Component, inject, Input, OnInit, QueryList } from '@angular/core';\nimport { TranslatePipe, TranslateService } from '@ngx-translate/core';\nimport { LayoutRouteComponent } from '../layout-route/layout-route.component';\nimport { OnemrvaDrawerService } from '../../services';\nimport {\n animate,\n state,\n style,\n transition,\n trigger,\n} from '@angular/animations';\nimport { OnemRvaLanguage } from '../../models';\nimport { MatIconButton } from '@angular/material/button';\nimport { MatIcon } from '@angular/material/icon';\nimport {\n NavItem,\n OnemrvaMatNavigationComponent,\n} from '@onemrvapublic/design-system/mat-navigation';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatSelectModule } from '@angular/material/select';\nimport { FormsModule } from '@angular/forms';\nimport { LayoutSubrouteComponent } from '../layout-subroute/layout-subroute.component';\n\n@Component({\n selector: 'onemrva-layout-sidenav',\n templateUrl: 'layout-sidenav.component.html',\n styleUrl: 'layout-sidenav.component.scss',\n animations: [\n trigger('slideInOut', [\n state(\n 'in',\n style({\n overflow: 'hidden',\n height: '*',\n }),\n ),\n state(\n 'out',\n style({\n opacity: '0',\n overflow: 'hidden',\n height: '0px',\n }),\n ),\n transition('in => out', animate('400ms ease-in-out')),\n transition('out => in', animate('400ms ease-in-out')),\n ]),\n ],\n standalone: true,\n imports: [\n MatIconButton,\n MatIcon,\n TranslatePipe,\n OnemrvaMatNavigationComponent,\n MatFormFieldModule,\n MatSelectModule,\n FormsModule,\n ],\n})\nexport class LayoutSidenavComponent implements OnInit {\n @Input() isSmall!: boolean;\n @Input() routes?: QueryList<LayoutRouteComponent>;\n @Input() languages: OnemRvaLanguage[] = [];\n\n items: NavItem[] = [];\n\n currentLanguage?: OnemRvaLanguage;\n\n helpMenuOpen!: string[][];\n\n translateService = inject(TranslateService);\n document = inject(DOCUMENT);\n drawerService = inject(OnemrvaDrawerService);\n\n ngOnInit() {\n this.currentLanguage = this.languages.filter(\n l => l.code == this.translateService.currentLang,\n )[0];\n\n if (this.routes)\n this.helpMenuOpen = this.routes.map(route =>\n route.hasSubroutes()\n ? ['out', ...route.subroutes!.map(() => 'out')]\n : ['in'],\n );\n // Replace your existing items population with:\n this.items = this.populateItemsRecursively(this.routes!);\n }\n\n changeLanguage(event: any) {\n this.translateService.use(event.value.code);\n this.document.documentElement.lang = event.value.code;\n }\n\n close() {\n this.drawerService.close();\n }\n\n private populateItemsRecursively(\n routes:\n | QueryList<LayoutRouteComponent>\n | QueryList<LayoutSubrouteComponent>\n | LayoutRouteComponent[]\n | LayoutSubrouteComponent[],\n ): NavItem[] {\n const items: NavItem[] = [];\n if (routes === undefined) routes = [];\n\n const routeArray = Array.isArray(routes) ? routes : routes.toArray();\n\n for (const route of routeArray) {\n const navItem: NavItem = {\n routerLink:\n typeof route.routerLink === 'string' ? route.routerLink : undefined,\n label: this.getRouteLabel(route),\n icon: (route as any).icon, // LayoutSubrouteComponent doesn't have icon, so cast to any\n dataCy: route.dataCy,\n };\n\n // Recursively populate children if subroutes exist\n if (route.hasSubroutes() && route.subroutes) {\n navItem.children = this.populateItemsRecursively(route.subroutes);\n }\n\n items.push(navItem);\n }\n\n return items;\n }\n\n private getRouteLabel(\n route: LayoutRouteComponent | LayoutSubrouteComponent,\n ): string {\n // Check if it's a LayoutRouteComponent with label property\n if ('label' in route && route.label) {\n return route.label;\n }\n return 'Unnamed Route';\n }\n}\n","@if (\n isSmall && (routes?.toArray()?.length || (languages && languages.length > 1))\n) {\n <div class=\"sidebar\">\n @if (isSmall && routes?.toArray()?.length) {\n <div class=\"navigation\">\n <div class=\"close-button\">\n <button\n type=\"button\"\n mat-icon-button\n (click)=\"close()\"\n data-cy=\"smallDeviceMenu\"\n attr.aria-label=\"{{ 'layout.menu' | translate }}\"\n >\n <mat-icon>close</mat-icon>\n </button>\n </div>\n <onemrva-mat-navigation [items]=\"items\"></onemrva-mat-navigation>\n </div>\n @if (languages && languages.length > 1) {\n <div class=\"language-selector\">\n <mat-form-field>\n <mat-select\n [ngModel]=\"currentLanguage\"\n (selectionChange)=\"changeLanguage($event)\"\n >\n @for (lang of languages; track lang.code) {\n <mat-option\n [value]=\"lang\"\n [attr.data-cy]=\"'language_' + lang.code\"\n >\n {{ lang.label }}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n }\n }\n </div>\n}\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n Input,\n TemplateRef,\n ViewChild,\n inject,\n} from '@angular/core';\n\n@Component({\n selector: 'onemrva-layout-after-nav',\n template: '<ng-template><ng-content></ng-content></ng-template>',\n standalone: true,\n})\nexport class LayoutAfterNavComponent implements AfterViewInit {\n private cd = inject(ChangeDetectorRef);\n\n @Input() customNgClass: any;\n\n @ViewChild(TemplateRef) template?: TemplateRef<any>;\n\n ngAfterViewInit() {\n this.cd.detectChanges();\n }\n}\n","import { Component, Input, inject, HostBinding, effect } from '@angular/core';\n\nimport {\n NavItem,\n OnemrvaMatNavigationComponent,\n} from '@onemrvapublic/design-system/mat-navigation';\nimport { OnemrvaLeftSidenavService } from '../../services/left-sidenav.service';\n\n@Component({\n selector: 'onemrva-layout-left-sidenav',\n templateUrl: 'layout-left-sidenav.component.html',\n styleUrl: 'layout-left-sidenav.component.scss',\n imports: [OnemrvaMatNavigationComponent],\n})\nexport class LayoutLeftSidenavComponent {\n private _items: NavItem[] = [];\n\n @Input()\n set items(value: NavItem[]) {\n this._items = value ?? [];\n this.leftSidenavService.setOriginal(this._items);\n }\n\n get items(): NavItem[] {\n return this._items;\n }\n\n @HostBinding('class.hidden')\n _isHidden = false;\n\n constructor() {\n effect(() => {\n this._isHidden = this.leftSidenavService.items().length === 0;\n });\n }\n\n leftSidenavService = inject(OnemrvaLeftSidenavService);\n}\n","@if (leftSidenavService.items().length > 0) {\n <onemrva-mat-navigation\n [items]=\"leftSidenavService.items()\"\n ></onemrva-mat-navigation>\n} @else {\n <ng-content></ng-content>\n}\n","import {\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n Input,\n AfterViewInit,\n OnDestroy,\n QueryList,\n OnInit,\n isDevMode,\n EventEmitter,\n Output,\n ViewChild,\n inject,\n signal,\n} from '@angular/core';\n\nimport { LayoutRouteComponent } from '../layout-route/layout-route.component';\nimport { TranslatePipe, TranslateService } from '@ngx-translate/core';\nimport { LayoutContentComponent } from '../layout-content/layout-content.component';\nimport { startWith, Subject, takeUntil } from 'rxjs';\nimport { LayoutTitleComponent } from '../layout-title/layout-title.component';\n\nimport { Environment } from '../../enums/environment.enum';\nimport {\n BreakpointObserver,\n Breakpoints,\n BreakpointState,\n} from '@angular/cdk/layout';\nimport { DOCUMENT, NgClass, NgStyle, NgTemplateOutlet } from '@angular/common';\nimport { LayoutFooterComponent } from '../layout-footer/layout-footer.component';\nimport { OnemRvaProfile } from '../../models/onemrva-profile.model';\nimport { LayoutLoginMenuComponent } from '../layout-login-menu/layout-login-menu.component';\nimport {\n MatDrawer,\n MatDrawerContainer,\n MatSidenavModule,\n} from '@angular/material/sidenav';\nimport { DrawerHostDirective } from '../../directives/drawer-host.directive';\nimport { OnemrvaDrawerService } from '../../services/drawer.service';\nimport { LayoutSidenavComponent } from '../layout-sidenav/layout-sidenav.component';\nimport { LayoutAfterNavComponent } from '../layout-after-nav/layout-after-nav.component';\nimport { OnemRvaLanguage } from '../../models/onem-language.model';\nimport {\n OnemRvaCDNService,\n OnemRvaColorDirective,\n OnemRvaSizeDirective,\n} from '@onemrvapublic/design-system/shared';\nimport { RouterLink, RouterLinkActive } from '@angular/router';\nimport { MatToolbar } from '@angular/material/toolbar';\nimport { MatTabLink, MatTabNav, MatTabNavPanel } from '@angular/material/tabs';\nimport { MatDivider } from '@angular/material/divider';\nimport { OnemrvaMatAvatarModule } from '@onemrvapublic/design-system/mat-avatar';\nimport { MatMenu, MatMenuItem, MatMenuTrigger } from '@angular/material/menu';\nimport { MatIcon } from '@angular/material/icon';\nimport { MatFabButton, MatIconButton } from '@angular/material/button';\nimport { MatTooltip } from '@angular/material/tooltip';\nimport { MatRipple } from '@angular/material/core';\nimport { OnemrvaLeftSidenavService } from '../../services';\nimport { LayoutLeftSidenavComponent } from '../layout-left-sidenav/layout-left-sidenav.component';\n\n@Component({\n selector: 'onemrva-layout',\n templateUrl: './layout.component.html',\n styleUrls: ['./layout.component.scss'],\n standalone: true,\n imports: [\n RouterLink,\n NgStyle,\n NgClass,\n MatToolbar,\n MatDrawerContainer,\n MatTabNav,\n MatTabLink,\n RouterLinkActive,\n MatTabNavPanel,\n MatDivider,\n OnemrvaMatAvatarModule,\n MatMenuTrigger,\n MatMenu,\n MatIcon,\n MatMenuItem,\n NgTemplateOutlet,\n TranslatePipe,\n MatIconButton,\n MatFabButton,\n MatTooltip,\n MatDrawer,\n DrawerHostDirective,\n MatRipple,\n OnemRvaSizeDirective,\n OnemRvaColorDirective,\n MatSidenavModule,\n LayoutLeftSidenavComponent,\n ],\n})\nexport class LayoutComponent implements OnInit, AfterViewInit, OnDestroy {\n @ContentChildren(LayoutRouteComponent)\n routes?: QueryList<LayoutRouteComponent>;\n\n @ContentChild(LayoutTitleComponent) title?: LayoutTitleComponent;\n @ContentChild(LayoutLoginMenuComponent) loginMenu?: LayoutLoginMenuComponent;\n @ContentChild(LayoutContentComponent) content?: LayoutContentComponent;\n @ContentChild(LayoutAfterNavComponent) afterNav?: LayoutAfterNavComponent;\n\n @ContentChild(LayoutFooterComponent)\n footer?: LayoutFooterComponent;\n\n @Input()\n logo = ''; // custom logo, empty string will show default onem/rva/neo/lfa localised logo\n\n @Input()\n languages: OnemRvaLanguage[] = []; // list of languages\n\n @Input()\n environment?: Environment; // possible environment to show on the frontend LOCAL, TEST, VAL, PROD\n\n @Input()\n logoRedictionUrl?: string | any[] | null = ''; // value for routerLink from logo. \"\" by default. Deactivated when set to null\n\n selectedIndex = 0;\n destroyNotifier$ = new Subject<void>();\n\n @Input()\n profile: OnemRvaProfile | null = null; // To be defined for application with authentication\n\n @Output()\n login: EventEmitter<void> = new EventEmitter<void>();\n\n @Output()\n logout: EventEmitter<void> = new EventEmitter<void>();\n // isLogoutUsed: boolean = false;\n\n env = Environment;\n\n isSmall = true;\n\n @ViewChild(MatDrawer, { static: true }) drawer!: MatDrawer;\n @ViewChild(DrawerHostDirective, { static: true })\n drawerHost!: DrawerHostDirective;\n\n @Input()\n id = 'main';\n\n @Input()\n role = 'main';\n\n @Input()\n showThemeSwitcher = true;\n\n activeTheme = signal<'light' | 'dark' | 'system'>('system');\n\n toggleTheme(newTheme: 'light' | 'dark' | 'system') {\n this.activeTheme.set(newTheme);\n // Find all elements with onemrva-theme class\n const overlayThemeDivs = document.querySelectorAll('.onemrva-theme');\n overlayThemeDivs.forEach(div => {\n // Remove existing theme classes\n div.classList.remove('light-theme', 'dark-theme');\n\n // Add new theme class if not system\n if (newTheme !== 'system') {\n div.classList.add(`${newTheme}-theme`);\n }\n });\n }\n\n private readonly translateService = inject(TranslateService);\n private readonly cdn = inject(OnemRvaCDNService);\n private readonly cd = inject(ChangeDetectorRef);\n public readonly breakpointObserver = inject(BreakpointObserver);\n private readonly document = inject(DOCUMENT);\n public readonly drawerService = inject(OnemrvaDrawerService);\n\n public readonly leftSidenavService = inject(OnemrvaLeftSidenavService);\n\n constructor() {\n if (this.languages.length === 0) {\n this.translateService.getLangs().forEach(value => {\n this.languages.push({\n code: value,\n label: value.toUpperCase(),\n } as OnemRvaLanguage);\n });\n }\n }\n\n ngOnInit() {\n this.selectedIndex = this.languages.findIndex(\n l => l.code === this.translateService.currentLang,\n );\n\n this.document.documentElement.lang = this.translateService.currentLang;\n\n this.breakpointObserver\n .observe([Breakpoints.XSmall, Breakpoints.Small])\n .pipe(takeUntil(this.destroyNotifier$))\n .subscribe((state: BreakpointState) => {\n if (state.matches) {\n this.isSmall = true;\n } else {\n this.drawerService.close();\n this.isSmall = false;\n }\n });\n\n if (this.logo === '') {\n this.translateService.onLangChange\n .pipe(\n startWith({ lang: this.translateService.currentLang }),\n takeUntil(this.destroyNotifier$),\n )\n .subscribe(lang => {\n this.logo = this.cdn.getImg(\n `logo/logo_${lang.lang?.toLocaleLowerCase()}.svg`,\n );\n });\n }\n this.translateService.onLangChange\n .pipe(takeUntil(this.destroyNotifier$))\n .subscribe(event => {\n this.selectedIndex = this.languages.findIndex(\n lang => lang.code === event.lang,\n );\n });\n\n this.drawerService.host = this.drawerHost;\n this.drawerService.setDrawer(this.drawer);\n }\n\n get currentLanguage() {\n return this.translateService.currentLang || '';\n }\n\n ngAfterViewInit() {\n if (isDevMode()) {\n this.cd.detectChanges();\n }\n // this.drawer.closedStart\n // .pipe(takeUntil(this.destroyNotifier$))\n // .subscribe(() => {\n // });\n }\n\n ngOnDestroy(): void {\n this.destroyNotifier$.next();\n this.destroyNotifier$.complete();\n }\n\n doLogout() {\n this.logout.next();\n }\n\n doLogin() {\n this.login.next();\n }\n\n changeLanguage(langCode: string) {\n this.translateService.use(langCode);\n this.document.documentElement.lang = langCode;\n }\n\n toggleSideNav() {\n const componentRef = this.drawerHost.createComponent(\n LayoutSidenavComponent,\n );\n this.drawerService.size.set('');\n componentRef.instance.isSmall = this.isSmall;\n componentRef.instance.languages = this.languages;\n componentRef.instance.routes = this.routes;\n this.drawerService.toggle(true);\n }\n}\n","<mat-drawer-container\n id=\"onemrva-drawer-container\"\n [hasBackdrop]=\"drawerService.hasBackdrop()\"\n autosize\n>\n <mat-drawer\n #mainDrawer\n [class]=\"drawerService.classes()\"\n mode=\"over\"\n position=\"end\"\n >\n <ng-template drawerhost></ng-template>\n </mat-drawer>\n <mat-drawer-content>\n <div class=\"app-content\">\n <header>\n <mat-toolbar class=\"mat-elevation-z4\">\n <div class=\"environment\" [class]=\"environment\">\n {{ environment }}\n </div>\n <div class=\"nav-container onemrva-layout-container flex-center g-m\">\n {{ logoRedictionUrl }}\n <img\n class=\"logo align-center clickable\"\n [src]=\"logo\"\n [attr.data-cy]=\"\n 'onemrva_logo_' + currentLanguage.toLocaleLowerCase()\n \"\n alt=\"Logo ONEM/RVA\"\n [routerLink]=\"\n logoRedictionUrl !== null ? logoRedictionUrl : undefined\n \"\n [ngStyle]=\"{\n cursor: logoRedictionUrl !== null ? 'pointer' : 'default',\n }\"\n />\n <div\n class=\"application-title\"\n [ngClass]=\"{ 'small-screen': isSmall }\"\n >\n @if (title?.template; as titleTpl) {\n <ng-container *ngTemplateOutlet=\"titleTpl\"></ng-container>\n }\n </div>\n\n <div style=\"flex: 1\"></div>\n\n @if (!isSmall) {\n <div\n class=\"flex-center topMenu\"\n mat-tab-nav-bar\n [tabPanel]=\"tabPanel\"\n >\n @for (e of routes?.toArray(); track $index) {\n <a\n mat-tab-link\n [routerLink]=\"e.routerLink\"\n [attr.data-ci]=\"e.dataCy\"\n [attr.data-cy]=\"e.dataCy\"\n [routerLinkActiveOptions]=\"{\n fragment: 'exact',\n matrixParams: 'exact',\n paths: 'exact',\n queryParams: 'ignored',\n }\"\n #rla=\"routerLinkActive\"\n routerLinkActive=\"mdc-tab--active\"\n [active]=\"rla.isActive || e.isRouteActive()\"\n >\n @if (e.template; as routeTemplate) {\n <ng-container\n *ngTemplateOutlet=\"routeTemplate\"\n ></ng-container>\n }\n </a>\n }\n </div>\n }\n <mat-tab-nav-panel #tabPanel></mat-tab-nav-panel>\n\n @if (showThemeSwitcher) {\n <button\n mat-icon-button\n [matMenuTriggerFor]=\"themeSwitch\"\n [matTooltip]=\"'layout.mode.select' | translate\"\n >\n <mat-icon>{{\n activeTheme() === 'dark'\n ? 'dark_mode'\n : activeTheme() === 'light'\n ? 'light_mode'\n : 'brightness_auto'\n }}</mat-icon>\n </button>\n <mat-menu #themeSwitch>\n <button\n mat-menu-item\n [attr.aria-label]=\"'layout.mode.dark' | translate\"\n (click)=\"toggleTheme('dark')\"\n >\n <mat-icon>dark_mode</mat-icon>\n <span>{{ 'layout.mode.dark' | translate }}</span>\n </button>\n <button\n mat-menu-item\n [attr.aria-label]=\"'layout.mode.light' | translate\"\n (click)=\"toggleTheme('light')\"\n >\n <mat-icon>light_mode</mat-icon>\n <span>{{ 'layout.mode.light' | translate }}</span>\n </button>\n <button\n mat-menu-item\n [attr.aria-label]=\"'layout.mode.system' | translate\"\n (click)=\"toggleTheme('system')\"\n >\n <mat-icon>brightness_auto</mat-icon>\n <span>{{ 'layout.mode.system' | translate }}</span>\n </button>\n </mat-menu>\n }\n @if (afterNav?.template; as tpl) {\n <ng-container *ngTemplateOutlet=\"tpl\"></ng-container>\n }\n\n @if (profile !== null) {\n @if (!isSmall) {\n <mat-divider\n vertical\n style=\"height: 1em; align-self: center\"\n ></mat-divider>\n }\n @if (profile.isLoggedIn) {\n <onemrva-mat-avatar\n matRipple\n [matMenuTriggerFor]=\"menu\"\n initials=\"{{ profile.initials() }}\"\n color=\"accent\"\n size=\"xsmall\"\n class=\"clickable\"\n ></onemrva-mat-avatar>\n }\n @if (!profile.isLoggedIn) {\n <onemrva-mat-avatar\n matRipple\n [matMenuTriggerFor]=\"menu\"\n icon=\"account_circle\"\n color=\"\"\n size=\"xsmall\"\n class=\"clickable\"\n ></onemrva-mat-avatar>\n }\n <mat-menu #menu=\"matMenu\">\n @if (profile.isLoggedIn) {\n <div class=\"menu-header m mb-m\">\n {{ profile.firstName }} {{ profile.lastName }}\n </div>\n <mat-divider style=\"align-self: stretch\"></mat-divider>\n\n @if (loginMenu?.template; as menuLoginTpl) {\n <ng-container\n *ngTemplateOutlet=\"menuLoginTpl\"\n ></ng-container>\n }\n\n <button\n type=\"button\"\n class=\"mat-mdc-menu-item\"\n mat-menu-item\n data-cy=\"logoutButton\"\n (click)=\"doLogout()\"\n [attr.aria-label]=\"'layout.logout' | translate\"\n >\n <mat-icon>logout</mat-icon>\n {{ 'layout.logout' | translate }}\n </button>\n } @else {\n <button\n type=\"button\"\n mat-menu-item\n data-cy=\"loginButton\"\n (click)=\"doLogin()\"\n [attr.aria-label]=\"'layout.login' | translate\"\n >\n <mat-icon>login</mat-icon>\n {{ 'layout.login' | translate }}\n </button>\n }\n </mat-menu>\n }\n\n @if (\n isSmall &&\n (routes?.toArray()?.length || (languages && languages.length > 1))\n ) {\n <button\n type=\"button\"\n mat-icon-button\n class=\"menu-button\"\n data-cy=\"smallDeviceMenu\"\n (click)=\"this.toggleSideNav()\"\n [attr.aria-label]=\"'layout.menu' | translate\"\n >\n <mat-icon>menu</mat-icon>\n </button>\n }\n @if (!isSmall) {\n <div class=\"flex-center\" mat-tab-nav-bar [tabPanel]=\"tabPanel\">\n <a\n [matMenuTriggerFor]=\"languageMenu\"\n data-cy=\"languageMenu\"\n [attr.aria-label]=\"'language.selection' | translate\"\n mat-tab-link\n >\n {{ currentLanguage }}\n <mat-icon style=\"width: 16px\">expand_more</mat-icon>\n </a>\n </div>\n }\n <mat-menu #languageMenu>\n @for (lang of languages; track lang.code) {\n <button\n type=\"button\"\n class=\"mat-mdc-menu-item\"\n mat-menu-item\n [attr.data-cy]=\"'language_' + lang.code\"\n (click)=\"changeLanguage(lang.code)\"\n [attr.aria-label]=\"lang.label\"\n >\n {{ lang.label }}\n </button>\n }\n </mat-menu>\n </div>\n </mat-toolbar>\n </header>\n <ng-container>\n @if (content?.template; as tpl) {\n <div\n [id]=\"id\"\n [attr.role]=\"role\"\n class=\"onemrva-layout-content onemrva-layout-container\"\n >\n @if (leftSidenavService.items().length > 0) {\n <div class=\"left-side-nav\">\n <onemrva-layout-left-sidenav></onemrva-layout-left-sidenav>\n <div class=\"right-content\">\n <ng-container *ngTemplateOutlet=\"tpl\"></ng-container>\n </div>\n </div>\n } @else {\n <ng-container *ngTemplateOutlet=\"tpl\"></ng-container>\n }\n @if (\n environment &&\n (environment === env.LOCAL || environment === env.TEST)\n ) {\n <button\n id=\"accessibility_fab\"\n mat-fab\n color=\"accent\"\n aria-label=\"Accessibility check\"\n matTooltip=\"Accessibility check\"\n onclick=\"(function() {var _p='//openfed.github.io/AccessibilityCheck/build/';var _i=function(s,cb) {var sc=document.createElement('script');sc.onload = function() {sc.onload = null;sc.onreadystatechange = null;cb.call(this);};sc.onreadystatechange = function(){if(/^(complete|loaded)$/.test(this.readyState) === true){sc.onreadystatechange = null;sc.onload();}};sc.src=s;if (document.head) {document.head.appendChild(sc);} else {document.getElementsByTagName('head')[0].appendChild(sc);}}; var options={path:_p};_i(_p+'HTMLCS.js',function(){HTMLCSAuditor.run('WCAG2AA',null,options);});})();\"\n >\n <mat-icon>accessibility</mat-icon>\n </button>\n }\n </div>\n }\n\n <footer class=\"onemrva-footer p mb text-center\">\n @if (footer?.template; as footerTpl) {\n <div class=\"onemrva-layout-container\">\n <ng-container *ngTemplateOutlet=\"footerTpl\"></ng-container>\n </div>\n }\n </footer>\n </ng-container>\n </div>\n </mat-drawer-content>\n</mat-drawer-container>\n","import { Component, TemplateRef, ViewChild } from '@angular/core';\n\n@Component({\n selector: 'onemrva-layout-sidenav-title',\n template: `\n <ng-template>\n <ng-content></ng-content>\n </ng-template>\n `,\n\n standalone: true,\n})\nexport class LayoutSidenavTitleComponent {\n @ViewChild(TemplateRef) template?: TemplateRef<any>;\n}\n","import { Component, inject } from '@angular/core';\nimport { OnemrvaDrawerService } from '../../services/drawer.service';\n\n@Component({\n selector: 'onemrva-drawer-actions',\n templateUrl: 'layout-drawer-actions.component.html',\n styleUrl: 'layout-drawer-actions.component.scss',\n standalone: true,\n})\nexport class LayoutDrawerActionsComponent {\n drawerService = inject(OnemrvaDrawerService);\n}\n","<ng-content></ng-content>\n","import { Component, inject } from '@angular/core';\nimport { OnemrvaDrawerService } from '../../services/drawer.service';\n\n@Component({\n selector: 'onemrva-drawer-content',\n templateUrl: 'layout-drawer-content.component.html',\n styleUrl: 'layout-drawer-content.component.scss',\n standalone: true,\n})\nexport class LayoutDrawerContentComponent {\n drawerService = inject(OnemrvaDrawerService);\n}\n","<span><ng-content></ng-content></span>\n","import { Component, inject, Input } from '@angular/core';\nimport { OnemrvaDrawerService } from '../../services/drawer.service';\nimport { MatIcon } from '@angular/material/icon';\n\n@Component({\n selector: 'onemrva-drawer-title',\n templateUrl: 'layout-drawer-title.component.html',\n styleUrl: 'layout-drawer-title.component.scss',\n standalone: true,\n imports: [MatIcon],\n})\nexport class LayoutDrawerTitleComponent {\n @Input()\n showClose = true;\n\n drawerService = inject(OnemrvaDrawerService);\n}\n","<span><ng-content></ng-content></span>\n@if (showClose) {\n <mat-icon\n class=\"close-drawer clickable large float-right\"\n (click)=\"drawerService.close()\"\n >close</mat-icon\n >\n}\n","import { LayoutComponent } from './layout/layout.component';\nimport { LayoutContentComponent } from './layout-content/layout-content.component';\nimport { LayoutFooterComponent } from './layout-footer/layout-footer.component';\nimport { LayoutRouteComponent } from './layout-route/layout-route.component';\nimport { LayoutTitleComponent } from './layout-title/layout-title.component';\nimport { LayoutSidenavTitleComponent } from './layout-sidenav-title/layout-sidenav-title.component';\nimport { LayoutSidenavComponent } from './layout-sidenav/layout-sidenav.component';\nimport { LayoutLoginMenuComponent } from './layout-login-menu/layout-login-menu.component';\nimport { LayoutSubrouteComponent } from './layout-subroute/layout-subroute.component';\nimport { LayoutAfterNavComponent } from './layout-after-nav/layout-after-nav.component';\nimport { LayoutLeftSidenavComponent } from './layout-left-sidenav/layout-left-sidenav.component';\n\nexport const layoutComponents = [\n LayoutComponent,\n LayoutContentComponent,\n LayoutFooterComponent,\n LayoutRouteComponent,\n LayoutSubrouteComponent,\n LayoutTitleComponent,\n LayoutSidenavTitleComponent,\n LayoutSidenavComponent,\n LayoutLoginMenuComponent,\n LayoutAfterNavComponent,\n LayoutLeftSidenavComponent,\n];\n\nexport * from './layout/layout.component';\nexport * from './layout-content/layout-content.component';\nexport * from './layout-footer/layout-footer.component';\nexport * from './layout-route/layout-route.component';\nexport * from './layout-subroute/layout-subroute.component';\nexport * from './layout-title/layout-title.component';\nexport * from './layout-sidenav-title/layout-sidenav-title.component';\nexport * from './layout-login-menu/layout-login-menu.component';\nexport * from './layout-sidenav/layout-sidenav.component';\nexport * from './layout-left-sidenav/layout-left-sidenav.component';\nexport * from './layout-after-nav/layout-after-nav.component';\nexport * from './layout-drawer-actions/layout-drawer-actions.component';\nexport * from './layout-drawer-content/layout-drawer-content.component';\nexport * from './layout-drawer-title/layout-drawer-title.component';\nexport * from './layout-left-sidenav/layout-left-sidenav.component';\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'striphtml',\n standalone: true,\n})\nexport class StripHtmlPipe implements PipeTransform {\n transform(value: string): any {\n return value.replace(/<.*?>/g, ''); // replace tags\n }\n}\n","import { coerceBooleanProperty } from '@angular/cdk/coercion';\n\nexport function CoerceBooleanInput(defaultValue: boolean) {\n return (target: any, propertyKey: string | symbol) => {\n Object.defineProperty(target, propertyKey, {\n get() {\n return this[propertyKey.toString() + '__underlying_field'];\n },\n set(newValue: any) {\n const v =\n newValue === '' || newValue === null || newValue === undefined\n ? defaultValue\n : coerceBooleanProperty(newValue);\n\n this[propertyKey.toString() + '__underlying_field'] = v;\n },\n });\n };\n}\n","import { BehaviorSubject } from 'rxjs';\n\nexport function ObservableContent() {\n return (target: any, propertyKey: string) => {\n const value = new BehaviorSubject(undefined);\n Object.defineProperty(target, propertyKey, {\n get: () => value,\n set: (v: any) => {\n value.next(v);\n },\n });\n };\n}\n","export class OnemRvaProfile {\n private _isLoggedIn = false;\n private _firstName = '';\n private _lastName = '';\n\n public constructor();\n public constructor(firstName: string, lastName: string);\n\n public constructor(...args: any[]) {\n if (args.length === 2) {\n this._firstName = args[0];\n this._lastName = args[1];\n this._isLoggedIn = true;\n }\n }\n\n initials(): string {\n if (this._firstName === '' || this._lastName === '') return '';\n return `${this._firstName.slice(0, 1)}${this._lastName.slice(0, 1)}`;\n }\n\n get firstName(): string {\n return this._firstName;\n }\n\n set firstName(value: string) {\n this._firstName = value;\n }\n\n get lastName(): string {\n return this._lastName;\n }\n\n set lastName(value: string) {\n this._lastName = value;\n }\n\n get isLoggedIn(): boolean {\n return this._isLoggedIn;\n }\n\n set isLoggedIn(value: boolean) {\n this._isLoggedIn = value;\n }\n\n login(firstName: string, lastName: string) {\n this._firstName = firstName;\n this._lastName = lastName;\n this._isLoggedIn = true;\n }\n\n logout() {\n this._firstName = '';\n this._lastName = '';\n this._isLoggedIn = false;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { LayoutModule } from '@angular/cdk/layout';\nimport { RouterModule } from '@angular/router';\n\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatIconModule } from '@angular/material/icon';\n\nimport { layoutComponents } from './components';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatSidenavModule } from '@angular/material/sidenav';\nimport { DrawerHostDirective } from './directives/drawer-host.directive';\nimport { StripHtmlPipe } from './directives/striphtml.pipe';\nimport { MAT_SNACK_BAR_DEFAULT_OPTIONS } from '@angular/material/snack-bar';\nimport { OnemrvaMatAvatarModule } from '@onemrvapublic/design-system/mat-avatar';\nimport { MatRipple } from '@angular/material/core';\n\n@NgModule({\n declarations: [],\n imports: [\n ...layoutComponents,\n StripHtmlPipe,\n DrawerHostDirective,\n CommonModule,\n RouterModule,\n LayoutModule,\n MatToolbarModule,\n MatDividerModule,\n MatSidenavModule,\n MatTabsModule,\n MatButtonModule,\n MatMenuModule,\n MatIconModule,\n OnemrvaMatAvatarModule,\n MatTooltipModule,\n TranslateModule,\n MatRipple,\n ],\n exports: [...layoutComponents, LayoutModule],\n providers: [\n {\n provide: MAT_SNACK_BAR_DEFAULT_OPTIONS,\n useValue: { horizontalPosition: 'right' },\n },\n ],\n})\nexport class OnemrvaLayoutModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["DOCUMENT","i1","i2","i1.LayoutComponent","i4.LayoutRouteComponent","i8.LayoutSidenavComponent","i11.LayoutLeftSidenavComponent"],"mappings":"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"}
@@ -151,7 +151,7 @@ class OnemrvaMatMultiSelectComponent extends MatFormFieldControl {
151
151
  useExisting: forwardRef(() => OnemrvaMatMultiSelectComponent),
152
152
  multi: true,
153
153
  },
154
- ], queries: [{ propertyName: "matOptions", predicate: MatOption }], usesInheritance: true, ngImport: i0, template: "<mat-select\n [multiple]=\"multiple\"\n [formControl]=\"formControl\"\n [attr.data-cy]=\"dataCy\"\n [attr.aria-label]=\"label\"\n (focus)=\"onFocus()\"\n (blur)=\"onBlur()\"\n [placeholder]=\"'select.select.placeholder' | translate\"\n [disabled]=\"disabled\"\n>\n @if (multiple && selectionToggle) {\n <div class=\"selection-choice text-right\">\n <a\n tabindex=\"1\"\n [ngClass]=\"{ 'mat-disabled': isAllSelected() }\"\n (click)=\"selectAll()\"\n >{{ 'select.select.all' | translate }}</a\n ><span class=\"separator\">&nbsp;&nbsp;|&nbsp;&nbsp;</span>\n <a\n tabindex=\"2\"\n [ngClass]=\"{ 'mat-disabled': isNoneSelected() }\"\n (click)=\"deselectAll($event)\"\n >{{ 'select.deselect.all' | translate }}</a\n >\n </div>\n }\n <div class=\"option-list\">\n @if (showFilter) {\n <mat-option>\n <mat-select-search\n [formControl]=\"searchFilter\"\n ariaLabel=\"{{ 'select.search.filter' | translate }}\"\n noEntriesFoundLabel=\"{{ 'select.search.notFound' | translate }}\"\n placeholderLabel=\"{{ 'select.search.filter' | translate }}\"\n ></mat-select-search>\n </mat-option>\n }\n @for (matOption of matOptions$ | async; track matOption.value) {\n <ng-container>\n <mat-option\n [disabled]=\"matOption.disabled\"\n [value]=\"matOption.value\"\n [attr.data-cy]=\"matOption._getHostElement().dataset['cy']\"\n >\n {{ matOption._text?.nativeElement?.textContent }}\n </mat-option>\n </ng-container>\n }\n </div>\n</mat-select>\n@if (multiple && counter > 0) {\n <div class=\"mat-select-counter float-right position-absolute text-center\">\n <span class=\"text\">{{ counter }}</span\n ><mat-icon (click)=\"deselectAll($event)\">close</mat-icon>\n </div>\n}\n", styles: [":host{display:inline-block;width:100%}:host .mat-select-counter{top:var(--spacer);right:var(--triple-spacer);display:block;padding:var(--quarter-spacer) var(--half-spacer) var(--quarter-spacer) var(--spacer);background:var(--mat-sys-primary-container);color:var(--mat-sys-on-primary-container);min-width:var(--triple-spacer);font-family:var(--brand-font);border:1px solid var(--mat-sys-primary);border-radius:var(--button-border-radius)}:host .mat-select-counter span.text{font-family:var(--sys-label-large-font);font-style:normal;font-weight:500;font-size:.75rem;line-height:1.25rem}:host .mat-select-counter mat-icon{font-size:.75rem;height:.75rem;width:.75rem;line-height:1rem;padding:0 var(--quarter-spacer) 0 var(--quarter-spacer);cursor:pointer}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i2.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i2.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: MatSelectSearchComponent, selector: "mat-select-search", inputs: ["placeholderLabel", "type", "closeIcon", "closeSvgIcon", "noEntriesFoundLabel", "clearSearchInput", "searching", "disableInitialFocus", "enableClearOnEscapePressed", "preventHomeEndKeyPropagation", "disableScrollToActiveOnOptionsChanged", "ariaLabel", "showToggleAllCheckbox", "toggleAllCheckboxChecked", "toggleAllCheckboxIndeterminate", "toggleAllCheckboxTooltipMessage", "toggleAllCheckboxTooltipPosition", "hideClearSearchButton", "alwaysRestoreSelectedOptionsMulti"], outputs: ["toggleAll"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }] }); }
154
+ ], queries: [{ propertyName: "matOptions", predicate: MatOption }], usesInheritance: true, ngImport: i0, template: "<mat-select\n [multiple]=\"multiple\"\n [formControl]=\"formControl\"\n [attr.data-cy]=\"dataCy\"\n [attr.aria-label]=\"label\"\n (focus)=\"onFocus()\"\n (blur)=\"onBlur()\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n>\n @if (multiple && selectionToggle) {\n <div class=\"selection-choice text-right\">\n <a\n tabindex=\"1\"\n [ngClass]=\"{ 'mat-disabled': isAllSelected() }\"\n (click)=\"selectAll()\"\n >{{ 'select.select.all' | translate }}</a\n ><span class=\"separator\">&nbsp;&nbsp;|&nbsp;&nbsp;</span>\n <a\n tabindex=\"2\"\n [ngClass]=\"{ 'mat-disabled': isNoneSelected() }\"\n (click)=\"deselectAll($event)\"\n >{{ 'select.deselect.all' | translate }}</a\n >\n </div>\n }\n <div class=\"option-list\">\n @if (showFilter) {\n <mat-option>\n <mat-select-search\n [formControl]=\"searchFilter\"\n ariaLabel=\"{{ 'select.search.filter' | translate }}\"\n noEntriesFoundLabel=\"{{ 'select.search.notFound' | translate }}\"\n placeholderLabel=\"{{ 'select.search.filter' | translate }}\"\n ></mat-select-search>\n </mat-option>\n }\n @for (matOption of matOptions$ | async; track matOption.value) {\n <ng-container>\n <mat-option\n [disabled]=\"matOption.disabled\"\n [value]=\"matOption.value\"\n [attr.data-cy]=\"matOption._getHostElement().dataset['cy']\"\n >\n {{ matOption._text?.nativeElement?.textContent }}\n </mat-option>\n </ng-container>\n }\n </div>\n</mat-select>\n@if (multiple && counter > 0) {\n <div class=\"mat-select-counter float-right position-absolute text-center\">\n <span class=\"text\">{{ counter }}</span\n ><mat-icon (click)=\"deselectAll($event)\">close</mat-icon>\n </div>\n}\n", styles: [":host{display:inline-block;width:100%}:host .mat-select-counter{top:var(--spacer);right:var(--triple-spacer);display:block;padding:var(--quarter-spacer) var(--half-spacer) var(--quarter-spacer) var(--spacer);background:var(--mat-sys-primary-container);color:var(--mat-sys-on-primary-container);min-width:var(--triple-spacer);font-family:var(--brand-font);border:1px solid var(--mat-sys-primary);border-radius:var(--button-border-radius)}:host .mat-select-counter span.text{font-family:var(--sys-label-large-font);font-style:normal;font-weight:500;font-size:.75rem;line-height:1.25rem}:host .mat-select-counter mat-icon{font-size:.75rem;height:.75rem;width:.75rem;line-height:1rem;padding:0 var(--quarter-spacer) 0 var(--quarter-spacer);cursor:pointer}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i2.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i2.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: MatSelectSearchComponent, selector: "mat-select-search", inputs: ["placeholderLabel", "type", "closeIcon", "closeSvgIcon", "noEntriesFoundLabel", "clearSearchInput", "searching", "disableInitialFocus", "enableClearOnEscapePressed", "preventHomeEndKeyPropagation", "disableScrollToActiveOnOptionsChanged", "ariaLabel", "showToggleAllCheckbox", "toggleAllCheckboxChecked", "toggleAllCheckboxIndeterminate", "toggleAllCheckboxTooltipMessage", "toggleAllCheckboxTooltipPosition", "hideClearSearchButton", "alwaysRestoreSelectedOptionsMulti"], outputs: ["toggleAll"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }] }); }
155
155
  }
156
156
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: OnemrvaMatMultiSelectComponent, decorators: [{
157
157
  type: Component,
@@ -174,7 +174,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImpor
174
174
  AsyncPipe,
175
175
  MatIcon,
176
176
  MatSelectSearchComponent,
177
- ], standalone: true, encapsulation: ViewEncapsulation.Emulated, template: "<mat-select\n [multiple]=\"multiple\"\n [formControl]=\"formControl\"\n [attr.data-cy]=\"dataCy\"\n [attr.aria-label]=\"label\"\n (focus)=\"onFocus()\"\n (blur)=\"onBlur()\"\n [placeholder]=\"'select.select.placeholder' | translate\"\n [disabled]=\"disabled\"\n>\n @if (multiple && selectionToggle) {\n <div class=\"selection-choice text-right\">\n <a\n tabindex=\"1\"\n [ngClass]=\"{ 'mat-disabled': isAllSelected() }\"\n (click)=\"selectAll()\"\n >{{ 'select.select.all' | translate }}</a\n ><span class=\"separator\">&nbsp;&nbsp;|&nbsp;&nbsp;</span>\n <a\n tabindex=\"2\"\n [ngClass]=\"{ 'mat-disabled': isNoneSelected() }\"\n (click)=\"deselectAll($event)\"\n >{{ 'select.deselect.all' | translate }}</a\n >\n </div>\n }\n <div class=\"option-list\">\n @if (showFilter) {\n <mat-option>\n <mat-select-search\n [formControl]=\"searchFilter\"\n ariaLabel=\"{{ 'select.search.filter' | translate }}\"\n noEntriesFoundLabel=\"{{ 'select.search.notFound' | translate }}\"\n placeholderLabel=\"{{ 'select.search.filter' | translate }}\"\n ></mat-select-search>\n </mat-option>\n }\n @for (matOption of matOptions$ | async; track matOption.value) {\n <ng-container>\n <mat-option\n [disabled]=\"matOption.disabled\"\n [value]=\"matOption.value\"\n [attr.data-cy]=\"matOption._getHostElement().dataset['cy']\"\n >\n {{ matOption._text?.nativeElement?.textContent }}\n </mat-option>\n </ng-container>\n }\n </div>\n</mat-select>\n@if (multiple && counter > 0) {\n <div class=\"mat-select-counter float-right position-absolute text-center\">\n <span class=\"text\">{{ counter }}</span\n ><mat-icon (click)=\"deselectAll($event)\">close</mat-icon>\n </div>\n}\n", styles: [":host{display:inline-block;width:100%}:host .mat-select-counter{top:var(--spacer);right:var(--triple-spacer);display:block;padding:var(--quarter-spacer) var(--half-spacer) var(--quarter-spacer) var(--spacer);background:var(--mat-sys-primary-container);color:var(--mat-sys-on-primary-container);min-width:var(--triple-spacer);font-family:var(--brand-font);border:1px solid var(--mat-sys-primary);border-radius:var(--button-border-radius)}:host .mat-select-counter span.text{font-family:var(--sys-label-large-font);font-style:normal;font-weight:500;font-size:.75rem;line-height:1.25rem}:host .mat-select-counter mat-icon{font-size:.75rem;height:.75rem;width:.75rem;line-height:1rem;padding:0 var(--quarter-spacer) 0 var(--quarter-spacer);cursor:pointer}\n"] }]
177
+ ], standalone: true, encapsulation: ViewEncapsulation.Emulated, template: "<mat-select\n [multiple]=\"multiple\"\n [formControl]=\"formControl\"\n [attr.data-cy]=\"dataCy\"\n [attr.aria-label]=\"label\"\n (focus)=\"onFocus()\"\n (blur)=\"onBlur()\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n>\n @if (multiple && selectionToggle) {\n <div class=\"selection-choice text-right\">\n <a\n tabindex=\"1\"\n [ngClass]=\"{ 'mat-disabled': isAllSelected() }\"\n (click)=\"selectAll()\"\n >{{ 'select.select.all' | translate }}</a\n ><span class=\"separator\">&nbsp;&nbsp;|&nbsp;&nbsp;</span>\n <a\n tabindex=\"2\"\n [ngClass]=\"{ 'mat-disabled': isNoneSelected() }\"\n (click)=\"deselectAll($event)\"\n >{{ 'select.deselect.all' | translate }}</a\n >\n </div>\n }\n <div class=\"option-list\">\n @if (showFilter) {\n <mat-option>\n <mat-select-search\n [formControl]=\"searchFilter\"\n ariaLabel=\"{{ 'select.search.filter' | translate }}\"\n noEntriesFoundLabel=\"{{ 'select.search.notFound' | translate }}\"\n placeholderLabel=\"{{ 'select.search.filter' | translate }}\"\n ></mat-select-search>\n </mat-option>\n }\n @for (matOption of matOptions$ | async; track matOption.value) {\n <ng-container>\n <mat-option\n [disabled]=\"matOption.disabled\"\n [value]=\"matOption.value\"\n [attr.data-cy]=\"matOption._getHostElement().dataset['cy']\"\n >\n {{ matOption._text?.nativeElement?.textContent }}\n </mat-option>\n </ng-container>\n }\n </div>\n</mat-select>\n@if (multiple && counter > 0) {\n <div class=\"mat-select-counter float-right position-absolute text-center\">\n <span class=\"text\">{{ counter }}</span\n ><mat-icon (click)=\"deselectAll($event)\">close</mat-icon>\n </div>\n}\n", styles: [":host{display:inline-block;width:100%}:host .mat-select-counter{top:var(--spacer);right:var(--triple-spacer);display:block;padding:var(--quarter-spacer) var(--half-spacer) var(--quarter-spacer) var(--spacer);background:var(--mat-sys-primary-container);color:var(--mat-sys-on-primary-container);min-width:var(--triple-spacer);font-family:var(--brand-font);border:1px solid var(--mat-sys-primary);border-radius:var(--button-border-radius)}:host .mat-select-counter span.text{font-family:var(--sys-label-large-font);font-style:normal;font-weight:500;font-size:.75rem;line-height:1.25rem}:host .mat-select-counter mat-icon{font-size:.75rem;height:.75rem;width:.75rem;line-height:1rem;padding:0 var(--quarter-spacer) 0 var(--quarter-spacer);cursor:pointer}\n"] }]
178
178
  }], ctorParameters: () => [], propDecorators: { multiple: [{
179
179
  type: Input
180
180
  }], formControl: [{
@@ -1 +1 @@
1
- {"version":3,"file":"onemrvapublic-design-system-mat-multi-select.mjs","sources":["../../../../projects/onemrva/design-system/mat-multi-select/src/onemrva-mat-multi-select.component.ts","../../../../projects/onemrva/design-system/mat-multi-select/src/onemrva-mat-multi-select.component.html","../../../../projects/onemrva/design-system/mat-multi-select/src/onemrva-mat-multi-select.module.ts","../../../../projects/onemrva/design-system/mat-multi-select/onemrvapublic-design-system-mat-multi-select.ts"],"sourcesContent":["import {\n AfterContentChecked,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n forwardRef,\n HostBinding,\n inject,\n Input,\n OnDestroy,\n OnInit,\n QueryList,\n ViewEncapsulation,\n} from '@angular/core';\nimport {\n FormControl,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n} from '@angular/forms';\nimport { MatFormFieldControl } from '@angular/material/form-field';\nimport { TranslatePipe, TranslateService } from '@ngx-translate/core';\nimport { MatOption } from '@angular/material/core';\nimport {\n debounceTime,\n map,\n Observable,\n startWith,\n Subject,\n takeUntil,\n} from 'rxjs';\nimport { AsyncPipe, NgClass } from '@angular/common';\nimport { MatIcon } from '@angular/material/icon';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatSelectSearchComponent } from '@onemrvapublic/design-system/mat-select-search';\n\nlet NEXT_ID = 0;\n\n@Component({\n selector: 'onemrva-mat-multi-select',\n templateUrl: 'onemrva-mat-multi-select.component.html',\n styleUrl: 'onemrva-mat-multi-select.component.scss',\n providers: [\n {\n provide: MatFormFieldControl,\n useExisting: OnemrvaMatMultiSelectComponent,\n multi: false,\n },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => OnemrvaMatMultiSelectComponent),\n multi: true,\n },\n ],\n imports: [\n NgClass,\n TranslatePipe,\n ReactiveFormsModule,\n MatSelectModule,\n AsyncPipe,\n MatIcon,\n MatSelectSearchComponent,\n ],\n standalone: true,\n encapsulation: ViewEncapsulation.Emulated,\n})\nexport class OnemrvaMatMultiSelectComponent\n extends MatFormFieldControl<any>\n implements OnInit, OnDestroy, AfterContentChecked\n{\n counter = 0;\n _values: any[] = [];\n public override stateChanges = new Subject<void>();\n\n @Input()\n multiple = true;\n\n @Input()\n formControl!: FormControl;\n\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('attr.role')\n public role = 'select';\n\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('attr.aria-label')\n public label = '';\n\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('attr.aria-invalid')\n public invalid = false;\n\n @Input()\n showFilter = true;\n\n @Input()\n selectionToggle = true;\n\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('attr.data-cy')\n public dataCy = `onemrva-mat-multi-select-${NEXT_ID++}`;\n\n searchFilter: FormControl = new FormControl<string>('');\n\n @ContentChildren(MatOption)\n matOptions: QueryList<MatOption> = new QueryList<MatOption>();\n matOptions$?: Observable<MatOption<any>[]>;\n onDestroy$: Subject<any> = new Subject<any>();\n\n @HostBinding('style.opacity')\n get opacity() {\n return this.disabled ? 0.4 : 1;\n }\n\n override focused = false;\n\n onFocus() {\n this.focused = true;\n this.stateChanges.next();\n }\n\n onBlur() {\n this.focused = false;\n this.stateChanges.next();\n }\n\n translate = inject(TranslateService);\n cd = inject(ChangeDetectorRef);\n\n constructor() {\n super();\n setTimeout(() => {\n this.focused = false;\n }, 3000);\n }\n\n // Function to call when the rating changes.\n onChange = (_values: any[]) => {\n //\n };\n\n // Function to call when the input is touched (when a star is clicked).\n onTouched = () => {\n //\n };\n\n // Allows Angular to update the model (rating).\n // Update the model and changes needed for the view here.\n writeValue(values: any[] | any | undefined | null): void {\n if (this.multiple) {\n this.counter = 0;\n if (Array.isArray(values)) this.counter = values.length;\n //else if (Array.isArray(this._values)) this.counter = this._values.length;\n }\n this._values = values;\n this.onChange(this._values);\n }\n\n // Allows Angular to register a function to call when the model (rating) changes.\n // Save the function as a property to call later here.\n registerOnChange(fn: (value: any[]) => void): void {\n this.onChange = fn;\n }\n\n // Allows Angular to register a function to call when the input has been touched.\n // Save the function as a property to call later here.\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n isAllSelected() {\n return this.counter === this.matOptions.length;\n }\n\n selectAll() {\n this._values = this.matOptions.map(option => {\n return option.value;\n });\n this.formControl.setValue(this._values);\n }\n\n isNoneSelected() {\n return this.counter === 0;\n }\n\n deselectAll(_$event: MouseEvent) {\n this._values = [];\n this.formControl.setValue(this._values);\n }\n\n onContainerClick(_event: MouseEvent): void {\n //\n }\n\n setDescribedByIds(_ids: string[]): void {\n //\n }\n\n ngOnDestroy(): void {\n this.onDestroy$.next('');\n this.onDestroy$.complete();\n }\n\n optionSize = 0;\n\n ngOnInit(): void {\n this.matOptions$ = this.searchFilter.valueChanges.pipe(\n debounceTime(200),\n startWith(''),\n map((value: string) => {\n this.optionSize = this.matOptions.length;\n if (this._values !== null) {\n this.counter = this._values.length;\n }\n if (value === '') {\n return this.matOptions.filter(_o => {\n return true;\n });\n }\n return this.matOptions.filter(option => {\n return option?._text?.nativeElement.innerHTML\n .toLowerCase()\n .includes(value.toLowerCase());\n });\n }),\n );\n this.formControl.valueChanges\n .pipe(takeUntil(this.onDestroy$))\n .subscribe(values => {\n this._values = values;\n this.counter = this._values.length;\n });\n }\n\n ngAfterContentChecked(): void {\n if (this.matOptions.length !== this.optionSize) {\n this.optionSize = this.matOptions.length;\n this.counter = 0;\n this.searchFilter.updateValueAndValidity({ emitEvent: true });\n }\n }\n}\n","<mat-select\n [multiple]=\"multiple\"\n [formControl]=\"formControl\"\n [attr.data-cy]=\"dataCy\"\n [attr.aria-label]=\"label\"\n (focus)=\"onFocus()\"\n (blur)=\"onBlur()\"\n [placeholder]=\"'select.select.placeholder' | translate\"\n [disabled]=\"disabled\"\n>\n @if (multiple && selectionToggle) {\n <div class=\"selection-choice text-right\">\n <a\n tabindex=\"1\"\n [ngClass]=\"{ 'mat-disabled': isAllSelected() }\"\n (click)=\"selectAll()\"\n >{{ 'select.select.all' | translate }}</a\n ><span class=\"separator\">&nbsp;&nbsp;|&nbsp;&nbsp;</span>\n <a\n tabindex=\"2\"\n [ngClass]=\"{ 'mat-disabled': isNoneSelected() }\"\n (click)=\"deselectAll($event)\"\n >{{ 'select.deselect.all' | translate }}</a\n >\n </div>\n }\n <div class=\"option-list\">\n @if (showFilter) {\n <mat-option>\n <mat-select-search\n [formControl]=\"searchFilter\"\n ariaLabel=\"{{ 'select.search.filter' | translate }}\"\n noEntriesFoundLabel=\"{{ 'select.search.notFound' | translate }}\"\n placeholderLabel=\"{{ 'select.search.filter' | translate }}\"\n ></mat-select-search>\n </mat-option>\n }\n @for (matOption of matOptions$ | async; track matOption.value) {\n <ng-container>\n <mat-option\n [disabled]=\"matOption.disabled\"\n [value]=\"matOption.value\"\n [attr.data-cy]=\"matOption._getHostElement().dataset['cy']\"\n >\n {{ matOption._text?.nativeElement?.textContent }}\n </mat-option>\n </ng-container>\n }\n </div>\n</mat-select>\n@if (multiple && counter > 0) {\n <div class=\"mat-select-counter float-right position-absolute text-center\">\n <span class=\"text\">{{ counter }}</span\n ><mat-icon (click)=\"deselectAll($event)\">close</mat-icon>\n </div>\n}\n","import { NgModule } from '@angular/core';\nimport { OnemrvaMatMultiSelectComponent } from './onemrva-mat-multi-select.component';\n\n@NgModule({\n declarations: [],\n imports: [OnemrvaMatMultiSelectComponent],\n exports: [],\n})\nexport class OnemrvaMatMultiSelectModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;AAmCA,IAAI,OAAO,GAAG,CAAC;AA8BT,MAAO,8BACX,SAAQ,mBAAwB,CAAA;AA0ChC,IAAA,IACI,OAAO,GAAA;QACT,OAAO,IAAI,CAAC,QAAQ,GAAG,GAAG,GAAG,CAAC;;IAKhC,OAAO,GAAA;AACL,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI;AACnB,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE;;IAG1B,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK;AACpB,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE;;AAM1B,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE;QA5DT,IAAA,CAAA,OAAO,GAAG,CAAC;QACX,IAAA,CAAA,OAAO,GAAU,EAAE;AACH,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,OAAO,EAAQ;QAGlD,IAAA,CAAA,QAAQ,GAAG,IAAI;;QAOR,IAAA,CAAA,IAAI,GAAG,QAAQ;;QAIf,IAAA,CAAA,KAAK,GAAG,EAAE;;QAIV,IAAA,CAAA,OAAO,GAAG,KAAK;QAGtB,IAAA,CAAA,UAAU,GAAG,IAAI;QAGjB,IAAA,CAAA,eAAe,GAAG,IAAI;;AAIf,QAAA,IAAA,CAAA,MAAM,GAAG,CAAA,yBAAA,EAA4B,OAAO,EAAE,EAAE;AAEvD,QAAA,IAAA,CAAA,YAAY,GAAgB,IAAI,WAAW,CAAS,EAAE,CAAC;AAGvD,QAAA,IAAA,CAAA,UAAU,GAAyB,IAAI,SAAS,EAAa;AAE7D,QAAA,IAAA,CAAA,UAAU,GAAiB,IAAI,OAAO,EAAO;QAOpC,IAAA,CAAA,OAAO,GAAG,KAAK;AAYxB,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,gBAAgB,CAAC;AACpC,QAAA,IAAA,CAAA,EAAE,GAAG,MAAM,CAAC,iBAAiB,CAAC;;AAU9B,QAAA,IAAA,CAAA,QAAQ,GAAG,CAAC,OAAc,KAAI;;AAE9B,SAAC;;QAGD,IAAA,CAAA,SAAS,GAAG,MAAK;;AAEjB,SAAC;QA2DD,IAAA,CAAA,UAAU,GAAG,CAAC;QAxEZ,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,OAAO,GAAG,KAAK;SACrB,EAAE,IAAI,CAAC;;;;AAeV,IAAA,UAAU,CAAC,MAAsC,EAAA;AAC/C,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,IAAI,CAAC,OAAO,GAAG,CAAC;AAChB,YAAA,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;AAAE,gBAAA,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM;;;AAGzD,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM;AACrB,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;;;;AAK7B,IAAA,gBAAgB,CAAC,EAA0B,EAAA;AACzC,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;;;;AAKpB,IAAA,iBAAiB,CAAC,EAAc,EAAA;AAC9B,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;;IAGrB,aAAa,GAAA;QACX,OAAO,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,UAAU,CAAC,MAAM;;IAGhD,SAAS,GAAA;QACP,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,IAAG;YAC1C,OAAO,MAAM,CAAC,KAAK;AACrB,SAAC,CAAC;QACF,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;;IAGzC,cAAc,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,OAAO,KAAK,CAAC;;AAG3B,IAAA,WAAW,CAAC,OAAmB,EAAA;AAC7B,QAAA,IAAI,CAAC,OAAO,GAAG,EAAE;QACjB,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;;AAGzC,IAAA,gBAAgB,CAAC,MAAkB,EAAA;;;AAInC,IAAA,iBAAiB,CAAC,IAAc,EAAA;;;IAIhC,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE;;IAK5B,QAAQ,GAAA;QACN,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,IAAI,CACpD,YAAY,CAAC,GAAG,CAAC,EACjB,SAAS,CAAC,EAAE,CAAC,EACb,GAAG,CAAC,CAAC,KAAa,KAAI;YACpB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM;AACxC,YAAA,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE;gBACzB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM;;AAEpC,YAAA,IAAI,KAAK,KAAK,EAAE,EAAE;gBAChB,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,IAAG;AACjC,oBAAA,OAAO,IAAI;AACb,iBAAC,CAAC;;YAEJ,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,IAAG;AACrC,gBAAA,OAAO,MAAM,EAAE,KAAK,EAAE,aAAa,CAAC;AACjC,qBAAA,WAAW;AACX,qBAAA,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;AAClC,aAAC,CAAC;SACH,CAAC,CACH;QACD,IAAI,CAAC,WAAW,CAAC;AACd,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC;aAC/B,SAAS,CAAC,MAAM,IAAG;AAClB,YAAA,IAAI,CAAC,OAAO,GAAG,MAAM;YACrB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM;AACpC,SAAC,CAAC;;IAGN,qBAAqB,GAAA;QACnB,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,IAAI,CAAC,UAAU,EAAE;YAC9C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM;AACxC,YAAA,IAAI,CAAC,OAAO,GAAG,CAAC;YAChB,IAAI,CAAC,YAAY,CAAC,sBAAsB,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;;;8GA5KtD,8BAA8B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA9B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,8BAA8B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,WAAA,EAAA,aAAA,EAAA,IAAA,EAAA,CAAA,WAAA,EAAA,MAAA,CAAA,EAAA,KAAA,EAAA,CAAA,iBAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,EAAA,SAAA,CAAA,EAAA,UAAA,EAAA,YAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,QAAA,CAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,eAAA,EAAA,cAAA,EAAA,EAAA,EAAA,SAAA,EAxB9B;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,mBAAmB;AAC5B,gBAAA,WAAW,EAAE,8BAA8B;AAC3C,gBAAA,KAAK,EAAE,KAAK;AACb,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,8BAA8B,CAAC;AAC7D,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACF,SAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,YAAA,EAAA,SAAA,EAmDgB,SAAS,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECvG5B,y2DAwDA,EAAA,MAAA,EAAA,CAAA,mvBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDFI,OAAO,mFAEP,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACnB,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,eAAA,EAAA,UAAA,EAAA,8BAAA,EAAA,aAAA,EAAA,UAAA,EAAA,UAAA,EAAA,wBAAA,EAAA,aAAA,EAAA,OAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,2BAAA,EAAA,gBAAA,EAAA,IAAA,EAAA,YAAA,EAAA,0BAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAEf,OAAO,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACP,wBAAwB,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,MAAA,EAAA,WAAA,EAAA,cAAA,EAAA,qBAAA,EAAA,kBAAA,EAAA,WAAA,EAAA,qBAAA,EAAA,4BAAA,EAAA,8BAAA,EAAA,uCAAA,EAAA,WAAA,EAAA,uBAAA,EAAA,0BAAA,EAAA,gCAAA,EAAA,iCAAA,EAAA,kCAAA,EAAA,uBAAA,EAAA,mCAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EALxB,aAAa,6CAGb,SAAS,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAOA,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBA5B1C,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,0BAA0B,EAAA,SAAA,EAGzB;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,mBAAmB;AAC5B,4BAAA,WAAW,EAAA,8BAAgC;AAC3C,4BAAA,KAAK,EAAE,KAAK;AACb,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,oCAAoC,CAAC;AAC7D,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;qBACF,EAAA,OAAA,EACQ;wBACP,OAAO;wBACP,aAAa;wBACb,mBAAmB;wBACnB,eAAe;wBACf,SAAS;wBACT,OAAO;wBACP,wBAAwB;AACzB,qBAAA,EAAA,UAAA,EACW,IAAI,EAAA,aAAA,EACD,iBAAiB,CAAC,QAAQ,EAAA,QAAA,EAAA,y2DAAA,EAAA,MAAA,EAAA,CAAA,mvBAAA,CAAA,EAAA;wDAWzC,QAAQ,EAAA,CAAA;sBADP;gBAID,WAAW,EAAA,CAAA;sBADV;gBAKM,IAAI,EAAA,CAAA;sBADV,KAAK;uBAAC,WAAW;gBAKX,KAAK,EAAA,CAAA;sBADX,KAAK;uBAAC,iBAAiB;gBAKjB,OAAO,EAAA,CAAA;sBADb,KAAK;uBAAC,mBAAmB;gBAI1B,UAAU,EAAA,CAAA;sBADT;gBAID,eAAe,EAAA,CAAA;sBADd;gBAKM,MAAM,EAAA,CAAA;sBADZ,KAAK;uBAAC,cAAc;gBAMrB,UAAU,EAAA,CAAA;sBADT,eAAe;uBAAC,SAAS;gBAMtB,OAAO,EAAA,CAAA;sBADV,WAAW;uBAAC,eAAe;;;MEpGjB,2BAA2B,CAAA;8GAA3B,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,2BAA2B,YAH5B,8BAA8B,CAAA,EAAA,CAAA,CAAA;AAG7B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,2BAA2B,YAH5B,8BAA8B,CAAA,EAAA,CAAA,CAAA;;2FAG7B,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBALvC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE,EAAE;oBAChB,OAAO,EAAE,CAAC,8BAA8B,CAAC;AACzC,oBAAA,OAAO,EAAE,EAAE;AACZ,iBAAA;;;ACPD;;AAEG;;;;"}
1
+ {"version":3,"file":"onemrvapublic-design-system-mat-multi-select.mjs","sources":["../../../../projects/onemrva/design-system/mat-multi-select/src/onemrva-mat-multi-select.component.ts","../../../../projects/onemrva/design-system/mat-multi-select/src/onemrva-mat-multi-select.component.html","../../../../projects/onemrva/design-system/mat-multi-select/src/onemrva-mat-multi-select.module.ts","../../../../projects/onemrva/design-system/mat-multi-select/onemrvapublic-design-system-mat-multi-select.ts"],"sourcesContent":["import {\n AfterContentChecked,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n forwardRef,\n HostBinding,\n inject,\n Input,\n OnDestroy,\n OnInit,\n QueryList,\n ViewEncapsulation,\n} from '@angular/core';\nimport {\n FormControl,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n} from '@angular/forms';\nimport { MatFormFieldControl } from '@angular/material/form-field';\nimport { TranslatePipe, TranslateService } from '@ngx-translate/core';\nimport { MatOption } from '@angular/material/core';\nimport {\n debounceTime,\n map,\n Observable,\n startWith,\n Subject,\n takeUntil,\n} from 'rxjs';\nimport { AsyncPipe, NgClass } from '@angular/common';\nimport { MatIcon } from '@angular/material/icon';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatSelectSearchComponent } from '@onemrvapublic/design-system/mat-select-search';\n\nlet NEXT_ID = 0;\n\n@Component({\n selector: 'onemrva-mat-multi-select',\n templateUrl: 'onemrva-mat-multi-select.component.html',\n styleUrl: 'onemrva-mat-multi-select.component.scss',\n providers: [\n {\n provide: MatFormFieldControl,\n useExisting: OnemrvaMatMultiSelectComponent,\n multi: false,\n },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => OnemrvaMatMultiSelectComponent),\n multi: true,\n },\n ],\n imports: [\n NgClass,\n TranslatePipe,\n ReactiveFormsModule,\n MatSelectModule,\n AsyncPipe,\n MatIcon,\n MatSelectSearchComponent,\n ],\n standalone: true,\n encapsulation: ViewEncapsulation.Emulated,\n})\nexport class OnemrvaMatMultiSelectComponent\n extends MatFormFieldControl<any>\n implements OnInit, OnDestroy, AfterContentChecked\n{\n counter = 0;\n _values: any[] = [];\n public override stateChanges = new Subject<void>();\n\n @Input()\n multiple = true;\n\n @Input()\n formControl!: FormControl;\n\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('attr.role')\n public role = 'select';\n\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('attr.aria-label')\n public label = '';\n\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('attr.aria-invalid')\n public invalid = false;\n\n @Input()\n showFilter = true;\n\n @Input()\n selectionToggle = true;\n\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('attr.data-cy')\n public dataCy = `onemrva-mat-multi-select-${NEXT_ID++}`;\n\n searchFilter: FormControl = new FormControl<string>('');\n\n @ContentChildren(MatOption)\n matOptions: QueryList<MatOption> = new QueryList<MatOption>();\n matOptions$?: Observable<MatOption<any>[]>;\n onDestroy$: Subject<any> = new Subject<any>();\n\n @HostBinding('style.opacity')\n get opacity() {\n return this.disabled ? 0.4 : 1;\n }\n\n override focused = false;\n\n onFocus() {\n this.focused = true;\n this.stateChanges.next();\n }\n\n onBlur() {\n this.focused = false;\n this.stateChanges.next();\n }\n\n translate = inject(TranslateService);\n cd = inject(ChangeDetectorRef);\n\n constructor() {\n super();\n setTimeout(() => {\n this.focused = false;\n }, 3000);\n }\n\n // Function to call when the rating changes.\n onChange = (_values: any[]) => {\n //\n };\n\n // Function to call when the input is touched (when a star is clicked).\n onTouched = () => {\n //\n };\n\n // Allows Angular to update the model (rating).\n // Update the model and changes needed for the view here.\n writeValue(values: any[] | any | undefined | null): void {\n if (this.multiple) {\n this.counter = 0;\n if (Array.isArray(values)) this.counter = values.length;\n //else if (Array.isArray(this._values)) this.counter = this._values.length;\n }\n this._values = values;\n this.onChange(this._values);\n }\n\n // Allows Angular to register a function to call when the model (rating) changes.\n // Save the function as a property to call later here.\n registerOnChange(fn: (value: any[]) => void): void {\n this.onChange = fn;\n }\n\n // Allows Angular to register a function to call when the input has been touched.\n // Save the function as a property to call later here.\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n isAllSelected() {\n return this.counter === this.matOptions.length;\n }\n\n selectAll() {\n this._values = this.matOptions.map(option => {\n return option.value;\n });\n this.formControl.setValue(this._values);\n }\n\n isNoneSelected() {\n return this.counter === 0;\n }\n\n deselectAll(_$event: MouseEvent) {\n this._values = [];\n this.formControl.setValue(this._values);\n }\n\n onContainerClick(_event: MouseEvent): void {\n //\n }\n\n setDescribedByIds(_ids: string[]): void {\n //\n }\n\n ngOnDestroy(): void {\n this.onDestroy$.next('');\n this.onDestroy$.complete();\n }\n\n optionSize = 0;\n\n ngOnInit(): void {\n this.matOptions$ = this.searchFilter.valueChanges.pipe(\n debounceTime(200),\n startWith(''),\n map((value: string) => {\n this.optionSize = this.matOptions.length;\n if (this._values !== null) {\n this.counter = this._values.length;\n }\n if (value === '') {\n return this.matOptions.filter(_o => {\n return true;\n });\n }\n return this.matOptions.filter(option => {\n return option?._text?.nativeElement.innerHTML\n .toLowerCase()\n .includes(value.toLowerCase());\n });\n }),\n );\n this.formControl.valueChanges\n .pipe(takeUntil(this.onDestroy$))\n .subscribe(values => {\n this._values = values;\n this.counter = this._values.length;\n });\n }\n\n ngAfterContentChecked(): void {\n if (this.matOptions.length !== this.optionSize) {\n this.optionSize = this.matOptions.length;\n this.counter = 0;\n this.searchFilter.updateValueAndValidity({ emitEvent: true });\n }\n }\n}\n","<mat-select\n [multiple]=\"multiple\"\n [formControl]=\"formControl\"\n [attr.data-cy]=\"dataCy\"\n [attr.aria-label]=\"label\"\n (focus)=\"onFocus()\"\n (blur)=\"onBlur()\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n>\n @if (multiple && selectionToggle) {\n <div class=\"selection-choice text-right\">\n <a\n tabindex=\"1\"\n [ngClass]=\"{ 'mat-disabled': isAllSelected() }\"\n (click)=\"selectAll()\"\n >{{ 'select.select.all' | translate }}</a\n ><span class=\"separator\">&nbsp;&nbsp;|&nbsp;&nbsp;</span>\n <a\n tabindex=\"2\"\n [ngClass]=\"{ 'mat-disabled': isNoneSelected() }\"\n (click)=\"deselectAll($event)\"\n >{{ 'select.deselect.all' | translate }}</a\n >\n </div>\n }\n <div class=\"option-list\">\n @if (showFilter) {\n <mat-option>\n <mat-select-search\n [formControl]=\"searchFilter\"\n ariaLabel=\"{{ 'select.search.filter' | translate }}\"\n noEntriesFoundLabel=\"{{ 'select.search.notFound' | translate }}\"\n placeholderLabel=\"{{ 'select.search.filter' | translate }}\"\n ></mat-select-search>\n </mat-option>\n }\n @for (matOption of matOptions$ | async; track matOption.value) {\n <ng-container>\n <mat-option\n [disabled]=\"matOption.disabled\"\n [value]=\"matOption.value\"\n [attr.data-cy]=\"matOption._getHostElement().dataset['cy']\"\n >\n {{ matOption._text?.nativeElement?.textContent }}\n </mat-option>\n </ng-container>\n }\n </div>\n</mat-select>\n@if (multiple && counter > 0) {\n <div class=\"mat-select-counter float-right position-absolute text-center\">\n <span class=\"text\">{{ counter }}</span\n ><mat-icon (click)=\"deselectAll($event)\">close</mat-icon>\n </div>\n}\n","import { NgModule } from '@angular/core';\nimport { OnemrvaMatMultiSelectComponent } from './onemrva-mat-multi-select.component';\n\n@NgModule({\n declarations: [],\n imports: [OnemrvaMatMultiSelectComponent],\n exports: [],\n})\nexport class OnemrvaMatMultiSelectModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}