@onemrvapublic/design-system 20.6.3-develop.3 → 20.6.3-develop.4

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.mjs","sources":["../../../../projects/onemrva/design-system/layout/src/services/left-sidenav.service.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-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/striphtml.pipe.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/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-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/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/flag-icon/src/flag-icon.component.ts","../../../../projects/onemrva/design-system/flag-icon/src/flag-icon.component.html","../../../../projects/onemrva/design-system/mat-avatar/src/onemrva-mat-avatar.component.ts","../../../../projects/onemrva/design-system/mat-avatar/src/onemrva-mat-avatar.component.html","../../../../projects/onemrva/design-system/mat-avatar/src/onemrva-mat-avatar.module.ts","../../../../projects/onemrva/design-system/mat-breadcrumb/src/onemrva-mat-breadcrumb.service.ts","../../../../projects/onemrva/design-system/mat-breadcrumb/src/onemrva-mat-breadcrumb.component.ts","../../../../projects/onemrva/design-system/mat-breadcrumb/src/onemrva-mat-breadcrumb.component.html","../../../../projects/onemrva/design-system/mat-breadcrumb/src/onemrva-mat-breadcrumb.module.ts","../../../../projects/onemrva/design-system/mat-breadcrumb/index.ts","../../../../projects/onemrva/design-system/mat-carousel/src/mat-carousel-item/onemrva-mat-carousel-item.component.ts","../../../../projects/onemrva/design-system/mat-carousel/src/mat-carousel-item/onemrva-mat-carousel-item.component.html","../../../../projects/onemrva/design-system/mat-carousel/src/onemrva-mat-carousel.component.ts","../../../../projects/onemrva/design-system/mat-carousel/src/onemrva-mat-carousel.component.html","../../../../projects/onemrva/design-system/mat-choice-chip/src/onemrva-mat-choice-chip.component.ts","../../../../projects/onemrva/design-system/mat-choice-chip/src/onemrva-mat-choice-chip.component.html","../../../../projects/onemrva/design-system/mat-choice-chip/index.ts","../../../../projects/onemrva/design-system/mat-copy-to-clipboard/src/components/copy-to-clipboard.component.ts","../../../../projects/onemrva/design-system/mat-copy-to-clipboard/src/components/copy-to-clipboard.component.html","../../../../projects/onemrva/design-system/mat-country-item/src/onemrva-mat-country-item.component.ts","../../../../projects/onemrva/design-system/mat-country-item/src/onemrva-mat-country-item.component.html","../../../../projects/onemrva/design-system/mat-country-item/index.ts","../../../../projects/onemrva/design-system/mat-datepicker-header/src/onemrva-mat-datepicker-header.component.ts","../../../../projects/onemrva/design-system/mat-datepicker-header/src/onemrva-mat-datepicker-header.component.html","../../../../projects/onemrva/design-system/mat-datepicker-header/index.ts","../../../../projects/onemrva/design-system/mat-empty-row/src/onemrva-mat-empty-row.component.ts","../../../../projects/onemrva/design-system/mat-empty-row/src/onemrva-mat-empty-row.component.html","../../../../projects/onemrva/design-system/mat-file-upload/src/models/progress-file.model.ts","../../../../projects/onemrva/design-system/mat-file-upload/src/components/onemrva-mat-file-panel/onemrva-file-panel.component.ts","../../../../projects/onemrva/design-system/mat-file-upload/src/components/onemrva-mat-file-panel/onemrva-file-panel.component.html","../../../../projects/onemrva/design-system/mat-file-upload/src/onemrva-mat-file-upload.service.ts","../../../../projects/onemrva/design-system/mat-file-upload/src/onemrva-mat-file-upload.store.ts","../../../../projects/onemrva/design-system/mat-file-upload/src/directives/dnd.directive.ts","../../../../projects/onemrva/design-system/mat-file-upload/src/components/onemrva-mat-file-upload/onemrva-mat-file-upload.component.ts","../../../../projects/onemrva/design-system/mat-file-upload/src/components/onemrva-mat-file-upload/onemrva-mat-file-upload.component.html","../../../../projects/onemrva/design-system/mat-file-upload/src/components/index.ts","../../../../projects/onemrva/design-system/mat-file-upload/src/onemrva-mat-file-upload.module.ts","../../../../projects/onemrva/design-system/mat-file-upload/index.ts","../../../../projects/onemrva/design-system/mat-input-address/src/format-osm.directive.ts","../../../../projects/onemrva/design-system/mat-input-address/src/onemrva-mat-input-address.component.ts","../../../../projects/onemrva/design-system/mat-input-address/src/onemrva-mat-input-address.component.html","../../../../projects/onemrva/design-system/mat-input-address/index.ts","../../../../projects/onemrva/design-system/mat-address/src/onemrva-address.ts","../../../../projects/onemrva/design-system/mat-address/src/onemrva-address.html","../../../../projects/onemrva/design-system/mat-address/index.ts","../../../../projects/onemrva/design-system/mat-input-birthplace/src/onemrva-mat-input-birthplace.component.ts","../../../../projects/onemrva/design-system/mat-input-birthplace/src/onemrva-mat-input-birthplace.component.html","../../../../projects/onemrva/design-system/mat-input-birthplace/index.ts","../../../../projects/onemrva/design-system/mat-input-country/src/onemrva-mat-input-country.component.ts","../../../../projects/onemrva/design-system/mat-input-country/src/onemrva-mat-input-country.component.html","../../../../projects/onemrva/design-system/mat-input-country/index.ts","../../../../projects/onemrva/design-system/mat-input-enterprise-number/src/onemrva-mat-input-enterprise-number.component.ts","../../../../projects/onemrva/design-system/mat-input-enterprise-number/src/onemrva-mat-input-enterprise-number.component.html","../../../../projects/onemrva/design-system/mat-input-enterprise-number/index.ts","../../../../projects/onemrva/design-system/mat-input-iban/src/onemrva-mat-input-iban.component.ts","../../../../projects/onemrva/design-system/mat-input-iban/src/onemrva-mat-input-iban.component.html","../../../../projects/onemrva/design-system/mat-input-iban/index.ts","../../../../projects/onemrva/design-system/mat-input-phone/src/phone-number.directive.ts","../../../../projects/onemrva/design-system/mat-input-phone/src/onemrva-mat-input-phone.component.ts","../../../../projects/onemrva/design-system/mat-input-phone/src/onemrva-mat-input-phone.component.html","../../../../projects/onemrva/design-system/mat-input-phone/index.ts","../../../../projects/onemrva/design-system/mat-message-box/src/onemrva-mat-message-box.component.ts","../../../../projects/onemrva/design-system/mat-message-box/src/onemrva-mat-message-box.component.html","../../../../projects/onemrva/design-system/mat-message-box/src/onemrva-mat-message-box.module.ts","../../../../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-notification/src/onemrva-mat-notification.component.ts","../../../../projects/onemrva/design-system/mat-notification/src/onemrva-mat-notification.component.html","../../../../projects/onemrva/design-system/mat-navigation/src/mat-navigation-item/onemrva-mat-navigation-item.component.ts","../../../../projects/onemrva/design-system/mat-navigation/src/mat-navigation-item/onemrva-mat-navigation-item.component.html","../../../../projects/onemrva/design-system/mat-navigation/src/mat-navigation-tree/onemrva-mat-navigation-tree.component.ts","../../../../projects/onemrva/design-system/mat-navigation/src/mat-navigation-tree/onemrva-mat-navigation-tree.component.html","../../../../projects/onemrva/design-system/mat-navigation/src/onemrva-mat-navigation.component.ts","../../../../projects/onemrva/design-system/mat-navigation/src/onemrva-mat-navigation.component.html","../../../../projects/onemrva/design-system/mat-navigation/index.ts","../../../../projects/onemrva/design-system/mat-paginator/src/onemrva-mat-paginator.component.ts","../../../../projects/onemrva/design-system/mat-paginator/src/onemrva-mat-paginator.component.html","../../../../projects/onemrva/design-system/mat-paginator/src/onemrva-mat-paginator.module.ts","../../../../projects/onemrva/design-system/mat-paginator/index.ts","../../../../projects/onemrva/design-system/mat-panel/src/onemrva-mat-panel-title-action.component.ts","../../../../projects/onemrva/design-system/mat-panel/src/onemrva-mat-panel-title-action.html","../../../../projects/onemrva/design-system/mat-panel/src/onemrva-mat-panel-title.component.ts","../../../../projects/onemrva/design-system/mat-panel/src/onemrva-mat-panel-title.html","../../../../projects/onemrva/design-system/mat-panel/src/onemrva-mat-panel-content.component.ts","../../../../projects/onemrva/design-system/mat-panel/src/onemrva-mat-panel-content.html","../../../../projects/onemrva/design-system/mat-panel/src/onemrva-mat-panel-icon.component.ts","../../../../projects/onemrva/design-system/mat-panel/src/onemrva-mat-panel-icon.html","../../../../projects/onemrva/design-system/mat-panel/src/onemrva-mat-panel.component.ts","../../../../projects/onemrva/design-system/mat-panel/src/onemrva-mat-panel.component.html","../../../../projects/onemrva/design-system/mat-panel/src/onemrva-mat-panel.module.ts","../../../../projects/onemrva/design-system/mat-panel/src/mat-expansion-panel-header-arrow-divider.ts","../../../../projects/onemrva/design-system/mat-panel/src/mat-expansion-panel-header-arrow-divider.html","../../../../projects/onemrva/design-system/mat-pop-over/src/onemrva-mat-pop-over-trigger.component.ts","../../../../projects/onemrva/design-system/mat-pop-over/src/onemrva-mat-pop-over-content.component.ts","../../../../projects/onemrva/design-system/mat-pop-over/src/onemrva-mat-pop-over.component.ts","../../../../projects/onemrva/design-system/mat-pop-over/src/onemrva-mat-pop-over.component.html","../../../../projects/onemrva/design-system/mat-pop-over/src/onemrva-mat-pop-over.module.ts","../../../../projects/onemrva/design-system/mat-progress-bar/src/onemrva-mat-progress-bar.component.ts","../../../../projects/onemrva/design-system/mat-progress-bar/src/onemrva-mat-progress-bar.component.html","../../../../projects/onemrva/design-system/mat-select-search/src/mat-select-search-clear.directive.ts","../../../../projects/onemrva/design-system/mat-select-search/src/default-options.ts","../../../../projects/onemrva/design-system/mat-select-search/src/mat-select-no-entries-found.directive.ts","../../../../projects/onemrva/design-system/mat-select-search/src/mat-select-search.component.ts","../../../../projects/onemrva/design-system/mat-select-search/src/mat-select-search.component.html","../../../../projects/onemrva/design-system/mat-select-search/src/mat-select-search.module.ts","../../../../projects/onemrva/design-system/mat-selectable-box/src/onemrva-mat-selectable-box.component.ts","../../../../projects/onemrva/design-system/mat-selectable-box/src/onemrva-mat-selectable-box.component.html","../../../../projects/onemrva/design-system/mat-selectable-box/src/onemrva-mat-selectable-box.module.ts","../../../../projects/onemrva/design-system/mat-selectable-box/index.ts","../../../../projects/onemrva/design-system/mat-side-menu/src/onemrva-mat-side-menu.component.ts","../../../../projects/onemrva/design-system/mat-side-menu/src/onemrva-mat-side-menu.component.html","../../../../projects/onemrva/design-system/mat-side-menu/src/onemrva-mat-side-menu.module.ts","../../../../projects/onemrva/design-system/mat-side-menu/index.ts","../../../../projects/onemrva/design-system/mat-skeleton/src/onemrva-mat-skeleton-enums.ts","../../../../projects/onemrva/design-system/mat-skeleton/src/onemrva-mat-skeleton.component.ts","../../../../projects/onemrva/design-system/mat-skeleton/src/onemrva-mat-skeleton.component.html","../../../../projects/onemrva/design-system/mat-skeleton/src/onemrva-mat-skeleton.module.ts","../../../../projects/onemrva/design-system/mat-spinner/src/onemrva-mat-spinner.component.ts","../../../../projects/onemrva/design-system/mat-spinner/src/onemrva-mat-spinner.component.html","../../../../projects/onemrva/design-system/mat-spinner/src/onemrva-mat-loading.directive.ts","../../../../projects/onemrva/design-system/mat-spinner/src/onemrva-mat-spinner.module.ts","../../../../projects/onemrva/design-system/mat-spinner/index.ts","../../../../projects/onemrva/design-system/mat-stepper/src/onemrva-stepper-animations.ts","../../../../projects/onemrva/design-system/mat-stepper/src/onemrva-mat-stepper.component.ts","../../../../projects/onemrva/design-system/mat-stepper/src/onemrva-mat-stepper.html","../../../../projects/onemrva/design-system/mat-stepper/src/onemrva-mat-stepper.module.ts","../../../../projects/onemrva/design-system/mat-stepper/index.ts","../../../../projects/onemrva/design-system/mat-sticker/src/onemrva-mat-sticker.component.ts","../../../../projects/onemrva/design-system/mat-sticker/src/onemrva-mat-sticker.module.ts","../../../../projects/onemrva/design-system/mat-sticker/index.ts","../../../../projects/onemrva/design-system/mat-table-of-content/src/onemrva-mat-toc-anchor.model.ts","../../../../projects/onemrva/design-system/mat-table-of-content/src/onemrva-mat-table-of-content.service.ts","../../../../projects/onemrva/design-system/mat-table-of-content/src/onemrva-mat-table-of-content.component.ts","../../../../projects/onemrva/design-system/mat-table-of-content/src/onemrva-mat-table-of-content.component.html","../../../../projects/onemrva/design-system/mat-table-of-content/src/onemrva-mat-table-of-content.directive.ts","../../../../projects/onemrva/design-system/mat-table-of-content/index.ts","../../../../projects/onemrva/design-system/mat-task-list/src/onemrva-mat-task-title.component.ts","../../../../projects/onemrva/design-system/mat-task-list/src/onemrva-mat-task-title.html","../../../../projects/onemrva/design-system/mat-task-list/src/onemrva-mat-task-content.component.ts","../../../../projects/onemrva/design-system/mat-task-list/src/onemrva-mat-task-content.html","../../../../projects/onemrva/design-system/mat-task-list/src/onemrva-mat-task.component.ts","../../../../projects/onemrva/design-system/mat-task-list/src/onemrva-mat-task.component.html","../../../../projects/onemrva/design-system/mat-task-list/src/onemrva-mat-task-list.component.ts","../../../../projects/onemrva/design-system/mat-task-list/src/onemrva-mat-task-list.component.html","../../../../projects/onemrva/design-system/mat-task-list/src/onemrva-mat-task-list.module.ts","../../../../projects/onemrva/design-system/mat-timepicker/src/util.ts","../../../../projects/onemrva/design-system/mat-timepicker/src/clock/clock.component.ts","../../../../projects/onemrva/design-system/mat-timepicker/src/clock/clock.component.html","../../../../projects/onemrva/design-system/mat-timepicker/src/timepicker-dialog/timepicker-dialog.component.ts","../../../../projects/onemrva/design-system/mat-timepicker/src/timepicker-dialog/timepicker-dialog.component.html","../../../../projects/onemrva/design-system/mat-timepicker/src/onemrva-mat-timepicker.component.ts","../../../../projects/onemrva/design-system/mat-timepicker/src/onemrva-mat-timepicker.component.html","../../../../projects/onemrva/design-system/mat-timepicker/src/timepicker-toggle/timepicker-toggle.component.ts","../../../../projects/onemrva/design-system/mat-timepicker/src/timepicker-toggle/timepicker-toggle.component.html","../../../../projects/onemrva/design-system/mat-timepicker/src/timepicker.directive.ts","../../../../projects/onemrva/design-system/mat-timepicker/src/onemrva-mat-timepicker.module.ts","../../../../projects/onemrva/design-system/mat-toast/src/onemrva-mat-toast.component.ts","../../../../projects/onemrva/design-system/mat-toast/src/onemrva-mat-toast.module.ts","../../../../projects/onemrva/design-system/mat-toast/index.ts","../../../../projects/onemrva/design-system/mat-tooltip/src/onemrva-mat-tooltip.component.ts","../../../../projects/onemrva/design-system/mat-tooltip/src/onemrva-mat-tooltip.directive.ts","../../../../projects/onemrva/design-system/mat-tooltip/src/onemrva-mat-tooltip.module.ts","../../../../projects/onemrva/design-system/page-not-found/src/page-not-found-action.component.ts","../../../../projects/onemrva/design-system/page-not-found/src/page-not-found-extra.component.ts","../../../../projects/onemrva/design-system/page-not-found/src/page-not-found-invader.component.ts","../../../../projects/onemrva/design-system/page-not-found/src/page-not-found.component.ts","../../../../projects/onemrva/design-system/page-not-found/src/page-not-found.component.html","../../../../projects/onemrva/design-system/page-not-found/src/page-not-found.module.ts","../../../../projects/onemrva/design-system/shared/src/lib/components/clipboard-icon/clipboard-icon.component.ts","../../../../projects/onemrva/design-system/shared/src/lib/components/clipboard-icon/clipboard-icon.component.html","../../../../projects/onemrva/design-system/shared/src/lib/constants/CDNUrlModeOptions.ts","../../../../projects/onemrva/design-system/shared/src/lib/constants/constants.ts","../../../../projects/onemrva/design-system/shared/src/lib/constants/date.format.ts","../../../../projects/onemrva/design-system/shared/src/lib/constants/cdn.ts","../../../../projects/onemrva/design-system/shared/src/lib/tokens/inject.token.ts","../../../../projects/onemrva/design-system/shared/src/lib/containers/WebComponentOverlayContainer.ts","../../../../projects/onemrva/design-system/shared/src/lib/decorators/HttpCacheDecorator.ts","../../../../projects/onemrva/design-system/shared/src/lib/directives/digit-only.directive.ts","../../../../projects/onemrva/design-system/shared/src/lib/directives/color.directive.ts","../../../../projects/onemrva/design-system/shared/src/lib/directives/mat-row-clickable.directive.ts","../../../../projects/onemrva/design-system/shared/src/lib/directives/if-width-is.directive.ts","../../../../projects/onemrva/design-system/shared/src/lib/directives/mask.directive.ts","../../../../projects/onemrva/design-system/shared/src/lib/directives/clipboard.directive.ts","../../../../projects/onemrva/design-system/shared/src/lib/directives/iconRight.directive.ts","../../../../projects/onemrva/design-system/shared/src/lib/directives/date-format.directive.ts","../../../../projects/onemrva/design-system/shared/src/lib/directives/readonly-directive.ts","../../../../projects/onemrva/design-system/shared/src/lib/directives/size.directive.ts","../../../../projects/onemrva/design-system/shared/src/lib/directives/index.ts","../../../../projects/onemrva/design-system/shared/src/lib/helpers/translation-helper.ts","../../../../projects/onemrva/design-system/shared/src/lib/loaders/onemrva-translate-cdn-loader.ts","../../../../projects/onemrva/design-system/shared/src/lib/loaders/onemrva-translate-http-loader.ts","../../../../projects/onemrva/design-system/shared/src/lib/pipes/onemrva-bce.pipe.ts","../../../../projects/onemrva/design-system/shared/src/lib/pipes/onemrva-niss.pipe.ts","../../../../projects/onemrva/design-system/shared/src/lib/services/country-lookup.service.ts","../../../../projects/onemrva/design-system/shared/src/lib/services/cache.service.ts","../../../../projects/onemrva/design-system/shared/src/lib/services/cdn.service.ts","../../../../projects/onemrva/design-system/shared/src/lib/services/country-cdn.service.ts","../../../../projects/onemrva/design-system/shared/src/lib/services/mime-cdn.service.ts","../../../../projects/onemrva/design-system/shared/src/lib/services/osm.service.ts","../../../../projects/onemrva/design-system/shared/src/lib/services/onemrva-error-handler.service.ts","../../../../projects/onemrva/design-system/shared/src/lib/services/onemrva-missing-translation.service.ts","../../../../projects/onemrva/design-system/shared/src/lib/validators/onemrva-validators.ts","../../../../projects/onemrva/design-system/shared/src/lib/validators/bank-account.validator.utils.ts","../../../../projects/onemrva/design-system/shared/src/lib/shared.module.ts","../../../../projects/onemrva/design-system/shared/src/lib/adapters/native.date.adapter.ts","../../../../projects/onemrva/design-system/shared/src/lib/adapters/luxon.utils.ts","../../../../projects/onemrva/design-system/shared/src/lib/adapters/luxon.date.adapter.ts","../../../../projects/onemrva/design-system/shared/src/lib/providers/onemrva.date.native.year.month.provider.ts","../../../../projects/onemrva/design-system/shared/src/lib/providers/onemrva.date.native.provider.ts","../../../../projects/onemrva/design-system/shared/src/lib/providers/onemrva.date.luxon.provider.ts","../../../../projects/onemrva/design-system/shared/src/lib/providers/onemrva.date.luxon.year.month.provider.ts","../../../../projects/onemrva/design-system/shared/src/lib/providers/onemrva.theme.provider.ts","../../../../projects/onemrva/design-system/shared/index.ts","../../../../projects/onemrva/design-system/onemrvapublic-design-system.ts"],"sourcesContent":["import { Injectable, WritableSignal, signal } from '@angular/core';\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\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 this.items(); // ??\n }\n\n reset(): void {\n this.items.set(this.originalItems);\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';\nimport { MatIcon } from '@angular/material/icon';\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, MatIcon],\n standalone: true,\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\n<span class=\"left-content-toggle d-none-medium d-none-large d-none-xlarge\"\n ><mat-icon>arrow_right</mat-icon></span\n>\n","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","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","// 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 { 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';\nimport { startWith, Subject, takeUntil } from 'rxjs';\nimport {\n BreakpointObserver,\n Breakpoints,\n BreakpointState,\n} from '@angular/cdk/layout';\nimport { DOCUMENT, NgClass, NgStyle, NgTemplateOutlet } from '@angular/common';\nimport {\n MatDrawer,\n MatDrawerContainer,\n MatSidenavModule,\n} from '@angular/material/sidenav';\nimport {\n ONEMRVA_THEME_CLASS,\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\nimport { LayoutLeftSidenavComponent } from '../layout-left-sidenav/layout-left-sidenav.component';\nimport { LayoutRouteComponent } from '../layout-route/layout-route.component';\nimport { TranslatePipe, TranslateService } from '@ngx-translate/core';\nimport { LayoutContentComponent } from '../layout-content/layout-content.component';\nimport { LayoutTitleComponent } from '../layout-title/layout-title.component';\nimport { Environment } from '../../enums';\nimport { LayoutFooterComponent } from '../layout-footer/layout-footer.component';\nimport { OnemRvaProfile, OnemRvaLanguage } from '../../models';\nimport { LayoutLoginMenuComponent } from '../layout-login-menu/layout-login-menu.component';\nimport { DrawerHostDirective } from '../../directives';\nimport {\n OnemrvaDrawerService,\n OnemrvaLeftSidenavService,\n} from '../../services';\nimport { LayoutSidenavComponent } from '../layout-sidenav/layout-sidenav.component';\nimport { LayoutAfterNavComponent } from '../layout-after-nav/layout-after-nav.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 onemrvaClass = inject(ONEMRVA_THEME_CLASS);\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('.' + this.onemrvaClass);\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=\"container-with-nav\">\n <div class=\"left-content\">\n <onemrva-layout-left-sidenav></onemrva-layout-left-sidenav>\n </div>\n <div class=\"right-content\">\n <div class=\"content-container\">\n <ng-container *ngTemplateOutlet=\"tpl\"></ng-container>\n </div>\n </div>\n </div>\n } @else {\n <div class=\"content-container\">\n <ng-container *ngTemplateOutlet=\"tpl\"></ng-container>\n </div>\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 { 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","import { Component, inject, Input } from '@angular/core';\nimport { NgOptimizedImage } from '@angular/common';\nimport { OnemRvaCDNService } from '@onemrvapublic/design-system/shared';\n\n@Component({\n selector: 'flag-icon',\n standalone: true,\n imports: [NgOptimizedImage],\n templateUrl: './flag-icon.component.html',\n styleUrl: './flag-icon.component.scss',\n})\nexport class FlagIconComponent {\n @Input() countryCode?: string | null | undefined = 'xx';\n\n @Input() mode: 'square' | 'rectangle' = 'rectangle';\n\n @Input() width = 26;\n height: number = this.width;\n\n private readonly cdnUrl: string;\n private cdn = inject(OnemRvaCDNService);\n\n constructor() {\n this.cdnUrl = this.cdn.getUrl();\n if (this.mode === 'rectangle') {\n this.height = this.width / 1.33;\n }\n }\n\n get normalizedCountryCode() {\n return (this.countryCode?.trim() || 'xx').toLowerCase();\n }\n\n get modeValue() {\n if (this.mode === 'rectangle') {\n return '4x3';\n }\n return '1x1';\n }\n\n get url() {\n return `${this.cdnUrl}/img/flags/${this.modeValue}/${this.normalizedCountryCode}.svg`;\n }\n}\n","<span\n [class]=\"{\n fi: true,\n fis: mode === 'square',\n }\"\n>\n <img\n [alt]=\"normalizedCountryCode\"\n loading=\"lazy\"\n [ngSrc]=\"url\"\n [width]=\"width\"\n [height]=\"height\"\n />\n</span>\n","import {\n Component,\n ElementRef,\n HostBinding,\n inject,\n Input,\n OnInit,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport { mkenum } from '@onemrvapublic/design-system/utils';\nimport { CommonModule } from '@angular/common';\nimport { MatIconModule } from '@angular/material/icon';\n\nlet NEXT_ID = 0;\n\nexport const MatAvatarType = mkenum({\n INITIALS: 'initials',\n TEXT: 'text',\n IMAGE: 'image',\n ICON: 'icon',\n CUSTOM: 'custom',\n});\nexport type MatAvatarType = (typeof MatAvatarType)[keyof typeof MatAvatarType];\n\n/**\n * Avatar provides a way to display an image, icon or initials to the user.\n *\n * @MatModule OnemrvaMatAvatarModule\n *\n * @MatTheme onemrva-mat-avatar-theme, onemrva-mat-icon-theme\n *\n * @MatKeywords avatar, profile, picture, initials\n *\n * @MatGroup Layouts\n *\n * @remarks\n *\n * The Ignite UI Avatar provides an easy way to add an avatar icon to your application. This icon can be an\n * image, someone's initials or a material icon from the Google Material icon set.\n *\n * @example\n * ```html\n * <onemrva-mat-avatar initials=\"MS\" [roundShape]=\"true\" size=\"large\">\n * </onemrva-mat-avatar>\n * ```\n */\n@Component({\n selector: 'onemrva-mat-avatar',\n templateUrl: 'onemrva-mat-avatar.component.html',\n styleUrl: 'onemrva-mat-avatar.component.scss',\n standalone: true,\n imports: [CommonModule, MatIconModule],\n})\nexport class OnemrvaMatAvatarComponent implements OnInit {\n /**\n * Returns the `aria-label` attribute of the avatar.\n *\n * @example\n * ```typescript\n * let ariaLabel = this.avatar.ariaLabel;\n * ```\n *\n */\n @HostBinding('attr.aria-label')\n public ariaLabel = 'avatar';\n\n /**\n * Returns the `role` attribute of the avatar.\n *\n * @example\n * ```typescript\n * let avatarRole = this.avatar.role;\n * ```\n */\n @HostBinding('attr.role')\n public role = 'img';\n\n /**\n * Host `class.onemrva-mat-avatar` binding.\n *\n * @hidden\n * @internal\n */\n @HostBinding('class.onemrva-mat-avatar')\n public cssClass = 'onemrva-mat-avatar';\n\n /**\n * Returns the type of the avatar.\n * The avatar can be:\n * - `\"initials type avatar\"`\n * - `\"icon type avatar\"`\n * - `\"image type avatar\"`.\n * - `\"custom type avatar\"`.\n *\n * @example\n * ```typescript\n * let avatarDescription = this.avatar.roleDescription;\n * ```\n */\n @HostBinding('attr.aria-roledescription')\n public roleDescription = '';\n\n /**\n * Sets the `id` of the avatar. If not set, the first avatar component will have `id` = `\"onemrva-mat-avatar-0\"`.\n *\n * @example\n * ```html\n * <onemrva-mat-avatar id=\"my-first-avatar\"></onemrva-mat-avatar>\n * ```\n */\n @HostBinding('attr.id')\n @Input()\n public id = `onemrva-mat-avatar-${NEXT_ID++}`;\n\n /**\n * Sets a round shape to the avatar, if `[roundShape]` is set to `true`.\n * By default the shape of the avatar is a square.\n *\n * @example\n * ```html\n * <onemrva-mat-avatar [roundShape]=\"true\" ></onemrva-mat-avatar>\n * ```\n */\n\n @HostBinding('class.onemrva-mat-avatar--rounded')\n @Input()\n public roundShape = true;\n\n /**\n * Sets initials to the avatar.\n *\n * @example\n * ```html\n * <onemrva-mat-avatar initials=\"MN\"></onemrva-mat-avatar>\n * ```\n */\n @Input()\n public initials = '';\n\n /**\n * Sets text to the avatar.\n *\n * @example\n * ```html\n * <onemrva-mat-avatar text=\"100%\"></onemrva-mat-avatar>\n * ```\n */\n @Input()\n public text = '';\n\n /**\n * Sets an icon to the avatar. All icons from the material icon set are supported.\n *\n * @example\n * ```html\n * <onemrva-mat-avatar icon=\"phone\"></onemrva-mat-avatar>\n * ```\n */\n @Input()\n public icon = '';\n\n /**\n * Sets the image source of the avatar.\n *\n * @example\n * ```html\n * <onemrva-mat-avatar src=\"images/picture.jpg\"></onemrva-mat-avatar>\n * ```\n * @MatFriendlyName Image URL\n */\n @Input()\n public src = '';\n\n /** @hidden @internal */\n @ViewChild('defaultTemplate', { read: TemplateRef, static: true })\n protected defaultTemplate: TemplateRef<any> | null = null;\n\n /** @hidden @internal */\n @ViewChild('imageTemplate', { read: TemplateRef, static: true })\n protected imageTemplate: TemplateRef<any> | null = null;\n\n /** @hidden @internal */\n @ViewChild('initialsTemplate', { read: TemplateRef, static: true })\n protected initialsTemplate: TemplateRef<any> | null = null;\n\n /** @hidden @internal */\n @ViewChild('textTemplate', { read: TemplateRef, static: true })\n protected textTemplate: TemplateRef<any> | null = null;\n\n /** @hidden @internal */\n @ViewChild('iconTemplate', { read: TemplateRef, static: true })\n protected iconTemplate: TemplateRef<any> | null = null;\n\n /**\n * Returns the type of the avatar.\n *\n * @example\n * ```typescript\n * let avatarType = this.avatar.type;\n * ```\n */\n public get type(): MatAvatarType {\n if (this.text) {\n return MatAvatarType.TEXT;\n }\n\n if (this.src) {\n return MatAvatarType.IMAGE;\n }\n\n if (this.icon) {\n return MatAvatarType.ICON;\n }\n\n if (this.initials) {\n return MatAvatarType.INITIALS;\n }\n\n return MatAvatarType.CUSTOM;\n }\n\n /** @hidden @internal */\n @HostBinding('class.onemrva-mat-avatar--image')\n public get _isImageType(): boolean {\n return this.type === MatAvatarType.IMAGE;\n }\n /** @hidden @internal */\n @HostBinding('class.onemrva-mat-avatar--icon')\n public get _isIconType(): boolean {\n return this.type === MatAvatarType.ICON;\n }\n /** @hidden @internal */\n @HostBinding('class.onemrva-mat-avatar--initials')\n public get _isInitialsType(): boolean {\n return this.type === MatAvatarType.INITIALS;\n }\n /** @hidden @internal */\n @HostBinding('class.onemrva-mat-avatar--text')\n public get _isTextType(): boolean {\n return this.type === MatAvatarType.TEXT;\n }\n\n /**\n * Returns the template of the avatar.\n *\n * @hidden\n * @internal\n */\n public get template(): TemplateRef<any> | null {\n switch (this.type) {\n case MatAvatarType.IMAGE:\n return this.imageTemplate;\n case MatAvatarType.INITIALS:\n return this.initialsTemplate;\n case MatAvatarType.TEXT:\n return this.textTemplate;\n case MatAvatarType.ICON:\n return this.iconTemplate;\n default:\n return this.defaultTemplate;\n }\n }\n\n public elementRef = inject(ElementRef);\n\n /**\n * Returns the css url of the image.\n *\n * @hidden\n * @internal\n */\n public getSrcUrl() {\n return `url(${this.src})`;\n }\n\n /** @hidden @internal */\n public ngOnInit() {\n this.roleDescription = this.getRole();\n }\n\n /** @hidden @internal */\n private getRole(): string {\n switch (this.type) {\n case MatAvatarType.IMAGE:\n return 'image avatar';\n case MatAvatarType.ICON:\n return 'icon avatar';\n case MatAvatarType.INITIALS:\n return 'initials avatar';\n default:\n return 'custom avatar';\n }\n }\n}\n","<ng-template #defaultTemplate>\n <ng-content></ng-content>\n</ng-template>\n\n<ng-template #imageTemplate>\n <div\n #image\n class=\"onemrva-avatar__image\"\n [style.backgroundImage]=\"getSrcUrl()\"\n ></div>\n</ng-template>\n\n<ng-template #initialsTemplate>\n <span>{{ initials | slice: 0 : 2 }}</span>\n</ng-template>\n\n<ng-template #textTemplate>\n <span>{{ text }}</span>\n</ng-template>\n\n<ng-template #iconTemplate>\n <mat-icon>{{ icon }}</mat-icon>\n</ng-template>\n\n<ng-container *ngTemplateOutlet=\"template\"></ng-container>\n","import { NgModule } from '@angular/core';\nimport { OnemrvaMatAvatarComponent } from './onemrva-mat-avatar.component';\n\n@NgModule({\n declarations: [],\n imports: [OnemrvaMatAvatarComponent],\n exports: [OnemrvaMatAvatarComponent],\n})\nexport class OnemrvaMatAvatarModule {}\n","import { Injectable, inject } from '@angular/core';\nimport { ActivatedRouteSnapshot, NavigationEnd, Router } from '@angular/router';\nimport { BehaviorSubject } from 'rxjs';\nimport { filter } from 'rxjs/operators';\nimport { OnemrvaBreadcrumb } from './onemrva-mat-breadcrumb.model';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class OnemrvaMatBreadcrumbService {\n private router = inject(Router);\n\n // Subject emitting the breadcrumb hierarchy\n private readonly _breadcrumbs$ = new BehaviorSubject<OnemrvaBreadcrumb[]>([]);\n\n // Observable exposing the breadcrumb hierarchy\n readonly breadcrumbs$ = this._breadcrumbs$.asObservable();\n\n constructor() {\n this.router.events\n .pipe(\n // Filter the NavigationEnd events as the breadcrumb is updated only when the route reaches its end\n filter(event => event instanceof NavigationEnd),\n )\n .subscribe(() => {\n // Construct the breadcrumb hierarchy\n const root = this.router.routerState.snapshot.root;\n const breadcrumbs: OnemrvaBreadcrumb[] = [];\n this.addBreadcrumb(root, [], breadcrumbs);\n\n // Emit the new hierarchy\n this._breadcrumbs$.next(breadcrumbs);\n });\n }\n\n private addBreadcrumb(\n route: ActivatedRouteSnapshot | null,\n parentUrl: string[],\n breadcrumbs: OnemrvaBreadcrumb[],\n ) {\n if (route) {\n // Construct the route URL\n const routeUrl = parentUrl.concat(route.url.map(url => url.path));\n\n // Add an element for the current route part\n if (route.data['navigationTitle']) {\n const url = '/' + routeUrl.join('/');\n const breadcrumb = {\n label: route.data['navigationTitle'],\n url,\n translate: route.data['translate'] ? route.data['translate'] : false,\n };\n\n if (\n breadcrumbs.length > 0 &&\n url === breadcrumbs[breadcrumbs.length - 1].url\n ) {\n breadcrumbs[breadcrumbs.length - 1] = breadcrumb;\n } else {\n breadcrumbs.push(breadcrumb);\n }\n }\n\n // Add another element for the next route part\n this.addBreadcrumb(route.firstChild, routeUrl, breadcrumbs);\n }\n }\n}\n","import { Component, effect, inject, input } from '@angular/core';\nimport { Observable, of } from 'rxjs';\nimport { OnemrvaBreadcrumb } from './onemrva-mat-breadcrumb.model';\nimport { OnemrvaMatBreadcrumbService } from './onemrva-mat-breadcrumb.service';\nimport { AsyncPipe, NgStyle } from '@angular/common';\nimport { RouterLink } from '@angular/router';\nimport { MatIcon } from '@angular/material/icon';\nimport { TranslatePipe } from '@ngx-translate/core';\n\n@Component({\n selector: 'onemrva-mat-breadcrumb',\n templateUrl: 'onemrva-mat-breadcrumb.component.html',\n styleUrls: ['onemrva-mat-breadcrumb.component.scss'],\n imports: [NgStyle, RouterLink, MatIcon, AsyncPipe, TranslatePipe],\n standalone: true,\n})\nexport class OnemrvaMatBreadcrumbComponent {\n public paths = input<OnemrvaBreadcrumb[]>([]);\n\n breadcrumbs$!: Observable<OnemrvaBreadcrumb[]>;\n\n breadcrumbService = inject(OnemrvaMatBreadcrumbService);\n\n constructor() {\n effect(() => {\n if (this.paths() && this.paths().length > 0) {\n this.breadcrumbs$ = of(this.paths());\n } else {\n this.breadcrumbs$ = this.breadcrumbService.breadcrumbs$;\n }\n });\n }\n // ngOnInit(): void {\n // if (this.fakePath) {\n // this.breadcrumbs$ = of(\n // this.fakePath.map(path => ({\n // label: path,\n // url: path,\n // translate: false,\n // })),\n // );\n // } else {\n // this.breadcrumbs$ = this.breadcrumbService.breadcrumbs$;\n // }\n // }\n}\n","@if (breadcrumbs$ | async; as bc) {\n <ng-container>\n @if (bc.length > 0) {\n <ul class=\"onemrva-mat-breadcrumb\">\n @for (breadcrumb of bc; track breadcrumb.label; let bridx = $index) {\n <li\n class=\"onemrva-mat-breadcrumb-link-container\"\n [ngStyle]=\"{\n display: bc.length <= 6 || bridx <= 2 ? 'list-item' : 'none',\n }\"\n >\n <div\n [routerLink]=\"breadcrumb.url\"\n class=\"onemrva-mat-breadcrumb-link\"\n >\n @if (breadcrumb.translate) {\n {{ breadcrumb.label | translate }}\n } @else {\n {{ breadcrumb.label }}\n }\n </div>\n\n @if (bridx < bc.length - 1) {\n <mat-icon class=\"chevron-right\" style=\"width: 10px\"\n >chevron_right</mat-icon\n >\n }\n </li>\n @if (bc.length > 6) {\n <li\n class=\"onemrva-mat-breadcrumb-link-container onemrva-mat-breadcrumb-link-container-hidden\"\n >\n ...\n <mat-icon class=\"chevron-right\" style=\"width: 10px\"\n >chevron_right</mat-icon\n >\n </li>\n <li class=\"onemrva-mat-breadcrumb-link-container\">\n @if (bc[bc.length - 1].url) {\n <div\n [routerLink]=\"bc[bc.length - 1].url\"\n class=\"onemrva-mat-breadcrumb-link\"\n >\n {{ bc[bc.length - 1].label }}\n </div>\n } @else {\n <div class=\"onemrva-mat-breadcrumb-link\">\n {{ bc[bc.length - 1].label }}\n </div>\n }\n </li>\n }\n }\n </ul>\n }\n </ng-container>\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { RouterModule } from '@angular/router';\nimport { OnemrvaMatBreadcrumbComponent } from './onemrva-mat-breadcrumb.component';\n\n@NgModule({\n declarations: [],\n imports: [\n CommonModule,\n MatIconModule,\n RouterModule,\n OnemrvaMatBreadcrumbComponent,\n ],\n exports: [],\n})\nexport class OnemrvaMatBreadcrumbModule {}\n","/*\n * Public API Surface of mat-breadcrumb\n */\n\nexport * from './src/onemrva-mat-breadcrumb.component';\nexport * from './src/onemrva-mat-breadcrumb.module';\nexport * from './src/onemrva-mat-breadcrumb.model';\nexport * from './src/onemrva-mat-breadcrumb.service';\n","import {\n Component,\n ElementRef,\n HostBinding,\n TemplateRef,\n ViewChild,\n inject,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'onemrva-mat-carousel-item',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './onemrva-mat-carousel-item.component.html',\n styleUrl: './onemrva-mat-carousel-item.component.scss',\n})\nexport class OnemrvaMatCarouselItemComponent {\n @ViewChild(TemplateRef) tpl!: TemplateRef<any>;\n\n public nativeElement: HTMLElement;\n\n element: ElementRef = inject(ElementRef);\n constructor() {\n this.nativeElement = this.element.nativeElement;\n }\n\n @HostBinding('class.show')\n public show = false;\n}\n","<!--<ng-template>-->\n<!-- <ng-content></ng-content>-->\n<!--</ng-template>-->\n\n<ng-content></ng-content>\n","import {\n AfterViewInit,\n Component,\n ContentChildren,\n ElementRef,\n HostListener,\n inject,\n Input,\n OnDestroy,\n OnInit,\n QueryList,\n Renderer2,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { OnemrvaMatCarouselItemComponent } from './mat-carousel-item/onemrva-mat-carousel-item.component';\nimport {\n animate,\n AnimationBuilder,\n AnimationFactory,\n AnimationPlayer,\n style,\n transition,\n trigger,\n} from '@angular/animations';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { interval, Subject, takeUntil } from 'rxjs';\nimport { MatTooltip } from '@angular/material/tooltip';\n\n@Component({\n selector: 'onemrva-mat-carousel',\n standalone: true,\n imports: [\n CommonModule,\n MatButtonModule,\n MatIconModule,\n TranslateModule,\n MatTooltip,\n ],\n templateUrl: './onemrva-mat-carousel.component.html',\n styleUrl: './onemrva-mat-carousel.component.scss',\n encapsulation: ViewEncapsulation.Emulated,\n animations: [\n trigger('inOutAnimation', [\n transition(':enter', [\n style({ opacity: 0 }),\n animate('1000ms ease-out', style({ opacity: 1 })),\n ]),\n transition(':leave', [\n style({ opacity: 1 }),\n animate('1000ms ease-in', style({ opacity: 0 })),\n ]),\n ]),\n ],\n})\nexport class OnemrvaMatCarouselComponent\n implements AfterViewInit, OnInit, OnDestroy\n{\n @ContentChildren(OnemrvaMatCarouselItemComponent)\n items!: QueryList<OnemrvaMatCarouselItemComponent>;\n\n nativeElement: HTMLElement;\n\n @ViewChild('carouselWrapper')\n carousel!: ElementRef;\n\n private player?: AnimationPlayer;\n\n @Input() timing = '250ms ease-in';\n @Input() gap = 32;\n @Input() padding = 64;\n @Input() showControls = true;\n @Input() autoplay = 0;\n @Input() showDots = true;\n\n public currentSlide = 0;\n carouselWrapperStyle = {};\n\n width = 0;\n destroyed: Subject<any> = new Subject<any>();\n\n builder: AnimationBuilder = inject(AnimationBuilder);\n element: ElementRef = inject(ElementRef);\n renderer: Renderer2 = inject(Renderer2);\n\n constructor() {\n this.nativeElement = this.element.nativeElement;\n }\n\n ngOnInit() {\n if (this.autoplay > 0) {\n interval(this.autoplay)\n .pipe(takeUntil(this.destroyed))\n .subscribe(_i => {\n this.next();\n });\n }\n }\n\n ngOnDestroy() {\n this.destroyed.next(null);\n this.destroyed.complete();\n }\n\n @HostListener('window:resize', ['$event'])\n onResize(_event: any) {\n this.width = this.nativeElement.offsetWidth - 2 * this.padding;\n this.items.forEach(item => {\n this.renderer.setStyle(item.nativeElement, 'width', `${this.width}px`);\n this.renderer.setStyle(\n item.nativeElement,\n 'margin-right',\n `${this.gap}px`,\n );\n this.animate();\n });\n this.resize();\n }\n\n buildAnimation(offset: number) {\n return this.builder.build([\n animate(this.timing, style({ transform: `translateX(-${offset}px)` })),\n ]);\n }\n\n goto(index: number) {\n if (index >= 0 && index < this.items.length) {\n this.currentSlide = index;\n this.animate();\n this.opacify();\n }\n }\n\n next() {\n //if( this.currentSlide + 1 === this.items.length ) return;\n this.currentSlide = (this.currentSlide + 1) % this.items.length;\n this.currentSlide = isNaN(this.currentSlide) ? 1 : this.currentSlide;\n\n this.animate();\n this.opacify();\n }\n\n prev() {\n if (this.currentSlide === 0) return;\n this.currentSlide =\n (this.currentSlide - 1 + this.items.length) % this.items.length;\n this.animate();\n this.opacify();\n }\n\n animate() {\n const offset = this.currentSlide * (this.width + this.gap);\n const myAnimation: AnimationFactory = this.buildAnimation(offset);\n this.player = myAnimation.create(this.carousel.nativeElement);\n this.player.play();\n }\n\n ngAfterViewInit() {\n this.width = this.nativeElement.offsetWidth;\n setTimeout(() => {\n this.onResize(null);\n }, 10);\n this.opacify();\n }\n\n hasPrev() {\n return this.items.length > 0 && this.showControls && this.currentSlide > 0;\n }\n\n hasNext() {\n return (\n this.items.length > 0 &&\n this.showControls &&\n this.currentSlide < this.items.length - 1\n );\n }\n\n opacify() {\n this.items.forEach((item, index) => {\n if (index !== this.currentSlide) {\n item.nativeElement.className = 'semiTransparent';\n } else {\n item.nativeElement.className = '';\n }\n });\n }\n resize() {\n let biggest = 80;\n\n this.items.forEach(item => {\n item.nativeElement.style.height = 'auto';\n });\n this.items.forEach(item => {\n if (item.nativeElement.offsetHeight > biggest) {\n biggest = item.nativeElement.offsetHeight;\n }\n });\n this.items.forEach(item => {\n item.nativeElement.style.height = biggest + 'px';\n });\n }\n}\n","@if (hasPrev()) {\n <button\n [@inOutAnimation]\n (click)=\"prev()\"\n mat-icon-button\n color=\"primary\"\n [attr.aria-label]=\"'carousel.previous' | translate\"\n [matTooltip]=\"'carousel.previous' | translate\"\n class=\"controls previous\"\n >\n <mat-icon class=\"large\">chevron_left</mat-icon>\n </button>\n}\n@if (hasNext()) {\n <button\n [@inOutAnimation]\n (click)=\"next()\"\n mat-icon-button\n color=\"primary\"\n [attr.aria-label]=\"'carousel.next' | translate\"\n [matTooltip]=\"'carousel.next' | translate\"\n class=\"controls next\"\n >\n <mat-icon class=\"large\">chevron_right</mat-icon>\n </button>\n}\n<section\n class=\"carousel-wrapper\"\n [ngStyle]=\"carouselWrapperStyle\"\n #carouselWrapper\n>\n <ng-content></ng-content>\n</section>\n\n@if (showDots) {\n <div class=\"dots\">\n @for (item of items; track item; let dotidx = $index) {\n <span\n tabindex=\"1\"\n class=\"dot\"\n role=\"button\"\n [attr.aria-label]=\"\n ('carousel.goto' | translate) +\n ' ' +\n (dotidx + 1) +\n '/' +\n items.length\n \"\n [matTooltip]=\"\n ('carousel.goto' | translate) +\n ' ' +\n (dotidx + 1) +\n '/' +\n items.length\n \"\n [class.active]=\"dotidx === currentSlide\"\n (click)=\"goto(dotidx)\"\n ></span>\n }\n </div>\n}\n","import {\n Component,\n forwardRef,\n HostBinding,\n Input,\n ViewEncapsulation,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { MatCheckbox } from '@angular/material/checkbox';\n\n@Component({\n selector: 'onemrva-mat-choice-chip',\n templateUrl: 'onemrva-mat-choice-chip.component.html',\n styleUrls: ['onemrva-mat-choice-chip.component.scss'],\n standalone: true,\n imports: [MatCheckbox],\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => OnemrvaMatChoiceChipComponent),\n multi: true,\n },\n ],\n})\nexport class OnemrvaMatChoiceChipComponent implements ControlValueAccessor {\n /** The boolean value your parent form will read/write */\n @Input() value = false;\n\n /** Standard disabled support */\n @Input() disabled = false;\n\n @HostBinding('style.opacity')\n get opacity() {\n return this.disabled ? 0.4 : 1;\n }\n\n // CVA hooks\n private onChange: (val: boolean) => void = () => {\n // onchange\n };\n public onTouched: () => void = () => {\n // onchange\n };\n\n writeValue(val: boolean): void {\n this.value = !!val;\n }\n registerOnChange(fn: (val: boolean) => void): void {\n this.onChange = fn;\n }\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n // Called from template\n onInputChange(checked: boolean) {\n this.value = checked;\n this.onChange(this.value);\n }\n}\n","<mat-checkbox\n class=\"onemrva-choice-chip\"\n [checked]=\"value\"\n [disabled]=\"disabled\"\n color=\"primary\"\n (change)=\"onInputChange($event.checked)\"\n (blur)=\"onTouched()\"\n>\n <ng-content></ng-content>\n</mat-checkbox>\n","/*\n * Public API Surface of mat-sticker\n */\n\nexport * from './src/onemrva-mat-choice-chip.component';\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n Output,\n ViewChild,\n inject,\n} from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { Clipboard } from '@angular/cdk/clipboard';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { MatTooltip, MatTooltipModule } from '@angular/material/tooltip';\n\n@Component({\n selector: 'copy-to-clipboard',\n templateUrl: 'copy-to-clipboard.component.html',\n styleUrls: ['copy-to-clipboard.component.scss'],\n standalone: true,\n imports: [CommonModule, MatIconModule, TranslateModule, MatTooltipModule],\n})\nexport class OnemrvaCopyToClipboardComponent {\n private elt = inject(ElementRef);\n private translate = inject(TranslateService);\n private clipboard = inject(Clipboard);\n\n checked = false;\n\n @ViewChild('clipboardCopyContent') content!: ElementRef;\n @ViewChild('cccTooltip') matTooltip!: MatTooltip;\n\n @Input()\n tooltip = '';\n\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n @Output() onCopy = new EventEmitter<void>();\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n @Output() onClick = new EventEmitter<Event>();\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n @Output() onHover = new EventEmitter<Event>();\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n @Output() onLeave = new EventEmitter<Event>();\n\n @HostListener('click', ['$event.target']) clicked(e: Event) {\n this.onClick.emit(e);\n }\n\n @HostListener('mouseenter') onMouseEnter(e: Event) {\n this.onHover.emit(e);\n }\n\n @HostListener('mouseleave') onMouseLeave(e: Event) {\n this.onLeave.emit(e);\n }\n\n get getTooltipText() {\n return this.tooltip\n ? this.translate.instant(this.tooltip)\n : this.translate.instant('copied.to.clipboard');\n }\n\n copy($event: any) {\n $event.stopPropagation();\n\n this.matTooltip.show();\n\n this.clipboard.copy(this.content.nativeElement.innerHTML);\n\n this.onCopy.emit();\n this.checked = true;\n\n setTimeout(() => {\n this.checked = false;\n this.matTooltip.hide();\n }, 2000);\n }\n}\n","<span class=\"onemrva-copy-to-clipboard-container\">\n <span #clipboardCopyContent>\n <ng-content></ng-content>\n </span>\n @if (!checked) {\n <mat-icon class=\"small\" (click)=\"copy($event)\"> content_copy </mat-icon>\n }\n @if (checked) {\n <mat-icon class=\"small\" color=\"success\">check</mat-icon>\n }\n <span\n [matTooltip]=\"getTooltipText\"\n matTooltipPosition=\"above\"\n #cccTooltip=\"matTooltip\"\n ></span>\n</span>\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, ViewEncapsulation } from '@angular/core';\nimport { TranslateModule } from '@ngx-translate/core';\n\nimport { FlagIconComponent } from '@onemrvapublic/design-system/flag-icon';\n\n@Component({\n selector: 'mat-country-item',\n styleUrls: ['./onemrva-mat-country-item.component.scss'],\n templateUrl: './onemrva-mat-country-item.component.html',\n standalone: true,\n imports: [CommonModule, TranslateModule, FlagIconComponent],\n encapsulation: ViewEncapsulation.None,\n})\nexport class OnemrvaCountryItemComponent {\n @Input() countryCode: string | null = 'xx';\n @Input() countryName: string | null | undefined = '';\n}\n","<div class=\"onemrva-country-item\">\n <flag-icon [countryCode]=\"countryCode\" />\n <span class=\"description\">{{ countryName }}</span>\n</div>\n","/*\n * Public API Surface of mat-country-item\n */\n\nexport * from './src/onemrva-mat-country-item.component';\n","import { CommonModule } from '@angular/common';\nimport { Component, ChangeDetectionStrategy, inject } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport {\n DateAdapter,\n MAT_DATE_FORMATS,\n MatDateFormats,\n} from '@angular/material/core';\nimport { MatCalendar, MatDatepickerIntl } from '@angular/material/datepicker';\nimport { MatIconModule } from '@angular/material/icon';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { MatTooltip } from '@angular/material/tooltip';\nimport { DateTime } from 'luxon';\n\nconst YEARS_PER_PAGE = 24;\nlet calendarHeaderId = 1;\n\n@Component({\n selector: 'onemrva-mat-datepicker-header',\n standalone: true,\n imports: [\n CommonModule,\n MatButtonModule,\n MatIconModule,\n TranslateModule,\n MatTooltip,\n ],\n templateUrl: 'onemrva-mat-datepicker-header.component.html',\n styleUrl: 'onemrva-mat-datepicker-header.component.scss',\n providers: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class OnemrvaMatDatepickerHeaderComponent<D> {\n private _intl = inject(MatDatepickerIntl);\n calendar = inject<MatCalendar<D>>(MatCalendar);\n private _dateAdapter = inject<DateAdapter<D>>(DateAdapter, {\n optional: true,\n });\n private _dateFormats = inject<MatDateFormats>(MAT_DATE_FORMATS, {\n optional: true,\n });\n\n setToday() {\n if (this._dateAdapter?.constructor.name.includes('Luxon')) {\n (this.calendar as unknown as MatCalendar<DateTime>)._goToDateInView(\n DateTime.now(),\n 'month',\n );\n } else {\n (this.calendar as unknown as MatCalendar<Date>)._goToDateInView(\n new Date(),\n 'month',\n );\n }\n }\n\n /** The display text for the current calendar view. */\n get periodButtonText(): string {\n if (\n this.calendar.activeDate !== null &&\n this.calendar.currentView == 'month' &&\n this._dateAdapter &&\n this._dateFormats\n ) {\n return this._dateAdapter\n .format(\n this.calendar.activeDate,\n this._dateFormats.display.monthYearLabel,\n )\n .toLocaleUpperCase();\n }\n if (this.calendar.currentView == 'year' && this._dateAdapter) {\n return this._dateAdapter.getYearName(this.calendar.activeDate);\n }\n\n return this._intl.formatYearRange(...this._formatMinAndMaxYearLabels());\n }\n\n /** The aria description for the current calendar view. */\n get periodButtonDescription(): string {\n if (\n this.calendar.currentView == 'month' &&\n this._dateFormats &&\n this._dateAdapter\n ) {\n return this._dateAdapter\n .format(\n this.calendar.activeDate,\n this._dateFormats.display.monthYearLabel,\n )\n .toLocaleUpperCase();\n }\n if (this.calendar.currentView == 'year' && this._dateAdapter) {\n return this._dateAdapter.getYearName(this.calendar.activeDate);\n }\n\n // Format a label for the window of years displayed in the multi-year calendar view. Use\n // `formatYearRangeLabel` because it is TTS friendly.\n return this._intl.formatYearRangeLabel(\n ...this._formatMinAndMaxYearLabels(),\n );\n }\n\n /** The `aria-label` for changing the calendar view. */\n get periodButtonLabel(): string {\n return this.calendar.currentView == 'month'\n ? this._intl.switchToMultiYearViewLabel\n : this._intl.switchToMonthViewLabel;\n }\n\n /** The label for the previous button. */\n get prevButtonLabel(): string {\n return {\n month: this._intl.prevMonthLabel,\n year: this._intl.prevYearLabel,\n 'multi-year': this._intl.prevMultiYearLabel,\n }[this.calendar.currentView];\n }\n\n /** The label for the next button. */\n get nextButtonLabel(): string {\n return {\n month: this._intl.nextMonthLabel,\n year: this._intl.nextYearLabel,\n 'multi-year': this._intl.nextMultiYearLabel,\n }[this.calendar.currentView];\n }\n\n /** Handles user clicks on the period label. */\n currentPeriodClicked(): void {\n this.calendar.currentView =\n this.calendar.currentView == 'month' ? 'multi-year' : 'month';\n }\n\n /** Handles user clicks on the previous button. */\n previousClicked(): void {\n this.calendar.activeDate =\n this.calendar.currentView == 'month'\n ? this._dateAdapter!.addCalendarMonths(this.calendar.activeDate, -1)\n : this._dateAdapter!.addCalendarYears(\n this.calendar.activeDate,\n this.calendar.currentView == 'year' ? -1 : -YEARS_PER_PAGE,\n );\n }\n\n /** Handles user clicks on the next button. */\n nextClicked(): void {\n this.calendar.activeDate =\n this.calendar.currentView == 'month'\n ? this._dateAdapter!.addCalendarMonths(this.calendar.activeDate, 1)\n : this._dateAdapter!.addCalendarYears(\n this.calendar.activeDate,\n this.calendar.currentView == 'year' ? 1 : YEARS_PER_PAGE,\n );\n }\n\n /** Whether the previous period button is enabled. */\n previousEnabled(): boolean {\n if (!this.calendar.minDate) {\n return true;\n }\n return (\n !this.calendar.minDate ||\n !this._isSameView(this.calendar.activeDate, this.calendar.minDate)\n );\n }\n\n /** Whether the next period button is enabled. */\n nextEnabled(): boolean {\n return (\n !this.calendar.maxDate ||\n !this._isSameView(this.calendar.activeDate, this.calendar.maxDate)\n );\n }\n\n /** Whether the two dates represent the same view in the current view mode (month or year). */\n private _isSameView(date1: D, date2: D): boolean {\n if (this.calendar.currentView == 'month') {\n return (\n this._dateAdapter!.getYear(date1) ==\n this._dateAdapter!.getYear(date2) &&\n this._dateAdapter!.getMonth(date1) == this._dateAdapter!.getMonth(date2)\n );\n }\n if (this.calendar.currentView == 'year') {\n return (\n this._dateAdapter!.getYear(date1) == this._dateAdapter!.getYear(date2)\n );\n }\n // Otherwise we are in 'multi-year' view.\n return isSameMultiYearView(\n this._dateAdapter!,\n date1,\n date2,\n this.calendar.minDate,\n this.calendar.maxDate,\n );\n }\n\n /**\n * Format two individual labels for the minimum year and maximum year available in the multi-year\n * calendar view. Returns an array of two strings where the first string is the formatted label\n * for the minimum year, and the second string is the formatted label for the maximum year.\n */\n private _formatMinAndMaxYearLabels(): [\n minYearLabel: string,\n maxYearLabel: string,\n ] {\n // The offset from the active year to the \"slot\" for the starting year is the\n // *actual* first rendered year in the multi-year view, and the last year is\n // just yearsPerPage - 1 away.\n const activeYear = this._dateAdapter!.getYear(this.calendar.activeDate);\n const minYearOfPage =\n activeYear -\n getActiveOffset(\n this._dateAdapter!,\n this.calendar.activeDate,\n this.calendar.minDate,\n this.calendar.maxDate,\n );\n const maxYearOfPage = minYearOfPage + YEARS_PER_PAGE - 1;\n const minYearLabel = this._dateAdapter!.getYearName(\n this._dateAdapter!.createDate(minYearOfPage, 0, 1),\n );\n const maxYearLabel = this._dateAdapter!.getYearName(\n this._dateAdapter!.createDate(maxYearOfPage, 0, 1),\n );\n\n return [minYearLabel, maxYearLabel];\n }\n\n private _id = `mat-calendar-header-${calendarHeaderId++}`;\n\n _periodButtonLabelId = `${this._id}-period-label`;\n}\n\nfunction isSameMultiYearView<D>(\n dateAdapter: DateAdapter<D>,\n date1: D,\n date2: D,\n minDate: D | null,\n maxDate: D | null,\n): boolean {\n const year1 = dateAdapter.getYear(date1);\n const year2 = dateAdapter.getYear(date2);\n const startingYear = getStartingYear(dateAdapter, minDate, maxDate);\n return (\n Math.floor((year1 - startingYear) / YEARS_PER_PAGE) ===\n Math.floor((year2 - startingYear) / YEARS_PER_PAGE)\n );\n}\n\n/**\n * We pick a \"starting\" year such that either the maximum year would be at the end\n * or the minimum year would be at the beginning of a page.\n */\nfunction getStartingYear<D>(\n dateAdapter: DateAdapter<D>,\n minDate: D | null,\n maxDate: D | null,\n): number {\n let startingYear = 0;\n if (maxDate) {\n const maxYear = dateAdapter.getYear(maxDate);\n startingYear = maxYear - YEARS_PER_PAGE + 1;\n } else if (minDate) {\n startingYear = dateAdapter.getYear(minDate);\n }\n return startingYear;\n}\n\n/**\n * When the multi-year view is first opened, the active year will be in view.\n * So we compute how many years are between the active year and the *slot* where our\n * \"startingYear\" will render when paged into view.\n */\nfunction getActiveOffset<D>(\n dateAdapter: DateAdapter<D>,\n activeDate: D,\n minDate: D | null,\n maxDate: D | null,\n): number {\n const activeYear = dateAdapter.getYear(activeDate);\n return euclideanModulo(\n activeYear - getStartingYear(dateAdapter, minDate, maxDate),\n YEARS_PER_PAGE,\n );\n}\n\n/** Gets remainder that is non-negative, even if first number is negative */\nfunction euclideanModulo(a: number, b: number): number {\n return ((a % b) + b) % b;\n}\n","<div class=\"mat-calendar-header\">\n <div class=\"mat-calendar-controls\">\n <button\n mat-button\n type=\"button\"\n class=\"mat-calendar-period-button\"\n (click)=\"currentPeriodClicked()\"\n [attr.aria-label]=\"periodButtonLabel\"\n [attr.aria-describedby]=\"_periodButtonLabelId\"\n aria-live=\"polite\"\n >\n <span aria-hidden=\"true\">{{ periodButtonText }}</span>\n <svg\n class=\"mat-calendar-arrow\"\n [class.mat-calendar-invert]=\"calendar.currentView !== 'month'\"\n viewBox=\"0 0 10 5\"\n focusable=\"false\"\n aria-hidden=\"true\"\n >\n <polygon points=\"0,0 5,5 10,0\" />\n </svg>\n </button>\n\n <div class=\"mat-calendar-spacer\"></div>\n\n <ng-content></ng-content>\n\n <button\n mat-icon-button\n type=\"button\"\n [disabled]=\"!previousEnabled()\"\n (click)=\"previousClicked()\"\n [attr.aria-label]=\"prevButtonLabel\"\n [matTooltip]=\"'Previous Month' | translate\"\n >\n <mat-icon>keyboard_arrow_left</mat-icon>\n </button>\n\n <button\n mat-icon-button\n type=\"button\"\n (click)=\"setToday()\"\n [attr.aria-label]=\"'Today' | translate\"\n [matTooltip]=\"'Today' | translate\"\n >\n <mat-icon>today</mat-icon>\n </button>\n\n <button\n mat-icon-button\n type=\"button\"\n [disabled]=\"!nextEnabled()\"\n (click)=\"nextClicked()\"\n [attr.aria-label]=\"nextButtonLabel\"\n [matTooltip]=\"'Next Month' | translate\"\n >\n <mat-icon>keyboard_arrow_right</mat-icon>\n </button>\n </div>\n</div>\n","/*\n * Public API Surface of mat-file upload\n */\n\nexport * from './src/onemrva-mat-datepicker-header.component';\n","import {\n Component,\n EventEmitter,\n Input,\n Output,\n ViewEncapsulation,\n inject,\n} from '@angular/core';\nimport { OnemRvaCDNService } from '@onemrvapublic/design-system/shared';\nimport { TranslateService } from '@ngx-translate/core';\nimport { MatButton } from '@angular/material/button';\nimport { NgOptimizedImage } from '@angular/common';\n\n/**\n *\n */\n@Component({\n selector: 'onemrva-mat-empty-row',\n templateUrl: 'onemrva-mat-empty-row.component.html',\n styleUrls: ['onemrva-mat-empty-row.component.scss'],\n standalone: true,\n imports: [NgOptimizedImage, MatButton],\n encapsulation: ViewEncapsulation.None,\n})\nexport class OnemrvaMatEmptyRowComponent {\n private cdn = inject(OnemRvaCDNService);\n private translate = inject(TranslateService);\n\n noresultimg: string = this.cdn.getOri('wordless.svg');\n\n @Input()\n buttonText: string = this.translate.instant('Reset filters');\n\n @Input()\n text: string = this.translate.instant(\n 'Sorry, there is no results for this search.',\n );\n\n @Input()\n imageAlt: string = this.translate.instant('Ori is wordless');\n\n @Output()\n clear = new EventEmitter<any>();\n}\n","<span class=\"img\">\n <img [ngSrc]=\"noresultimg\" alt=\"{{ imageAlt }}\" fill priority />\n</span>\n<span class=\"text\">\n {{ text }}\n <ng-content></ng-content>\n</span>\n<button mat-stroked-button (click)=\"clear.emit()\">{{ buttonText }}</button>\n","import { OnemrvaMatColor } from '@onemrvapublic/design-system/utils';\n\nexport interface ProgressFile {\n file?: File;\n message: string;\n progress: number;\n color: OnemrvaMatColor; // color 1 - 1 with status\n url: string | null;\n id: string | null; // backend identifier\n enableProgressBar: boolean;\n data?: any;\n name: string;\n lastModified?: number;\n size: number;\n type: string;\n maxSize: number | null;\n}\n\nexport interface ReferencedProgressFile extends ProgressFile {\n ref: symbol; // ref is a frontend identifier\n}\n\n/**\n * format bytes\n * @param bytes (File size in bytes)\n * @param decimals (Decimals point)\n */\nexport function formatBytes(bytes: number, decimals = 2) {\n if (bytes === 0) {\n return '0 Bytes';\n }\n const k = 1024;\n const dm = decimals <= 0 ? 0 : decimals || 2;\n const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i];\n}\n\nexport function formattedSize(size: number | null, decimals = 2) {\n if (size === null) return '';\n return formatBytes(size, decimals);\n}\n\nexport function convertToProgressFile(\n id: string,\n name: string,\n message = '',\n progress = 100,\n color = OnemrvaMatColor.PRIMARY,\n url: string | null = null,\n enableProgressBar = false,\n data: string | null = null,\n size = 0,\n type = '',\n maxSize = null,\n): ProgressFile {\n return {\n id: id!,\n name: name!,\n message: message,\n progress: progress,\n color: color,\n url: url,\n enableProgressBar: enableProgressBar,\n data: data,\n size: size,\n type: type,\n maxSize: maxSize,\n };\n}\n\nexport function convertToReferencedProgressFile(\n id: string,\n name: string,\n message = '',\n progress = 100,\n color = OnemrvaMatColor.PRIMARY,\n url: string | null = null,\n enableProgressBar = false,\n data: string | null = null,\n size = 0,\n type = '',\n maxSize = null,\n): ReferencedProgressFile {\n return {\n id: id!,\n ref: Symbol(name),\n name: name!,\n message: message,\n progress: progress,\n color: color,\n url: url,\n enableProgressBar: enableProgressBar,\n data: data,\n size: size,\n type: type,\n maxSize: maxSize,\n };\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n Input,\n} from '@angular/core';\nimport { OnemrvaMatColor } from '@onemrvapublic/design-system/utils';\nimport { of } from 'rxjs';\nimport { ActionConfig } from '../../models/action-config.model';\nimport {\n formattedSize,\n ReferencedProgressFile,\n} from '../../models/progress-file.model';\nimport { MatIcon } from '@angular/material/icon';\nimport { AsyncPipe } from '@angular/common';\nimport { MatTooltip } from '@angular/material/tooltip';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { MatProgressBar } from '@angular/material/progress-bar';\n\nlet NEXT_ID = 0;\n\n@Component({\n selector: 'file-panel',\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrls: ['./onemrva-file-panel.component.scss'],\n templateUrl: './onemrva-file-panel.component.html',\n standalone: true,\n imports: [MatIcon, MatTooltip, TranslatePipe, AsyncPipe, MatProgressBar],\n})\nexport class OnemrvaFilePanelComponent {\n @HostBinding('attr.id')\n @Input()\n public id = `onemrva-file-panel-${NEXT_ID++}`;\n\n @HostBinding('attr.data-cy')\n @Input()\n dataCy: string = 'onemrva-file-panel-' + NEXT_ID;\n\n @Input()\n file!: ReferencedProgressFile;\n\n @Input()\n actions: ActionConfig[] = [];\n\n @Input()\n showProgress = true;\n\n @Input()\n displayDate = '';\n\n @Input()\n maxFileSize = 0;\n\n get progress$() {\n return of(this.file.progress);\n }\n\n get size() {\n return formattedSize(this.file.size);\n }\n\n @Input()\n get color(): OnemrvaMatColor {\n if (this.file.color !== undefined) {\n return this.file.color;\n }\n return OnemrvaMatColor.NONE;\n }\n\n /** @hidden @internal */\n @HostBinding('mat-accent')\n public get _colorAccent(): boolean {\n return this.color === OnemrvaMatColor.ACCENT;\n }\n\n /** @hidden @internal */\n @HostBinding('class.mat-error')\n public get _isError(): boolean {\n return this.color === OnemrvaMatColor.ERROR;\n }\n /** @hidden @internal */\n @HostBinding('class.mat-warn')\n public get _isWarn(): boolean {\n return this.color === OnemrvaMatColor.WARN;\n }\n /** @hidden @internal */\n @HostBinding('class.mat-success')\n public get _isSuccess(): boolean {\n return this.color === OnemrvaMatColor.SUCCESS;\n }\n /** @hidden @internal */\n @HostBinding('class.mat-primary')\n public get _isPrimary(): boolean {\n return this.color === OnemrvaMatColor.PRIMARY;\n }\n\n protected readonly formattedSize = formattedSize;\n ariaLabel: any;\n}\n","<div class=\"file-panel-title show-icon\" [attr.data-cy]=\"dataCy\">\n <div class=\"file-panel-title-left\">\n <span class=\"file-name\">\n {{ file.name }}\n </span>\n </div>\n <div class=\"file-panel-title-action float-right\">\n @if (actions.length > 0) {\n @for (action of actions; track action.dataCy) {\n @if (action.showAction(file)) {\n <mat-icon\n role=\"button\"\n color=\"primary\"\n [attr.data-cy]=\"action.dataCy\"\n matTooltip=\"{{ action.tooltipCode | translate }}\"\n [attr.aria-label]=\"action.ariaCode | translate\"\n class=\"clickable\"\n (click)=\"action.clickHandler(file)\"\n >{{ action.iconName }}</mat-icon\n >\n }\n }\n }\n </div>\n</div>\n<div class=\"file-panel-content\">\n @if (file.message === '') {\n <ng-container>\n <div class=\"fileInfos\">\n <span>{{ displayDate }}</span>\n\n @if (file.size > 0) {\n <span class=\"float-right\">{{ size }}</span>\n }\n </div>\n @if (showProgress && file.enableProgressBar) {\n <mat-progress-bar\n data-cy=\"file-upload-progress\"\n mode=\"determinate\"\n aria-label=\"progress\"\n [value]=\"progress$ | async\"\n ></mat-progress-bar>\n }\n </ng-container>\n }\n @if (file.message !== '') {\n <p class=\"message\">\n {{ file.message | translate: { limit: formattedSize(file.maxSize) } }}\n </p>\n }\n</div>\n","import {\n HttpEvent,\n HttpEventType,\n HttpProgressEvent,\n HttpResponse,\n} from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport {\n BehaviorSubject,\n catchError,\n interval,\n map,\n Observable,\n of,\n take,\n} from 'rxjs';\nimport { ProgressFile } from './models/progress-file.model';\n\nexport interface OnemrvaMatFileUploadInterface {\n listUploadedFiles: (inputs: any) => Observable<ProgressFile[]>;\n upload: (file: ProgressFile) => Observable<HttpEvent<any>>;\n deleteFile: (id: any) => Observable<any>;\n retry: (file: any) => Observable<any>;\n downloadFile?: (id: any) => Observable<any>;\n isSending: BehaviorSubject<boolean>;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class OnemrvaMatFileUploadService\n implements OnemrvaMatFileUploadInterface\n{\n public isSending = new BehaviorSubject(false);\n\n constructor() {\n alert(\n \"Don't forget to add a provider in your component with your own implementation of OnemrvaMatFileUploadInterface. Check out the demo to have an example of how to do it\",\n );\n }\n\n listUploadedFiles(_inputs: any): Observable<ProgressFile[]> {\n return of([]);\n }\n\n upload(_file: ProgressFile): Observable<HttpEvent<any>> {\n return interval(50).pipe(\n take(101),\n map(i => {\n if (i < 100) {\n return {\n type: HttpEventType.UploadProgress,\n loaded: i,\n total: 100,\n } as HttpProgressEvent;\n } else {\n if (i >= 100 && Math.random() > 0.5) {\n throw 'Fake error thrown';\n }\n return new HttpResponse<any>();\n }\n }),\n catchError(() => of(new HttpResponse<any>({ body: {}, status: 500 }))),\n );\n }\n\n deleteFile(_id: any): Observable<any> {\n return of('F = m.a');\n }\n\n retry(file: any): Observable<any> {\n return of(file);\n }\n\n downloadFile(id: any): Observable<any> {\n alert(`Missing download implementation for file ID ${id}`);\n return of(true);\n }\n}\n","import { Injectable, InjectionToken, inject } from '@angular/core';\nimport { ComponentStore } from '@ngrx/component-store';\nimport { TranslateService } from '@ngx-translate/core';\nimport {\n catchError,\n filter,\n forkJoin,\n interval,\n map,\n merge,\n mergeMap,\n Observable,\n of,\n switchMap,\n takeWhile,\n tap,\n throttle,\n withLatestFrom,\n} from 'rxjs';\nimport { OnemrvaMatFileUploadService } from './onemrva-mat-file-upload.service';\nimport {\n ProgressFile,\n ReferencedProgressFile,\n} from './models/progress-file.model';\nimport { HttpEvent, HttpEventType } from '@angular/common/http';\nimport { OnemrvaMatFileUploadStoreItf } from './onemrva-mat-file-upload-itf.store';\nimport { OnemrvaMatColor } from '@onemrvapublic/design-system/utils';\n\nexport interface FileUploadStoreEvent {\n type: string;\n payload?: any;\n}\n\nexport interface UploadState {\n upload: ReferencedProgressFile[];\n accept: string[];\n maxFileSize: number;\n fileUploadError: string;\n event: FileUploadStoreEvent;\n}\n\nconst INIT_STATE: UploadState = {\n upload: [],\n accept: [],\n maxFileSize: 0,\n fileUploadError: '',\n event: {\n type: 'INIT',\n },\n};\n\nexport type CustomValidationFn = (\n input: [ReferencedProgressFile, ReferencedProgressFile[]],\n) => ReferencedProgressFile;\n\nexport const CUSTOM_VALIDATION_FN = new InjectionToken<CustomValidationFn>(\n 'x1, x2 = (-b -+ sqrt(rho))/2a',\n);\n\n@Injectable()\nexport class OnemrvaMatFileUploadStore\n extends ComponentStore<UploadState>\n implements OnemrvaMatFileUploadStoreItf\n{\n private fn: CustomValidationFn = (\n x: [ReferencedProgressFile, ReferencedProgressFile[]],\n ) => {\n return x[0];\n };\n\n private readonly fileUploadService = inject(OnemrvaMatFileUploadService);\n private readonly translateService = inject(TranslateService);\n public readonly customValidationFn = inject(CUSTOM_VALIDATION_FN, {\n optional: true,\n });\n\n public isSending = this.fileUploadService.isSending;\n\n constructor() {\n super(INIT_STATE);\n if (this.customValidationFn) this.fn = this.customValidationFn;\n }\n\n /*\n * U P D A T E R S\n */\n public readonly setAccept = this.updater((state, accept: string[]) => ({\n ...state,\n accept,\n event: {\n type: 'setAccept',\n payload: accept,\n },\n }));\n\n public readonly setMaxFileSize = this.updater(\n (state, maxFileSize: number) => ({\n ...state,\n maxFileSize,\n event: {\n type: 'setMaxFileSize',\n payload: maxFileSize,\n },\n }),\n );\n\n private readonly emptyList = this.updater(state => {\n return {\n ...state,\n upload: [],\n event: {\n type: 'emptyList',\n },\n };\n });\n\n private readonly pushFile = this.updater(\n (state, payload: ReferencedProgressFile) => {\n return {\n ...state,\n upload: [...state.upload, { ...payload }],\n event: {\n type: 'pushFile',\n payload,\n },\n };\n },\n );\n\n public readonly setData = this.updater(\n (state, payload: { ref: symbol; data: any }) => {\n return {\n ...state,\n upload: state.upload.map((file: ReferencedProgressFile) =>\n file.ref === payload.ref ? { ...file, data: payload.data } : file,\n ),\n event: {\n type: 'setData',\n payload,\n },\n };\n },\n );\n\n private readonly setSuccess = this.updater(\n (state, payload: { ref: symbol; body: any }) => {\n const newFile = {\n ...state.upload.find(f => f.ref === payload.ref),\n ...payload.body,\n color: 'success',\n progress: 100,\n };\n\n return {\n ...state,\n upload: state.upload.map(file =>\n file.ref === payload.ref ? newFile : file,\n ),\n event: {\n type: 'setData',\n payload: newFile,\n },\n };\n },\n );\n\n private readonly setFail = this.updater(\n (\n state,\n payload: { ref: symbol; message: string; color: OnemrvaMatColor },\n ) => ({\n ...state,\n upload: state.upload.map(file =>\n file.ref === payload.ref\n ? { ...file, message: payload.message, color: payload.color }\n : file,\n ),\n event: {\n type: 'setFail',\n payload,\n },\n }),\n );\n\n private readonly setProgress = this.updater(\n (state, payload: { ref: symbol; progress: number }) => ({\n ...state,\n upload: state.upload.map(file =>\n file.ref === payload.ref\n ? { ...file, progress: payload.progress }\n : file,\n ),\n event: {\n type: 'setProgress',\n payload,\n },\n }),\n );\n\n private readonly reset = this.updater((state, ref: symbol) => ({\n ...state,\n upload: state.upload.map(file =>\n file.ref === ref\n ? { ...file, progress: 0, message: '', color: '' }\n : file,\n ),\n event: {\n type: 'reset',\n payload: ref,\n },\n }));\n\n private readonly remove = this.updater(\n (state, payload: ReferencedProgressFile) => ({\n ...state,\n upload: state.upload.filter(f => f.ref !== payload.ref),\n event: {\n type: 'remove',\n payload,\n },\n }),\n );\n\n private readonly enableProgressBar = this.updater(state => ({\n ...state,\n upload: state.upload.map(file => ({ ...file, enableProgressBar: true })),\n event: {\n type: 'enableProgressBar',\n },\n }));\n\n public readonly setFileUploadError = this.updater(\n (state, fileUploadError: string) => ({\n ...state,\n fileUploadError,\n event: {\n type: 'setFileUploadError',\n payload: fileUploadError,\n },\n }),\n );\n\n public readonly clearFileUploadError = this.updater(state => ({\n ...state,\n fileUploadError: '',\n event: {\n type: 'clearFileUploadError',\n },\n }));\n\n /*\n * S E L E C T O R S\n */\n readonly files$ = this.select(state => state.upload);\n readonly accept$ = this.select(state => state.accept);\n readonly event$ = this.select(state => state.event);\n readonly maxFileSize$ = this.select(state => state.maxFileSize);\n readonly fileUploadError$ = this.select(state => state.fileUploadError);\n\n /*\n * A C T I O N S / E F F E C T S\n */\n readonly listUploadedFiles = this.effect((inputs$: Observable<any>) => {\n return inputs$.pipe(\n tap(() => {\n this.emptyList();\n }),\n mergeMap((inputs: any) => {\n return this.fileUploadService.listUploadedFiles(inputs).pipe(\n //take(1),\n withLatestFrom(this.files$),\n tap(() => {\n // added to avoid ide errors\n }),\n tap(([newfiles, registeredFiles]) => {\n newfiles.forEach(file => {\n if (\n registeredFiles.findIndex(rfile => rfile.id === file.id) < 0\n ) {\n this.pushFile({\n ...file,\n color: 'success',\n progress: 100,\n ref: Symbol('H.psi = E.psi'),\n name: file!.name,\n lastModified: file!.lastModified,\n size: file!.size,\n type: file!.type,\n });\n }\n });\n }),\n catchError(() => of([])),\n );\n }),\n );\n });\n\n readonly deleteFile = this.effect(\n (file$: Observable<ReferencedProgressFile>) => {\n return file$.pipe(\n tap(() => {\n this.clearFileUploadError();\n }),\n withLatestFrom(this.files$),\n map(this.fn),\n mergeMap((file: any) =>\n this.fileUploadService.deleteFile(file.id).pipe(\n //take(1),\n tap(() => {\n this.remove(file);\n }),\n catchError(() => {\n this.setFail({\n ref: file.ref,\n color: OnemrvaMatColor.WARN,\n message: 'file.upload.delete.error',\n });\n return of(null);\n }),\n ),\n ),\n );\n },\n );\n\n readonly removeFile = this.effect(\n (file$: Observable<ReferencedProgressFile>) => {\n return file$.pipe(\n tap(() => {\n this.clearFileUploadError();\n }),\n withLatestFrom(this.files$),\n map(this.fn),\n tap(file => {\n this.remove(file);\n }),\n );\n },\n );\n\n private progressFileChecker = (file$: Observable<any>) => {\n return file$.pipe(\n withLatestFrom(this.accept$),\n\n map(([file, accept]) => {\n // Step 1 - Add a new file in the view\n let f: ReferencedProgressFile = { ...file };\n if (file.ref === undefined) {\n f = {\n ...f,\n ref: Symbol('v_sound = sqrt(gamma.P / rho)'),\n name: file!.name,\n lastModified: file!.lastModified,\n size: file!.size,\n type: file!.type,\n };\n this.pushFile(f);\n }\n\n // Step 2 - Check file extension\n if (accept.length > 0 && !accept.includes(file.file!.type)) {\n this.setFail({\n ref: f.ref,\n color: OnemrvaMatColor.ERROR,\n message: 'file.upload.type.not.supported',\n });\n // This trick coupled with the next filter is used to avoid catchError, which would break the effect\n return { ...f, message: 'ERROR' };\n }\n return f;\n }),\n filter(x => x.message !== 'ERROR'),\n withLatestFrom(this.maxFileSize$),\n\n map(([refFile, maxFileSize]) => {\n // Step 3 - Check file size\n if (maxFileSize !== 0 && refFile.size > maxFileSize) {\n this.setFail({\n ref: refFile.ref,\n color: OnemrvaMatColor.ERROR,\n message: 'file.upload.too.big',\n });\n // Same trick for error management\n return { ...refFile, message: 'ERROR' };\n }\n return refFile;\n }),\n filter(x => x.message !== 'ERROR'),\n withLatestFrom(this.files$),\n map(this.fn), // For custom validations\n tap(x => {\n if (!!x.message && x.message.startsWith('ERROR:'))\n this.setFileUploadError(x.message.replace('ERROR:', '').trim());\n else this.clearFileUploadError();\n }),\n filter(x => !x.message.startsWith('ERROR')),\n );\n };\n\n private loadStep = (file: any) => {\n if (file.color === OnemrvaMatColor.WARN) this.reset(file.ref);\n\n this.enableProgressBar();\n\n return this.fileUploadService.upload(file).pipe(\n throttle(() => interval(200), { leading: true, trailing: true }),\n tap((event: HttpEvent<any>) => {\n if (event.type === HttpEventType.UploadProgress) {\n this.setProgress({\n ref: file.ref,\n progress: Math.round((100 * event.loaded) / event.total!),\n });\n }\n\n if (event.type === HttpEventType.Response) {\n this.setSuccess({ ref: file.ref, body: event.body });\n }\n }),\n takeWhile(\n (event: HttpEvent<any>) => event.type === HttpEventType.UploadProgress,\n ),\n catchError(() => {\n this.setFail({\n ref: file.ref,\n color: OnemrvaMatColor.WARN,\n message: 'file.upload.error.occurred',\n });\n return of(null);\n }),\n );\n };\n\n /**\n * For adding one file panel (creation of file panel reference skipped if already created) at a time.\n * Upload to BE not triggered\n */\n readonly addForPotentialUpload = this.effect(\n (file$: Observable<ProgressFile>) => this.progressFileChecker(file$),\n );\n\n /**\n * For adding an array of file panels (creation of file panels reference skipped if already created).\n * Uploads to BE not triggered\n */\n readonly addSeveralForPotentialUpload = this.effect(\n (files$: Observable<ProgressFile[]>) =>\n files$.pipe(\n switchMap(files =>\n forkJoin(files.map(file => this.progressFileChecker(of(file)))),\n ),\n ),\n );\n\n /**\n * For adding a file panel (creation of file panels reference skipped if already created) then uploading it\n */\n readonly uploadFile = this.effect((file$: Observable<ProgressFile>) => {\n return this.progressFileChecker(file$).pipe(mergeMap(this.loadStep));\n });\n\n readonly retryFile = this.effect(\n (file$: Observable<ReferencedProgressFile>) =>\n this.progressFileChecker(file$).pipe(mergeMap(this.loadStep)),\n );\n\n /**\n * For adding several file panels (creation of file panels reference skipped if already created) then uploading them\n */\n readonly uploadFiles = this.effect((files$: Observable<ProgressFile[]>) =>\n files$.pipe(\n switchMap(files =>\n merge(\n ...files.map(file =>\n this.progressFileChecker(of(file)).pipe(switchMap(this.loadStep)),\n ),\n ),\n ),\n ),\n );\n}\n","import {\n Directive,\n Output,\n EventEmitter,\n HostBinding,\n HostListener,\n} from '@angular/core';\n\n@Directive({\n selector: '[appDnd]',\n standalone: true,\n})\nexport class DndDirective {\n @HostBinding('class.fileover') fileOver = false;\n\n @Output() fileDropped = new EventEmitter<any>();\n\n // Dragover listener\n @HostListener('dragover', ['$event']) onDragOver(evt: Event) {\n evt.preventDefault();\n evt.stopPropagation();\n this.fileOver = true;\n }\n\n // Dragleave listener\n @HostListener('dragleave', ['$event']) public onDragLeave(evt: Event) {\n evt.preventDefault();\n evt.stopPropagation();\n this.fileOver = false;\n }\n\n // Drop listener\n @HostListener('drop', ['$event']) public ondrop(evt: any) {\n evt.preventDefault();\n evt.stopPropagation();\n this.fileOver = false;\n const files = evt.dataTransfer.files;\n if (files.length > 0) {\n this.fileDropped.emit(files);\n }\n }\n}\n","import {\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n inject,\n Input,\n OnInit,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { map, merge, Observable, Subject, take } from 'rxjs';\nimport {\n state,\n keyframes,\n style,\n animate,\n trigger,\n transition,\n} from '@angular/animations';\nimport {\n formatBytes,\n formattedSize,\n ProgressFile,\n ReferencedProgressFile,\n} from '../../models/progress-file.model';\nimport { OnemrvaMatFileUploadStore } from '../../onemrva-mat-file-upload.store';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { OnemRvaCDNMimeService } from '@onemrvapublic/design-system/shared';\nimport { AsyncPipe, NgClass, NgTemplateOutlet } from '@angular/common';\nimport { MatIcon } from '@angular/material/icon';\nimport { MatError } from '@angular/material/form-field';\nimport { DndDirective } from '../../directives/dnd.directive';\n\nlet NEXT_ID = 0;\n\n@Component({\n selector: 'onemrva-mat-file-upload',\n standalone: true,\n templateUrl: 'onemrva-mat-file-upload.component.html',\n styleUrl: 'onemrva-mat-file-upload.component.scss',\n animations: [\n trigger('inOutAnimation', [\n state('in', style({ opacity: 1 })),\n transition(':enter', [\n animate(\n 300,\n keyframes([\n style({ opacity: 0, offset: 0 }),\n style({ opacity: 0.25, offset: 0.25 }),\n style({ opacity: 0.5, offset: 0.5 }),\n style({ opacity: 0.75, offset: 0.75 }),\n style({ opacity: 1, offset: 1 }),\n ]),\n ),\n ]),\n transition(':leave', [\n animate(\n 300,\n keyframes([\n style({ opacity: 1, offset: 0 }),\n style({ opacity: 0.75, offset: 0.25 }),\n style({ opacity: 0.5, offset: 0.5 }),\n style({ opacity: 0.25, offset: 0.75 }),\n style({ opacity: 0, offset: 1 }),\n ]),\n ),\n ]),\n ]),\n ],\n imports: [\n NgClass,\n AsyncPipe,\n MatIcon,\n TranslatePipe,\n NgTemplateOutlet,\n MatError,\n DndDirective,\n ],\n})\nexport class OnemrvaMatFileUploadComponent implements OnInit {\n @Input()\n accept: string[] = [];\n\n acceptString$?: Observable<any>;\n\n @Input()\n maxFileSize = 0;\n\n @Input()\n numberOfFiles = 0;\n\n @Input()\n maxTotalFileSize = 0;\n\n @Input()\n uploadOnDrop = true;\n\n @Input()\n initialFiles: ProgressFile[] = [];\n\n @Input()\n errorMessage = '';\n\n @Input()\n hideExtensions: string[] = [];\n\n @Input()\n dropFilesHereTextTranslationKey = 'file.upload.drag.and.drop';\n\n fileUploadErrorMessage$: Observable<string>;\n\n files$: Observable<ReferencedProgressFile[]>;\n\n @Input() filePanelTemplate!: TemplateRef<any>;\n\n retryFile = new EventEmitter<{ index: number; cmpRef: symbol }>();\n\n /**\n * Sets the `data-cy` of the element. If not set, the first component instance will have `data-cy` = `\"onemrva-mat-multi-select-0\"`.\n *\n * @example\n * ```html\n * <onemrva-mat-multi-select id=\"my-first-multi-select\"></onemrva-mat-multi-select>\n * ```\n */\n @HostBinding('attr.data-cy')\n @Input()\n public dataCy = `onemrva-mat-multi-select-${NEXT_ID++}`;\n\n @ViewChild(`fileDropRef`)\n fileDropRef!: ElementRef;\n\n inputId = `fileDropRef-${NEXT_ID}`;\n maxFileSizeFormatted = '';\n private error$ = new Subject<string>();\n\n public dialog = inject(MatDialog);\n public mimeCDN = inject(OnemRvaCDNMimeService);\n private fileUploadStore = inject(OnemrvaMatFileUploadStore);\n\n constructor() {\n this.files$ = this.fileUploadStore.files$;\n\n this.fileUploadErrorMessage$ = merge(\n this.fileUploadStore.fileUploadError$,\n this.error$,\n );\n }\n\n ngOnInit(): void {\n if (this.accept.length > 0) {\n this.acceptString$ = this.mimeCDN.getExtensionsForMime(this.accept).pipe(\n map(items => items.filter(item => !this.hideExtensions.includes(item))),\n map(arr => arr.map(item => `.${item}`).join(', ')),\n );\n this.fileUploadStore.setAccept(this.accept);\n }\n\n this.maxFileSizeFormatted = formatBytes(this.maxFileSize);\n this.fileUploadStore.setMaxFileSize(this.maxFileSize);\n }\n\n /**\n * on file drop handler\n */\n onFileDropped($event: FileList) {\n this.prepareFilesList($event);\n }\n\n /**\n * handle file from browsing\n */\n fileBrowseHandler($event: Event) {\n const elm = $event.target as HTMLInputElement,\n files = elm.files as FileList;\n\n this.prepareFilesList(files);\n }\n\n /**\n * Convert Files list to normal array list\n * @param files (Files List)\n */\n prepareFilesList(files: FileList) {\n this.fileUploadStore.files$.pipe(take(1)).subscribe(currentFiles => {\n // if numberOffiles is set and the total length of files is smal\n // ler than it\n if (\n this.numberOfFiles > 0 &&\n files.length + currentFiles.length > this.numberOfFiles\n ) {\n this.error$.next('file.upload.too.many.files');\n return;\n }\n if (this.maxTotalFileSize > 0) {\n const total: number =\n Object.values(files).reduce((sum, obj) => sum + obj.size, 0) +\n currentFiles.reduce((sum, obj) => sum + obj.size, 0);\n if (total > this.maxTotalFileSize) {\n this.error$.next('file.upload.total.max.size.exceeded');\n return;\n }\n }\n this.error$.next('');\n\n const fs: ProgressFile[] = [];\n for (let i = 0; i < files.length; i++) {\n const file = files.item(i);\n if (file === null) continue;\n\n const item: ProgressFile = {\n file,\n progress: 0,\n message: '',\n color: 'primary',\n url: null,\n id: null,\n enableProgressBar: this.uploadOnDrop,\n name: file!.name,\n lastModified: file!.lastModified,\n size: file!.size,\n type: file!.type,\n maxSize: this.maxFileSize,\n };\n\n fs.push(item);\n }\n\n if (this.uploadOnDrop) this.fileUploadStore.uploadFiles(fs);\n else this.fileUploadStore.addSeveralForPotentialUpload(fs);\n\n this.fileDropRef.nativeElement.value = null;\n });\n }\n\n protected readonly formattedSize = formattedSize;\n}\n","@if (files$ | async; as files) {\n <div\n class=\"onemrva-mat-file-upload-drop-area\"\n appDnd\n (fileDropped)=\"onFileDropped($event)\"\n [ngClass]=\"{\n filein: files.length > 0,\n }\"\n >\n <input\n type=\"file\"\n #fileDropRef\n [attr.id]=\"inputId\"\n role=\"button\"\n multiple\n (change)=\"fileBrowseHandler($event)\"\n accept=\"{{ acceptString$ | async }}\"\n />\n @if (numberOfFiles === 0 || numberOfFiles > files.length) {\n <div class=\"download-outer\">\n <div class=\"download-icon\">\n <mat-icon class=\"onemrva-upload xxlarge\">download</mat-icon>\n </div>\n\n <div class=\"download-text\">\n {{ dropFilesHereTextTranslationKey | translate }}\n {{ 'file.upload.or' | translate }}\n <label for=\"{{ inputId }}\" class=\"content\">\n {{ 'file.upload.browse.for.file' | translate }} </label\n ><br />\n @if (maxFileSize > 0) {\n <span class=\"restrictions\">\n {{ 'file.upload.maximum' | translate }}\n {{ maxFileSizeFormatted }}\n\n @if (accept.length > 0) {\n <span>{{ '| ' }}</span>\n }\n\n {{ acceptString$ | async }}\n </span>\n }\n </div>\n </div>\n }\n <ul class=\"files-list\">\n @for (file of files; track file.id) {\n <li>\n <ng-container\n *ngTemplateOutlet=\"\n filePanelTemplate;\n context: { file, $implicit: file }\n \"\n ></ng-container>\n </li>\n }\n </ul>\n </div>\n @if (fileUploadErrorMessage$ | async; as fileUploadErrorMessage) {\n <mat-error>\n {{\n fileUploadErrorMessage\n | translate\n : {\n limit: numberOfFiles,\n maxTotalFileSize: formattedSize(maxTotalFileSize),\n }\n }}\n @if (errorMessage !== '') {\n [ {{ errorMessage }} ]\n }\n </mat-error>\n }\n}\n","import { OnemrvaFilePanelComponent } from './onemrva-mat-file-panel/onemrva-file-panel.component';\nimport { OnemrvaMatFileUploadComponent } from './onemrva-mat-file-upload/onemrva-mat-file-upload.component';\n\nexport const components: any[] = [\n OnemrvaFilePanelComponent,\n OnemrvaMatFileUploadComponent,\n];\n\nexport * from './onemrva-mat-file-panel/onemrva-file-panel.component';\nexport * from './onemrva-mat-file-upload/onemrva-mat-file-upload.component';\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DndDirective } from './directives/dnd.directive';\nimport { MatIconModule } from '@angular/material/icon';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nimport { components } from './components';\nimport { MatInputModule } from '@angular/material/input';\nimport { OnemrvaMatFileUploadStore } from './onemrva-mat-file-upload.store';\nimport { OnemrvaMatFileUploadService } from './onemrva-mat-file-upload.service';\n\n@NgModule({\n declarations: [],\n imports: [\n components,\n DndDirective,\n CommonModule,\n ReactiveFormsModule,\n MatButtonModule,\n MatTooltipModule,\n MatDialogModule,\n TranslateModule,\n MatIconModule,\n MatInputModule,\n ],\n exports: [components, DndDirective],\n providers: [OnemrvaMatFileUploadStore, OnemrvaMatFileUploadService],\n})\nexport class OnemrvaMatFileUploadModule {}\n","/*\n * Public API Surface of mat-file upload\n */\n\nexport * from './src/components';\nexport * from './src/onemrva-mat-file-upload.module';\nexport * from './src/onemrva-mat-file-upload.store';\nexport * from './src/onemrva-mat-file-upload.service';\nexport * from './src/models/progress-file.model';\nexport * from './src/models/action-config.model';\nexport * from './src/onemrva-mat-file-upload-itf.store';\nexport * from './src/directives/dnd.directive';\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { OSMResult } from '@onemrvapublic/design-system/shared';\n\n@Pipe({\n name: 'addressFormatter',\n standalone: true,\n})\nexport class OSMAddressFormatPipe implements PipeTransform {\n transform(result: OSMResult): string {\n if (result.address.country_code !== 'be') {\n return result.display_name;\n }\n\n const town =\n result.address.village || result.address.city || result.address.town;\n if (result.address.house_number) {\n return `${result.address.road} ${result.address.house_number}, ${result.address.postcode} ${town}`;\n }\n\n return `${result.address.road}, ${result.address.postcode} ${town}`;\n }\n}\n","import {\n Component,\n EventEmitter,\n Input,\n Output,\n ViewEncapsulation,\n OnInit,\n ViewChild,\n inject,\n} from '@angular/core';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { debounceTime, switchMap, Observable, startWith, map, of } from 'rxjs';\nimport { CommonModule } from '@angular/common';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatSelectModule } from '@angular/material/select';\nimport { TranslateModule } from '@ngx-translate/core';\nimport {\n MatAutocomplete,\n MatAutocompleteTrigger,\n} from '@angular/material/autocomplete';\nimport { MatIcon } from '@angular/material/icon';\nimport { FlagIconComponent } from '@onemrvapublic/design-system/flag-icon';\nimport {\n OnemRvaOSMService,\n OSMResult,\n} from '@onemrvapublic/design-system/shared';\nimport { OSMAddressFormatPipe } from './format-osm.directive';\n\n@Component({\n selector: 'onemrva-mat-input-address',\n styleUrls: ['onemrva-mat-input-address.component.scss'],\n templateUrl: 'onemrva-mat-input-address.component.html',\n standalone: true,\n imports: [\n CommonModule,\n MatInputModule,\n MatFormFieldModule,\n MatSelectModule,\n ReactiveFormsModule,\n TranslateModule,\n MatAutocompleteTrigger,\n MatAutocomplete,\n MatIcon,\n FlagIconComponent,\n OSMAddressFormatPipe,\n ],\n encapsulation: ViewEncapsulation.None,\n})\nexport class OnemrvaMatInputAddressComponent implements OnInit {\n @Input() placeholder = 'input.address.placeholder';\n @Input() readonly = false;\n @Input() address!: FormControl;\n @Input() mode: 'road-only' | 'full' = 'full';\n @Input() label = 'input.address.label';\n @Input() noEntriesFoundLabel = 'input.address.not-found';\n @Input() hint = '';\n @Input() countryCodes = ['be'];\n @Output() getAddress = new EventEmitter<OSMResult>();\n\n @ViewChild(MatAutocompleteTrigger, { static: false })\n autocompleteTrigger!: MatAutocompleteTrigger;\n\n results$!: Observable<OSMResult[]>;\n\n private readonly osm = inject(OnemRvaOSMService);\n\n isLoading = false;\n\n firstResult: null | OSMResult = null;\n showNoResult = false;\n\n ngOnInit(): void {\n this.results$ = this.address.valueChanges.pipe(\n startWith(''),\n debounceTime(300),\n switchMap((value: string) => {\n this.showNoResult = false;\n this.firstResult = null;\n if (!value || value.length <= 2) {\n this.isLoading = false;\n this.autocompleteTrigger.closePanel();\n return of([]);\n }\n\n this.isLoading = true;\n return this.osm.searchAddress(value, this.countryCodes).pipe(\n map(results => {\n this.showNoResult = results.length === 0;\n this.isLoading = false;\n this.firstResult = results[0];\n return results;\n }),\n );\n }),\n );\n }\n\n selectAddress(address: OSMResult, emit = true) {\n const finalValue =\n this.mode === 'road-only' ? address.address.road : address.display_name;\n\n this.address.setValue(finalValue, { emitEvent: emit });\n this.getAddress.emit(address);\n }\n\n clear() {\n this.address.setValue('');\n }\n\n handleEnter() {\n if (this.firstResult !== null) this.selectAddress(this.firstResult, false);\n this.autocompleteTrigger.closePanel();\n }\n}\n","<mat-form-field appearance=\"outline\">\n <mat-label>{{ label | translate }}</mat-label>\n <mat-icon matPrefix [ngClass]=\"{ spin: isLoading }\">\n {{ isLoading ? 'refresh' : 'search' }}\n </mat-icon>\n\n @if (address.value !== '') {\n <mat-icon matSuffix class=\"clickable\" (click)=\"clear()\">close</mat-icon>\n }\n <input\n type=\"text\"\n matInput\n [formControl]=\"address\"\n [readonly]=\"readonly\"\n [matAutocomplete]=\"auto\"\n [placeholder]=\"placeholder | translate\"\n (keydown.enter)=\"handleEnter()\"\n />\n\n @if (hint) {\n <mat-hint>{{ hint }}</mat-hint>\n }\n\n <mat-autocomplete\n #auto=\"matAutocomplete\"\n (optionSelected)=\"selectAddress($event.option.value)\"\n >\n @for (result of results$ | async; track result.place_id) {\n <mat-option [value]=\"result\">\n <span class=\"country\">\n <flag-icon [countryCode]=\"result.address['country_code']\" />\n {{ result | addressFormatter }}\n </span>\n </mat-option>\n }\n @if (showNoResult) {\n <mat-option>\n {{ noEntriesFoundLabel | translate }}\n </mat-option>\n }\n </mat-autocomplete>\n @if (address.invalid) {\n <mat-error>{{ 'input.field.invalid' | translate }}</mat-error>\n }\n</mat-form-field>\n","/*\n * Public API Surface of mat-bank-account-input\n */\n\nexport * from './src/onemrva-mat-input-address.component';\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms';\nimport { OnemrvaMatInputAddressComponent } from '@onemrvapublic/design-system/mat-input-address';\nimport { OnemrvaMatInputCountryComponent } from '@onemrvapublic/design-system/mat-input-country';\nimport { OSMResult } from '@onemrvapublic/design-system/shared';\nimport { MatInputModule } from '@angular/material/input';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { merge } from 'rxjs';\n\n@Component({\n selector: 'onemrva-address',\n imports: [\n CommonModule,\n MatFormFieldModule,\n ReactiveFormsModule,\n OnemrvaMatInputCountryComponent,\n MatInputModule,\n TranslateModule,\n OnemrvaMatInputAddressComponent,\n ],\n templateUrl: './onemrva-address.html',\n standalone: true,\n styleUrl: './onemrva-address.scss',\n})\nexport class OnemRvaAddress implements OnInit {\n @Input()\n defaultCountry = 'be';\n\n @Input()\n form = new FormGroup({\n country: new FormControl(''),\n street: new FormControl(''),\n postal_code: new FormControl(''),\n city: new FormControl(''),\n street_number: new FormControl(''),\n box: new FormControl(''),\n });\n\n @Output()\n update = new EventEmitter<{\n country?: string;\n street?: string;\n postal_code?: string;\n city?: string;\n street_number?: string;\n box?: string;\n }>();\n\n // Keep existing property names as getters to avoid template changes\n get countryForm(): FormControl<string | null> {\n return this.form.get('country') as FormControl<string | null>;\n }\n get streetControl(): FormControl<string | null> {\n return this.form.get('street') as FormControl<string | null>;\n }\n get postalCodeControl(): FormControl<string | null> {\n return this.form.get('postal_code') as FormControl<string | null>;\n }\n get cityControl(): FormControl<string | null> {\n return this.form.get('city') as FormControl<string | null>;\n }\n get boxControl(): FormControl<string | null> {\n return this.form.get('box') as FormControl<string | null>;\n }\n get numeroControl(): FormControl<string | null> {\n return this.form.get('street_number') as FormControl<string | null>;\n }\n\n ngOnInit() {\n // Emit on any form change\n merge(this.form.valueChanges).subscribe(() => {\n const v = this.form.value;\n const change = {\n country: v.country || undefined,\n street: v.street || undefined,\n postal_code: v.postal_code || undefined,\n city: v.city || undefined,\n street_number: v.street_number || undefined,\n };\n this.update.emit(change);\n });\n }\n\n onAddressSelected(result: OSMResult) {\n const city =\n result.address.city || result.address.village || result.address.town;\n const patch: any = {};\n\n if (city) {\n patch.city = city;\n }\n\n const houseNumber = result.address.house_number;\n if (houseNumber) {\n patch.street_number = houseNumber;\n }\n\n const postalCode = result.address.postcode;\n if (postalCode) {\n patch.postal_code = postalCode;\n }\n\n if (Object.keys(patch).length > 0) {\n this.form.patchValue(patch);\n }\n }\n}\n","<onemrva-mat-input-country\n [country]=\"countryForm\"\n label=\"{{ 'input.country.label' | translate }}\"\n noEntriesFoundLabel=\"{{ 'input.country.not.found' | translate }}\"\n placeholderLabel=\"{{ 'input.country.search' | translate }}\"\n searchAriaLabel=\"{{ 'input.country.search' | translate }}\"\n></onemrva-mat-input-country>\n\n<div class=\"container\">\n <div class=\"row\">\n <div class=\"col-12-small col-8-medium\">\n <onemrva-mat-input-address\n class=\"mr-m\"\n mode=\"road-only\"\n [countryCodes]=\"[countryForm.value || '']\"\n [address]=\"streetControl\"\n (getAddress)=\"onAddressSelected($event)\"\n />\n </div>\n\n <div class=\"col-6-small col-2-medium\">\n <mat-form-field class=\"ml-m-medium\">\n <mat-label>{{ 'input.address.number.label' | translate }}</mat-label>\n <input\n matInput\n [formControl]=\"numeroControl\"\n [placeholder]=\"'input.address.number.placeholder' | translate\"\n />\n </mat-form-field>\n </div>\n\n <div class=\"col-6-small col-2-medium\">\n <mat-form-field class=\"ml-m-medium ml-s-small\">\n <mat-label>{{'input.address.box.label' | translate}}</mat-label>\n <input\n matInput\n [formControl]=\"boxControl\"\n [placeholder]=\"'input.address.box.placeholder' | translate\"\n />\n </mat-form-field>\n </div>\n </div>\n\n <div class=\"row\">\n <div class=\"col-12-small col-4-medium\">\n <mat-form-field class=\"mr-m-medium\">\n <mat-label\n >{{ 'input.address.postal-code.label' | translate}}</mat-label\n >\n <input\n matInput\n [formControl]=\"postalCodeControl\"\n [placeholder]=\"'input.address.postal-code.label' | translate\"\n />\n </mat-form-field>\n </div>\n\n <div class=\"col-12-small col-8-medium\">\n <mat-form-field>\n <mat-label>{{ 'input.address.city.label' | translate }}</mat-label>\n <input\n matInput\n [formControl]=\"cityControl\"\n [placeholder]=\"'input.address.city.placeholder' | translate\"\n />\n </mat-form-field>\n </div>\n </div>\n</div>\n","/*\n * Public API Surface of mat-bank-account-input\n */\n\nexport * from './src/onemrva-address';\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n EventEmitter,\n inject,\n input,\n OnDestroy,\n OnInit,\n Output,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport {\n Observable,\n Subject,\n map,\n startWith,\n debounceTime,\n takeUntil,\n of,\n combineLatest,\n} from 'rxjs';\nimport { MatSelectSearchModule } from '@onemrvapublic/design-system/mat-select-search';\nimport { CommonCountryLookupService } from '@onemrvapublic/design-system/shared';\nimport { OnemRvaCommonCountry } from '@onemrvapublic/design-system/shared';\nimport { OnemrvaCountryItemComponent } from '@onemrvapublic/design-system/mat-country-item';\n\n@Component({\n selector: 'onemrva-mat-input-birthplace',\n styleUrls: ['onemrva-mat-input-birthplace.component.scss'],\n templateUrl: 'onemrva-mat-input-birthplace.component.html',\n standalone: true,\n imports: [\n CommonModule,\n MatInputModule,\n MatFormFieldModule,\n MatSelectModule,\n MatSelectSearchModule,\n ReactiveFormsModule,\n TranslateModule,\n OnemrvaCountryItemComponent,\n ],\n encapsulation: ViewEncapsulation.None,\n})\nexport class OnemrvaMatInputBirthPlaceComponent implements OnInit, OnDestroy {\n readonly = input(false);\n\n countryCode = input(new FormControl<OnemRvaCommonCountry | null>(null));\n\n label = input('Country');\n noEntriesFoundLabel = input('Not found');\n hint = input('');\n placeholderLabel = input('Search');\n searchAriaLabel = input('');\n returnValue = input('object');\n\n @Output() getCountry = new EventEmitter<any>();\n\n selectedCountryName = signal<string | null>(null);\n selectedCountryCode = signal<string | null>(null);\n\n public filterCtrl: FormControl<string | null> = new FormControl<string>('');\n\n destroyNotifier$ = new Subject<void>();\n\n public filteredCountries$: Observable<OnemRvaCommonCountry[]> = of([]);\n\n private commonCountryLookupService = inject(CommonCountryLookupService);\n private translate = inject(TranslateService);\n private countries$ = this.commonCountryLookupService.getCountries();\n\n constructor() {\n this.filteredCountries$ = combineLatest([\n this.filterCtrl.valueChanges.pipe(startWith('')),\n this.countries$,\n ]).pipe(\n debounceTime(400),\n map(([search, countries]) => {\n return countries.filter((country: OnemRvaCommonCountry) => {\n if (!search || search === '') return true;\n // if (country.descNl === undefined) return false;\n return (\n country.descNl.toLowerCase().indexOf(search.toLowerCase()) > -1\n );\n });\n }),\n map(country =>\n country.sort((a, b) => {\n return a.descNl.localeCompare(b.descNl);\n }),\n ),\n );\n }\n\n getCountryName(country: OnemRvaCommonCountry): string | null {\n if (!country) return null;\n switch (this.translate.currentLang) {\n case 'nl':\n return country.descNl ?? '';\n default:\n case 'fr':\n return country.descFr ?? '';\n }\n }\n\n ngOnInit(): void {\n this.countryCode()\n .valueChanges.pipe(\n startWith(this.countryCode().value),\n takeUntil(this.destroyNotifier$),\n )\n .subscribe(country => {\n this.selectedCountryName.set(null);\n this.selectedCountryCode.set(null);\n\n if (country === null || country === undefined) return;\n const name = this.getCountryName(country);\n\n this.selectedCountryName.set(name);\n this.selectedCountryCode.set(\n country.singlePropertiesMap.codeSepa.toLowerCase(),\n );\n });\n }\n\n ngOnDestroy() {\n this.destroyNotifier$.next();\n this.destroyNotifier$.complete();\n }\n\n trackById(index: number, country: OnemRvaCommonCountry) {\n return country.code;\n }\n\n errors() {\n // if (this.countryCode.errors !== null) {\n // for (const k in this.countryCode.errors) {\n // if (k === 'required') {\n // return 'input.country.required';\n // } else {\n // return 'input.country.invalid';\n // }\n // }\n // }\n return 'input.country.unknown.error';\n }\n\n getValue(country: OnemRvaCommonCountry) {\n switch (this.returnValue()) {\n case 'id':\n return country.id;\n case 'code':\n return country.code;\n default:\n case 'object':\n return country;\n }\n }\n}\n","<mat-form-field class=\"onemrva-input-country-common\">\n <mat-label>{{ label() }}</mat-label>\n <mat-select\n class=\"onemrva-country-select-common\"\n [formControl]=\"countryCode()\"\n [placeholder]=\"placeholderLabel()\"\n >\n <mat-select-trigger>\n <mat-country-item\n [countryCode]=\"selectedCountryCode()\"\n [countryName]=\"selectedCountryName()\"\n />\n </mat-select-trigger>\n <mat-option>\n <mat-select-search\n [formControl]=\"filterCtrl\"\n [ariaLabel]=\"searchAriaLabel()\"\n [noEntriesFoundLabel]=\"noEntriesFoundLabel()\"\n [placeholderLabel]=\"placeholderLabel()\"\n ></mat-select-search>\n </mat-option>\n @for (country of filteredCountries$ | async; track country.code) {\n <mat-option [value]=\"country\">\n <mat-country-item\n [countryCode]=\"country.singlePropertiesMap.codeSepa.toLowerCase()\"\n [countryName]=\"getCountryName(country)\"\n />\n </mat-option>\n }\n </mat-select>\n @if (hint() !== '') {\n <mat-hint>{{ hint() }}</mat-hint>\n }\n @if (countryCode().invalid) {\n <mat-error>{{ errors() | translate }}</mat-error>\n }\n</mat-form-field>\n","/*\n * Public API Surface of mat-bank-account-input\n */\n\nexport * from './src/onemrva-mat-input-birthplace.component';\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n effect,\n EventEmitter,\n inject,\n input,\n OnInit,\n Output,\n ViewEncapsulation,\n} from '@angular/core';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\nimport { TranslateModule } from '@ngx-translate/core';\nimport {\n Observable,\n map,\n startWith,\n debounceTime,\n combineLatestWith,\n} from 'rxjs';\nimport { MatSelectSearchModule } from '@onemrvapublic/design-system/mat-select-search';\nimport {\n OnemRvaCDNCountryService,\n OnemrvaMaterialCountry,\n} from '@onemrvapublic/design-system/shared';\nimport { OnemrvaCountryItemComponent } from '@onemrvapublic/design-system/mat-country-item';\n\n@Component({\n selector: 'onemrva-mat-input-country',\n styleUrls: ['onemrva-mat-input-country.component.scss'],\n templateUrl: 'onemrva-mat-input-country.component.html',\n standalone: true,\n imports: [\n CommonModule,\n MatInputModule,\n MatFormFieldModule,\n MatSelectModule,\n MatSelectSearchModule,\n ReactiveFormsModule,\n TranslateModule,\n OnemrvaCountryItemComponent,\n ],\n encapsulation: ViewEncapsulation.None,\n})\nexport class OnemrvaMatInputCountryComponent implements OnInit {\n @Output() getCountry = new EventEmitter<any>();\n\n country = input.required<FormControl<string | null>>();\n\n readonly = input(false);\n disabled = input(false);\n\n label = input('Country');\n noEntriesFoundLabel = input('Not found');\n hint = input('');\n placeholderLabel = input('Search');\n searchAriaLabel = input('');\n\n public filterCtrl: FormControl<string | null> = new FormControl<string>('');\n\n public countries$: Observable<OnemrvaMaterialCountry[]>;\n public filteredCountries$: Observable<OnemrvaMaterialCountry[]>;\n public selectedCountry$?: Observable<OnemrvaMaterialCountry | undefined>;\n\n public setValue(country: OnemrvaMaterialCountry) {\n this.country().setValue(country.code);\n this.getCountry.emit(country);\n }\n\n private readonly cdn = inject(OnemRvaCDNCountryService);\n\n constructor() {\n this.countries$ = this.cdn.getCountries();\n\n this.filteredCountries$ = this.filterCtrl.valueChanges.pipe(\n debounceTime(400),\n startWith<string | null>(''), // ✅ Explicitly setting type\n combineLatestWith(this.countries$),\n map(([search, countries]: [string | null, OnemrvaMaterialCountry[]]) => {\n return countries.filter((country: OnemrvaMaterialCountry) => {\n if (!search || search.trim() === '') return true; // ✅ Avoids returning an entire array\n return country.name?.toLowerCase().includes(search.toLowerCase());\n });\n }),\n );\n }\n\n ngOnInit(): void {\n this.selectedCountry$ = this.country().valueChanges.pipe(\n startWith<string | null>(this.country().getRawValue()), // ✅ Explicitly set type\n combineLatestWith(this.countries$),\n map(([value, countries]: [string | null, OnemrvaMaterialCountry[]]) => {\n // ✅ Explicitly defining types\n return countries.find(\n (country: OnemrvaMaterialCountry) =>\n value !== null &&\n country.code.toLowerCase() ===\n value.substring(0, country.code.length).toLowerCase(),\n );\n }),\n );\n }\n\n handleClick(e: any) {\n e.stopPropagation();\n }\n\n public errors() {\n for (const k in this.country().errors) {\n if (k === 'required') {\n return 'input.country.required';\n }\n }\n return 'input.country.unknown.error';\n }\n\n getCounrtyCode() {\n return this.country().getRawValue()?.toLowerCase() ?? null;\n }\n}\n","<mat-form-field class=\"onemrva-input-country\">\n <mat-label>{{ label() }}</mat-label>\n <mat-select class=\"onemrva-country-select\" [formControl]=\"country()\">\n <mat-select-trigger>\n <mat-country-item\n [countryCode]=\"getCounrtyCode()\"\n [countryName]=\"(selectedCountry$ | async)?.name\"\n />\n </mat-select-trigger>\n <mat-option>\n <mat-select-search\n [formControl]=\"filterCtrl\"\n [ariaLabel]=\"searchAriaLabel()\"\n [noEntriesFoundLabel]=\"noEntriesFoundLabel()\"\n [placeholderLabel]=\"placeholderLabel()\"\n ></mat-select-search>\n </mat-option>\n @for (country of filteredCountries$ | async; track $index) {\n <mat-option [value]=\"country.code.toLowerCase()\">\n <mat-country-item\n [countryCode]=\"country.code.toLowerCase()\"\n [countryName]=\"country.name\"\n />\n </mat-option>\n }\n </mat-select>\n @if (hint() !== '') {\n <mat-hint>{{ hint() }}</mat-hint>\n }\n @if (country().invalid) {\n <mat-error>{{ errors() | translate }}</mat-error>\n }\n</mat-form-field>\n","/*\n * Public API Surface of mat-bank-account-input\n */\n\nexport * from './src/onemrva-mat-input-country.component';\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n ElementRef,\n EventEmitter,\n inject,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { FormControl, ReactiveFormsModule, Validators } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\nimport { TranslateModule } from '@ngx-translate/core';\nimport {\n combineLatestWith,\n debounceTime,\n map,\n Observable,\n startWith,\n Subject,\n takeUntil,\n zip,\n} from 'rxjs';\nimport { MatSelectSearchModule } from '@onemrvapublic/design-system/mat-select-search';\nimport {\n OnemRvaCDNCountryService,\n OnemrvaMaterialCountry,\n} from '@onemrvapublic/design-system/shared';\nimport { FlagIconComponent } from '@onemrvapublic/design-system/flag-icon';\n\n@Component({\n selector: 'onemrva-mat-input-enterprise-number',\n styleUrls: ['onemrva-mat-input-enterprise-number.component.scss'],\n templateUrl: 'onemrva-mat-input-enterprise-number.component.html',\n standalone: true,\n imports: [\n CommonModule,\n MatInputModule,\n MatFormFieldModule,\n MatSelectModule,\n ReactiveFormsModule,\n TranslateModule,\n FlagIconComponent,\n MatSelectSearchModule,\n ],\n encapsulation: ViewEncapsulation.None,\n})\nexport class OnemrvaMatInputEnterpriseNumberComponent\n implements OnInit, OnDestroy\n{\n @Input()\n readonly = false;\n\n @Input() enterpriseNumber!: FormControl;\n @Input() label = 'VIES';\n @Input() noEntriesFoundLabel = 'Not found';\n @Input() placeholderLabel = 'Search';\n @Input() defaultCountry = 'BE';\n @Input() searchAriaLabel = '';\n @Input() hint = '';\n @Output() getCountry = new EventEmitter<any>();\n @ViewChild('numberInput') numberInput!: ElementRef;\n\n countryCode: FormControl = new FormControl('');\n\n public filterCtrl: FormControl<string | null> = new FormControl<string>('');\n\n destroyNotifier$ = new Subject<void>();\n\n private readonly cdn = inject(OnemRvaCDNCountryService);\n public countries$: Observable<OnemrvaMaterialCountry[]> =\n this.cdn.getCountriesByZone('EU');\n public filteredCountries$: Observable<OnemrvaMaterialCountry[]>;\n\n constructor() {\n this.filteredCountries$ = this.filterCtrl.valueChanges.pipe(\n debounceTime(400),\n startWith<string | null>(''), // ✅ Explicitly define type\n combineLatestWith(this.countries$),\n map(([search, countries]: [string | null, OnemrvaMaterialCountry[]]) => {\n // ✅ Explicit Tuple Types\n return countries.filter((country: OnemrvaMaterialCountry) => {\n if (!search || search.trim() === '') return true;\n return country.name?.toLowerCase().includes(search.toLowerCase());\n });\n }),\n );\n }\n\n get number(): FormControl {\n return this.enterpriseNumber as FormControl;\n }\n\n setCode(country: OnemrvaMaterialCountry | null) {\n this.clearValidators();\n if (country) {\n this.countryCode.setValue(country.code);\n this.formatEnterpriseNumber(country);\n }\n }\n\n ngOnInit(): void {\n this.number.valueChanges\n .pipe(\n startWith(this.number.getRawValue()),\n takeUntil(this.destroyNotifier$),\n )\n .subscribe(number => {\n if (number === '0') {\n this.cdn\n .findCountryFromCode(this.defaultCountry)\n .pipe(takeUntil(this.destroyNotifier$))\n .subscribe(country => {\n if (country) {\n number = country.pattern.substring(0, 2) + number;\n this.number.setValue(number, { emitEvent: false });\n this.countryCode.setValue(country.code);\n } else {\n this.countryCode.setValue('');\n }\n });\n } else {\n if (number.length > 1) {\n this.cdn\n .findCountryFromVIESCode(number)\n .pipe(takeUntil(this.destroyNotifier$))\n .subscribe(country => {\n if (country) {\n this.countryCode.setValue(country.code);\n }\n });\n }\n }\n });\n\n this.countryCode.valueChanges\n .pipe(takeUntil(this.destroyNotifier$))\n .subscribe(value => {\n let number = this.number.getRawValue();\n zip(\n this.cdn.findCountryFromVIESCode(number),\n this.cdn.findCountryFromCode(value),\n ).subscribe(([countryFromVies, countryFromCode]) => {\n if (countryFromVies) {\n number = number.replace(\n countryFromVies.pattern.substring(0, 2),\n '',\n );\n }\n if (countryFromCode) {\n this.getCountry.next(countryFromCode);\n number = countryFromCode.pattern.substring(0, 2) + number;\n //this.formatEnterpriseNumber(countryFromCode); /// done twice ?\n }\n this.number.setValue(number, { emitEvent: false });\n this.formatEnterpriseNumber(countryFromCode);\n setTimeout(() => {\n this.numberInput.nativeElement.focus();\n }, 100);\n });\n });\n }\n\n clearValidators() {\n let required = false;\n if (this.number.hasValidator(Validators.required)) {\n required = true;\n }\n this.number.clearValidators();\n if (required) {\n this.number.addValidators(Validators.required);\n }\n }\n\n formatEnterpriseNumber(country: OnemrvaMaterialCountry | undefined) {\n this.clearValidators();\n if (this.countryCode.getRawValue() !== '' && country) {\n this.enterpriseNumber.addValidators(\n Validators.pattern(new RegExp(country.pattern)),\n );\n }\n }\n\n ngOnDestroy() {\n this.destroyNotifier$.next();\n this.destroyNotifier$.complete();\n }\n\n handleClick(e: any) {\n e.stopPropagation();\n }\n\n errors() {\n for (const k in this.number.errors) {\n if (k === 'required') {\n return 'input.vies.required';\n } else {\n return 'input.vies.invalid';\n }\n }\n return 'input.vies.unknown.error';\n }\n}\n","<ng-container>\n <mat-form-field class=\"onemrva-input-enterprise-number\">\n <mat-label>{{ label }}</mat-label>\n <input\n (click)=\"handleClick($event)\"\n type=\"text\"\n matInput\n #numberInput\n placeholder=\"\"\n [formControl]=\"enterpriseNumber\"\n class=\"onemrva-text-enterprise-number\"\n />\n <mat-select\n matTextPrefix\n class=\"onemrva-phone-number-select\"\n [formControl]=\"countryCode\"\n >\n <mat-select-trigger>\n <flag-icon [countryCode]=\"countryCode.getRawValue()\" />\n </mat-select-trigger>\n\n <mat-option>\n <mat-select-search\n [formControl]=\"filterCtrl\"\n [ariaLabel]=\"searchAriaLabel\"\n [noEntriesFoundLabel]=\"noEntriesFoundLabel\"\n [placeholderLabel]=\"placeholderLabel\"\n ></mat-select-search>\n </mat-option>\n\n @for (country of filteredCountries$ | async; track country.code) {\n <mat-option [value]=\"country.code\">\n <flag-icon [countryCode]=\"country.code\" />&nbsp;&nbsp;{{\n country.name\n }}\n </mat-option>\n }\n </mat-select>\n @if (hint !== '') {\n <mat-hint>{{ hint }}</mat-hint>\n }\n @if (number.invalid) {\n <mat-error>{{ errors() | translate }}</mat-error>\n }\n </mat-form-field>\n</ng-container>\n","/*\n * Public API Surface of mat-bank-account-input\n */\n\nexport * from './src/onemrva-mat-input-enterprise-number.component';\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n inject,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n FormBuilder,\n FormControl,\n FormGroup,\n NgControl,\n ReactiveFormsModule,\n ValidationErrors,\n Validators,\n} from '@angular/forms';\nimport {\n MatFormFieldControl,\n MatFormFieldModule,\n} from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\nimport { TranslateModule } from '@ngx-translate/core';\nimport {\n combineLatestWith,\n distinctUntilChanged,\n Observable,\n of,\n pairwise,\n startWith,\n Subject,\n takeUntil,\n} from 'rxjs';\nimport { MatSelectSearchModule } from '@onemrvapublic/design-system/mat-select-search';\nimport {\n IBAN_SUPPORTED_COUNTRIES,\n SEPA_ONLY_SUPPORTED_COUNTRIES,\n} from '@onemrvapublic/design-system/shared';\nimport { map } from 'rxjs/operators';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n countrySpecs,\n extractIBAN,\n friendlyFormatIBAN,\n isValidIBAN,\n} from 'ibantools';\nimport { FocusMonitor } from '@angular/cdk/a11y';\nimport { MatDivider } from '@angular/material/divider';\n\n@Component({\n selector: 'onemrva-mat-input-iban',\n styleUrls: ['onemrva-mat-input-iban.component.scss'],\n templateUrl: 'onemrva-mat-input-iban.component.html',\n standalone: true,\n imports: [\n CommonModule,\n MatInputModule,\n MatFormFieldModule,\n MatSelectModule,\n MatSelectSearchModule,\n ReactiveFormsModule,\n TranslateModule,\n MatDivider,\n ],\n encapsulation: ViewEncapsulation.None,\n providers: [\n { provide: MatFormFieldControl, useExisting: OnemrvaMatInputIbanComponent },\n ],\n})\nexport class OnemrvaMatInputIbanComponent\n implements\n ControlValueAccessor,\n MatFormFieldControl<string>,\n OnInit,\n OnDestroy\n{\n @ViewChild('countryCode') countryCode!: HTMLInputElement;\n @ViewChild('bban') bban!: HTMLInputElement;\n\n static nextId = 0;\n\n @Input() noEntriesFoundLabel = 'Not found';\n @Input() placeholderLabel = 'Search';\n @Input() searchAriaLabel = 'Search';\n @Input() label = 'IBAN';\n @Input() prioritizedCountries: string[] = [];\n @Input() onlySEPA = false;\n\n @Output() getCountry = new EventEmitter<any>();\n\n filteredCountries$: Observable<string[]> = of([]);\n\n public filterCtrl: FormControl<string | null> = new FormControl<string>('');\n\n destroyNotifier$ = new Subject<void>();\n placeholderIban = '';\n\n controlType = 'bank-account-input';\n stateChanges = new Subject<void>();\n focused = false;\n id = `bank-account-input-${OnemrvaMatInputIbanComponent.nextId++}`;\n touched = false;\n\n parts: FormGroup<{\n countryCode: FormControl<string | null>;\n bban: FormControl<string | null>;\n }>;\n\n get bbanField() {\n return this.parts.get('bban') as FormControl;\n }\n get countryCodeField() {\n return this.parts.get('countryCode') as FormControl;\n }\n\n private readonly focusMonitor = inject(FocusMonitor);\n public readonly elementRef = inject(ElementRef<HTMLElement>);\n private readonly cd = inject(ChangeDetectorRef);\n private readonly formBuilder = inject(FormBuilder);\n public readonly ngControl = inject(NgControl, { optional: true });\n\n constructor() {\n if (this.ngControl) {\n this.ngControl.valueAccessor = this; // ✅ Only assign if ngControl exists\n }\n\n this.parts = this.formBuilder.group({\n countryCode: ['', [Validators.maxLength(2)]],\n bban: ['', []],\n });\n }\n\n errors(): ValidationErrors | null {\n return this.parts.errors;\n }\n\n onChange = (_: any) => {\n //\n };\n onTouched = () => {\n //\n };\n\n get errorState(): boolean {\n const control = this.ngControl?.control;\n return !!(\n control &&\n control.invalid &&\n (control.dirty || !control.untouched)\n );\n }\n\n get shouldLabelFloat() {\n return this.focused || !this.empty;\n }\n\n get empty() {\n const {\n value: { countryCode, bban },\n } = this.parts;\n\n return !countryCode && !bban;\n }\n\n @Input()\n get value(): string {\n const {\n value: { countryCode, bban },\n } = this.parts;\n return `${countryCode ?? ''}${bban ?? ''}`;\n }\n\n set value(iban: string | null) {\n const { countryCode } = extractIBAN(iban || '');\n\n const _iban = iban?.replace(countryCode || '', '');\n\n this.parts.setValue({\n countryCode: countryCode || null,\n bban: _iban || null,\n });\n this.stateChanges.next();\n }\n\n @Input()\n readonly = false;\n\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n\n set disabled(value: BooleanInput) {\n this._disabled = coerceBooleanProperty(value);\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n this._disabled ? this.parts.disable() : this.parts.enable();\n this.stateChanges.next();\n }\n\n private _disabled = false;\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n this.stateChanges.next();\n }\n\n @Input()\n get placeholder(): string {\n return this._placeholder;\n }\n\n set placeholder(value: string) {\n this._placeholder = value;\n this.stateChanges.next();\n }\n\n private _placeholder = '';\n\n @Input()\n get required(): boolean {\n return this._required;\n }\n\n set required(value: BooleanInput) {\n this._required = coerceBooleanProperty(value);\n this.stateChanges.next();\n }\n private _required = false;\n\n updateNumber(number: string) {\n let shownValue = number.replace(/[^a-zA-Z0-9]/g, '');\n // BE45063712751789\n const fullNumber = this.countryCodeField.value + number;\n if (isValidIBAN(fullNumber)) {\n const formattedValue = friendlyFormatIBAN(fullNumber);\n if (formattedValue !== null) {\n shownValue = formattedValue.substring(2);\n }\n }\n this.bbanField.patchValue(shownValue, { emitEvent: false });\n }\n\n ngOnInit(): void {\n this.filteredCountries$ = this.getCountryCodes(this.prioritizedCountries);\n\n this.bbanField.valueChanges\n .pipe(\n startWith(this.bbanField.getRawValue()),\n takeUntil(this.destroyNotifier$),\n )\n .subscribe(number => {\n if (number !== null && number !== '') {\n if (this.firstTwoCharsAreLetters(number)) {\n const code = number?.substring(0, 2).toUpperCase();\n const country = IBAN_SUPPORTED_COUNTRIES.find(\n country => country == code,\n );\n this.countryCodeField.setValue(country);\n number = number.substring(2);\n }\n this.updateNumber(number);\n }\n });\n\n this.countryCodeField.valueChanges\n .pipe(\n startWith(''),\n pairwise(),\n distinctUntilChanged(),\n takeUntil(this.destroyNotifier$),\n )\n .subscribe(([_prevIban, countryCode]) => {\n this.placeholderIban = '';\n this.touched = true;\n if (!countryCode || countryCode.length < 2) {\n return;\n }\n\n if (this.firstTwoCharsAreLetters(countryCode)) {\n const r: number | undefined = countrySpecs[countryCode]?.chars;\n if (r !== undefined)\n this.placeholderIban = this.generatePlaceholder(r);\n }\n if (this.bbanField.value !== null) {\n this.updateNumber(this.bbanField.value);\n }\n });\n }\n\n handleClick(e: any) {\n e.stopPropagation();\n }\n\n ngOnDestroy() {\n this.destroyNotifier$.next();\n this.destroyNotifier$.complete();\n }\n\n getCountryCodes(prioritizedCountries: string[]) {\n const countryList = this.onlySEPA\n ? SEPA_ONLY_SUPPORTED_COUNTRIES\n : IBAN_SUPPORTED_COUNTRIES;\n return this.filterCtrl.valueChanges.pipe(\n startWith(''),\n combineLatestWith(of(countryList)),\n map(([filterVal, countryCodes]: any) => {\n return countryCodes\n .filter(\n (code: string) =>\n !filterVal ||\n code.toLowerCase().includes(filterVal.toLowerCase()),\n )\n .map((code: string) =>\n // Prefix prioritized countries with a space to sort them first\n !filterVal && prioritizedCountries.includes(code)\n ? ` ${code}`\n : code,\n )\n .sort() // Default string sort will prioritize prefixed spaces\n .map((code: string) => code.trim()); // Remove the added prefix\n }),\n );\n }\n\n isLastPrioritized(i: number) {\n return !this.filterCtrl.value && i === this.prioritizedCountries.length - 1;\n }\n\n autoFocusNext(\n control: AbstractControl,\n nextElement?: HTMLInputElement,\n ): void {\n if (!control.errors && nextElement) {\n this.focusMonitor.focusVia(nextElement, 'program');\n }\n }\n\n onContainerClick(event: MouseEvent): void {\n if ((event.target as Element).tagName.toLowerCase() != 'input') {\n this.elementRef.nativeElement.querySelector('input')?.focus();\n }\n }\n\n setDescribedByIds(ids: string[]) {\n const controlElement =\n this.elementRef.nativeElement.querySelector('.iban-fields')!;\n controlElement.setAttribute('aria-describedby', ids.join(' '));\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n writeValue(iban: string | null): void {\n this.value = iban;\n }\n\n _handleInput(control: AbstractControl, nextElement?: HTMLInputElement): void {\n this.autoFocusNext(control, nextElement);\n this.onChange(this.value);\n }\n\n firstTwoCharsAreLetters(input: string): boolean {\n const regex = /^[a-zA-Z]{2}/;\n return regex.test(input);\n }\n\n generatePlaceholder(chars: number): string {\n let placeholder = '';\n\n for (let i = 0; i < chars; i++) {\n placeholder += '0';\n }\n const ph = friendlyFormatIBAN(placeholder)?.substring(2);\n if (ph) return ph;\n\n return placeholder.substring(2);\n }\n\n onKeyup(event: KeyboardEvent): void {\n // Clear country when backspace on empty bban\n if (this.bbanField.value === '' && event.key === 'Backspace') {\n this.countryCodeField.setValue(null);\n this.parts.clearValidators();\n }\n }\n}\n","<ng-container [formGroup]=\"parts\">\n <!-- <mat-form-field class=\"onemrva-input-iban\">-->\n <!-- <mat-label>{{ label }}</mat-label>-->\n <div class=\"iban-fields\">\n <div class=\"iban-prefix\">\n <mat-select\n class=\"onemrva-iban-select\"\n formControlName=\"countryCode\"\n [attr.aria-label]=\"'Country' | translate\"\n (selectionChange)=\"_handleInput(parts.controls.countryCode)\"\n #countryCode\n >\n <mat-option>\n <mat-select-search\n [formControl]=\"filterCtrl\"\n [ariaLabel]=\"searchAriaLabel\"\n [noEntriesFoundLabel]=\"noEntriesFoundLabel\"\n [placeholderLabel]=\"placeholderLabel\"\n ></mat-select-search>\n </mat-option>\n\n @for (country of filteredCountries$ | async; track $index) {\n <ng-container>\n <mat-option [value]=\"country\">\n <span>{{ country }}</span>\n </mat-option>\n @if (isLastPrioritized($index)) {\n <mat-divider></mat-divider>\n }\n </ng-container>\n }\n </mat-select>\n </div>\n <input\n [attr.aria-label]=\"label\"\n (click)=\"handleClick($event)\"\n matInput\n [placeholder]=\"placeholderIban\"\n formControlName=\"bban\"\n class=\"onemrva-text-number\"\n [readOnly]=\"readonly\"\n (input)=\"_handleInput(parts.controls.bban)\"\n (keyup)=\"onKeyup($event)\"\n #bban\n />\n </div>\n</ng-container>\n","/*\n * Public API Surface of mat-bank-account-input\n */\n\nexport * from './src/onemrva-mat-input-iban.component';\n","import { Directive, HostListener } from '@angular/core';\n\n@Directive({\n selector: '[phoneNumber]',\n standalone: true,\n})\nexport class PhoneNumberDirective {\n @HostListener('keydown', ['$event']) onKeyDown(event: any) {\n const e = event as KeyboardEvent;\n\n const allowedKey = [\n '0',\n '1',\n '2',\n '3',\n '4',\n '5',\n '6',\n '7',\n '8',\n '9',\n ' ',\n 'Backspace',\n 'Delete',\n 'Tab',\n '+',\n '-',\n 'Enter',\n 'ArrowLeft',\n 'ArrowRight',\n 'ArrowUp',\n 'ArrowDown',\n 'Home',\n 'End',\n ];\n\n if (allowedKey.indexOf(e.key) >= 0) return;\n\n const allowedCtrlShortcuts = ['a', 'c', 'x', 'v'];\n if (e.ctrlKey && allowedCtrlShortcuts.indexOf(e.key) >= 0) return;\n\n e.preventDefault();\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n ElementRef,\n EventEmitter,\n inject,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport {\n AbstractControl,\n FormControl,\n ReactiveFormsModule,\n ValidationErrors,\n ValidatorFn,\n Validators,\n} from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\nimport { TranslateModule } from '@ngx-translate/core';\nimport {\n Observable,\n Subject,\n map,\n startWith,\n debounceTime,\n takeUntil,\n combineLatestWith,\n zip,\n} from 'rxjs';\nimport { MatSelectSearchModule } from '@onemrvapublic/design-system/mat-select-search';\nimport { PhoneNumberDirective } from './phone-number.directive';\nimport parsePhoneNumber from 'libphonenumber-js';\nimport { FlagIconComponent } from '@onemrvapublic/design-system/flag-icon';\nimport {\n OnemRvaCDNCountryService,\n OnemrvaMaterialCountry,\n} from '@onemrvapublic/design-system/shared';\n\n@Component({\n selector: 'onemrva-mat-input-phone',\n styleUrls: ['onemrva-mat-input-phone.component.scss'],\n templateUrl: 'onemrva-mat-input-phone.component.html',\n standalone: true,\n imports: [\n CommonModule,\n MatInputModule,\n MatFormFieldModule,\n MatSelectModule,\n MatSelectSearchModule,\n ReactiveFormsModule,\n TranslateModule,\n PhoneNumberDirective,\n FlagIconComponent,\n ],\n encapsulation: ViewEncapsulation.None,\n})\nexport class OnemrvaMatInputPhoneComponent implements OnInit, OnDestroy {\n @Input()\n readonly = false;\n\n @Input() phoneNumber!: FormControl;\n @Input() label = 'Phone number';\n @Input() noEntriesFoundLabel = 'Not found';\n @Input() placeholder = '+32 475 12 34 56';\n @Input() placeholderLabel = 'Search';\n @Input() defaultPrefix = '+32';\n @Input() searchAriaLabel = '';\n @Input() hint = '';\n @Output() getCountry = new EventEmitter<any>();\n @ViewChild('numberInput') numberInput!: ElementRef;\n\n countryCode: FormControl = new FormControl('');\n\n public filterCtrl: FormControl<string | null> = new FormControl<string>('');\n\n destroyNotifier$ = new Subject<void>();\n\n private readonly cdn = inject(OnemRvaCDNCountryService);\n public countries$: Observable<OnemrvaMaterialCountry[]> =\n this.cdn.getCountries();\n public filteredCountries$: Observable<OnemrvaMaterialCountry[]>;\n\n constructor() {\n this.filteredCountries$ = this.filterCtrl.valueChanges.pipe(\n debounceTime(400),\n startWith<string | null>(''), // Explicitly define type\n combineLatestWith(this.countries$), // Ensure correct tuple structure\n map(([search, countries]: [string | null, OnemrvaMaterialCountry[]]) => {\n // Define expected tuple\n return countries.filter((country: OnemrvaMaterialCountry) => {\n if (!search || search.trim() === '') return true; // Return all when search is empty\n return country.name?.toLowerCase().includes(search.toLowerCase());\n });\n }),\n );\n }\n\n get number(): FormControl {\n return this.phoneNumber as FormControl;\n }\n\n ngOnInit(): void {\n this.number.valueChanges\n .pipe(\n startWith(this.number.getRawValue()),\n takeUntil(this.destroyNotifier$),\n )\n .subscribe(number => {\n if (number !== '') {\n if (number.substring(0, 1) !== '+')\n this.countryCode.setValue('', { emitEvent: false });\n if (number === '0') {\n this.cdn\n .findCountryFromPrefix(this.defaultPrefix)\n .pipe(takeUntil(this.destroyNotifier$))\n .subscribe(country => {\n if (country) {\n //this.getCountry.next(country);\n this.number.setValue(this.defaultPrefix, {\n emitEvent: false,\n });\n this.countryCode.setValue(country.code, { emitEvent: false });\n } else {\n this.countryCode.setValue('');\n }\n this.formatPhoneNumber();\n });\n } else {\n this.cdn\n .findCountryFromPrefix(number)\n .pipe(takeUntil(this.destroyNotifier$))\n .subscribe(country => {\n if (country) {\n //this.getCountry.next(country);\n this.countryCode.setValue(country.code);\n } else {\n this.countryCode.setValue('');\n }\n this.formatPhoneNumber();\n });\n }\n }\n });\n\n this.countryCode.valueChanges\n .pipe(takeUntil(this.destroyNotifier$))\n .subscribe(value => {\n let number = this.number.getRawValue();\n zip(\n this.cdn.findCountryFromPrefix(number),\n this.cdn.findCountryFromCode(value),\n ).subscribe(([countryFromVies, countryFromCode]) => {\n // Perform your action here using countryFromVies and countryFromCode\n if (countryFromVies) {\n number = number.replace(countryFromVies.dial_code, '');\n }\n if (countryFromCode) {\n this.getCountry.next(countryFromCode);\n if (number.substring(0, 1) === '+') {\n number = number.replace('+', '');\n }\n number = countryFromCode.dial_code + number;\n this.number.setValue(number, { emitEvent: false });\n this.formatPhoneNumber();\n }\n setTimeout(() => {\n this.numberInput.nativeElement.focus();\n }, 200);\n });\n });\n }\n\n handleClick(e: any) {\n e.stopPropagation();\n }\n\n private clearValidators() {\n let required = false;\n if (this.number.hasValidator(Validators.required)) {\n required = true;\n }\n this.number.clearValidators();\n if (required) {\n this.number.addValidators(Validators.required);\n }\n }\n\n private formatPhoneNumber() {\n this.clearValidators();\n if (this.countryCode.getRawValue() !== '') {\n this.number.addValidators([\n this.phoneNumberValidator(this.countryCode.getRawValue()),\n ]);\n }\n try {\n const parsedPhone = parsePhoneNumber(this.number.getRawValue());\n const code = parsedPhone?.country;\n if (code) {\n this.countryCode.setValue(code, { emitEvent: false });\n this.clearValidators();\n this.number.addValidators([this.phoneNumberValidator(code)]);\n this.number.setValue(parsedPhone?.format('INTERNATIONAL'), {\n emitEvent: false,\n });\n } else {\n this.number.addValidators([genericValidator('input.phone.invalid')]);\n }\n } catch (e: any) {\n this.number.addValidators([genericValidator(e.message)]);\n }\n }\n\n ngOnDestroy() {\n this.destroyNotifier$.next();\n this.destroyNotifier$.complete();\n }\n\n errors() {\n for (const k in this.number.errors) {\n if (k === 'required') {\n return 'input.phone.required';\n } else {\n return 'input.phone.invalid';\n }\n }\n return 'input.phone.unknown.error';\n }\n\n phoneNumberValidator(code: string): ValidatorFn {\n return (_control: AbstractControl): ValidationErrors | null => {\n let number: string = code + _control.getRawValue();\n\n if (number === '') {\n return null;\n }\n\n try {\n number = number.replace(code, '');\n const parsedNumber = parsePhoneNumber(number);\n\n if (parsedNumber?.isValid()) {\n return null;\n }\n } catch (e: any) {\n console.warn(e.message);\n return { phoneNumber: { value: 'input.phone.invalid' } };\n }\n return { phoneNumber: { value: 'input.phone.invalid' } };\n };\n }\n}\n\nfunction genericValidator(message: string): ValidatorFn {\n return (_control: AbstractControl): ValidationErrors | null => {\n return { phoneNumber: { value: message } };\n };\n}\n","<ng-container>\n <mat-form-field class=\"onemrva-input-phone-number\">\n <mat-label>{{ label }}</mat-label>\n\n <input\n (click)=\"handleClick($event)\"\n type=\"tel\"\n matInput\n phoneNumber\n #numberInput\n [placeholder]=\"placeholder\"\n [formControl]=\"phoneNumber\"\n class=\"onemrva-text-number\"\n [readOnly]=\"readonly\"\n />\n <mat-select\n matTextPrefix\n class=\"onemrva-phone-number-select\"\n [formControl]=\"countryCode\"\n >\n <mat-select-trigger>\n <flag-icon [countryCode]=\"countryCode.getRawValue()\" />\n </mat-select-trigger>\n <mat-option>\n <mat-select-search\n [formControl]=\"filterCtrl\"\n [ariaLabel]=\"searchAriaLabel\"\n [noEntriesFoundLabel]=\"noEntriesFoundLabel\"\n [placeholderLabel]=\"placeholderLabel\"\n ></mat-select-search>\n </mat-option>\n @for (country of filteredCountries$ | async; track country.code) {\n <mat-option [value]=\"country.code\">\n <flag-icon [countryCode]=\"country.code\" />\n &nbsp;&nbsp;&nbsp;\n {{ country.name }}\n &nbsp;&nbsp;&nbsp;\n <span class=\"dialcode\">\n {{ country.dial_code }}\n </span>\n </mat-option>\n }\n </mat-select>\n @if (hint !== '') {\n <mat-hint>{{ hint }}</mat-hint>\n }\n @if (number.invalid) {\n <mat-error>{{ errors() | translate }}</mat-error>\n }\n </mat-form-field>\n</ng-container>\n","/*\n * Public API Surface of mat-bank-account-input\n */\n\nexport * from './src/onemrva-mat-input-phone.component';\nexport * from './src/phone-number.directive';\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n HostBinding,\n Input,\n ViewChild,\n} from '@angular/core';\nimport { OnemrvaMatColor } from '@onemrvapublic/design-system/utils';\n\nlet NEXT_ID = 0;\n\n@Component({\n selector: 'onemrva-mat-message-box',\n templateUrl: 'onemrva-mat-message-box.component.html',\n styleUrl: 'onemrva-mat-message-box.component.scss',\n standalone: true,\n})\nexport class OnemrvaMatMessageBoxComponent implements AfterViewInit {\n @Input()\n public label: false | string = false;\n\n @Input()\n public messageCode = '';\n\n @ViewChild('mbcontent')\n public mbcontent!: ElementRef;\n /**\n * Returns the `aria-label` attribute of the element.\n *\n * @example\n * ```typescript\n * let elementLabel = this.<element>.ariaLabel;\n * ```\n *\n */\n @HostBinding('attr.aria-label')\n public ariaLabel = 'message-box';\n\n @HostBinding('class.show-icon')\n public showIcon = true;\n\n /**\n * Returns the `role` attribute of the element.\n *\n * @example\n * ```typescript\n * let elementRole = this.<element>.role;\n * ```\n */\n @HostBinding('attr.role')\n public role = 'alert';\n\n /**\n * Host `class.onemrva-mat-message-box` binding.\n *\n * @hidden\n * @internal\n */\n @HostBinding('class.onemrva-mat-message-box')\n public cssClass = 'onemrva-mat-message-box';\n\n /**\n * Sets the `id` of the element. If not set, the first component instance will have `id` = `\"onemrva-mat-*-0\"`.\n *\n * @example\n * ```html\n * <onemrva-mat-* id=\"my-first-*\"></onemrva-mat-*>\n * ```\n */\n @HostBinding('attr.id')\n @Input()\n public id = `onemrva-mat-message-box-${NEXT_ID++}`;\n\n /**\n * Sets the `data-cy` of the element. If not set, the first component instance will have `data-cy` = `\"onemrva-mat-*-0\"`.\n *\n * @example\n * ```html\n * <onemrva-mat-* id=\"my-first-*\"></onemrva-mat-*>\n * ```\n */\n @HostBinding('attr.data-cy')\n @Input()\n public dataCy = `onemrva-mat-message-box-${NEXT_ID++}`;\n\n /**\n * @hidden\n * @internal\n */\n private _color: OnemrvaMatColor = OnemrvaMatColor.NONE;\n\n /**\n * Returns the color of the element.\n *\n * @example\n * ```typescript\n * let color = this.<element>.color;\n * ```\n */\n @Input()\n public get color(): OnemrvaMatColor {\n return this._color;\n }\n\n /**\n * Sets the size of the element.\n * By default, the size is `\"small\"`. It can be set to `\"medium\"` or `\"large\"`.\n *\n * @example\n * ```html\n * <onemrva-mat-* size=\"large\"></onemrva-mat-*>\n * ```\n */\n public set color(value: OnemrvaMatColor) {\n switch (value) {\n case OnemrvaMatColor.SUCCESS:\n case OnemrvaMatColor.WARN:\n case OnemrvaMatColor.NONE:\n case OnemrvaMatColor.INFO:\n case OnemrvaMatColor.GRAYSCALE:\n case OnemrvaMatColor.PRIMARY:\n case OnemrvaMatColor.NEUTRAL:\n case OnemrvaMatColor.ERROR:\n this._color = value;\n break;\n default:\n this._color = OnemrvaMatColor.INFO;\n }\n }\n\n /** @hidden @internal */\n @HostBinding('class.mat-error')\n public get _isError(): boolean {\n return this.color === OnemrvaMatColor.ERROR;\n }\n /** @hidden @internal */\n @HostBinding('class.mat-warn')\n public get _isWarn(): boolean {\n return this.color === OnemrvaMatColor.WARN;\n }\n /** @hidden @internal */\n @HostBinding('class.mat-success')\n public get _isSuccess(): boolean {\n return this.color === OnemrvaMatColor.SUCCESS;\n }\n /** @hidden @internal */\n @HostBinding('class.mat-primary')\n public get _isPrimary(): boolean {\n return this.color === OnemrvaMatColor.PRIMARY;\n }\n /** @hidden @internal */\n @HostBinding('class.mat-neutral')\n public get isGrayscale(): boolean {\n return (\n this.color === OnemrvaMatColor.GRAYSCALE ||\n this.color === OnemrvaMatColor.NONE\n );\n }\n /** @hidden @internal */\n @HostBinding('class.mat-info')\n public get _isInfo(): boolean {\n return (\n this.color !== OnemrvaMatColor.ERROR &&\n this.color !== OnemrvaMatColor.WARN &&\n this.color !== OnemrvaMatColor.NONE &&\n this.color !== OnemrvaMatColor.ACCENT &&\n this.color !== OnemrvaMatColor.GRAYSCALE &&\n this.color !== OnemrvaMatColor.PRIMARY &&\n this.color !== OnemrvaMatColor.SUCCESS\n );\n }\n\n ngAfterViewInit(): void {\n if (this.messageCode !== '') {\n console.warn(\n 'messageCode input has been deprecated in message-box component, please review documentation to fix this!',\n );\n this.mbcontent.nativeElement.insertAdjacentHTML(\n 'beforeend',\n this.messageCode,\n );\n }\n }\n}\n","<div #mbcontent>\n <ng-content></ng-content>\n</div>\n","import { NgModule } from '@angular/core';\nimport { OnemrvaMatMessageBoxComponent } from './onemrva-mat-message-box.component';\n\n@NgModule({\n declarations: [],\n imports: [OnemrvaMatMessageBoxComponent],\n exports: [],\n})\nexport class OnemrvaMatMessageBoxModule {}\n","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","import {\n BreakpointObserver,\n Breakpoints,\n BreakpointState,\n} from '@angular/cdk/layout';\nimport { CommonModule } from '@angular/common';\nimport {\n Component,\n EventEmitter,\n HostBinding,\n inject,\n Input,\n OnDestroy,\n Output,\n} from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { Subject, takeUntil } from 'rxjs';\n\n@Component({\n selector: 'onemrva-mat-notification',\n templateUrl: 'onemrva-mat-notification.component.html',\n styleUrl: 'onemrva-mat-notification.component.scss',\n standalone: true,\n imports: [CommonModule, TranslateModule, MatIconModule],\n})\nexport class OnemrvaMatNotificationComponent implements OnDestroy {\n @Input() message = '';\n @Input() closable = true;\n\n _isOpen = true;\n\n @Output()\n notificationClose = new EventEmitter<void>();\n\n /** @hidden @internal */\n @HostBinding('class.collapse-notification')\n public get _closed(): boolean {\n return !this._isOpen;\n }\n\n @HostBinding('attr.id')\n @Input()\n public id = `onemrva-mat-notification`;\n\n @HostBinding('attr.data-cy')\n @Input()\n dataCy = 'onemrva-mat-notification';\n\n /**\n * Returns the `aria-label` attribute of the component.\n *\n * @example\n * ```typescript\n * let ariaLabel = this.avatar.ariaLabel;\n * ```\n *\n */\n @HostBinding('attr.aria-live')\n public ariaLive = 'assertive';\n\n /**\n * Returns the `role` attribute of the component.\n *\n * @example\n * ```typescript\n * let avatarRole = this.avatar.role;\n * ```\n */\n @HostBinding('attr.role')\n public role = 'alert';\n\n private destroyNotifier$ = new Subject<void>();\n isSmall = false;\n public breakpointObserver = inject(BreakpointObserver);\n\n constructor() {\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.isSmall = false;\n }\n });\n }\n\n ngOnDestroy(): void {\n this.destroyNotifier$.next();\n this.destroyNotifier$.complete();\n }\n\n closeNotification() {\n this._isOpen = false;\n this.notificationClose.emit();\n }\n}\n","<div class=\"onemrva-mat-notification container\">\n <div class=\"onemrva-mat-notification-content show-icon\">\n @if (message !== '') {\n {{ message | translate }}\n }\n <ng-content></ng-content>\n @if (closable || isSmall) {\n <mat-icon\n class=\"close-notification float-right clickable mr\"\n (click)=\"closeNotification()\"\n >\n close\n </mat-icon>\n }\n </div>\n</div>\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n effect,\n HostBinding,\n inject,\n Input,\n OnInit,\n QueryList,\n ViewChild,\n} from '@angular/core';\nimport { RouterLink, RouterLinkActive } from '@angular/router';\nimport { MatIcon } from '@angular/material/icon';\nimport { MatExpansionPanel } from '@angular/material/expansion';\nimport { NgClass } from '@angular/common';\nimport { NavItem } from './onemrva-nav-item';\nimport { TranslatePipe } from '@ngx-translate/core';\n\n@Component({\n selector: 'onemrva-mat-navigation-item',\n templateUrl: 'onemrva-mat-navigation-item.component.html',\n styleUrl: 'onemrva-mat-navigation-item.component.scss',\n imports: [\n MatIcon,\n RouterLinkActive,\n RouterLink,\n MatExpansionPanel,\n NgClass,\n TranslatePipe,\n ],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class OnemrvaMatNavigationItemComponent implements AfterViewInit {\n @Input()\n public routerLink: string | undefined;\n @Input()\n public routerLinkActiveOptions?: any;\n @Input()\n public dataCy?: string;\n @Input()\n public baseRouteForActiveMenu?: string;\n @Input()\n public label = '';\n @Input()\n public icon?: string;\n @Input() level = 0;\n @Input() highlighted: boolean | undefined;\n @Input() opened: boolean | undefined;\n @Input() children: NavItem[] | undefined;\n @Input() customNgClass: any;\n @Input() translate = true;\n\n @ViewChild(MatExpansionPanel) matExpansionPanel?: MatExpansionPanel;\n\n isExpanded = false;\n\n @HostBinding('class.highlighted')\n get isHighlighted() {\n return this.highlighted;\n }\n @HostBinding('class.highlighted2')\n get isHighlighted2() {\n return !this.highlighted && this.isExpanded;\n }\n\n get indentArray(): number[] {\n return Array(this.level).fill(0);\n }\n\n cd = inject(ChangeDetectorRef);\n\n ngAfterViewInit(): void {\n this.matExpansionPanel?.afterCollapse.subscribe(() => {\n this.highlighted = false;\n this.isExpanded = false;\n this.cd.markForCheck();\n });\n this.matExpansionPanel?.afterExpand.subscribe(() => {\n this.isExpanded = true;\n this.cd.markForCheck();\n });\n }\n}\n","@if (routerLink) {\n <button\n [routerLink]=\"routerLink\"\n [attr.data-cy]=\"dataCy\"\n [routerLinkActiveOptions]=\"{ exact: true }\"\n routerLinkActive=\"active\"\n class=\"mobile-menu-item\"\n >\n @for (indent of indentArray; track $index) {\n <span class=\"indent-spacer\"></span>\n }\n @if (icon) {\n <mat-icon>{{ icon }}</mat-icon>\n }\n @if (translate && label.trim() !== '') {\n <span [innerHTML]=\"label | translate\"></span>\n } @else {\n <span [innerHTML]=\"label\"></span>\n }\n </button>\n} @else {\n <button\n [ngClass]=\"{ 'mobile-menu-item': true, highlighted: highlighted === true }\"\n [attr.data-cy]=\"dataCy\"\n (click)=\"subMenu.toggle()\"\n >\n @for (indent of indentArray; track $index) {\n <span class=\"indent-spacer\"></span>\n }\n\n @if (icon) {\n <mat-icon>{{ icon }}</mat-icon>\n }\n\n @if (translate && label.trim() !== '') {\n <span [innerHTML]=\"label | translate\"></span>\n } @else {\n <span [innerHTML]=\"label\"></span>\n }\n\n <mat-icon [ngClass]=\"{ end: true, opened: subMenu.expanded }\"\n >arrow_drop_down</mat-icon\n >\n </button>\n <mat-expansion-panel #subMenu [expanded]=\"opened\">\n <ng-content></ng-content>\n </mat-expansion-panel>\n}\n","import { Component, input } from '@angular/core';\nimport { OnemrvaMatNavigationItemComponent } from '../mat-navigation-item/onemrva-mat-navigation-item.component';\nimport { NavItem } from '../mat-navigation-item/onemrva-nav-item';\n\n@Component({\n selector: 'onemrva-mat-navigation-tree',\n templateUrl: 'onemrva-mat-navigation-tree.component.html',\n styleUrl: 'onemrva-mat-navigation-tree.component.scss',\n imports: [OnemrvaMatNavigationItemComponent],\n standalone: true,\n})\nexport class OnemrvaMatNavigationTreeComponent {\n items = input<NavItem[]>([]);\n level = input<number>(0);\n translate = input<boolean>(true);\n}\n","@for (item of items(); track item) {\n <onemrva-mat-navigation-item\n [label]=\"item.label\"\n [icon]=\"item.icon\"\n [routerLink]=\"item.routerLink\"\n [level]=\"level()\"\n [dataCy]=\"item.dataCy\"\n [highlighted]=\"item.highlighted\"\n [children]=\"item.children\"\n [opened]=\"item.opened\"\n [translate]=\"translate()\"\n >\n @if (item.children?.length) {\n <onemrva-mat-navigation-tree\n [items]=\"item.children ?? []\"\n [level]=\"level() + 1\"\n ></onemrva-mat-navigation-tree>\n }\n </onemrva-mat-navigation-item>\n}\n","import { Component, inject, input, ViewEncapsulation } from '@angular/core';\nimport { NavItem } from './mat-navigation-item/onemrva-nav-item';\nimport { NavigationEnd, Router } from '@angular/router';\nimport { filter } from 'rxjs/operators';\nimport { OnemrvaMatNavigationTreeComponent } from './mat-navigation-tree/onemrva-mat-navigation-tree.component';\n\n@Component({\n selector: 'onemrva-mat-navigation',\n templateUrl: 'onemrva-mat-navigation.component.html',\n styleUrl: 'onemrva-mat-navigation.component.scss',\n imports: [OnemrvaMatNavigationTreeComponent],\n encapsulation: ViewEncapsulation.None,\n standalone: true,\n})\nexport class OnemrvaMatNavigationComponent {\n items = input<NavItem[]>([]);\n level = input<number>(0);\n translate = input<boolean>(true);\n router: Router = inject(Router);\n\n constructor() {\n this.router.events\n .pipe(filter(event => event instanceof NavigationEnd))\n .subscribe((event: NavigationEnd) => {\n this.updateNavigationState(this.items(), event.urlAfterRedirects);\n });\n }\n\n private updateNavigationState(items: NavItem[], url: string): void {\n // First, reset all states\n this.resetNavigationStates(items);\n\n // Find the active item and build the path to it\n const activePath = this.findActiveItemPath(items, url, []);\n\n if (activePath.length > 0) {\n // Set the highest parent (first item in path - level 0) as highlighted\n if (activePath.length > 0) {\n activePath[0].highlighted = true;\n }\n\n // Set opened to true for all parents to expand the path to the active item\n for (let i = 0; i < activePath.length - 1; i++) {\n activePath[i].opened = true;\n }\n }\n }\n\n private resetNavigationStates(items: NavItem[]): void {\n for (const item of items) {\n item.highlighted = false;\n item.opened = false;\n if (item.children) {\n this.resetNavigationStates(item.children);\n }\n }\n }\n\n private findActiveItemPath(\n items: NavItem[],\n url: string,\n currentPath: NavItem[],\n ): NavItem[] {\n for (const item of items) {\n const newPath = [...currentPath, item];\n\n if (item.routerLink && item.routerLink === url) {\n return newPath;\n }\n\n if (item.children) {\n const childPath = this.findActiveItemPath(item.children, url, newPath);\n if (childPath.length > 0) {\n return childPath;\n }\n }\n }\n\n return [];\n }\n}\n","<onemrva-mat-navigation-tree\n [items]=\"items()\"\n [level]=\"level() + 1\"\n></onemrva-mat-navigation-tree>\n","/*\n * Public API Surface of mat-sticker\n */\n\nexport * from './src/onemrva-mat-navigation.component';\nexport * from './src/mat-navigation-item/onemrva-nav-item';\nexport * from './src/mat-navigation-item/onemrva-mat-navigation-item.component';\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n OnInit,\n OnDestroy,\n inject,\n} from '@angular/core';\nimport { BehaviorSubject, Observable, ReplaySubject } from 'rxjs';\nimport { PageEvent } from '@angular/material/paginator';\nimport { MatFormField } from '@angular/material/form-field';\nimport { MatOption, MatSelect } from '@angular/material/select';\nimport { MatDivider } from '@angular/material/divider';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { NgClass } from '@angular/common';\n\n@Component({\n selector: 'onemrva-mat-paginator',\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './onemrva-mat-paginator.component.html',\n styleUrl: './onemrva-mat-paginator.component.scss',\n imports: [\n MatFormField,\n MatSelect,\n MatOption,\n MatDivider,\n TranslatePipe,\n NgClass,\n ],\n standalone: true,\n})\nexport class OnemrvaMatPaginatorComponent implements OnInit, OnDestroy {\n @Input() type: 'default' | 'complex' = 'default';\n @Input() pageSizeSelector = true; // Specs: DS-74\n @Input() pageSizeOptions: number[] = [10, 20, 50, 100]; // Specs: DS-74\n @Input() pageSizeDefaultOption = 10;\n @Input() recordKey = 'recordsPerPage'; // this record key will be inside key \"paginator\". I.e the default key value that will be generated out of this input is paginator.recordsPerPage\n\n private _isInitialized = false;\n private _initializedStream = new ReplaySubject<void>(1);\n /** Emits when the paginator is initialized. */\n initialized: Observable<void> = this._initializedStream;\n\n maxRecordNumber = 0;\n private _pageIndex = 0;\n private _prevIndex = 0;\n private _length = 0;\n private _pageSize: number = this.pageSizeDefaultOption;\n private _totalNumberOfPages = 0;\n\n public get pageIndex(): number {\n return this._pageIndex;\n }\n\n @Input()\n public set pageIndex(index: number) {\n if (!Number.isInteger(index)) throw new Error('Index is not integer');\n if (index < 0) throw new Error('Negative index');\n if (index > this._totalNumberOfPages) throw new Error('Index out of bound');\n if (this._pageIndex !== index) {\n this._pageIndex = Math.min(index, this._totalNumberOfPages - 1);\n this._emitPageEvent(this._pageIndex);\n this.refreshState();\n }\n }\n\n public resetPageIndex() {\n this._pageIndex = 0;\n }\n\n public get length(): number {\n return this._length;\n }\n\n @Input()\n public set length(length: number) {\n if (this._length !== length) {\n this._length = length;\n this.refreshState();\n }\n }\n\n public get pageSize(): number {\n return this._pageSize;\n }\n\n @Input()\n public set pageSize(pageSize: number) {\n if (!Number.isInteger(pageSize)) throw new Error('pageSize is not integer');\n if (pageSize < 0) throw new Error('pageSize is negative');\n if (this._pageSize !== pageSize) {\n this._pageSize = pageSize;\n this.pageSize$.next(this._pageSize);\n this._pageIndex = 0;\n this._emitPageEvent(this._pageIndex);\n this.refreshState();\n }\n }\n\n get totalNumberOfPages(): number {\n return this._totalNumberOfPages;\n }\n\n @Input() previousKey = 'Previous';\n @Input() nextKey = 'Next';\n\n /** Deprecated **/\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n @Output() onRequestPage = new EventEmitter<number>(); // Pages are displayed starting from 1 but the index starts at 0\n\n /** Event emitted when the paginator changes the page size or page index. */\n @Output() readonly page: EventEmitter<PageEvent> =\n new EventEmitter<PageEvent>();\n\n pageIndex$ = new BehaviorSubject<number>(this._pageIndex);\n pageSize$ = new BehaviorSubject<number>(this.pageSizeDefaultOption);\n\n pages: number[] = [];\n numberOfReachablePages = 5;\n\n private readonly cd = inject(ChangeDetectorRef);\n\n refreshState() {\n this.maxRecordNumber = Math.min(\n this._pageIndex * this._pageSize + this._pageSize,\n this._length,\n );\n\n if (this._pageIndex < 0) throw Error('Negative index');\n this._totalNumberOfPages = Math.ceil(this.length / this.pageSize);\n if (\n this._totalNumberOfPages > 0 &&\n this._pageIndex > this._totalNumberOfPages\n )\n throw Error('Index out of bound');\n if (!Number.isInteger(this._pageIndex)) throw Error('Index is not integer');\n\n if (this._prevIndex != this.pageIndex) {\n this.pageIndex$.next(this._pageIndex);\n this._prevIndex = this.pageIndex;\n }\n\n if (this.type === 'complex') this.refreshComplex();\n else this.refreshDefault();\n\n this.cd.detectChanges();\n }\n\n refreshDefault() {\n if (this._totalNumberOfPages <= this.numberOfReachablePages + 1) {\n // Case 1: not enough pages to display the first \"...\"\n this.pages = [...Array(this._totalNumberOfPages).keys()];\n } else if (this.pageIndex <= this.numberOfReachablePages - 1) {\n // Case 2: page index in first 5 pages\n this.pages = [...Array(this.numberOfReachablePages).keys()];\n } else {\n let firstPageIndex =\n Math.floor(this._pageIndex / this.numberOfReachablePages) *\n this.numberOfReachablePages;\n\n if (\n this._totalNumberOfPages - firstPageIndex <=\n this.numberOfReachablePages + 1\n ) {\n if (this._totalNumberOfPages - firstPageIndex <= 1) {\n // Case 3: in the last block containing only 1 page\n firstPageIndex = firstPageIndex - this.numberOfReachablePages;\n this.pages = [\n ...Array(this._totalNumberOfPages - firstPageIndex).keys(),\n ].map(x => x + firstPageIndex);\n } else {\n // Case 4: one block before the last with last block containing only 1 page\n this.pages = [\n ...Array(this._totalNumberOfPages - firstPageIndex).keys(),\n ].map(x => x + firstPageIndex);\n }\n } else if (this._totalNumberOfPages - 1 - firstPageIndex <= 2) {\n // Case 5: in the last block containing 2 pages or more\n firstPageIndex = firstPageIndex - this.numberOfReachablePages;\n this.pages = [\n ...Array(this._totalNumberOfPages - firstPageIndex).keys(),\n ].map(x => x + firstPageIndex);\n } else {\n // Case 6: same as case 4 but the next block contains at least 2 pages\n this.pages = [...Array(this.numberOfReachablePages).keys()].map(\n x => x + firstPageIndex,\n );\n }\n }\n }\n\n refreshComplex() {\n if (this._totalNumberOfPages <= this.numberOfReachablePages + 2) {\n // Case 1: not enough pages to display the first \"...\"\n this.pages = [...Array(this._totalNumberOfPages).keys()];\n } else if (this.pageIndex <= this.numberOfReachablePages - 1) {\n // Case 2: page index in first 5 pages\n this.pages = [...Array(this.numberOfReachablePages).keys()];\n } else {\n let firstPageIndex =\n Math.floor(this._pageIndex / this.numberOfReachablePages) *\n this.numberOfReachablePages;\n\n if (\n this._totalNumberOfPages - firstPageIndex <=\n this.numberOfReachablePages + 2\n ) {\n if (this._totalNumberOfPages - firstPageIndex <= 2) {\n // Case 3: in the last block containing max 2 pages\n firstPageIndex = firstPageIndex - this.numberOfReachablePages;\n this.pages = [\n ...Array(this._totalNumberOfPages - firstPageIndex).keys(),\n ].map(x => x + firstPageIndex);\n } else {\n // Case 4: one block before the last with last block containing max 2 pages\n this.pages = [\n ...Array(this._totalNumberOfPages - firstPageIndex).keys(),\n ].map(x => x + firstPageIndex);\n }\n } else if (this._totalNumberOfPages - 1 - firstPageIndex <= 3) {\n // Case 5: in the last block containing 2 pages or more\n firstPageIndex = firstPageIndex - this.numberOfReachablePages;\n this.pages = [\n ...Array(this._totalNumberOfPages - firstPageIndex).keys(),\n ].map(x => x + firstPageIndex);\n } else {\n // Case 6: same as case 4 but the next block contains at least 2 pages\n this.pages = [...Array(this.numberOfReachablePages).keys()].map(\n x => x + firstPageIndex,\n );\n }\n }\n }\n\n /** Emits an event notifying that a change of the paginator's properties has been triggered. */\n private _emitPageEvent(previousPageIndex: number) {\n this.page.emit({\n previousPageIndex,\n pageIndex: this._pageIndex,\n pageSize: this._pageSize,\n length: this._length,\n });\n\n // Deprecated\n this.onRequestPage.emit(this._pageIndex);\n }\n\n ngOnInit() {\n this._isInitialized = true;\n this._initializedStream.next();\n }\n\n ngOnDestroy() {\n this._initializedStream.complete();\n }\n}\n","<div class=\"paginator-container\">\n @if (pageSizeSelector) {\n <div class=\"paginator-size-selector-container\">\n @if (pageSizeOptions.length > 1) {\n <mat-form-field\n appearance=\"outline\"\n class=\"paginator-size-selector\"\n data-cy=\"onemrva-mat-paginator-page-size-selector\"\n >\n <mat-select [value]=\"pageSize\">\n @for (size of pageSizeOptions; track size) {\n <mat-option\n [value]=\"size\"\n (click)=\"pageSize = size\"\n [attr.data-cy]=\"\n 'onemrva-mat-paginator-page-size-option-' + size\n \"\n >{{ size }}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n <div>\n @if (pageSizeOptions.length > 1) {\n <span style=\"display: inline-block\">{{\n 'paginator.' + recordKey | translate\n }}</span>\n <mat-divider vertical></mat-divider>\n }\n {{ pageIndex * pageSize + 1 }} - {{ maxRecordNumber }}\n <span>{{ 'paginator.outOf' | translate }}</span>\n {{ length }}\n </div>\n </div>\n }\n\n @if (pages.length > 1) {\n <div class=\"onemrva-mat-paginator\" data-cy=\"onemrva-mat-paginator\">\n <button\n type=\"button\"\n class=\"onemrva-mat-paginator-btn onemrva-mat-paginator-btn-previous\"\n data-cy=\"onemrva-mat-paginator-btn-previous\"\n [disabled]=\"pageIndex === 0\"\n (click)=\"pageIndex = pageIndex - 1\"\n >\n {{ 'paginator.' + previousKey | translate }}\n </button>\n\n @if (pages[0] > 0 && type === 'complex') {\n <button\n type=\"button\"\n class=\"onemrva-mat-paginator-btn onemrva-mat-paginator-first\"\n data-cy=\"onemrva-mat-paginator-first\"\n (click)=\"pageIndex = 0\"\n >\n 1\n </button>\n }\n @if (pages[0] > 0) {\n <button\n type=\"button\"\n class=\"onemrva-mat-paginator-btn onemrva-mat-paginator-btn-too-many\"\n data-cy=\"onemrva-mat-paginator-btn-too-many-before\"\n (click)=\"pageIndex = pageIndex - numberOfReachablePages\"\n >\n ...\n </button>\n }\n @for (page of pages; track page) {\n <button\n type=\"button\"\n class=\"onemrva-mat-paginator-btn onemrva-mat-paginator-btn-page\"\n [ngClass]=\"{\n 'onemrva-mat-paginator-current-index': pageIndex === page,\n }\"\n data-cy=\"onemrva-mat-paginator-btn-page\"\n (click)=\"pageIndex = page\"\n >\n {{ page + 1 }}\n </button>\n }\n @if (pages[pages.length - 1] < totalNumberOfPages - 1) {\n <button\n type=\"button\"\n class=\"onemrva-mat-paginator-btn onemrva-mat-paginator-btn-too-many\"\n data-cy=\"onemrva-mat-paginator-btn-too-many-after\"\n (click)=\"pageIndex = pageIndex + numberOfReachablePages\"\n >\n ...\n </button>\n }\n @if (\n pages[pages.length - 1] < totalNumberOfPages - 1 && type === 'complex'\n ) {\n <button\n type=\"button\"\n class=\"onemrva-mat-paginator-btn onemrva-mat-paginator-btn-last\"\n data-cy=\"onemrva-mat-paginator-btn-last\"\n (click)=\"pageIndex = totalNumberOfPages - 1\"\n >\n {{ totalNumberOfPages }}\n </button>\n }\n <button\n type=\"button\"\n class=\"onemrva-mat-paginator-btn onemrva-mat-paginator-btn-next\"\n data-cy=\"onemrva-mat-paginator-btn-next\"\n [disabled]=\"pageIndex >= totalNumberOfPages - 1\"\n (click)=\"pageIndex = pageIndex + 1\"\n >\n {{ 'paginator.' + nextKey | translate }}\n </button>\n </div>\n }\n</div>\n","import { NgModule } from '@angular/core';\nimport { OnemrvaMatPaginatorComponent } from './onemrva-mat-paginator.component';\n@NgModule({\n declarations: [],\n imports: [OnemrvaMatPaginatorComponent],\n exports: [],\n})\nexport class OnemrvaMatPaginatorModule {}\n","/*\n * Public API Surface of mat-paginator\n */\n\nexport * from './src/onemrva-mat-paginator.module';\nexport * from './src/onemrva-mat-paginator.component';\n","import {\n Component,\n Input,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { NgClass } from '@angular/common';\n\n@Component({\n selector: 'onemrva-mat-panel-title-action',\n templateUrl: './onemrva-mat-panel-title-action.html',\n standalone: true,\n encapsulation: ViewEncapsulation.None,\n imports: [NgClass],\n})\nexport class OnemrvaMatPanelTitleActionComponent {\n @Input() customNgClass: any;\n\n @ViewChild(TemplateRef) template?: TemplateRef<any>;\n}\n","<ng-template>\n <div\n class=\"onemrva-mat-panel-title-action float-right\"\n [ngClass]=\"customNgClass\"\n >\n <ng-content></ng-content>\n </div>\n</ng-template>\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n inject,\n Input,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { OnemrvaMatPanelTitleActionComponent } from './onemrva-mat-panel-title-action.component';\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\n\n@Component({\n selector: 'onemrva-mat-panel-title',\n templateUrl: './onemrva-mat-panel-title.html',\n styleUrl: './onemrva-mat-panel-title.scss',\n standalone: true,\n encapsulation: ViewEncapsulation.None,\n imports: [NgClass, NgTemplateOutlet],\n})\nexport class OnemrvaMatPanelTitleComponent implements AfterViewInit {\n @Input() customNgClass: any;\n\n @ViewChild(TemplateRef) template?: TemplateRef<any>;\n\n @ContentChild(OnemrvaMatPanelTitleActionComponent)\n content?: OnemrvaMatPanelTitleActionComponent;\n\n toggleButtonReference: ElementRef | null = null;\n\n private readonly cd = inject(ChangeDetectorRef);\n\n ngAfterViewInit() {\n this.cd.detectChanges();\n }\n}\n","<ng-template>\n <div class=\"onemrva-mat-panel-title\" [ngClass]=\"customNgClass\">\n <ng-content></ng-content>\n @if (content?.template; as tpl) {\n <ng-container *ngTemplateOutlet=\"tpl\"></ng-container>\n }\n </div>\n</ng-template>\n","import { Component, Input, TemplateRef, ViewChild } from '@angular/core';\nimport { NgClass } from '@angular/common';\n\n@Component({\n selector: 'onemrva-mat-panel-content',\n templateUrl: './onemrva-mat-panel-content.html',\n styleUrl: './onemrva-mat-panel-content.scss',\n standalone: true,\n imports: [NgClass],\n})\nexport class OnemrvaMatPanelContentComponent {\n @Input() customNgClass: any;\n\n @ViewChild(TemplateRef) template?: TemplateRef<any>;\n}\n","<ng-template>\n <div class=\"onemrva-mat-panel-content\" [ngClass]=\"customNgClass\">\n <ng-content></ng-content>\n </div>\n</ng-template>\n","import { Component, Input, TemplateRef, ViewChild } from '@angular/core';\nimport { NgClass } from '@angular/common';\n\n@Component({\n selector: 'onemrva-mat-panel-icon',\n templateUrl: './onemrva-mat-panel-icon.html',\n styleUrl: './onemrva-mat-panel-icon.scss',\n standalone: true,\n imports: [NgClass],\n})\nexport class OnemrvaMatPanelIconComponent {\n @Input() customNgClass: any;\n\n @ViewChild(TemplateRef) template?: TemplateRef<any>;\n}\n","<ng-template>\n <div class=\"onemrva-mat-panel-icon\" [ngClass]=\"customNgClass\">\n <ng-content></ng-content>\n </div>\n</ng-template>\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n HostBinding,\n inject,\n input,\n Input,\n output,\n} from '@angular/core';\nimport { OnemrvaMatPanelTitleComponent } from './onemrva-mat-panel-title.component';\nimport { OnemrvaMatPanelContentComponent } from './onemrva-mat-panel-content.component';\nimport { OnemrvaMatPanelIconComponent } from './onemrva-mat-panel-icon.component';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n MatExpansionPanel,\n MatExpansionPanelHeader,\n} from '@angular/material/expansion';\n// import { MatExpansionPanelHeaderArrowDivider } from './mat-expansion-panel-header-arrow-divider';\n\nlet NEXT_ID = 0;\n\n@Component({\n selector: 'onemrva-mat-panel',\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './onemrva-mat-panel.component.html',\n styleUrl: './onemrva-mat-panel.component.scss',\n imports: [\n NgTemplateOutlet,\n MatExpansionPanel,\n MatExpansionPanelHeader,\n // MatExpansionPanelHeaderArrowDivider,\n ],\n standalone: true,\n})\nexport class OnemrvaMatPanelComponent implements AfterViewInit {\n @HostBinding('attr.id')\n @Input()\n public id = `onemrva-mat-panel-${NEXT_ID++}`;\n\n @HostBinding('attr.data-cy')\n @Input()\n data_cy = 'onemrva-mat-panel';\n\n @HostBinding('class.mat-disabled')\n @Input()\n disabled = false;\n\n @ContentChild(OnemrvaMatPanelComponent)\n panel?: OnemrvaMatPanelComponent;\n\n @ContentChild(OnemrvaMatPanelTitleComponent)\n title?: OnemrvaMatPanelTitleComponent;\n\n @ContentChild(OnemrvaMatPanelContentComponent)\n content!: OnemrvaMatPanelContentComponent;\n\n @HostBinding('class.has-icon')\n @ContentChild(OnemrvaMatPanelIconComponent)\n icon?: OnemrvaMatPanelIconComponent;\n\n @HostBinding('class.is-expandable')\n @Input()\n expandable = false;\n\n expanded = input<boolean>(true);\n\n expandedChange = output<boolean>();\n\n error?: string;\n\n private readonly cd = inject(ChangeDetectorRef);\n\n onChangeState(val: boolean) {\n this.expandedChange.emit(val);\n }\n\n ngAfterViewInit() {\n this.cd.detectChanges();\n }\n}\n","@if (icon?.template; as tpl) {\n <ng-container *ngTemplateOutlet=\"tpl\"></ng-container>\n}\n\n<div class=\"right-content\">\n @if (expandable) {\n @if (title?.template; as titleTpl) {\n <mat-expansion-panel\n [expanded]=\"expanded()\"\n (expandedChange)=\"onChangeState($event)\"\n >\n <mat-expansion-panel-header>\n <ng-container *ngTemplateOutlet=\"titleTpl\"></ng-container>\n </mat-expansion-panel-header>\n <ng-container *ngTemplateOutlet=\"content.template\"></ng-container>\n </mat-expansion-panel>\n }\n } @else {\n @if (title?.template; as tpl) {\n <ng-container *ngTemplateOutlet=\"tpl\"></ng-container>\n }\n <ng-container *ngTemplateOutlet=\"content.template\"></ng-container>\n }\n</div>\n","import { NgModule } from '@angular/core';\nimport { OnemrvaMatPanelComponent } from './onemrva-mat-panel.component';\nimport { OnemrvaMatPanelTitleComponent } from './onemrva-mat-panel-title.component';\nimport { OnemrvaMatPanelContentComponent } from './onemrva-mat-panel-content.component';\nimport { OnemrvaMatPanelTitleActionComponent } from './onemrva-mat-panel-title-action.component';\nimport { OnemrvaMatPanelIconComponent } from './onemrva-mat-panel-icon.component';\n\n@NgModule({\n declarations: [],\n imports: [\n OnemrvaMatPanelComponent,\n OnemrvaMatPanelTitleComponent,\n OnemrvaMatPanelContentComponent,\n OnemrvaMatPanelTitleActionComponent,\n OnemrvaMatPanelIconComponent,\n ],\n exports: [\n OnemrvaMatPanelComponent,\n OnemrvaMatPanelTitleComponent,\n OnemrvaMatPanelContentComponent,\n OnemrvaMatPanelTitleActionComponent,\n OnemrvaMatPanelIconComponent,\n ],\n})\nexport class OnemrvaMatPanelModule {}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'mat-expansion-panel-header-arrow-divider',\n imports: [],\n standalone: true,\n templateUrl: './mat-expansion-panel-header-arrow-divider.html',\n styleUrl: './mat-expansion-panel-header-arrow-divider.scss',\n})\nexport class MatExpansionPanelHeaderArrowDivider {}\n","<span></span>\n","import { Component, Input, TemplateRef, ViewChild } from '@angular/core';\n\nlet index = 0;\n\n@Component({\n selector: 'onemrva-mat-pop-over-trigger',\n template: '<ng-template><ng-content></ng-content></ng-template>',\n standalone: true,\n})\nexport class OnemrvaMatPopOverTriggerComponent {\n @Input() dataCy = `onemrvaMatPopOverTrigger_${++index}`;\n\n @ViewChild(TemplateRef) template?: TemplateRef<any>;\n}\n","import { Component, Input, TemplateRef, ViewChild } from '@angular/core';\n\nlet index = 0;\n\n@Component({\n selector: 'onemrva-mat-pop-over-content',\n template: '<ng-template><ng-content></ng-content></ng-template>',\n standalone: true,\n})\nexport class OnemrvaMatPopOverContentComponent {\n @Input() dataCy = `onemrvaMatPopOverContent_${++index}`;\n\n @ViewChild(TemplateRef) template?: TemplateRef<any>;\n}\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ContentChild,\n inject,\n Input,\n} from '@angular/core';\nimport { OnemrvaMatPopOverTriggerComponent } from './onemrva-mat-pop-over-trigger.component';\nimport { OnemrvaMatPopOverContentComponent } from './onemrva-mat-pop-over-content.component';\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\nlet NEXT_ID = 0;\n@Component({\n selector: 'onemrva-mat-pop-over',\n styleUrls: ['./onemrva-mat-pop-over.component.scss'],\n templateUrl: 'onemrva-mat-pop-over.component.html',\n standalone: true,\n imports: [NgTemplateOutlet, NgClass],\n})\nexport class OnemrvaMatPopOverComponent implements AfterViewInit {\n isOpen = false;\n\n @Input() position: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right' =\n 'bottom-right';\n\n @Input() dataCyTrigger = 'onemrva-po-trigger';\n @Input() dataCyPo = 'onemrva-po';\n\n @Input() poId: string = this.dataCyPo + '-' + NEXT_ID++; // HTML id for the trigger\n\n @ContentChild(OnemrvaMatPopOverTriggerComponent)\n trigger?: OnemrvaMatPopOverTriggerComponent;\n\n @ContentChild(OnemrvaMatPopOverContentComponent)\n content?: OnemrvaMatPopOverContentComponent;\n\n private readonly cd = inject(ChangeDetectorRef);\n\n ngAfterViewInit(): void {\n this.cd.detectChanges();\n }\n\n togglePopOver() {\n this.isOpen = !this.isOpen;\n }\n\n closePopOver() {\n this.isOpen = false;\n }\n}\n","<div class=\"onemrva-pop-over\">\n @if (isOpen) {\n <div class=\"onemrva-overlay\" tabindex=\"1\" (click)=\"closePopOver()\"></div>\n }\n <a\n tabindex=\"1\"\n class=\"onemrva-pop-over-trigger\"\n (click)=\"togglePopOver()\"\n [attr.data-cy]=\"dataCyTrigger\"\n role=\"button\"\n [attr.aria-expanded]=\"isOpen\"\n [id]=\"poId\"\n >\n @if (trigger?.template; as tpl) {\n <ng-container *ngTemplateOutlet=\"tpl\"></ng-container>\n }\n </a>\n\n @if (isOpen) {\n @if (content?.template; as tpl) {\n <div\n class=\"onemrva-pop-over-frame\"\n [ngClass]=\"position\"\n [attr.data-cy]=\"dataCyPo\"\n role=\"region\"\n [attr.aria-labelledby]=\"poId\"\n >\n <div class=\"onemrva-pop-over-content\" [ngClass]=\"position\">\n <ng-container *ngTemplateOutlet=\"tpl\"></ng-container>\n </div>\n </div>\n }\n }\n</div>\n","import { NgModule } from '@angular/core';\nimport { OnemrvaMatPopOverComponent } from './onemrva-mat-pop-over.component';\nimport { OnemrvaMatPopOverContentComponent } from './onemrva-mat-pop-over-content.component';\nimport { OnemrvaMatPopOverTriggerComponent } from './onemrva-mat-pop-over-trigger.component';\n\nconst components = [\n OnemrvaMatPopOverComponent,\n OnemrvaMatPopOverContentComponent,\n OnemrvaMatPopOverTriggerComponent,\n];\n\n@NgModule({\n declarations: [],\n imports: [...components],\n exports: [...components],\n})\nexport class OnemrvaMatPopOverModule {}\n","import { CommonModule } from '@angular/common';\nimport { Component, HostBinding, Input, OnInit } from '@angular/core';\nimport { map, Observable, tap } from 'rxjs';\n\n@Component({\n selector: 'onemrva-mat-progress-bar',\n standalone: true,\n imports: [CommonModule],\n templateUrl: 'onemrva-mat-progress-bar.component.html',\n styleUrl: 'onemrva-mat-progress-bar.component.scss',\n})\nexport class OnemrvaMatProgressBarComponent implements OnInit {\n @Input() label$?: Observable<string>;\n @Input() value$!: Observable<number>;\n @Input() dataCy = 'onemrva-mat-progress-bar';\n\n @HostBinding('attr.role')\n public role = 'progressbar';\n\n @HostBinding('attr.aria-label')\n @Input()\n public ariaLabel = 'progress bar';\n\n progress$!: Observable<string>;\n\n ngOnInit() {\n this.progress$ = this.value$.pipe(\n tap(value => {\n this.success = value >= 100;\n }),\n map(v => (v < 0 ? '0%' : v > 100 ? '100%' : v + '%')),\n );\n\n if (!this.label$) {\n this.label$ = this.progress$;\n }\n }\n\n @HostBinding('class.mat-success')\n success = false;\n}\n","<div class=\"onemrva-progress-bar\">\n <span class=\"onemrva-progress-bar-label\">{{ label$ | async }}</span>\n\n <div class=\"onemrva-progress-bar-outer mt-s\" #onemrvaProgressBar>\n <div\n class=\"onemrva-progress-bar-inner\"\n [ngStyle]=\"{ width: progress$ | async }\"\n [ngClass]=\"{ 'progress-success': (value$ | async)! >= 100 }\"\n [attr.data-cy]=\"dataCy\"\n [attr.value]=\"progress$ | async\"\n ></div>\n </div>\n</div>\n","import { Directive } from '@angular/core';\n\n/**\n * Directive for providing a custom clear-icon.\n * e.g.\n * <mat-select-search [formControl]=\"bankFilterCtrl\">\n * <mat-icon matSelectSearchClear>delete</mat-icon>\n * </mat-select-search>\n */\n@Directive({\n selector: '[matSelectSearchClear]',\n standalone: true,\n})\nexport class MatSelectSearchClearDirective {}\n","import { InjectionToken } from '@angular/core';\nimport { MatSelectSearchComponent } from './mat-select-search.component';\n\n/** List of inputs of NgxMatSelectSearchComponent that can be configured with a global default. */\nexport const configurableDefaultOptions = [\n 'ariaLabel',\n 'clearSearchInput',\n 'closeIcon',\n 'closeSvgIcon',\n 'disableInitialFocus',\n 'disableScrollToActiveOnOptionsChanged',\n 'enableClearOnEscapePressed',\n 'hideClearSearchButton',\n 'noEntriesFoundLabel',\n 'placeholderLabel',\n 'preventHomeEndKeyPropagation',\n 'searching',\n] as const;\n\nexport type ConfigurableDefaultOptions =\n (typeof configurableDefaultOptions)[number];\n\n/**\n * InjectionToken that can be used to specify global options. e.g.\n *\n * ```typescript\n * providers: [\n * {\n * provide: MAT_SELECTSEARCH_DEFAULT_OPTIONS,\n * useValue: <MatSelectSearchOptions>{\n * closeIcon: 'delete',\n * noEntriesFoundLabel: 'No options found'\n * }\n * }\n * ]\n * ```\n *\n * See the corresponding inputs of `MatSelectSearchComponent` for documentation.\n */\nexport const MAT_SELECTSEARCH_DEFAULT_OPTIONS =\n new InjectionToken<MatSelectSearchOptions>(\n 'mat-selectsearch-default-options',\n );\n\n/** Global configurable options for MatSelectSearch. */\nexport type MatSelectSearchOptions = Readonly<\n Partial<Pick<MatSelectSearchComponent, ConfigurableDefaultOptions>>\n>;\n","import { Directive } from '@angular/core';\n\n/**\n * Directive for providing a custom no entries found element.\n * e.g.\n * <mat-select-search [formControl]=\"bankFilterCtrl\">\n * <span matSelectNoEntriesFound>\n * No entries found <button>Add</button>\n * </span>\n * </mat-select-search>\n */\n@Directive({\n selector: '[matSelectNoEntriesFound]',\n standalone: true,\n})\nexport class MatSelectNoEntriesFoundDirective {}\n","/**\n * Copyright (c) 2018 Bithost GmbH All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {\n A,\n DOWN_ARROW,\n END,\n ENTER,\n ESCAPE,\n HOME,\n NINE,\n SPACE,\n UP_ARROW,\n Z,\n ZERO,\n} from '@angular/cdk/keycodes';\nimport { ViewportRuler } from '@angular/cdk/scrolling';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n OnDestroy,\n OnInit,\n Output,\n QueryList,\n ViewChild,\n inject,\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n FormControl,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n} from '@angular/forms';\nimport { MatOption } from '@angular/material/core';\nimport { MatFormField } from '@angular/material/form-field';\nimport { MatSelect } from '@angular/material/select';\nimport { BehaviorSubject, combineLatest, Observable, of, Subject } from 'rxjs';\nimport {\n delay,\n filter,\n map,\n startWith,\n switchMap,\n take,\n takeUntil,\n tap,\n} from 'rxjs/operators';\nimport { MatSelectSearchClearDirective } from './mat-select-search-clear.directive';\nimport {\n configurableDefaultOptions,\n MAT_SELECTSEARCH_DEFAULT_OPTIONS,\n MatSelectSearchOptions,\n} from './default-options';\nimport { MatSelectNoEntriesFoundDirective } from './mat-select-no-entries-found.directive';\nimport { AsyncPipe, NgClass } from '@angular/common';\nimport { MatCheckbox } from '@angular/material/checkbox';\nimport { MatTooltip } from '@angular/material/tooltip';\nimport { MatIcon } from '@angular/material/icon';\nimport { MatProgressSpinner } from '@angular/material/progress-spinner';\nimport { MatIconButton } from '@angular/material/button';\nimport { MatInput } from '@angular/material/input';\nimport { MatDivider } from '@angular/material/divider';\n\n@Component({\n selector: 'mat-select-search',\n templateUrl: './mat-select-search.component.html',\n styleUrls: ['./mat-select-search.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MatSelectSearchComponent),\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n NgClass,\n MatCheckbox,\n MatTooltip,\n ReactiveFormsModule,\n MatIcon,\n MatProgressSpinner,\n MatIconButton,\n MatInput,\n MatDivider,\n AsyncPipe,\n ],\n})\nexport class MatSelectSearchComponent\n implements OnInit, OnDestroy, ControlValueAccessor\n{\n /** Label of the search placeholder */\n @Input() placeholderLabel = 'Search';\n\n /** Type of the search input field */\n @Input() type = 'text';\n\n /** Font-based icon used for displaying Close-Icon */\n @Input() closeIcon = 'close';\n\n /** Svg-based icon used for displaying Close-Icon. If set, closeIcon is overridden */\n @Input() closeSvgIcon = '';\n\n /** Label to be shown when no entries are found. Set to null if no message should be shown. */\n @Input() noEntriesFoundLabel = 'Nothing found';\n\n /**\n * Whether or not the search field should be cleared after the dropdown menu is closed.\n */\n @Input() clearSearchInput = true;\n\n /** Whether to show the search-in-progress indicator */\n @Input() searching = false;\n\n /** Disables initial focusing of the input field */\n @Input() disableInitialFocus = false;\n\n /** Enable clear input on escape pressed */\n @Input() enableClearOnEscapePressed = false;\n\n /**\n * Prevents home / end key being propagated to mat-select,\n * allowing to move the cursor within the search input instead of navigating the options\n */\n @Input() preventHomeEndKeyPropagation = false;\n\n /** Disables scrolling to active options when option list changes. Useful for server-side search */\n @Input() disableScrollToActiveOnOptionsChanged = false;\n\n /** Adds 508 screen reader support for search box */\n @Input() ariaLabel = 'dropdown search';\n\n /** Whether to show Select All Checkbox (for mat-select[multi=true]) */\n @Input() showToggleAllCheckbox = false;\n\n /** select all checkbox checked state */\n @Input() toggleAllCheckboxChecked = false;\n\n /** select all checkbox indeterminate state */\n @Input() toggleAllCheckboxIndeterminate = false;\n\n /** Display a message in a tooltip on the toggle-all checkbox */\n @Input() toggleAllCheckboxTooltipMessage = '';\n\n /** Define the position of the tooltip on the toggle-all checkbox. */\n @Input() toggleAllCheckboxTooltipPosition:\n | 'left'\n | 'right'\n | 'above'\n | 'below'\n | 'before'\n | 'after' = 'below';\n\n /** Show/Hide the search clear button of the search input */\n @Input() hideClearSearchButton = false;\n\n /**\n * Always restore selected options on selectionChange for mode multi (e.g. for lazy loading/infinity scrolling).\n * Defaults to false, so selected options are only restored while filtering is active.\n */\n @Input() alwaysRestoreSelectedOptionsMulti = false;\n\n /** Output emitter to send to parent component with the toggle all boolean */\n @Output() toggleAll = new EventEmitter<boolean>();\n\n /** Reference to the search input field */\n @ViewChild('searchSelectInput', { read: ElementRef, static: true })\n searchSelectInput?: ElementRef;\n\n /** Reference to the search input field */\n @ViewChild('innerSelectSearch', { read: ElementRef, static: true })\n innerSelectSearch?: ElementRef;\n\n /** Reference to custom search input clear icon */\n @ContentChild(MatSelectSearchClearDirective)\n clearIcon?: MatSelectSearchClearDirective;\n\n /** Reference to custom no entries found element */\n @ContentChild(MatSelectNoEntriesFoundDirective)\n noEntriesFound?: MatSelectNoEntriesFoundDirective;\n\n /** Current search value */\n get value(): string {\n return (this._formControl as FormControl).value;\n }\n\n private _lastExternalInputValue?: string;\n\n onTouched: (_: any) => void = (_: any) => {\n //\n };\n\n /** Reference to the MatSelect options */\n public set _options(_options: QueryList<MatOption>) {\n this._options$.next(_options);\n }\n\n public get _options(): QueryList<MatOption> {\n return this._options$.getValue();\n }\n\n public _options$: BehaviorSubject<QueryList<MatOption>> = new BehaviorSubject<\n QueryList<MatOption>\n >(new QueryList());\n\n private optionsList$: Observable<MatOption[]> = this._options$.pipe(\n switchMap(_options =>\n _options\n ? _options.changes.pipe(\n map(options => options.toArray()),\n startWith<MatOption[]>(_options.toArray()),\n )\n : of([]),\n ),\n );\n\n private optionsLength$: Observable<number> = this.optionsList$.pipe(\n map(options => (options ? options.length : 0)),\n );\n\n /** Previously selected values when using <mat-select [multiple]=\"true\">*/\n private previousSelectedValues?: any[];\n\n public _formControl: FormControl<string | null> = new FormControl<string>('');\n\n /** whether to show the no entries found message */\n public _showNoEntriesFound$: Observable<boolean> = combineLatest([\n this._formControl.valueChanges,\n this.optionsLength$,\n ]).pipe(\n map(([_, optionsLength]) => {\n return (\n this.noEntriesFoundLabel !== '' &&\n optionsLength === this.getOptionsLengthOffset()\n );\n }),\n );\n\n /** Subject that emits when the component has been destroyed. */\n private _onDestroy = new Subject<void>();\n\n /** Reference to active descendant for ARIA Support. */\n private activeDescendant?: HTMLElement;\n\n public readonly matSelect = inject(MatSelect);\n public readonly changeDetectorRef = inject(ChangeDetectorRef);\n private readonly _viewportRuler = inject(ViewportRuler);\n public readonly matOption = inject(MatOption, { optional: true });\n public readonly matFormField = inject(MatFormField, { optional: true });\n private readonly defaultOptions = inject(MAT_SELECTSEARCH_DEFAULT_OPTIONS, {\n optional: true,\n });\n\n constructor() {\n this.applyDefaultOptions(this.defaultOptions as MatSelectSearchOptions);\n }\n\n private applyDefaultOptions(defaultOptions: MatSelectSearchOptions) {\n if (!defaultOptions) {\n return;\n }\n for (const key of configurableDefaultOptions) {\n // eslint-disable-next-line\n if (defaultOptions.hasOwnProperty(key)) {\n (this[key] as any) = defaultOptions[key];\n }\n }\n }\n\n ngOnInit() {\n // set custom mat-option class if the component was placed inside a mat-option\n if (this.matOption) {\n this.matOption.disabled = true;\n this.matOption\n ._getHostElement()\n .classList.add('contains-mat-select-search');\n //this.matOption._getHostElement().setAttribute('aria-hidden', 'true'); // this provoke an error\n } else {\n console.error(\n '<mat-select-search> must be placed inside a <mat-option> element',\n );\n }\n\n // when the select dropdown panel is opened or closed\n this.matSelect.openedChange\n .pipe(delay(1), takeUntil(this._onDestroy))\n .subscribe(opened => {\n if (opened) {\n this.updateInputWidth();\n // focus the search field when opening\n if (!this.disableInitialFocus) {\n this._focus();\n }\n } else {\n // clear it when closing\n if (this.clearSearchInput) {\n this._reset();\n }\n }\n });\n\n // set the first item active after the options changed\n this.matSelect.openedChange\n .pipe(\n take(1),\n switchMap(_ => {\n this._options = this.matSelect.options;\n\n // Closure variable for tracking the most recent first option.\n // In order to avoid avoid causing the list to\n // scroll to the top when options are added to the bottom of\n // the list (eg: infinite scroll), we compare only\n // the changes to the first options to determine if we\n // should set the first item as active.\n // This prevents unnecessary scrolling to the top of the list\n // when options are appended, but allows the first item\n // in the list to be set as active by default when there\n // is no active selection\n let previousFirstOption =\n this._options.toArray()[this.getOptionsLengthOffset()];\n\n return this._options.changes.pipe(\n tap(() => {\n // avoid \"expression has been changed\" error\n setTimeout(() => {\n // Convert the QueryList to an array\n const options = this._options.toArray();\n\n // The true first item is offset by 1\n const currentFirstOption =\n options[this.getOptionsLengthOffset()];\n\n const keyManager = this.matSelect._keyManager;\n if (keyManager && this.matSelect.panelOpen) {\n // set first item active and input width\n\n // Check to see if the first option in these changes is different from the previous.\n const firstOptionIsChanged = !this.matSelect.compareWith(\n previousFirstOption,\n currentFirstOption,\n );\n\n // CASE: The first option is different now.\n // Indiciates we should set it as active and scroll to the top.\n if (\n firstOptionIsChanged ||\n !keyManager.activeItem ||\n !options.find(option =>\n this.matSelect.compareWith(option, keyManager.activeItem),\n )\n ) {\n keyManager.setFirstItemActive();\n }\n\n // wait for panel width changes\n setTimeout(() => {\n this.updateInputWidth();\n });\n }\n\n // Update our reference\n previousFirstOption = currentFirstOption;\n });\n }),\n );\n }),\n )\n .subscribe();\n\n // add or remove css class depending on whether to show the no entries found message\n // note: this is hacky\n this._showNoEntriesFound$\n .pipe(takeUntil(this._onDestroy))\n .subscribe(showNoEntriesFound => {\n // set no entries found class on mat option\n if (this.matOption) {\n if (showNoEntriesFound) {\n this.matOption\n ._getHostElement()\n .classList.add('mat-select-search-no-entries-found');\n } else {\n this.matOption\n ._getHostElement()\n .classList.remove('mat-select-search-no-entries-found');\n }\n }\n });\n\n // resize the input width when the viewport is resized, i.e. the trigger width could potentially be resized\n this._viewportRuler\n .change()\n .pipe(takeUntil(this._onDestroy))\n .subscribe(() => {\n if (this.matSelect.panelOpen) {\n this.updateInputWidth();\n }\n });\n\n this.initMultipleHandling();\n\n this.optionsList$.pipe(takeUntil(this._onDestroy)).subscribe(() => {\n // update view when available options change\n this.changeDetectorRef.markForCheck();\n });\n }\n\n _emitSelectAllBooleanToParent(state: boolean) {\n this.toggleAll.emit(state);\n }\n\n ngOnDestroy() {\n this._onDestroy.next();\n this._onDestroy.complete();\n }\n\n _isToggleAllCheckboxVisible(): boolean {\n return this.matSelect.multiple && this.showToggleAllCheckbox;\n }\n\n /**\n * Handles the key down event with MatSelect.\n * Allows e.g. selecting with enter key, navigation with arrow keys, etc.\n * @param event\n */\n _handleKeydown(event: KeyboardEvent) {\n // Prevent propagation for all alphanumeric characters in order to avoid selection issues\n if (\n (event.key && event.key.length === 1) ||\n (event.keyCode >= A && event.keyCode <= Z) ||\n (event.keyCode >= ZERO && event.keyCode <= NINE) ||\n event.keyCode === SPACE ||\n (this.preventHomeEndKeyPropagation &&\n (event.keyCode === HOME || event.keyCode === END))\n ) {\n event.stopPropagation();\n }\n\n if (this.matSelect.multiple && event.key && event.keyCode === ENTER) {\n // Regain focus after multiselect, so we can further type\n setTimeout(() => this._focus());\n }\n\n // Special case if click Escape, if input is empty, close the dropdown, if not, empty out the search field\n if (\n this.enableClearOnEscapePressed === true &&\n event.keyCode === ESCAPE &&\n this.value\n ) {\n this._reset(true);\n event.stopPropagation();\n }\n }\n\n /**\n * Handles the key up event with MatSelect.\n * Allows e.g. the announcing of the currently activeDescendant by screen readers.\n */\n _handleKeyup(event: KeyboardEvent) {\n if (event.keyCode === UP_ARROW || event.keyCode === DOWN_ARROW) {\n const ariaActiveDescendantId = this.matSelect._getAriaActiveDescendant();\n const index = this._options\n .toArray()\n .findIndex(item => item.id === ariaActiveDescendantId);\n if (index !== -1) {\n this.unselectActiveDescendant();\n\n const temp = this._options.toArray();\n this.activeDescendant = temp[index]._getHostElement();\n\n this.activeDescendant.setAttribute('aria-selected', 'true');\n\n this.searchSelectInput?.nativeElement.setAttribute(\n 'aria-activedescendant',\n ariaActiveDescendantId,\n );\n }\n }\n }\n\n writeValue(value: string) {\n this._lastExternalInputValue = value;\n this._formControl.setValue(value);\n this.changeDetectorRef.markForCheck();\n }\n\n onBlur() {\n this.unselectActiveDescendant();\n }\n\n registerOnChange(fn: (value: string | null) => void) {\n this._formControl.valueChanges\n .pipe(\n filter(value => value !== this._lastExternalInputValue),\n tap(() => (this._lastExternalInputValue = undefined)),\n takeUntil(this._onDestroy),\n )\n .subscribe(fn);\n }\n\n registerOnTouched(fn: () => void) {\n this.onTouched = fn;\n }\n\n /**\n * Focuses the search input field\n */\n public _focus() {\n if (!this.searchSelectInput || !this.matSelect.panel) {\n return;\n }\n // save and restore scrollTop of panel, since it will be reset by focus()\n // note: this is hacky\n const panel = this.matSelect.panel.nativeElement;\n const scrollTop = panel.scrollTop;\n\n // focus\n this.searchSelectInput.nativeElement.focus();\n\n panel.scrollTop = scrollTop;\n }\n\n /**\n * Resets the current search value\n * @param focus whether to focus after resetting\n */\n public _reset(focus?: boolean) {\n this._formControl.setValue('');\n if (focus) {\n this._focus();\n }\n }\n\n /**\n * Initializes handling <mat-select [multiple]=\"true\">\n * Note: to improve this code, mat-select should be extended to allow disabling resetting the selection while filtering.\n */\n private initMultipleHandling() {\n if (!this.matSelect.ngControl) {\n if (this.matSelect.multiple) {\n // note: the access to matSelect.ngControl (instead of matSelect.value / matSelect.valueChanges)\n // is necessary to properly work in multi-selection mode.\n console.error(\n 'the mat-select containing mat-select-search must have a ngModel or formControl directive when multiple=true',\n );\n }\n return;\n }\n // if <mat-select [multiple]=\"true\">\n // store previously selected values and restore them when they are deselected\n // because the option is not available while we are currently filtering\n this.previousSelectedValues = this.matSelect.ngControl.value;\n\n this.matSelect.ngControl.valueChanges\n ?.pipe(takeUntil(this._onDestroy))\n .subscribe(values => {\n let restoreSelectedValues = false;\n if (this.matSelect.multiple) {\n if (\n (this.alwaysRestoreSelectedOptionsMulti ||\n (this._formControl.value && this._formControl.value.length)) &&\n this.previousSelectedValues &&\n Array.isArray(this.previousSelectedValues)\n ) {\n if (!values || !Array.isArray(values)) {\n values = [];\n }\n const optionValues = this.matSelect.options.map(\n option => option.value,\n );\n this.previousSelectedValues.forEach(previousValue => {\n if (\n !values.some((v: any) =>\n this.matSelect.compareWith(v, previousValue),\n ) &&\n !optionValues.some(v =>\n this.matSelect.compareWith(v, previousValue),\n )\n ) {\n // if a value that was selected before is deselected and not found in the options, it was deselected\n // due to the filtering, so we restore it.\n values.push(previousValue);\n restoreSelectedValues = true;\n }\n });\n }\n }\n this.previousSelectedValues = values;\n\n if (restoreSelectedValues) {\n this.matSelect._onChange(values);\n }\n });\n }\n\n /**\n * Set the width of the innerSelectSearch to fit even custom scrollbars\n * And support all Operation Systems\n */\n public updateInputWidth() {\n if (!this.innerSelectSearch || !this.innerSelectSearch.nativeElement) {\n return;\n }\n let element: HTMLElement = this.innerSelectSearch.nativeElement;\n if (element.parentElement !== null) {\n let panelElement: HTMLElement | null = null;\n while ((element = element.parentElement)) {\n if (element.classList.contains('mat-select-panel')) {\n panelElement = element;\n break;\n }\n }\n if (panelElement !== null) {\n this.innerSelectSearch.nativeElement.style.width =\n panelElement.clientWidth + 'px';\n }\n }\n }\n\n /**\n * Determine the offset to length that can be caused by the optional matOption used as a search input.\n */\n private getOptionsLengthOffset(): number {\n if (this.matOption) {\n return 1;\n } else {\n return 0;\n }\n }\n\n private unselectActiveDescendant() {\n this.activeDescendant?.removeAttribute('aria-selected');\n this.searchSelectInput?.nativeElement.removeAttribute(\n 'aria-activedescendant',\n );\n }\n}\n","<!--\nCopyright (c) 2018 Bithost GmbH All Rights Reserved.\n\nUse of this source code is governed by an MIT-style license that can be\nfound in the LICENSE file at https://angular.io/license\n-->\n<!-- Placeholder to adjust vertical offset of the mat-option elements -->\n<input matInput class=\"mat-select-search-input mat-select-search-hidden\" />\n\n<!-- Note: the mat-datepicker-content mat-tab-header are needed to inherit the material theme colors, see PR #22 -->\n<div\n #innerSelectSearch\n class=\"mat-select-search-inner mat-typography mat-datepicker-content mat-tab-header\"\n [ngClass]=\"{\n 'mat-select-search-inner-multiple': matSelect.multiple,\n 'mat-select-search-inner-toggle-all': _isToggleAllCheckboxVisible(),\n }\"\n>\n @if (_isToggleAllCheckboxVisible()) {\n <mat-checkbox\n class=\"mat-select-search-toggle-all-checkbox\"\n [checked]=\"toggleAllCheckboxChecked\"\n [indeterminate]=\"toggleAllCheckboxIndeterminate\"\n [matTooltip]=\"toggleAllCheckboxTooltipMessage\"\n matTooltipClass=\"ngx-mat-select-search-toggle-all-tooltip\"\n [matTooltipPosition]=\"toggleAllCheckboxTooltipPosition\"\n (change)=\"_emitSelectAllBooleanToParent($event.checked)\"\n ></mat-checkbox>\n }\n <input\n class=\"mat-select-search-input\"\n autocomplete=\"off\"\n [type]=\"type\"\n [formControl]=\"_formControl\"\n #searchSelectInput\n (keydown)=\"_handleKeydown($event)\"\n (keyup)=\"_handleKeyup($event)\"\n (blur)=\"onBlur()\"\n [placeholder]=\"placeholderLabel\"\n [attr.aria-label]=\"ariaLabel\"\n />\n @if (value === '' && !searching) {\n <mat-icon class=\"suffix\">search</mat-icon>\n }\n @if (searching) {\n <mat-spinner class=\"mat-select-search-spinner\" diameter=\"16\"></mat-spinner>\n }\n @if (!hideClearSearchButton && value && !searching) {\n <button\n mat-icon-button\n aria-label=\"Clear\"\n (click)=\"_reset(true)\"\n class=\"mat-select-search-clear\"\n >\n @if (clearIcon) {\n <ng-content select=\"[matSelectSearchClear]\"></ng-content>\n } @else {\n <mat-icon [svgIcon]=\"closeSvgIcon\">\n {{ !closeSvgIcon ? closeIcon : null }}\n </mat-icon>\n }\n </button>\n }\n\n <ng-content select=\".mat-select-search-custom-header-content\"></ng-content>\n\n <mat-divider></mat-divider>\n</div>\n\n@if (_showNoEntriesFound$ | async) {\n <div class=\"mat-select-search-no-entries-found\">\n @if (noEntriesFound) {\n <ng-content select=\"[matSelectNoEntriesFound]\"></ng-content>\n } @else {\n {{ noEntriesFoundLabel }}\n }\n </div>\n}\n","/**\n * Copyright (c) 2018 Bithost GmbH All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport { NgModule } from '@angular/core';\nimport { MatSelectSearchComponent } from './mat-select-search.component';\n\nimport { MatSelectSearchClearDirective } from './mat-select-search-clear.directive';\nimport { MatSelectNoEntriesFoundDirective } from './mat-select-no-entries-found.directive';\n\nexport { MatSelectSearchClearDirective };\nexport { MatSelectNoEntriesFoundDirective };\n\n@NgModule({\n imports: [\n MatSelectSearchComponent,\n MatSelectSearchClearDirective,\n MatSelectNoEntriesFoundDirective,\n ],\n exports: [\n MatSelectSearchComponent,\n MatSelectSearchClearDirective,\n MatSelectNoEntriesFoundDirective,\n ],\n})\nexport class MatSelectSearchModule {}\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n HostBinding,\n inject,\n Input,\n Output,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { MatRadioButton, MatRadioChange } from '@angular/material/radio';\nimport { MatCard, MatCardContent, MatCardTitle } from '@angular/material/card';\nimport { MatLabel } from '@angular/material/form-field';\nimport { MatIcon } from '@angular/material/icon';\nimport { OnemrvaMatSize } from '@onemrvapublic/design-system/utils';\nimport { OnemRvaSizeDirective } from '@onemrvapublic/design-system/shared';\n\nlet NEXT_ID = 0;\n\n@Component({\n selector: 'onemrva-mat-selectable-box',\n templateUrl: './onemrva-mat-selectable-box.component.html',\n styleUrl: './onemrva-mat-selectable-box.component.scss',\n standalone: true,\n encapsulation: ViewEncapsulation.None,\n imports: [\n MatCardTitle,\n MatCard,\n MatRadioButton,\n MatLabel,\n MatIcon,\n MatCardContent,\n OnemRvaSizeDirective,\n ],\n})\nexport class OnemrvaMatSelectableBoxComponent implements AfterViewInit {\n @HostBinding('attr.id')\n @Input()\n public id = `onemrva-mat-selectable-box-${NEXT_ID++}`;\n\n @ViewChild('radioButton')\n radioButton: MatRadioButton | undefined;\n\n @Input()\n value = '';\n\n @Input()\n disabled = false;\n\n @Input()\n checked = false;\n\n @Input()\n iconSize: OnemrvaMatSize = '';\n\n @Output()\n valueChange = new EventEmitter<MatRadioChange>();\n\n changeDetectorRef = inject(ChangeDetectorRef);\n\n ngAfterViewInit() {\n this.changeDetectorRef.detectChanges();\n }\n\n valueChanged(event: MatRadioChange) {\n this.valueChange.emit(event);\n }\n\n isChecked() {\n return this.radioButton?._inputElement.nativeElement.checked;\n }\n\n triggerRadioClick() {\n if (\n this.radioButton &&\n !this.radioButton.checked &&\n !this.radioButton.disabled\n ) {\n // https://v11.material.angular.io/components/radio/api\n // Changing checked prop does not trigger a change event on the button or radiogroup,\n // only on user-interaction. Workaround trigger/simulate a click event.\n this.radioButton._inputElement.nativeElement.dispatchEvent(\n new MouseEvent('click', { bubbles: false }),\n );\n }\n }\n}\n","<mat-card\n [class.checked]=\"isChecked()\"\n [class.disabled]=\"disabled\"\n class=\"onemrva-selectable-box m-m clickable\"\n (click)=\"triggerRadioClick()\"\n>\n <mat-card-title class=\"selectablebox-title\">\n <mat-radio-button\n #radioButton\n (change)=\"valueChanged($event)\"\n aria-label=\"Selected\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n [value]=\"value\"\n >\n </mat-radio-button>\n\n <mat-label class=\"mr\">\n <ng-content select=\"[title]\"></ng-content>\n </mat-label>\n\n <mat-icon class=\"selectable-box-icon\" [size]=\"iconSize\">\n <ng-content select=\"[icon]\"></ng-content>\n </mat-icon>\n\n <span class=\"sticker\"><ng-content select=\"[sticker]\"></ng-content></span>\n </mat-card-title>\n\n <mat-card-content>\n <ng-content></ng-content>\n </mat-card-content>\n</mat-card>\n","import { NgModule } from '@angular/core';\nimport { OnemrvaMatSelectableBoxComponent } from './onemrva-mat-selectable-box.component';\n\n@NgModule({\n declarations: [],\n imports: [OnemrvaMatSelectableBoxComponent],\n exports: [OnemrvaMatSelectableBoxComponent],\n})\nexport class OnemrvaMatSelectableBoxModule {}\n","/*\n * Public API Surface of mat-selectable-box\n */\n\nexport * from './src/onemrva-mat-selectable-box.component';\nexport * from './src/onemrva-mat-selectable-box.module';\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n OnInit,\n OnDestroy,\n inject,\n} from '@angular/core';\nimport {\n BreakpointObserver,\n Breakpoints,\n BreakpointState,\n} from '@angular/cdk/layout';\nimport { Subscription } from 'rxjs';\nimport { MatChip, MatChipRow } from '@angular/material/chips';\nimport { NgClass } from '@angular/common';\nimport { TranslatePipe } from '@ngx-translate/core';\n\nexport interface OnemrvaMenu {\n wordingKey: string;\n path?: string;\n key?: string;\n}\n\n@Component({\n selector: 'onemrva-mat-side-menu',\n templateUrl: 'onemrva-mat-side-menu.component.html',\n styleUrl: 'onemrva-mat-side-menu.component.scss',\n styles: [],\n standalone: true,\n imports: [MatChip, MatChipRow, NgClass, TranslatePipe],\n})\nexport class OnemrvaMatSideMenuComponent implements OnInit, OnDestroy {\n @Input() menuHeaderKey!: string;\n @Input() menus!: OnemrvaMenu[];\n @Input() currentMenu?: string; // string to be matched against menu.path or menu.key\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n @Output() onSelectOption = new EventEmitter<OnemrvaMenu>();\n\n isSmall = true;\n breakpointObserverSubscription?: Subscription;\n\n breakpointObserver = inject(BreakpointObserver);\n\n ngOnInit(): void {\n this.breakpointObserverSubscription = this.breakpointObserver\n .observe([Breakpoints.XSmall, Breakpoints.Small])\n .subscribe((state: BreakpointState) => {\n if (state.matches) {\n this.isSmall = true;\n } else {\n this.isSmall = false;\n }\n });\n }\n\n ngOnDestroy(): void {\n this.breakpointObserverSubscription?.unsubscribe();\n }\n\n selectMenu(menu: OnemrvaMenu) {\n this.onSelectOption.emit(menu);\n }\n}\n","@if (isSmall) {\n <mat-chip-row class=\"onemrva-side-menu\" role=\"navigation\">\n @for (menu of menus; track menu.key; let i = $index) {\n <mat-chip\n role=\"\"\n class=\"onemrva-side-menu-option\"\n (click)=\"selectMenu(menu)\"\n [ngClass]=\"{\n 'onemrva-side-menu-current-option':\n menu.path === currentMenu || menu.key === currentMenu,\n }\"\n [attr.data-cy]=\"'onemrva-side-menu-chip-option_' + i\"\n >\n {{ menu.wordingKey | translate }}\n </mat-chip>\n }\n </mat-chip-row>\n} @else {\n <div class=\"onemrva-side-menu onemrva-expanded-side-menu\">\n <div class=\"onemrva-side-menu-header\">{{ menuHeaderKey | translate }}</div>\n @for (menu of menus; track menu.key; let mnidx = $index) {\n <div\n tabindex=\"1\"\n role=\"button\"\n class=\"onemrva-side-menu-option\"\n [ngClass]=\"{\n 'onemrva-side-menu-current-option':\n menu.path === currentMenu || menu.key === currentMenu,\n }\"\n (click)=\"selectMenu(menu)\"\n [attr.data-cy]=\"'onemrva-side-menu-option_' + mnidx\"\n >\n {{ menu.wordingKey | translate }}\n </div>\n }\n </div>\n}\n","import { NgModule } from '@angular/core';\n\nimport { OnemrvaMatSideMenuComponent } from './onemrva-mat-side-menu.component';\n\n@NgModule({\n declarations: [],\n imports: [OnemrvaMatSideMenuComponent],\n exports: [OnemrvaMatSideMenuComponent],\n})\nexport class OnemrvaMatSideMenuModule {}\n","/*\n * Public API Surface of mat-side-menu\n */\n\nexport * from './src/onemrva-mat-side-menu.component';\nexport * from './src/onemrva-mat-side-menu.module';\n","import { mkenum } from '@onemrvapublic/design-system/utils';\n\nexport type OnemrvaSkeletonLoaderConfigTheme = Record<string, any> | null;\n\nexport const OnemrvaMatSkeletonAnimations = mkenum({\n PULSE: 'pulse',\n PROGRESS: 'progress',\n NONE: 'none',\n});\nexport type OnemrvaMatSkeletonAnimations =\n (typeof OnemrvaMatSkeletonAnimations)[keyof typeof OnemrvaMatSkeletonAnimations];\n\nexport const OnemrvaMatSkeletoTypes = mkenum({\n H1: 'h1',\n H2: 'h2',\n H3: 'h3',\n H4: 'h4',\n H5: 'h5',\n H6: 'h6',\n BUTTON: 'button',\n CIRCLE: 'circle',\n SQUARE: 'square',\n CUSTOM: 'custom',\n LINE: '',\n});\nexport type OnemrvaMatSkeletoTypes =\n (typeof OnemrvaMatSkeletoTypes)[keyof typeof OnemrvaMatSkeletoTypes];\n","import {\n Component,\n OnInit,\n Input,\n HostBinding,\n OnChanges,\n} from '@angular/core';\nimport { OnemrvaMatSize } from '@onemrvapublic/design-system/utils';\nimport {\n OnemrvaMatSkeletonAnimations,\n OnemrvaMatSkeletoTypes,\n OnemrvaSkeletonLoaderConfigTheme,\n} from './onemrva-mat-skeleton-enums';\nimport { NgStyle } from '@angular/common';\n\nlet NEXT_ID = 0;\n\n/**\n * Skeleton provides a way to display loading element while page is loading.\n *\n * @MatModule OnemrvaMatSkeletonModule\n *\n * @MatKeywords skeleton, loading, progress\n *\n * @example\n * ```html\n * <onemrva-mat-skeleton type=\"avatar\" size=\"large\">\n * </onemrva-mat-skeleton>\n * ```\n */\n@Component({\n selector: 'onemrva-mat-skeleton',\n templateUrl: 'onemrva-mat-skeleton.component.html',\n styleUrls: ['onemrva-mat-skeleton.component.scss'],\n standalone: true,\n imports: [NgStyle],\n})\nexport class OnemrvaMatSkeletonComponent implements OnInit, OnChanges {\n @Input()\n count = 1;\n\n @Input()\n animation: OnemrvaMatSkeletonAnimations =\n OnemrvaMatSkeletonAnimations.PROGRESS;\n\n @Input()\n type: OnemrvaMatSkeletoTypes = OnemrvaMatSkeletoTypes.LINE;\n\n @Input()\n size: OnemrvaMatSize = OnemrvaMatSize.MEDIUM;\n\n @Input()\n theme: OnemrvaSkeletonLoaderConfigTheme = [];\n\n @HostBinding('attr.aria-label')\n @Input()\n ariaLabel = 'loading';\n\n @HostBinding('attr.role')\n @Input()\n public role = 'progressbar';\n\n @HostBinding('attr.valuetext')\n @Input()\n public loadingText = 'Loading...';\n\n @HostBinding('attr.id')\n @Input()\n public id = `onemrva-mat-skeleton-${NEXT_ID++}`;\n\n /** @hidden @internal */\n @HostBinding('class.progress')\n public get _isProgress(): boolean {\n return this.animation === OnemrvaMatSkeletonAnimations.PROGRESS;\n }\n\n /** @hidden @internal */\n @HostBinding('class.pulse')\n public get _isPulse(): boolean {\n return this.animation === OnemrvaMatSkeletonAnimations.PULSE;\n }\n\n /** @hidden @internal */\n @HostBinding('class.h1')\n public get isH1(): boolean {\n return this.type === OnemrvaMatSkeletoTypes.H1;\n }\n\n /** @hidden @internal */\n @HostBinding('class.h2')\n public get isH2(): boolean {\n return this.type === OnemrvaMatSkeletoTypes.H2;\n }\n\n /** @hidden @internal */\n @HostBinding('class.h3')\n public get isH3(): boolean {\n return this.type === OnemrvaMatSkeletoTypes.H3;\n }\n\n /** @hidden @internal */\n @HostBinding('class.h4')\n public get isH4(): boolean {\n return this.type === OnemrvaMatSkeletoTypes.H4;\n }\n\n /** @hidden @internal */\n @HostBinding('class.h5')\n public get isH5(): boolean {\n return this.type === OnemrvaMatSkeletoTypes.H5;\n }\n\n /** @hidden @internal */\n @HostBinding('class.h6')\n public get isH6(): boolean {\n return this.type === OnemrvaMatSkeletoTypes.H6;\n }\n\n /** @hidden @internal */\n @HostBinding('class.line')\n public get _isLine(): boolean {\n return this.type === OnemrvaMatSkeletoTypes.LINE;\n }\n\n /** @hidden @internal */\n @HostBinding('class.button')\n public get _isButton(): boolean {\n return this.type === OnemrvaMatSkeletoTypes.BUTTON;\n }\n\n /** @hidden @internal */\n @HostBinding('class.circle')\n public get _isCircle(): boolean {\n return this.type === OnemrvaMatSkeletoTypes.CIRCLE;\n }\n\n /** @hidden @internal */\n @HostBinding('class.square')\n public get _isSquare(): boolean {\n return this.type === OnemrvaMatSkeletoTypes.SQUARE;\n }\n\n /** @hidden @internal */\n @HostBinding('class.custom')\n public get _isCustom(): boolean {\n return this.type === OnemrvaMatSkeletoTypes.CUSTOM;\n }\n\n /** @hidden @internal */\n @HostBinding('class.onemrva-mat-avatar--xsmall')\n public get _isXSmallSize(): boolean {\n return this.size === OnemrvaMatSize.XSMALL;\n }\n /** @hidden @internal */\n @HostBinding('class.onemrva-mat-avatar--small')\n public get _isSmallSize(): boolean {\n return this.size === OnemrvaMatSize.SMALL;\n }\n /** @hidden @internal */\n @HostBinding('class.onemrva-mat-avatar--medium')\n public get _isMediumSize(): boolean {\n return this.size === OnemrvaMatSize.MEDIUM;\n }\n /** @hidden @internal */\n @HostBinding('class.onemrva-mat-avatar--large')\n public get _isLargeSize(): boolean {\n return this.size === OnemrvaMatSize.LARGE;\n }\n /** @hidden @internal */\n @HostBinding('class.onemrva-mat-avatar--xlarge')\n public get _isXLargeSize(): boolean {\n return this.size === OnemrvaMatSize.XLARGE;\n }\n\n public items: any[] = [];\n\n ngOnInit() {\n this.items.length = this.count;\n }\n\n ngOnChanges() {\n this.items.length = this.count;\n }\n}\n","@for (item of items; track item) {\n <div\n class=\"skeleton-loader\"\n aria-busy=\"true\"\n aria-valuemin=\"0\"\n aria-valuemax=\"100\"\n role=\"progressbar\"\n aria-label=\"loading\"\n [ngStyle]=\"theme\"\n >\n @if (type === 'custom') {\n <ng-content></ng-content>\n }\n </div>\n}\n","import { NgModule } from '@angular/core';\nimport { OnemrvaMatSkeletonComponent } from './onemrva-mat-skeleton.component';\n\n@NgModule({\n declarations: [],\n imports: [OnemrvaMatSkeletonComponent],\n exports: [OnemrvaMatSkeletonComponent],\n})\nexport class OnemrvaMatSkeletonModule {}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'onemrva-mat-spinner',\n templateUrl: 'onemrva-mat-spinner.component.html',\n styleUrl: 'onemrva-mat-spinner.component.scss',\n standalone: true,\n})\nexport class OnemrvaMatSpinnerComponent {}\n","<div class=\"onemrva-spinner-container\">\n <div class=\"onemrva-spinner\">\n <svg\n width=\"400\"\n height=\"400\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"30 30 340 340\"\n >\n <g>\n <circle\n cx=\"202.6178609655925\"\n cy=\"349.9771542734587\"\n r=\"16\"\n opacity=\"35.9\"\n ></circle>\n <circle\n cx=\"205.23492450537515\"\n cy=\"349.90862405286435\"\n r=\"16\"\n opacity=\"17.9\"\n ></circle>\n <circle\n cx=\"207.85039343644158\"\n cy=\"349.79443021318605\"\n r=\"16\"\n opacity=\"11.9\"\n ></circle>\n <circle\n cx=\"210.4634710616188\"\n cy=\"349.6346075389736\"\n r=\"16\"\n opacity=\"8.9\"\n ></circle>\n <circle\n cx=\"213.07336141214873\"\n cy=\"349.4292047137618\"\n r=\"16\"\n opacity=\"7.1\"\n ></circle>\n <circle\n cx=\"215.67926949014802\"\n cy=\"349.178284305241\"\n r=\"16\"\n opacity=\"5.9\"\n ></circle>\n <circle\n cx=\"218.28040151077212\"\n cy=\"348.88192274619826\"\n r=\"16\"\n opacity=\"5.042857142857143\"\n ></circle>\n <circle\n cx=\"220.87596514400983\"\n cy=\"348.54021031123557\"\n r=\"16\"\n opacity=\"4.4\"\n ></circle>\n <circle\n cx=\"223.46516975603464\"\n cy=\"348.15325108927067\"\n r=\"16\"\n opacity=\"3.9\"\n ></circle>\n <circle\n cx=\"226.04722665003956\"\n cy=\"347.72116295183116\"\n r=\"16\"\n opacity=\"3.5\"\n ></circle>\n <circle\n cx=\"228.62134930648173\"\n cy=\"347.2440775171496\"\n r=\"16\"\n opacity=\"3.1727272727272724\"\n ></circle>\n <circle\n cx=\"231.1867536226639\"\n cy=\"346.7221401100709\"\n r=\"16\"\n opacity=\"2.9\"\n ></circle>\n <circle\n cx=\"233.74265815157975\"\n cy=\"346.1555097177853\"\n r=\"16\"\n opacity=\"2.669230769230769\"\n ></circle>\n <circle\n cx=\"236.28828433995017\"\n cy=\"345.5443589413995\"\n r=\"16\"\n opacity=\"2.4714285714285715\"\n ></circle>\n <circle\n cx=\"238.8228567653781\"\n cy=\"344.88887394336024\"\n r=\"16\"\n opacity=\"2.3\"\n ></circle>\n <circle\n cx=\"241.34560337254987\"\n cy=\"344.1892543907478\"\n r=\"16\"\n opacity=\"2.15\"\n ></circle>\n <circle\n cx=\"243.85575570841053\"\n cy=\"343.4457133944553\"\n r=\"16\"\n opacity=\"2.0176470588235293\"\n ></circle>\n <circle\n cx=\"246.3525491562421\"\n cy=\"342.658477444273\"\n r=\"16\"\n opacity=\"1.9\"\n ></circle>\n <circle\n cx=\"248.8352231685735\"\n cy=\"341.82778633989756\"\n r=\"16\"\n opacity=\"1.7947368421052632\"\n ></circle>\n <circle\n cx=\"251.3030214988503\"\n cy=\"340.95389311788625\"\n r=\"16\"\n opacity=\"1.7\"\n ></circle>\n <circle\n cx=\"253.75519243179502\"\n cy=\"340.0370639745803\"\n r=\"16\"\n opacity=\"1.6142857142857143\"\n ></circle>\n <circle\n cx=\"256.1909890123868\"\n cy=\"339.0775781850181\"\n r=\"16\"\n opacity=\"1.5363636363636362\"\n ></circle>\n <circle\n cx=\"258.60966927339103\"\n cy=\"338.075728017866\"\n r=\"16\"\n opacity=\"1.465217391304348\"\n ></circle>\n <circle\n cx=\"261.01049646137005\"\n cy=\"337.0318186463901\"\n r=\"16\"\n opacity=\"1.4\"\n ></circle>\n <circle\n cx=\"263.3927392611049\"\n cy=\"335.9461680554975\"\n r=\"16\"\n opacity=\"1.34\"\n ></circle>\n <circle\n cx=\"265.7556720183616\"\n cy=\"334.81910694487505\"\n r=\"16\"\n opacity=\"1.2846153846153847\"\n ></circle>\n <circle\n cx=\"268.098574960932\"\n cy=\"333.6509786282552\"\n r=\"16\"\n opacity=\"1.2333333333333334\"\n ></circle>\n <circle\n cx=\"270.42073441788364\"\n cy=\"332.4421389288391\"\n r=\"16\"\n opacity=\"1.1857142857142857\"\n ></circle>\n <circle\n cx=\"272.7214430369506\"\n cy=\"331.19295607090936\"\n r=\"16\"\n opacity=\"1.1413793103448275\"\n ></circle>\n <circle cx=\"275\" cy=\"329.9038105676658\" r=\"16\" opacity=\"1.1\"></circle>\n <circle\n cx=\"277.2557112365081\"\n cy=\"328.57509510531685\"\n r=\"16\"\n opacity=\"1.0612903225806452\"\n ></circle>\n <circle\n cx=\"279.4878896349807\"\n cy=\"327.2072144234639\"\n r=\"16\"\n opacity=\"1.025\"\n ></circle>\n <circle\n cx=\"281.6958552522541\"\n cy=\"325.80058519181364\"\n r=\"16\"\n opacity=\"0.990909090909091\"\n ></circle>\n <circle\n cx=\"283.878935520612\"\n cy=\"324.35563588325624\"\n r=\"16\"\n opacity=\"0.9588235294117647\"\n ></circle>\n <circle\n cx=\"286.0364654526569\"\n cy=\"322.8728066433488\"\n r=\"16\"\n opacity=\"0.9285714285714286\"\n ></circle>\n <circle\n cx=\"288.167787843871\"\n cy=\"321.3525491562421\"\n r=\"16\"\n opacity=\"0.9\"\n ></circle>\n <circle\n cx=\"290.2722534728072\"\n cy=\"319.79532650709393\"\n r=\"16\"\n opacity=\"0.8729729729729732\"\n ></circle>\n <circle\n cx=\"292.34922129884876\"\n cy=\"318.2016130410083\"\n r=\"16\"\n opacity=\"0.8473684210526315\"\n ></circle>\n <circle\n cx=\"294.3980586574756\"\n cy=\"316.57189421854565\"\n r=\"16\"\n opacity=\"0.823076923076923\"\n ></circle>\n <circle\n cx=\"296.4181414529809\"\n cy=\"314.9066664678467\"\n r=\"16\"\n opacity=\"0.8\"\n ></circle>\n <circle\n cx=\"298.4088543485761\"\n cy=\"313.2064370334158\"\n r=\"16\"\n opacity=\"0.7780487804878049\"\n ></circle>\n <circle\n cx=\"300.3695909538287\"\n cy=\"311.47172382160915\"\n r=\"16\"\n opacity=\"0.7571428571428571\"\n ></circle>\n <circle\n cx=\"302.29975400937474\"\n cy=\"309.7030552428756\"\n r=\"16\"\n opacity=\"0.7372093023255814\"\n ></circle>\n <circle\n cx=\"304.1987555688496\"\n cy=\"307.9009700507977\"\n r=\"16\"\n opacity=\"0.7181818181818181\"\n ></circle>\n <circle\n cx=\"306.06601717798213\"\n cy=\"306.06601717798213\"\n r=\"16\"\n opacity=\"0.7\"\n ></circle>\n <circle\n cx=\"307.9009700507977\"\n cy=\"304.1987555688496\"\n r=\"16\"\n opacity=\"0.682608695652174\"\n ></circle>\n <circle\n cx=\"309.70305524287556\"\n cy=\"302.29975400937474\"\n r=\"16\"\n opacity=\"0.6659574468085107\"\n ></circle>\n <circle\n cx=\"311.47172382160915\"\n cy=\"300.3695909538287\"\n r=\"16\"\n opacity=\"0.65\"\n ></circle>\n <circle\n cx=\"313.2064370334158\"\n cy=\"298.4088543485761\"\n r=\"16\"\n opacity=\"0.6346938775510204\"\n ></circle>\n <circle\n cx=\"314.9066664678467\"\n cy=\"296.4181414529809\"\n r=\"16\"\n opacity=\"0.62\"\n ></circle>\n <circle\n cx=\"316.5718942185456\"\n cy=\"294.39805865747564\"\n r=\"16\"\n opacity=\"0.6058823529411764\"\n ></circle>\n <circle\n cx=\"318.2016130410083\"\n cy=\"292.34922129884876\"\n r=\"16\"\n opacity=\"0.5923076923076923\"\n ></circle>\n <circle\n cx=\"319.79532650709393\"\n cy=\"290.2722534728073\"\n r=\"16\"\n opacity=\"0.5792452830188679\"\n ></circle>\n <circle\n cx=\"321.3525491562421\"\n cy=\"288.167787843871\"\n r=\"16\"\n opacity=\"0.5666666666666667\"\n ></circle>\n <circle\n cx=\"322.8728066433488\"\n cy=\"286.0364654526569\"\n r=\"16\"\n opacity=\"0.5545454545454546\"\n ></circle>\n <circle\n cx=\"324.35563588325624\"\n cy=\"283.878935520612\"\n r=\"16\"\n opacity=\"0.5428571428571428\"\n ></circle>\n <circle\n cx=\"325.8005851918136\"\n cy=\"281.6958552522541\"\n r=\"16\"\n opacity=\"0.531578947368421\"\n ></circle>\n <circle\n cx=\"327.2072144234639\"\n cy=\"279.4878896349807\"\n r=\"16\"\n opacity=\"0.5206896551724138\"\n ></circle>\n <circle\n cx=\"328.5750951053168\"\n cy=\"277.25571123650815\"\n r=\"16\"\n opacity=\"0.5101694915254237\"\n ></circle>\n <circle cx=\"329.9038105676658\" cy=\"275\" r=\"16\" opacity=\"0.5\"></circle>\n <circle\n cx=\"331.19295607090936\"\n cy=\"272.7214430369506\"\n r=\"16\"\n opacity=\"0.4901639344262295\"\n ></circle>\n <circle\n cx=\"332.44213892883903\"\n cy=\"270.42073441788364\"\n r=\"16\"\n opacity=\"0.4806451612903226\"\n ></circle>\n <circle\n cx=\"333.6509786282552\"\n cy=\"268.098574960932\"\n r=\"16\"\n opacity=\"0.4714285714285714\"\n ></circle>\n <circle\n cx=\"334.81910694487505\"\n cy=\"265.7556720183616\"\n r=\"16\"\n opacity=\"0.4625\"\n ></circle>\n <circle\n cx=\"335.9461680554975\"\n cy=\"263.3927392611049\"\n r=\"16\"\n opacity=\"0.45384615384615384\"\n ></circle>\n <circle\n cx=\"337.0318186463901\"\n cy=\"261.01049646137005\"\n r=\"16\"\n opacity=\"0.44545454545454544\"\n ></circle>\n <circle\n cx=\"338.075728017866\"\n cy=\"258.6096692733911\"\n r=\"16\"\n opacity=\"0.4373134328358209\"\n ></circle>\n <circle\n cx=\"339.0775781850181\"\n cy=\"256.1909890123868\"\n r=\"16\"\n opacity=\"0.4294117647058823\"\n ></circle>\n <circle\n cx=\"340.0370639745803\"\n cy=\"253.75519243179505\"\n r=\"16\"\n opacity=\"0.4217391304347826\"\n ></circle>\n <circle\n cx=\"340.95389311788625\"\n cy=\"251.3030214988503\"\n r=\"16\"\n opacity=\"0.4142857142857143\"\n ></circle>\n <circle\n cx=\"341.8277863398975\"\n cy=\"248.83522316857352\"\n r=\"16\"\n opacity=\"0.4070422535211268\"\n ></circle>\n <circle\n cx=\"342.658477444273\"\n cy=\"246.3525491562421\"\n r=\"16\"\n opacity=\"0.4\"\n ></circle>\n <circle\n cx=\"343.4457133944553\"\n cy=\"243.85575570841053\"\n r=\"16\"\n opacity=\"0.39315068493150684\"\n ></circle>\n <circle\n cx=\"344.1892543907478\"\n cy=\"241.34560337254987\"\n r=\"16\"\n opacity=\"0.38648648648648654\"\n ></circle>\n <circle\n cx=\"344.88887394336024\"\n cy=\"238.8228567653781\"\n r=\"16\"\n opacity=\"0.38\"\n ></circle>\n <circle\n cx=\"345.5443589413995\"\n cy=\"236.2882843399502\"\n r=\"16\"\n opacity=\"0.3736842105263158\"\n ></circle>\n <circle\n cx=\"346.1555097177853\"\n cy=\"233.74265815157975\"\n r=\"16\"\n opacity=\"0.36753246753246754\"\n ></circle>\n <circle\n cx=\"346.7221401100708\"\n cy=\"231.18675362266393\"\n r=\"16\"\n opacity=\"0.36153846153846153\"\n ></circle>\n <circle\n cx=\"347.2440775171496\"\n cy=\"228.62134930648173\"\n r=\"16\"\n opacity=\"0.3556962025316455\"\n ></circle>\n <circle\n cx=\"347.72116295183116\"\n cy=\"226.04722665003956\"\n r=\"16\"\n opacity=\"0.35\"\n ></circle>\n <circle\n cx=\"348.15325108927067\"\n cy=\"223.46516975603464\"\n r=\"16\"\n opacity=\"0.34444444444444444\"\n ></circle>\n <circle\n cx=\"348.54021031123557\"\n cy=\"220.87596514400985\"\n r=\"16\"\n opacity=\"0.33902439024390246\"\n ></circle>\n <circle\n cx=\"348.88192274619826\"\n cy=\"218.28040151077212\"\n r=\"16\"\n opacity=\"0.3337349397590362\"\n ></circle>\n <circle\n cx=\"349.178284305241\"\n cy=\"215.67926949014802\"\n r=\"16\"\n opacity=\"0.32857142857142857\"\n ></circle>\n <circle\n cx=\"349.4292047137618\"\n cy=\"213.07336141214873\"\n r=\"16\"\n opacity=\"0.3235294117647059\"\n ></circle>\n <circle\n cx=\"349.6346075389736\"\n cy=\"210.4634710616188\"\n r=\"16\"\n opacity=\"0.3186046511627907\"\n ></circle>\n <circle\n cx=\"349.79443021318605\"\n cy=\"207.8503934364416\"\n r=\"16\"\n opacity=\"0.3137931034482759\"\n ></circle>\n <circle\n cx=\"349.90862405286435\"\n cy=\"205.23492450537515\"\n r=\"16\"\n opacity=\"0.309090909090909\"\n ></circle>\n <circle\n cx=\"349.9771542734587\"\n cy=\"202.6178609655925\"\n r=\"16\"\n opacity=\"0.3044943820224719\"\n ></circle>\n <circle cx=\"350\" cy=\"200\" r=\"16\" opacity=\"0.3\"></circle>\n <circle\n cx=\"349.9771542734587\"\n cy=\"197.3821390344075\"\n r=\"16\"\n opacity=\"0.2956043956043956\"\n ></circle>\n <circle\n cx=\"349.90862405286435\"\n cy=\"194.76507549462488\"\n r=\"16\"\n opacity=\"0.291304347826087\"\n ></circle>\n <circle\n cx=\"349.79443021318605\"\n cy=\"192.14960656355845\"\n r=\"16\"\n opacity=\"0.2870967741935484\"\n ></circle>\n <circle\n cx=\"349.6346075389736\"\n cy=\"189.5365289383812\"\n r=\"16\"\n opacity=\"0.28297872340425534\"\n ></circle>\n <circle\n cx=\"349.4292047137618\"\n cy=\"186.92663858785127\"\n r=\"16\"\n opacity=\"0.2789473684210526\"\n ></circle>\n <circle\n cx=\"349.17828430524105\"\n cy=\"184.320730509852\"\n r=\"16\"\n opacity=\"0.275\"\n ></circle>\n <circle\n cx=\"348.8819227461983\"\n cy=\"181.7195984892279\"\n r=\"16\"\n opacity=\"0.2711340206185567\"\n ></circle>\n <circle\n cx=\"348.54021031123557\"\n cy=\"179.1240348559902\"\n r=\"16\"\n opacity=\"0.2673469387755102\"\n ></circle>\n <circle\n cx=\"348.1532510892706\"\n cy=\"176.53483024396536\"\n r=\"16\"\n opacity=\"0.2636363636363636\"\n ></circle>\n <circle\n cx=\"347.72116295183116\"\n cy=\"173.95277334996047\"\n r=\"16\"\n opacity=\"0.26\"\n ></circle>\n <circle\n cx=\"347.2440775171496\"\n cy=\"171.37865069351827\"\n r=\"16\"\n opacity=\"0.25643564356435644\"\n ></circle>\n <circle\n cx=\"346.7221401100709\"\n cy=\"168.81324637733613\"\n r=\"16\"\n opacity=\"0.2529411764705882\"\n ></circle>\n <circle\n cx=\"346.1555097177853\"\n cy=\"166.25734184842028\"\n r=\"16\"\n opacity=\"0.24951456310679612\"\n ></circle>\n <circle\n cx=\"345.5443589413995\"\n cy=\"163.71171566004983\"\n r=\"16\"\n opacity=\"0.24615384615384617\"\n ></circle>\n <circle\n cx=\"344.88887394336024\"\n cy=\"161.17714323462187\"\n r=\"16\"\n opacity=\"0.24285714285714285\"\n ></circle>\n <circle\n cx=\"344.1892543907478\"\n cy=\"158.65439662745013\"\n r=\"16\"\n opacity=\"0.23962264150943396\"\n ></circle>\n <circle\n cx=\"343.4457133944553\"\n cy=\"156.1442442915895\"\n r=\"16\"\n opacity=\"0.23644859813084113\"\n ></circle>\n <circle\n cx=\"342.65847744427305\"\n cy=\"153.6474508437579\"\n r=\"16\"\n opacity=\"0.23333333333333334\"\n ></circle>\n <circle\n cx=\"341.82778633989756\"\n cy=\"151.16477683142654\"\n r=\"16\"\n opacity=\"0.23027522935779818\"\n ></circle>\n <circle\n cx=\"340.95389311788625\"\n cy=\"148.6969785011497\"\n r=\"16\"\n opacity=\"0.22727272727272727\"\n ></circle>\n <circle\n cx=\"340.0370639745803\"\n cy=\"146.24480756820498\"\n r=\"16\"\n opacity=\"0.22432432432432434\"\n ></circle>\n <circle\n cx=\"339.0775781850181\"\n cy=\"143.8090109876132\"\n r=\"16\"\n opacity=\"0.22142857142857142\"\n ></circle>\n <circle\n cx=\"338.075728017866\"\n cy=\"141.39033072660897\"\n r=\"16\"\n opacity=\"0.21858407079646017\"\n ></circle>\n <circle\n cx=\"337.03181864639015\"\n cy=\"138.98950353863\"\n r=\"16\"\n opacity=\"0.21578947368421053\"\n ></circle>\n <circle\n cx=\"335.94616805549754\"\n cy=\"136.6072607388951\"\n r=\"16\"\n opacity=\"0.21304347826086956\"\n ></circle>\n <circle\n cx=\"334.81910694487505\"\n cy=\"134.24432798163838\"\n r=\"16\"\n opacity=\"0.2103448275862069\"\n ></circle>\n <circle\n cx=\"333.6509786282552\"\n cy=\"131.901425039068\"\n r=\"16\"\n opacity=\"0.2076923076923077\"\n ></circle>\n <circle\n cx=\"332.4421389288391\"\n cy=\"129.57926558211642\"\n r=\"16\"\n opacity=\"0.20508474576271185\"\n ></circle>\n <circle\n cx=\"331.1929560709094\"\n cy=\"127.27855696304945\"\n r=\"16\"\n opacity=\"0.20252100840336135\"\n ></circle>\n <circle\n cx=\"329.9038105676658\"\n cy=\"125.00000000000003\"\n r=\"16\"\n opacity=\"0.2\"\n ></circle>\n <circle\n cx=\"328.57509510531685\"\n cy=\"122.74428876349187\"\n r=\"16\"\n opacity=\"0.1975206611570248\"\n ></circle>\n <circle\n cx=\"327.20721442346394\"\n cy=\"120.51211036501928\"\n r=\"16\"\n opacity=\"0.19508196721311474\"\n ></circle>\n <circle\n cx=\"325.8005851918136\"\n cy=\"118.30414474774594\"\n r=\"16\"\n opacity=\"0.1926829268292683\"\n ></circle>\n <circle\n cx=\"324.35563588325624\"\n cy=\"116.121064479388\"\n r=\"16\"\n opacity=\"0.19032258064516128\"\n ></circle>\n <circle\n cx=\"322.8728066433488\"\n cy=\"113.96353454734313\"\n r=\"16\"\n opacity=\"0.188\"\n ></circle>\n <circle\n cx=\"321.3525491562421\"\n cy=\"111.83221215612905\"\n r=\"16\"\n opacity=\"0.18571428571428572\"\n ></circle>\n <circle\n cx=\"319.79532650709393\"\n cy=\"109.72774652719275\"\n r=\"16\"\n opacity=\"0.18346456692913385\"\n ></circle>\n <circle\n cx=\"318.2016130410083\"\n cy=\"107.65077870115125\"\n r=\"16\"\n opacity=\"0.18125\"\n ></circle>\n <circle\n cx=\"316.57189421854565\"\n cy=\"105.60194134252441\"\n r=\"16\"\n opacity=\"0.17906976744186046\"\n ></circle>\n <circle\n cx=\"314.9066664678467\"\n cy=\"103.5818585470191\"\n r=\"16\"\n opacity=\"0.17692307692307693\"\n ></circle>\n <circle\n cx=\"313.2064370334158\"\n cy=\"101.59114565142387\"\n r=\"16\"\n opacity=\"0.17480916030534352\"\n ></circle>\n <circle\n cx=\"311.47172382160915\"\n cy=\"99.63040904617127\"\n r=\"16\"\n opacity=\"0.17272727272727273\"\n ></circle>\n <circle\n cx=\"309.7030552428756\"\n cy=\"97.70024599062525\"\n r=\"16\"\n opacity=\"0.17067669172932332\"\n ></circle>\n <circle\n cx=\"307.9009700507977\"\n cy=\"95.80124443115045\"\n r=\"16\"\n opacity=\"0.16865671641791044\"\n ></circle>\n <circle\n cx=\"306.06601717798213\"\n cy=\"93.93398282201788\"\n r=\"16\"\n opacity=\"0.16666666666666666\"\n ></circle>\n <circle\n cx=\"304.1987555688496\"\n cy=\"92.09902994920232\"\n r=\"16\"\n opacity=\"0.16470588235294117\"\n ></circle>\n <circle\n cx=\"302.2997540093748\"\n cy=\"90.29694475712444\"\n r=\"16\"\n opacity=\"0.16277372262773723\"\n ></circle>\n <circle\n cx=\"300.3695909538287\"\n cy=\"88.5282761783909\"\n r=\"16\"\n opacity=\"0.1608695652173913\"\n ></circle>\n <circle\n cx=\"298.4088543485761\"\n cy=\"86.7935629665842\"\n r=\"16\"\n opacity=\"0.15899280575539568\"\n ></circle>\n <circle\n cx=\"296.41814145298093\"\n cy=\"85.09333353215331\"\n r=\"16\"\n opacity=\"0.15714285714285714\"\n ></circle>\n <circle\n cx=\"294.39805865747564\"\n cy=\"83.42810578145439\"\n r=\"16\"\n opacity=\"0.15531914893617021\"\n ></circle>\n <circle\n cx=\"292.34922129884876\"\n cy=\"81.79838695899171\"\n r=\"16\"\n opacity=\"0.15352112676056337\"\n ></circle>\n <circle\n cx=\"290.2722534728072\"\n cy=\"80.20467349290605\"\n r=\"16\"\n opacity=\"0.15174825174825174\"\n ></circle>\n <circle\n cx=\"288.167787843871\"\n cy=\"78.6474508437579\"\n r=\"16\"\n opacity=\"0.15\"\n ></circle>\n <circle\n cx=\"286.03646545265696\"\n cy=\"77.12719335665126\"\n r=\"16\"\n opacity=\"0.1482758620689655\"\n ></circle>\n <circle\n cx=\"283.878935520612\"\n cy=\"75.64436411674376\"\n r=\"16\"\n opacity=\"0.14657534246575343\"\n ></circle>\n <circle\n cx=\"281.69585525225403\"\n cy=\"74.19941480818638\"\n r=\"16\"\n opacity=\"0.14489795918367346\"\n ></circle>\n <circle\n cx=\"279.4878896349807\"\n cy=\"72.7927855765361\"\n r=\"16\"\n opacity=\"0.14324324324324328\"\n ></circle>\n <circle\n cx=\"277.25571123650815\"\n cy=\"71.42490489468318\"\n r=\"16\"\n opacity=\"0.14161073825503354\"\n ></circle>\n <circle cx=\"275\" cy=\"70.0961894323342\" r=\"16\" opacity=\"0.14\"></circle>\n <circle\n cx=\"272.7214430369506\"\n cy=\"68.80704392909064\"\n r=\"16\"\n opacity=\"0.13841059602649006\"\n ></circle>\n <circle\n cx=\"270.42073441788364\"\n cy=\"67.55786107116097\"\n r=\"16\"\n opacity=\"0.1368421052631579\"\n ></circle>\n <circle\n cx=\"268.098574960932\"\n cy=\"66.34902137174484\"\n r=\"16\"\n opacity=\"0.13529411764705881\"\n ></circle>\n <circle\n cx=\"265.75567201836157\"\n cy=\"65.18089305512495\"\n r=\"16\"\n opacity=\"0.13376623376623376\"\n ></circle>\n <circle\n cx=\"263.3927392611049\"\n cy=\"64.05383194450252\"\n r=\"16\"\n opacity=\"0.13225806451612904\"\n ></circle>\n <circle\n cx=\"261.01049646137005\"\n cy=\"62.96818135360988\"\n r=\"16\"\n opacity=\"0.13076923076923078\"\n ></circle>\n <circle\n cx=\"258.60966927339115\"\n cy=\"61.92427198213397\"\n r=\"16\"\n opacity=\"0.12929936305732487\"\n ></circle>\n <circle\n cx=\"256.1909890123868\"\n cy=\"60.9224218149819\"\n r=\"16\"\n opacity=\"0.12784810126582277\"\n ></circle>\n <circle\n cx=\"253.75519243179502\"\n cy=\"59.96293602541974\"\n r=\"16\"\n opacity=\"0.12641509433962264\"\n ></circle>\n <circle\n cx=\"251.30302149885034\"\n cy=\"59.04610688211375\"\n r=\"16\"\n opacity=\"0.125\"\n ></circle>\n <circle\n cx=\"248.83522316857355\"\n cy=\"58.1722136601025\"\n r=\"16\"\n opacity=\"0.12360248447204969\"\n ></circle>\n <circle\n cx=\"246.35254915624213\"\n cy=\"57.34152255572698\"\n r=\"16\"\n opacity=\"0.12222222222222222\"\n ></circle>\n <circle\n cx=\"243.85575570841056\"\n cy=\"56.55428660554469\"\n r=\"16\"\n opacity=\"0.12085889570552147\"\n ></circle>\n <circle\n cx=\"241.34560337254996\"\n cy=\"55.810745609252194\"\n r=\"16\"\n opacity=\"0.11951219512195121\"\n ></circle>\n <circle\n cx=\"238.82285676537816\"\n cy=\"55.11112605663976\"\n r=\"16\"\n opacity=\"0.11818181818181818\"\n ></circle>\n <circle\n cx=\"236.28828433995017\"\n cy=\"54.45564105860052\"\n r=\"16\"\n opacity=\"0.11686746987951808\"\n ></circle>\n <circle\n cx=\"233.74265815157972\"\n cy=\"53.84449028221471\"\n r=\"16\"\n opacity=\"0.11556886227544909\"\n ></circle>\n <circle\n cx=\"231.1867536226639\"\n cy=\"53.27785988992915\"\n r=\"16\"\n opacity=\"0.11428571428571428\"\n ></circle>\n <circle\n cx=\"228.62134930648176\"\n cy=\"52.755922482850394\"\n r=\"16\"\n opacity=\"0.11301775147928994\"\n ></circle>\n <circle\n cx=\"226.04722665003953\"\n cy=\"52.27883704816881\"\n r=\"16\"\n opacity=\"0.11176470588235295\"\n ></circle>\n <circle\n cx=\"223.46516975603464\"\n cy=\"51.84674891072936\"\n r=\"16\"\n opacity=\"0.11052631578947368\"\n ></circle>\n <circle\n cx=\"220.87596514400985\"\n cy=\"51.45978968876446\"\n r=\"16\"\n opacity=\"0.10930232558139535\"\n ></circle>\n <circle\n cx=\"218.28040151077212\"\n cy=\"51.118077253801715\"\n r=\"16\"\n opacity=\"0.10809248554913295\"\n ></circle>\n <circle\n cx=\"215.67926949014807\"\n cy=\"50.82171569475901\"\n r=\"16\"\n opacity=\"0.10689655172413794\"\n ></circle>\n <circle\n cx=\"213.07336141214878\"\n cy=\"50.570795286238166\"\n r=\"16\"\n opacity=\"0.10571428571428573\"\n ></circle>\n <circle\n cx=\"210.46347106161883\"\n cy=\"50.365392461026374\"\n r=\"16\"\n opacity=\"0.10454545454545454\"\n ></circle>\n <circle\n cx=\"207.85039343644158\"\n cy=\"50.205569786813925\"\n r=\"16\"\n opacity=\"0.10338983050847457\"\n ></circle>\n <circle\n cx=\"205.2349245053751\"\n cy=\"50.091375947135646\"\n r=\"16\"\n opacity=\"0.10224719101123596\"\n ></circle>\n <circle\n cx=\"202.6178609655925\"\n cy=\"50.022845726541306\"\n r=\"16\"\n opacity=\"0.1011173184357542\"\n ></circle>\n <circle cx=\"200.00000000000003\" cy=\"50\" r=\"16\" opacity=\"0.1\"></circle>\n <circle\n cx=\"197.38213903440752\"\n cy=\"50.022845726541306\"\n r=\"16\"\n opacity=\"0.09889502762430939\"\n ></circle>\n <circle\n cx=\"194.76507549462485\"\n cy=\"50.091375947135646\"\n r=\"16\"\n opacity=\"0.0978021978021978\"\n ></circle>\n <circle\n cx=\"192.14960656355848\"\n cy=\"50.205569786813925\"\n r=\"16\"\n opacity=\"0.09672131147540984\"\n ></circle>\n <circle\n cx=\"189.53652893838128\"\n cy=\"50.365392461026346\"\n r=\"16\"\n opacity=\"0.0956521739130435\"\n ></circle>\n <circle\n cx=\"186.9266385878513\"\n cy=\"50.570795286238166\"\n r=\"16\"\n opacity=\"0.09459459459459459\"\n ></circle>\n <circle\n cx=\"184.32073050985204\"\n cy=\"50.82171569475898\"\n r=\"16\"\n opacity=\"0.0935483870967742\"\n ></circle>\n <circle\n cx=\"181.71959848922785\"\n cy=\"51.118077253801715\"\n r=\"16\"\n opacity=\"0.09251336898395722\"\n ></circle>\n <circle\n cx=\"179.12403485599017\"\n cy=\"51.45978968876446\"\n r=\"16\"\n opacity=\"0.09148936170212765\"\n ></circle>\n <circle\n cx=\"176.5348302439654\"\n cy=\"51.84674891072933\"\n r=\"16\"\n opacity=\"0.09047619047619047\"\n ></circle>\n <circle\n cx=\"173.95277334996044\"\n cy=\"52.27883704816881\"\n r=\"16\"\n opacity=\"0.08947368421052632\"\n ></circle>\n <circle\n cx=\"171.3786506935183\"\n cy=\"52.755922482850394\"\n r=\"16\"\n opacity=\"0.08848167539267016\"\n ></circle>\n <circle\n cx=\"168.81324637733613\"\n cy=\"53.27785988992915\"\n r=\"16\"\n opacity=\"0.0875\"\n ></circle>\n <circle\n cx=\"166.25734184842025\"\n cy=\"53.84449028221471\"\n r=\"16\"\n opacity=\"0.08652849740932643\"\n ></circle>\n <circle\n cx=\"163.7117156600499\"\n cy=\"54.45564105860052\"\n r=\"16\"\n opacity=\"0.08556701030927834\"\n ></circle>\n <circle\n cx=\"161.17714323462195\"\n cy=\"55.11112605663973\"\n r=\"16\"\n opacity=\"0.08461538461538462\"\n ></circle>\n <circle\n cx=\"158.65439662745015\"\n cy=\"55.810745609252166\"\n r=\"16\"\n opacity=\"0.0836734693877551\"\n ></circle>\n <circle\n cx=\"156.14424429158953\"\n cy=\"56.55428660554466\"\n r=\"16\"\n opacity=\"0.08274111675126904\"\n ></circle>\n <circle\n cx=\"153.64745084375784\"\n cy=\"57.34152255572698\"\n r=\"16\"\n opacity=\"0.08181818181818182\"\n ></circle>\n <circle\n cx=\"151.16477683142648\"\n cy=\"58.1722136601025\"\n r=\"16\"\n opacity=\"0.08090452261306533\"\n ></circle>\n <circle\n cx=\"148.69697850114972\"\n cy=\"59.04610688211375\"\n r=\"16\"\n opacity=\"0.08\"\n ></circle>\n <circle\n cx=\"146.24480756820492\"\n cy=\"59.96293602541974\"\n r=\"16\"\n opacity=\"0.0791044776119403\"\n ></circle>\n <circle\n cx=\"143.8090109876132\"\n cy=\"60.922421814981874\"\n r=\"16\"\n opacity=\"0.07821782178217823\"\n ></circle>\n <circle\n cx=\"141.39033072660897\"\n cy=\"61.924271982133945\"\n r=\"16\"\n opacity=\"0.0773399014778325\"\n ></circle>\n <circle\n cx=\"138.98950353863003\"\n cy=\"62.96818135360985\"\n r=\"16\"\n opacity=\"0.07647058823529412\"\n ></circle>\n <circle\n cx=\"136.6072607388951\"\n cy=\"64.05383194450249\"\n r=\"16\"\n opacity=\"0.07560975609756097\"\n ></circle>\n <circle\n cx=\"134.24432798163843\"\n cy=\"65.18089305512493\"\n r=\"16\"\n opacity=\"0.07475728155339806\"\n ></circle>\n <circle\n cx=\"131.90142503906804\"\n cy=\"66.34902137174478\"\n r=\"16\"\n opacity=\"0.07391304347826087\"\n ></circle>\n <circle\n cx=\"129.57926558211636\"\n cy=\"67.55786107116097\"\n r=\"16\"\n opacity=\"0.07307692307692308\"\n ></circle>\n <circle\n cx=\"127.27855696304945\"\n cy=\"68.80704392909061\"\n r=\"16\"\n opacity=\"0.0722488038277512\"\n ></circle>\n <circle\n cx=\"124.99999999999999\"\n cy=\"70.0961894323342\"\n r=\"16\"\n opacity=\"0.07142857142857142\"\n ></circle>\n <circle\n cx=\"122.74428876349188\"\n cy=\"71.42490489468315\"\n r=\"16\"\n opacity=\"0.07061611374407582\"\n ></circle>\n <circle\n cx=\"120.51211036501928\"\n cy=\"72.79278557653609\"\n r=\"16\"\n opacity=\"0.06981132075471698\"\n ></circle>\n <circle\n cx=\"118.30414474774594\"\n cy=\"74.19941480818639\"\n r=\"16\"\n opacity=\"0.06901408450704226\"\n ></circle>\n <circle\n cx=\"116.121064479388\"\n cy=\"75.64436411674372\"\n r=\"16\"\n opacity=\"0.06822429906542056\"\n ></circle>\n <circle\n cx=\"113.96353454734313\"\n cy=\"77.12719335665119\"\n r=\"16\"\n opacity=\"0.06744186046511629\"\n ></circle>\n <circle\n cx=\"111.83221215612905\"\n cy=\"78.64745084375787\"\n r=\"16\"\n opacity=\"0.06666666666666667\"\n ></circle>\n <circle\n cx=\"109.72774652719279\"\n cy=\"80.20467349290604\"\n r=\"16\"\n opacity=\"0.06589861751152074\"\n ></circle>\n <circle\n cx=\"107.65077870115132\"\n cy=\"81.79838695899167\"\n r=\"16\"\n opacity=\"0.06513761467889909\"\n ></circle>\n <circle\n cx=\"105.60194134252436\"\n cy=\"83.42810578145438\"\n r=\"16\"\n opacity=\"0.06438356164383562\"\n ></circle>\n <circle\n cx=\"103.58185854701911\"\n cy=\"85.0933335321533\"\n r=\"16\"\n opacity=\"0.06363636363636363\"\n ></circle>\n <circle\n cx=\"101.59114565142389\"\n cy=\"86.79356296658422\"\n r=\"16\"\n opacity=\"0.06289592760180995\"\n ></circle>\n <circle\n cx=\"99.63040904617127\"\n cy=\"88.52827617839087\"\n r=\"16\"\n opacity=\"0.062162162162162166\"\n ></circle>\n <circle\n cx=\"97.70024599062525\"\n cy=\"90.29694475712441\"\n r=\"16\"\n opacity=\"0.06143497757847534\"\n ></circle>\n <circle\n cx=\"95.8012444311504\"\n cy=\"92.09902994920233\"\n r=\"16\"\n opacity=\"0.060714285714285714\"\n ></circle>\n <circle\n cx=\"93.93398282201788\"\n cy=\"93.93398282201785\"\n r=\"16\"\n opacity=\"0.06\"\n ></circle>\n <circle\n cx=\"92.09902994920238\"\n cy=\"95.80124443115037\"\n r=\"16\"\n opacity=\"0.05929203539823009\"\n ></circle>\n <circle\n cx=\"90.29694475712448\"\n cy=\"97.70024599062516\"\n r=\"16\"\n opacity=\"0.05859030837004405\"\n ></circle>\n <circle\n cx=\"88.5282761783909\"\n cy=\"99.63040904617124\"\n r=\"16\"\n opacity=\"0.05789473684210526\"\n ></circle>\n <circle\n cx=\"86.79356296658425\"\n cy=\"101.59114565142386\"\n r=\"16\"\n opacity=\"0.05720524017467249\"\n ></circle>\n <circle\n cx=\"85.09333353215331\"\n cy=\"103.58185854701908\"\n r=\"16\"\n opacity=\"0.05652173913043478\"\n ></circle>\n <circle\n cx=\"83.42810578145433\"\n cy=\"105.60194134252443\"\n r=\"16\"\n opacity=\"0.05584415584415584\"\n ></circle>\n <circle\n cx=\"81.79838695899168\"\n cy=\"107.6507787011513\"\n r=\"16\"\n opacity=\"0.05517241379310345\"\n ></circle>\n <circle\n cx=\"80.20467349290608\"\n cy=\"109.72774652719276\"\n r=\"16\"\n opacity=\"0.054506437768240344\"\n ></circle>\n <circle\n cx=\"78.6474508437579\"\n cy=\"111.83221215612902\"\n r=\"16\"\n opacity=\"0.05384615384615385\"\n ></circle>\n <circle\n cx=\"77.12719335665126\"\n cy=\"113.96353454734304\"\n r=\"16\"\n opacity=\"0.05319148936170213\"\n ></circle>\n <circle\n cx=\"75.64436411674379\"\n cy=\"116.12106447938791\"\n r=\"16\"\n opacity=\"0.05254237288135593\"\n ></circle>\n <circle\n cx=\"74.19941480818639\"\n cy=\"118.30414474774595\"\n r=\"16\"\n opacity=\"0.05189873417721519\"\n ></circle>\n <circle\n cx=\"72.7927855765361\"\n cy=\"120.51211036501925\"\n r=\"16\"\n opacity=\"0.05126050420168067\"\n ></circle>\n <circle\n cx=\"71.42490489468318\"\n cy=\"122.74428876349182\"\n r=\"16\"\n opacity=\"0.050627615062761505\"\n ></circle>\n <circle\n cx=\"70.09618943233426\"\n cy=\"124.99999999999993\"\n r=\"16\"\n opacity=\"0.05\"\n ></circle>\n <circle\n cx=\"68.80704392909061\"\n cy=\"127.27855696304947\"\n r=\"16\"\n opacity=\"0.04937759336099585\"\n ></circle>\n <circle\n cx=\"67.55786107116094\"\n cy=\"129.5792655821164\"\n r=\"16\"\n opacity=\"0.048760330578512395\"\n ></circle>\n <circle\n cx=\"66.34902137174484\"\n cy=\"131.90142503906796\"\n r=\"16\"\n opacity=\"0.04814814814814815\"\n ></circle>\n <circle\n cx=\"65.18089305512498\"\n cy=\"134.24432798163832\"\n r=\"16\"\n opacity=\"0.047540983606557376\"\n ></circle>\n <circle\n cx=\"64.05383194450255\"\n cy=\"136.607260738895\"\n r=\"16\"\n opacity=\"0.04693877551020408\"\n ></circle>\n <circle\n cx=\"62.96818135360985\"\n cy=\"138.98950353862998\"\n r=\"16\"\n opacity=\"0.046341463414634146\"\n ></circle>\n <circle\n cx=\"61.92427198213397\"\n cy=\"141.3903307266089\"\n r=\"16\"\n opacity=\"0.045748987854251015\"\n ></circle>\n <circle\n cx=\"60.9224218149819\"\n cy=\"143.80901098761316\"\n r=\"16\"\n opacity=\"0.04516129032258064\"\n ></circle>\n <circle\n cx=\"59.962936025419765\"\n cy=\"146.2448075682049\"\n r=\"16\"\n opacity=\"0.04457831325301205\"\n ></circle>\n <circle\n cx=\"59.046106882113776\"\n cy=\"148.6969785011496\"\n r=\"16\"\n opacity=\"0.044\"\n ></circle>\n <circle\n cx=\"58.17221366010247\"\n cy=\"151.1647768314265\"\n r=\"16\"\n opacity=\"0.04342629482071713\"\n ></circle>\n <circle\n cx=\"57.34152255572698\"\n cy=\"153.64745084375787\"\n r=\"16\"\n opacity=\"0.04285714285714286\"\n ></circle>\n <circle\n cx=\"56.55428660554469\"\n cy=\"156.14424429158944\"\n r=\"16\"\n opacity=\"0.042292490118577074\"\n ></circle>\n <circle\n cx=\"55.81074560925214\"\n cy=\"158.65439662745018\"\n r=\"16\"\n opacity=\"0.04173228346456693\"\n ></circle>\n <circle\n cx=\"55.11112605663976\"\n cy=\"161.1771432346219\"\n r=\"16\"\n opacity=\"0.041176470588235294\"\n ></circle>\n <circle\n cx=\"54.45564105860052\"\n cy=\"163.71171566004983\"\n r=\"16\"\n opacity=\"0.040625\"\n ></circle>\n <circle\n cx=\"53.844490282214736\"\n cy=\"166.2573418484202\"\n r=\"16\"\n opacity=\"0.040077821011673155\"\n ></circle>\n <circle\n cx=\"53.277859889929175\"\n cy=\"168.81324637733604\"\n r=\"16\"\n opacity=\"0.03953488372093023\"\n ></circle>\n <circle\n cx=\"52.75592248285042\"\n cy=\"171.37865069351818\"\n r=\"16\"\n opacity=\"0.038996138996139\"\n ></circle>\n <circle\n cx=\"52.27883704816881\"\n cy=\"173.95277334996044\"\n r=\"16\"\n opacity=\"0.038461538461538464\"\n ></circle>\n <circle\n cx=\"51.84674891072936\"\n cy=\"176.53483024396536\"\n r=\"16\"\n opacity=\"0.03793103448275862\"\n ></circle>\n <circle\n cx=\"51.45978968876446\"\n cy=\"179.12403485599026\"\n r=\"16\"\n opacity=\"0.03740458015267176\"\n ></circle>\n <circle\n cx=\"51.11807725380169\"\n cy=\"181.71959848922793\"\n r=\"16\"\n opacity=\"0.03688212927756654\"\n ></circle>\n <circle\n cx=\"50.82171569475898\"\n cy=\"184.32073050985198\"\n r=\"16\"\n opacity=\"0.03636363636363636\"\n ></circle>\n <circle\n cx=\"50.570795286238166\"\n cy=\"186.92663858785127\"\n r=\"16\"\n opacity=\"0.035849056603773584\"\n ></circle>\n <circle\n cx=\"50.365392461026374\"\n cy=\"189.53652893838117\"\n r=\"16\"\n opacity=\"0.035338345864661655\"\n ></circle>\n <circle\n cx=\"50.205569786813925\"\n cy=\"192.14960656355836\"\n r=\"16\"\n opacity=\"0.0348314606741573\"\n ></circle>\n <circle\n cx=\"50.091375947135646\"\n cy=\"194.76507549462474\"\n r=\"16\"\n opacity=\"0.034328358208955224\"\n ></circle>\n <circle\n cx=\"50.022845726541306\"\n cy=\"197.3821390344075\"\n r=\"16\"\n opacity=\"0.03382899628252788\"\n ></circle>\n <circle\n cx=\"50\"\n cy=\"199.99999999999997\"\n r=\"16\"\n opacity=\"0.03333333333333333\"\n ></circle>\n <circle\n cx=\"50.022845726541306\"\n cy=\"202.61786096559246\"\n r=\"16\"\n opacity=\"0.03284132841328413\"\n ></circle>\n <circle\n cx=\"50.091375947135646\"\n cy=\"205.2349245053752\"\n r=\"16\"\n opacity=\"0.03235294117647059\"\n ></circle>\n <circle\n cx=\"50.205569786813925\"\n cy=\"207.85039343644158\"\n r=\"16\"\n opacity=\"0.031868131868131866\"\n ></circle>\n <circle\n cx=\"50.365392461026346\"\n cy=\"210.46347106161878\"\n r=\"16\"\n opacity=\"0.031386861313868614\"\n ></circle>\n <circle\n cx=\"50.570795286238166\"\n cy=\"213.07336141214867\"\n r=\"16\"\n opacity=\"0.03090909090909091\"\n ></circle>\n <circle\n cx=\"50.82171569475898\"\n cy=\"215.67926949014796\"\n r=\"16\"\n opacity=\"0.030434782608695653\"\n ></circle>\n <circle\n cx=\"51.118077253801715\"\n cy=\"218.28040151077215\"\n r=\"16\"\n opacity=\"0.029963898916967508\"\n ></circle>\n <circle\n cx=\"51.45978968876446\"\n cy=\"220.87596514400983\"\n r=\"16\"\n opacity=\"0.029496402877697843\"\n ></circle>\n <circle\n cx=\"51.84674891072933\"\n cy=\"223.4651697560346\"\n r=\"16\"\n opacity=\"0.02903225806451613\"\n ></circle>\n <circle\n cx=\"52.27883704816878\"\n cy=\"226.0472266500395\"\n r=\"16\"\n opacity=\"0.02857142857142857\"\n ></circle>\n <circle\n cx=\"52.755922482850394\"\n cy=\"228.62134930648165\"\n r=\"16\"\n opacity=\"0.028113879003558717\"\n ></circle>\n <circle\n cx=\"53.27785988992912\"\n cy=\"231.1867536226638\"\n r=\"16\"\n opacity=\"0.027659574468085105\"\n ></circle>\n <circle\n cx=\"53.84449028221471\"\n cy=\"233.74265815157975\"\n r=\"16\"\n opacity=\"0.027208480565371024\"\n ></circle>\n <circle\n cx=\"54.45564105860052\"\n cy=\"236.2882843399501\"\n r=\"16\"\n opacity=\"0.02676056338028169\"\n ></circle>\n <circle\n cx=\"55.11112605663976\"\n cy=\"238.82285676537816\"\n r=\"16\"\n opacity=\"0.02631578947368421\"\n ></circle>\n <circle\n cx=\"55.810745609252194\"\n cy=\"241.3456033725499\"\n r=\"16\"\n opacity=\"0.025874125874125874\"\n ></circle>\n <circle\n cx=\"56.55428660554469\"\n cy=\"243.8557557084105\"\n r=\"16\"\n opacity=\"0.025435540069686412\"\n ></circle>\n <circle\n cx=\"57.341522555726954\"\n cy=\"246.35254915624208\"\n r=\"16\"\n opacity=\"0.025\"\n ></circle>\n <circle\n cx=\"58.17221366010244\"\n cy=\"248.83522316857346\"\n r=\"16\"\n opacity=\"0.0245674740484429\"\n ></circle>\n <circle\n cx=\"59.04610688211372\"\n cy=\"251.30302149885023\"\n r=\"16\"\n opacity=\"0.02413793103448276\"\n ></circle>\n <circle\n cx=\"59.96293602541968\"\n cy=\"253.75519243179494\"\n r=\"16\"\n opacity=\"0.023711340206185566\"\n ></circle>\n <circle\n cx=\"60.922421814981874\"\n cy=\"256.1909890123868\"\n r=\"16\"\n opacity=\"0.023287671232876714\"\n ></circle>\n <circle\n cx=\"61.92427198213392\"\n cy=\"258.60966927339103\"\n r=\"16\"\n opacity=\"0.02286689419795222\"\n ></circle>\n <circle\n cx=\"62.96818135360988\"\n cy=\"261.01049646137005\"\n r=\"16\"\n opacity=\"0.022448979591836733\"\n ></circle>\n <circle\n cx=\"64.05383194450252\"\n cy=\"263.39273926110496\"\n r=\"16\"\n opacity=\"0.022033898305084745\"\n ></circle>\n <circle\n cx=\"65.18089305512495\"\n cy=\"265.7556720183616\"\n r=\"16\"\n opacity=\"0.021621621621621626\"\n ></circle>\n <circle\n cx=\"66.34902137174481\"\n cy=\"268.098574960932\"\n r=\"16\"\n opacity=\"0.021212121212121213\"\n ></circle>\n <circle\n cx=\"67.55786107116094\"\n cy=\"270.4207344178836\"\n r=\"16\"\n opacity=\"0.020805369127516776\"\n ></circle>\n <circle\n cx=\"68.80704392909058\"\n cy=\"272.72144303695046\"\n r=\"16\"\n opacity=\"0.02040133779264214\"\n ></circle>\n <circle cx=\"70.0961894323342\" cy=\"275\" r=\"16\" opacity=\"0.02\"></circle>\n <circle\n cx=\"71.42490489468315\"\n cy=\"277.2557112365081\"\n r=\"16\"\n opacity=\"0.019601328903654486\"\n ></circle>\n <circle\n cx=\"72.79278557653608\"\n cy=\"279.4878896349807\"\n r=\"16\"\n opacity=\"0.019205298013245033\"\n ></circle>\n <circle\n cx=\"74.19941480818636\"\n cy=\"281.695855252254\"\n r=\"16\"\n opacity=\"0.01881188118811881\"\n ></circle>\n <circle\n cx=\"75.64436411674369\"\n cy=\"283.87893552061195\"\n r=\"16\"\n opacity=\"0.018421052631578946\"\n ></circle>\n <circle\n cx=\"77.12719335665123\"\n cy=\"286.0364654526569\"\n r=\"16\"\n opacity=\"0.018032786885245903\"\n ></circle>\n <circle\n cx=\"78.64745084375787\"\n cy=\"288.16778784387094\"\n r=\"16\"\n opacity=\"0.01764705882352941\"\n ></circle>\n <circle\n cx=\"80.20467349290604\"\n cy=\"290.27225347280717\"\n r=\"16\"\n opacity=\"0.017263843648208467\"\n ></circle>\n <circle\n cx=\"81.79838695899173\"\n cy=\"292.34922129884876\"\n r=\"16\"\n opacity=\"0.016883116883116882\"\n ></circle>\n <circle\n cx=\"83.42810578145438\"\n cy=\"294.39805865747564\"\n r=\"16\"\n opacity=\"0.01650485436893204\"\n ></circle>\n <circle\n cx=\"85.09333353215328\"\n cy=\"296.4181414529809\"\n r=\"16\"\n opacity=\"0.016129032258064516\"\n ></circle>\n <circle\n cx=\"86.79356296658416\"\n cy=\"298.408854348576\"\n r=\"16\"\n opacity=\"0.015755627009646302\"\n ></circle>\n <circle\n cx=\"88.52827617839081\"\n cy=\"300.36959095382866\"\n r=\"16\"\n opacity=\"0.015384615384615385\"\n ></circle>\n <circle\n cx=\"90.29694475712435\"\n cy=\"302.29975400937474\"\n r=\"16\"\n opacity=\"0.015015974440894569\"\n ></circle>\n <circle\n cx=\"92.09902994920223\"\n cy=\"304.1987555688495\"\n r=\"16\"\n opacity=\"0.014649681528662422\"\n ></circle>\n <circle\n cx=\"93.93398282201785\"\n cy=\"306.0660171779821\"\n r=\"16\"\n opacity=\"0.014285714285714285\"\n ></circle>\n <circle\n cx=\"95.80124443115037\"\n cy=\"307.90097005079764\"\n r=\"16\"\n opacity=\"0.01392405063291139\"\n ></circle>\n <circle\n cx=\"97.70024599062526\"\n cy=\"309.7030552428756\"\n r=\"16\"\n opacity=\"0.013564668769716088\"\n ></circle>\n <circle\n cx=\"99.63040904617128\"\n cy=\"311.47172382160915\"\n r=\"16\"\n opacity=\"0.013207547169811321\"\n ></circle>\n <circle\n cx=\"101.59114565142389\"\n cy=\"313.2064370334158\"\n r=\"16\"\n opacity=\"0.012852664576802508\"\n ></circle>\n <circle\n cx=\"103.58185854701907\"\n cy=\"314.90666646784666\"\n r=\"16\"\n opacity=\"0.0125\"\n ></circle>\n <circle\n cx=\"105.60194134252433\"\n cy=\"316.5718942185456\"\n r=\"16\"\n opacity=\"0.012149532710280374\"\n ></circle>\n <circle\n cx=\"107.65077870115117\"\n cy=\"318.2016130410082\"\n r=\"16\"\n opacity=\"0.011801242236024845\"\n ></circle>\n <circle\n cx=\"109.72774652719276\"\n cy=\"319.79532650709393\"\n r=\"16\"\n opacity=\"0.011455108359133128\"\n ></circle>\n <circle\n cx=\"111.832212156129\"\n cy=\"321.3525491562421\"\n r=\"16\"\n opacity=\"0.011111111111111112\"\n ></circle>\n <circle\n cx=\"113.96353454734303\"\n cy=\"322.8728066433487\"\n r=\"16\"\n opacity=\"0.010769230769230767\"\n ></circle>\n <circle\n cx=\"116.1210644793879\"\n cy=\"324.35563588325624\"\n r=\"16\"\n opacity=\"0.010429447852760737\"\n ></circle>\n <circle\n cx=\"118.30414474774595\"\n cy=\"325.80058519181364\"\n r=\"16\"\n opacity=\"0.010091743119266056\"\n ></circle>\n <circle\n cx=\"120.51211036501913\"\n cy=\"327.2072144234638\"\n r=\"16\"\n opacity=\"0.00975609756097561\"\n ></circle>\n <circle\n cx=\"122.74428876349182\"\n cy=\"328.5750951053168\"\n r=\"16\"\n opacity=\"0.009422492401215805\"\n ></circle>\n <circle\n cx=\"124.99999999999993\"\n cy=\"329.90381056766574\"\n r=\"16\"\n opacity=\"0.00909090909090909\"\n ></circle>\n <circle\n cx=\"127.27855696304947\"\n cy=\"331.1929560709094\"\n r=\"16\"\n opacity=\"0.008761329305135951\"\n ></circle>\n <circle\n cx=\"129.57926558211636\"\n cy=\"332.44213892883903\"\n r=\"16\"\n opacity=\"0.008433734939759038\"\n ></circle>\n <circle\n cx=\"131.90142503906796\"\n cy=\"333.6509786282552\"\n r=\"16\"\n opacity=\"0.008108108108108109\"\n ></circle>\n <circle\n cx=\"134.24432798163843\"\n cy=\"334.8191069448751\"\n r=\"16\"\n opacity=\"0.00778443113772455\"\n ></circle>\n <circle\n cx=\"136.607260738895\"\n cy=\"335.9461680554974\"\n r=\"16\"\n opacity=\"0.007462686567164179\"\n ></circle>\n <circle\n cx=\"138.98950353862998\"\n cy=\"337.03181864639015\"\n r=\"16\"\n opacity=\"0.007142857142857143\"\n ></circle>\n <circle\n cx=\"141.3903307266088\"\n cy=\"338.075728017866\"\n r=\"16\"\n opacity=\"0.006824925816023739\"\n ></circle>\n <circle\n cx=\"143.80901098761314\"\n cy=\"339.07757818501807\"\n r=\"16\"\n opacity=\"0.00650887573964497\"\n ></circle>\n <circle\n cx=\"146.2448075682049\"\n cy=\"340.03706397458024\"\n r=\"16\"\n opacity=\"0.006194690265486726\"\n ></circle>\n <circle\n cx=\"148.69697850114972\"\n cy=\"340.95389311788625\"\n r=\"16\"\n opacity=\"0.0058823529411764705\"\n ></circle>\n <circle\n cx=\"151.16477683142637\"\n cy=\"341.82778633989744\"\n r=\"16\"\n opacity=\"0.005571847507331379\"\n ></circle>\n <circle\n cx=\"153.64745084375784\"\n cy=\"342.658477444273\"\n r=\"16\"\n opacity=\"0.005263157894736842\"\n ></circle>\n <circle\n cx=\"156.14424429158956\"\n cy=\"343.4457133944553\"\n r=\"16\"\n opacity=\"0.004956268221574344\"\n ></circle>\n <circle\n cx=\"158.65439662745004\"\n cy=\"344.1892543907478\"\n r=\"16\"\n opacity=\"0.004651162790697674\"\n ></circle>\n <circle\n cx=\"161.1771432346219\"\n cy=\"344.88887394336024\"\n r=\"16\"\n opacity=\"0.004347826086956522\"\n ></circle>\n <circle\n cx=\"163.71171566004983\"\n cy=\"345.5443589413995\"\n r=\"16\"\n opacity=\"0.004046242774566474\"\n ></circle>\n <circle\n cx=\"166.2573418484202\"\n cy=\"346.15550971778526\"\n r=\"16\"\n opacity=\"0.0037463976945244955\"\n ></circle>\n <circle\n cx=\"168.81324637733601\"\n cy=\"346.7221401100708\"\n r=\"16\"\n opacity=\"0.0034482758620689655\"\n ></circle>\n <circle\n cx=\"171.3786506935183\"\n cy=\"347.2440775171496\"\n r=\"16\"\n opacity=\"0.003151862464183381\"\n ></circle>\n <circle\n cx=\"173.9527733499603\"\n cy=\"347.72116295183116\"\n r=\"16\"\n opacity=\"0.0028571428571428576\"\n ></circle>\n <circle\n cx=\"176.53483024396533\"\n cy=\"348.1532510892706\"\n r=\"16\"\n opacity=\"0.002564102564102564\"\n ></circle>\n <circle\n cx=\"179.12403485599012\"\n cy=\"348.54021031123557\"\n r=\"16\"\n opacity=\"0.0022727272727272726\"\n ></circle>\n <circle\n cx=\"181.7195984892278\"\n cy=\"348.88192274619826\"\n r=\"16\"\n opacity=\"0.00198300283286119\"\n ></circle>\n <circle\n cx=\"184.32073050985198\"\n cy=\"349.178284305241\"\n r=\"16\"\n opacity=\"0.001694915254237288\"\n ></circle>\n <circle\n cx=\"186.92663858785124\"\n cy=\"349.4292047137618\"\n r=\"16\"\n opacity=\"0.0014084507042253522\"\n ></circle>\n <circle\n cx=\"189.53652893838128\"\n cy=\"349.6346075389737\"\n r=\"16\"\n opacity=\"0.0011235955056179776\"\n ></circle>\n <circle\n cx=\"192.14960656355834\"\n cy=\"349.79443021318605\"\n r=\"16\"\n opacity=\"0.0008403361344537816\"\n ></circle>\n <circle\n cx=\"194.76507549462488\"\n cy=\"349.90862405286435\"\n r=\"16\"\n opacity=\"0.0005586592178770949\"\n ></circle>\n <circle\n cx=\"197.38213903440734\"\n cy=\"349.9771542734587\"\n r=\"16\"\n opacity=\"0.0002785515320334262\"\n ></circle>\n </g>\n Sorry, your browser does not support inline SVG.\n </svg>\n </div>\n</div>\n","import {\n ComponentFactoryResolver,\n Directive,\n ElementRef,\n HostBinding,\n inject,\n Input,\n OnInit,\n ViewContainerRef,\n} from '@angular/core';\nimport { OnemrvaMatSpinnerComponent } from './onemrva-mat-spinner.component';\n\n@Directive({\n standalone: true,\n selector: 'button[loading]',\n})\nexport class OnemrvaMatLoadingDirective implements OnInit {\n @Input()\n @HostBinding('class.has-spinner')\n loading = false;\n\n element = inject(ElementRef);\n viewContainerRef = inject(ViewContainerRef);\n componentFactoryResolver = inject(ComponentFactoryResolver);\n\n ngOnInit() {\n const host = this.element.nativeElement;\n const componentFactory =\n this.componentFactoryResolver.resolveComponentFactory(\n OnemrvaMatSpinnerComponent,\n );\n\n const componentRef =\n this.viewContainerRef.createComponent(componentFactory);\n\n //componentRef.instance.color = '';\n\n host.insertBefore(componentRef.location.nativeElement, host.firstChild);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { OnemrvaMatSpinnerComponent } from './onemrva-mat-spinner.component';\nimport { OnemrvaMatLoadingDirective } from './onemrva-mat-loading.directive';\n\n@NgModule({\n imports: [OnemrvaMatSpinnerComponent, OnemrvaMatLoadingDirective],\n exports: [OnemrvaMatSpinnerComponent, OnemrvaMatLoadingDirective],\n})\nexport class OnemrvaMatSpinnerModule {}\n","/*\n * Public API Surface of mat-side-menu\n */\n\nexport * from './src/onemrva-mat-spinner.component';\nexport * from './src/onemrva-mat-spinner.module';\nexport * from './src/onemrva-mat-loading.directive';\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport {\n animate,\n state,\n style,\n transition,\n trigger,\n AnimationTriggerMetadata,\n} from '@angular/animations';\n\nexport const DEFAULT_VERTICAL_ANIMATION_DURATION = '225ms';\n\n/**\n * Animations used by the Material steppers.\n * @docs-private\n */\nexport const onemrvaMatStepperAnimations: {\n readonly verticalStepTransition: AnimationTriggerMetadata;\n} = {\n /** Animation that transitions the step along the Y axis in a vertical summary-stepper. */\n verticalStepTransition: trigger('verticalStepTransition', [\n state('previous', style({ height: '*', visibility: 'inherit' })),\n state('next', style({ height: '0px', visibility: 'hidden' })),\n // Transition to `inherit`, rather than `visible`,\n // because visibility on a child element the one from the parent,\n // making this element focusable inside of a `hidden` element.\n state('current', style({ height: '*', visibility: 'inherit' })),\n transition(\n '* <=> current',\n animate('{{animationDuration}} cubic-bezier(0.4, 0.0, 0.2, 1)'),\n {\n params: { animationDuration: DEFAULT_VERTICAL_ANIMATION_DURATION },\n },\n ),\n ]),\n};\n","import { Directionality } from '@angular/cdk/bidi';\nimport { CdkStepper, StepperOrientation } from '@angular/cdk/stepper';\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n HostBinding,\n Input,\n OnDestroy,\n ViewEncapsulation,\n inject,\n} from '@angular/core';\n\nimport { onemrvaMatStepperAnimations } from './onemrva-stepper-animations';\nimport { MatStep, MatStepHeader, MatStepper } from '@angular/material/stepper';\nimport { Subject, takeUntil } from 'rxjs';\nimport { NgTemplateOutlet } from '@angular/common';\n\n@Component({\n selector:\n 'onemrva-mat-stepper, ' +\n 'onemrva-mat-vertical-stepper, ' +\n '[onemrvaMatStepper]',\n exportAs: 'matStepper, ' + 'matVerticalStepper, ' + 'matHorizontalStepper',\n templateUrl: 'onemrva-mat-stepper.html',\n styleUrls: ['onemrva-mat-stepper.scss'],\n // eslint-disable-next-line\n inputs: ['selectedIndex'],\n animations: [onemrvaMatStepperAnimations.verticalStepTransition],\n providers: [\n { provide: MatStepper, useExisting: OnemrvaMatStepperComponent },\n { provide: CdkStepper, useExisting: MatStepper },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.Emulated,\n standalone: true,\n imports: [NgTemplateOutlet, MatStepHeader],\n})\nexport class OnemrvaMatStepperComponent\n extends MatStepper\n implements AfterContentInit, OnDestroy\n{\n destroyNotifier$: Subject<void> = new Subject<void>();\n\n /** Orientation of the summary-stepper. */\n @Input()\n override get orientation(): StepperOrientation {\n return 'vertical';\n }\n override set orientation(value: StepperOrientation) {\n this.matStepperVertical = true;\n }\n\n @HostBinding('class.mat-stepper-vertical') matStepperVertical = true;\n @HostBinding('attr.aria-orientation') ariaOrientation = 'vertical';\n @HostBinding('role') role = 'tablist';\n _animationDone = new Subject<any>();\n\n private readonly dir = inject(Directionality, { optional: true });\n private readonly cd = inject(ChangeDetectorRef);\n private readonly elementRef = inject(ElementRef<HTMLElement>);\n\n scrollToElement(elementId: string): void {\n const element = document.getElementById(elementId);\n if (element) {\n const yOffset = -100; // Optional: offset from the top for better positioning\n const y =\n element.getBoundingClientRect().top + window.pageYOffset + yOffset;\n window.scrollTo({ top: y, behavior: 'smooth' });\n }\n }\n\n constructor() {\n super(\n inject(Directionality, { optional: true }),\n inject(ChangeDetectorRef),\n inject(ElementRef<HTMLElement>),\n );\n }\n\n override ngAfterContentInit(): void {\n super.ngAfterContentInit();\n this.selectionChange\n .pipe(takeUntil(this.destroyNotifier$))\n .subscribe(value => {\n const timeBeforeScroll = parseInt(this.animationDuration || '0') + 400;\n setTimeout(() => {\n const el = `cdk-step-label-${this._getStepLabelId(value.selectedIndex)}`; // TODO check ??\n this.scrollToElement(el);\n }, timeBeforeScroll);\n });\n }\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this.destroyNotifier$.next();\n this.destroyNotifier$.complete();\n }\n\n _stepIsNavigable(index: number, step: MatStep): boolean {\n return (\n step.completed ||\n this.selectedIndex === index ||\n this.selectedIndex > index\n );\n }\n\n _getIndicatorType(index: number, state?: string): string {\n if (state) {\n return state;\n }\n if (this.selectedIndex === index) {\n return 'number';\n }\n return 'number';\n }\n}\n","<!-- Vertical summary-stepper -->\n<ng-container>\n @for (step of steps; track step; let stepidx = $index; let isLast = $last) {\n <div class=\"mat-step\">\n <ng-container\n [ngTemplateOutlet]=\"stepTemplate\"\n [ngTemplateOutletContext]=\"{step: step, i: stepidx}\"\n ></ng-container>\n <div\n class=\"mat-vertical-content-container\"\n [class.mat-stepper-vertical-line]=\"!isLast\"\n >\n <div\n class=\"mat-vertical-stepper-content\"\n role=\"tabpanel\"\n [@verticalStepTransition]=\"{\n 'value': _getAnimationDirection(stepidx),\n 'params': {'animationDuration': _getAnimationDuration()}\n }\"\n (@verticalStepTransition.done)=\"_animationDone.next($event)\"\n [id]=\"_getStepContentId(stepidx)\"\n [attr.aria-labelledby]=\"_getStepLabelId(stepidx)\"\n [attr.aria-expanded]=\"selectedIndex === stepidx\"\n >\n <div class=\"mat-vertical-content\">\n <ng-container [ngTemplateOutlet]=\"step.content\"></ng-container>\n </div>\n </div>\n </div>\n </div>\n }\n</ng-container>\n\n<!-- Common step templating -->\n<ng-template let-step=\"step\" let-i=\"i\" #stepTemplate>\n <mat-step-header\n [class.mat-horizontal-stepper-header]=\"orientation === 'horizontal'\"\n [class.mat-vertical-stepper-header]=\"orientation === 'vertical'\"\n (click)=\"step.select()\"\n (keydown)=\"_onKeydown($event)\"\n [tabIndex]=\"_getFocusIndex() === i ? 0 : -1\"\n [id]=\"_getStepLabelId(i)\"\n [attr.aria-posinset]=\"i + 1\"\n [attr.aria-setsize]=\"steps.length\"\n [attr.aria-controls]=\"_getStepContentId(i)\"\n [attr.aria-selected]=\"selectedIndex === i\"\n [attr.aria-label]=\"step.ariaLabel || null\"\n [attr.aria-labelledby]=\"(!step.ariaLabel && step.ariaLabelledby) ? step.ariaLabelledby : null\"\n [attr.aria-disabled]=\"_stepIsNavigable(i, step) ? null : true\"\n [index]=\"i\"\n [state]=\"_getIndicatorType(i, step.state)\"\n [label]=\"step.stepLabel || step.label\"\n [selected]=\"selectedIndex === i\"\n [active]=\"_stepIsNavigable(i, step)\"\n [optional]=\"step.optional\"\n [errorMessage]=\"step.errorMessage\"\n [iconOverrides]=\"_iconOverrides\"\n [disableRipple]=\"disableRipple || !_stepIsNavigable(i, step)\"\n ></mat-step-header>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { OnemrvaMatStepperComponent } from './onemrva-mat-stepper.component';\nimport { MatStepperModule } from '@angular/material/stepper';\n\n@NgModule({\n imports: [OnemrvaMatStepperComponent],\n exports: [MatStepperModule, OnemrvaMatStepperComponent],\n declarations: [],\n providers: [],\n})\nexport class OnemrvaMatStepperModule {}\n","/*\n * Public API Surface of mat-summary-stepper\n */\n\nexport * from './src/onemrva-mat-stepper.component';\nexport * from './src/onemrva-mat-stepper.module';\n","import { Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'onemrva-mat-sticker',\n template: ` <ng-content></ng-content>`,\n styleUrl: 'onemrva-mat-sticker.component.scss',\n imports: [],\n standalone: true,\n encapsulation: ViewEncapsulation.Emulated,\n})\nexport class OnemrvaMatStickerComponent {}\n","import { NgModule } from '@angular/core';\nimport { OnemrvaMatStickerComponent } from './onemrva-mat-sticker.component';\n\n@NgModule({\n declarations: [],\n imports: [OnemrvaMatStickerComponent],\n exports: [OnemrvaMatStickerComponent],\n})\nexport class OnemrvaMatStickerModule {}\n","/*\n * Public API Surface of mat-sticker\n */\n\nexport * from './src/onemrva-mat-sticker.component';\nexport * from './src/onemrva-mat-sticker.module';\n","export enum OnemrvaMatTocAnchorStatus {\n CHECKMARK,\n WARNING,\n}\n\nexport enum OnemrvaMatTocAnchorLevel {\n SECTION,\n SUBSECTION,\n}\n\nexport interface OnemrvaMatTocAnchor {\n tocName: string;\n titleKey: string;\n path: string;\n order?: number; // You can manually set the order of your links\n status?: OnemrvaMatTocAnchorStatus; // checkmarck add a checkmark icon at the end of the line. Warning adds an exclamation mark\n level?: OnemrvaMatTocAnchorLevel; // Section level by default\n hidden?: boolean;\n directive?: any;\n}\n\nexport type OnemrvaMatToc = Record<string, OnemrvaMatTocAnchor[]>;\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport {\n OnemrvaMatTocAnchor,\n OnemrvaMatToc,\n OnemrvaMatTocAnchorLevel,\n} from './onemrva-mat-toc-anchor.model';\n\n@Injectable()\nexport class OnemrvaMatTableOfContentService {\n private _toc: OnemrvaMatToc = {};\n private _toc$ = new BehaviorSubject<OnemrvaMatToc>({});\n toc$: Observable<OnemrvaMatToc> = this._toc$.asObservable();\n\n addAnchor(anchor: OnemrvaMatTocAnchor) {\n if (!anchor.level) {\n anchor.level = OnemrvaMatTocAnchorLevel.SECTION;\n }\n\n if (!this._toc[anchor.tocName])\n this._toc = { ...this._toc, [anchor.tocName]: [anchor] };\n else if (\n this._toc[anchor.tocName].findIndex(a => anchor.path === a.path) < 0\n ) {\n let idx = -1;\n if (anchor.order) {\n idx = this._toc[anchor.tocName].findIndex(\n a => a.order && anchor.order! < a.order,\n );\n }\n\n const newToc = [...this._toc[anchor.tocName]];\n if (idx >= 0) {\n newToc.splice(idx, 0, anchor);\n } else {\n newToc.push(anchor);\n }\n this._toc = {\n ...this._toc,\n [anchor.tocName]: newToc,\n };\n }\n\n this._toc$.next(this._toc);\n }\n\n resetToc() {\n this._toc = {};\n this._toc$.next(this._toc);\n }\n}\n","import {\n AfterViewInit,\n Component,\n HostBinding,\n inject,\n Input,\n OnDestroy,\n OnInit,\n ViewEncapsulation,\n} from '@angular/core';\nimport { MatListModule } from '@angular/material/list';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { OnemrvaMatTableOfContentService } from './onemrva-mat-table-of-content.service';\nimport { Observable, map, tap, Subject, takeUntil } from 'rxjs';\nimport {\n OnemrvaMatTocAnchor,\n OnemrvaMatTocAnchorLevel,\n OnemrvaMatTocAnchorStatus,\n} from './onemrva-mat-toc-anchor.model';\nimport { CommonModule } from '@angular/common';\nimport { MatIconModule } from '@angular/material/icon';\nimport { ActivatedRoute, Router, RouterLink } from '@angular/router';\nimport { Location } from '@angular/common';\n\n@Component({\n selector: 'onemrva-mat-table-of-content',\n templateUrl: 'onemrva-mat-table-of-content.component.html',\n styleUrl: 'onemrva-mat-table-of-content.component.scss',\n standalone: true,\n imports: [\n MatListModule,\n TranslateModule,\n CommonModule,\n MatIconModule,\n RouterLink,\n ],\n encapsulation: ViewEncapsulation.Emulated,\n})\nexport class OnemrvaMatTableOfContentComponent\n implements OnInit, OnDestroy, AfterViewInit\n{\n @Input()\n titleKey!: string;\n\n @Input()\n tocName!: string;\n\n @HostBinding('attr.data-cy')\n @Input()\n dataCy = 'onemrva-mat-toc';\n\n @Input()\n tableOfContentName!: string;\n\n @Input()\n scrollShift = 0;\n\n toc$!: Observable<OnemrvaMatTocAnchor[]>;\n\n activePath = '';\n\n destroy$ = new Subject<boolean>();\n\n level = OnemrvaMatTocAnchorLevel;\n status = OnemrvaMatTocAnchorStatus;\n\n location = inject(Location);\n route = inject(ActivatedRoute);\n router = inject(Router);\n tocService = inject(OnemrvaMatTableOfContentService);\n\n ngOnInit(): void {\n this.route.fragment.pipe(takeUntil(this.destroy$)).subscribe(fragment => {\n this.activePath = fragment ?? '';\n });\n\n this.toc$ = this.tocService.toc$.pipe(\n map(tocMap => {\n const toc = tocMap[this.tocName]?.filter(entry => !entry.hidden) ?? [];\n return toc.map(entry => ({\n ...entry,\n path: entry.path?.startsWith('#') ? entry.path.slice(1) : entry.path,\n }));\n }),\n tap(toc => {\n if (!toc.length) {\n this.titleKey = 'tocName.notFound';\n } else {\n this.activePath = toc[0].path;\n }\n }),\n );\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.tocService.resetToc();\n }\n\n private observer!: IntersectionObserver;\n private timeoutId: ReturnType<typeof setTimeout> | null = null;\n\n ngAfterViewInit(): void {\n const elements = document.querySelectorAll<HTMLElement>(\n '.onemrva-mat-toc-anchor',\n );\n\n this.observer = new IntersectionObserver(\n entries => {\n entries.forEach(entry => {\n if (entry.isIntersecting) {\n const id = entry.target.getAttribute('id');\n if (id) {\n if (this.timeoutId !== null) clearTimeout(this.timeoutId);\n this.timeoutId = setTimeout(() => {\n this.location.replaceState(\n this.router.url.split('#')[0] + `#${id}`,\n );\n this.activePath = id;\n this.timeoutId = null;\n }, 200);\n }\n }\n });\n },\n {\n root: null,\n threshold: 0,\n rootMargin: '-92px 0px -75% 0px',\n },\n );\n elements.forEach(el => this.observer.observe(el));\n }\n}\n","<div class=\"onemrva-mat-toc\">\n <h3 class=\"onemrva-mat-toc-title\">{{ titleKey | translate }}</h3>\n\n <mat-list>\n @for (anchor of toc$ | async; track anchor.path) {\n <mat-list-item\n [routerLink]=\"[]\"\n [fragment]=\"anchor.path\"\n [ngClass]=\"{\n 'active-anchor': anchor.path === activePath,\n 'onemrva-anchor-for-subsection': anchor.level === level.SUBSECTION,\n 'onemrva-mat-hidden-toc-anchor': anchor.directive?.hiddenInToc,\n }\"\n >\n {{ anchor.titleKey | translate }}\n @if (anchor.status === status.CHECKMARK) {\n <mat-icon class=\"mat-success\">check</mat-icon>\n }\n @if (anchor.status === status.WARNING) {\n <mat-icon class=\"anchor-warning\">priority_high</mat-icon>\n }\n </mat-list-item>\n }\n </mat-list>\n</div>\n","import {\n OnInit,\n Directive,\n Input,\n HostBinding,\n AfterViewInit,\n ChangeDetectorRef,\n inject,\n} from '@angular/core';\nimport { OnemrvaMatTableOfContentService } from './onemrva-mat-table-of-content.service';\nimport { OnemrvaMatTocAnchor } from './onemrva-mat-toc-anchor.model';\nimport { TranslateService } from '@ngx-translate/core';\nimport { ActivatedRoute } from '@angular/router';\n\n/**\n * For accessibility purpose, aria-label and will be displayed\n */\n\n@Directive({\n selector: '[onemrvaMatToc]',\n standalone: true,\n})\nexport class OnemrvaMatTableOfContentDirective\n implements OnInit, AfterViewInit\n{\n @Input()\n onemrvaMatToc!: OnemrvaMatTocAnchor;\n\n @HostBinding('attr.role')\n role = '';\n\n @HostBinding('attr.class')\n clazz = 'onemrva-mat-toc-anchor';\n\n @HostBinding('attr.id')\n id = '';\n\n @HostBinding('attr.aria-label')\n get ariaLabel() {\n return this.translateService.instant(this.onemrvaMatToc?.titleKey);\n }\n\n @Input()\n hiddenInToc = false;\n\n @HostBinding('attr.rvaonem-toc-anchor')\n get ariaToc() {\n if (\n this.onemrvaMatToc &&\n this.onemrvaMatToc.path &&\n this.onemrvaMatToc.path[0] !== '#'\n )\n return '#' + this.onemrvaMatToc?.path;\n return this.onemrvaMatToc?.path;\n }\n\n tocService = inject(OnemrvaMatTableOfContentService);\n cd = inject(ChangeDetectorRef);\n translateService = inject(TranslateService);\n route = inject(ActivatedRoute);\n\n ngOnInit(): void {\n this.tocService.addAnchor({ ...this.onemrvaMatToc, directive: this });\n\n this.id = this.onemrvaMatToc.path.slice(1, this.onemrvaMatToc.path.length);\n // console.log(' HWK this.hidden', this.hidden);\n }\n\n ngAfterViewInit(): void {\n this.cd.detectChanges();\n this.route.fragment.subscribe(fragment => {\n const el = document.getElementById(fragment!);\n if (el) {\n el.scrollIntoView({ behavior: 'smooth' });\n }\n });\n }\n}\n","/*\n * Public API Surface of mat-summary-stepper\n */\n\nexport * from './src/onemrva-mat-table-of-content.component';\nexport * from './src/onemrva-mat-table-of-content.directive';\nexport * from './src/onemrva-mat-table-of-content.service';\nexport * from './src/onemrva-mat-toc-anchor.model';\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n inject,\n Input,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { NgClass } from '@angular/common';\n\n@Component({\n selector: 'onemrva-mat-task-title',\n templateUrl: './onemrva-mat-task-title.html',\n styleUrl: './onemrva-mat-task-title.scss',\n standalone: true,\n imports: [NgClass],\n encapsulation: ViewEncapsulation.Emulated,\n})\nexport class OnemrvaMatTaskTitleComponent implements AfterViewInit {\n @Input() customNgClass = ['onemrva-mat-task-title'];\n\n @ViewChild(TemplateRef) template?: TemplateRef<any>;\n\n cd = inject(ChangeDetectorRef);\n\n ngAfterViewInit() {\n this.cd.detectChanges();\n }\n}\n","<ng-template>\n <div [ngClass]=\"customNgClass\">\n <ng-content></ng-content>\n </div>\n</ng-template>\n","import { Component, Input, TemplateRef, ViewChild } from '@angular/core';\nimport { NgClass } from '@angular/common';\n\n@Component({\n selector: 'onemrva-mat-task-content',\n templateUrl: './onemrva-mat-task-content.html',\n styleUrl: './onemrva-mat-task-content.scss',\n standalone: true,\n imports: [NgClass],\n})\nexport class OnemrvaMatTaskContentComponent {\n @Input() customNgClass = ['onemrva-mat-task-content'];\n\n @ViewChild(TemplateRef) template?: TemplateRef<any>;\n}\n","<ng-template>\n <div [ngClass]=\"customNgClass\">\n <ng-content></ng-content>\n </div>\n</ng-template>\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n HostBinding,\n inject,\n Input,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { OnemrvaMatTaskTitleComponent } from './onemrva-mat-task-title.component';\nimport { OnemrvaMatTaskContentComponent } from './onemrva-mat-task-content.component';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { MatCheckbox } from '@angular/material/checkbox';\nimport { MatIcon } from '@angular/material/icon';\nimport { NgTemplateOutlet } from '@angular/common';\n\n@Component({\n selector: 'onemrva-mat-task',\n templateUrl: './onemrva-mat-task.component.html',\n styleUrls: ['onemrva-mat-task.component.scss'],\n standalone: true,\n imports: [MatCheckbox, MatIcon, ReactiveFormsModule, NgTemplateOutlet],\n encapsulation: ViewEncapsulation.Emulated,\n})\nexport class OnemrvaMatTaskComponent implements AfterViewInit {\n @Input() customNgClass: any;\n\n @Input() icon: string | undefined;\n @Input() form: FormControl | undefined;\n @Input() bubble: string | undefined;\n @Input() arialLabel = 'select';\n\n /** @hidden @internal */\n @HostBinding('class.disabled')\n @Input()\n disabled = false;\n private hostClass: string | undefined;\n\n @HostBinding('attr.aria-disabled')\n public get showAriaDisabled(): boolean {\n return this.disabled;\n }\n\n @ViewChild(TemplateRef) template!: TemplateRef<any>;\n\n @ContentChild(OnemrvaMatTaskTitleComponent)\n title?: OnemrvaMatTaskTitleComponent;\n\n @ContentChild(OnemrvaMatTaskContentComponent)\n content?: OnemrvaMatTaskContentComponent;\n\n cd = inject(ChangeDetectorRef);\n elRef = inject(ElementRef<HTMLElement>);\n\n ngAfterViewInit() {\n this.hostClass = Array.from(this.elRef.nativeElement.classList)\n .filter((c): c is string => typeof c === 'string' && c.startsWith('mat-'))\n .join(' ');\n if (this.title) {\n this.title.customNgClass.push(this.hostClass);\n }\n\n if (this.disabled) {\n this.form?.disable();\n if (this.title) {\n this.title.customNgClass.push('disabled');\n }\n if (this.content) {\n this.content.customNgClass.push('disabled');\n }\n }\n\n this.cd.detectChanges();\n }\n}\n","<div class=\"onemrva-mat-task-icon\">\n @if (icon !== undefined) {\n <span class=\"bubble\"\n ><mat-icon>{{ icon }}</mat-icon></span\n >\n }\n @if (form !== undefined) {\n <mat-checkbox\n [disabled]=\"true\"\n [formControl]=\"form\"\n [aria-label]=\"arialLabel\"\n ></mat-checkbox>\n }\n @if (bubble !== undefined) {\n <span class=\"bubble\">{{ bubble }}</span>\n }\n</div>\n\n@if (title?.template; as tpl) {\n <ng-container *ngTemplateOutlet=\"tpl\"></ng-container>\n}\n@if (content?.template; as tpl) {\n <ng-container *ngTemplateOutlet=\"tpl\"></ng-container>\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n HostBinding,\n inject,\n Input,\n QueryList,\n} from '@angular/core';\nimport { OnemrvaMatTaskComponent } from './onemrva-mat-task.component';\n\nlet NEXT_ID = 0;\n\n@Component({\n selector: 'onemrva-mat-task-list',\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrl: './onemrva-mat-task-list.component.scss',\n templateUrl: './onemrva-mat-task-list.component.html',\n standalone: true,\n})\nexport class OnemrvaMatTaskListComponent implements AfterViewInit {\n @HostBinding('attr.id')\n @Input()\n public id = `onemrva-mat-task-list-${NEXT_ID++}`;\n\n @HostBinding('attr.data-cy')\n @Input()\n data_cy = 'onemrva-mat-task-list';\n\n @ContentChildren(OnemrvaMatTaskComponent, {\n descendants: true,\n })\n _tasks?: QueryList<OnemrvaMatTaskComponent>;\n\n cd = inject(ChangeDetectorRef);\n\n ngAfterViewInit() {\n this.cd.detectChanges();\n }\n}\n","<ng-content></ng-content>\n","import { NgModule } from '@angular/core';\nimport { OnemrvaMatTaskListComponent } from './onemrva-mat-task-list.component';\nimport { OnemrvaMatTaskTitleComponent } from './onemrva-mat-task-title.component';\nimport { OnemrvaMatTaskContentComponent } from './onemrva-mat-task-content.component';\nimport { OnemrvaMatTaskComponent } from './onemrva-mat-task.component';\n\n@NgModule({\n imports: [\n OnemrvaMatTaskListComponent,\n OnemrvaMatTaskTitleComponent,\n OnemrvaMatTaskContentComponent,\n OnemrvaMatTaskComponent,\n ],\n exports: [],\n})\nexport class OnemrvaMatTaskListModule {}\n","import { ClockViewType } from './interfaces-and-types';\n\nexport function twoDigits(n: number) {\n return n < 10 ? `0${n}` : `${n}`;\n}\n\nexport function addDays(date: Date, days: number) {\n const result = new Date(date);\n result.setDate(result.getDate() + days);\n return result;\n}\n\nexport function convertHoursForMode(hour: number) {\n const isPm = hour >= 12;\n return { hour, isPm };\n}\n\nfunction mod(a: number, b: number) {\n return a - Math.floor(a / b) * b;\n}\n\nexport function getShortestAngle(from: number, to: number) {\n const difference = to - from;\n return from + mod(difference + 180, 360) - 180;\n}\n\nexport function isDateInRange(minDate: Date, maxDate: Date, current: Date) {\n const unixCurrentDate = +current;\n return (\n (!minDate || +minDate <= unixCurrentDate) &&\n (!maxDate || unixCurrentDate <= +maxDate)\n );\n}\n\nexport function isTimeInRange(minDate: Date, maxDate: Date, current: Date) {\n if (minDate instanceof Date) {\n const newMinDate = new Date();\n newMinDate.setHours(minDate.getHours());\n newMinDate.setMinutes(minDate.getMinutes());\n newMinDate.setSeconds(0);\n newMinDate.setMilliseconds(0);\n minDate = newMinDate;\n }\n if (maxDate instanceof Date) {\n const newMaxDate = new Date();\n newMaxDate.setHours(maxDate.getHours());\n newMaxDate.setMinutes(maxDate.getMinutes());\n newMaxDate.setSeconds(0);\n newMaxDate.setMilliseconds(0);\n maxDate = newMaxDate;\n }\n if (current instanceof Date) {\n const newCurrent = new Date();\n newCurrent.setHours(current.getHours());\n newCurrent.setMinutes(current.getMinutes());\n newCurrent.setSeconds(0);\n newCurrent.setMilliseconds(0);\n current = newCurrent;\n }\n const unixCurrentDate = +current;\n return (\n (!minDate || +minDate <= unixCurrentDate) &&\n (!maxDate || unixCurrentDate <= +maxDate)\n );\n}\n\n// used when generating the allowed maps\n\nexport function isAllowed(\n hour: number,\n minutes: number,\n minDate: Date,\n maxDate: Date,\n) {\n if (hour > 24 || hour < 0 || minutes > 60 || minutes < 0) {\n return false;\n }\n\n if (!minDate && !maxDate) {\n return true;\n }\n\n const checkDate = new Date();\n\n checkDate.setHours(hour);\n checkDate.setMinutes(minutes);\n checkDate.setSeconds(0);\n checkDate.setMilliseconds(0);\n\n return isDateInRange(minDate, maxDate, checkDate);\n}\n\n// used by the clock component to visually disable the not allowed values\n\nexport function getIsAvailabeFn(allowed24HourMap: any) {\n return (value: number, viewType: ClockViewType, h: number) => {\n const isHourCheck = viewType === 'hours';\n const [hour, minutes] = isHourCheck ? [value, 0] : [h, value];\n\n if (!allowed24HourMap) {\n return true;\n }\n\n if (isHourCheck) {\n return !!Object.values(allowed24HourMap[hour]).find(v => v === true);\n }\n return allowed24HourMap[hour][minutes];\n };\n}\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n OnChanges,\n SimpleChanges,\n ChangeDetectionStrategy,\n} from '@angular/core';\nimport {\n ClockViewType,\n ClockNumber,\n IAllowed24HourMap,\n} from '../interfaces-and-types';\nimport { getIsAvailabeFn } from '../util';\nimport { NgClass } from '@angular/common';\nimport { MatMiniFabButton } from '@angular/material/button';\nimport { MatToolbar } from '@angular/material/toolbar';\nimport { OnemRvaColorDirective } from '@onemrvapublic/design-system/shared';\n\n@Component({\n selector: 'mat-clock',\n templateUrl: './clock.component.html',\n styleUrls: ['./clock.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [NgClass, MatMiniFabButton, MatToolbar, OnemRvaColorDirective],\n})\nexport class ClockComponent implements OnChanges {\n @Input() viewType: ClockViewType = 'hours';\n @Input() formattedValue = 0;\n @Input() minDate!: Date;\n @Input() maxDate!: Date;\n @Input() formattedHours = 0;\n @Input() minutes!: number;\n @Output() changeEvent: EventEmitter<any> = new EventEmitter<any>();\n @Output() unavailableSelection: EventEmitter<any> = new EventEmitter<any>();\n @Output() invalidSelection: EventEmitter<any> = new EventEmitter<any>();\n\n @Input() allowed24HourMap!: IAllowed24HourMap;\n\n isFormattedValueAllowed = true;\n\n isAvailableFn?: ReturnType<typeof getIsAvailabeFn>;\n\n touching = false;\n angle?: number;\n numbers: ClockNumber[] = [];\n secondaryNumbers: ClockNumber[] = [];\n minuteDots: ClockNumber[] = [];\n invalidMeridiemEmitted = true;\n\n initIsAllowedFn() {\n if (!this.allowed24HourMap) {\n return;\n }\n this.isAvailableFn = getIsAvailabeFn(this.allowed24HourMap);\n }\n\n isAvailable(value: number) {\n return this.isAvailableFn\n ? this.isAvailableFn(value, this.viewType, this.formattedHours)\n : true;\n }\n\n ngOnChanges(simpleChanges: SimpleChanges) {\n if (\n simpleChanges['allowed24HourMap'] ||\n (simpleChanges['mode'] && !simpleChanges['mode'].firstChange)\n ) {\n this.initIsAllowedFn();\n }\n\n this.calculateAngule();\n this.setNumbers();\n\n if (simpleChanges['formattedValue'] && this.allowed24HourMap) {\n this.isFormattedValueAllowed = this.isAvailable(this.formattedValue);\n }\n\n const isSelectedTimeAvailable = this.isAvailableFn\n ? this.isAvailableFn(this.formattedValue, 'minutes', this.formattedHours)\n : true;\n\n if (this.viewType === 'minutes' && this.isAvailableFn) {\n const areMinitesAvailable = this.isAvailableFn(\n this.minutes,\n 'minutes',\n this.formattedHours,\n );\n if (!areMinitesAvailable) {\n if (this.minDate && this.minDate.getMinutes() > this.minutes) {\n setTimeout(() => {\n this.changeEvent.emit({\n value: this.minDate.getMinutes(),\n type: 'minutes',\n });\n });\n } else {\n setTimeout(() => {\n this.changeEvent.emit({\n value: this.maxDate.getMinutes(),\n type: 'minutes',\n });\n });\n }\n }\n }\n\n if (isSelectedTimeAvailable && this.invalidMeridiemEmitted) {\n this.invalidMeridiemEmitted = false;\n }\n\n this.invalidSelection.emit(!isSelectedTimeAvailable);\n }\n\n calculateAngule() {\n this.angle = this.getPointerAngle(this.formattedValue, this.viewType);\n }\n\n setNumbers() {\n if (this.viewType === 'hours') {\n // if (this.mode === '12h') {\n // const meridiem : string = this.isPm ? 'pm' : 'am';\n // const isAllowedFn = this.allowed12HourMap ? (num : number) => this.allowed12HourMap[meridiem][num + 1][0] : undefined;\n // this.numbers = this.getNumbers(12, { size: 256 }, isAllowedFn);\n // this.secondaryNumbers = [];\n // this.minuteDots = [];\n // } else if (this.mode === '24h') {\n const isAllowedFn = this.allowed24HourMap\n ? (num: number) => this.allowed24HourMap[num][0]\n : undefined;\n this.numbers = this.getNumbers(12, { size: 256 }, isAllowedFn);\n this.secondaryNumbers = this.getNumbers(\n 12,\n { size: 256 - 64, start: 13 },\n isAllowedFn,\n );\n this.minuteDots = [];\n //}\n } else {\n //const meridiem : string = this.isPm ? 'pm' : 'am';\n const isAllowedFn =\n // !!this.allowed12HourMap ? (num : number) => this.allowed12HourMap[meridiem][this.formattedHours][num] :\n this.allowed24HourMap\n ? (num: number) => this.allowed24HourMap[this.formattedHours][num]\n : undefined;\n\n this.numbers = this.getNumbers(\n 12,\n { size: 256, start: 5, step: 5 },\n isAllowedFn,\n );\n this.minuteDots = this.getNumbers(60, { size: 256, start: 13 }).map(\n digit => {\n if (digit.display <= 59) {\n digit.allowed = isAllowedFn ? isAllowedFn(digit.display) : true;\n return digit;\n }\n digit.display = digit.display - 60;\n digit.allowed = isAllowedFn ? isAllowedFn(digit.display) : true;\n return digit;\n },\n );\n this.secondaryNumbers = [];\n }\n }\n\n disableAnimatedPointer() {\n this.touching = true;\n }\n\n enableAnimatedPointer() {\n this.touching = false;\n }\n\n handleTouchMove = (e: any) => {\n e.preventDefault(); // prevent scrolling behind the clock on iOS\n const rect = e.target.getBoundingClientRect();\n this.movePointer(\n e.changedTouches[0].clientX - rect.left,\n e.changedTouches[0].clientY - rect.top,\n );\n };\n\n handleTouchEnd(e: any) {\n this.handleTouchMove(e);\n this.enableAnimatedPointer();\n }\n\n handleMouseMove(e: any) {\n // MouseEvent.which is deprecated, but MouseEvent.buttons is not supported in Safari\n if (e.buttons === 1 || e.which === 1) {\n const rect = e.target.getBoundingClientRect();\n this.movePointer(e.clientX - rect.left, e.clientY - rect.top);\n }\n }\n\n handleClick(e: any) {\n const rect = e.target.getBoundingClientRect();\n this.movePointer(e.clientX - rect.left, e.clientY - rect.top);\n }\n\n movePointer(x: number, y: number) {\n const value = this.getPointerValue(x, y, 256);\n if (!this.isAvailable(value)) {\n this.unavailableSelection.emit();\n return;\n }\n if (value !== this.formattedValue) {\n this.changeEvent.emit({\n value,\n type: this.viewType !== 'minutes' ? 'hours' : 'minutes',\n });\n if (this.viewType !== 'minutes') {\n if (!this.isAvailable(value)) {\n if (this.minDate && this.isAvailable(value)) {\n this.changeEvent.emit({\n value: this.minDate.getMinutes(),\n type: 'minutes',\n });\n } else if (this.maxDate && this.isAvailable(value)) {\n this.changeEvent.emit({\n value: this.maxDate.getMinutes(),\n type: 'minutes',\n });\n }\n }\n }\n }\n }\n\n getNumbers(\n count: number,\n { size = 0, start = 1, step = 1 },\n isAllowedFn?: (num: number) => boolean,\n ) {\n // eslint-disable-next-line\n return Array.apply(null, Array(count)).map((_, i) => ({\n display: i * step + start,\n translateX: (size / 2 - 20) * Math.cos((2 * Math.PI * (i - 2)) / count),\n translateY: (size / 2 - 20) * Math.sin((2 * Math.PI * (i - 2)) / count),\n allowed: isAllowedFn ? isAllowedFn(i) : true,\n }));\n }\n\n getPointerAngle(value: number, _mode: ClockViewType) {\n if (this.viewType === 'hours') {\n return (360 / 12) * ((value % 12) - 3);\n }\n return (360 / 60) * (value - 15);\n }\n\n getPointerValue(x: number, y: number, size: number) {\n let value;\n let angle = (Math.atan2(size / 2 - x, size / 2 - y) / Math.PI) * 180;\n if (angle < 0) {\n angle = 360 + angle;\n }\n\n if (this.viewType === 'hours') {\n const radius = Math.sqrt(\n Math.pow(size / 2 - x, 2) + Math.pow(size / 2 - y, 2),\n );\n value = 12 - Math.round((angle * 12) / 360);\n if (value === 0) {\n value = 12;\n }\n if (radius < size / 2 - 32) {\n value = value === 12 ? 0 : value + 12;\n }\n return value;\n }\n\n value = Math.round(60 - (60 * angle) / 360);\n return value === 60 ? 0 : value;\n }\n}\n","<div class=\"root\">\n <div\n class=\"circle\"\n tabindex=\"1\"\n (touchmove)=\"handleTouchMove($event)\"\n (mousemove)=\"handleMouseMove($event)\"\n (touchstart)=\"disableAnimatedPointer()\"\n (mousedown)=\"disableAnimatedPointer()\"\n (touchend)=\"handleTouchEnd($event)\"\n (mouseup)=\"enableAnimatedPointer()\"\n (click)=\"handleClick($event)\"\n >\n <div\n class=\"pointer-container\"\n [ngClass]=\"{\n 'small-pointer':\n viewType === 'hours' && (formattedValue === 0 || formattedValue > 12),\n 'animated-pointer': !touching,\n }\"\n [style.transform]=\"'rotate(' + angle + 'deg)'\"\n >\n <button\n aria-disabled=\"true\"\n mat-mini-fab\n color=\"neutral\"\n class=\"inner-dot\"\n aria-label=\"Inner Dot\"\n ></button>\n <mat-toolbar color=\"accent\" class=\"pointer\">\n <button\n mat-mini-fab\n color=\"neutral\"\n class=\"outer-dot\"\n aria-label=\"Outer dot\"\n [ngClass]=\"{\n 'outer-dot-odd': viewType === 'minutes' && formattedValue % 5 !== 0,\n }\"\n >\n @if (viewType === 'minutes' && formattedValue % 5 !== 0) {\n <ng-container>·</ng-container>\n }\n </button>\n </mat-toolbar>\n </div>\n @for (digit of minuteDots; track digit.display) {\n <button\n mat-mini-fab\n color=\"neutral\"\n class=\"number minute-dot\"\n [ngClass]=\"{\n selected:\n formattedValue === digit.display ||\n (digit.display === 0 && formattedValue === 0),\n disabled: !isAvailable(digit.display === 60 ? 0 : digit.display),\n }\"\n [style.transform]=\"\n 'translate(' + digit.translateX + 'px, ' + digit.translateY + 'px)'\n \"\n >\n @if (digit.display % 5 !== 0) {\n <ng-container>·</ng-container>\n }\n </button>\n }\n @for (digit of numbers; track digit.display) {\n <button\n mat-mini-fab\n color=\"neutral\"\n class=\"number\"\n [ngClass]=\"{\n selected:\n formattedValue === digit.display ||\n (digit.display === 60 && formattedValue === 0),\n disabled: !isAvailable(digit.display === 60 ? 0 : digit.display),\n }\"\n [style.transform]=\"\n 'translate(' + digit.translateX + 'px, ' + digit.translateY + 'px)'\n \"\n >\n <ng-template #hoursTemplate>{{ digit.display }}</ng-template>\n <ng-template #minutesTemplate>{{\n digit.display === 60 ? '00' : digit.display\n }}</ng-template>\n @if (viewType === 'minutes') {\n {{ digit.display === 60 ? '00' : digit.display }}\n } @else {\n {{ digit.display }}\n }\n </button>\n }\n @for (digit of secondaryNumbers; track digit.display) {\n <button\n mat-mini-fab\n color=\"neutral\"\n class=\"number small-number\"\n [ngClass]=\"{\n selected:\n formattedValue === digit.display ||\n (digit.display === 24 && formattedValue === 0),\n disabled: !isAvailable(digit.display === 24 ? 0 : digit.display),\n }\"\n [style.transform]=\"\n 'translate(' + digit.translateX + 'px, ' + digit.translateY + 'px)'\n \"\n >\n {{ digit.display === 24 ? '00' : digit.display }}\n </button>\n }\n </div>\n</div>\n","import {\n MAT_DIALOG_DATA,\n MatDialog,\n MatDialogActions,\n MatDialogContent,\n} from '@angular/material/dialog';\nimport {\n Component,\n EventEmitter,\n Output,\n DoCheck,\n inject,\n} from '@angular/core';\nimport { ClockViewType, IAllowed24HourMap } from '../interfaces-and-types';\nimport { twoDigits, convertHoursForMode } from '../util';\nimport { Subject } from 'rxjs';\nimport { MatToolbar } from '@angular/material/toolbar';\nimport { NgClass } from '@angular/common';\nimport { ClockComponent } from '../clock/clock.component';\nimport { MatButton } from '@angular/material/button';\nimport { OnemRvaColorDirective } from '@onemrvapublic/design-system/shared';\nimport { OnemrvaMatColor } from '@onemrvapublic/design-system/utils';\n\n@Component({\n selector: 'mat-timepicker-dialog',\n templateUrl: './timepicker-dialog.component.html',\n styleUrls: ['./timepicker-dialog.component.scss'],\n standalone: true,\n imports: [\n MatDialogContent,\n MatToolbar,\n NgClass,\n ClockComponent,\n MatDialogActions,\n MatButton,\n OnemRvaColorDirective,\n ],\n})\nexport class MatTimepickerComponentDialogComponent implements DoCheck {\n twoDigits = twoDigits;\n\n @Output() changeEvent: EventEmitter<any> = new EventEmitter<any>();\n @Output() okClickEvent: EventEmitter<any> = new EventEmitter<any>();\n @Output() cancelClickEvent: EventEmitter<any> = new EventEmitter<any>();\n\n allowed24HourMap!: IAllowed24HourMap;\n\n invalidSelection = false;\n\n okLabel = '';\n cancelLabel = '';\n\n set value(value: any) {\n value = value || this.minDate || this.maxDate || new Date();\n this.hours = value.getHours();\n this.minutes = value.getMinutes();\n this._value = value;\n }\n\n get value() {\n return this._value;\n }\n\n viewType: ClockViewType = 'hours';\n\n minutes: any;\n color: OnemrvaMatColor = 'primary';\n isPm = false;\n skipMinuteAutoSwitch = false;\n autoSwitchID: any;\n editHoursClicked = false;\n isClosing = false;\n\n minDate!: Date;\n maxDate!: Date;\n\n _formattedHour: any;\n\n _hours: any;\n\n _value?: Date;\n\n set hours(value: any) {\n this._hours = value;\n this._formattedHour = convertHoursForMode(this.hours).hour;\n }\n\n get hours() {\n return this._hours;\n }\n\n get formattedHours() {\n return this._formattedHour;\n }\n\n bindData(data: any) {\n this.okLabel = data.okLabel;\n this.cancelLabel = data.cancelLabel;\n this.color = data.color;\n this.minDate = data.minDate;\n this.maxDate = data.maxDate;\n this.allowed24HourMap = data.allowed24HourMap;\n }\n\n dialog = inject(MatDialog);\n data = inject(MAT_DIALOG_DATA);\n\n constructor() {\n this.isPm = this.data.isPm;\n this.bindData(this.data);\n // keep this always at the bottom\n this.value = this.data.value;\n }\n\n timepickerInput!: any;\n\n ngDoCheck() {\n this.bindData(this.data);\n }\n\n handleClockChange({\n value,\n type,\n }: {\n value: number;\n type: 'minutes' | 'hours';\n }) {\n if ((type && type === 'hours') || (!type && this.viewType === 'hours')) {\n this.hours = value;\n } else if (\n (type && type === 'minutes') ||\n (!type && this.viewType === 'minutes')\n ) {\n this.minutes = value;\n }\n\n const newValue = new Date();\n const hours = this.hours;\n // newValue.setFullYear(0);\n // newValue.setMonth(0);\n // newValue.setDate(0);\n newValue.setHours(hours);\n newValue.setMinutes(this.minutes);\n newValue.setSeconds(0);\n newValue.setMilliseconds(0);\n this.value = newValue;\n this.changeEvent.emit(newValue);\n }\n\n handleUnavailableSelection() {\n clearTimeout(this.autoSwitchID);\n }\n\n handleClockChangeDone(e: Event) {\n e.preventDefault(); // prevent mouseUp after touchEnd\n\n if (this.viewType === 'hours' && !this.skipMinuteAutoSwitch) {\n this.autoSwitchID = setTimeout(() => {\n this.editMinutes();\n this.autoSwitchID = null;\n }, 300);\n }\n }\n\n editHours() {\n this.viewType = 'hours';\n this.editHoursClicked = true;\n setTimeout(() => {\n this.editHoursClicked = false;\n }, 0);\n }\n\n editMinutes() {\n this.viewType = 'minutes';\n }\n\n invalidSelectionHandler(value: boolean) {\n this.invalidSelection = value;\n }\n\n okClickHandler() {\n this.okClickEvent.emit();\n }\n\n cancelClickHandler() {\n this.cancelClickEvent.emit();\n }\n\n closedStream!: EventEmitter<void>;\n disabled!: boolean;\n id!: string;\n opened!: boolean;\n openedStream!: EventEmitter<void>;\n stateChanges!: Subject<void>;\n}\n","<mat-dialog-content>\n <div class=\"root\">\n <mat-toolbar color=\"accent\" class=\"header\">\n <div class=\"time-frame\">\n <span\n class=\"time fixed-font-size\"\n [ngClass]=\"{ select: viewType === 'hours' && 'active' }\"\n (click)=\"editHours()\"\n role=\"button\"\n tabindex=\"0\"\n >\n {{ twoDigits(formattedHours) }}\n </span>\n <span class=\"fixed-font-size\">:</span>\n <span\n class=\"time fixed-font-size\"\n [ngClass]=\"{ select: viewType === 'minutes' && 'active' }\"\n (click)=\"editMinutes()\"\n tabindex=\"1\"\n role=\"button\"\n >\n {{ twoDigits(minutes) }}\n </span>\n </div>\n </mat-toolbar>\n <div class=\"body\">\n <mat-clock\n [allowed24HourMap]=\"allowed24HourMap\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n [viewType]=\"viewType\"\n [formattedHours]=\"formattedHours\"\n [minutes]=\"minutes\"\n (changeEvent)=\"handleClockChange($event)\"\n (unavailableSelection)=\"handleUnavailableSelection()\"\n [formattedValue]=\"viewType === 'minutes' ? minutes : formattedHours\"\n (mouseup)=\"handleClockChangeDone($event)\"\n (touchend)=\"handleClockChangeDone($event)\"\n (invalidSelection)=\"invalidSelectionHandler($event)\"\n ></mat-clock>\n </div>\n </div>\n</mat-dialog-content>\n<mat-dialog-actions>\n <button mat-button color=\"primary\" (click)=\"cancelClickHandler()\">\n {{ cancelLabel }}\n </button>\n <button\n mat-flat-button\n [disabled]=\"invalidSelection\"\n [color]=\"color\"\n (click)=\"okClickHandler()\"\n >\n {{ okLabel }}\n </button>\n</mat-dialog-actions>\n","import {\n Component,\n EventEmitter,\n HostBinding,\n Input,\n OnDestroy,\n Output,\n inject,\n} from '@angular/core';\nimport {\n OnemrvaMatColor,\n OnemrvaMatSize,\n} from '@onemrvapublic/design-system/utils';\nimport { MatTimepickerComponentDialogComponent } from './timepicker-dialog/timepicker-dialog.component';\nimport { Subject } from 'rxjs';\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\nimport { MatTimepickerDirective } from './timepicker.directive';\nimport { ThemePalette } from '@angular/material/core';\nimport { first, takeUntil } from 'rxjs/operators';\nimport { ONEMRVA_THEME_CLASS } from '@onemrvapublic/design-system/shared';\n\nlet NEXT_ID = 0;\n\n@Component({\n selector: 'mat-timepicker',\n templateUrl: 'onemrva-mat-timepicker.component.html',\n})\nexport class OnemrvaMatTimepickerComponent implements OnDestroy {\n public modalRef!: MatDialogRef<MatTimepickerComponentDialogComponent>;\n private onChangeFn: any;\n private _value!: Date;\n\n get value(): Date {\n return this._value;\n }\n\n set value(value: Date) {\n this._value = value;\n }\n\n private isAlive: Subject<any> = new Subject<any>();\n\n dialog = inject(MatDialog);\n\n opened = false;\n\n public setTimepickerInput(t: MatTimepickerDirective) {\n this.timepickerInput = t;\n }\n\n timepickerInput: any;\n\n /** Emits when the timepicker's state changes. */\n readonly stateChanges = new Subject<void>();\n\n // eslint-disable-next-line @angular-eslint/no-output-rename\n @Output('opened') readonly openedStream = new EventEmitter<void>();\n\n // eslint-disable-next-line @angular-eslint/no-output-rename\n @Output('closed') readonly closedStream = new EventEmitter<void>();\n\n /**\n * Returns the `aria-label` attribute of the element.\n *\n * @example\n * ```typescript\n * let timepickerLabel = this.timepicker.ariaLabel;\n * ```\n *\n */\n @HostBinding('attr.aria-label')\n public ariaLabel = '';\n\n @Input()\n public dialogLabel = 'Pick a Time';\n\n /**\n * Returns the `role` attribute of the element.\n *\n * @example\n * ```typescript\n * let timepickerRole = this.timepicker.role;\n * ```\n */\n @HostBinding('attr.role')\n public role = '';\n\n /**\n * Host `class.onemrva-mat-timepicker` binding.\n *\n * @hidden\n * @internal\n */\n @HostBinding('class.onemrva-mat-timepicker')\n public cssClass = 'onemrva-mat-timepicker';\n\n /**\n * Sets the `id` of the element. If not set, the first component instance will have `id` = `\"onemrva-mat-timepicker-0\"`.\n *\n * @example\n * ```html\n * <onemrva-mat-timepicker id=\"my-first-timepicker\"></onemrva-mat-timepicker>\n * ```\n */\n @HostBinding('attr.id')\n @Input()\n public id = `onemrva-mat-timepicker-${NEXT_ID++}`;\n\n /**\n * Sets the `data-cy` of the element. If not set, the first component instance will have `data-cy` = `\"onemrva-mat-timepicker-0\"`.\n *\n * @example\n * ```html\n * <onemrva-mat-timepicker id=\"my-first-timepicker\"></onemrva-mat-timepicker>\n * ```\n */\n @HostBinding('attr.data-cy')\n @Input()\n public dataCy = `onemrva-mat-timepicker-${NEXT_ID++}`;\n\n /**\n * @hidden\n * @internal\n */\n private _color: ThemePalette = 'primary';\n\n /**\n * Returns the color of the element.\n *\n * @example\n * ```typescript\n * let color = this.timepicker.color;\n * ```\n */\n @Input()\n public get color(): ThemePalette {\n return this._color;\n }\n\n /**\n * Sets the size of the element.\n * By default, the color is `\"primary\"`.\n *\n * @example\n * ```html\n * <onemrva-mat-timepicker size=\"large\"></onemrva-mat-timepicker>\n * ```\n */\n public set color(value: ThemePalette) {\n switch (value) {\n case OnemrvaMatColor.PRIMARY:\n case OnemrvaMatColor.ACCENT:\n case OnemrvaMatColor.WARN:\n this._color = value;\n break;\n default:\n this._color = OnemrvaMatColor.PRIMARY;\n }\n }\n\n /** @hidden @internal */\n @HostBinding('class.mat-primary')\n public get _isPrimary(): boolean {\n return this.color === OnemrvaMatColor.PRIMARY;\n }\n\n /** @hidden @internal */\n @HostBinding('class.mat-accent')\n public get _isAccent(): boolean {\n return this.color === OnemrvaMatColor.ACCENT;\n }\n\n /**\n * @hidden\n * @internal\n */\n private _size: string | OnemrvaMatSize = OnemrvaMatSize.SMALL;\n\n /**\n * Returns the size of the element.\n *\n * @example\n * ```typescript\n * let timepickerSize = this.timepicker.size;\n * ```\n */\n @Input()\n public get size(): string | OnemrvaMatSize {\n return this._size;\n }\n\n /**\n * Sets the size of the element.\n * By default, the size is `\"medium\"`.\n *\n * @example\n * ```html\n * <onemrva-mat-timepicker size=\"large\"></onemrva-mat-timepicker>\n * ```\n */\n public set size(value: string | OnemrvaMatSize) {\n switch (value) {\n case OnemrvaMatSize.XSMALL:\n case OnemrvaMatSize.SMALL:\n case OnemrvaMatSize.MEDIUM:\n case OnemrvaMatSize.LARGE:\n case OnemrvaMatSize.XLARGE:\n this._size = value;\n break;\n default:\n this._size = OnemrvaMatSize.MEDIUM;\n }\n }\n\n open() {\n if (this.timepickerInput.disabled) {\n return;\n }\n\n this.value = this.timepickerInput.currentValue;\n if (this.value === undefined || this.value === null) {\n this.value = new Date();\n }\n\n this.modalRef = this.dialog.open(MatTimepickerComponentDialogComponent, {\n ariaLabel: this.dialogLabel,\n autoFocus: false,\n data: {\n value: this.timepickerInput.currentValue,\n okLabel: this.timepickerInput.okLabel,\n cancelLabel: this.timepickerInput.cancelLabel,\n color: this.color,\n minDate: this.timepickerInput.minDate,\n maxDate: this.timepickerInput.maxDate,\n allowed24HourMap: this.timepickerInput.allowed24HourMap,\n },\n });\n\n const instance = this.modalRef.componentInstance;\n instance.changeEvent\n .pipe(takeUntil(this.isAlive))\n .subscribe(this.handleChange);\n instance.okClickEvent\n .pipe(takeUntil(this.isAlive))\n .subscribe(this.handleOk);\n instance.cancelClickEvent\n .pipe(takeUntil(this.isAlive))\n .subscribe(this.handleCancel);\n this.modalRef\n .beforeClosed()\n .pipe(first())\n .subscribe(() => (instance.isClosing = true));\n this.modalRef\n .afterClosed()\n .pipe(first())\n .subscribe(() => {\n if (this.timepickerInput.onTouchedFn) {\n this.timepickerInput.onTouchedFn();\n }\n //this.modalRef = null;\n this.timepickerInput.elRef.nativeElement.focus();\n });\n this.timepickerInput.currentValue = this.value as Date;\n }\n\n handleChange = (newValue: Date) => {\n if (!(newValue instanceof Date)) {\n return;\n }\n const v =\n this.value instanceof Date ? new Date(this.value.getTime()) : new Date();\n v.setHours(newValue.getHours());\n v.setMinutes(newValue.getMinutes());\n v.setSeconds(0);\n v.setMilliseconds(0);\n this.value = v;\n };\n\n handleOk = () => {\n if (this.onChangeFn) {\n this.onChangeFn(this.value);\n }\n this.timepickerInput.value = this.value;\n this.modalRef.close();\n };\n\n handleCancel = () => {\n this.modalRef.close();\n };\n\n ngOnDestroy() {\n this.isAlive.next('0');\n this.isAlive.complete();\n this.stateChanges.complete();\n\n // if (this._platform.isBrowser) {\n // this.fm.stopMonitoring(this.elRef.nativeElement);\n // }\n //\n // this.listeners.forEach(l => l());\n }\n}\n","","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Directive,\n inject,\n Input,\n OnChanges,\n OnDestroy,\n SimpleChanges,\n ViewEncapsulation,\n HostAttributeToken,\n} from '@angular/core';\nimport { merge, Observable, of as observableOf, Subscription } from 'rxjs';\nimport { OnemrvaMatTimepickerComponent } from '../onemrva-mat-timepicker.component';\nimport { MatIconButton } from '@angular/material/button';\nimport { MatIcon } from '@angular/material/icon';\n\n/** Can be used to override the icon of a `matDatepickerToggle`. */\n@Directive({\n selector: '[matDatepickerToggleIcon]',\n})\nexport class MatTimepickerToggleIconDirective {}\n\n@Component({\n selector: 'mat-timepicker-toggle',\n templateUrl: 'timepicker-toggle.component.html',\n styleUrls: ['timepicker-toggle.component.scss'],\n\n host: {\n class: 'mat-timepicker-toggle',\n '[attr.tabindex]': 'null',\n '[class.mat-timepicker-toggle-active]': 'timepicker && timepicker.opened',\n '[class.mat-accent]': 'timepicker && timepicker.color === \"accent\"',\n '[class.mat-warn]': 'timepicker && timepicker.color === \"warn\"',\n // Used by the test harness to tie this toggle to its timepicker.\n '[attr.data-mat-calendar]': 'timepicker ? timepicker.id : null',\n // Bind the `click` on the host, rather than the inner `button`, so that we can call\n // `stopPropagation` on it without affecting the user's `click` handlers. We need to stop\n // it so that the input doesn't get focused automatically by the form field (See #21836).\n '(click)': '_open($event)',\n },\n exportAs: 'matDatepickerToggle',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [MatIconButton, MatIcon],\n})\nexport class MatTimePickerToggle\n implements AfterContentInit, OnChanges, OnDestroy\n{\n private _stateChanges = Subscription.EMPTY;\n\n /** Datepicker instance that the button will toggle. */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('for') timepicker!: OnemrvaMatTimepickerComponent;\n\n /** Tabindex for the toggle. */\n @Input() tabIndex: number | null;\n\n /** Screenreader label for the button. */\n @Input() ariaLabel = '';\n\n /** Whether the toggle button is disabled. */\n @Input()\n get disabled(): boolean {\n if (this.timepicker) {\n return this.timepicker.timepickerInput._disabled;\n }\n return this._disabled;\n }\n\n set disabled(value: BooleanInput) {\n this._disabled = coerceBooleanProperty(value);\n }\n\n private _disabled = false;\n\n /** Whether ripples on the toggle should be disabled. */\n @Input() disableRipple = false;\n $event: Event = new Event('abrupt');\n\n /** Underlying button element. */\n //@ViewChild('button') _button: MatButton;\n\n _changeDetectorRef = inject(ChangeDetectorRef);\n\n constructor() {\n const defaultTabIndex = inject(new HostAttributeToken('tabindex'), {\n optional: true,\n });\n\n const parsedTabIndex = Number(defaultTabIndex);\n this.tabIndex =\n parsedTabIndex || parsedTabIndex === 0 ? parsedTabIndex : null;\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['timepicker']) {\n this._watchStateChanges();\n }\n }\n\n ngOnDestroy() {\n this._stateChanges.unsubscribe();\n }\n\n ngAfterContentInit() {\n this._watchStateChanges();\n }\n\n _open(event: Event): void {\n if (this.timepicker && !this.disabled) {\n this.timepicker.open();\n event.stopPropagation();\n }\n }\n\n private _watchStateChanges() {\n const datepickerStateChanged = this.timepicker\n ? this.timepicker.stateChanges\n : observableOf();\n const inputStateChanged =\n this.timepicker && this.timepicker.timepickerInput\n ? this.timepicker.timepickerInput.stateChanges\n : observableOf();\n const datepickerToggled = this.timepicker\n ? merge(this.timepicker.openedStream, this.timepicker.closedStream)\n : observableOf();\n\n this._stateChanges.unsubscribe();\n this._stateChanges = merge(\n datepickerStateChanged as Observable<void>,\n inputStateChanged,\n datepickerToggled,\n ).subscribe(() => this._changeDetectorRef.markForCheck());\n }\n}\n","<button\n #button\n mat-icon-button\n type=\"button\"\n [attr.aria-haspopup]=\"timepicker ? 'dialog' : null\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.tabindex]=\"disabled ? -1 : tabIndex\"\n [disabled]=\"disabled\"\n [disableRipple]=\"disableRipple\"\n>\n <mat-icon>schedule</mat-icon>\n\n <ng-content select=\"[mattimepickerToggleIcon]\"></ng-content>\n</button>\n","import {\n ControlValueAccessor,\n NgForm,\n NgControl,\n FormGroupDirective,\n FormControl,\n Validators,\n} from '@angular/forms';\nimport {\n Directive,\n OnInit,\n EventEmitter,\n Input,\n ElementRef,\n OnChanges,\n Renderer2,\n NgZone,\n HostBinding,\n Output,\n HostListener,\n inject,\n} from '@angular/core';\nimport {\n MatFormFieldControl,\n MatFormField,\n} from '@angular/material/form-field';\nimport { IAllowed24HourMap } from './interfaces-and-types';\nimport { twoDigits, isAllowed, isDateInRange, isTimeInRange } from './util';\nimport { Subject, Subscription } from 'rxjs';\nimport { FocusMonitor } from '@angular/cdk/a11y';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { ErrorStateMatcher } from '@angular/material/core';\nimport { Platform } from '@angular/cdk/platform';\nimport { OnemrvaMatTimepickerComponent } from './onemrva-mat-timepicker.component';\n\n@Directive({\n selector: 'input[matTimepicker]',\n providers: [\n { provide: MatFormFieldControl, useExisting: MatTimepickerDirective },\n ],\n\n host: {\n class: 'mat-input-element mat-form-field-autofill-control',\n '[class.mat-input-server]': '_isServer',\n // Native input properties that are overwritten by Angular inputs need to be synced with\n // the native input element. Otherwise property bindings for those don't work.\n '[attr.id]': 'id',\n '[attr.placeholder]': 'placeholder',\n '[disabled]': 'disabled',\n '[required]': 'required',\n '[attr.readonly]': 'readonly || null',\n '[attr.aria-invalid]': 'errorState',\n '[attr.aria-required]': 'required.toString()',\n },\n exportAs: 'matTimepicker',\n standalone: true,\n})\nexport class MatTimepickerDirective\n implements OnInit, OnChanges, ControlValueAccessor, MatFormFieldControl<any>\n{\n static nextId = 0;\n\n /** Whether the component is being rendered on the server. */\n readonly _isServer: boolean;\n private _closedSubscription = Subscription.EMPTY;\n\n /** The datepicker that this input is associated with. */\n @Input()\n set matTimepicker(timepicker: OnemrvaMatTimepickerComponent) {\n if (timepicker) {\n this._timepicker = timepicker;\n this._timepicker.setTimepickerInput(this);\n this._closedSubscription = timepicker.closedStream.subscribe(() =>\n this._onTouched(),\n );\n //this._registerModel(datepicker.registerInput(this));\n }\n }\n\n _timepicker!: OnemrvaMatTimepickerComponent;\n\n _errorState = false;\n get errorState() {\n const oldState = this._errorState;\n const parent = this._parentFormGroup || this._parentForm;\n const control = this.ngControl\n ? (this.ngControl.control as FormControl)\n : null;\n const newState = this.errorStateMatcher\n ? this.errorStateMatcher.isErrorState(control, parent)\n : oldState;\n\n if (newState !== oldState) {\n this._errorState = newState;\n this.stateChanges.next();\n }\n\n return newState;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n _onTouched = () => {};\n\n @Input()\n get disabled(): boolean {\n if (this.ngControl && this.ngControl.disabled !== null) {\n return this.ngControl.disabled;\n }\n return this._disabled;\n }\n\n set disabled(value: boolean) {\n this._disabled = coerceBooleanProperty(value);\n\n // Browsers may not fire the blur event if the input is disabled too quickly.\n // Reset from here to ensure that the element doesn't become stuck.\n if (this.focused) {\n this.focused = false;\n }\n this.stateChanges.next();\n }\n\n protected _disabled = false;\n\n @Input() get id(): string {\n return this._id;\n }\n\n set id(value: string) {\n this._id = value || this._uid;\n }\n\n protected _id = '0';\n\n @Input() get readonly(): boolean {\n return this._readonly;\n }\n\n set readonly(value: boolean) {\n this._readonly = coerceBooleanProperty(value);\n }\n\n private _readonly = false;\n\n stateChanges = new Subject<void>();\n\n protected _uid = `mat-input-${MatTimepickerDirective.nextId++}`;\n\n @HostBinding('class.floating') get shouldLabelFloat() {\n return this.focused || !this.empty;\n }\n\n @HostBinding('attr.aria-describedby') describedBy = '';\n\n @Input() errorStateMatcher: ErrorStateMatcher;\n\n @Input() get required() {\n if (this.ngControl?.control) {\n return this.ngControl.control.hasValidator(Validators.required);\n }\n return this._required;\n }\n\n set required(req) {\n this._required = coerceBooleanProperty(req);\n this.stateChanges.next();\n }\n\n private _required = false;\n\n @Input() get placeholder() {\n return this._placeholder;\n }\n\n set placeholder(plh) {\n this._placeholder = plh;\n this.stateChanges.next();\n }\n\n private _placeholder = '';\n\n focused = false;\n private pattern = new RegExp('[0-2]?[0-9]:[0-6]?[0-9]');\n\n private allowed24HourMap: IAllowed24HourMap = this.generateAllowedMap();\n\n private isInputFocused = false;\n\n /** Override the label of the ok button. */\n @Input() okLabel = 'Ok';\n /** Override the label of the cancel button. */\n @Input() cancelLabel = 'Cancel';\n\n /** Sets the clock mode, 12-hour or 24-hour clocks are supported. */\n @Input() color = 'primary';\n @Input() disableDialogOpenOnClick = false;\n @Input() strict = true;\n\n controlType = 'angular-material-timepicker';\n\n @Input() minDate!: Date;\n @Input() maxDate!: Date;\n\n private _value: Date | null = null;\n private _formattedValueString = '';\n\n private _skipValueChangeEmission = true;\n\n @Input() set value(value: Date | null) {\n if (value === this._value) {\n return;\n }\n this._value = value;\n if (!value) {\n this._formattedValueString = '';\n this.setInputElementValue(value);\n this.currentValue = value ?? new Date();\n return;\n }\n\n this._formattedValueString = `${twoDigits(value.getHours())}:${twoDigits(\n value.getMinutes(),\n )}`;\n\n if (!this.isInputFocused) {\n this.setInputElementValue(this.formattedValueString);\n }\n this.currentValue = value;\n this.stateChanges.next();\n\n if (this._skipValueChangeEmission) {\n return;\n }\n this.timeChange.emit(this.currentValue);\n\n if (this.onChangeFn) this.onChangeFn(this.value);\n }\n\n get value() {\n return this._value;\n }\n\n get empty() {\n return !(this.currentValue instanceof Date);\n }\n\n private get formattedValueString() {\n return this._formattedValueString;\n }\n\n private currentValue!: Date;\n\n private onChangeFn: any;\n private onTouchedFn: any;\n private combination: string[] = [];\n\n @Output() timeChange: EventEmitter<any> = new EventEmitter<any>();\n @Output() invalidInput: EventEmitter<any> = new EventEmitter<any>();\n\n @HostListener('input') inputHandler() {\n const value = (this.elRef.nativeElement as any).value as string;\n const length = value.length;\n\n if (length === 0) {\n this.writeValue(null, true);\n this._value = null;\n this._skipValueChangeEmission = true;\n Promise.resolve().then(() => (this._skipValueChangeEmission = false));\n\n if (this.onChangeFn) {\n this.onChangeFn(null);\n }\n\n return;\n }\n\n const valueHasColumn = value.includes(':');\n let [hours, minutes]: any =\n length === 1\n ? [value, 0]\n : length === 2 && !valueHasColumn\n ? [value, 0]\n : valueHasColumn\n ? value.split(':')\n : value.split(/(\\d\\d)/).filter(v => v);\n\n hours = +hours;\n\n if (/\\s/.test(minutes)) {\n let other;\n [minutes, other] = minutes.split(/\\s/);\n if (other === 'pm' && !isNaN(hours) && hours < 12) {\n hours += 12;\n }\n }\n\n minutes = +minutes;\n\n if (isNaN(hours) || isNaN(minutes)) {\n //this.writeValue(null, true);\n this._skipValueChangeEmission = true;\n Promise.resolve().then(() => (this._skipValueChangeEmission = false));\n return;\n }\n\n if (+hours > 24) {\n hours = '24';\n } else if (+hours < 0) {\n hours = '0';\n }\n\n if (+minutes > 59) {\n minutes = '59';\n } else if (+minutes < 0) {\n minutes = '0';\n }\n\n const d = this.value ? new Date(this.value.getTime()) : new Date();\n d.setHours(+hours);\n d.setMinutes(+minutes);\n d.setSeconds(0);\n d.setMilliseconds(0);\n\n const isValueInRange = isDateInRange(this.minDate, this.maxDate, d);\n if (!isValueInRange) {\n this.invalidInput.emit();\n }\n\n this.writeValue(d, true);\n if (this.onChangeFn) {\n this.onChangeFn(d);\n }\n }\n\n @HostListener('keydown', ['$event']) keydownHandler(event: any) {\n const e = event as KeyboardEvent;\n\n const allowedKey = [\n '0',\n '1',\n '2',\n '3',\n '4',\n '5',\n '6',\n '7',\n '8',\n '9',\n ':',\n 'Backspace',\n 'Delete',\n 'Tab',\n 'Enter',\n 'ArrowLeft',\n 'ArrowRight',\n 'ArrowUp',\n 'ArrowDown',\n 'Home',\n 'End',\n ];\n if (allowedKey.indexOf(e.key) >= 0) return;\n\n const allowedCtrlShortcuts = ['a', 'c', 'x', 'v'];\n if (e.ctrlKey && allowedCtrlShortcuts.indexOf(e.key) >= 0) return;\n\n if (event.metaKey || event.ctrlKey || event.altKey) {\n this.combination = this.combination.concat(event.code);\n return;\n }\n const target = event.target;\n const tValue = target.value;\n const value = `${tValue.slice(0, target.selectionStart)}${\n event.key\n }${tValue.slice(target.selectionEnd)}`;\n if (value.match(this.pattern) || this.combination.length > 0) {\n return true;\n }\n event.preventDefault();\n event.stopImmediatePropagation();\n return;\n }\n\n @HostListener('keyup', ['$event']) keyupHandler(event: any) {\n this.combination = this.combination.filter(v => v !== event.code);\n }\n\n @HostListener('focus') focusHandler() {\n this.isInputFocused = true;\n }\n\n @HostListener('focusout') focusoutHandler() {\n this.isInputFocused = false;\n this.setInputElementValue(this.formattedValueString);\n if (this.onTouchedFn && !this._timepicker.modalRef) {\n this.onTouchedFn();\n }\n }\n\n public readonly ngControl = inject(NgControl, { optional: true, self: true });\n private readonly renderer = inject(Renderer2);\n private readonly zone = inject(NgZone);\n private readonly fm = inject(FocusMonitor);\n private readonly elRef = inject(ElementRef<HTMLElement>);\n private readonly ngZone = inject(NgZone);\n protected readonly _platform = inject(Platform);\n private readonly _parentForm = inject(NgForm, { optional: true });\n private readonly _matFormFiled = inject(MatFormField, { optional: true });\n private readonly _parentFormGroup = inject(FormGroupDirective, {\n optional: true,\n });\n private readonly _defaultErrorStateMatcher = inject(ErrorStateMatcher);\n\n constructor() {\n this.errorStateMatcher = this._defaultErrorStateMatcher;\n if (this.ngControl != null) {\n this.ngControl.valueAccessor = this;\n }\n\n if (this._platform.IOS) {\n this.ngZone.runOutsideAngular(() => {\n this.elRef.nativeElement.addEventListener('keyup', (event: Event) => {\n const el = event.target as HTMLInputElement;\n if (!el.value && !el.selectionStart && !el.selectionEnd) {\n // Note: Just setting `0, 0` doesn't fix the issue. Setting\n // `1, 1` fixes it for the first time that you type text and\n // then hold delete. Toggling to `1, 1` and then back to\n // `0, 0` seems to completely fix it.\n el.setSelectionRange(1, 1);\n el.setSelectionRange(0, 0);\n }\n });\n });\n }\n\n this._isServer = !this._platform.isBrowser;\n }\n\n setDescribedByIds(ids: string[]) {\n this.describedBy = ids.join(' ');\n }\n\n onContainerClick(event: MouseEvent) {\n if ((event.target as Element).tagName.toLowerCase() !== 'input') {\n this.elRef.nativeElement.focus();\n }\n }\n\n setInputElementValue(value: any) {\n Promise.resolve().then(() => {\n this.zone.runOutsideAngular(() => {\n this.renderer.setProperty(this.elRef.nativeElement, 'value', value);\n });\n });\n }\n\n validate() {\n const isValueInRange = this.strict\n ? isDateInRange(this.minDate, this.maxDate, this.currentValue)\n : isTimeInRange(this.minDate, this.maxDate, this.currentValue);\n\n return isValueInRange ? null : { dateRange: true };\n }\n\n ngOnInit() {\n if (this._platform.isBrowser) {\n this.fm.monitor(this.elRef.nativeElement, true).subscribe(origin => {\n this.focused = !!origin;\n this.stateChanges.next();\n });\n }\n if (!this.value) {\n const hasMaxDate = !!this.maxDate;\n const hasMinDate = !!this.minDate;\n\n //if (hasMinDate || hasMaxDate) {\n if (hasMinDate) {\n this.minDate.setSeconds(0);\n this.minDate.setMilliseconds(0);\n }\n if (hasMaxDate) {\n this.maxDate.setSeconds(0);\n this.maxDate.setMilliseconds(0);\n }\n\n if (\n !(this.ngControl as any)._rawValidators.find((v: any) => v === this)\n ) {\n (this.ngControl as any)._rawValidators.push(this);\n }\n //}\n }\n this._skipValueChangeEmission = false;\n }\n\n generateAllowedMap(): IAllowed24HourMap {\n const isStrictMode = this.strict && this.value instanceof Date;\n const a24hm: IAllowed24HourMap = {};\n for (let h = 0; h < 24; h++) {\n for (let m = 0; m < 60; m++) {\n const hourMap = a24hm[h] || {};\n if (isStrictMode && this.value) {\n const currentDate = new Date(this.value.getTime());\n currentDate.setHours(h);\n currentDate.setMinutes(m);\n currentDate.setSeconds(0);\n currentDate.setMilliseconds(0);\n hourMap[m] = isDateInRange(this.minDate, this.maxDate, currentDate);\n } else {\n hourMap[m] = isAllowed(h, m, this.minDate, this.maxDate);\n }\n a24hm[h] = hourMap;\n }\n }\n\n return a24hm;\n }\n\n ngOnChanges() {\n this.pattern = /^[0-9]{1,2}:?([0-9]{1,2})?$/;\n\n if (\n !this._timepicker.modalRef ||\n !this._timepicker.modalRef.componentInstance\n ) {\n return;\n }\n\n this._timepicker.modalRef.componentInstance.data = {\n value: this.currentValue,\n okLabel: this.okLabel,\n cancelLabel: this.cancelLabel,\n color: this.color,\n minDate: this.minDate,\n maxDate: this.maxDate,\n allowed24HourMap: this.allowed24HourMap,\n };\n }\n\n checkValidity(value: Date) {\n if (!value) {\n return false;\n }\n const hour = value.getHours();\n const minutes = value.getMinutes();\n return isAllowed(hour, minutes, this.minDate, this.maxDate);\n }\n\n writeValue(value: Date | null, isInnerCall = false): void {\n if (!isInnerCall) {\n this._skipValueChangeEmission = true;\n Promise.resolve().then(() => (this._skipValueChangeEmission = false));\n }\n\n if (value) {\n value.setSeconds(0);\n value.setMilliseconds(0);\n }\n\n if (this.value && +this.value === +(value ?? 0)) {\n return;\n } else {\n this.value = value;\n }\n }\n\n registerOnChange(fn: any): void {\n this.onChangeFn = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouchedFn = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n this.stateChanges.next();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { OnemrvaMatTimepickerComponent } from './onemrva-mat-timepicker.component';\nimport {\n MatTimePickerToggle,\n MatTimepickerToggleIconDirective,\n} from './timepicker-toggle/timepicker-toggle.component';\nimport { MatTimepickerDirective } from './timepicker.directive';\nimport { ClockComponent } from './clock/clock.component';\nimport { MatTimepickerComponentDialogComponent } from './timepicker-dialog/timepicker-dialog.component';\n\n@NgModule({\n imports: [\n ClockComponent,\n MatTimepickerDirective,\n MatTimepickerComponentDialogComponent,\n MatTimepickerToggleIconDirective,\n MatTimePickerToggle,\n OnemrvaMatTimepickerComponent,\n ],\n exports: [\n MatTimepickerDirective,\n MatTimePickerToggle,\n OnemrvaMatTimepickerComponent,\n ],\n})\nexport class OnemrvaMatTimepickerModule {}\n","import { Component, inject } from '@angular/core';\nimport { MAT_SNACK_BAR_DATA } from '@angular/material/snack-bar';\nimport { NgClass } from '@angular/common';\nimport { OnemRvaColorDirective } from '@onemrvapublic/design-system/shared';\n\nexport enum ToastType {\n info = 'info',\n success = 'success',\n warn = 'warn',\n error = 'error',\n accent = 'accent',\n primary = 'primary',\n}\n\n@Component({\n selector: 'onemrva-mat-toast',\n styleUrl: 'onemrva-mat-toast.component.scss',\n template: `\n <div\n class=\"onemrva-mat-toast show-icon\"\n [color]=\"data.type\"\n [ngClass]=\"data.type\"\n [attr.data-cy]=\"dataCy\"\n role=\"alert\"\n aria-atomic=\"true\"\n >\n <span>{{ data.message }}</span>\n </div>\n `,\n standalone: true,\n imports: [NgClass, OnemRvaColorDirective],\n})\nexport class OnemrvaMatToastComponent {\n dataCy: string;\n data = inject(MAT_SNACK_BAR_DATA) as {\n type: ToastType;\n message: string;\n dataCy?: string;\n };\n\n constructor() {\n this.dataCy = this.data.dataCy ? this.data.dataCy : 'onemrva-mat-toast';\n }\n}\n","import { NgModule } from '@angular/core';\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\nimport { OnemrvaMatToastComponent } from './onemrva-mat-toast.component';\n\n@NgModule({\n imports: [OnemrvaMatToastComponent],\n exports: [OnemrvaMatToastComponent, MatSnackBarModule],\n})\nexport class OnemrvaMatToastModule {}\n","/*\n * Public API Surface of mat-toast\n */\n\nexport * from './src/onemrva-mat-toast.component';\nexport * from './src/onemrva-mat-toast.module';\n","import { Component, Input, TemplateRef } from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\n\n@Component({\n selector: 'onemrva-mat-tooltip',\n styleUrls: ['./onemrva-mat-tooltip.component.scss'],\n template: `\n <div>\n <div class=\"tooltip-container\">\n <ng-template #simpleText>\n {{ text }}\n </ng-template>\n <ng-container *ngTemplateOutlet=\"contentTemplate || simpleText\">\n </ng-container>\n </div>\n </div>\n `,\n standalone: true,\n imports: [NgTemplateOutlet],\n})\nexport class OnemrvaMatTooltipComponent {\n @Input() text!: string;\n @Input() contentTemplate!: TemplateRef<any>;\n}\n","import {\n ComponentRef,\n Directive,\n ElementRef,\n HostListener,\n Input,\n OnDestroy,\n OnInit,\n TemplateRef,\n inject,\n} from '@angular/core';\nimport { OnemrvaMatTooltipComponent } from './onemrva-mat-tooltip.component';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport {\n ConnectedPosition,\n Overlay,\n OverlayPositionBuilder,\n OverlayRef,\n} from '@angular/cdk/overlay';\nimport { TooltipPosition } from '@angular/material/tooltip';\n\n@Directive({\n selector: '[OnemrvaMatTooltip]',\n standalone: true,\n})\nexport class OnemrvaMatTooltipDirective implements OnInit, OnDestroy {\n private _overlay = inject(Overlay);\n private _overlayPositionBuilder = inject(OverlayPositionBuilder);\n private _elementRef = inject(ElementRef);\n\n @Input() showToolTip = true;\n\n @Input() customToolTip!: string;\n\n @Input() contentTemplate!: TemplateRef<any>;\n\n @Input() position: TooltipPosition = 'after';\n @Input() positionOffset = 5;\n\n private _overlayRef!: OverlayRef;\n\n ngOnInit() {\n if (!this.showToolTip) {\n return;\n }\n\n const positionStrategy = this._overlayPositionBuilder\n .flexibleConnectedTo(this._elementRef)\n .withPositions(this.defineStrategy());\n this._overlayRef = this._overlay.create({ positionStrategy });\n }\n\n defineStrategy(): ConnectedPosition[] {\n switch (this.position) {\n case 'above':\n return [\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n },\n ];\n\n case 'below':\n return [\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n },\n ];\n\n case 'after':\n case 'right':\n return [\n {\n originX: 'end',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'top',\n },\n ];\n\n case 'before':\n case 'left':\n return [\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'top',\n },\n ];\n default:\n return [];\n }\n }\n\n @HostListener('mouseenter')\n show() {\n if (this._overlayRef && !this._overlayRef.hasAttached()) {\n const tooltipRef: ComponentRef<OnemrvaMatTooltipComponent> =\n this._overlayRef.attach(\n new ComponentPortal(OnemrvaMatTooltipComponent),\n );\n tooltipRef.instance.text = this.customToolTip;\n tooltipRef.instance.contentTemplate = this.contentTemplate;\n }\n }\n\n @HostListener('mouseleave')\n hide() {\n this.closeToolTip();\n }\n\n ngOnDestroy() {\n this.closeToolTip();\n }\n\n private closeToolTip() {\n if (this._overlayRef) {\n this._overlayRef.detach();\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { OnemrvaMatTooltipComponent } from './onemrva-mat-tooltip.component';\nimport { OnemrvaMatTooltipDirective } from './onemrva-mat-tooltip.directive';\n\n@NgModule({\n declarations: [],\n imports: [OnemrvaMatTooltipDirective, OnemrvaMatTooltipComponent],\n exports: [OnemrvaMatTooltipDirective, OnemrvaMatTooltipComponent],\n})\nexport class OnemrvaMatTooltipModule {}\n","import { Component, TemplateRef, ViewChild } from '@angular/core';\n\n@Component({\n selector: 'page-not-found-action',\n template: '<ng-template><ng-content></ng-content></ng-template>',\n standalone: true,\n})\nexport class PageNotFoundActionComponent {\n @ViewChild(TemplateRef) template?: TemplateRef<any>;\n}\n","import { Component, TemplateRef, ViewChild } from '@angular/core';\n\n@Component({\n selector: 'page-not-found-extra',\n template: '<ng-template><ng-content></ng-content></ng-template>',\n standalone: true,\n})\nexport class PageNotFoundExtraComponent {\n @ViewChild(TemplateRef) template?: TemplateRef<any>;\n}\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n OnDestroy,\n inject,\n} from '@angular/core';\nimport { Observable, of, Subject, Subscription, timer } from 'rxjs';\nimport { map, startWith, switchMap } from 'rxjs/operators';\nimport { AsyncPipe, NgClass, NgStyle } from '@angular/common';\n\n@Component({\n selector: 'page-not-found-invader',\n styleUrls: ['page-not-found-invader.component.scss'],\n template: `\n <img\n role=\"button\"\n tabindex=\"1\"\n src=\"https://cdn.services.rvaonem.fgov.be/assets/404/saucer.svg\"\n class=\"invader\"\n alt=\"invader\"\n [ngClass]=\"{ 'game-over': gameOver }\"\n [ngStyle]=\"{\n width: (size$ | async) + 'px',\n height: (size$ | async) + 'px',\n left: left + 'px',\n top: top + 'px',\n }\"\n (click)=\"getScore()\"\n />\n <div class=\"score\">Score: {{ score }}</div>\n <!--div class=\"laser\"></div-->\n `,\n standalone: true,\n imports: [AsyncPipe, NgStyle, NgClass],\n})\nexport class PageNotFoundInvaderComponent implements AfterViewInit, OnDestroy {\n private cd = inject(ChangeDetectorRef);\n\n level = 0;\n size$?: Observable<number>;\n\n start: Date = new Date();\n score = 0;\n gameOver = false;\n sub?: Subscription;\n\n score$ = new Subject<number>();\n top = 0;\n left = 0;\n\n ngAfterViewInit() {\n this.size$ = this.score$.pipe(\n startWith(0),\n switchMap(score => {\n this.level++;\n if (this.gameOver) {\n this.sub?.unsubscribe();\n return of(10);\n }\n\n const width = window.innerWidth;\n const height = window.innerHeight;\n\n this.left = (Math.random() * width) / 2 + width / 3;\n this.top = Math.random() * height * 0.8 + height / 10;\n\n const lvl = score < 39 ? score : 39.5;\n return timer(0, 10).pipe(map(i => i / (40 - lvl)));\n }),\n );\n\n this.sub = this.size$.subscribe(s => {\n if (s > 20) {\n this.gameOver = true;\n this.score$.next(this.score);\n }\n });\n\n this.cd.detectChanges();\n }\n\n ngOnDestroy(): void {\n this.sub?.unsubscribe();\n }\n\n getScore() {\n if (this.gameOver) {\n this.score$.next(this.score);\n this.sub?.unsubscribe();\n return;\n }\n this.score++;\n this.score$.next(this.score);\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n OnDestroy,\n QueryList,\n inject,\n} from '@angular/core';\nimport { PageNotFoundActionComponent } from './page-not-found-action.component';\nimport { PageNotFoundExtraComponent } from './page-not-found-extra.component';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { PageNotFoundInvaderComponent } from './page-not-found-invader.component';\n\nconst konamiPattern = [\n 'ArrowUp',\n 'ArrowUp',\n 'ArrowDown',\n 'ArrowDown',\n 'ArrowLeft',\n 'ArrowRight',\n 'ArrowLeft',\n 'ArrowRight',\n 'b',\n 'a',\n];\n@Component({\n selector: 'page-not-found',\n styleUrls: ['./page-not-found.component.scss'],\n templateUrl: 'page-not-found.component.html',\n standalone: true,\n imports: [TranslatePipe, NgTemplateOutlet, PageNotFoundInvaderComponent],\n})\nexport class PageNotFoundComponent implements AfterViewInit, OnDestroy {\n @ContentChildren(PageNotFoundActionComponent)\n actions?: QueryList<PageNotFoundActionComponent>;\n @ContentChild(PageNotFoundExtraComponent)\n extra?: PageNotFoundExtraComponent;\n\n sequence: string[] = ['', '', '', '', '', '', '', '', '', ''];\n konamiMatch = false;\n\n cd = inject(ChangeDetectorRef);\n\n ngAfterViewInit() {\n this.cd.detectChanges();\n window.addEventListener('keydown', this.konami.bind(this));\n }\n\n ngOnDestroy() {\n window.removeEventListener('keydown', this.konami.bind(this));\n }\n\n konami($event: any) {\n this.sequence.shift();\n this.sequence = [...this.sequence, $event.key];\n\n if (\n this.sequence.length === konamiPattern.length &&\n !this.sequence.map((s, idx) => s === konamiPattern[idx]).includes(false)\n ) {\n this.konamiMatch = true;\n }\n }\n}\n","<div class=\"page-not-found\">\n <!--img src=\"https://cdn.services.rvaonem.fgov.be/img/404/Arrière-plan.svg\" class=\"ap\" /-->\n <div class=\"not-found-section\">\n <div class=\"heading mat-headline-1\">{{ '404.oops' | translate }}</div>\n <h1>{{ '404.title' | translate }}</h1>\n <p>{{ '404.body' | translate }}</p>\n <h2>{{ '404.actions' | translate }}</h2>\n <div class=\"actions\">\n @for (action of actions?.toArray(); track action.template) {\n @if (action.template) {\n <ng-container *ngTemplateOutlet=\"action.template\"></ng-container>\n }\n }\n </div>\n @if (extra?.template; as tpl) {\n <ng-container *ngTemplateOutlet=\"tpl\"></ng-container>\n }\n </div>\n <div class=\"not-found-section section-flying-saucer\">\n <div class=\"not-found-section flying-saucer-container\">\n <img\n src=\"https://cdn.services.rvaonem.fgov.be/img/404/saucer.svg\"\n class=\"soucoupe\"\n alt=\"{{ '404.flying.saucer' | translate }}\"\n />\n <img\n src=\"https://cdn.services.rvaonem.fgov.be/img/404/lightbeam.svg\"\n class=\"halo\"\n alt=\"{{ '404.tractor.beam' | translate }}\"\n />\n <div class=\"page-container\">\n <img\n src=\"https://cdn.services.rvaonem.fgov.be/img/404/document.svg\"\n class=\"page\"\n alt=\"{{ '404.scared.page' | translate }}\"\n />\n </div>\n <img\n src=\"https://cdn.services.rvaonem.fgov.be/img/404/shadow.svg\"\n class=\"ombre\"\n alt=\"{{ '404.shadow' | translate }}\"\n />\n </div>\n </div>\n @if (konamiMatch) {\n <page-not-found-invader></page-not-found-invader>\n }\n</div>\n","import { NgModule } from '@angular/core';\nimport { PageNotFoundComponent } from './page-not-found.component';\nimport { PageNotFoundInvaderComponent } from './page-not-found-invader.component';\nimport { PageNotFoundActionComponent } from './page-not-found-action.component';\nimport { PageNotFoundExtraComponent } from './page-not-found-extra.component';\n\n@NgModule({\n declarations: [],\n imports: [\n PageNotFoundComponent,\n PageNotFoundInvaderComponent,\n PageNotFoundActionComponent,\n PageNotFoundExtraComponent,\n ],\n exports: [\n PageNotFoundComponent,\n PageNotFoundInvaderComponent,\n PageNotFoundActionComponent,\n PageNotFoundExtraComponent,\n ],\n})\nexport class OnemrvaPageNotFoundModule {}\n","import { Component, ElementRef, inject } from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { Clipboard } from '@angular/cdk/clipboard';\n\n@Component({\n selector: 'lib-clipboard-icon',\n templateUrl: './clipboard-icon.component.html',\n styleUrls: ['./clipboard-icon.component.css'],\n standalone: true,\n imports: [MatIconModule, MatTooltipModule],\n})\nexport class ClipboardIconComponent {\n public _elementRef = inject(ElementRef);\n private clipboardService = inject(Clipboard);\n}\n","<mat-icon [matTooltip]=\"'TEST'\">content_copy</mat-icon>\n","export enum CDNUrlModeOptions {\n PROD = 'production',\n VAL = 'validation',\n}\n","export const CDN_URLS = {\n prod: 'https://cdn.services.rvaonem.fgov.be',\n val: 'https://cdn.servicesval.rvaonem.fgov.be',\n};\n\nexport const NISS_MASK = '000000/000-00';\n\nexport const LOOKUP_COUNTRY_URL =\n 'http://services/lookupwpptservice/rest/lookup/getLookups?class=be.fgov.onerva.lookup.wppt.persistence.model.common.Country';\n\nexport const ONEMRVA_THEME = 'onemrva-theme';\n\n// export const LOOKUP_POSTAL_CODE_URL =\n// 'https://services/lookupwpptservice/rest/lookup/getBelgianCommunityByPostalCode?postalCode=';\n","import { MatDateFormats } from '@angular/material/core';\n\nconst parseNativeDateFormats = [\n 'ddMMyyyy',\n 'dd/MM/yyyy',\n 'd/M/yyyy',\n 'dd/M/yyyy',\n 'd/MM/yyyy',\n 'd.M.yyyy',\n 'dd.M.yyyy',\n 'd.MM.yyyy',\n 'd/M/yy',\n 'dd/M/yy',\n 'd/MM/yy',\n 'd.M.yy',\n 'dd.M.yy',\n 'd.MM.yy',\n];\nconst parseNativeYearMonthFormats = [\n 'MMyyyy',\n 'M/yyyy',\n 'M/yy',\n 'MM/yyyy',\n 'MM/yy',\n 'M.yyyy',\n 'MM.yyyy',\n];\nconst parseLuxonYearMonthFormats = [\n 'LLyyyy',\n 'L/yyyy',\n 'L/yy',\n 'LL/yyyy',\n 'LL/yy',\n 'L.yyyy',\n 'LL.yyyy',\n];\nconst parseLuxonDateFormat = [\n 'ddLLyyyy',\n 'd/LL/yyyy',\n 'd/L/yyyy',\n 'dd/L/yyyy',\n 'd/LL/yyyy',\n 'd.L.yyyy',\n 'dd.L.yyyy',\n 'd.LL.yyyy',\n 'd/L/yy',\n 'dd/L/yy',\n 'd/LL/yy',\n 'd.L.yy',\n 'dd.L.yy',\n 'd.LL.yy',\n];\n\nexport const ONEMRVA_MAT_NATIVE_DATE_FORMAT: MatDateFormats = {\n parse: {\n dateInput: parseNativeDateFormats,\n },\n display: {\n dateInput: 'dd/MM/yyyy',\n monthYearLabel: 'LL / yyyy',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMMM yyyy',\n },\n};\n\nexport const ONEMRVA_MAT_NATIVE_YEAR_MONTH_FORMAT: MatDateFormats = {\n parse: {\n dateInput: parseNativeYearMonthFormats,\n },\n display: {\n dateInput: 'dd/MM/yyyy',\n monthYearLabel: 'LL / yyyy',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMM yyyy',\n },\n};\n\nexport const ONEMRVA_MAT_LUXON_YEAR_MONTH_FORMATS: MatDateFormats = {\n parse: {\n dateInput: parseLuxonYearMonthFormats,\n },\n display: {\n dateInput: 'LL/yyyy',\n monthYearLabel: 'LLL yyyy',\n dateA11yLabel: 'DDD',\n monthYearA11yLabel: 'LLLL yyyy',\n },\n};\n\nexport const ONEMRVA_MAT_LUXON_DATE_FORMATS: MatDateFormats = {\n parse: {\n dateInput: parseLuxonDateFormat,\n },\n display: {\n dateInput: 'dd/LL/yyyy',\n monthYearLabel: 'LLL yyyy',\n dateA11yLabel: 'DDD',\n monthYearA11yLabel: 'LLL yyyy',\n },\n};\n","import { InjectionToken } from '@angular/core';\n\nexport const CDN_URL_MODE = new InjectionToken<string>(\n 'This is cdn url that will be used (val/prod)',\n);\n","import { InjectionToken } from '@angular/core';\nimport { LOOKUP_COUNTRY_URL, ONEMRVA_THEME } from '../constants';\n\nexport const LOOKUP_COUNTRY_SERVICE_URL = new InjectionToken<string>(\n 'LOOKUP_COUNTRY_SERVICE_URL',\n {\n providedIn: 'root',\n factory: () => LOOKUP_COUNTRY_URL,\n },\n);\n\nexport const ONEMRVA_THEME_CLASS = new InjectionToken<string>(\n 'ONEMRVA_THEME_CLASS',\n {\n providedIn: 'root',\n factory: () => ONEMRVA_THEME,\n },\n);\n","/**\n * @license\n * Copyright 2025 OneMRVA\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport { DOCUMENT } from '@angular/common';\nimport { inject, Injectable, OnDestroy } from '@angular/core';\nimport { Platform, _isTestEnvironment } from '@angular/cdk/platform';\nimport { ONEMRVA_THEME_CLASS } from '../tokens/inject.token';\n\n/** Container inside which all overlays will render. */\n@Injectable({ providedIn: 'root' })\nexport class WebComponentOverlayContainer implements OnDestroy {\n protected _containerElement: HTMLElement | null = null;\n private _themeObserver: MutationObserver | null = null;\n\n private platform = inject(Platform);\n private _document = inject(DOCUMENT);\n private themeClass = inject(ONEMRVA_THEME_CLASS);\n\n ngOnDestroy() {\n this._containerElement?.remove();\n this._themeObserver?.disconnect();\n }\n\n /**\n * This method returns the overlay container element. It will lazily\n * create the element the first time it is called to facilitate using\n * the container in non-browser environments.\n * @returns the container element\n */\n getContainerElement(): HTMLElement | null {\n if (this._containerElement === null) {\n this._createContainer();\n }\n\n return this._containerElement;\n }\n\n /**\n * Create the overlay container element, which is simply a div\n * with the 'cdk-overlay-container' class on the document body.\n */\n protected _createContainer(): void {\n const containerClass = 'cdk-overlay-container';\n\n if (this.platform.isBrowser || _isTestEnvironment()) {\n const oppositePlatformContainers = this._document.querySelectorAll(\n `.${containerClass}[platform=\"server\"], ` +\n `.${containerClass}[platform=\"test\"]`,\n );\n\n oppositePlatformContainers.forEach(platform => {\n platform.remove();\n });\n }\n\n const containerwrap = this._document.createElement('div');\n containerwrap.classList.add(this.themeClass);\n\n const themeElements = this._document.querySelectorAll(\n `.${this.themeClass}`,\n );\n const existingThemeElement = Array.from(themeElements).find(\n el => el !== containerwrap,\n );\n\n if (existingThemeElement) {\n if (existingThemeElement.classList.contains('dark-theme')) {\n containerwrap.classList.add('dark-theme');\n } else if (existingThemeElement.classList.contains('light-theme')) {\n containerwrap.classList.add('light-theme');\n }\n }\n\n this._themeObserver = new MutationObserver(mutations => {\n mutations.forEach(mutation => {\n if (\n mutation.type === 'attributes' &&\n mutation.attributeName === 'class'\n ) {\n const target = mutation.target as HTMLElement;\n if (\n target.classList.contains(this.themeClass) &&\n target !== containerwrap\n ) {\n containerwrap.classList.remove('dark-theme', 'light-theme');\n if (target.classList.contains('dark-theme')) {\n containerwrap.classList.add('dark-theme');\n } else if (target.classList.contains('light-theme')) {\n containerwrap.classList.add('light-theme');\n }\n }\n }\n });\n });\n\n if (existingThemeElement) {\n this._themeObserver.observe(existingThemeElement, {\n attributes: true,\n attributeFilter: ['class'],\n });\n }\n\n const container = this._document.createElement('div');\n container.classList.add(containerClass);\n\n if (_isTestEnvironment()) {\n container.setAttribute('platform', 'test');\n } else if (!this.platform.isBrowser) {\n container.setAttribute('platform', 'server');\n }\n\n containerwrap.appendChild(container);\n this._document.body.appendChild(containerwrap);\n this._containerElement = container;\n }\n}\n","import {\n filter,\n finalize,\n merge,\n NEVER,\n Observable,\n Subject,\n tap,\n shareReplay,\n startWith,\n switchMap,\n BehaviorSubject,\n take,\n catchError,\n} from 'rxjs';\n\ntype HttpRequestCacheMethod = (...args: any[]) => Observable<any>;\n\nexport class DefaultStorage implements HttpCacheStorage {\n private storage = new Map<string, Observable<any>>();\n\n getItem(key: string): Observable<any> | undefined {\n return this.storage.get(key);\n }\n\n setItem(key: string, item: Observable<any>): void {\n this.storage.set(key, item);\n }\n\n deleteItem(key: string): void {\n this.storage.delete(key);\n }\n}\n\nexport interface HttpCacheStorage {\n setItem(key: string, item: Observable<any>): void;\n getItem(key: string): Observable<null> | undefined;\n deleteItem(key: string): void;\n}\n\nexport interface HttpCacheOptions {\n refCount?: boolean;\n windowTime?: number;\n ttl?: number;\n storage?: HttpCacheStorage;\n refreshOn?: Observable<unknown> | Subject<unknown> | BehaviorSubject<unknown>;\n}\n\nexport class RequestTimes implements HttpCacheStorage {\n private storage = new Map<string, Observable<any>>();\n\n getItem(key: string): Observable<any> | undefined {\n return this.storage.get(key);\n }\n\n setItem(key: string, item: Observable<any>): void {\n this.storage.set(key, item);\n }\n\n deleteItem(key: string): void {\n this.storage.delete(key);\n }\n}\n\nexport const HttpRequestCache = <T extends Record<string, any>>(\n optionsHandler?: (obj: T, ...args: any[]) => HttpCacheOptions,\n) => {\n return (\n target: T,\n methodName: string,\n descriptor: TypedPropertyDescriptor<HttpRequestCacheMethod>,\n ): TypedPropertyDescriptor<HttpRequestCacheMethod> => {\n if (!(descriptor?.value instanceof Function)) {\n throw Error(\n `'@HttpRequestCache' can be applied only to the class method which returns an Observable`,\n );\n }\n\n const cacheKeyPrefix = `${target.constructor.name}_${methodName}`;\n const originalMethod = descriptor.value;\n const working: Record<string, boolean> = {};\n let subscribers = 0;\n\n descriptor.value = function (...args: any[]): Observable<any> {\n const options = optionsHandler?.call(this as T, this as T, ...args);\n\n if (!options?.storage && !(target as any)._____storage_____) {\n (target as any)._____storage_____ = new DefaultStorage();\n }\n\n if (options?.ttl && !(target as any)._____ttl_storage_____) {\n (target as any)._____ttl_storage_____ = new RequestTimes();\n }\n\n const storage = options?.storage ?? (target as any)._____storage_____;\n\n const key = `${cacheKeyPrefix}_${JSON.stringify(args)}`;\n\n let ttl: { requestTime: number; subject: Subject<void> } =\n undefined as any;\n\n if (options?.ttl) {\n ttl = (target as any)._____ttl_storage_____.getItem(key);\n\n if (!ttl) {\n ttl = {\n requestTime: Date.now(),\n subject: new Subject(),\n };\n } else if (ttl.requestTime + options.ttl <= Date.now()) {\n working[key] = true;\n ttl.requestTime = Date.now();\n ttl.subject.next();\n }\n\n (target as any)._____ttl_storage_____.setItem(key, ttl);\n }\n\n const refreshOn = merge(\n options?.refreshOn ?? (NEVER as Observable<unknown>),\n ttl?.subject ?? (NEVER as Observable<unknown>),\n );\n\n return storage.getItem(key).pipe(\n take(1),\n tap(value => {\n subscribers++;\n if (value === null) throw '';\n }),\n catchError(() => {\n const observable = refreshOn.pipe(\n startWith(true),\n switchMap(() => originalMethod.apply(this, [...args])),\n tap(() => {\n delete working[key];\n }),\n shareReplay({\n bufferSize: 1,\n refCount: options?.refCount ?? false,\n windowTime: options?.windowTime ?? Infinity,\n }),\n filter(() => {\n return !working[key];\n }),\n finalize(() => {\n subscribers--;\n if (subscribers === 0 && options?.refCount) {\n storage.deleteItem(key);\n (target as any)._____ttl_storage_____?.deleteItem(key);\n }\n }),\n );\n storage.setItem(key, observable);\n return observable;\n }),\n );\n\n // let observable = storage.getItem(key);\n //\n // if (!observable) {\n //\n // observable = refreshOn.pipe(\n // startWith(true),\n // switchMap(() => originalMethod.apply(this, [...args])),\n // tap(() => {\n // delete working[key];\n // }),\n // shareReplay({\n // bufferSize: 1,\n // refCount: options?.refCount ?? false,\n // windowTime: options?.windowTime ?? Infinity,\n // }),\n // filter(() => {\n // return !working[key];\n // }),\n // finalize(() => {\n // subscribers--;\n // if (subscribers === 0 && options?.refCount) {\n // storage.deleteItem(key);\n // (target as any)._____ttl_storage_____?.deleteItem(key);\n // }\n // })\n // );\n // storage.setItem(key, observable);\n // }\n\n // subscribers++;\n\n // return observable;\n };\n\n return descriptor;\n };\n};\n","import { Directive, HostListener } from '@angular/core';\n\n@Directive({\n selector: '[digitOnly]',\n standalone: true,\n})\nexport class DigitOnlyDirective {\n @HostListener('keydown', ['$event']) onKeyDown(event: any) {\n const e = event as KeyboardEvent;\n\n const allowedKey = [\n '0',\n '1',\n '2',\n '3',\n '4',\n '5',\n '6',\n '7',\n '8',\n '9',\n '.',\n ',',\n ' ',\n 'Backspace',\n 'Delete',\n 'Tab',\n '-',\n 'Enter',\n 'ArrowLeft',\n 'ArrowRight',\n 'ArrowUp',\n 'ArrowDown',\n 'Home',\n 'End',\n ];\n if (allowedKey.indexOf(e.key) >= 0) return;\n\n // HWKTODO manage ctrl Z and ctrl U\n const allowedCtrlShortcuts = ['a', 'c', 'x', 'v'];\n if (e.ctrlKey && allowedCtrlShortcuts.indexOf(e.key) >= 0) return;\n\n e.preventDefault();\n }\n}\n","import { Directive, HostBinding, Input } from '@angular/core';\nimport { OnemrvaMatColor } from '@onemrvapublic/design-system/utils';\n\n/**\n * Conditionally adds component to the tree if screen width matches at least one size in input\n */\n@Directive({\n selector:\n 'onemrva-mat-selectable-box[color],' +\n 'div[color],' +\n 'onemrva-mat-avatar[color],' +\n 'mat-card[color],' +\n 'mat-toolbar[color],' +\n 'onemrva-mat-spinner[color],' +\n 'onemrva-mat-notification[color],' +\n 'onemrva-mat-task-list[color],' +\n 'onemrva-mat-sticker[color],' +\n 'onemrva-mat-panel[color],' +\n 'onemrva-mat-task[color],' +\n 'onemrva-mat-choice-chip[color],' +\n 'mat-form-field[color],' +\n 'button[color],' +\n 'mat-icon[color],' +\n 'mat-chip[color],' +\n 'mat-chip-option[color]',\n standalone: true,\n})\nexport class OnemRvaColorDirective {\n @Input()\n color: OnemrvaMatColor = '';\n\n /** @hidden @internal */\n @HostBinding('class.mat-primary')\n public get _isPrimary(): boolean {\n return this.color === OnemrvaMatColor.PRIMARY;\n }\n /** @hidden @internal */\n @HostBinding('class.mat-accent')\n public get _isAccent(): boolean {\n return this.color === OnemrvaMatColor.ACCENT;\n }\n /** @hidden @internal */\n @HostBinding('class.mat-error')\n public get _isError(): boolean {\n return this.color === OnemrvaMatColor.ERROR;\n }\n /** @hidden @internal */\n @HostBinding('class.mat-warn')\n public get _isWarn(): boolean {\n return this.color === OnemrvaMatColor.WARN;\n }\n /** @hidden @internal */\n @HostBinding('class.mat-success')\n public get _isSuccess(): boolean {\n return this.color === OnemrvaMatColor.SUCCESS;\n }\n /** @hidden @internal */\n @HostBinding('class.mat-info')\n public get _isInfo(): boolean {\n return this.color === OnemrvaMatColor.INFO;\n }\n /** @hidden @internal */\n @HostBinding('class.mat-neutral')\n public get _isNeutral(): boolean {\n return this.color === OnemrvaMatColor.NEUTRAL;\n }\n}\n","import {\n Directive,\n EventEmitter,\n HostBinding,\n HostListener,\n Output,\n} from '@angular/core';\nimport { OnemRvaColorDirective } from './color.directive';\n\n@Directive({\n selector: 'tr[matRowClickable]',\n standalone: true,\n})\nexport class MatRowClickableDirective extends OnemRvaColorDirective {\n @Output()\n matRowClickable = new EventEmitter<any>();\n\n @HostListener('click', ['$event'])\n click() {\n this.matRowClickable.emit();\n }\n\n /** @hidden @internal */\n @HostBinding('class.clickable')\n public get _isClickable(): boolean {\n return this.matRowClickable.observed;\n }\n\n @HostBinding('class.onemrva-clickable-row')\n public cssClass = true;\n}\n","import {\n BreakpointObserver,\n Breakpoints,\n BreakpointState,\n} from '@angular/cdk/layout';\nimport {\n Directive,\n Input,\n OnInit,\n TemplateRef,\n ViewContainerRef,\n inject,\n} from '@angular/core';\n\n/**\n * Conditionally adds component to the tree if screen width matches at least one size in input\n */\n@Directive({\n selector: '[ifWidthIs]',\n standalone: true,\n})\nexport class IfWidthIsDirective implements OnInit {\n breakpointObserver = inject(BreakpointObserver);\n private _templateRef = inject<TemplateRef<any>>(TemplateRef);\n private _viewContainer = inject(ViewContainerRef);\n\n @Input() ifWidthIs!: (typeof Breakpoints)[keyof typeof Breakpoints][];\n\n ngOnInit() {\n this.breakpointObserver\n .observe([...this.ifWidthIs])\n .subscribe((state: BreakpointState) => {\n this._viewContainer.clear();\n if (state.matches) {\n this._viewContainer.createEmbeddedView(this._templateRef);\n }\n });\n }\n}\n","import {\n Directive,\n ElementRef,\n HostListener,\n Input,\n inject,\n} from '@angular/core';\n\nconst UNDO_STACK_MAX_LENGTH = 50;\n\n/**\n * 0: digits\n * A: letters (uppercase or lowercase) and digits\n * S: only letters (uppercase or lowercase)\n * U: only letters uppercase\n * L: only letters lowercase\n */\n\n@Directive({\n selector: '[onemrvamask]',\n standalone: true,\n})\nexport class OnemrvaMaskDirective {\n private el = inject(ElementRef);\n\n @Input() onemrvamask!: string;\n\n private inputStack: string[] = ['']; // Stack for undo/redo\n private stackIdx = 0; // Current index in undo/redo stack\n\n markForDelete = false;\n\n @HostListener('keydown', ['$event']) onKeyDown(event: KeyboardEvent) {\n // Allow functional keystrokes\n const e = event as KeyboardEvent;\n\n let specialKeys = [\n 'Tab',\n 'Enter',\n 'ArrowLeft',\n 'ArrowRight',\n 'ArrowUp',\n 'ArrowDown',\n 'Home',\n 'End',\n ];\n if (specialKeys.indexOf(e.key) >= 0) return;\n\n specialKeys = ['Backspace', 'Delete'];\n if (specialKeys.indexOf(e.key) >= 0) {\n this.markForDelete = true;\n return;\n }\n\n // Undo\n if (e.ctrlKey && 'z' === e.key && this.stackIdx > 0) {\n this.stackIdx--;\n this.el.nativeElement.value = this.inputStack[this.stackIdx];\n event.preventDefault();\n }\n\n // Redo\n if (\n e.ctrlKey &&\n 'u' === e.key &&\n this.stackIdx < this.inputStack.length - 1\n ) {\n this.stackIdx++;\n this.el.nativeElement.value = this.inputStack[this.stackIdx];\n event.preventDefault();\n }\n\n const allowedCtrlShortcuts = ['a', 'c', 'x', 'v'];\n if (e.ctrlKey && allowedCtrlShortcuts.indexOf(e.key) >= 0) return;\n }\n\n @HostListener('input', ['$event']) onInput(event: any) {\n const selectionStart = event.target?.selectionStart;\n\n /*\n * Step 1\n * This block lets a delete execution if the new value is compliant.\n * There are 2 deletion cases, after which the new value is not compliant\n * - dd/MX/yyyy: X is deleted, then the date becomes dd/M/yyyy\n * This case is resolved by step 2 and the date will become: dd/My/yyy\n * - dd/MMXyyyy: the last '/' is deleted, then the date becomes dd/MMyyyy\n * In this particular case, step 2 will automatically add the missing slash, so the date will remain dd/MM/yyyy\n * The issue is that the caret position will remain stuck where it was, so if the user keeps hitting the delete key, nothing will change at all. This is resolved in step 4 by moving the caret to the left\n */\n if (this.markForDelete) {\n const isCompliantAfterDeletion =\n [...this.el.nativeElement.value].findIndex((char, idx) => {\n const rule = this.onemrvamask[idx];\n\n if (rule === null || rule === undefined) return true;\n\n if (isNaN(char) && char.toLowerCase() === char.toUpperCase())\n return char !== rule;\n\n return !isAllowed(rule, char);\n }) < 0;\n\n if (isCompliantAfterDeletion) {\n this.markForDelete = false;\n return;\n }\n }\n\n // Step 2\n const compliantValue = [...this.el.nativeElement.value]\n .filter(char => isAllowed('A', char)) // Necessary when several special char in a row\n .reduce((newValue, char) => {\n let idx = newValue.length;\n const rule = this.onemrvamask[idx];\n\n if (rule === null || rule === undefined) return newValue;\n\n newValue = !isAllowed(rule, char) ? newValue : newValue + char;\n\n // Add all trailing special characters\n let nextRule = this.onemrvamask[++idx];\n let i = 0;\n\n while (\n nextRule !== null &&\n nextRule !== undefined &&\n ['0', 'A', 'S', 'U', 'L'].indexOf(nextRule) < 0\n ) {\n i++;\n newValue += nextRule;\n nextRule = this.onemrvamask[++idx];\n\n if (i > 50) break;\n }\n\n return newValue;\n }, '');\n\n this.el.nativeElement.value = compliantValue;\n\n // Step 3 - Find the new cursor position. If the last new character is just before special character, move the caret after\n let idx = selectionStart;\n let nextRule = this.onemrvamask[idx];\n while (\n nextRule !== null &&\n nextRule !== undefined &&\n ['0', 'A', 'S', 'U', 'L'].indexOf(nextRule) < 0\n ) {\n idx++;\n nextRule = this.onemrvamask[idx];\n if (\n nextRule !== null &&\n nextRule &&\n ['0', 'A', 'S', 'U', 'L'].indexOf(nextRule) < 0\n ) {\n /* empty */\n } else break;\n }\n\n // Step 4 - Update inputStack only when all characters are processed\n if (compliantValue !== this.inputStack[this.stackIdx]) {\n this.stackIdx++;\n\n const stack =\n this.stackIdx > UNDO_STACK_MAX_LENGTH - 1\n ? this.inputStack.slice(1)\n : this.inputStack.splice(0, this.stackIdx);\n this.stackIdx =\n this.stackIdx > UNDO_STACK_MAX_LENGTH - 1\n ? UNDO_STACK_MAX_LENGTH - 1\n : this.stackIdx;\n\n this.inputStack = [...stack, compliantValue];\n\n this.el.nativeElement.setSelectionRange(idx, idx);\n } else {\n if (this.markForDelete) {\n let i = idx - 1;\n /* Finds the last rule character before the special character.\n * e.g: (nnn)/nnnn\n * If the user tries to delete '/', the caret will move just before ')'\n */\n while (i > 0) {\n const previousRule = this.onemrvamask[i - 1];\n if (['0', 'A', 'S', 'U', 'L'].indexOf(previousRule) < 0) {\n i--;\n } else break;\n }\n this.el.nativeElement.setSelectionRange(i, i);\n }\n }\n this.markForDelete = false;\n }\n}\n\nfunction isAllowed(rule: string, character: string) {\n switch (rule) {\n // Any digit\n case '0':\n if (character === ' ') return false;\n return !isNaN(+character);\n\n // A: letters (uppercase or lowercase) and digits\n case 'A':\n if (character === ' ') return false;\n return (\n !isNaN(+character) || character.toLowerCase() != character.toUpperCase()\n );\n\n // only letters (uppercase or lowercase)\n case 'S':\n return character.toLowerCase() != character.toUpperCase();\n\n // only uppercase letters\n case 'U':\n return (\n character.toLowerCase() != character.toUpperCase() &&\n character === character.toUpperCase()\n );\n\n // only lowercase letters\n case 'L':\n return (\n character.toLowerCase() != character.toUpperCase() &&\n character === character.toLowerCase()\n );\n }\n\n return false;\n}\n","import {\n ComponentFactoryResolver,\n ComponentRef,\n Directive,\n ElementRef,\n HostBinding,\n Input,\n OnInit,\n Renderer2,\n ViewContainerRef,\n inject,\n} from '@angular/core';\nimport { Clipboard } from '@angular/cdk/clipboard';\nimport { ClipboardIconComponent } from '../components/clipboard-icon/clipboard-icon.component';\n\n/**\n * Conditionally adds component to the tree if screen width matches at least one size in input\n */\n@Directive({\n selector: 'span[clipboard]',\n standalone: true,\n})\nexport class OnemRvaClipboardDirective implements OnInit {\n private elementRef = inject(ElementRef);\n private renderer = inject(Renderer2);\n private factory = inject(ComponentFactoryResolver);\n private vcRef = inject(ViewContainerRef);\n private clipboardService = inject(Clipboard);\n\n private icon: ComponentRef<ClipboardIconComponent>;\n private iconEl: any;\n\n constructor() {\n const miFactory = this.factory.resolveComponentFactory(\n ClipboardIconComponent,\n );\n this.icon = this.vcRef.createComponent(miFactory);\n this.iconEl = this.icon.injector.get(\n ClipboardIconComponent,\n )._elementRef.nativeElement;\n }\n\n @HostBinding('class')\n class = '';\n\n @Input()\n clipboard = '';\n\n ngOnInit(): void {\n this.vcRef.clear();\n\n this.renderer.appendChild(this.elementRef.nativeElement, this.iconEl);\n }\n}\n","import { Directive, HostBinding } from '@angular/core';\n\n/**\n * Conditionally adds component to the tree if screen width matches at least one size in input\n */\n@Directive({\n selector: 'button[iconRight]',\n standalone: true,\n})\nexport class OnemRvaIconRightDirective {\n @HostBinding('class.onemrva-icon-right')\n class = true;\n}\n","import { Directive, ElementRef, HostListener, inject } from '@angular/core';\n\n@Directive({\n selector: '[onemrvaDateFormat]',\n standalone: true,\n})\nexport class OnemrvaDateFormatDirective {\n private el = inject<ElementRef<HTMLInputElement>>(ElementRef);\n\n private readonly template = '__/__/____';\n\n @HostListener('paste', ['$event'])\n onPaste(event: ClipboardEvent) {\n const input = this.el.nativeElement;\n\n // Get pasted content\n const pasted = event.clipboardData?.getData('text/plain') || '';\n const digitsOnly = pasted.replace(/\\D/g, '');\n\n if (!digitsOnly) {\n event.preventDefault(); // Ignore invalid paste\n return;\n }\n\n event.preventDefault(); // Stop default paste\n\n // Start at current caret position\n let pos = input.selectionStart ?? 0;\n const chars = input.value.split('');\n let digitIndex = 0;\n\n while (pos < this.template.length && digitIndex < digitsOnly.length) {\n if (this.template[pos] === '/') {\n pos++;\n continue;\n }\n\n chars[pos] = digitsOnly[digitIndex++];\n pos++;\n }\n\n input.value = chars.join('');\n this.emitInputEvent(input);\n\n // Set caret after the last replaced character\n this.setCaretToNextEditable(pos);\n }\n\n @HostListener('cut', ['$event'])\n onCut(event: ClipboardEvent) {\n const input = this.el.nativeElement;\n const start = input.selectionStart ?? 0;\n const end = input.selectionEnd ?? 0;\n\n // Capture the selected value (optional: log or store it)\n const cutText = input.value.substring(start, end);\n\n // Replace the selected portion with underscores (skip slashes)\n const chars = input.value.split('');\n for (let i = start; i < end; i++) {\n if (this.template[i] !== '/') {\n chars[i] = '_';\n }\n }\n\n // Update input value\n input.value = chars.join('');\n this.emitInputEvent(input);\n\n // Move caret to next editable position\n this.setCaretToNextEditable(start);\n\n // Prevent default cut behavior from modifying content further\n event.preventDefault();\n\n // ✅ Optionally copy to clipboard manually (optional)\n if (event.clipboardData) {\n event.clipboardData.setData('text/plain', cutText.replace(/\\//g, ''));\n }\n }\n\n @HostListener('focus')\n onFocus() {\n const input = this.el.nativeElement;\n if (!input.value || input.value === this.template) {\n input.value = this.template;\n }\n this.setCaretToNextEditable(0);\n }\n\n @HostListener('click')\n onClick() {\n const input = this.el.nativeElement;\n\n // Only reposition the caret if there's no selection (start === end)\n const selectionStart = input.selectionStart ?? 0;\n const selectionEnd = input.selectionEnd ?? 0;\n\n if (selectionStart === selectionEnd) {\n if (input.value === this.template) {\n this.setCaretToNextEditable(0);\n } else {\n this.setCaretToNextEditable(selectionStart);\n }\n }\n }\n\n @HostListener('keydown', ['$event'])\n onKeyDown(event: KeyboardEvent) {\n const input = this.el.nativeElement;\n let pos = input.selectionStart ?? 0;\n\n const allowedCtrlShortcuts = ['a', 'c', 'x', 'v'];\n if (event.ctrlKey && allowedCtrlShortcuts.indexOf(event.key) >= 0) {\n if (event.key === 'x' && input.value === '') {\n input.value = this.template;\n this.emitInputEvent(input);\n }\n return;\n }\n\n // Allow navigation\n if (['ArrowLeft', 'ArrowRight', 'Tab'].includes(event.key)) return;\n\n // Handle Backspace or Delete with selection\n if (event.key === 'Backspace' || event.key === 'Delete') {\n event.preventDefault();\n\n const start = input.selectionStart ?? 0;\n const end = input.selectionEnd ?? start;\n\n // If there's a selection\n if (end > start) {\n const chars = input.value.split('');\n for (let i = start; i < end; i++) {\n if (this.template[i] !== '/') {\n chars[i] = '_';\n }\n }\n input.value = chars.join('');\n this.emitInputEvent(input);\n this.setCaretToNextEditable(start);\n return;\n }\n\n // If no selection, handle as usual (delete previous or next char)\n let pos = start;\n\n if (event.key === 'Backspace' && pos > 0) {\n do {\n pos--;\n } while (this.template[pos] === '/' && pos > 0);\n\n this.replaceCharAt(input, pos, '_');\n this.emitInputEvent(input);\n this.setCaretToNextEditable(pos);\n return;\n }\n\n if (event.key === 'Delete' && pos < this.template.length) {\n while (this.template[pos] === '/' && pos < this.template.length) {\n pos++;\n }\n this.replaceCharAt(input, pos, '_');\n this.emitInputEvent(input);\n this.setCaretToNextEditable(pos);\n return;\n }\n }\n\n // Handle Slash `/` key\n if (\n event.key === '/' ||\n event.key === '.' ||\n event.key === '-' ||\n event.key === ' '\n ) {\n event.preventDefault();\n\n if (pos === 1 || pos === 4) {\n // Typing `/` at end of day field\n const currentVal = input.value.substring(pos - 1, pos);\n if (!currentVal.includes('_')) {\n this.replaceCharAt(input, pos - 1, '0');\n this.replaceCharAt(input, pos, currentVal);\n this.setCaretToNextEditable(pos + 2);\n return;\n }\n }\n\n // Default: just skip to next editable section if allowed\n this.setCaretToNextEditable(pos + 1);\n return;\n }\n\n // Handle Backspace\n if (event.key === 'Backspace') {\n event.preventDefault();\n if (pos === 0) return;\n\n do {\n pos--;\n } while (this.template[pos] === '/' && pos > 0);\n\n this.replaceCharAt(input, pos, '_');\n this.setCaretToNextEditable(pos);\n this.emitInputEvent(input);\n return;\n }\n\n // Allow only digits\n if (!/^\\d$/.test(event.key)) {\n event.preventDefault();\n return;\n }\n\n // Prevent typing beyond mask\n if (pos >= this.template.length) {\n event.preventDefault();\n return;\n }\n\n // Skip slashes forward\n while (this.template[pos] === '/' && pos < this.template.length) {\n pos++;\n }\n\n this.replaceCharAt(input, pos, event.key);\n event.preventDefault();\n this.setCaretToNextEditable(pos + 1);\n this.emitInputEvent(input);\n }\n\n private emitInputEvent(input: HTMLInputElement) {\n input.dispatchEvent(new Event('input', { bubbles: true }));\n }\n\n @HostListener('blur')\n onBlur() {\n // Optionally keep the mask visible on blur — do nothing\n }\n\n private replaceCharAt(input: HTMLInputElement, index: number, char: string) {\n const value = input.value.split('');\n value[index] = char;\n input.value = value.join('');\n }\n\n private setCaretToNextEditable(pos: number) {\n const input = this.el.nativeElement;\n while (this.template[pos] === '/' && pos < this.template.length) {\n pos++;\n }\n input.setSelectionRange(pos, pos);\n }\n\n private sanitizeDateInput(input: string | undefined): string {\n if (typeof input !== 'string') return '';\n return input\n .replace(/[.\\s-]/g, '/') // Replace dot, space, dash with slash\n .replace(/[^0-9/]/g, '')\n .replace('//', ''); // Remove everything except digits and slash\n }\n}\n","import { Directive, HostBinding, input, Input } from '@angular/core';\n\n@Directive({\n selector:\n 'form[readonly], ' +\n 'mat-checkbox[readonly], ' +\n 'mat-radio-group[readonly], ' +\n 'mat-form-field[readonly], ' +\n 'onemrva-mat-input-phone[readonly],' +\n 'onemrva-mat-task-list[readonly],' +\n 'onemrva-mat-selectable-box[readonly],' +\n 'onemrva-mat-choice-chip[readonly],' +\n 'onemrva-mat-input-birthplace[readonly],' +\n 'onemrva-mat-input-country[readonly],' +\n 'onemrva-mat-input-enterprise-number[readonly]',\n standalone: true,\n})\nexport class OnemRvaReadonlyDirective {\n readonly = input(true);\n\n /** @hidden @internal */\n @HostBinding('class.onemrva-readonly')\n public get isReadOnly(): boolean {\n return this.readonly();\n }\n}\n","import { Directive, HostBinding, Input } from '@angular/core';\nimport { OnemrvaMatSize } from '@onemrvapublic/design-system/utils';\n\n/**\n * Conditionally adds component to the tree if screen width matches at least one size in input\n */\n@Directive({\n selector:\n 'mat-icon[size], onemrva-mat-skeleton[size], onemrva-mat-avatar[size], button[size]',\n standalone: true,\n})\nexport class OnemRvaSizeDirective {\n @Input()\n size: OnemrvaMatSize = '';\n\n /** @hidden @internal */\n @HostBinding('class.xsmall')\n public get _isXSmall(): boolean {\n return this.size === OnemrvaMatSize.XSMALL;\n }\n /** @hidden @internal */\n @HostBinding('class.small')\n public get _isSmall(): boolean {\n return this.size === OnemrvaMatSize.SMALL;\n }\n /** @hidden @internal */\n @HostBinding('class.large')\n public get _isLarge(): boolean {\n return this.size === OnemrvaMatSize.LARGE;\n }\n /** @hidden @internal */\n @HostBinding('class.xlarge')\n public get _isXLarge(): boolean {\n return this.size === OnemrvaMatSize.XLARGE;\n }\n /** @hidden @internal */\n @HostBinding('class.xxlarge')\n public get _isXXLarge(): boolean {\n return this.size === OnemrvaMatSize.XXLARGE;\n }\n}\n","import { DigitOnlyDirective } from './digit-only.directive';\nimport { MatRowClickableDirective } from './mat-row-clickable.directive';\nimport { IfWidthIsDirective } from './if-width-is.directive';\nimport { OnemRvaColorDirective } from './color.directive';\nimport { OnemrvaMaskDirective } from './mask.directive';\nimport { OnemRvaClipboardDirective } from './clipboard.directive';\nimport { OnemRvaIconRightDirective } from './iconRight.directive';\nimport { OnemrvaDateFormatDirective } from './date-format.directive';\nimport { OnemRvaReadonlyDirective } from './readonly-directive';\n\nexport const directives: any[] = [\n DigitOnlyDirective,\n MatRowClickableDirective,\n OnemRvaClipboardDirective,\n OnemRvaIconRightDirective,\n IfWidthIsDirective,\n OnemRvaColorDirective,\n OnemrvaMaskDirective,\n OnemrvaDateFormatDirective,\n OnemRvaReadonlyDirective,\n];\n\nexport * from './digit-only.directive';\nexport * from './mat-row-clickable.directive';\nexport * from './if-width-is.directive';\nexport * from './color.directive';\nexport * from './mask.directive';\nexport * from './clipboard.directive';\nexport * from './iconRight.directive';\nexport * from './date-format.directive';\nexport * from './size.directive';\nexport * from './readonly-directive';\n","import { TranslateService } from '@ngx-translate/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n/**\n * Get language from local storage or browser.ééééééééééééé\n * é\n * @param translateService\n * @param languages\n * @param default_language\n */\nexport function setTranslationLanguage(\n translateService: TranslateService,\n languages = ['en', 'fr', 'nl', 'de'],\n default_language = 'en',\n) {\n return async () => {\n translateService.onLangChange.subscribe(value => {\n localStorage.setItem('language', value.lang);\n });\n translateService.addLangs(languages);\n let language: string | null = localStorage.getItem('language');\n if (language === null || languages.indexOf(language) < 0) {\n // getting language from browser\n if (languages.indexOf(navigator.language) >= 0) {\n language = navigator.language;\n } else {\n // getting language from one of the browser's languages\n for (const lng of navigator.languages) {\n if (languages.indexOf(lng) >= 0) {\n language = lng;\n break;\n }\n }\n // getting default language\n if (language === null || languages.indexOf(language) < 0) {\n language = default_language;\n }\n }\n }\n await translateService.use(language).toPromise();\n };\n}\n\n/**\n * Get language from WO\n *\n * @param translateService\n * @param languages\n * @param default_language\n */\nexport function setTranslationLanguageFromWO(\n translateService: TranslateService,\n languages = ['fr', 'nl'],\n default_language = 'fr',\n) {\n return async () => {\n translateService.addLangs(languages);\n let language: string | null = localStorage.getItem(\n 'be_social_security_workenv_language',\n );\n if (language !== null) {\n language = language.toLowerCase();\n if (languages.indexOf(language) >= 0) {\n await translateService.use(language).toPromise();\n return;\n }\n }\n await translateService.use(default_language).toPromise();\n };\n}\n","import { Observable } from 'rxjs';\nimport { TranslateLoader } from '@ngx-translate/core';\nimport { OnemRvaCDNService } from '../services';\n\nexport class OnemrvaTranslateCDNLoader implements TranslateLoader {\n constructor(\n private cdn: OnemRvaCDNService,\n public projects: string[] = [],\n public prefix = '/i18n/',\n public suffix = '.json',\n ) {}\n\n /**\n * Gets the translations from the server\n */\n public getTranslation(lang: string): Observable<any> {\n return this.cdn.getTranslations(\n this.projects,\n lang,\n this.prefix,\n this.suffix,\n );\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { forkJoin, Observable, of } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\nimport { TranslateLoader } from '@ngx-translate/core';\n\nexport class OnemrvaTranslateHttpLoader implements TranslateLoader {\n constructor(\n private http: HttpClient,\n public prefix = '/assets/i18n/',\n public suffix = '.json',\n public modules: string[] = [],\n ) {}\n\n /**\n * Gets the translations from the server\n */\n public getTranslation(lang: string): Observable<any> {\n const observables = [\n this.http\n .get(`${this.prefix}${lang}${this.suffix}`)\n .pipe(catchError(() => of(null))),\n ...this.modules.map(m => {\n this.http\n .get(`${this.prefix}${m}/${lang}${this.suffix}`)\n .pipe(catchError(() => of(null)));\n //console.log(`${this.prefix}${m}/${lang}${this.suffix}`);\n }),\n ];\n\n return forkJoin(observables).pipe(\n map(all => {\n return all.filter(v => !!v).reduce((s, c) => ({ ...s, ...c }), {});\n }),\n );\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'onemrvaBce',\n standalone: true,\n})\nexport class OnemrvaBcePipe implements PipeTransform {\n transform(value: string): string {\n const strOut = value.trim().replace(/\\/|\\.|-/g, '');\n\n if (strOut.length !== 10) return '?01?.???.???';\n\n return `${strOut.substring(0, 4)}.${strOut.substring(\n 4,\n 7,\n )}.${strOut.substring(7, 10)}`;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'onemrvaNiss',\n standalone: true,\n})\nexport class OnemrvaNissPipe implements PipeTransform {\n transform(value: string): string {\n const strOut = value.trim().replace(/\\/|\\.|-/g, '');\n\n if (strOut.length !== 11) return '??01??/???-??';\n\n return `${strOut.substring(0, 6)}/${strOut.substring(\n 6,\n 9,\n )}-${strOut.substring(9, 11)}`;\n }\n}\n","import { Inject, Injectable, inject } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport {\n Observable,\n map,\n ReplaySubject,\n skip,\n distinctUntilChanged,\n} from 'rxjs';\nimport { OnemRvaCommonCountry } from '../interfaces';\nimport { LOOKUP_COUNTRY_SERVICE_URL } from '../tokens/inject.token';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CommonCountryLookupService {\n protected _countries$ = new ReplaySubject<OnemRvaCommonCountry[]>(1);\n protected _customersInitialized = false;\n\n public http = inject(HttpClient);\n private commonCountryServiceURL = inject(LOOKUP_COUNTRY_SERVICE_URL);\n\n public getCountries(refresh = false): Observable<OnemRvaCommonCountry[]> {\n if (refresh || !this._customersInitialized) {\n this._customersInitialized = true;\n this.http\n .get<OnemRvaCommonCountry[]>(this.commonCountryServiceURL)\n .subscribe(countries => {\n this._countries$.next(countries);\n });\n }\n\n return this._countries$.pipe(skip(+refresh), distinctUntilChanged());\n }\n\n public getCountryByCode(code: string | null) {\n return this._countries$.pipe(\n map(countries => {\n const country = countries.find(country => country.code === code);\n\n return country || null;\n }),\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, of } from 'rxjs';\nimport { HttpCacheStorage } from '../decorators/HttpCacheDecorator';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CacheService implements HttpCacheStorage {\n setItem(key: string, item: Observable<any>): void {\n //console.log(\"SET \" + key);\n item.subscribe(value => {\n localStorage.setItem(key, JSON.stringify(value));\n });\n }\n\n public getItem(key: string): Observable<any> {\n const r = localStorage.getItem(key);\n if (r === null) {\n return of(null);\n }\n return of(JSON.parse(r));\n }\n\n deleteItem(key: string): void {\n //console.log(\"DELETE \" + key);\n localStorage.removeItem(key);\n }\n}\n","import { Injectable, Renderer2, RendererFactory2, inject } from '@angular/core';\nimport { CDN_URL_MODE, CDN_URLS } from '../constants';\nimport { CDNUrlModeOptions } from '../constants';\nimport { HttpClient } from '@angular/common/http';\nimport { catchError, map } from 'rxjs/operators';\nimport { HttpRequestCache } from '../decorators';\nimport { CacheService } from './cache.service';\nimport { forkJoin, Observable, of, Subject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class OnemRvaCDNService {\n private rendererFactory = inject(RendererFactory2);\n private cacheService = inject(CacheService);\n private http = inject(HttpClient);\n\n private readonly cdnUrl: string;\n public refresh$ = new Subject();\n private renderer: Renderer2;\n\n constructor() {\n const cdnUrlMode = inject<CDNUrlModeOptions>(CDN_URL_MODE, {\n optional: true,\n });\n\n this.renderer = this.rendererFactory.createRenderer(null, null);\n switch (cdnUrlMode) {\n case CDNUrlModeOptions.PROD:\n this.cdnUrl = CDN_URLS.prod;\n break;\n case CDNUrlModeOptions.VAL:\n this.cdnUrl = CDN_URLS.val;\n break;\n default:\n this.cdnUrl = CDN_URLS.prod;\n }\n const linkElement = this.renderer.createElement('link');\n\n // Set the attributes\n this.renderer.setAttribute(linkElement, 'rel', 'preconnect');\n this.renderer.setAttribute(linkElement, 'href', this.cdnUrl);\n\n // Append the <link> element to the <head>\n this.renderer.appendChild(document.head, linkElement);\n }\n\n public getUrl(path = '') {\n return this.cdnUrl + path;\n }\n\n public getImg(path = '') {\n return this.getUrl('/img/' + path);\n }\n\n public getOri(path = '') {\n return this.getImg('ori/' + path);\n }\n\n @HttpRequestCache<OnemRvaCDNService>(cdnService => ({\n refreshOn: cdnService.refresh$,\n storage: cdnService.cacheService,\n ttl: 3600000,\n }))\n public fetch<T = any>(endpoint: string) {\n return this.http.get(this.cdnUrl + endpoint);\n }\n\n public fetchNoCache<T = any>(endpoint: string) {\n return this.http.get(this.cdnUrl + endpoint);\n }\n\n public getTranslations(\n projects: string[],\n lang: string,\n prefix = '',\n suffix = '',\n ): Observable<any> {\n const observables = [\n this.http\n .get(\n `${this.cdnUrl}${prefix}design-system/design-system/${lang}${suffix}`,\n )\n .pipe(catchError(() => of({}))),\n ...projects.map(m => {\n return this.http\n .get(`${this.cdnUrl}${prefix}${m}/${lang}${suffix}`)\n .pipe(\n catchError(() => {\n return of({});\n }),\n );\n }),\n ];\n\n return forkJoin(observables).pipe(\n map(all => {\n return all.filter(v => !!v).reduce((s, c) => ({ ...s, ...c }), {});\n }),\n );\n }\n\n /**\n * Loads a CSS file dynamically into the document head.\n * @param href The URL of the CSS file.\n * @returns A promise that resolves when the CSS file is loaded.\n * //\n */\n loadCss(href: string): Promise<void> {\n return new Promise((resolve, reject) => {\n const existingLink = document.querySelector(`link[href=\"${href}\"]`);\n if (existingLink) {\n resolve(); // CSS is already loaded\n return;\n }\n\n const link = this.renderer.createElement('link');\n this.renderer.setAttribute(link, 'rel', 'stylesheet');\n this.renderer.setAttribute(link, 'type', 'text/css');\n this.renderer.setAttribute(link, 'href', href);\n\n link.onload = () => resolve();\n link.onerror = () => reject(new Error(`Failed to load CSS: ${href}`));\n\n this.renderer.appendChild(document.head, link);\n });\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { map, startWith } from 'rxjs/operators';\nimport { TranslateService } from '@ngx-translate/core';\nimport { combineLatestWith, from, Observable } from 'rxjs';\nimport { OnemRvaCDNService } from './cdn.service';\n\nexport interface OnemrvaMaterialCountry {\n code: string;\n name: string;\n dial_code: string;\n zone: string;\n pattern: string;\n placeholder: string;\n translations: {\n fr: string;\n nl: string;\n de: string;\n };\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class OnemRvaCDNCountryService {\n private cdnService = inject(OnemRvaCDNService);\n private translateService = inject(TranslateService);\n\n public getCountries(): Observable<OnemrvaMaterialCountry[]> {\n return this.cdnService.fetch('/json/countries.json').pipe(\n map(response => response as OnemrvaMaterialCountry[]), // ✅ Explicitly cast response\n combineLatestWith(\n from(this.translateService.onLangChange).pipe(\n startWith(this.translateService.currentLang ?? 'fr'),\n map(event => {\n return typeof event === 'string' ? event : event.lang;\n }), // ✅ Ensure it is always a string\n ),\n ),\n map(([response, currentLang]: [OnemrvaMaterialCountry[], string]) => {\n // ✅ Explicit type definition\n return response\n .map((country: OnemrvaMaterialCountry) => ({\n ...country,\n name: this.getTranslatedCountryName(country, currentLang),\n }))\n .sort((a, b) =>\n a.name.toLowerCase().localeCompare(b.name.toLowerCase()),\n );\n }),\n );\n }\n\n public getCountriesByZone(zone: string) {\n return this.getCountries().pipe(\n map(countries => {\n return countries.filter(country => country.zone === zone);\n }),\n );\n }\n\n public getTranslatedCountryName(\n country: OnemrvaMaterialCountry,\n languageCode: string = this.translateService.currentLang,\n ) {\n if (\n languageCode === 'fr' ||\n languageCode === 'nl' ||\n languageCode === 'de'\n ) {\n if (country.translations[languageCode] !== undefined)\n return country.translations[languageCode];\n }\n return country.name;\n }\n\n public findCountryFromCode(code: any) {\n return this.getCountries().pipe(\n map(countries => {\n return countries.find(\n (country: OnemrvaMaterialCountry) =>\n country.code.toLowerCase() === code.toLowerCase(),\n );\n }),\n );\n }\n\n public findCountryFromVIESCode(code: any) {\n return this.getCountriesByZone('EU').pipe(\n map(countries => {\n return countries.find(\n (country: OnemrvaMaterialCountry) =>\n country.pattern.substring(0, 2) === code.substring(0, 2),\n );\n }),\n );\n }\n\n public findCountryFromPrefix(number: any) {\n return this.getCountries().pipe(\n map(countries => {\n return countries.find((country: OnemrvaMaterialCountry) => {\n return (\n country.dial_code === number.substring(0, country.dial_code.length)\n );\n });\n }),\n );\n }\n}\n","import { Injectable, inject } from '@angular/core';\nimport { OnemRvaCDNService } from './cdn.service';\nimport { catchError, map } from 'rxjs';\n\nexport interface MimeDefinition {\n extension: string;\n mimeType: string;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class OnemRvaCDNMimeService {\n private cdnService = inject(OnemRvaCDNService);\n\n static mimetypeFile = '/json/mimetypes.json';\n\n public getMimesForExtension(extensions: string[]) {\n return this.cdnService.fetch(OnemRvaCDNMimeService.mimetypeFile).pipe(\n catchError(() => {\n return [];\n }),\n map(response => {\n return (response as MimeDefinition[])\n .filter(mime => {\n return extensions.includes(mime.extension);\n })\n .map(mime => {\n return mime.mimeType;\n });\n }),\n );\n }\n\n public getExtensionsForMime(mimTypes: string[]) {\n return this.cdnService.fetch(OnemRvaCDNMimeService.mimetypeFile).pipe(\n catchError(() => {\n return [];\n }),\n map(response => {\n return (response as MimeDefinition[])\n .filter(mime => {\n return mimTypes.includes(mime.mimeType);\n })\n .map(mime => {\n return mime.extension;\n });\n }),\n );\n }\n}\n","import { Injectable, inject } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { Observable } from 'rxjs';\n\nexport interface OSMAddress {\n house_number?: string;\n road?: string;\n village?: string;\n municipality?: string;\n county?: string;\n town?: string;\n state?: string;\n 'ISO3166-2-lvl6'?: string;\n postcode?: string;\n neighbourhood?: string;\n city_district?: string;\n city?: string;\n region?: string;\n suburb?: string;\n country?: string;\n country_code?: string;\n}\n\nexport interface OSMResult {\n place_id: number;\n licence: string;\n osm_type: string;\n osm_id: number;\n lat: string;\n lon: string;\n class: string;\n type: string;\n place_rank: number;\n importance: number;\n addresstype: string;\n name: string;\n display_name: string;\n address: OSMAddress;\n boundingbox: [string, string, string, string];\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class OnemRvaOSMService {\n private http = inject(HttpClient);\n\n private nominatimUrl = 'https://nominatim.openstreetmap.org/search';\n\n searchAddress(\n query: string,\n countryCodes: string[] = ['be'],\n format = 'json',\n addressdetails = 1,\n limit = 10,\n ): Observable<OSMResult[]> {\n const params = new HttpParams()\n .set('q', query)\n .set('format', format)\n // .set('accept-language', 'fr') // TODO how do we manage multiple languages ??\n .set('countrycodes', countryCodes.join(','))\n .set('addressdetails', addressdetails)\n .set('limit', limit);\n\n return this.http.get<OSMResult[]>(this.nominatimUrl, { params });\n }\n}\n","import { ErrorHandler, Injectable } from '@angular/core';\n\n@Injectable()\nexport class OnemrvaErrorHandler implements ErrorHandler {\n handleError(error: any) {\n console.error(error);\n //alert(\"Error: \" + error.message);\n // this._snackBar.open(`Error: ${error.message}`, '', {\n // duration: 5000,\n // panelClass: 'mat-primary',\n // horizontalPosition: this.horizontalPosition,\n // verticalPosition: this.verticalPosition,\n // });\n }\n}\n","import {\n MissingTranslationHandler,\n MissingTranslationHandlerParams,\n} from '@ngx-translate/core';\n\nexport class OnemrvaMissingTranslationHandler\n implements MissingTranslationHandler\n{\n handle(params: MissingTranslationHandlerParams) {\n return `???${params.key}???`;\n }\n}\n","import { ValidationErrors } from '@angular/forms';\nimport { AbstractControl, ValidatorFn } from '@angular/forms';\n\nexport class OnemrvaValidators {\n private static bceValidator(required = false, control: AbstractControl) {\n if (control.value === null || control.value.trim() === '') {\n return !required ? null : { bceNull: true };\n }\n\n const bceCandidate = control.value.trim().replace(/\\/|\\.|-/g, '');\n\n if (bceCandidate.length !== 10)\n return { bceLengthError: { value: bceCandidate } };\n\n if (Number.isNaN(+bceCandidate)) return { bceNan: { value: bceCandidate } };\n\n return null;\n }\n\n static bce(required = false): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n return this.bceValidator(required, control);\n };\n }\n\n private static nissValidator(required = false, control: AbstractControl) {\n if (control.value === null || control.value.trim() === '') {\n return !required ? null : { nissNull: true };\n }\n\n const nissCandidate = control.value.trim().replace(/\\/|\\.|-/g, '');\n\n if (nissCandidate.length !== 11) {\n return { nissLengthError: { value: nissCandidate } };\n }\n\n if (Number.isNaN(+nissCandidate)) {\n return { nissNan: { value: nissCandidate } };\n }\n\n // Niss day and year are actual values, the month can be different according to the logic below\n // [20-32] & [40-52] => foreigners & temporary NISS values\n // it is not necessary to check for the actual date to be valid\n\n const checksumValue = nissCandidate.substring(9);\n const nissNumbersToCheck = nissCandidate.substring(0, 9);\n const isValidChecksumYear1900 =\n 97 - (+nissNumbersToCheck % 97) === +checksumValue;\n const isValidChecksumYear2000 =\n 97 - (+`2${nissNumbersToCheck}` % 97) === +checksumValue;\n\n if (!isValidChecksumYear1900 && !isValidChecksumYear2000) {\n return { nissCheckDigitError: { value: nissCandidate } };\n }\n\n /*\n Below checks aren't really necessary but are here to exclude even more potential errors\n We could still improve this to include february days & 30 day months + the real potential ranges\n */\n const monthString = nissCandidate.substring(2, 4);\n const month = parseInt(monthString) - 1;\n const real_month = (parseInt(monthString) % 20) - 1;\n\n if (real_month > 11 || month > 51) {\n return { nissInvalidMonth: { value: nissCandidate } };\n }\n\n const day = +nissCandidate.substring(4, 6);\n if (day > 31) {\n return { nissInvalidDate: { value: nissCandidate } };\n }\n\n return null;\n }\n\n static niss(required = false): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n return this.nissValidator(required, control);\n };\n }\n\n static nissOrBce(required = false): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n if (control.value === null || control.value.trim() === '')\n return !required ? null : { nissNull: true };\n\n const nissCandidate = control.value.trim().replace(/\\/|\\.|-/g, '');\n\n if (control.value.length === 11) {\n return this.nissValidator(required, control);\n } else if (control.value.length === 10) {\n return this.bceValidator(required, control);\n }\n return { lengthError: { value: nissCandidate } };\n };\n }\n}\n","import {\n AbstractControl,\n ValidationErrors,\n ValidatorFn,\n Validators,\n} from '@angular/forms';\nimport {\n validateIBAN,\n electronicFormatIBAN,\n countrySpecs,\n ValidationErrorsIBAN,\n} from 'ibantools';\n\nexport const IBAN_SUPPORTED_COUNTRIES = Object.entries(countrySpecs)\n .filter(value => {\n return value[1].IBANRegistry;\n })\n .map(value => {\n return value[0];\n });\n\nexport const SEPA_ONLY_SUPPORTED_COUNTRIES = Object.entries(countrySpecs)\n .filter(value => {\n return value[1].SEPA;\n })\n .map(value => {\n return value[0];\n });\n\nconst internValidateIban = (iban = '') => {\n return validateIBAN(electronicFormatIBAN(iban) || undefined);\n};\n\n// const getMappedCodes = (errorCodes: ValidationErrorsIBAN[], value?: any) => {\n// const mappedCodes = errorCodes.map(code => ValidationErrorsIBAN[code]);\n//\n// if (mappedCodes.length > 0) {\n// const listCodes: Record<string, any> = {};\n//\n// mappedCodes.forEach((code: string) => {\n// listCodes[code] = { value };\n// });\n//\n// return listCodes as ValidationErrors;\n// }\n//\n// return null;\n// };\n\nexport const bankAccountValidator = (allowEmptyCountry = true): ValidatorFn => {\n return (control: AbstractControl): ValidationErrors | null => {\n let finalErrorCodes: number[] = [];\n if (typeof control.getRawValue() === 'string') {\n const regex = /^[a-zA-Z]{2}/;\n if (regex.test(control.getRawValue().substring(0, 2))) {\n const { valid: _valid, errorCodes } = internValidateIban(control.value);\n finalErrorCodes = errorCodes;\n } else if (!allowEmptyCountry) {\n finalErrorCodes.push(ValidationErrorsIBAN.NoIBANCountry);\n }\n } else {\n const countryCodeValue: string =\n control.value !== null ? control.value['countryCode'] : '';\n const bankNumber: string =\n control.value !== null ? control.value['bban'] : '';\n\n if (countryCodeValue !== '') {\n const { valid: _valid, errorCodes } = internValidateIban(\n `${countryCodeValue}${bankNumber}`,\n );\n finalErrorCodes = errorCodes;\n } else if (!allowEmptyCountry) {\n //\n }\n }\n\n if (finalErrorCodes.length === 0) {\n return null;\n }\n\n const validationErrors: Record<string, { value: any }> = {};\n finalErrorCodes.forEach(errCode => {\n const key = ValidationErrorsIBAN[errCode];\n validationErrors[key] = { value: control.getRawValue() };\n });\n\n return validationErrors;\n };\n};\n","import { NgModule } from '@angular/core';\nimport { directives } from './directives';\n\n@NgModule({\n imports: [...directives],\n exports: [...directives],\n})\nexport class OnemrvaSharedModule {}\n","import { Injectable, OnDestroy, inject } from '@angular/core';\nimport { NativeDateAdapter } from '@angular/material/core';\nimport { DateTime } from 'luxon';\n\nimport { TranslateService } from '@ngx-translate/core';\nimport { Subject, takeUntil } from 'rxjs';\nimport { ONEMRVA_MAT_NATIVE_DATE_FORMAT } from '../constants';\n\n@Injectable()\nexport class OnemrvaNativeDateAdapter\n extends NativeDateAdapter\n implements OnDestroy\n{\n private translateService = inject(TranslateService);\n\n private destroyNotifier$ = new Subject<void>();\n\n override localeChanges = new Subject<any>();\n\n constructor() {\n super();\n\n this.setLocale(this.translateService.currentLang);\n this.localeChanges.next(this);\n if (this.translateService !== undefined) {\n this.translateService.onLangChange\n .pipe(takeUntil(this.destroyNotifier$))\n .subscribe(({ lang }) => {\n this.setLocale(lang);\n this.localeChanges.next(this);\n });\n }\n }\n\n override format(date: Date, formats: any): string {\n const dt = DateTime.fromJSDate(date);\n return dt.toFormat(formats);\n }\n\n override parse(value: any): Date | null {\n const formats = ONEMRVA_MAT_NATIVE_DATE_FORMAT;\n if (value && typeof value === 'string') {\n value = value.replace(/\\D/g, '/');\n }\n\n if (value === null || value === '') {\n return null;\n }\n\n const dt = DateTime.fromFormat(value, formats.display.dateInput, {\n locale: this.locale,\n });\n\n if (dt.isValid) {\n return dt.toJSDate();\n }\n\n for (const format of formats.parse.dateInput) {\n const parsed = DateTime.fromFormat(value, format, {\n locale: this.locale,\n });\n if (parsed.isValid) {\n return parsed.toJSDate();\n }\n }\n\n return this.invalid();\n }\n\n override getFirstDayOfWeek(): number {\n return 1;\n }\n\n ngOnDestroy() {\n this.destroyNotifier$.next();\n this.destroyNotifier$.complete();\n }\n}\n","import { CalendarSystem as LuxonCalendarSystem } from 'luxon/src/misc';\nimport { InjectionToken } from '@angular/core';\n\n/** Configurable options for the `LuxonDateAdapter`. */\nexport interface MatLuxonDateAdapterOptions {\n /**\n * Turns the use of utc dates on or off.\n * Changing this will change how Angular Material components like DatePicker output dates.\n */\n useUtc: boolean;\n\n /**\n * Sets the first day of week.\n * Changing this will change how Angular Material components like DatePicker shows start of week.\n */\n firstDayOfWeek: number;\n\n /**\n * Sets the output Calendar.\n * Changing this will change how Angular Material components like DatePicker output dates.\n */\n defaultOutputCalendar: LuxonCalendarSystem;\n}\n\n/** InjectionToken for LuxonDateAdapter to configure options. */\nexport const MAT_LUXON_DATE_ADAPTER_OPTIONS =\n new InjectionToken<MatLuxonDateAdapterOptions>(\n 'MAT_LUXON_DATE_ADAPTER_OPTIONS',\n {\n providedIn: 'root',\n factory: MAT_LUXON_DATE_ADAPTER_OPTIONS_FACTORY,\n },\n );\n\n/** @docs-private */\nexport function MAT_LUXON_DATE_ADAPTER_OPTIONS_FACTORY(): MatLuxonDateAdapterOptions {\n return {\n useUtc: false,\n firstDayOfWeek: 0,\n defaultOutputCalendar: 'gregory',\n };\n}\n\n/** Creates an array and fills it with values. */\nexport function luxonRange<T>(\n length: number,\n valueFunction: (index: number) => T,\n): T[] {\n const valuesArray = Array(length);\n for (let i = 0; i < length; i++) {\n valuesArray[i] = valueFunction(i);\n }\n return valuesArray;\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport { Injectable, inject } from '@angular/core';\nimport { DateAdapter, MAT_DATE_LOCALE } from '@angular/material/core';\nimport {\n DateTime as LuxonDateTime,\n Info as LuxonInfo,\n DateTimeOptions as LuxonDateTimeOptions,\n CalendarSystem as LuxonCalendarSystem,\n} from 'luxon';\nimport { TranslateService } from '@ngx-translate/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n luxonRange,\n MAT_LUXON_DATE_ADAPTER_OPTIONS,\n MatLuxonDateAdapterOptions,\n} from './luxon.utils';\n\n/** Adapts Luxon Dates for use with Angular Material. */\n@Injectable()\nexport class OnemrvaLuxonDateAdapter extends DateAdapter<LuxonDateTime> {\n private translateService = inject(TranslateService);\n\n private _useUTC: boolean;\n private _firstDayOfWeek: number;\n private _defaultOutputCalendar: LuxonCalendarSystem;\n\n constructor() {\n super();\n\n const dateLocale = inject(MAT_DATE_LOCALE, { optional: true });\n const options = inject<MatLuxonDateAdapterOptions>(\n MAT_LUXON_DATE_ADAPTER_OPTIONS,\n {\n optional: true,\n },\n );\n\n this._useUTC = !!options?.useUtc;\n this._firstDayOfWeek = options?.firstDayOfWeek || 0;\n this._defaultOutputCalendar = options?.defaultOutputCalendar || 'gregory';\n this.setLocale(dateLocale || LuxonDateTime.local().locale);\n\n this.setLocale(this.translateService.currentLang);\n if (this.translateService !== undefined) {\n this.translateService.onLangChange\n .pipe(takeUntilDestroyed())\n .subscribe(({ lang }) => {\n this.setLocale(lang);\n });\n }\n }\n\n getYear(date: LuxonDateTime): number {\n return date.year;\n }\n\n getMonth(date: LuxonDateTime): number {\n // Luxon works with 1-indexed months whereas our code expects 0-indexed.\n return date.month - 1;\n }\n\n getDate(date: LuxonDateTime): number {\n return date.day;\n }\n\n getDayOfWeek(date: LuxonDateTime): number {\n return date.weekday;\n }\n\n getMonthNames(style: 'long' | 'short' | 'narrow'): string[] {\n // Adding outputCalendar option, because LuxonInfo doesn't get effected by LuxonSettings\n return LuxonInfo.months(style, {\n locale: this.locale,\n outputCalendar: this._defaultOutputCalendar,\n });\n }\n\n getDateNames(): string[] {\n // At the time of writing, Luxon doesn't offer similar\n // functionality so we have to fall back to the Intl API.\n const dtf = new Intl.DateTimeFormat(this.locale, {\n day: 'numeric',\n timeZone: 'utc',\n });\n\n // Format a UTC date in order to avoid DST issues.\n return luxonRange(31, i =>\n dtf.format(LuxonDateTime.utc(2017, 1, i + 1).toJSDate()),\n );\n }\n\n getDayOfWeekNames(style: 'long' | 'short' | 'narrow'): string[] {\n // Note that we shift the array once, because Luxon returns Monday as the\n // first day of the week, whereas our logic assumes that it's Sunday. See:\n // https://moment.github.io/luxon/api-docs/index.html#infoweekdays\n const days = LuxonInfo.weekdays(style, { locale: this.locale });\n days.unshift(days.pop()!);\n return days;\n }\n\n getYearName(date: LuxonDateTime): string {\n return date.toFormat('yyyy', this._getOptions());\n }\n\n getFirstDayOfWeek(): number {\n return this._firstDayOfWeek;\n }\n\n getNumDaysInMonth(date: LuxonDateTime): number {\n return date.daysInMonth!;\n }\n\n clone(date: LuxonDateTime): LuxonDateTime {\n return LuxonDateTime.fromObject(date.toObject(), this._getOptions());\n }\n\n createDate(year: number, month: number, date: number): LuxonDateTime {\n const options = this._getOptions();\n\n if (month < 0 || month > 11) {\n throw Error(\n `Invalid month index \"${month}\". Month index has to be between 0 and 11.`,\n );\n }\n\n if (date < 1) {\n throw Error(`Invalid date \"${date}\". Date has to be greater than 0.`);\n }\n\n // Luxon uses 1-indexed months so we need to add one to the month.\n const result = this._useUTC\n ? LuxonDateTime.utc(year, month + 1, date, options)\n : LuxonDateTime.local(year, month + 1, date, options);\n\n if (!this.isValid(result)) {\n throw Error(`Invalid date \"${date}\". Reason: \"${result.invalidReason}\".`);\n }\n\n return result;\n }\n\n today(): LuxonDateTime {\n const options = this._getOptions();\n\n return this._useUTC\n ? LuxonDateTime.utc(options)\n : LuxonDateTime.local(options);\n }\n\n parse(value: any, parseFormat: string | string[]): LuxonDateTime | null {\n const options: LuxonDateTimeOptions = this._getOptions();\n\n if (typeof value == 'string' && value.length > 0) {\n // This is screwing things up as 062005 would become 05 0602\n // const iso8601Date = LuxonDateTime.fromISO(value, options);\n //\n // if (this.isValid(iso8601Date)) {\n // console.log(iso8601Date);\n // return iso8601Date;\n // }\n\n const formats = Array.isArray(parseFormat) ? parseFormat : [parseFormat];\n\n if (!parseFormat.length) {\n throw Error('Formats array must not be empty.');\n }\n\n for (const format of formats) {\n const fromFormat = LuxonDateTime.fromFormat(value, format, options);\n\n if (this.isValid(fromFormat)) {\n return fromFormat;\n }\n }\n return this.invalid();\n } else if (typeof value === 'number') {\n return LuxonDateTime.fromMillis(value, options);\n } else if (value instanceof Date) {\n return LuxonDateTime.fromJSDate(value, options);\n } else if (value instanceof LuxonDateTime) {\n return LuxonDateTime.fromMillis(value.toMillis(), options);\n }\n\n return null;\n }\n\n format(date: LuxonDateTime, displayFormat: string): string {\n if (!this.isValid(date)) {\n throw Error('LuxonDateAdapter: Cannot format invalid date.');\n }\n if (this._useUTC) {\n return date.setLocale(this.locale).setZone('utc').toFormat(displayFormat);\n } else {\n return date.setLocale(this.locale).toFormat(displayFormat);\n }\n }\n\n addCalendarYears(date: LuxonDateTime, years: number): LuxonDateTime {\n return date.reconfigure(this._getOptions()).plus({ years });\n }\n\n addCalendarMonths(date: LuxonDateTime, months: number): LuxonDateTime {\n return date.reconfigure(this._getOptions()).plus({ months });\n }\n\n addCalendarDays(date: LuxonDateTime, days: number): LuxonDateTime {\n return date.reconfigure(this._getOptions()).plus({ days });\n }\n\n toIso8601(date: LuxonDateTime): string {\n return date.toISO()!;\n }\n\n /**\n * Returns the given value if given a valid Luxon or null. Deserializes valid ISO 8601 strings\n * (https://www.ietf.org/rfc/rfc3339.txt) and valid Date objects into valid DateTime and empty\n * string into null. Returns an invalid date for all other values.\n */\n override deserialize(value: any): LuxonDateTime | null {\n const options = this._getOptions();\n let date: LuxonDateTime | undefined;\n if (value instanceof Date) {\n date = LuxonDateTime.fromJSDate(value, options);\n }\n if (typeof value === 'string') {\n if (!value) {\n return null;\n }\n date = LuxonDateTime.fromISO(value, options);\n }\n if (date && this.isValid(date)) {\n return date;\n }\n return super.deserialize(value);\n }\n\n isDateInstance(obj: any): boolean {\n return obj instanceof LuxonDateTime;\n }\n\n isValid(date: LuxonDateTime): boolean {\n return date.isValid;\n }\n\n invalid(): LuxonDateTime {\n return LuxonDateTime.invalid('Invalid Luxon DateTime object.');\n }\n\n override setTime(\n target: LuxonDateTime,\n hours: number,\n minutes: number,\n seconds: number,\n ): LuxonDateTime {\n //if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (hours < 0 || hours > 23) {\n throw Error(\n `Invalid hours \"${hours}\". Hours value must be between 0 and 23.`,\n );\n }\n\n if (minutes < 0 || minutes > 59) {\n throw Error(\n `Invalid minutes \"${minutes}\". Minutes value must be between 0 and 59.`,\n );\n }\n\n if (seconds < 0 || seconds > 59) {\n throw Error(\n `Invalid seconds \"${seconds}\". Seconds value must be between 0 and 59.`,\n );\n }\n //}\n\n return this.clone(target).set({\n hour: hours,\n minute: minutes,\n second: seconds,\n millisecond: 0,\n });\n }\n\n override getHours(date: LuxonDateTime): number {\n return date.hour;\n }\n\n override getMinutes(date: LuxonDateTime): number {\n return date.minute;\n }\n\n override getSeconds(date: LuxonDateTime): number {\n return date.second;\n }\n\n override parseTime(\n value: any,\n parseFormat: string | string[],\n ): LuxonDateTime | null {\n const result = this.parse(value, parseFormat);\n\n if ((!result || !this.isValid(result)) && typeof value === 'string') {\n // It seems like Luxon doesn't work well cross-browser for strings that have\n // additional characters around the time. Try parsing without those characters.\n return (\n this.parse(value.replace(/[^0-9:(AM|PM)]/gi, ''), parseFormat) || result\n );\n }\n\n return result;\n }\n\n override addSeconds(date: LuxonDateTime, amount: number): LuxonDateTime {\n return date.reconfigure(this._getOptions()).plus({ seconds: amount });\n }\n\n /** Gets the options that should be used when constructing a new `DateTime` object. */\n private _getOptions(): LuxonDateTimeOptions {\n return {\n zone: this._useUTC ? 'utc' : undefined,\n locale: this.locale,\n outputCalendar: this._defaultOutputCalendar,\n };\n }\n}\n","import { Provider } from '@angular/core';\nimport { MAT_DATE_FORMATS, DateAdapter } from '@angular/material/core';\nimport { ONEMRVA_MAT_NATIVE_YEAR_MONTH_FORMAT } from '../constants';\nimport { OnemrvaNativeDateAdapter } from '../adapters';\n\nexport function onemrvaDateNativeYearMonthProvider(): Provider[] {\n return [\n {\n provide: MAT_DATE_FORMATS,\n useValue: ONEMRVA_MAT_NATIVE_YEAR_MONTH_FORMAT,\n },\n {\n provide: DateAdapter,\n useClass: OnemrvaNativeDateAdapter,\n },\n ];\n}\n","import { Provider } from '@angular/core';\nimport { MAT_DATE_FORMATS, DateAdapter } from '@angular/material/core';\nimport { ONEMRVA_MAT_NATIVE_DATE_FORMAT } from '../constants';\nimport { OnemrvaNativeDateAdapter } from '../adapters';\n\nexport function onemrvaDateNativeProvider(): Provider[] {\n return [\n {\n provide: MAT_DATE_FORMATS,\n useValue: ONEMRVA_MAT_NATIVE_DATE_FORMAT,\n },\n {\n provide: DateAdapter,\n useClass: OnemrvaNativeDateAdapter,\n },\n ];\n}\n","import { Provider } from '@angular/core';\nimport { ONEMRVA_MAT_LUXON_DATE_FORMATS } from '../constants';\nimport { DateAdapter, MAT_DATE_FORMATS } from '@angular/material/core';\nimport { OnemrvaLuxonDateAdapter } from '../adapters';\n\nexport function onemrvaDateLuxonProvider(): Provider[] {\n return [\n {\n provide: MAT_DATE_FORMATS,\n useValue: ONEMRVA_MAT_LUXON_DATE_FORMATS,\n },\n {\n provide: DateAdapter,\n useClass: OnemrvaLuxonDateAdapter,\n },\n ];\n}\n","import { Provider } from '@angular/core';\nimport { ONEMRVA_MAT_LUXON_YEAR_MONTH_FORMATS } from '../constants';\nimport { DateAdapter, MAT_DATE_FORMATS } from '@angular/material/core';\nimport { OnemrvaLuxonDateAdapter } from '../adapters';\n\nexport function onemrvaDateLuxonYearMonthProvider(): Provider[] {\n return [\n {\n provide: MAT_DATE_FORMATS,\n useValue: ONEMRVA_MAT_LUXON_YEAR_MONTH_FORMATS,\n },\n {\n provide: DateAdapter,\n useClass: OnemrvaLuxonDateAdapter,\n },\n ];\n}\n","import { ErrorHandler, Provider } from '@angular/core';\nimport {\n MAT_FORM_FIELD_DEFAULT_OPTIONS,\n MatFormFieldDefaultOptions,\n} from '@angular/material/form-field';\nimport { OverlayContainer } from '@angular/cdk/overlay';\nimport { WebComponentOverlayContainer } from '../containers';\nimport { OnemrvaErrorHandler } from '../services';\n// import { MAT_DIALOG_DEFAULT_OPTIONS } from '@angular/material/dialog';\n// import { ONEMRVA_THEME_CLASS } from '@onemrvapublic/design-system/shared';\n\nexport function onemrvaThemeProvider(): Provider[] {\n return [\n {\n provide: ErrorHandler,\n useClass: OnemrvaErrorHandler,\n },\n {\n provide: MAT_FORM_FIELD_DEFAULT_OPTIONS,\n useValue: {\n appearance: 'outline',\n floatLabel: 'always',\n subscriptSizing: 'dynamic',\n } as MatFormFieldDefaultOptions,\n },\n {\n provide: OverlayContainer,\n useClass: WebComponentOverlayContainer,\n },\n ];\n}\n","/*\n * Public API Surface of shared\n */\n\nexport * from './src/lib/components';\nexport * from './src/lib/constants';\nexport * from './src/lib/containers';\nexport * from './src/lib/decorators';\nexport * from './src/lib/directives';\nexport * from './src/lib/helpers';\nexport * from './src/lib/loaders';\nexport * from './src/lib/interfaces';\nexport * from './src/lib/pipes';\nexport * from './src/lib/services';\nexport * from './src/lib/validators';\nexport * from './src/lib/shared.module';\nexport * from './src/lib/adapters';\nexport * from './src/lib/providers';\nexport * from './src/lib/tokens';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["OnemrvaMatNavigationComponent","DOCUMENT","i3","ONEMRVA_THEME_CLASS","OnemRvaCDNService","OnemrvaMatAvatarModule","i1","OnemRvaSizeDirective","OnemRvaColorDirective","i2","i1.LayoutComponent","i4.LayoutRouteComponent","i8.LayoutSidenavComponent","i11.LayoutLeftSidenavComponent","NEXT_ID","i4","FlagIconComponent","filter","OnemRvaCDNMimeService","components","OnemRvaOSMService","i5","OnemrvaMatInputCountryComponent","OnemrvaMatInputAddressComponent","CommonCountryLookupService","MatSelectSearchModule","OnemrvaCountryItemComponent","OnemRvaCDNCountryService","i6","i7","IBAN_SUPPORTED_COUNTRIES","SEPA_ONLY_SUPPORTED_COUNTRIES","map","MatSelectSearchComponent","MatOption","index","switchMap","startWith","takeUntil","take","tap","isAllowed","observableOf","catchError","i1.DigitOnlyDirective","i2.MatRowClickableDirective","i3.OnemRvaClipboardDirective","i4.OnemRvaIconRightDirective","i5.IfWidthIsDirective","i6.OnemRvaColorDirective","i7.OnemrvaMaskDirective","i8.OnemrvaDateFormatDirective","i9.OnemRvaReadonlyDirective","LuxonDateTime","LuxonInfo"],"mappings":"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"}
1
+ {"version":3,"file":"onemrvapublic-design-system.mjs","sources":["../../../../projects/onemrva/design-system/layout/src/services/left-sidenav.service.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-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/striphtml.pipe.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/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-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/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/flag-icon/src/flag-icon.component.ts","../../../../projects/onemrva/design-system/flag-icon/src/flag-icon.component.html","../../../../projects/onemrva/design-system/mat-avatar/src/onemrva-mat-avatar.component.ts","../../../../projects/onemrva/design-system/mat-avatar/src/onemrva-mat-avatar.component.html","../../../../projects/onemrva/design-system/mat-avatar/src/onemrva-mat-avatar.module.ts","../../../../projects/onemrva/design-system/mat-breadcrumb/src/onemrva-mat-breadcrumb.service.ts","../../../../projects/onemrva/design-system/mat-breadcrumb/src/onemrva-mat-breadcrumb.component.ts","../../../../projects/onemrva/design-system/mat-breadcrumb/src/onemrva-mat-breadcrumb.component.html","../../../../projects/onemrva/design-system/mat-breadcrumb/src/onemrva-mat-breadcrumb.module.ts","../../../../projects/onemrva/design-system/mat-breadcrumb/index.ts","../../../../projects/onemrva/design-system/mat-carousel/src/mat-carousel-item/onemrva-mat-carousel-item.component.ts","../../../../projects/onemrva/design-system/mat-carousel/src/mat-carousel-item/onemrva-mat-carousel-item.component.html","../../../../projects/onemrva/design-system/mat-carousel/src/onemrva-mat-carousel.component.ts","../../../../projects/onemrva/design-system/mat-carousel/src/onemrva-mat-carousel.component.html","../../../../projects/onemrva/design-system/mat-choice-chip/src/onemrva-mat-choice-chip.component.ts","../../../../projects/onemrva/design-system/mat-choice-chip/src/onemrva-mat-choice-chip.component.html","../../../../projects/onemrva/design-system/mat-choice-chip/index.ts","../../../../projects/onemrva/design-system/mat-copy-to-clipboard/src/components/copy-to-clipboard.component.ts","../../../../projects/onemrva/design-system/mat-copy-to-clipboard/src/components/copy-to-clipboard.component.html","../../../../projects/onemrva/design-system/mat-country-item/src/onemrva-mat-country-item.component.ts","../../../../projects/onemrva/design-system/mat-country-item/src/onemrva-mat-country-item.component.html","../../../../projects/onemrva/design-system/mat-country-item/index.ts","../../../../projects/onemrva/design-system/mat-datepicker-header/src/onemrva-mat-datepicker-header.component.ts","../../../../projects/onemrva/design-system/mat-datepicker-header/src/onemrva-mat-datepicker-header.component.html","../../../../projects/onemrva/design-system/mat-datepicker-header/index.ts","../../../../projects/onemrva/design-system/mat-empty-row/src/onemrva-mat-empty-row.component.ts","../../../../projects/onemrva/design-system/mat-empty-row/src/onemrva-mat-empty-row.component.html","../../../../projects/onemrva/design-system/mat-file-upload/src/models/progress-file.model.ts","../../../../projects/onemrva/design-system/mat-file-upload/src/components/onemrva-mat-file-panel/onemrva-file-panel.component.ts","../../../../projects/onemrva/design-system/mat-file-upload/src/components/onemrva-mat-file-panel/onemrva-file-panel.component.html","../../../../projects/onemrva/design-system/mat-file-upload/src/onemrva-mat-file-upload.service.ts","../../../../projects/onemrva/design-system/mat-file-upload/src/onemrva-mat-file-upload.store.ts","../../../../projects/onemrva/design-system/mat-file-upload/src/directives/dnd.directive.ts","../../../../projects/onemrva/design-system/mat-file-upload/src/components/onemrva-mat-file-upload/onemrva-mat-file-upload.component.ts","../../../../projects/onemrva/design-system/mat-file-upload/src/components/onemrva-mat-file-upload/onemrva-mat-file-upload.component.html","../../../../projects/onemrva/design-system/mat-file-upload/src/components/index.ts","../../../../projects/onemrva/design-system/mat-file-upload/src/onemrva-mat-file-upload.module.ts","../../../../projects/onemrva/design-system/mat-file-upload/index.ts","../../../../projects/onemrva/design-system/mat-input-address/src/format-osm.directive.ts","../../../../projects/onemrva/design-system/mat-input-address/src/onemrva-mat-input-address.component.ts","../../../../projects/onemrva/design-system/mat-input-address/src/onemrva-mat-input-address.component.html","../../../../projects/onemrva/design-system/mat-input-address/index.ts","../../../../projects/onemrva/design-system/mat-address/src/onemrva-address.ts","../../../../projects/onemrva/design-system/mat-address/src/onemrva-address.html","../../../../projects/onemrva/design-system/mat-address/index.ts","../../../../projects/onemrva/design-system/mat-input-birthplace/src/onemrva-mat-input-birthplace.component.ts","../../../../projects/onemrva/design-system/mat-input-birthplace/src/onemrva-mat-input-birthplace.component.html","../../../../projects/onemrva/design-system/mat-input-birthplace/index.ts","../../../../projects/onemrva/design-system/mat-input-country/src/onemrva-mat-input-country.component.ts","../../../../projects/onemrva/design-system/mat-input-country/src/onemrva-mat-input-country.component.html","../../../../projects/onemrva/design-system/mat-input-country/index.ts","../../../../projects/onemrva/design-system/mat-input-enterprise-number/src/onemrva-mat-input-enterprise-number.component.ts","../../../../projects/onemrva/design-system/mat-input-enterprise-number/src/onemrva-mat-input-enterprise-number.component.html","../../../../projects/onemrva/design-system/mat-input-enterprise-number/index.ts","../../../../projects/onemrva/design-system/mat-input-iban/src/onemrva-mat-input-iban.component.ts","../../../../projects/onemrva/design-system/mat-input-iban/src/onemrva-mat-input-iban.component.html","../../../../projects/onemrva/design-system/mat-input-iban/index.ts","../../../../projects/onemrva/design-system/mat-input-phone/src/phone-number.directive.ts","../../../../projects/onemrva/design-system/mat-input-phone/src/onemrva-mat-input-phone.component.ts","../../../../projects/onemrva/design-system/mat-input-phone/src/onemrva-mat-input-phone.component.html","../../../../projects/onemrva/design-system/mat-input-phone/index.ts","../../../../projects/onemrva/design-system/mat-message-box/src/onemrva-mat-message-box.component.ts","../../../../projects/onemrva/design-system/mat-message-box/src/onemrva-mat-message-box.component.html","../../../../projects/onemrva/design-system/mat-message-box/src/onemrva-mat-message-box.module.ts","../../../../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-notification/src/onemrva-mat-notification.component.ts","../../../../projects/onemrva/design-system/mat-notification/src/onemrva-mat-notification.component.html","../../../../projects/onemrva/design-system/mat-navigation/src/mat-navigation-item/onemrva-mat-navigation-item.component.ts","../../../../projects/onemrva/design-system/mat-navigation/src/mat-navigation-item/onemrva-mat-navigation-item.component.html","../../../../projects/onemrva/design-system/mat-navigation/src/mat-navigation-tree/onemrva-mat-navigation-tree.component.ts","../../../../projects/onemrva/design-system/mat-navigation/src/mat-navigation-tree/onemrva-mat-navigation-tree.component.html","../../../../projects/onemrva/design-system/mat-navigation/src/onemrva-mat-navigation.component.ts","../../../../projects/onemrva/design-system/mat-navigation/src/onemrva-mat-navigation.component.html","../../../../projects/onemrva/design-system/mat-navigation/index.ts","../../../../projects/onemrva/design-system/mat-paginator/src/onemrva-mat-paginator.component.ts","../../../../projects/onemrva/design-system/mat-paginator/src/onemrva-mat-paginator.component.html","../../../../projects/onemrva/design-system/mat-paginator/src/onemrva-mat-paginator.module.ts","../../../../projects/onemrva/design-system/mat-paginator/index.ts","../../../../projects/onemrva/design-system/mat-panel/src/onemrva-mat-panel-title-action.component.ts","../../../../projects/onemrva/design-system/mat-panel/src/onemrva-mat-panel-title-action.html","../../../../projects/onemrva/design-system/mat-panel/src/onemrva-mat-panel-title.component.ts","../../../../projects/onemrva/design-system/mat-panel/src/onemrva-mat-panel-title.html","../../../../projects/onemrva/design-system/mat-panel/src/onemrva-mat-panel-content.component.ts","../../../../projects/onemrva/design-system/mat-panel/src/onemrva-mat-panel-content.html","../../../../projects/onemrva/design-system/mat-panel/src/onemrva-mat-panel-icon.component.ts","../../../../projects/onemrva/design-system/mat-panel/src/onemrva-mat-panel-icon.html","../../../../projects/onemrva/design-system/mat-panel/src/onemrva-mat-panel.component.ts","../../../../projects/onemrva/design-system/mat-panel/src/onemrva-mat-panel.component.html","../../../../projects/onemrva/design-system/mat-panel/src/onemrva-mat-panel.module.ts","../../../../projects/onemrva/design-system/mat-panel/src/mat-expansion-panel-header-arrow-divider.ts","../../../../projects/onemrva/design-system/mat-panel/src/mat-expansion-panel-header-arrow-divider.html","../../../../projects/onemrva/design-system/mat-pop-over/src/onemrva-mat-pop-over-trigger.component.ts","../../../../projects/onemrva/design-system/mat-pop-over/src/onemrva-mat-pop-over-content.component.ts","../../../../projects/onemrva/design-system/mat-pop-over/src/onemrva-mat-pop-over.component.ts","../../../../projects/onemrva/design-system/mat-pop-over/src/onemrva-mat-pop-over.component.html","../../../../projects/onemrva/design-system/mat-pop-over/src/onemrva-mat-pop-over.module.ts","../../../../projects/onemrva/design-system/mat-progress-bar/src/onemrva-mat-progress-bar.component.ts","../../../../projects/onemrva/design-system/mat-progress-bar/src/onemrva-mat-progress-bar.component.html","../../../../projects/onemrva/design-system/mat-select-search/src/mat-select-search-clear.directive.ts","../../../../projects/onemrva/design-system/mat-select-search/src/default-options.ts","../../../../projects/onemrva/design-system/mat-select-search/src/mat-select-no-entries-found.directive.ts","../../../../projects/onemrva/design-system/mat-select-search/src/mat-select-search.component.ts","../../../../projects/onemrva/design-system/mat-select-search/src/mat-select-search.component.html","../../../../projects/onemrva/design-system/mat-select-search/src/mat-select-search.module.ts","../../../../projects/onemrva/design-system/mat-selectable-box/src/onemrva-mat-selectable-box.component.ts","../../../../projects/onemrva/design-system/mat-selectable-box/src/onemrva-mat-selectable-box.component.html","../../../../projects/onemrva/design-system/mat-selectable-box/src/onemrva-mat-selectable-box.module.ts","../../../../projects/onemrva/design-system/mat-selectable-box/index.ts","../../../../projects/onemrva/design-system/mat-side-menu/src/onemrva-mat-side-menu.component.ts","../../../../projects/onemrva/design-system/mat-side-menu/src/onemrva-mat-side-menu.component.html","../../../../projects/onemrva/design-system/mat-side-menu/src/onemrva-mat-side-menu.module.ts","../../../../projects/onemrva/design-system/mat-side-menu/index.ts","../../../../projects/onemrva/design-system/mat-skeleton/src/onemrva-mat-skeleton-enums.ts","../../../../projects/onemrva/design-system/mat-skeleton/src/onemrva-mat-skeleton.component.ts","../../../../projects/onemrva/design-system/mat-skeleton/src/onemrva-mat-skeleton.component.html","../../../../projects/onemrva/design-system/mat-skeleton/src/onemrva-mat-skeleton.module.ts","../../../../projects/onemrva/design-system/mat-spinner/src/onemrva-mat-spinner.component.ts","../../../../projects/onemrva/design-system/mat-spinner/src/onemrva-mat-spinner.component.html","../../../../projects/onemrva/design-system/mat-spinner/src/onemrva-mat-loading.directive.ts","../../../../projects/onemrva/design-system/mat-spinner/src/onemrva-mat-spinner.module.ts","../../../../projects/onemrva/design-system/mat-spinner/index.ts","../../../../projects/onemrva/design-system/mat-stepper/src/onemrva-stepper-animations.ts","../../../../projects/onemrva/design-system/mat-stepper/src/onemrva-mat-stepper.component.ts","../../../../projects/onemrva/design-system/mat-stepper/src/onemrva-mat-stepper.html","../../../../projects/onemrva/design-system/mat-stepper/src/onemrva-mat-stepper.module.ts","../../../../projects/onemrva/design-system/mat-stepper/index.ts","../../../../projects/onemrva/design-system/mat-sticker/src/onemrva-mat-sticker.component.ts","../../../../projects/onemrva/design-system/mat-sticker/src/onemrva-mat-sticker.module.ts","../../../../projects/onemrva/design-system/mat-sticker/index.ts","../../../../projects/onemrva/design-system/mat-table-of-content/src/onemrva-mat-toc-anchor.model.ts","../../../../projects/onemrva/design-system/mat-table-of-content/src/onemrva-mat-table-of-content.service.ts","../../../../projects/onemrva/design-system/mat-table-of-content/src/onemrva-mat-table-of-content.component.ts","../../../../projects/onemrva/design-system/mat-table-of-content/src/onemrva-mat-table-of-content.component.html","../../../../projects/onemrva/design-system/mat-table-of-content/src/onemrva-mat-table-of-content.directive.ts","../../../../projects/onemrva/design-system/mat-table-of-content/index.ts","../../../../projects/onemrva/design-system/mat-task-list/src/onemrva-mat-task-title.component.ts","../../../../projects/onemrva/design-system/mat-task-list/src/onemrva-mat-task-title.html","../../../../projects/onemrva/design-system/mat-task-list/src/onemrva-mat-task-content.component.ts","../../../../projects/onemrva/design-system/mat-task-list/src/onemrva-mat-task-content.html","../../../../projects/onemrva/design-system/mat-task-list/src/onemrva-mat-task.component.ts","../../../../projects/onemrva/design-system/mat-task-list/src/onemrva-mat-task.component.html","../../../../projects/onemrva/design-system/mat-task-list/src/onemrva-mat-task-list.component.ts","../../../../projects/onemrva/design-system/mat-task-list/src/onemrva-mat-task-list.component.html","../../../../projects/onemrva/design-system/mat-task-list/src/onemrva-mat-task-list.module.ts","../../../../projects/onemrva/design-system/mat-timepicker/src/util.ts","../../../../projects/onemrva/design-system/mat-timepicker/src/clock/clock.component.ts","../../../../projects/onemrva/design-system/mat-timepicker/src/clock/clock.component.html","../../../../projects/onemrva/design-system/mat-timepicker/src/timepicker-dialog/timepicker-dialog.component.ts","../../../../projects/onemrva/design-system/mat-timepicker/src/timepicker-dialog/timepicker-dialog.component.html","../../../../projects/onemrva/design-system/mat-timepicker/src/onemrva-mat-timepicker.component.ts","../../../../projects/onemrva/design-system/mat-timepicker/src/onemrva-mat-timepicker.component.html","../../../../projects/onemrva/design-system/mat-timepicker/src/timepicker-toggle/timepicker-toggle.component.ts","../../../../projects/onemrva/design-system/mat-timepicker/src/timepicker-toggle/timepicker-toggle.component.html","../../../../projects/onemrva/design-system/mat-timepicker/src/timepicker.directive.ts","../../../../projects/onemrva/design-system/mat-timepicker/src/onemrva-mat-timepicker.module.ts","../../../../projects/onemrva/design-system/mat-toast/src/onemrva-mat-toast.component.ts","../../../../projects/onemrva/design-system/mat-toast/src/onemrva-mat-toast.module.ts","../../../../projects/onemrva/design-system/mat-toast/index.ts","../../../../projects/onemrva/design-system/mat-tooltip/src/onemrva-mat-tooltip.component.ts","../../../../projects/onemrva/design-system/mat-tooltip/src/onemrva-mat-tooltip.directive.ts","../../../../projects/onemrva/design-system/mat-tooltip/src/onemrva-mat-tooltip.module.ts","../../../../projects/onemrva/design-system/page-not-found/src/page-not-found-action.component.ts","../../../../projects/onemrva/design-system/page-not-found/src/page-not-found-extra.component.ts","../../../../projects/onemrva/design-system/page-not-found/src/page-not-found-invader.component.ts","../../../../projects/onemrva/design-system/page-not-found/src/page-not-found.component.ts","../../../../projects/onemrva/design-system/page-not-found/src/page-not-found.component.html","../../../../projects/onemrva/design-system/page-not-found/src/page-not-found.module.ts","../../../../projects/onemrva/design-system/shared/src/lib/components/clipboard-icon/clipboard-icon.component.ts","../../../../projects/onemrva/design-system/shared/src/lib/components/clipboard-icon/clipboard-icon.component.html","../../../../projects/onemrva/design-system/shared/src/lib/constants/CDNUrlModeOptions.ts","../../../../projects/onemrva/design-system/shared/src/lib/constants/constants.ts","../../../../projects/onemrva/design-system/shared/src/lib/constants/date.format.ts","../../../../projects/onemrva/design-system/shared/src/lib/constants/cdn.ts","../../../../projects/onemrva/design-system/shared/src/lib/tokens/inject.token.ts","../../../../projects/onemrva/design-system/shared/src/lib/containers/WebComponentOverlayContainer.ts","../../../../projects/onemrva/design-system/shared/src/lib/decorators/HttpCacheDecorator.ts","../../../../projects/onemrva/design-system/shared/src/lib/directives/digit-only.directive.ts","../../../../projects/onemrva/design-system/shared/src/lib/directives/color.directive.ts","../../../../projects/onemrva/design-system/shared/src/lib/directives/mat-row-clickable.directive.ts","../../../../projects/onemrva/design-system/shared/src/lib/directives/if-width-is.directive.ts","../../../../projects/onemrva/design-system/shared/src/lib/directives/mask.directive.ts","../../../../projects/onemrva/design-system/shared/src/lib/directives/clipboard.directive.ts","../../../../projects/onemrva/design-system/shared/src/lib/directives/iconRight.directive.ts","../../../../projects/onemrva/design-system/shared/src/lib/directives/date-format.directive.ts","../../../../projects/onemrva/design-system/shared/src/lib/directives/readonly-directive.ts","../../../../projects/onemrva/design-system/shared/src/lib/directives/size.directive.ts","../../../../projects/onemrva/design-system/shared/src/lib/directives/index.ts","../../../../projects/onemrva/design-system/shared/src/lib/helpers/translation-helper.ts","../../../../projects/onemrva/design-system/shared/src/lib/loaders/onemrva-translate-cdn-loader.ts","../../../../projects/onemrva/design-system/shared/src/lib/loaders/onemrva-translate-http-loader.ts","../../../../projects/onemrva/design-system/shared/src/lib/pipes/onemrva-bce.pipe.ts","../../../../projects/onemrva/design-system/shared/src/lib/pipes/onemrva-niss.pipe.ts","../../../../projects/onemrva/design-system/shared/src/lib/services/country-lookup.service.ts","../../../../projects/onemrva/design-system/shared/src/lib/services/cache.service.ts","../../../../projects/onemrva/design-system/shared/src/lib/services/cdn.service.ts","../../../../projects/onemrva/design-system/shared/src/lib/services/country-cdn.service.ts","../../../../projects/onemrva/design-system/shared/src/lib/services/mime-cdn.service.ts","../../../../projects/onemrva/design-system/shared/src/lib/services/osm.service.ts","../../../../projects/onemrva/design-system/shared/src/lib/services/onemrva-error-handler.service.ts","../../../../projects/onemrva/design-system/shared/src/lib/services/onemrva-missing-translation.service.ts","../../../../projects/onemrva/design-system/shared/src/lib/validators/onemrva-validators.ts","../../../../projects/onemrva/design-system/shared/src/lib/validators/bank-account.validator.utils.ts","../../../../projects/onemrva/design-system/shared/src/lib/shared.module.ts","../../../../projects/onemrva/design-system/shared/src/lib/adapters/native.date.adapter.ts","../../../../projects/onemrva/design-system/shared/src/lib/adapters/luxon.utils.ts","../../../../projects/onemrva/design-system/shared/src/lib/adapters/luxon.date.adapter.ts","../../../../projects/onemrva/design-system/shared/src/lib/providers/onemrva.date.native.year.month.provider.ts","../../../../projects/onemrva/design-system/shared/src/lib/providers/onemrva.date.native.provider.ts","../../../../projects/onemrva/design-system/shared/src/lib/providers/onemrva.date.luxon.provider.ts","../../../../projects/onemrva/design-system/shared/src/lib/providers/onemrva.date.luxon.year.month.provider.ts","../../../../projects/onemrva/design-system/shared/src/lib/providers/onemrva.theme.provider.ts","../../../../projects/onemrva/design-system/shared/index.ts","../../../../projects/onemrva/design-system/onemrvapublic-design-system.ts"],"sourcesContent":["import { Injectable, WritableSignal, signal } from '@angular/core';\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\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 this.items(); // ??\n }\n\n reset(): void {\n this.items.set(this.originalItems);\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';\nimport { MatIcon } from '@angular/material/icon';\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, MatIcon],\n standalone: true,\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\n<span class=\"left-content-toggle d-none-medium d-none-large d-none-xlarge\"\n ><mat-icon>arrow_right</mat-icon></span\n>\n","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","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","// 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 { 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';\nimport { startWith, Subject, takeUntil } from 'rxjs';\nimport {\n BreakpointObserver,\n Breakpoints,\n BreakpointState,\n} from '@angular/cdk/layout';\nimport { DOCUMENT, NgClass, NgStyle, NgTemplateOutlet } from '@angular/common';\nimport {\n MatDrawer,\n MatDrawerContainer,\n MatSidenavModule,\n} from '@angular/material/sidenav';\nimport {\n ONEMRVA_THEME_CLASS,\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\nimport { LayoutLeftSidenavComponent } from '../layout-left-sidenav/layout-left-sidenav.component';\nimport { LayoutRouteComponent } from '../layout-route/layout-route.component';\nimport { TranslatePipe, TranslateService } from '@ngx-translate/core';\nimport { LayoutContentComponent } from '../layout-content/layout-content.component';\nimport { LayoutTitleComponent } from '../layout-title/layout-title.component';\nimport { Environment } from '../../enums';\nimport { LayoutFooterComponent } from '../layout-footer/layout-footer.component';\nimport { OnemRvaProfile, OnemRvaLanguage } from '../../models';\nimport { LayoutLoginMenuComponent } from '../layout-login-menu/layout-login-menu.component';\nimport { DrawerHostDirective } from '../../directives';\nimport {\n OnemrvaDrawerService,\n OnemrvaLeftSidenavService,\n} from '../../services';\nimport { LayoutSidenavComponent } from '../layout-sidenav/layout-sidenav.component';\nimport { LayoutAfterNavComponent } from '../layout-after-nav/layout-after-nav.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 onemrvaClass = inject(ONEMRVA_THEME_CLASS);\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('.' + this.onemrvaClass);\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=\"container-with-nav\">\n <div class=\"left-content\">\n <onemrva-layout-left-sidenav></onemrva-layout-left-sidenav>\n </div>\n <div class=\"right-content\">\n <div class=\"content-container\">\n <ng-container *ngTemplateOutlet=\"tpl\"></ng-container>\n </div>\n </div>\n </div>\n } @else {\n <div class=\"content-container\">\n <ng-container *ngTemplateOutlet=\"tpl\"></ng-container>\n </div>\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 { 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","import { Component, inject, Input } from '@angular/core';\nimport { NgOptimizedImage } from '@angular/common';\nimport { OnemRvaCDNService } from '@onemrvapublic/design-system/shared';\n\n@Component({\n selector: 'flag-icon',\n standalone: true,\n imports: [NgOptimizedImage],\n templateUrl: './flag-icon.component.html',\n styleUrl: './flag-icon.component.scss',\n})\nexport class FlagIconComponent {\n @Input() countryCode?: string | null | undefined = 'xx';\n\n @Input() mode: 'square' | 'rectangle' = 'rectangle';\n\n @Input() width = 26;\n height: number = this.width;\n\n private readonly cdnUrl: string;\n private cdn = inject(OnemRvaCDNService);\n\n constructor() {\n this.cdnUrl = this.cdn.getUrl();\n if (this.mode === 'rectangle') {\n this.height = this.width / 1.33;\n }\n }\n\n get normalizedCountryCode() {\n return (this.countryCode?.trim() || 'xx').toLowerCase();\n }\n\n get modeValue() {\n if (this.mode === 'rectangle') {\n return '4x3';\n }\n return '1x1';\n }\n\n get url() {\n return `${this.cdnUrl}/img/flags/${this.modeValue}/${this.normalizedCountryCode}.svg`;\n }\n}\n","<span\n [class]=\"{\n fi: true,\n fis: mode === 'square',\n }\"\n>\n <img\n [alt]=\"normalizedCountryCode\"\n loading=\"lazy\"\n [ngSrc]=\"url\"\n [width]=\"width\"\n [height]=\"height\"\n />\n</span>\n","import {\n Component,\n ElementRef,\n HostBinding,\n inject,\n Input,\n OnInit,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport { mkenum } from '@onemrvapublic/design-system/utils';\nimport { CommonModule } from '@angular/common';\nimport { MatIconModule } from '@angular/material/icon';\n\nlet NEXT_ID = 0;\n\nexport const MatAvatarType = mkenum({\n INITIALS: 'initials',\n TEXT: 'text',\n IMAGE: 'image',\n ICON: 'icon',\n CUSTOM: 'custom',\n});\nexport type MatAvatarType = (typeof MatAvatarType)[keyof typeof MatAvatarType];\n\n/**\n * Avatar provides a way to display an image, icon or initials to the user.\n *\n * @MatModule OnemrvaMatAvatarModule\n *\n * @MatTheme onemrva-mat-avatar-theme, onemrva-mat-icon-theme\n *\n * @MatKeywords avatar, profile, picture, initials\n *\n * @MatGroup Layouts\n *\n * @remarks\n *\n * The Ignite UI Avatar provides an easy way to add an avatar icon to your application. This icon can be an\n * image, someone's initials or a material icon from the Google Material icon set.\n *\n * @example\n * ```html\n * <onemrva-mat-avatar initials=\"MS\" [roundShape]=\"true\" size=\"large\">\n * </onemrva-mat-avatar>\n * ```\n */\n@Component({\n selector: 'onemrva-mat-avatar',\n templateUrl: 'onemrva-mat-avatar.component.html',\n styleUrl: 'onemrva-mat-avatar.component.scss',\n standalone: true,\n imports: [CommonModule, MatIconModule],\n})\nexport class OnemrvaMatAvatarComponent implements OnInit {\n /**\n * Returns the `aria-label` attribute of the avatar.\n *\n * @example\n * ```typescript\n * let ariaLabel = this.avatar.ariaLabel;\n * ```\n *\n */\n @HostBinding('attr.aria-label')\n public ariaLabel = 'avatar';\n\n /**\n * Returns the `role` attribute of the avatar.\n *\n * @example\n * ```typescript\n * let avatarRole = this.avatar.role;\n * ```\n */\n @HostBinding('attr.role')\n public role = 'img';\n\n /**\n * Host `class.onemrva-mat-avatar` binding.\n *\n * @hidden\n * @internal\n */\n @HostBinding('class.onemrva-mat-avatar')\n public cssClass = 'onemrva-mat-avatar';\n\n /**\n * Returns the type of the avatar.\n * The avatar can be:\n * - `\"initials type avatar\"`\n * - `\"icon type avatar\"`\n * - `\"image type avatar\"`.\n * - `\"custom type avatar\"`.\n *\n * @example\n * ```typescript\n * let avatarDescription = this.avatar.roleDescription;\n * ```\n */\n @HostBinding('attr.aria-roledescription')\n public roleDescription = '';\n\n /**\n * Sets the `id` of the avatar. If not set, the first avatar component will have `id` = `\"onemrva-mat-avatar-0\"`.\n *\n * @example\n * ```html\n * <onemrva-mat-avatar id=\"my-first-avatar\"></onemrva-mat-avatar>\n * ```\n */\n @HostBinding('attr.id')\n @Input()\n public id = `onemrva-mat-avatar-${NEXT_ID++}`;\n\n /**\n * Sets a round shape to the avatar, if `[roundShape]` is set to `true`.\n * By default the shape of the avatar is a square.\n *\n * @example\n * ```html\n * <onemrva-mat-avatar [roundShape]=\"true\" ></onemrva-mat-avatar>\n * ```\n */\n\n @HostBinding('class.onemrva-mat-avatar--rounded')\n @Input()\n public roundShape = true;\n\n /**\n * Sets initials to the avatar.\n *\n * @example\n * ```html\n * <onemrva-mat-avatar initials=\"MN\"></onemrva-mat-avatar>\n * ```\n */\n @Input()\n public initials = '';\n\n /**\n * Sets text to the avatar.\n *\n * @example\n * ```html\n * <onemrva-mat-avatar text=\"100%\"></onemrva-mat-avatar>\n * ```\n */\n @Input()\n public text = '';\n\n /**\n * Sets an icon to the avatar. All icons from the material icon set are supported.\n *\n * @example\n * ```html\n * <onemrva-mat-avatar icon=\"phone\"></onemrva-mat-avatar>\n * ```\n */\n @Input()\n public icon = '';\n\n /**\n * Sets the image source of the avatar.\n *\n * @example\n * ```html\n * <onemrva-mat-avatar src=\"images/picture.jpg\"></onemrva-mat-avatar>\n * ```\n * @MatFriendlyName Image URL\n */\n @Input()\n public src = '';\n\n /** @hidden @internal */\n @ViewChild('defaultTemplate', { read: TemplateRef, static: true })\n protected defaultTemplate: TemplateRef<any> | null = null;\n\n /** @hidden @internal */\n @ViewChild('imageTemplate', { read: TemplateRef, static: true })\n protected imageTemplate: TemplateRef<any> | null = null;\n\n /** @hidden @internal */\n @ViewChild('initialsTemplate', { read: TemplateRef, static: true })\n protected initialsTemplate: TemplateRef<any> | null = null;\n\n /** @hidden @internal */\n @ViewChild('textTemplate', { read: TemplateRef, static: true })\n protected textTemplate: TemplateRef<any> | null = null;\n\n /** @hidden @internal */\n @ViewChild('iconTemplate', { read: TemplateRef, static: true })\n protected iconTemplate: TemplateRef<any> | null = null;\n\n /**\n * Returns the type of the avatar.\n *\n * @example\n * ```typescript\n * let avatarType = this.avatar.type;\n * ```\n */\n public get type(): MatAvatarType {\n if (this.text) {\n return MatAvatarType.TEXT;\n }\n\n if (this.src) {\n return MatAvatarType.IMAGE;\n }\n\n if (this.icon) {\n return MatAvatarType.ICON;\n }\n\n if (this.initials) {\n return MatAvatarType.INITIALS;\n }\n\n return MatAvatarType.CUSTOM;\n }\n\n /** @hidden @internal */\n @HostBinding('class.onemrva-mat-avatar--image')\n public get _isImageType(): boolean {\n return this.type === MatAvatarType.IMAGE;\n }\n /** @hidden @internal */\n @HostBinding('class.onemrva-mat-avatar--icon')\n public get _isIconType(): boolean {\n return this.type === MatAvatarType.ICON;\n }\n /** @hidden @internal */\n @HostBinding('class.onemrva-mat-avatar--initials')\n public get _isInitialsType(): boolean {\n return this.type === MatAvatarType.INITIALS;\n }\n /** @hidden @internal */\n @HostBinding('class.onemrva-mat-avatar--text')\n public get _isTextType(): boolean {\n return this.type === MatAvatarType.TEXT;\n }\n\n /**\n * Returns the template of the avatar.\n *\n * @hidden\n * @internal\n */\n public get template(): TemplateRef<any> | null {\n switch (this.type) {\n case MatAvatarType.IMAGE:\n return this.imageTemplate;\n case MatAvatarType.INITIALS:\n return this.initialsTemplate;\n case MatAvatarType.TEXT:\n return this.textTemplate;\n case MatAvatarType.ICON:\n return this.iconTemplate;\n default:\n return this.defaultTemplate;\n }\n }\n\n public elementRef = inject(ElementRef);\n\n /**\n * Returns the css url of the image.\n *\n * @hidden\n * @internal\n */\n public getSrcUrl() {\n return `url(${this.src})`;\n }\n\n /** @hidden @internal */\n public ngOnInit() {\n this.roleDescription = this.getRole();\n }\n\n /** @hidden @internal */\n private getRole(): string {\n switch (this.type) {\n case MatAvatarType.IMAGE:\n return 'image avatar';\n case MatAvatarType.ICON:\n return 'icon avatar';\n case MatAvatarType.INITIALS:\n return 'initials avatar';\n default:\n return 'custom avatar';\n }\n }\n}\n","<ng-template #defaultTemplate>\n <ng-content></ng-content>\n</ng-template>\n\n<ng-template #imageTemplate>\n <div\n #image\n class=\"onemrva-avatar__image\"\n [style.backgroundImage]=\"getSrcUrl()\"\n ></div>\n</ng-template>\n\n<ng-template #initialsTemplate>\n <span>{{ initials | slice: 0 : 2 }}</span>\n</ng-template>\n\n<ng-template #textTemplate>\n <span>{{ text }}</span>\n</ng-template>\n\n<ng-template #iconTemplate>\n <mat-icon>{{ icon }}</mat-icon>\n</ng-template>\n\n<ng-container *ngTemplateOutlet=\"template\"></ng-container>\n","import { NgModule } from '@angular/core';\nimport { OnemrvaMatAvatarComponent } from './onemrva-mat-avatar.component';\n\n@NgModule({\n declarations: [],\n imports: [OnemrvaMatAvatarComponent],\n exports: [OnemrvaMatAvatarComponent],\n})\nexport class OnemrvaMatAvatarModule {}\n","import { Injectable, inject } from '@angular/core';\nimport { ActivatedRouteSnapshot, NavigationEnd, Router } from '@angular/router';\nimport { BehaviorSubject } from 'rxjs';\nimport { filter } from 'rxjs/operators';\nimport { OnemrvaBreadcrumb } from './onemrva-mat-breadcrumb.model';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class OnemrvaMatBreadcrumbService {\n private router = inject(Router);\n\n // Subject emitting the breadcrumb hierarchy\n private readonly _breadcrumbs$ = new BehaviorSubject<OnemrvaBreadcrumb[]>([]);\n\n // Observable exposing the breadcrumb hierarchy\n readonly breadcrumbs$ = this._breadcrumbs$.asObservable();\n\n constructor() {\n this.router.events\n .pipe(\n // Filter the NavigationEnd events as the breadcrumb is updated only when the route reaches its end\n filter(event => event instanceof NavigationEnd),\n )\n .subscribe(() => {\n // Construct the breadcrumb hierarchy\n const root = this.router.routerState.snapshot.root;\n const breadcrumbs: OnemrvaBreadcrumb[] = [];\n this.addBreadcrumb(root, [], breadcrumbs);\n\n // Emit the new hierarchy\n this._breadcrumbs$.next(breadcrumbs);\n });\n }\n\n private addBreadcrumb(\n route: ActivatedRouteSnapshot | null,\n parentUrl: string[],\n breadcrumbs: OnemrvaBreadcrumb[],\n ) {\n if (route) {\n // Construct the route URL\n const routeUrl = parentUrl.concat(route.url.map(url => url.path));\n\n // Add an element for the current route part\n if (route.data['navigationTitle']) {\n const url = '/' + routeUrl.join('/');\n const breadcrumb = {\n label: route.data['navigationTitle'],\n url,\n translate: route.data['translate'] ? route.data['translate'] : false,\n };\n\n if (\n breadcrumbs.length > 0 &&\n url === breadcrumbs[breadcrumbs.length - 1].url\n ) {\n breadcrumbs[breadcrumbs.length - 1] = breadcrumb;\n } else {\n breadcrumbs.push(breadcrumb);\n }\n }\n\n // Add another element for the next route part\n this.addBreadcrumb(route.firstChild, routeUrl, breadcrumbs);\n }\n }\n}\n","import { Component, effect, inject, input } from '@angular/core';\nimport { Observable, of } from 'rxjs';\nimport { OnemrvaBreadcrumb } from './onemrva-mat-breadcrumb.model';\nimport { OnemrvaMatBreadcrumbService } from './onemrva-mat-breadcrumb.service';\nimport { AsyncPipe, NgStyle } from '@angular/common';\nimport { RouterLink } from '@angular/router';\nimport { MatIcon } from '@angular/material/icon';\nimport { TranslatePipe } from '@ngx-translate/core';\n\n@Component({\n selector: 'onemrva-mat-breadcrumb',\n templateUrl: 'onemrva-mat-breadcrumb.component.html',\n styleUrls: ['onemrva-mat-breadcrumb.component.scss'],\n imports: [NgStyle, RouterLink, MatIcon, AsyncPipe, TranslatePipe],\n standalone: true,\n})\nexport class OnemrvaMatBreadcrumbComponent {\n public paths = input<OnemrvaBreadcrumb[]>([]);\n\n breadcrumbs$!: Observable<OnemrvaBreadcrumb[]>;\n\n breadcrumbService = inject(OnemrvaMatBreadcrumbService);\n\n constructor() {\n effect(() => {\n if (this.paths() && this.paths().length > 0) {\n this.breadcrumbs$ = of(this.paths());\n } else {\n this.breadcrumbs$ = this.breadcrumbService.breadcrumbs$;\n }\n });\n }\n // ngOnInit(): void {\n // if (this.fakePath) {\n // this.breadcrumbs$ = of(\n // this.fakePath.map(path => ({\n // label: path,\n // url: path,\n // translate: false,\n // })),\n // );\n // } else {\n // this.breadcrumbs$ = this.breadcrumbService.breadcrumbs$;\n // }\n // }\n}\n","@if (breadcrumbs$ | async; as bc) {\n <ng-container>\n @if (bc.length > 0) {\n <ul class=\"onemrva-mat-breadcrumb\">\n @for (breadcrumb of bc; track breadcrumb.label; let bridx = $index) {\n <li\n class=\"onemrva-mat-breadcrumb-link-container\"\n [ngStyle]=\"{\n display: bc.length <= 6 || bridx <= 2 ? 'list-item' : 'none',\n }\"\n >\n <div\n [routerLink]=\"breadcrumb.url\"\n class=\"onemrva-mat-breadcrumb-link\"\n >\n @if (breadcrumb.translate) {\n {{ breadcrumb.label | translate }}\n } @else {\n {{ breadcrumb.label }}\n }\n </div>\n\n @if (bridx < bc.length - 1) {\n <mat-icon class=\"chevron-right\" style=\"width: 10px\"\n >chevron_right</mat-icon\n >\n }\n </li>\n @if (bc.length > 6) {\n <li\n class=\"onemrva-mat-breadcrumb-link-container onemrva-mat-breadcrumb-link-container-hidden\"\n >\n ...\n <mat-icon class=\"chevron-right\" style=\"width: 10px\"\n >chevron_right</mat-icon\n >\n </li>\n <li class=\"onemrva-mat-breadcrumb-link-container\">\n @if (bc[bc.length - 1].url) {\n <div\n [routerLink]=\"bc[bc.length - 1].url\"\n class=\"onemrva-mat-breadcrumb-link\"\n >\n {{ bc[bc.length - 1].label }}\n </div>\n } @else {\n <div class=\"onemrva-mat-breadcrumb-link\">\n {{ bc[bc.length - 1].label }}\n </div>\n }\n </li>\n }\n }\n </ul>\n }\n </ng-container>\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { RouterModule } from '@angular/router';\nimport { OnemrvaMatBreadcrumbComponent } from './onemrva-mat-breadcrumb.component';\n\n@NgModule({\n declarations: [],\n imports: [\n CommonModule,\n MatIconModule,\n RouterModule,\n OnemrvaMatBreadcrumbComponent,\n ],\n exports: [],\n})\nexport class OnemrvaMatBreadcrumbModule {}\n","/*\n * Public API Surface of mat-breadcrumb\n */\n\nexport * from './src/onemrva-mat-breadcrumb.component';\nexport * from './src/onemrva-mat-breadcrumb.module';\nexport * from './src/onemrva-mat-breadcrumb.model';\nexport * from './src/onemrva-mat-breadcrumb.service';\n","import {\n Component,\n ElementRef,\n HostBinding,\n TemplateRef,\n ViewChild,\n inject,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'onemrva-mat-carousel-item',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './onemrva-mat-carousel-item.component.html',\n styleUrl: './onemrva-mat-carousel-item.component.scss',\n})\nexport class OnemrvaMatCarouselItemComponent {\n @ViewChild(TemplateRef) tpl!: TemplateRef<any>;\n\n public nativeElement: HTMLElement;\n\n element: ElementRef = inject(ElementRef);\n constructor() {\n this.nativeElement = this.element.nativeElement;\n }\n\n @HostBinding('class.show')\n public show = false;\n}\n","<!--<ng-template>-->\n<!-- <ng-content></ng-content>-->\n<!--</ng-template>-->\n\n<ng-content></ng-content>\n","import {\n AfterViewInit,\n Component,\n ContentChildren,\n ElementRef,\n HostListener,\n inject,\n Input,\n OnDestroy,\n OnInit,\n QueryList,\n Renderer2,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { OnemrvaMatCarouselItemComponent } from './mat-carousel-item/onemrva-mat-carousel-item.component';\nimport {\n animate,\n AnimationBuilder,\n AnimationFactory,\n AnimationPlayer,\n style,\n transition,\n trigger,\n} from '@angular/animations';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { interval, Subject, takeUntil } from 'rxjs';\nimport { MatTooltip } from '@angular/material/tooltip';\n\n@Component({\n selector: 'onemrva-mat-carousel',\n standalone: true,\n imports: [\n CommonModule,\n MatButtonModule,\n MatIconModule,\n TranslateModule,\n MatTooltip,\n ],\n templateUrl: './onemrva-mat-carousel.component.html',\n styleUrl: './onemrva-mat-carousel.component.scss',\n encapsulation: ViewEncapsulation.Emulated,\n animations: [\n trigger('inOutAnimation', [\n transition(':enter', [\n style({ opacity: 0 }),\n animate('1000ms ease-out', style({ opacity: 1 })),\n ]),\n transition(':leave', [\n style({ opacity: 1 }),\n animate('1000ms ease-in', style({ opacity: 0 })),\n ]),\n ]),\n ],\n})\nexport class OnemrvaMatCarouselComponent\n implements AfterViewInit, OnInit, OnDestroy\n{\n @ContentChildren(OnemrvaMatCarouselItemComponent)\n items!: QueryList<OnemrvaMatCarouselItemComponent>;\n\n nativeElement: HTMLElement;\n\n @ViewChild('carouselWrapper')\n carousel!: ElementRef;\n\n private player?: AnimationPlayer;\n\n @Input() timing = '250ms ease-in';\n @Input() gap = 32;\n @Input() padding = 64;\n @Input() showControls = true;\n @Input() autoplay = 0;\n @Input() showDots = true;\n\n public currentSlide = 0;\n carouselWrapperStyle = {};\n\n width = 0;\n destroyed: Subject<any> = new Subject<any>();\n\n builder: AnimationBuilder = inject(AnimationBuilder);\n element: ElementRef = inject(ElementRef);\n renderer: Renderer2 = inject(Renderer2);\n\n constructor() {\n this.nativeElement = this.element.nativeElement;\n }\n\n ngOnInit() {\n if (this.autoplay > 0) {\n interval(this.autoplay)\n .pipe(takeUntil(this.destroyed))\n .subscribe(_i => {\n this.next();\n });\n }\n }\n\n ngOnDestroy() {\n this.destroyed.next(null);\n this.destroyed.complete();\n }\n\n @HostListener('window:resize', ['$event'])\n onResize(_event: any) {\n this.width = this.nativeElement.offsetWidth - 2 * this.padding;\n this.items.forEach(item => {\n this.renderer.setStyle(item.nativeElement, 'width', `${this.width}px`);\n this.renderer.setStyle(\n item.nativeElement,\n 'margin-right',\n `${this.gap}px`,\n );\n this.animate();\n });\n this.resize();\n }\n\n buildAnimation(offset: number) {\n return this.builder.build([\n animate(this.timing, style({ transform: `translateX(-${offset}px)` })),\n ]);\n }\n\n goto(index: number) {\n if (index >= 0 && index < this.items.length) {\n this.currentSlide = index;\n this.animate();\n this.opacify();\n }\n }\n\n next() {\n //if( this.currentSlide + 1 === this.items.length ) return;\n this.currentSlide = (this.currentSlide + 1) % this.items.length;\n this.currentSlide = isNaN(this.currentSlide) ? 1 : this.currentSlide;\n\n this.animate();\n this.opacify();\n }\n\n prev() {\n if (this.currentSlide === 0) return;\n this.currentSlide =\n (this.currentSlide - 1 + this.items.length) % this.items.length;\n this.animate();\n this.opacify();\n }\n\n animate() {\n const offset = this.currentSlide * (this.width + this.gap);\n const myAnimation: AnimationFactory = this.buildAnimation(offset);\n this.player = myAnimation.create(this.carousel.nativeElement);\n this.player.play();\n }\n\n ngAfterViewInit() {\n this.width = this.nativeElement.offsetWidth;\n setTimeout(() => {\n this.onResize(null);\n }, 10);\n this.opacify();\n }\n\n hasPrev() {\n return this.items.length > 0 && this.showControls && this.currentSlide > 0;\n }\n\n hasNext() {\n return (\n this.items.length > 0 &&\n this.showControls &&\n this.currentSlide < this.items.length - 1\n );\n }\n\n opacify() {\n this.items.forEach((item, index) => {\n if (index !== this.currentSlide) {\n item.nativeElement.className = 'semiTransparent';\n } else {\n item.nativeElement.className = '';\n }\n });\n }\n resize() {\n let biggest = 80;\n\n this.items.forEach(item => {\n item.nativeElement.style.height = 'auto';\n });\n this.items.forEach(item => {\n if (item.nativeElement.offsetHeight > biggest) {\n biggest = item.nativeElement.offsetHeight;\n }\n });\n this.items.forEach(item => {\n item.nativeElement.style.height = biggest + 'px';\n });\n }\n}\n","@if (hasPrev()) {\n <button\n [@inOutAnimation]\n (click)=\"prev()\"\n mat-icon-button\n color=\"primary\"\n [attr.aria-label]=\"'carousel.previous' | translate\"\n [matTooltip]=\"'carousel.previous' | translate\"\n class=\"controls previous\"\n >\n <mat-icon class=\"large\">chevron_left</mat-icon>\n </button>\n}\n@if (hasNext()) {\n <button\n [@inOutAnimation]\n (click)=\"next()\"\n mat-icon-button\n color=\"primary\"\n [attr.aria-label]=\"'carousel.next' | translate\"\n [matTooltip]=\"'carousel.next' | translate\"\n class=\"controls next\"\n >\n <mat-icon class=\"large\">chevron_right</mat-icon>\n </button>\n}\n<section\n class=\"carousel-wrapper\"\n [ngStyle]=\"carouselWrapperStyle\"\n #carouselWrapper\n>\n <ng-content></ng-content>\n</section>\n\n@if (showDots) {\n <div class=\"dots\">\n @for (item of items; track item; let dotidx = $index) {\n <span\n tabindex=\"1\"\n class=\"dot\"\n role=\"button\"\n [attr.aria-label]=\"\n ('carousel.goto' | translate) +\n ' ' +\n (dotidx + 1) +\n '/' +\n items.length\n \"\n [matTooltip]=\"\n ('carousel.goto' | translate) +\n ' ' +\n (dotidx + 1) +\n '/' +\n items.length\n \"\n [class.active]=\"dotidx === currentSlide\"\n (click)=\"goto(dotidx)\"\n ></span>\n }\n </div>\n}\n","import {\n Component,\n forwardRef,\n HostBinding,\n Input,\n ViewEncapsulation,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { MatCheckbox } from '@angular/material/checkbox';\n\n@Component({\n selector: 'onemrva-mat-choice-chip',\n templateUrl: 'onemrva-mat-choice-chip.component.html',\n styleUrls: ['onemrva-mat-choice-chip.component.scss'],\n standalone: true,\n imports: [MatCheckbox],\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => OnemrvaMatChoiceChipComponent),\n multi: true,\n },\n ],\n})\nexport class OnemrvaMatChoiceChipComponent implements ControlValueAccessor {\n /** The boolean value your parent form will read/write */\n @Input() value = false;\n\n /** Standard disabled support */\n @Input() disabled = false;\n\n @HostBinding('style.opacity')\n get opacity() {\n return this.disabled ? 0.4 : 1;\n }\n\n // CVA hooks\n private onChange: (val: boolean) => void = () => {\n // onchange\n };\n public onTouched: () => void = () => {\n // onchange\n };\n\n writeValue(val: boolean): void {\n this.value = !!val;\n }\n registerOnChange(fn: (val: boolean) => void): void {\n this.onChange = fn;\n }\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n // Called from template\n onInputChange(checked: boolean) {\n this.value = checked;\n this.onChange(this.value);\n }\n}\n","<mat-checkbox\n class=\"onemrva-choice-chip\"\n [checked]=\"value\"\n [disabled]=\"disabled\"\n color=\"primary\"\n (change)=\"onInputChange($event.checked)\"\n (blur)=\"onTouched()\"\n>\n <ng-content></ng-content>\n</mat-checkbox>\n","/*\n * Public API Surface of mat-sticker\n */\n\nexport * from './src/onemrva-mat-choice-chip.component';\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n Output,\n ViewChild,\n inject,\n} from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { Clipboard } from '@angular/cdk/clipboard';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { MatTooltip, MatTooltipModule } from '@angular/material/tooltip';\n\n@Component({\n selector: 'copy-to-clipboard',\n templateUrl: 'copy-to-clipboard.component.html',\n styleUrls: ['copy-to-clipboard.component.scss'],\n standalone: true,\n imports: [CommonModule, MatIconModule, TranslateModule, MatTooltipModule],\n})\nexport class OnemrvaCopyToClipboardComponent {\n private elt = inject(ElementRef);\n private translate = inject(TranslateService);\n private clipboard = inject(Clipboard);\n\n checked = false;\n\n @ViewChild('clipboardCopyContent') content!: ElementRef;\n @ViewChild('cccTooltip') matTooltip!: MatTooltip;\n\n @Input()\n tooltip = '';\n\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n @Output() onCopy = new EventEmitter<void>();\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n @Output() onClick = new EventEmitter<Event>();\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n @Output() onHover = new EventEmitter<Event>();\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n @Output() onLeave = new EventEmitter<Event>();\n\n @HostListener('click', ['$event.target']) clicked(e: Event) {\n this.onClick.emit(e);\n }\n\n @HostListener('mouseenter') onMouseEnter(e: Event) {\n this.onHover.emit(e);\n }\n\n @HostListener('mouseleave') onMouseLeave(e: Event) {\n this.onLeave.emit(e);\n }\n\n get getTooltipText() {\n return this.tooltip\n ? this.translate.instant(this.tooltip)\n : this.translate.instant('copied.to.clipboard');\n }\n\n copy($event: any) {\n $event.stopPropagation();\n\n this.matTooltip.show();\n\n this.clipboard.copy(this.content.nativeElement.innerHTML);\n\n this.onCopy.emit();\n this.checked = true;\n\n setTimeout(() => {\n this.checked = false;\n this.matTooltip.hide();\n }, 2000);\n }\n}\n","<span class=\"onemrva-copy-to-clipboard-container\">\n <span #clipboardCopyContent>\n <ng-content></ng-content>\n </span>\n @if (!checked) {\n <mat-icon class=\"small\" (click)=\"copy($event)\"> content_copy </mat-icon>\n }\n @if (checked) {\n <mat-icon class=\"small\" color=\"success\">check</mat-icon>\n }\n <span\n [matTooltip]=\"getTooltipText\"\n matTooltipPosition=\"above\"\n #cccTooltip=\"matTooltip\"\n ></span>\n</span>\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, ViewEncapsulation } from '@angular/core';\nimport { TranslateModule } from '@ngx-translate/core';\n\nimport { FlagIconComponent } from '@onemrvapublic/design-system/flag-icon';\n\n@Component({\n selector: 'mat-country-item',\n styleUrls: ['./onemrva-mat-country-item.component.scss'],\n templateUrl: './onemrva-mat-country-item.component.html',\n standalone: true,\n imports: [CommonModule, TranslateModule, FlagIconComponent],\n encapsulation: ViewEncapsulation.None,\n})\nexport class OnemrvaCountryItemComponent {\n @Input() countryCode: string | null = 'xx';\n @Input() countryName: string | null | undefined = '';\n}\n","<div class=\"onemrva-country-item\">\n <flag-icon [countryCode]=\"countryCode\" />\n <span class=\"description\">{{ countryName }}</span>\n</div>\n","/*\n * Public API Surface of mat-country-item\n */\n\nexport * from './src/onemrva-mat-country-item.component';\n","import { CommonModule } from '@angular/common';\nimport { Component, ChangeDetectionStrategy, inject } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport {\n DateAdapter,\n MAT_DATE_FORMATS,\n MatDateFormats,\n} from '@angular/material/core';\nimport { MatCalendar, MatDatepickerIntl } from '@angular/material/datepicker';\nimport { MatIconModule } from '@angular/material/icon';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { MatTooltip } from '@angular/material/tooltip';\nimport { DateTime } from 'luxon';\n\nconst YEARS_PER_PAGE = 24;\nlet calendarHeaderId = 1;\n\n@Component({\n selector: 'onemrva-mat-datepicker-header',\n standalone: true,\n imports: [\n CommonModule,\n MatButtonModule,\n MatIconModule,\n TranslateModule,\n MatTooltip,\n ],\n templateUrl: 'onemrva-mat-datepicker-header.component.html',\n styleUrl: 'onemrva-mat-datepicker-header.component.scss',\n providers: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class OnemrvaMatDatepickerHeaderComponent<D> {\n private _intl = inject(MatDatepickerIntl);\n calendar = inject<MatCalendar<D>>(MatCalendar);\n private _dateAdapter = inject<DateAdapter<D>>(DateAdapter, {\n optional: true,\n });\n private _dateFormats = inject<MatDateFormats>(MAT_DATE_FORMATS, {\n optional: true,\n });\n\n setToday() {\n if (this._dateAdapter?.constructor.name.includes('Luxon')) {\n (this.calendar as unknown as MatCalendar<DateTime>)._goToDateInView(\n DateTime.now(),\n 'month',\n );\n } else {\n (this.calendar as unknown as MatCalendar<Date>)._goToDateInView(\n new Date(),\n 'month',\n );\n }\n }\n\n /** The display text for the current calendar view. */\n get periodButtonText(): string {\n if (\n this.calendar.activeDate !== null &&\n this.calendar.currentView == 'month' &&\n this._dateAdapter &&\n this._dateFormats\n ) {\n return this._dateAdapter\n .format(\n this.calendar.activeDate,\n this._dateFormats.display.monthYearLabel,\n )\n .toLocaleUpperCase();\n }\n if (this.calendar.currentView == 'year' && this._dateAdapter) {\n return this._dateAdapter.getYearName(this.calendar.activeDate);\n }\n\n return this._intl.formatYearRange(...this._formatMinAndMaxYearLabels());\n }\n\n /** The aria description for the current calendar view. */\n get periodButtonDescription(): string {\n if (\n this.calendar.currentView == 'month' &&\n this._dateFormats &&\n this._dateAdapter\n ) {\n return this._dateAdapter\n .format(\n this.calendar.activeDate,\n this._dateFormats.display.monthYearLabel,\n )\n .toLocaleUpperCase();\n }\n if (this.calendar.currentView == 'year' && this._dateAdapter) {\n return this._dateAdapter.getYearName(this.calendar.activeDate);\n }\n\n // Format a label for the window of years displayed in the multi-year calendar view. Use\n // `formatYearRangeLabel` because it is TTS friendly.\n return this._intl.formatYearRangeLabel(\n ...this._formatMinAndMaxYearLabels(),\n );\n }\n\n /** The `aria-label` for changing the calendar view. */\n get periodButtonLabel(): string {\n return this.calendar.currentView == 'month'\n ? this._intl.switchToMultiYearViewLabel\n : this._intl.switchToMonthViewLabel;\n }\n\n /** The label for the previous button. */\n get prevButtonLabel(): string {\n return {\n month: this._intl.prevMonthLabel,\n year: this._intl.prevYearLabel,\n 'multi-year': this._intl.prevMultiYearLabel,\n }[this.calendar.currentView];\n }\n\n /** The label for the next button. */\n get nextButtonLabel(): string {\n return {\n month: this._intl.nextMonthLabel,\n year: this._intl.nextYearLabel,\n 'multi-year': this._intl.nextMultiYearLabel,\n }[this.calendar.currentView];\n }\n\n /** Handles user clicks on the period label. */\n currentPeriodClicked(): void {\n this.calendar.currentView =\n this.calendar.currentView == 'month' ? 'multi-year' : 'month';\n }\n\n /** Handles user clicks on the previous button. */\n previousClicked(): void {\n this.calendar.activeDate =\n this.calendar.currentView == 'month'\n ? this._dateAdapter!.addCalendarMonths(this.calendar.activeDate, -1)\n : this._dateAdapter!.addCalendarYears(\n this.calendar.activeDate,\n this.calendar.currentView == 'year' ? -1 : -YEARS_PER_PAGE,\n );\n }\n\n /** Handles user clicks on the next button. */\n nextClicked(): void {\n this.calendar.activeDate =\n this.calendar.currentView == 'month'\n ? this._dateAdapter!.addCalendarMonths(this.calendar.activeDate, 1)\n : this._dateAdapter!.addCalendarYears(\n this.calendar.activeDate,\n this.calendar.currentView == 'year' ? 1 : YEARS_PER_PAGE,\n );\n }\n\n /** Whether the previous period button is enabled. */\n previousEnabled(): boolean {\n if (!this.calendar.minDate) {\n return true;\n }\n return (\n !this.calendar.minDate ||\n !this._isSameView(this.calendar.activeDate, this.calendar.minDate)\n );\n }\n\n /** Whether the next period button is enabled. */\n nextEnabled(): boolean {\n return (\n !this.calendar.maxDate ||\n !this._isSameView(this.calendar.activeDate, this.calendar.maxDate)\n );\n }\n\n /** Whether the two dates represent the same view in the current view mode (month or year). */\n private _isSameView(date1: D, date2: D): boolean {\n if (this.calendar.currentView == 'month') {\n return (\n this._dateAdapter!.getYear(date1) ==\n this._dateAdapter!.getYear(date2) &&\n this._dateAdapter!.getMonth(date1) == this._dateAdapter!.getMonth(date2)\n );\n }\n if (this.calendar.currentView == 'year') {\n return (\n this._dateAdapter!.getYear(date1) == this._dateAdapter!.getYear(date2)\n );\n }\n // Otherwise we are in 'multi-year' view.\n return isSameMultiYearView(\n this._dateAdapter!,\n date1,\n date2,\n this.calendar.minDate,\n this.calendar.maxDate,\n );\n }\n\n /**\n * Format two individual labels for the minimum year and maximum year available in the multi-year\n * calendar view. Returns an array of two strings where the first string is the formatted label\n * for the minimum year, and the second string is the formatted label for the maximum year.\n */\n private _formatMinAndMaxYearLabels(): [\n minYearLabel: string,\n maxYearLabel: string,\n ] {\n // The offset from the active year to the \"slot\" for the starting year is the\n // *actual* first rendered year in the multi-year view, and the last year is\n // just yearsPerPage - 1 away.\n const activeYear = this._dateAdapter!.getYear(this.calendar.activeDate);\n const minYearOfPage =\n activeYear -\n getActiveOffset(\n this._dateAdapter!,\n this.calendar.activeDate,\n this.calendar.minDate,\n this.calendar.maxDate,\n );\n const maxYearOfPage = minYearOfPage + YEARS_PER_PAGE - 1;\n const minYearLabel = this._dateAdapter!.getYearName(\n this._dateAdapter!.createDate(minYearOfPage, 0, 1),\n );\n const maxYearLabel = this._dateAdapter!.getYearName(\n this._dateAdapter!.createDate(maxYearOfPage, 0, 1),\n );\n\n return [minYearLabel, maxYearLabel];\n }\n\n private _id = `mat-calendar-header-${calendarHeaderId++}`;\n\n _periodButtonLabelId = `${this._id}-period-label`;\n}\n\nfunction isSameMultiYearView<D>(\n dateAdapter: DateAdapter<D>,\n date1: D,\n date2: D,\n minDate: D | null,\n maxDate: D | null,\n): boolean {\n const year1 = dateAdapter.getYear(date1);\n const year2 = dateAdapter.getYear(date2);\n const startingYear = getStartingYear(dateAdapter, minDate, maxDate);\n return (\n Math.floor((year1 - startingYear) / YEARS_PER_PAGE) ===\n Math.floor((year2 - startingYear) / YEARS_PER_PAGE)\n );\n}\n\n/**\n * We pick a \"starting\" year such that either the maximum year would be at the end\n * or the minimum year would be at the beginning of a page.\n */\nfunction getStartingYear<D>(\n dateAdapter: DateAdapter<D>,\n minDate: D | null,\n maxDate: D | null,\n): number {\n let startingYear = 0;\n if (maxDate) {\n const maxYear = dateAdapter.getYear(maxDate);\n startingYear = maxYear - YEARS_PER_PAGE + 1;\n } else if (minDate) {\n startingYear = dateAdapter.getYear(minDate);\n }\n return startingYear;\n}\n\n/**\n * When the multi-year view is first opened, the active year will be in view.\n * So we compute how many years are between the active year and the *slot* where our\n * \"startingYear\" will render when paged into view.\n */\nfunction getActiveOffset<D>(\n dateAdapter: DateAdapter<D>,\n activeDate: D,\n minDate: D | null,\n maxDate: D | null,\n): number {\n const activeYear = dateAdapter.getYear(activeDate);\n return euclideanModulo(\n activeYear - getStartingYear(dateAdapter, minDate, maxDate),\n YEARS_PER_PAGE,\n );\n}\n\n/** Gets remainder that is non-negative, even if first number is negative */\nfunction euclideanModulo(a: number, b: number): number {\n return ((a % b) + b) % b;\n}\n","<div class=\"mat-calendar-header\">\n <div class=\"mat-calendar-controls\">\n <button\n mat-button\n type=\"button\"\n class=\"mat-calendar-period-button\"\n (click)=\"currentPeriodClicked()\"\n [attr.aria-label]=\"periodButtonLabel\"\n [attr.aria-describedby]=\"_periodButtonLabelId\"\n aria-live=\"polite\"\n >\n <span aria-hidden=\"true\">{{ periodButtonText }}</span>\n <svg\n class=\"mat-calendar-arrow\"\n [class.mat-calendar-invert]=\"calendar.currentView !== 'month'\"\n viewBox=\"0 0 10 5\"\n focusable=\"false\"\n aria-hidden=\"true\"\n >\n <polygon points=\"0,0 5,5 10,0\" />\n </svg>\n </button>\n\n <div class=\"mat-calendar-spacer\"></div>\n\n <ng-content></ng-content>\n\n <button\n mat-icon-button\n type=\"button\"\n [disabled]=\"!previousEnabled()\"\n (click)=\"previousClicked()\"\n [attr.aria-label]=\"prevButtonLabel\"\n [matTooltip]=\"'Previous Month' | translate\"\n >\n <mat-icon>keyboard_arrow_left</mat-icon>\n </button>\n\n <button\n mat-icon-button\n type=\"button\"\n (click)=\"setToday()\"\n [attr.aria-label]=\"'Today' | translate\"\n [matTooltip]=\"'Today' | translate\"\n >\n <mat-icon>today</mat-icon>\n </button>\n\n <button\n mat-icon-button\n type=\"button\"\n [disabled]=\"!nextEnabled()\"\n (click)=\"nextClicked()\"\n [attr.aria-label]=\"nextButtonLabel\"\n [matTooltip]=\"'Next Month' | translate\"\n >\n <mat-icon>keyboard_arrow_right</mat-icon>\n </button>\n </div>\n</div>\n","/*\n * Public API Surface of mat-file upload\n */\n\nexport * from './src/onemrva-mat-datepicker-header.component';\n","import {\n Component,\n EventEmitter,\n Input,\n Output,\n ViewEncapsulation,\n inject,\n} from '@angular/core';\nimport { OnemRvaCDNService } from '@onemrvapublic/design-system/shared';\nimport { TranslateService } from '@ngx-translate/core';\nimport { MatButton } from '@angular/material/button';\nimport { NgOptimizedImage } from '@angular/common';\n\n/**\n *\n */\n@Component({\n selector: 'onemrva-mat-empty-row',\n templateUrl: 'onemrva-mat-empty-row.component.html',\n styleUrls: ['onemrva-mat-empty-row.component.scss'],\n standalone: true,\n imports: [NgOptimizedImage, MatButton],\n encapsulation: ViewEncapsulation.None,\n})\nexport class OnemrvaMatEmptyRowComponent {\n private cdn = inject(OnemRvaCDNService);\n private translate = inject(TranslateService);\n\n noresultimg: string = this.cdn.getOri('wordless.svg');\n\n @Input()\n buttonText: string = this.translate.instant('Reset filters');\n\n @Input()\n text: string = this.translate.instant(\n 'Sorry, there is no results for this search.',\n );\n\n @Input()\n imageAlt: string = this.translate.instant('Ori is wordless');\n\n @Output()\n clear = new EventEmitter<any>();\n}\n","<span class=\"img\">\n <img [ngSrc]=\"noresultimg\" alt=\"{{ imageAlt }}\" fill priority />\n</span>\n<span class=\"text\">\n {{ text }}\n <ng-content></ng-content>\n</span>\n<button mat-stroked-button (click)=\"clear.emit()\">{{ buttonText }}</button>\n","import { OnemrvaMatColor } from '@onemrvapublic/design-system/utils';\n\nexport interface ProgressFile {\n file?: File;\n message: string;\n progress: number;\n color: OnemrvaMatColor; // color 1 - 1 with status\n url: string | null;\n id: string | null; // backend identifier\n enableProgressBar: boolean;\n data?: any;\n name: string;\n lastModified?: number;\n size: number;\n type: string;\n maxSize: number | null;\n}\n\nexport interface ReferencedProgressFile extends ProgressFile {\n ref: symbol; // ref is a frontend identifier\n}\n\n/**\n * format bytes\n * @param bytes (File size in bytes)\n * @param decimals (Decimals point)\n */\nexport function formatBytes(bytes: number, decimals = 2) {\n if (bytes === 0) {\n return '0 Bytes';\n }\n const k = 1024;\n const dm = decimals <= 0 ? 0 : decimals || 2;\n const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i];\n}\n\nexport function formattedSize(size: number | null, decimals = 2) {\n if (size === null) return '';\n return formatBytes(size, decimals);\n}\n\nexport function convertToProgressFile(\n id: string,\n name: string,\n message = '',\n progress = 100,\n color = OnemrvaMatColor.PRIMARY,\n url: string | null = null,\n enableProgressBar = false,\n data: string | null = null,\n size = 0,\n type = '',\n maxSize = null,\n): ProgressFile {\n return {\n id: id!,\n name: name!,\n message: message,\n progress: progress,\n color: color,\n url: url,\n enableProgressBar: enableProgressBar,\n data: data,\n size: size,\n type: type,\n maxSize: maxSize,\n };\n}\n\nexport function convertToReferencedProgressFile(\n id: string,\n name: string,\n message = '',\n progress = 100,\n color = OnemrvaMatColor.PRIMARY,\n url: string | null = null,\n enableProgressBar = false,\n data: string | null = null,\n size = 0,\n type = '',\n maxSize = null,\n): ReferencedProgressFile {\n return {\n id: id!,\n ref: Symbol(name),\n name: name!,\n message: message,\n progress: progress,\n color: color,\n url: url,\n enableProgressBar: enableProgressBar,\n data: data,\n size: size,\n type: type,\n maxSize: maxSize,\n };\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n Input,\n} from '@angular/core';\nimport { OnemrvaMatColor } from '@onemrvapublic/design-system/utils';\nimport { of } from 'rxjs';\nimport { ActionConfig } from '../../models/action-config.model';\nimport {\n formattedSize,\n ReferencedProgressFile,\n} from '../../models/progress-file.model';\nimport { MatIcon } from '@angular/material/icon';\nimport { AsyncPipe } from '@angular/common';\nimport { MatTooltip } from '@angular/material/tooltip';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { MatProgressBar } from '@angular/material/progress-bar';\n\nlet NEXT_ID = 0;\n\n@Component({\n selector: 'file-panel',\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrls: ['./onemrva-file-panel.component.scss'],\n templateUrl: './onemrva-file-panel.component.html',\n standalone: true,\n imports: [MatIcon, MatTooltip, TranslatePipe, AsyncPipe, MatProgressBar],\n})\nexport class OnemrvaFilePanelComponent {\n @HostBinding('attr.id')\n @Input()\n public id = `onemrva-file-panel-${NEXT_ID++}`;\n\n @HostBinding('attr.data-cy')\n @Input()\n dataCy: string = 'onemrva-file-panel-' + NEXT_ID;\n\n @Input()\n file!: ReferencedProgressFile;\n\n @Input()\n actions: ActionConfig[] = [];\n\n @Input()\n showProgress = true;\n\n @Input()\n displayDate = '';\n\n @Input()\n maxFileSize = 0;\n\n get progress$() {\n return of(this.file.progress);\n }\n\n get size() {\n return formattedSize(this.file.size);\n }\n\n @Input()\n get color(): OnemrvaMatColor {\n if (this.file.color !== undefined) {\n return this.file.color;\n }\n return OnemrvaMatColor.NONE;\n }\n\n /** @hidden @internal */\n @HostBinding('mat-accent')\n public get _colorAccent(): boolean {\n return this.color === OnemrvaMatColor.ACCENT;\n }\n\n /** @hidden @internal */\n @HostBinding('class.mat-error')\n public get _isError(): boolean {\n return this.color === OnemrvaMatColor.ERROR;\n }\n /** @hidden @internal */\n @HostBinding('class.mat-warn')\n public get _isWarn(): boolean {\n return this.color === OnemrvaMatColor.WARN;\n }\n /** @hidden @internal */\n @HostBinding('class.mat-success')\n public get _isSuccess(): boolean {\n return this.color === OnemrvaMatColor.SUCCESS;\n }\n /** @hidden @internal */\n @HostBinding('class.mat-primary')\n public get _isPrimary(): boolean {\n return this.color === OnemrvaMatColor.PRIMARY;\n }\n\n protected readonly formattedSize = formattedSize;\n ariaLabel: any;\n}\n","<div class=\"file-panel-title show-icon\" [attr.data-cy]=\"dataCy\">\n <div class=\"file-panel-title-left\">\n <span class=\"file-name\">\n {{ file.name }}\n </span>\n </div>\n <div class=\"file-panel-title-action float-right\">\n @if (actions.length > 0) {\n @for (action of actions; track action.dataCy) {\n @if (action.showAction(file)) {\n <mat-icon\n role=\"button\"\n color=\"primary\"\n [attr.data-cy]=\"action.dataCy\"\n matTooltip=\"{{ action.tooltipCode | translate }}\"\n [attr.aria-label]=\"action.ariaCode | translate\"\n class=\"clickable\"\n (click)=\"action.clickHandler(file)\"\n >{{ action.iconName }}</mat-icon\n >\n }\n }\n }\n </div>\n</div>\n<div class=\"file-panel-content\">\n @if (file.message === '') {\n <ng-container>\n <div class=\"fileInfos\">\n <span>{{ displayDate }}</span>\n\n @if (file.size > 0) {\n <span class=\"float-right\">{{ size }}</span>\n }\n </div>\n @if (showProgress && file.enableProgressBar) {\n <mat-progress-bar\n data-cy=\"file-upload-progress\"\n mode=\"determinate\"\n aria-label=\"progress\"\n [value]=\"progress$ | async\"\n ></mat-progress-bar>\n }\n </ng-container>\n }\n @if (file.message !== '') {\n <p class=\"message\">\n {{ file.message | translate: { limit: formattedSize(file.maxSize) } }}\n </p>\n }\n</div>\n","import {\n HttpEvent,\n HttpEventType,\n HttpProgressEvent,\n HttpResponse,\n} from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport {\n BehaviorSubject,\n catchError,\n interval,\n map,\n Observable,\n of,\n take,\n} from 'rxjs';\nimport { ProgressFile } from './models/progress-file.model';\n\nexport interface OnemrvaMatFileUploadInterface {\n listUploadedFiles: (inputs: any) => Observable<ProgressFile[]>;\n upload: (file: ProgressFile) => Observable<HttpEvent<any>>;\n deleteFile: (id: any) => Observable<any>;\n retry: (file: any) => Observable<any>;\n downloadFile?: (id: any) => Observable<any>;\n isSending: BehaviorSubject<boolean>;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class OnemrvaMatFileUploadService\n implements OnemrvaMatFileUploadInterface\n{\n public isSending = new BehaviorSubject(false);\n\n constructor() {\n alert(\n \"Don't forget to add a provider in your component with your own implementation of OnemrvaMatFileUploadInterface. Check out the demo to have an example of how to do it\",\n );\n }\n\n listUploadedFiles(_inputs: any): Observable<ProgressFile[]> {\n return of([]);\n }\n\n upload(_file: ProgressFile): Observable<HttpEvent<any>> {\n return interval(50).pipe(\n take(101),\n map(i => {\n if (i < 100) {\n return {\n type: HttpEventType.UploadProgress,\n loaded: i,\n total: 100,\n } as HttpProgressEvent;\n } else {\n if (i >= 100 && Math.random() > 0.5) {\n throw 'Fake error thrown';\n }\n return new HttpResponse<any>();\n }\n }),\n catchError(() => of(new HttpResponse<any>({ body: {}, status: 500 }))),\n );\n }\n\n deleteFile(_id: any): Observable<any> {\n return of('F = m.a');\n }\n\n retry(file: any): Observable<any> {\n return of(file);\n }\n\n downloadFile(id: any): Observable<any> {\n alert(`Missing download implementation for file ID ${id}`);\n return of(true);\n }\n}\n","import { Injectable, InjectionToken, inject } from '@angular/core';\nimport { ComponentStore } from '@ngrx/component-store';\nimport { TranslateService } from '@ngx-translate/core';\nimport {\n catchError,\n filter,\n forkJoin,\n interval,\n map,\n merge,\n mergeMap,\n Observable,\n of,\n switchMap,\n takeWhile,\n tap,\n throttle,\n withLatestFrom,\n} from 'rxjs';\nimport { OnemrvaMatFileUploadService } from './onemrva-mat-file-upload.service';\nimport {\n ProgressFile,\n ReferencedProgressFile,\n} from './models/progress-file.model';\nimport { HttpEvent, HttpEventType } from '@angular/common/http';\nimport { OnemrvaMatFileUploadStoreItf } from './onemrva-mat-file-upload-itf.store';\nimport { OnemrvaMatColor } from '@onemrvapublic/design-system/utils';\n\nexport interface FileUploadStoreEvent {\n type: string;\n payload?: any;\n}\n\nexport interface UploadState {\n upload: ReferencedProgressFile[];\n accept: string[];\n maxFileSize: number;\n fileUploadError: string;\n event: FileUploadStoreEvent;\n}\n\nconst INIT_STATE: UploadState = {\n upload: [],\n accept: [],\n maxFileSize: 0,\n fileUploadError: '',\n event: {\n type: 'INIT',\n },\n};\n\nexport type CustomValidationFn = (\n input: [ReferencedProgressFile, ReferencedProgressFile[]],\n) => ReferencedProgressFile;\n\nexport const CUSTOM_VALIDATION_FN = new InjectionToken<CustomValidationFn>(\n 'x1, x2 = (-b -+ sqrt(rho))/2a',\n);\n\n@Injectable()\nexport class OnemrvaMatFileUploadStore\n extends ComponentStore<UploadState>\n implements OnemrvaMatFileUploadStoreItf\n{\n private fn: CustomValidationFn = (\n x: [ReferencedProgressFile, ReferencedProgressFile[]],\n ) => {\n return x[0];\n };\n\n private readonly fileUploadService = inject(OnemrvaMatFileUploadService);\n private readonly translateService = inject(TranslateService);\n public readonly customValidationFn = inject(CUSTOM_VALIDATION_FN, {\n optional: true,\n });\n\n public isSending = this.fileUploadService.isSending;\n\n constructor() {\n super(INIT_STATE);\n if (this.customValidationFn) this.fn = this.customValidationFn;\n }\n\n /*\n * U P D A T E R S\n */\n public readonly setAccept = this.updater((state, accept: string[]) => ({\n ...state,\n accept,\n event: {\n type: 'setAccept',\n payload: accept,\n },\n }));\n\n public readonly setMaxFileSize = this.updater(\n (state, maxFileSize: number) => ({\n ...state,\n maxFileSize,\n event: {\n type: 'setMaxFileSize',\n payload: maxFileSize,\n },\n }),\n );\n\n private readonly emptyList = this.updater(state => {\n return {\n ...state,\n upload: [],\n event: {\n type: 'emptyList',\n },\n };\n });\n\n private readonly pushFile = this.updater(\n (state, payload: ReferencedProgressFile) => {\n return {\n ...state,\n upload: [...state.upload, { ...payload }],\n event: {\n type: 'pushFile',\n payload,\n },\n };\n },\n );\n\n public readonly setData = this.updater(\n (state, payload: { ref: symbol; data: any }) => {\n return {\n ...state,\n upload: state.upload.map((file: ReferencedProgressFile) =>\n file.ref === payload.ref ? { ...file, data: payload.data } : file,\n ),\n event: {\n type: 'setData',\n payload,\n },\n };\n },\n );\n\n private readonly setSuccess = this.updater(\n (state, payload: { ref: symbol; body: any }) => {\n const newFile = {\n ...state.upload.find(f => f.ref === payload.ref),\n ...payload.body,\n color: 'success',\n progress: 100,\n };\n\n return {\n ...state,\n upload: state.upload.map(file =>\n file.ref === payload.ref ? newFile : file,\n ),\n event: {\n type: 'setData',\n payload: newFile,\n },\n };\n },\n );\n\n private readonly setFail = this.updater(\n (\n state,\n payload: { ref: symbol; message: string; color: OnemrvaMatColor },\n ) => ({\n ...state,\n upload: state.upload.map(file =>\n file.ref === payload.ref\n ? { ...file, message: payload.message, color: payload.color }\n : file,\n ),\n event: {\n type: 'setFail',\n payload,\n },\n }),\n );\n\n private readonly setProgress = this.updater(\n (state, payload: { ref: symbol; progress: number }) => ({\n ...state,\n upload: state.upload.map(file =>\n file.ref === payload.ref\n ? { ...file, progress: payload.progress }\n : file,\n ),\n event: {\n type: 'setProgress',\n payload,\n },\n }),\n );\n\n private readonly reset = this.updater((state, ref: symbol) => ({\n ...state,\n upload: state.upload.map(file =>\n file.ref === ref\n ? { ...file, progress: 0, message: '', color: '' }\n : file,\n ),\n event: {\n type: 'reset',\n payload: ref,\n },\n }));\n\n private readonly remove = this.updater(\n (state, payload: ReferencedProgressFile) => ({\n ...state,\n upload: state.upload.filter(f => f.ref !== payload.ref),\n event: {\n type: 'remove',\n payload,\n },\n }),\n );\n\n private readonly enableProgressBar = this.updater(state => ({\n ...state,\n upload: state.upload.map(file => ({ ...file, enableProgressBar: true })),\n event: {\n type: 'enableProgressBar',\n },\n }));\n\n public readonly setFileUploadError = this.updater(\n (state, fileUploadError: string) => ({\n ...state,\n fileUploadError,\n event: {\n type: 'setFileUploadError',\n payload: fileUploadError,\n },\n }),\n );\n\n public readonly clearFileUploadError = this.updater(state => ({\n ...state,\n fileUploadError: '',\n event: {\n type: 'clearFileUploadError',\n },\n }));\n\n /*\n * S E L E C T O R S\n */\n readonly files$ = this.select(state => state.upload);\n readonly accept$ = this.select(state => state.accept);\n readonly event$ = this.select(state => state.event);\n readonly maxFileSize$ = this.select(state => state.maxFileSize);\n readonly fileUploadError$ = this.select(state => state.fileUploadError);\n\n /*\n * A C T I O N S / E F F E C T S\n */\n readonly listUploadedFiles = this.effect((inputs$: Observable<any>) => {\n return inputs$.pipe(\n tap(() => {\n this.emptyList();\n }),\n mergeMap((inputs: any) => {\n return this.fileUploadService.listUploadedFiles(inputs).pipe(\n //take(1),\n withLatestFrom(this.files$),\n tap(() => {\n // added to avoid ide errors\n }),\n tap(([newfiles, registeredFiles]) => {\n newfiles.forEach(file => {\n if (\n registeredFiles.findIndex(rfile => rfile.id === file.id) < 0\n ) {\n this.pushFile({\n ...file,\n color: 'success',\n progress: 100,\n ref: Symbol('H.psi = E.psi'),\n name: file!.name,\n lastModified: file!.lastModified,\n size: file!.size,\n type: file!.type,\n });\n }\n });\n }),\n catchError(() => of([])),\n );\n }),\n );\n });\n\n readonly deleteFile = this.effect(\n (file$: Observable<ReferencedProgressFile>) => {\n return file$.pipe(\n tap(() => {\n this.clearFileUploadError();\n }),\n withLatestFrom(this.files$),\n map(this.fn),\n mergeMap((file: any) =>\n this.fileUploadService.deleteFile(file.id).pipe(\n //take(1),\n tap(() => {\n this.remove(file);\n }),\n catchError(() => {\n this.setFail({\n ref: file.ref,\n color: OnemrvaMatColor.WARN,\n message: 'file.upload.delete.error',\n });\n return of(null);\n }),\n ),\n ),\n );\n },\n );\n\n readonly removeFile = this.effect(\n (file$: Observable<ReferencedProgressFile>) => {\n return file$.pipe(\n tap(() => {\n this.clearFileUploadError();\n }),\n withLatestFrom(this.files$),\n map(this.fn),\n tap(file => {\n this.remove(file);\n }),\n );\n },\n );\n\n private progressFileChecker = (file$: Observable<any>) => {\n return file$.pipe(\n withLatestFrom(this.accept$),\n\n map(([file, accept]) => {\n // Step 1 - Add a new file in the view\n let f: ReferencedProgressFile = { ...file };\n if (file.ref === undefined) {\n f = {\n ...f,\n ref: Symbol('v_sound = sqrt(gamma.P / rho)'),\n name: file!.name,\n lastModified: file!.lastModified,\n size: file!.size,\n type: file!.type,\n };\n this.pushFile(f);\n }\n\n // Step 2 - Check file extension\n if (accept.length > 0 && !accept.includes(file.file!.type)) {\n this.setFail({\n ref: f.ref,\n color: OnemrvaMatColor.ERROR,\n message: 'file.upload.type.not.supported',\n });\n // This trick coupled with the next filter is used to avoid catchError, which would break the effect\n return { ...f, message: 'ERROR' };\n }\n return f;\n }),\n filter(x => x.message !== 'ERROR'),\n withLatestFrom(this.maxFileSize$),\n\n map(([refFile, maxFileSize]) => {\n // Step 3 - Check file size\n if (maxFileSize !== 0 && refFile.size > maxFileSize) {\n this.setFail({\n ref: refFile.ref,\n color: OnemrvaMatColor.ERROR,\n message: 'file.upload.too.big',\n });\n // Same trick for error management\n return { ...refFile, message: 'ERROR' };\n }\n return refFile;\n }),\n filter(x => x.message !== 'ERROR'),\n withLatestFrom(this.files$),\n map(this.fn), // For custom validations\n tap(x => {\n if (!!x.message && x.message.startsWith('ERROR:'))\n this.setFileUploadError(x.message.replace('ERROR:', '').trim());\n else this.clearFileUploadError();\n }),\n filter(x => !x.message.startsWith('ERROR')),\n );\n };\n\n private loadStep = (file: any) => {\n if (file.color === OnemrvaMatColor.WARN) this.reset(file.ref);\n\n this.enableProgressBar();\n\n return this.fileUploadService.upload(file).pipe(\n throttle(() => interval(200), { leading: true, trailing: true }),\n tap((event: HttpEvent<any>) => {\n if (event.type === HttpEventType.UploadProgress) {\n this.setProgress({\n ref: file.ref,\n progress: Math.round((100 * event.loaded) / event.total!),\n });\n }\n\n if (event.type === HttpEventType.Response) {\n this.setSuccess({ ref: file.ref, body: event.body });\n }\n }),\n takeWhile(\n (event: HttpEvent<any>) => event.type === HttpEventType.UploadProgress,\n ),\n catchError(() => {\n this.setFail({\n ref: file.ref,\n color: OnemrvaMatColor.WARN,\n message: 'file.upload.error.occurred',\n });\n return of(null);\n }),\n );\n };\n\n /**\n * For adding one file panel (creation of file panel reference skipped if already created) at a time.\n * Upload to BE not triggered\n */\n readonly addForPotentialUpload = this.effect(\n (file$: Observable<ProgressFile>) => this.progressFileChecker(file$),\n );\n\n /**\n * For adding an array of file panels (creation of file panels reference skipped if already created).\n * Uploads to BE not triggered\n */\n readonly addSeveralForPotentialUpload = this.effect(\n (files$: Observable<ProgressFile[]>) =>\n files$.pipe(\n switchMap(files =>\n forkJoin(files.map(file => this.progressFileChecker(of(file)))),\n ),\n ),\n );\n\n /**\n * For adding a file panel (creation of file panels reference skipped if already created) then uploading it\n */\n readonly uploadFile = this.effect((file$: Observable<ProgressFile>) => {\n return this.progressFileChecker(file$).pipe(mergeMap(this.loadStep));\n });\n\n readonly retryFile = this.effect(\n (file$: Observable<ReferencedProgressFile>) =>\n this.progressFileChecker(file$).pipe(mergeMap(this.loadStep)),\n );\n\n /**\n * For adding several file panels (creation of file panels reference skipped if already created) then uploading them\n */\n readonly uploadFiles = this.effect((files$: Observable<ProgressFile[]>) =>\n files$.pipe(\n switchMap(files =>\n merge(\n ...files.map(file =>\n this.progressFileChecker(of(file)).pipe(switchMap(this.loadStep)),\n ),\n ),\n ),\n ),\n );\n}\n","import {\n Directive,\n Output,\n EventEmitter,\n HostBinding,\n HostListener,\n} from '@angular/core';\n\n@Directive({\n selector: '[appDnd]',\n standalone: true,\n})\nexport class DndDirective {\n @HostBinding('class.fileover') fileOver = false;\n\n @Output() fileDropped = new EventEmitter<any>();\n\n // Dragover listener\n @HostListener('dragover', ['$event']) onDragOver(evt: Event) {\n evt.preventDefault();\n evt.stopPropagation();\n this.fileOver = true;\n }\n\n // Dragleave listener\n @HostListener('dragleave', ['$event']) public onDragLeave(evt: Event) {\n evt.preventDefault();\n evt.stopPropagation();\n this.fileOver = false;\n }\n\n // Drop listener\n @HostListener('drop', ['$event']) public ondrop(evt: any) {\n evt.preventDefault();\n evt.stopPropagation();\n this.fileOver = false;\n const files = evt.dataTransfer.files;\n if (files.length > 0) {\n this.fileDropped.emit(files);\n }\n }\n}\n","import {\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n inject,\n Input,\n OnInit,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { map, merge, Observable, Subject, take } from 'rxjs';\nimport {\n state,\n keyframes,\n style,\n animate,\n trigger,\n transition,\n} from '@angular/animations';\nimport {\n formatBytes,\n formattedSize,\n ProgressFile,\n ReferencedProgressFile,\n} from '../../models/progress-file.model';\nimport { OnemrvaMatFileUploadStore } from '../../onemrva-mat-file-upload.store';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { OnemRvaCDNMimeService } from '@onemrvapublic/design-system/shared';\nimport { AsyncPipe, NgClass, NgTemplateOutlet } from '@angular/common';\nimport { MatIcon } from '@angular/material/icon';\nimport { MatError } from '@angular/material/form-field';\nimport { DndDirective } from '../../directives/dnd.directive';\n\nlet NEXT_ID = 0;\n\n@Component({\n selector: 'onemrva-mat-file-upload',\n standalone: true,\n templateUrl: 'onemrva-mat-file-upload.component.html',\n styleUrl: 'onemrva-mat-file-upload.component.scss',\n animations: [\n trigger('inOutAnimation', [\n state('in', style({ opacity: 1 })),\n transition(':enter', [\n animate(\n 300,\n keyframes([\n style({ opacity: 0, offset: 0 }),\n style({ opacity: 0.25, offset: 0.25 }),\n style({ opacity: 0.5, offset: 0.5 }),\n style({ opacity: 0.75, offset: 0.75 }),\n style({ opacity: 1, offset: 1 }),\n ]),\n ),\n ]),\n transition(':leave', [\n animate(\n 300,\n keyframes([\n style({ opacity: 1, offset: 0 }),\n style({ opacity: 0.75, offset: 0.25 }),\n style({ opacity: 0.5, offset: 0.5 }),\n style({ opacity: 0.25, offset: 0.75 }),\n style({ opacity: 0, offset: 1 }),\n ]),\n ),\n ]),\n ]),\n ],\n imports: [\n NgClass,\n AsyncPipe,\n MatIcon,\n TranslatePipe,\n NgTemplateOutlet,\n MatError,\n DndDirective,\n ],\n})\nexport class OnemrvaMatFileUploadComponent implements OnInit {\n @Input()\n accept: string[] = [];\n\n acceptString$?: Observable<any>;\n\n @Input()\n maxFileSize = 0;\n\n @Input()\n numberOfFiles = 0;\n\n @Input()\n maxTotalFileSize = 0;\n\n @Input()\n uploadOnDrop = true;\n\n @Input()\n initialFiles: ProgressFile[] = [];\n\n @Input()\n errorMessage = '';\n\n @Input()\n hideExtensions: string[] = [];\n\n @Input()\n dropFilesHereTextTranslationKey = 'file.upload.drag.and.drop';\n\n fileUploadErrorMessage$: Observable<string>;\n\n files$: Observable<ReferencedProgressFile[]>;\n\n @Input() filePanelTemplate!: TemplateRef<any>;\n\n retryFile = new EventEmitter<{ index: number; cmpRef: symbol }>();\n\n /**\n * Sets the `data-cy` of the element. If not set, the first component instance will have `data-cy` = `\"onemrva-mat-multi-select-0\"`.\n *\n * @example\n * ```html\n * <onemrva-mat-multi-select id=\"my-first-multi-select\"></onemrva-mat-multi-select>\n * ```\n */\n @HostBinding('attr.data-cy')\n @Input()\n public dataCy = `onemrva-mat-multi-select-${NEXT_ID++}`;\n\n @ViewChild(`fileDropRef`)\n fileDropRef!: ElementRef;\n\n inputId = `fileDropRef-${NEXT_ID}`;\n maxFileSizeFormatted = '';\n private error$ = new Subject<string>();\n\n public dialog = inject(MatDialog);\n public mimeCDN = inject(OnemRvaCDNMimeService);\n private fileUploadStore = inject(OnemrvaMatFileUploadStore);\n\n constructor() {\n this.files$ = this.fileUploadStore.files$;\n\n this.fileUploadErrorMessage$ = merge(\n this.fileUploadStore.fileUploadError$,\n this.error$,\n );\n }\n\n ngOnInit(): void {\n if (this.accept.length > 0) {\n this.acceptString$ = this.mimeCDN.getExtensionsForMime(this.accept).pipe(\n map(items => items.filter(item => !this.hideExtensions.includes(item))),\n map(arr => arr.map(item => `.${item}`).join(', ')),\n );\n this.fileUploadStore.setAccept(this.accept);\n }\n\n this.maxFileSizeFormatted = formatBytes(this.maxFileSize);\n this.fileUploadStore.setMaxFileSize(this.maxFileSize);\n }\n\n /**\n * on file drop handler\n */\n onFileDropped($event: FileList) {\n this.prepareFilesList($event);\n }\n\n /**\n * handle file from browsing\n */\n fileBrowseHandler($event: Event) {\n const elm = $event.target as HTMLInputElement,\n files = elm.files as FileList;\n\n this.prepareFilesList(files);\n }\n\n /**\n * Convert Files list to normal array list\n * @param files (Files List)\n */\n prepareFilesList(files: FileList) {\n this.fileUploadStore.files$.pipe(take(1)).subscribe(currentFiles => {\n // if numberOffiles is set and the total length of files is smal\n // ler than it\n if (\n this.numberOfFiles > 0 &&\n files.length + currentFiles.length > this.numberOfFiles\n ) {\n this.error$.next('file.upload.too.many.files');\n return;\n }\n if (this.maxTotalFileSize > 0) {\n const total: number =\n Object.values(files).reduce((sum, obj) => sum + obj.size, 0) +\n currentFiles.reduce((sum, obj) => sum + obj.size, 0);\n if (total > this.maxTotalFileSize) {\n this.error$.next('file.upload.total.max.size.exceeded');\n return;\n }\n }\n this.error$.next('');\n\n const fs: ProgressFile[] = [];\n for (let i = 0; i < files.length; i++) {\n const file = files.item(i);\n if (file === null) continue;\n\n const item: ProgressFile = {\n file,\n progress: 0,\n message: '',\n color: 'primary',\n url: null,\n id: null,\n enableProgressBar: this.uploadOnDrop,\n name: file!.name,\n lastModified: file!.lastModified,\n size: file!.size,\n type: file!.type,\n maxSize: this.maxFileSize,\n };\n\n fs.push(item);\n }\n\n if (this.uploadOnDrop) this.fileUploadStore.uploadFiles(fs);\n else this.fileUploadStore.addSeveralForPotentialUpload(fs);\n\n this.fileDropRef.nativeElement.value = null;\n });\n }\n\n protected readonly formattedSize = formattedSize;\n}\n","@if (files$ | async; as files) {\n <div\n class=\"onemrva-mat-file-upload-drop-area\"\n appDnd\n (fileDropped)=\"onFileDropped($event)\"\n [ngClass]=\"{\n filein: files.length > 0,\n }\"\n >\n <input\n type=\"file\"\n #fileDropRef\n [attr.id]=\"inputId\"\n role=\"button\"\n multiple\n (change)=\"fileBrowseHandler($event)\"\n accept=\"{{ acceptString$ | async }}\"\n />\n @if (numberOfFiles === 0 || numberOfFiles > files.length) {\n <div class=\"download-outer\">\n <div class=\"download-icon\">\n <mat-icon class=\"onemrva-upload xxlarge\">download</mat-icon>\n </div>\n\n <div class=\"download-text\">\n {{ dropFilesHereTextTranslationKey | translate }}\n {{ 'file.upload.or' | translate }}\n <label for=\"{{ inputId }}\" class=\"content\">\n {{ 'file.upload.browse.for.file' | translate }} </label\n ><br />\n @if (maxFileSize > 0) {\n <span class=\"restrictions\">\n {{ 'file.upload.maximum' | translate }}\n {{ maxFileSizeFormatted }}\n\n @if (accept.length > 0) {\n <span>{{ '| ' }}</span>\n }\n\n {{ acceptString$ | async }}\n </span>\n }\n </div>\n </div>\n }\n <ul class=\"files-list\">\n @for (file of files; track file.id) {\n <li>\n <ng-container\n *ngTemplateOutlet=\"\n filePanelTemplate;\n context: { file, $implicit: file }\n \"\n ></ng-container>\n </li>\n }\n </ul>\n </div>\n @if (fileUploadErrorMessage$ | async; as fileUploadErrorMessage) {\n <mat-error>\n {{\n fileUploadErrorMessage\n | translate\n : {\n limit: numberOfFiles,\n maxTotalFileSize: formattedSize(maxTotalFileSize),\n }\n }}\n @if (errorMessage !== '') {\n [ {{ errorMessage }} ]\n }\n </mat-error>\n }\n}\n","import { OnemrvaFilePanelComponent } from './onemrva-mat-file-panel/onemrva-file-panel.component';\nimport { OnemrvaMatFileUploadComponent } from './onemrva-mat-file-upload/onemrva-mat-file-upload.component';\n\nexport const components: any[] = [\n OnemrvaFilePanelComponent,\n OnemrvaMatFileUploadComponent,\n];\n\nexport * from './onemrva-mat-file-panel/onemrva-file-panel.component';\nexport * from './onemrva-mat-file-upload/onemrva-mat-file-upload.component';\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DndDirective } from './directives/dnd.directive';\nimport { MatIconModule } from '@angular/material/icon';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nimport { components } from './components';\nimport { MatInputModule } from '@angular/material/input';\nimport { OnemrvaMatFileUploadStore } from './onemrva-mat-file-upload.store';\nimport { OnemrvaMatFileUploadService } from './onemrva-mat-file-upload.service';\n\n@NgModule({\n declarations: [],\n imports: [\n components,\n DndDirective,\n CommonModule,\n ReactiveFormsModule,\n MatButtonModule,\n MatTooltipModule,\n MatDialogModule,\n TranslateModule,\n MatIconModule,\n MatInputModule,\n ],\n exports: [components, DndDirective],\n providers: [OnemrvaMatFileUploadStore, OnemrvaMatFileUploadService],\n})\nexport class OnemrvaMatFileUploadModule {}\n","/*\n * Public API Surface of mat-file upload\n */\n\nexport * from './src/components';\nexport * from './src/onemrva-mat-file-upload.module';\nexport * from './src/onemrva-mat-file-upload.store';\nexport * from './src/onemrva-mat-file-upload.service';\nexport * from './src/models/progress-file.model';\nexport * from './src/models/action-config.model';\nexport * from './src/onemrva-mat-file-upload-itf.store';\nexport * from './src/directives/dnd.directive';\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { OSMResult } from '@onemrvapublic/design-system/shared';\n\n@Pipe({\n name: 'addressFormatter',\n standalone: true,\n})\nexport class OSMAddressFormatPipe implements PipeTransform {\n transform(result: OSMResult): string {\n if (result.address.country_code !== 'be') {\n return result.display_name;\n }\n\n const town =\n result.address.village || result.address.city || result.address.town;\n if (result.address.house_number) {\n return `${result.address.road} ${result.address.house_number}, ${result.address.postcode} ${town}`;\n }\n\n return `${result.address.road}, ${result.address.postcode} ${town}`;\n }\n}\n","import {\n Component,\n EventEmitter,\n Input,\n Output,\n ViewEncapsulation,\n OnInit,\n ViewChild,\n inject,\n} from '@angular/core';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { debounceTime, switchMap, Observable, startWith, map, of } from 'rxjs';\nimport { CommonModule } from '@angular/common';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatSelectModule } from '@angular/material/select';\nimport { TranslateModule } from '@ngx-translate/core';\nimport {\n MatAutocomplete,\n MatAutocompleteTrigger,\n} from '@angular/material/autocomplete';\nimport { MatIcon } from '@angular/material/icon';\nimport { FlagIconComponent } from '@onemrvapublic/design-system/flag-icon';\nimport {\n OnemRvaOSMService,\n OSMResult,\n} from '@onemrvapublic/design-system/shared';\nimport { OSMAddressFormatPipe } from './format-osm.directive';\n\n@Component({\n selector: 'onemrva-mat-input-address',\n styleUrls: ['onemrva-mat-input-address.component.scss'],\n templateUrl: 'onemrva-mat-input-address.component.html',\n standalone: true,\n imports: [\n CommonModule,\n MatInputModule,\n MatFormFieldModule,\n MatSelectModule,\n ReactiveFormsModule,\n TranslateModule,\n MatAutocompleteTrigger,\n MatAutocomplete,\n MatIcon,\n FlagIconComponent,\n OSMAddressFormatPipe,\n ],\n encapsulation: ViewEncapsulation.None,\n})\nexport class OnemrvaMatInputAddressComponent implements OnInit {\n @Input() placeholder = 'input.address.placeholder';\n @Input() readonly = false;\n @Input() address!: FormControl;\n @Input() mode: 'road-only' | 'full' = 'full';\n @Input() label = 'input.address.label';\n @Input() noEntriesFoundLabel = 'input.address.not-found';\n @Input() hint = '';\n @Input() countryCodes = ['be'];\n @Output() getAddress = new EventEmitter<OSMResult>();\n\n @ViewChild(MatAutocompleteTrigger, { static: false })\n autocompleteTrigger!: MatAutocompleteTrigger;\n\n results$!: Observable<OSMResult[]>;\n\n private readonly osm = inject(OnemRvaOSMService);\n\n isLoading = false;\n\n firstResult: null | OSMResult = null;\n showNoResult = false;\n\n ngOnInit(): void {\n this.results$ = this.address.valueChanges.pipe(\n startWith(''),\n debounceTime(300),\n switchMap((value: string) => {\n this.showNoResult = false;\n this.firstResult = null;\n if (!value || value.length <= 2) {\n this.isLoading = false;\n this.autocompleteTrigger.closePanel();\n return of([]);\n }\n\n this.isLoading = true;\n return this.osm.searchAddress(value, this.countryCodes).pipe(\n map(results => {\n this.showNoResult = results.length === 0;\n this.isLoading = false;\n this.firstResult = results[0];\n return results;\n }),\n );\n }),\n );\n }\n\n selectAddress(address: OSMResult, emit = true) {\n const finalValue =\n this.mode === 'road-only' ? address.address.road : address.display_name;\n\n this.address.setValue(finalValue, { emitEvent: emit });\n this.getAddress.emit(address);\n }\n\n clear() {\n this.address.setValue('');\n }\n\n handleEnter() {\n if (this.firstResult !== null) this.selectAddress(this.firstResult, false);\n this.autocompleteTrigger.closePanel();\n }\n}\n","<mat-form-field appearance=\"outline\">\n <mat-label>{{ label | translate }}</mat-label>\n <mat-icon matPrefix [ngClass]=\"{ spin: isLoading }\">\n {{ isLoading ? 'refresh' : 'search' }}\n </mat-icon>\n\n @if (address.value !== '') {\n <mat-icon matSuffix class=\"clickable\" (click)=\"clear()\">close</mat-icon>\n }\n <input\n type=\"text\"\n matInput\n [formControl]=\"address\"\n [readonly]=\"readonly\"\n [matAutocomplete]=\"auto\"\n [placeholder]=\"placeholder | translate\"\n (keydown.enter)=\"handleEnter()\"\n />\n\n @if (hint) {\n <mat-hint>{{ hint }}</mat-hint>\n }\n\n <mat-autocomplete\n #auto=\"matAutocomplete\"\n (optionSelected)=\"selectAddress($event.option.value)\"\n >\n @for (result of results$ | async; track result.place_id) {\n <mat-option [value]=\"result\">\n <span class=\"country\">\n <flag-icon [countryCode]=\"result.address['country_code']\" />\n {{ result | addressFormatter }}\n </span>\n </mat-option>\n }\n @if (showNoResult) {\n <mat-option>\n {{ noEntriesFoundLabel | translate }}\n </mat-option>\n }\n </mat-autocomplete>\n @if (address.invalid) {\n <mat-error>{{ 'input.field.invalid' | translate }}</mat-error>\n }\n</mat-form-field>\n","/*\n * Public API Surface of mat-bank-account-input\n */\n\nexport * from './src/onemrva-mat-input-address.component';\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms';\nimport { OnemrvaMatInputAddressComponent } from '@onemrvapublic/design-system/mat-input-address';\nimport { OnemrvaMatInputCountryComponent } from '@onemrvapublic/design-system/mat-input-country';\nimport { OSMResult } from '@onemrvapublic/design-system/shared';\nimport { MatInputModule } from '@angular/material/input';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { merge } from 'rxjs';\n\n@Component({\n selector: 'onemrva-address',\n imports: [\n CommonModule,\n MatFormFieldModule,\n ReactiveFormsModule,\n OnemrvaMatInputCountryComponent,\n MatInputModule,\n TranslateModule,\n OnemrvaMatInputAddressComponent,\n ],\n templateUrl: './onemrva-address.html',\n standalone: true,\n styleUrl: './onemrva-address.scss',\n})\nexport class OnemRvaAddress implements OnInit {\n @Input()\n defaultCountry = 'be';\n\n @Input()\n form = new FormGroup({\n country: new FormControl(''),\n street: new FormControl(''),\n postal_code: new FormControl(''),\n city: new FormControl(''),\n street_number: new FormControl(''),\n box: new FormControl(''),\n });\n\n @Output()\n update = new EventEmitter<{\n country?: string;\n street?: string;\n postal_code?: string;\n city?: string;\n street_number?: string;\n box?: string;\n }>();\n\n // Keep existing property names as getters to avoid template changes\n get countryForm(): FormControl<string | null> {\n return this.form.get('country') as FormControl<string | null>;\n }\n get streetControl(): FormControl<string | null> {\n return this.form.get('street') as FormControl<string | null>;\n }\n get postalCodeControl(): FormControl<string | null> {\n return this.form.get('postal_code') as FormControl<string | null>;\n }\n get cityControl(): FormControl<string | null> {\n return this.form.get('city') as FormControl<string | null>;\n }\n get boxControl(): FormControl<string | null> {\n return this.form.get('box') as FormControl<string | null>;\n }\n get numeroControl(): FormControl<string | null> {\n return this.form.get('street_number') as FormControl<string | null>;\n }\n\n ngOnInit() {\n // Emit on any form change\n merge(this.form.valueChanges).subscribe(() => {\n const v = this.form.value;\n const change = {\n country: v.country || undefined,\n street: v.street || undefined,\n postal_code: v.postal_code || undefined,\n city: v.city || undefined,\n street_number: v.street_number || undefined,\n };\n this.update.emit(change);\n });\n }\n\n onAddressSelected(result: OSMResult) {\n const city =\n result.address.city || result.address.village || result.address.town;\n const patch: any = {};\n\n if (city) {\n patch.city = city;\n }\n\n const houseNumber = result.address.house_number;\n if (houseNumber) {\n patch.street_number = houseNumber;\n }\n\n const postalCode = result.address.postcode;\n if (postalCode) {\n patch.postal_code = postalCode;\n }\n\n if (Object.keys(patch).length > 0) {\n this.form.patchValue(patch);\n }\n }\n}\n","<onemrva-mat-input-country\n [country]=\"countryForm\"\n label=\"{{ 'input.country.label' | translate }}\"\n noEntriesFoundLabel=\"{{ 'input.country.not.found' | translate }}\"\n placeholderLabel=\"{{ 'input.country.search' | translate }}\"\n searchAriaLabel=\"{{ 'input.country.search' | translate }}\"\n></onemrva-mat-input-country>\n\n<div class=\"container\">\n <div class=\"row\">\n <div class=\"col-12-small col-8-medium\">\n <onemrva-mat-input-address\n class=\"mr-m\"\n mode=\"road-only\"\n [countryCodes]=\"[countryForm.value || '']\"\n [address]=\"streetControl\"\n (getAddress)=\"onAddressSelected($event)\"\n />\n </div>\n\n <div class=\"col-6-small col-2-medium\">\n <mat-form-field class=\"ml-m-medium\">\n <mat-label>{{ 'input.address.number.label' | translate }}</mat-label>\n <input\n matInput\n [formControl]=\"numeroControl\"\n [placeholder]=\"'input.address.number.placeholder' | translate\"\n />\n </mat-form-field>\n </div>\n\n <div class=\"col-6-small col-2-medium\">\n <mat-form-field class=\"ml-m-medium ml-s-small\">\n <mat-label>{{'input.address.box.label' | translate}}</mat-label>\n <input\n matInput\n [formControl]=\"boxControl\"\n [placeholder]=\"'input.address.box.placeholder' | translate\"\n />\n </mat-form-field>\n </div>\n </div>\n\n <div class=\"row\">\n <div class=\"col-12-small col-4-medium\">\n <mat-form-field class=\"mr-m-medium\">\n <mat-label\n >{{ 'input.address.postal-code.label' | translate}}</mat-label\n >\n <input\n matInput\n [formControl]=\"postalCodeControl\"\n [placeholder]=\"'input.address.postal-code.label' | translate\"\n />\n </mat-form-field>\n </div>\n\n <div class=\"col-12-small col-8-medium\">\n <mat-form-field>\n <mat-label>{{ 'input.address.city.label' | translate }}</mat-label>\n <input\n matInput\n [formControl]=\"cityControl\"\n [placeholder]=\"'input.address.city.placeholder' | translate\"\n />\n </mat-form-field>\n </div>\n </div>\n</div>\n","/*\n * Public API Surface of mat-bank-account-input\n */\n\nexport * from './src/onemrva-address';\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n EventEmitter,\n inject,\n input,\n OnDestroy,\n OnInit,\n Output,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport {\n Observable,\n Subject,\n map,\n startWith,\n debounceTime,\n takeUntil,\n of,\n combineLatest,\n} from 'rxjs';\nimport { MatSelectSearchModule } from '@onemrvapublic/design-system/mat-select-search';\nimport { CommonCountryLookupService } from '@onemrvapublic/design-system/shared';\nimport { OnemRvaCommonCountry } from '@onemrvapublic/design-system/shared';\nimport { OnemrvaCountryItemComponent } from '@onemrvapublic/design-system/mat-country-item';\n\n@Component({\n selector: 'onemrva-mat-input-birthplace',\n styleUrls: ['onemrva-mat-input-birthplace.component.scss'],\n templateUrl: 'onemrva-mat-input-birthplace.component.html',\n standalone: true,\n imports: [\n CommonModule,\n MatInputModule,\n MatFormFieldModule,\n MatSelectModule,\n MatSelectSearchModule,\n ReactiveFormsModule,\n TranslateModule,\n OnemrvaCountryItemComponent,\n ],\n encapsulation: ViewEncapsulation.None,\n})\nexport class OnemrvaMatInputBirthPlaceComponent implements OnInit, OnDestroy {\n readonly = input(false);\n\n countryCode = input(new FormControl<OnemRvaCommonCountry | null>(null));\n\n label = input('Country');\n noEntriesFoundLabel = input('Not found');\n hint = input('');\n placeholderLabel = input('Search');\n searchAriaLabel = input('');\n returnValue = input('object');\n\n @Output() getCountry = new EventEmitter<any>();\n\n selectedCountryName = signal<string | null>(null);\n selectedCountryCode = signal<string | null>(null);\n\n public filterCtrl: FormControl<string | null> = new FormControl<string>('');\n\n destroyNotifier$ = new Subject<void>();\n\n public filteredCountries$: Observable<OnemRvaCommonCountry[]> = of([]);\n\n private commonCountryLookupService = inject(CommonCountryLookupService);\n private translate = inject(TranslateService);\n private countries$ = this.commonCountryLookupService.getCountries();\n\n constructor() {\n this.filteredCountries$ = combineLatest([\n this.filterCtrl.valueChanges.pipe(startWith('')),\n this.countries$,\n ]).pipe(\n debounceTime(400),\n map(([search, countries]) => {\n return countries.filter((country: OnemRvaCommonCountry) => {\n if (!search || search === '') return true;\n // if (country.descNl === undefined) return false;\n return (\n country.descNl.toLowerCase().indexOf(search.toLowerCase()) > -1\n );\n });\n }),\n map(country =>\n country.sort((a, b) => {\n return a.descNl.localeCompare(b.descNl);\n }),\n ),\n );\n }\n\n getCountryName(country: OnemRvaCommonCountry): string | null {\n if (!country) return null;\n switch (this.translate.currentLang) {\n case 'nl':\n return country.descNl ?? '';\n default:\n case 'fr':\n return country.descFr ?? '';\n }\n }\n\n ngOnInit(): void {\n this.countryCode()\n .valueChanges.pipe(\n startWith(this.countryCode().value),\n takeUntil(this.destroyNotifier$),\n )\n .subscribe(country => {\n this.selectedCountryName.set(null);\n this.selectedCountryCode.set(null);\n\n if (country === null || country === undefined) return;\n const name = this.getCountryName(country);\n\n this.selectedCountryName.set(name);\n this.selectedCountryCode.set(\n country.singlePropertiesMap.codeSepa.toLowerCase(),\n );\n });\n }\n\n ngOnDestroy() {\n this.destroyNotifier$.next();\n this.destroyNotifier$.complete();\n }\n\n trackById(index: number, country: OnemRvaCommonCountry) {\n return country.code;\n }\n\n errors() {\n // if (this.countryCode.errors !== null) {\n // for (const k in this.countryCode.errors) {\n // if (k === 'required') {\n // return 'input.country.required';\n // } else {\n // return 'input.country.invalid';\n // }\n // }\n // }\n return 'input.country.unknown.error';\n }\n\n getValue(country: OnemRvaCommonCountry) {\n switch (this.returnValue()) {\n case 'id':\n return country.id;\n case 'code':\n return country.code;\n default:\n case 'object':\n return country;\n }\n }\n}\n","<mat-form-field class=\"onemrva-input-country-common\">\n <mat-label>{{ label() }}</mat-label>\n <mat-select\n class=\"onemrva-country-select-common\"\n [formControl]=\"countryCode()\"\n [placeholder]=\"placeholderLabel()\"\n >\n <mat-select-trigger>\n <mat-country-item\n [countryCode]=\"selectedCountryCode()\"\n [countryName]=\"selectedCountryName()\"\n />\n </mat-select-trigger>\n <mat-option>\n <mat-select-search\n [formControl]=\"filterCtrl\"\n [ariaLabel]=\"searchAriaLabel()\"\n [noEntriesFoundLabel]=\"noEntriesFoundLabel()\"\n [placeholderLabel]=\"placeholderLabel()\"\n ></mat-select-search>\n </mat-option>\n @for (country of filteredCountries$ | async; track country.code) {\n <mat-option [value]=\"country\">\n <mat-country-item\n [countryCode]=\"country.singlePropertiesMap.codeSepa.toLowerCase()\"\n [countryName]=\"getCountryName(country)\"\n />\n </mat-option>\n }\n </mat-select>\n @if (hint() !== '') {\n <mat-hint>{{ hint() }}</mat-hint>\n }\n @if (countryCode().invalid) {\n <mat-error>{{ errors() | translate }}</mat-error>\n }\n</mat-form-field>\n","/*\n * Public API Surface of mat-bank-account-input\n */\n\nexport * from './src/onemrva-mat-input-birthplace.component';\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n effect,\n EventEmitter,\n inject,\n input,\n OnInit,\n Output,\n ViewEncapsulation,\n} from '@angular/core';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\nimport { TranslateModule } from '@ngx-translate/core';\nimport {\n Observable,\n map,\n startWith,\n debounceTime,\n combineLatestWith,\n} from 'rxjs';\nimport { MatSelectSearchModule } from '@onemrvapublic/design-system/mat-select-search';\nimport {\n OnemRvaCDNCountryService,\n OnemrvaMaterialCountry,\n} from '@onemrvapublic/design-system/shared';\nimport { OnemrvaCountryItemComponent } from '@onemrvapublic/design-system/mat-country-item';\n\n@Component({\n selector: 'onemrva-mat-input-country',\n styleUrls: ['onemrva-mat-input-country.component.scss'],\n templateUrl: 'onemrva-mat-input-country.component.html',\n standalone: true,\n imports: [\n CommonModule,\n MatInputModule,\n MatFormFieldModule,\n MatSelectModule,\n MatSelectSearchModule,\n ReactiveFormsModule,\n TranslateModule,\n OnemrvaCountryItemComponent,\n ],\n encapsulation: ViewEncapsulation.None,\n})\nexport class OnemrvaMatInputCountryComponent implements OnInit {\n @Output() getCountry = new EventEmitter<any>();\n\n country = input.required<FormControl<string | null>>();\n\n readonly = input(false);\n disabled = input(false);\n\n label = input('Country');\n noEntriesFoundLabel = input('Not found');\n hint = input('');\n placeholderLabel = input('Search');\n searchAriaLabel = input('');\n\n public filterCtrl: FormControl<string | null> = new FormControl<string>('');\n\n public countries$: Observable<OnemrvaMaterialCountry[]>;\n public filteredCountries$: Observable<OnemrvaMaterialCountry[]>;\n public selectedCountry$?: Observable<OnemrvaMaterialCountry | undefined>;\n\n public setValue(country: OnemrvaMaterialCountry) {\n this.country().setValue(country.code);\n this.getCountry.emit(country);\n }\n\n private readonly cdn = inject(OnemRvaCDNCountryService);\n\n constructor() {\n this.countries$ = this.cdn.getCountries();\n\n this.filteredCountries$ = this.filterCtrl.valueChanges.pipe(\n debounceTime(400),\n startWith<string | null>(''), // ✅ Explicitly setting type\n combineLatestWith(this.countries$),\n map(([search, countries]: [string | null, OnemrvaMaterialCountry[]]) => {\n return countries.filter((country: OnemrvaMaterialCountry) => {\n if (!search || search.trim() === '') return true; // ✅ Avoids returning an entire array\n return country.name?.toLowerCase().includes(search.toLowerCase());\n });\n }),\n );\n }\n\n ngOnInit(): void {\n this.selectedCountry$ = this.country().valueChanges.pipe(\n startWith<string | null>(this.country().getRawValue()), // ✅ Explicitly set type\n combineLatestWith(this.countries$),\n map(([value, countries]: [string | null, OnemrvaMaterialCountry[]]) => {\n // ✅ Explicitly defining types\n return countries.find(\n (country: OnemrvaMaterialCountry) =>\n value !== null &&\n country.code.toLowerCase() ===\n value.substring(0, country.code.length).toLowerCase(),\n );\n }),\n );\n }\n\n handleClick(e: any) {\n e.stopPropagation();\n }\n\n public errors() {\n for (const k in this.country().errors) {\n if (k === 'required') {\n return 'input.country.required';\n }\n }\n return 'input.country.unknown.error';\n }\n\n getCounrtyCode() {\n return this.country().getRawValue()?.toLowerCase() ?? null;\n }\n}\n","<mat-form-field class=\"onemrva-input-country\">\n <mat-label>{{ label() }}</mat-label>\n <mat-select class=\"onemrva-country-select\" [formControl]=\"country()\">\n <mat-select-trigger>\n <mat-country-item\n [countryCode]=\"getCounrtyCode()\"\n [countryName]=\"(selectedCountry$ | async)?.name\"\n />\n </mat-select-trigger>\n <mat-option>\n <mat-select-search\n [formControl]=\"filterCtrl\"\n [ariaLabel]=\"searchAriaLabel()\"\n [noEntriesFoundLabel]=\"noEntriesFoundLabel()\"\n [placeholderLabel]=\"placeholderLabel()\"\n ></mat-select-search>\n </mat-option>\n @for (country of filteredCountries$ | async; track $index) {\n <mat-option [value]=\"country.code.toLowerCase()\">\n <mat-country-item\n [countryCode]=\"country.code.toLowerCase()\"\n [countryName]=\"country.name\"\n />\n </mat-option>\n }\n </mat-select>\n @if (hint() !== '') {\n <mat-hint>{{ hint() }}</mat-hint>\n }\n @if (country().invalid) {\n <mat-error>{{ errors() | translate }}</mat-error>\n }\n</mat-form-field>\n","/*\n * Public API Surface of mat-bank-account-input\n */\n\nexport * from './src/onemrva-mat-input-country.component';\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n ElementRef,\n EventEmitter,\n inject,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { FormControl, ReactiveFormsModule, Validators } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\nimport { TranslateModule } from '@ngx-translate/core';\nimport {\n combineLatestWith,\n debounceTime,\n map,\n Observable,\n startWith,\n Subject,\n takeUntil,\n zip,\n} from 'rxjs';\nimport { MatSelectSearchModule } from '@onemrvapublic/design-system/mat-select-search';\nimport {\n OnemRvaCDNCountryService,\n OnemrvaMaterialCountry,\n} from '@onemrvapublic/design-system/shared';\nimport { FlagIconComponent } from '@onemrvapublic/design-system/flag-icon';\n\n@Component({\n selector: 'onemrva-mat-input-enterprise-number',\n styleUrls: ['onemrva-mat-input-enterprise-number.component.scss'],\n templateUrl: 'onemrva-mat-input-enterprise-number.component.html',\n standalone: true,\n imports: [\n CommonModule,\n MatInputModule,\n MatFormFieldModule,\n MatSelectModule,\n ReactiveFormsModule,\n TranslateModule,\n FlagIconComponent,\n MatSelectSearchModule,\n ],\n encapsulation: ViewEncapsulation.None,\n})\nexport class OnemrvaMatInputEnterpriseNumberComponent\n implements OnInit, OnDestroy\n{\n @Input()\n readonly = false;\n\n @Input() enterpriseNumber!: FormControl;\n @Input() label = 'VIES';\n @Input() noEntriesFoundLabel = 'Not found';\n @Input() placeholderLabel = 'Search';\n @Input() defaultCountry = 'BE';\n @Input() searchAriaLabel = '';\n @Input() hint = '';\n @Output() getCountry = new EventEmitter<any>();\n @ViewChild('numberInput') numberInput!: ElementRef;\n\n countryCode: FormControl = new FormControl('');\n\n public filterCtrl: FormControl<string | null> = new FormControl<string>('');\n\n destroyNotifier$ = new Subject<void>();\n\n private readonly cdn = inject(OnemRvaCDNCountryService);\n public countries$: Observable<OnemrvaMaterialCountry[]> =\n this.cdn.getCountriesByZone('EU');\n public filteredCountries$: Observable<OnemrvaMaterialCountry[]>;\n\n constructor() {\n this.filteredCountries$ = this.filterCtrl.valueChanges.pipe(\n debounceTime(400),\n startWith<string | null>(''), // ✅ Explicitly define type\n combineLatestWith(this.countries$),\n map(([search, countries]: [string | null, OnemrvaMaterialCountry[]]) => {\n // ✅ Explicit Tuple Types\n return countries.filter((country: OnemrvaMaterialCountry) => {\n if (!search || search.trim() === '') return true;\n return country.name?.toLowerCase().includes(search.toLowerCase());\n });\n }),\n );\n }\n\n get number(): FormControl {\n return this.enterpriseNumber as FormControl;\n }\n\n setCode(country: OnemrvaMaterialCountry | null) {\n this.clearValidators();\n if (country) {\n this.countryCode.setValue(country.code);\n this.formatEnterpriseNumber(country);\n }\n }\n\n ngOnInit(): void {\n this.number.valueChanges\n .pipe(\n startWith(this.number.getRawValue()),\n takeUntil(this.destroyNotifier$),\n )\n .subscribe(number => {\n if (number === '0') {\n this.cdn\n .findCountryFromCode(this.defaultCountry)\n .pipe(takeUntil(this.destroyNotifier$))\n .subscribe(country => {\n if (country) {\n number = country.pattern.substring(0, 2) + number;\n this.number.setValue(number, { emitEvent: false });\n this.countryCode.setValue(country.code);\n } else {\n this.countryCode.setValue('');\n }\n });\n } else {\n if (number.length > 1) {\n this.cdn\n .findCountryFromVIESCode(number)\n .pipe(takeUntil(this.destroyNotifier$))\n .subscribe(country => {\n if (country) {\n this.countryCode.setValue(country.code);\n }\n });\n }\n }\n });\n\n this.countryCode.valueChanges\n .pipe(takeUntil(this.destroyNotifier$))\n .subscribe(value => {\n let number = this.number.getRawValue();\n zip(\n this.cdn.findCountryFromVIESCode(number),\n this.cdn.findCountryFromCode(value),\n ).subscribe(([countryFromVies, countryFromCode]) => {\n if (countryFromVies) {\n number = number.replace(\n countryFromVies.pattern.substring(0, 2),\n '',\n );\n }\n if (countryFromCode) {\n this.getCountry.next(countryFromCode);\n number = countryFromCode.pattern.substring(0, 2) + number;\n //this.formatEnterpriseNumber(countryFromCode); /// done twice ?\n }\n this.number.setValue(number, { emitEvent: false });\n this.formatEnterpriseNumber(countryFromCode);\n setTimeout(() => {\n this.numberInput.nativeElement.focus();\n }, 100);\n });\n });\n }\n\n clearValidators() {\n let required = false;\n if (this.number.hasValidator(Validators.required)) {\n required = true;\n }\n this.number.clearValidators();\n if (required) {\n this.number.addValidators(Validators.required);\n }\n }\n\n formatEnterpriseNumber(country: OnemrvaMaterialCountry | undefined) {\n this.clearValidators();\n if (this.countryCode.getRawValue() !== '' && country) {\n this.enterpriseNumber.addValidators(\n Validators.pattern(new RegExp(country.pattern)),\n );\n }\n }\n\n ngOnDestroy() {\n this.destroyNotifier$.next();\n this.destroyNotifier$.complete();\n }\n\n handleClick(e: any) {\n e.stopPropagation();\n }\n\n errors() {\n for (const k in this.number.errors) {\n if (k === 'required') {\n return 'input.vies.required';\n } else {\n return 'input.vies.invalid';\n }\n }\n return 'input.vies.unknown.error';\n }\n}\n","<ng-container>\n <mat-form-field class=\"onemrva-input-enterprise-number\">\n <mat-label>{{ label }}</mat-label>\n <input\n (click)=\"handleClick($event)\"\n type=\"text\"\n matInput\n #numberInput\n placeholder=\"\"\n [formControl]=\"enterpriseNumber\"\n class=\"onemrva-text-enterprise-number\"\n />\n <mat-select\n matTextPrefix\n class=\"onemrva-phone-number-select\"\n [formControl]=\"countryCode\"\n >\n <mat-select-trigger>\n <flag-icon [countryCode]=\"countryCode.getRawValue()\" />\n </mat-select-trigger>\n\n <mat-option>\n <mat-select-search\n [formControl]=\"filterCtrl\"\n [ariaLabel]=\"searchAriaLabel\"\n [noEntriesFoundLabel]=\"noEntriesFoundLabel\"\n [placeholderLabel]=\"placeholderLabel\"\n ></mat-select-search>\n </mat-option>\n\n @for (country of filteredCountries$ | async; track country.code) {\n <mat-option [value]=\"country.code\">\n <flag-icon [countryCode]=\"country.code\" />&nbsp;&nbsp;{{\n country.name\n }}\n </mat-option>\n }\n </mat-select>\n @if (hint !== '') {\n <mat-hint>{{ hint }}</mat-hint>\n }\n @if (number.invalid) {\n <mat-error>{{ errors() | translate }}</mat-error>\n }\n </mat-form-field>\n</ng-container>\n","/*\n * Public API Surface of mat-bank-account-input\n */\n\nexport * from './src/onemrva-mat-input-enterprise-number.component';\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n inject,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n FormBuilder,\n FormControl,\n FormGroup,\n NgControl,\n ReactiveFormsModule,\n ValidationErrors,\n Validators,\n} from '@angular/forms';\nimport {\n MatFormFieldControl,\n MatFormFieldModule,\n} from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\nimport { TranslateModule } from '@ngx-translate/core';\nimport {\n combineLatestWith,\n distinctUntilChanged,\n Observable,\n of,\n pairwise,\n startWith,\n Subject,\n takeUntil,\n} from 'rxjs';\nimport { MatSelectSearchModule } from '@onemrvapublic/design-system/mat-select-search';\nimport {\n IBAN_SUPPORTED_COUNTRIES,\n SEPA_ONLY_SUPPORTED_COUNTRIES,\n} from '@onemrvapublic/design-system/shared';\nimport { map } from 'rxjs/operators';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n countrySpecs,\n extractIBAN,\n friendlyFormatIBAN,\n isValidIBAN,\n} from 'ibantools';\nimport { FocusMonitor } from '@angular/cdk/a11y';\nimport { MatDivider } from '@angular/material/divider';\n\n@Component({\n selector: 'onemrva-mat-input-iban',\n styleUrls: ['onemrva-mat-input-iban.component.scss'],\n templateUrl: 'onemrva-mat-input-iban.component.html',\n standalone: true,\n imports: [\n CommonModule,\n MatInputModule,\n MatFormFieldModule,\n MatSelectModule,\n MatSelectSearchModule,\n ReactiveFormsModule,\n TranslateModule,\n MatDivider,\n ],\n encapsulation: ViewEncapsulation.None,\n providers: [\n { provide: MatFormFieldControl, useExisting: OnemrvaMatInputIbanComponent },\n ],\n})\nexport class OnemrvaMatInputIbanComponent\n implements\n ControlValueAccessor,\n MatFormFieldControl<string>,\n OnInit,\n OnDestroy\n{\n @ViewChild('countryCode') countryCode!: HTMLInputElement;\n @ViewChild('bban') bban!: HTMLInputElement;\n\n static nextId = 0;\n\n @Input() noEntriesFoundLabel = 'Not found';\n @Input() placeholderLabel = 'Search';\n @Input() searchAriaLabel = 'Search';\n @Input() label = 'IBAN';\n @Input() prioritizedCountries: string[] = [];\n @Input() onlySEPA = false;\n\n @Output() getCountry = new EventEmitter<any>();\n\n filteredCountries$: Observable<string[]> = of([]);\n\n public filterCtrl: FormControl<string | null> = new FormControl<string>('');\n\n destroyNotifier$ = new Subject<void>();\n placeholderIban = '';\n\n controlType = 'bank-account-input';\n stateChanges = new Subject<void>();\n focused = false;\n id = `bank-account-input-${OnemrvaMatInputIbanComponent.nextId++}`;\n touched = false;\n\n parts: FormGroup<{\n countryCode: FormControl<string | null>;\n bban: FormControl<string | null>;\n }>;\n\n get bbanField() {\n return this.parts.get('bban') as FormControl;\n }\n get countryCodeField() {\n return this.parts.get('countryCode') as FormControl;\n }\n\n private readonly focusMonitor = inject(FocusMonitor);\n public readonly elementRef = inject(ElementRef<HTMLElement>);\n private readonly cd = inject(ChangeDetectorRef);\n private readonly formBuilder = inject(FormBuilder);\n public readonly ngControl = inject(NgControl, { optional: true });\n\n constructor() {\n if (this.ngControl) {\n this.ngControl.valueAccessor = this; // ✅ Only assign if ngControl exists\n }\n\n this.parts = this.formBuilder.group({\n countryCode: ['', [Validators.maxLength(2)]],\n bban: ['', []],\n });\n }\n\n errors(): ValidationErrors | null {\n return this.parts.errors;\n }\n\n onChange = (_: any) => {\n //\n };\n onTouched = () => {\n //\n };\n\n get errorState(): boolean {\n const control = this.ngControl?.control;\n return !!(\n control &&\n control.invalid &&\n (control.dirty || !control.untouched)\n );\n }\n\n get shouldLabelFloat() {\n return this.focused || !this.empty;\n }\n\n get empty() {\n const {\n value: { countryCode, bban },\n } = this.parts;\n\n return !countryCode && !bban;\n }\n\n @Input()\n get value(): string {\n const {\n value: { countryCode, bban },\n } = this.parts;\n return `${countryCode ?? ''}${bban ?? ''}`;\n }\n\n set value(iban: string | null) {\n const { countryCode } = extractIBAN(iban || '');\n\n const _iban = iban?.replace(countryCode || '', '');\n\n this.parts.setValue({\n countryCode: countryCode || null,\n bban: _iban || null,\n });\n this.stateChanges.next();\n }\n\n @Input()\n readonly = false;\n\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n\n set disabled(value: BooleanInput) {\n this._disabled = coerceBooleanProperty(value);\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n this._disabled ? this.parts.disable() : this.parts.enable();\n this.stateChanges.next();\n }\n\n private _disabled = false;\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n this.stateChanges.next();\n }\n\n @Input()\n get placeholder(): string {\n return this._placeholder;\n }\n\n set placeholder(value: string) {\n this._placeholder = value;\n this.stateChanges.next();\n }\n\n private _placeholder = '';\n\n @Input()\n get required(): boolean {\n return this._required;\n }\n\n set required(value: BooleanInput) {\n this._required = coerceBooleanProperty(value);\n this.stateChanges.next();\n }\n private _required = false;\n\n updateNumber(number: string) {\n let shownValue = number.replace(/[^a-zA-Z0-9]/g, '');\n // BE45063712751789\n const fullNumber = this.countryCodeField.value + number;\n if (isValidIBAN(fullNumber)) {\n const formattedValue = friendlyFormatIBAN(fullNumber);\n if (formattedValue !== null) {\n shownValue = formattedValue.substring(2);\n }\n }\n this.bbanField.patchValue(shownValue, { emitEvent: false });\n }\n\n ngOnInit(): void {\n this.filteredCountries$ = this.getCountryCodes(this.prioritizedCountries);\n\n this.bbanField.valueChanges\n .pipe(\n startWith(this.bbanField.getRawValue()),\n takeUntil(this.destroyNotifier$),\n )\n .subscribe(number => {\n if (number !== null && number !== '') {\n if (this.firstTwoCharsAreLetters(number)) {\n const code = number?.substring(0, 2).toUpperCase();\n const country = IBAN_SUPPORTED_COUNTRIES.find(\n country => country == code,\n );\n this.countryCodeField.setValue(country);\n number = number.substring(2);\n }\n this.updateNumber(number);\n }\n });\n\n this.countryCodeField.valueChanges\n .pipe(\n startWith(''),\n pairwise(),\n distinctUntilChanged(),\n takeUntil(this.destroyNotifier$),\n )\n .subscribe(([_prevIban, countryCode]) => {\n this.placeholderIban = '';\n this.touched = true;\n if (!countryCode || countryCode.length < 2) {\n return;\n }\n\n if (this.firstTwoCharsAreLetters(countryCode)) {\n const r: number | undefined = countrySpecs[countryCode]?.chars;\n if (r !== undefined)\n this.placeholderIban = this.generatePlaceholder(r);\n }\n if (this.bbanField.value !== null) {\n this.updateNumber(this.bbanField.value);\n }\n });\n }\n\n handleClick(e: any) {\n e.stopPropagation();\n }\n\n ngOnDestroy() {\n this.destroyNotifier$.next();\n this.destroyNotifier$.complete();\n }\n\n getCountryCodes(prioritizedCountries: string[]) {\n const countryList = this.onlySEPA\n ? SEPA_ONLY_SUPPORTED_COUNTRIES\n : IBAN_SUPPORTED_COUNTRIES;\n return this.filterCtrl.valueChanges.pipe(\n startWith(''),\n combineLatestWith(of(countryList)),\n map(([filterVal, countryCodes]: any) => {\n return countryCodes\n .filter(\n (code: string) =>\n !filterVal ||\n code.toLowerCase().includes(filterVal.toLowerCase()),\n )\n .map((code: string) =>\n // Prefix prioritized countries with a space to sort them first\n !filterVal && prioritizedCountries.includes(code)\n ? ` ${code}`\n : code,\n )\n .sort() // Default string sort will prioritize prefixed spaces\n .map((code: string) => code.trim()); // Remove the added prefix\n }),\n );\n }\n\n isLastPrioritized(i: number) {\n return !this.filterCtrl.value && i === this.prioritizedCountries.length - 1;\n }\n\n autoFocusNext(\n control: AbstractControl,\n nextElement?: HTMLInputElement,\n ): void {\n if (!control.errors && nextElement) {\n this.focusMonitor.focusVia(nextElement, 'program');\n }\n }\n\n onContainerClick(event: MouseEvent): void {\n if ((event.target as Element).tagName.toLowerCase() != 'input') {\n this.elementRef.nativeElement.querySelector('input')?.focus();\n }\n }\n\n setDescribedByIds(ids: string[]) {\n const controlElement =\n this.elementRef.nativeElement.querySelector('.iban-fields')!;\n controlElement.setAttribute('aria-describedby', ids.join(' '));\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n writeValue(iban: string | null): void {\n this.value = iban;\n }\n\n _handleInput(control: AbstractControl, nextElement?: HTMLInputElement): void {\n this.autoFocusNext(control, nextElement);\n this.onChange(this.value);\n }\n\n firstTwoCharsAreLetters(input: string): boolean {\n const regex = /^[a-zA-Z]{2}/;\n return regex.test(input);\n }\n\n generatePlaceholder(chars: number): string {\n let placeholder = '';\n\n for (let i = 0; i < chars; i++) {\n placeholder += '0';\n }\n const ph = friendlyFormatIBAN(placeholder)?.substring(2);\n if (ph) return ph;\n\n return placeholder.substring(2);\n }\n\n onKeyup(event: KeyboardEvent): void {\n // Clear country when backspace on empty bban\n if (this.bbanField.value === '' && event.key === 'Backspace') {\n this.countryCodeField.setValue(null);\n this.parts.clearValidators();\n }\n }\n}\n","<ng-container [formGroup]=\"parts\">\n <!-- <mat-form-field class=\"onemrva-input-iban\">-->\n <!-- <mat-label>{{ label }}</mat-label>-->\n <div class=\"iban-fields\">\n <div class=\"iban-prefix\">\n <mat-select\n class=\"onemrva-iban-select\"\n formControlName=\"countryCode\"\n [attr.aria-label]=\"'Country' | translate\"\n (selectionChange)=\"_handleInput(parts.controls.countryCode)\"\n #countryCode\n >\n <mat-option>\n <mat-select-search\n [formControl]=\"filterCtrl\"\n [ariaLabel]=\"searchAriaLabel\"\n [noEntriesFoundLabel]=\"noEntriesFoundLabel\"\n [placeholderLabel]=\"placeholderLabel\"\n ></mat-select-search>\n </mat-option>\n\n @for (country of filteredCountries$ | async; track $index) {\n <ng-container>\n <mat-option [value]=\"country\">\n <span>{{ country }}</span>\n </mat-option>\n @if (isLastPrioritized($index)) {\n <mat-divider></mat-divider>\n }\n </ng-container>\n }\n </mat-select>\n </div>\n <input\n [attr.aria-label]=\"label\"\n (click)=\"handleClick($event)\"\n matInput\n [placeholder]=\"placeholderIban\"\n formControlName=\"bban\"\n class=\"onemrva-text-number\"\n [readOnly]=\"readonly\"\n (input)=\"_handleInput(parts.controls.bban)\"\n (keyup)=\"onKeyup($event)\"\n #bban\n />\n </div>\n</ng-container>\n","/*\n * Public API Surface of mat-bank-account-input\n */\n\nexport * from './src/onemrva-mat-input-iban.component';\n","import { Directive, HostListener } from '@angular/core';\n\n@Directive({\n selector: '[phoneNumber]',\n standalone: true,\n})\nexport class PhoneNumberDirective {\n @HostListener('keydown', ['$event']) onKeyDown(event: any) {\n const e = event as KeyboardEvent;\n\n const allowedKey = [\n '0',\n '1',\n '2',\n '3',\n '4',\n '5',\n '6',\n '7',\n '8',\n '9',\n ' ',\n 'Backspace',\n 'Delete',\n 'Tab',\n '+',\n '-',\n 'Enter',\n 'ArrowLeft',\n 'ArrowRight',\n 'ArrowUp',\n 'ArrowDown',\n 'Home',\n 'End',\n ];\n\n if (allowedKey.indexOf(e.key) >= 0) return;\n\n const allowedCtrlShortcuts = ['a', 'c', 'x', 'v'];\n if (e.ctrlKey && allowedCtrlShortcuts.indexOf(e.key) >= 0) return;\n\n e.preventDefault();\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n ElementRef,\n EventEmitter,\n inject,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport {\n AbstractControl,\n FormControl,\n ReactiveFormsModule,\n ValidationErrors,\n ValidatorFn,\n Validators,\n} from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\nimport { TranslateModule } from '@ngx-translate/core';\nimport {\n Observable,\n Subject,\n map,\n startWith,\n debounceTime,\n takeUntil,\n combineLatestWith,\n zip,\n} from 'rxjs';\nimport { MatSelectSearchModule } from '@onemrvapublic/design-system/mat-select-search';\nimport { PhoneNumberDirective } from './phone-number.directive';\nimport parsePhoneNumber from 'libphonenumber-js';\nimport { FlagIconComponent } from '@onemrvapublic/design-system/flag-icon';\nimport {\n OnemRvaCDNCountryService,\n OnemrvaMaterialCountry,\n} from '@onemrvapublic/design-system/shared';\n\n@Component({\n selector: 'onemrva-mat-input-phone',\n styleUrls: ['onemrva-mat-input-phone.component.scss'],\n templateUrl: 'onemrva-mat-input-phone.component.html',\n standalone: true,\n imports: [\n CommonModule,\n MatInputModule,\n MatFormFieldModule,\n MatSelectModule,\n MatSelectSearchModule,\n ReactiveFormsModule,\n TranslateModule,\n PhoneNumberDirective,\n FlagIconComponent,\n ],\n encapsulation: ViewEncapsulation.None,\n})\nexport class OnemrvaMatInputPhoneComponent implements OnInit, OnDestroy {\n @Input()\n readonly = false;\n\n @Input() phoneNumber!: FormControl;\n @Input() label = 'Phone number';\n @Input() noEntriesFoundLabel = 'Not found';\n @Input() placeholder = '+32 475 12 34 56';\n @Input() placeholderLabel = 'Search';\n @Input() defaultPrefix = '+32';\n @Input() searchAriaLabel = '';\n @Input() hint = '';\n @Output() getCountry = new EventEmitter<any>();\n @ViewChild('numberInput') numberInput!: ElementRef;\n\n countryCode: FormControl = new FormControl('');\n\n public filterCtrl: FormControl<string | null> = new FormControl<string>('');\n\n destroyNotifier$ = new Subject<void>();\n\n private readonly cdn = inject(OnemRvaCDNCountryService);\n public countries$: Observable<OnemrvaMaterialCountry[]> =\n this.cdn.getCountries();\n public filteredCountries$: Observable<OnemrvaMaterialCountry[]>;\n\n constructor() {\n this.filteredCountries$ = this.filterCtrl.valueChanges.pipe(\n debounceTime(400),\n startWith<string | null>(''), // Explicitly define type\n combineLatestWith(this.countries$), // Ensure correct tuple structure\n map(([search, countries]: [string | null, OnemrvaMaterialCountry[]]) => {\n // Define expected tuple\n return countries.filter((country: OnemrvaMaterialCountry) => {\n if (!search || search.trim() === '') return true; // Return all when search is empty\n return country.name?.toLowerCase().includes(search.toLowerCase());\n });\n }),\n );\n }\n\n get number(): FormControl {\n return this.phoneNumber as FormControl;\n }\n\n ngOnInit(): void {\n this.number.valueChanges\n .pipe(\n startWith(this.number.getRawValue()),\n takeUntil(this.destroyNotifier$),\n )\n .subscribe(number => {\n if (number !== '') {\n if (number.substring(0, 1) !== '+')\n this.countryCode.setValue('', { emitEvent: false });\n if (number === '0') {\n this.cdn\n .findCountryFromPrefix(this.defaultPrefix)\n .pipe(takeUntil(this.destroyNotifier$))\n .subscribe(country => {\n if (country) {\n //this.getCountry.next(country);\n this.number.setValue(this.defaultPrefix, {\n emitEvent: false,\n });\n this.countryCode.setValue(country.code, { emitEvent: false });\n } else {\n this.countryCode.setValue('');\n }\n this.formatPhoneNumber();\n });\n } else {\n this.cdn\n .findCountryFromPrefix(number)\n .pipe(takeUntil(this.destroyNotifier$))\n .subscribe(country => {\n if (country) {\n //this.getCountry.next(country);\n this.countryCode.setValue(country.code);\n } else {\n this.countryCode.setValue('');\n }\n this.formatPhoneNumber();\n });\n }\n }\n });\n\n this.countryCode.valueChanges\n .pipe(takeUntil(this.destroyNotifier$))\n .subscribe(value => {\n let number = this.number.getRawValue();\n zip(\n this.cdn.findCountryFromPrefix(number),\n this.cdn.findCountryFromCode(value),\n ).subscribe(([countryFromVies, countryFromCode]) => {\n // Perform your action here using countryFromVies and countryFromCode\n if (countryFromVies) {\n number = number.replace(countryFromVies.dial_code, '');\n }\n if (countryFromCode) {\n this.getCountry.next(countryFromCode);\n if (number.substring(0, 1) === '+') {\n number = number.replace('+', '');\n }\n number = countryFromCode.dial_code + number;\n this.number.setValue(number, { emitEvent: false });\n this.formatPhoneNumber();\n }\n setTimeout(() => {\n this.numberInput.nativeElement.focus();\n }, 200);\n });\n });\n }\n\n handleClick(e: any) {\n e.stopPropagation();\n }\n\n private clearValidators() {\n let required = false;\n if (this.number.hasValidator(Validators.required)) {\n required = true;\n }\n this.number.clearValidators();\n if (required) {\n this.number.addValidators(Validators.required);\n }\n }\n\n private formatPhoneNumber() {\n this.clearValidators();\n if (this.countryCode.getRawValue() !== '') {\n this.number.addValidators([\n this.phoneNumberValidator(this.countryCode.getRawValue()),\n ]);\n }\n try {\n const parsedPhone = parsePhoneNumber(this.number.getRawValue());\n const code = parsedPhone?.country;\n if (code) {\n this.countryCode.setValue(code, { emitEvent: false });\n this.clearValidators();\n this.number.addValidators([this.phoneNumberValidator(code)]);\n this.number.setValue(parsedPhone?.format('INTERNATIONAL'), {\n emitEvent: false,\n });\n } else {\n this.number.addValidators([genericValidator('input.phone.invalid')]);\n }\n } catch (e: any) {\n this.number.addValidators([genericValidator(e.message)]);\n }\n }\n\n ngOnDestroy() {\n this.destroyNotifier$.next();\n this.destroyNotifier$.complete();\n }\n\n errors() {\n for (const k in this.number.errors) {\n if (k === 'required') {\n return 'input.phone.required';\n } else {\n return 'input.phone.invalid';\n }\n }\n return 'input.phone.unknown.error';\n }\n\n phoneNumberValidator(code: string): ValidatorFn {\n return (_control: AbstractControl): ValidationErrors | null => {\n let number: string = code + _control.getRawValue();\n\n if (number === '') {\n return null;\n }\n\n try {\n number = number.replace(code, '');\n const parsedNumber = parsePhoneNumber(number);\n\n if (parsedNumber?.isValid()) {\n return null;\n }\n } catch (e: any) {\n console.warn(e.message);\n return { phoneNumber: { value: 'input.phone.invalid' } };\n }\n return { phoneNumber: { value: 'input.phone.invalid' } };\n };\n }\n}\n\nfunction genericValidator(message: string): ValidatorFn {\n return (_control: AbstractControl): ValidationErrors | null => {\n return { phoneNumber: { value: message } };\n };\n}\n","<ng-container>\n <mat-form-field class=\"onemrva-input-phone-number\">\n <mat-label>{{ label }}</mat-label>\n\n <input\n (click)=\"handleClick($event)\"\n type=\"tel\"\n matInput\n phoneNumber\n #numberInput\n [placeholder]=\"placeholder\"\n [formControl]=\"phoneNumber\"\n class=\"onemrva-text-number\"\n [readOnly]=\"readonly\"\n />\n <mat-select\n matTextPrefix\n class=\"onemrva-phone-number-select\"\n [formControl]=\"countryCode\"\n >\n <mat-select-trigger>\n <flag-icon [countryCode]=\"countryCode.getRawValue()\" />\n </mat-select-trigger>\n <mat-option>\n <mat-select-search\n [formControl]=\"filterCtrl\"\n [ariaLabel]=\"searchAriaLabel\"\n [noEntriesFoundLabel]=\"noEntriesFoundLabel\"\n [placeholderLabel]=\"placeholderLabel\"\n ></mat-select-search>\n </mat-option>\n @for (country of filteredCountries$ | async; track country.code) {\n <mat-option [value]=\"country.code\">\n <flag-icon [countryCode]=\"country.code\" />\n &nbsp;&nbsp;&nbsp;\n {{ country.name }}\n &nbsp;&nbsp;&nbsp;\n <span class=\"dialcode\">\n {{ country.dial_code }}\n </span>\n </mat-option>\n }\n </mat-select>\n @if (hint !== '') {\n <mat-hint>{{ hint }}</mat-hint>\n }\n @if (number.invalid) {\n <mat-error>{{ errors() | translate }}</mat-error>\n }\n </mat-form-field>\n</ng-container>\n","/*\n * Public API Surface of mat-bank-account-input\n */\n\nexport * from './src/onemrva-mat-input-phone.component';\nexport * from './src/phone-number.directive';\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n HostBinding,\n Input,\n ViewChild,\n} from '@angular/core';\nimport { OnemrvaMatColor } from '@onemrvapublic/design-system/utils';\n\nlet NEXT_ID = 0;\n\n@Component({\n selector: 'onemrva-mat-message-box',\n templateUrl: 'onemrva-mat-message-box.component.html',\n styleUrl: 'onemrva-mat-message-box.component.scss',\n standalone: true,\n})\nexport class OnemrvaMatMessageBoxComponent implements AfterViewInit {\n @Input()\n public label: false | string = false;\n\n @Input()\n public messageCode = '';\n\n @ViewChild('mbcontent')\n public mbcontent!: ElementRef;\n /**\n * Returns the `aria-label` attribute of the element.\n *\n * @example\n * ```typescript\n * let elementLabel = this.<element>.ariaLabel;\n * ```\n *\n */\n @HostBinding('attr.aria-label')\n public ariaLabel = 'message-box';\n\n @HostBinding('class.show-icon')\n public showIcon = true;\n\n /**\n * Returns the `role` attribute of the element.\n *\n * @example\n * ```typescript\n * let elementRole = this.<element>.role;\n * ```\n */\n @HostBinding('attr.role')\n public role = 'alert';\n\n /**\n * Host `class.onemrva-mat-message-box` binding.\n *\n * @hidden\n * @internal\n */\n @HostBinding('class.onemrva-mat-message-box')\n public cssClass = 'onemrva-mat-message-box';\n\n /**\n * Sets the `id` of the element. If not set, the first component instance will have `id` = `\"onemrva-mat-*-0\"`.\n *\n * @example\n * ```html\n * <onemrva-mat-* id=\"my-first-*\"></onemrva-mat-*>\n * ```\n */\n @HostBinding('attr.id')\n @Input()\n public id = `onemrva-mat-message-box-${NEXT_ID++}`;\n\n /**\n * Sets the `data-cy` of the element. If not set, the first component instance will have `data-cy` = `\"onemrva-mat-*-0\"`.\n *\n * @example\n * ```html\n * <onemrva-mat-* id=\"my-first-*\"></onemrva-mat-*>\n * ```\n */\n @HostBinding('attr.data-cy')\n @Input()\n public dataCy = `onemrva-mat-message-box-${NEXT_ID++}`;\n\n /**\n * @hidden\n * @internal\n */\n private _color: OnemrvaMatColor = OnemrvaMatColor.NONE;\n\n /**\n * Returns the color of the element.\n *\n * @example\n * ```typescript\n * let color = this.<element>.color;\n * ```\n */\n @Input()\n public get color(): OnemrvaMatColor {\n return this._color;\n }\n\n /**\n * Sets the size of the element.\n * By default, the size is `\"small\"`. It can be set to `\"medium\"` or `\"large\"`.\n *\n * @example\n * ```html\n * <onemrva-mat-* size=\"large\"></onemrva-mat-*>\n * ```\n */\n public set color(value: OnemrvaMatColor) {\n switch (value) {\n case OnemrvaMatColor.SUCCESS:\n case OnemrvaMatColor.WARN:\n case OnemrvaMatColor.NONE:\n case OnemrvaMatColor.INFO:\n case OnemrvaMatColor.GRAYSCALE:\n case OnemrvaMatColor.PRIMARY:\n case OnemrvaMatColor.NEUTRAL:\n case OnemrvaMatColor.ERROR:\n this._color = value;\n break;\n default:\n this._color = OnemrvaMatColor.INFO;\n }\n }\n\n /** @hidden @internal */\n @HostBinding('class.mat-error')\n public get _isError(): boolean {\n return this.color === OnemrvaMatColor.ERROR;\n }\n /** @hidden @internal */\n @HostBinding('class.mat-warn')\n public get _isWarn(): boolean {\n return this.color === OnemrvaMatColor.WARN;\n }\n /** @hidden @internal */\n @HostBinding('class.mat-success')\n public get _isSuccess(): boolean {\n return this.color === OnemrvaMatColor.SUCCESS;\n }\n /** @hidden @internal */\n @HostBinding('class.mat-primary')\n public get _isPrimary(): boolean {\n return this.color === OnemrvaMatColor.PRIMARY;\n }\n /** @hidden @internal */\n @HostBinding('class.mat-neutral')\n public get isGrayscale(): boolean {\n return (\n this.color === OnemrvaMatColor.GRAYSCALE ||\n this.color === OnemrvaMatColor.NONE\n );\n }\n /** @hidden @internal */\n @HostBinding('class.mat-info')\n public get _isInfo(): boolean {\n return (\n this.color !== OnemrvaMatColor.ERROR &&\n this.color !== OnemrvaMatColor.WARN &&\n this.color !== OnemrvaMatColor.NONE &&\n this.color !== OnemrvaMatColor.ACCENT &&\n this.color !== OnemrvaMatColor.GRAYSCALE &&\n this.color !== OnemrvaMatColor.PRIMARY &&\n this.color !== OnemrvaMatColor.SUCCESS\n );\n }\n\n ngAfterViewInit(): void {\n if (this.messageCode !== '') {\n console.warn(\n 'messageCode input has been deprecated in message-box component, please review documentation to fix this!',\n );\n this.mbcontent.nativeElement.insertAdjacentHTML(\n 'beforeend',\n this.messageCode,\n );\n }\n }\n}\n","<div #mbcontent>\n <ng-content></ng-content>\n</div>\n","import { NgModule } from '@angular/core';\nimport { OnemrvaMatMessageBoxComponent } from './onemrva-mat-message-box.component';\n\n@NgModule({\n declarations: [],\n imports: [OnemrvaMatMessageBoxComponent],\n exports: [],\n})\nexport class OnemrvaMatMessageBoxModule {}\n","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","import {\n BreakpointObserver,\n Breakpoints,\n BreakpointState,\n} from '@angular/cdk/layout';\nimport { CommonModule } from '@angular/common';\nimport {\n Component,\n EventEmitter,\n HostBinding,\n inject,\n Input,\n OnDestroy,\n Output,\n} from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { Subject, takeUntil } from 'rxjs';\n\n@Component({\n selector: 'onemrva-mat-notification',\n templateUrl: 'onemrva-mat-notification.component.html',\n styleUrl: 'onemrva-mat-notification.component.scss',\n standalone: true,\n imports: [CommonModule, TranslateModule, MatIconModule],\n})\nexport class OnemrvaMatNotificationComponent implements OnDestroy {\n @Input() message = '';\n @Input() closable = true;\n\n _isOpen = true;\n\n @Output()\n notificationClose = new EventEmitter<void>();\n\n /** @hidden @internal */\n @HostBinding('class.collapse-notification')\n public get _closed(): boolean {\n return !this._isOpen;\n }\n\n @HostBinding('attr.id')\n @Input()\n public id = `onemrva-mat-notification`;\n\n @HostBinding('attr.data-cy')\n @Input()\n dataCy = 'onemrva-mat-notification';\n\n /**\n * Returns the `aria-label` attribute of the component.\n *\n * @example\n * ```typescript\n * let ariaLabel = this.avatar.ariaLabel;\n * ```\n *\n */\n @HostBinding('attr.aria-live')\n public ariaLive = 'assertive';\n\n /**\n * Returns the `role` attribute of the component.\n *\n * @example\n * ```typescript\n * let avatarRole = this.avatar.role;\n * ```\n */\n @HostBinding('attr.role')\n public role = 'alert';\n\n private destroyNotifier$ = new Subject<void>();\n isSmall = false;\n public breakpointObserver = inject(BreakpointObserver);\n\n constructor() {\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.isSmall = false;\n }\n });\n }\n\n ngOnDestroy(): void {\n this.destroyNotifier$.next();\n this.destroyNotifier$.complete();\n }\n\n closeNotification() {\n this._isOpen = false;\n this.notificationClose.emit();\n }\n}\n","<div class=\"onemrva-mat-notification container\">\n <div class=\"onemrva-mat-notification-content show-icon\">\n @if (message !== '') {\n {{ message | translate }}\n }\n <ng-content></ng-content>\n @if (closable || isSmall) {\n <mat-icon\n class=\"close-notification float-right clickable mr\"\n (click)=\"closeNotification()\"\n >\n close\n </mat-icon>\n }\n </div>\n</div>\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n effect,\n HostBinding,\n inject,\n Input,\n OnInit,\n QueryList,\n ViewChild,\n} from '@angular/core';\nimport { RouterLink, RouterLinkActive } from '@angular/router';\nimport { MatIcon } from '@angular/material/icon';\nimport { MatExpansionPanel } from '@angular/material/expansion';\nimport { NgClass } from '@angular/common';\nimport { NavItem } from './onemrva-nav-item';\nimport { TranslatePipe } from '@ngx-translate/core';\n\n@Component({\n selector: 'onemrva-mat-navigation-item',\n templateUrl: 'onemrva-mat-navigation-item.component.html',\n styleUrl: 'onemrva-mat-navigation-item.component.scss',\n imports: [\n MatIcon,\n RouterLinkActive,\n RouterLink,\n MatExpansionPanel,\n NgClass,\n TranslatePipe,\n ],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class OnemrvaMatNavigationItemComponent implements AfterViewInit {\n @Input()\n public routerLink: string | undefined;\n @Input()\n public routerLinkActiveOptions?: any;\n @Input()\n public dataCy?: string;\n @Input()\n public baseRouteForActiveMenu?: string;\n @Input()\n public label = '';\n @Input()\n public icon?: string;\n @Input() level = 0;\n @Input() highlighted: boolean | undefined;\n @Input() opened: boolean | undefined;\n @Input() children: NavItem[] | undefined;\n @Input() customNgClass: any;\n @Input() translate = true;\n\n @ViewChild(MatExpansionPanel) matExpansionPanel?: MatExpansionPanel;\n\n isExpanded = false;\n\n @HostBinding('class.highlighted')\n get isHighlighted() {\n return this.highlighted;\n }\n @HostBinding('class.highlighted2')\n get isHighlighted2() {\n return !this.highlighted && this.isExpanded;\n }\n\n get indentArray(): number[] {\n return Array(this.level).fill(0);\n }\n\n cd = inject(ChangeDetectorRef);\n\n ngAfterViewInit(): void {\n this.matExpansionPanel?.afterCollapse.subscribe(() => {\n this.highlighted = false;\n this.isExpanded = false;\n this.cd.markForCheck();\n });\n this.matExpansionPanel?.afterExpand.subscribe(() => {\n this.isExpanded = true;\n this.cd.markForCheck();\n });\n }\n}\n","@if (routerLink) {\n <button\n [routerLink]=\"routerLink\"\n [attr.data-cy]=\"dataCy\"\n [routerLinkActiveOptions]=\"{ exact: true }\"\n routerLinkActive=\"active\"\n class=\"mobile-menu-item\"\n >\n @for (indent of indentArray; track $index) {\n <span class=\"indent-spacer\"></span>\n }\n @if (icon) {\n <mat-icon>{{ icon }}</mat-icon>\n }\n @if (translate && label.trim() !== '') {\n <span [innerHTML]=\"label | translate\"></span>\n } @else {\n <span [innerHTML]=\"label\"></span>\n }\n </button>\n} @else {\n <button\n [ngClass]=\"{ 'mobile-menu-item': true, highlighted: highlighted === true }\"\n [attr.data-cy]=\"dataCy\"\n (click)=\"subMenu.toggle()\"\n >\n @for (indent of indentArray; track $index) {\n <span class=\"indent-spacer\"></span>\n }\n\n @if (icon) {\n <mat-icon>{{ icon }}</mat-icon>\n }\n\n @if (translate && label.trim() !== '') {\n <span [innerHTML]=\"label | translate\"></span>\n } @else {\n <span [innerHTML]=\"label\"></span>\n }\n\n <mat-icon [ngClass]=\"{ end: true, opened: subMenu.expanded }\"\n >arrow_drop_down</mat-icon\n >\n </button>\n <mat-expansion-panel #subMenu [expanded]=\"opened\">\n <ng-content></ng-content>\n </mat-expansion-panel>\n}\n","import { Component, input } from '@angular/core';\nimport { OnemrvaMatNavigationItemComponent } from '../mat-navigation-item/onemrva-mat-navigation-item.component';\nimport { NavItem } from '../mat-navigation-item/onemrva-nav-item';\n\n@Component({\n selector: 'onemrva-mat-navigation-tree',\n templateUrl: 'onemrva-mat-navigation-tree.component.html',\n styleUrl: 'onemrva-mat-navigation-tree.component.scss',\n imports: [OnemrvaMatNavigationItemComponent],\n standalone: true,\n})\nexport class OnemrvaMatNavigationTreeComponent {\n items = input<NavItem[]>([]);\n level = input<number>(0);\n translate = input<boolean>(true);\n}\n","@for (item of items(); track item) {\n <onemrva-mat-navigation-item\n [label]=\"item.label\"\n [icon]=\"item.icon\"\n [routerLink]=\"item.routerLink\"\n [level]=\"level()\"\n [dataCy]=\"item.dataCy\"\n [highlighted]=\"item.highlighted\"\n [children]=\"item.children\"\n [opened]=\"item.opened\"\n [translate]=\"translate()\"\n >\n @if (item.children?.length) {\n <onemrva-mat-navigation-tree\n [items]=\"item.children ?? []\"\n [level]=\"level() + 1\"\n ></onemrva-mat-navigation-tree>\n }\n </onemrva-mat-navigation-item>\n}\n","import { Component, inject, input, ViewEncapsulation } from '@angular/core';\nimport { NavItem } from './mat-navigation-item/onemrva-nav-item';\nimport { NavigationEnd, Router } from '@angular/router';\nimport { filter } from 'rxjs/operators';\nimport { OnemrvaMatNavigationTreeComponent } from './mat-navigation-tree/onemrva-mat-navigation-tree.component';\n\n@Component({\n selector: 'onemrva-mat-navigation',\n templateUrl: 'onemrva-mat-navigation.component.html',\n styleUrl: 'onemrva-mat-navigation.component.scss',\n imports: [OnemrvaMatNavigationTreeComponent],\n encapsulation: ViewEncapsulation.None,\n standalone: true,\n})\nexport class OnemrvaMatNavigationComponent {\n items = input<NavItem[]>([]);\n level = input<number>(0);\n translate = input<boolean>(true);\n router: Router = inject(Router);\n\n constructor() {\n this.router.events\n .pipe(filter(event => event instanceof NavigationEnd))\n .subscribe((event: NavigationEnd) => {\n this.updateNavigationState(this.items(), event.urlAfterRedirects);\n });\n }\n\n private updateNavigationState(items: NavItem[], url: string): void {\n // First, reset all states\n this.resetNavigationStates(items);\n\n // Find the active item and build the path to it\n const activePath = this.findActiveItemPath(items, url, []);\n\n if (activePath.length > 0) {\n // Set the highest parent (first item in path - level 0) as highlighted\n if (activePath.length > 0) {\n activePath[0].highlighted = true;\n }\n\n // Set opened to true for all parents to expand the path to the active item\n for (let i = 0; i < activePath.length - 1; i++) {\n activePath[i].opened = true;\n }\n }\n }\n\n private resetNavigationStates(items: NavItem[]): void {\n for (const item of items) {\n item.highlighted = false;\n item.opened = false;\n if (item.children) {\n this.resetNavigationStates(item.children);\n }\n }\n }\n\n private findActiveItemPath(\n items: NavItem[],\n url: string,\n currentPath: NavItem[],\n ): NavItem[] {\n for (const item of items) {\n const newPath = [...currentPath, item];\n\n if (item.routerLink && item.routerLink === url) {\n return newPath;\n }\n\n if (item.children) {\n const childPath = this.findActiveItemPath(item.children, url, newPath);\n if (childPath.length > 0) {\n return childPath;\n }\n }\n }\n\n return [];\n }\n}\n","<onemrva-mat-navigation-tree\n [items]=\"items()\"\n [level]=\"level() + 1\"\n></onemrva-mat-navigation-tree>\n","/*\n * Public API Surface of mat-sticker\n */\n\nexport * from './src/onemrva-mat-navigation.component';\nexport * from './src/mat-navigation-item/onemrva-nav-item';\nexport * from './src/mat-navigation-item/onemrva-mat-navigation-item.component';\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n OnInit,\n OnDestroy,\n inject,\n} from '@angular/core';\nimport { BehaviorSubject, Observable, ReplaySubject } from 'rxjs';\nimport { PageEvent } from '@angular/material/paginator';\nimport { MatFormField } from '@angular/material/form-field';\nimport { MatOption, MatSelect } from '@angular/material/select';\nimport { MatDivider } from '@angular/material/divider';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { NgClass } from '@angular/common';\n\n@Component({\n selector: 'onemrva-mat-paginator',\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './onemrva-mat-paginator.component.html',\n styleUrl: './onemrva-mat-paginator.component.scss',\n imports: [\n MatFormField,\n MatSelect,\n MatOption,\n MatDivider,\n TranslatePipe,\n NgClass,\n ],\n standalone: true,\n})\nexport class OnemrvaMatPaginatorComponent implements OnInit, OnDestroy {\n @Input() type: 'default' | 'complex' = 'default';\n @Input() pageSizeSelector = true; // Specs: DS-74\n @Input() pageSizeOptions: number[] = [10, 20, 50, 100]; // Specs: DS-74\n @Input() pageSizeDefaultOption = 10;\n @Input() recordKey = 'recordsPerPage'; // this record key will be inside key \"paginator\". I.e the default key value that will be generated out of this input is paginator.recordsPerPage\n\n private _isInitialized = false;\n private _initializedStream = new ReplaySubject<void>(1);\n /** Emits when the paginator is initialized. */\n initialized: Observable<void> = this._initializedStream;\n\n maxRecordNumber = 0;\n private _pageIndex = 0;\n private _prevIndex = 0;\n private _length = 0;\n private _pageSize: number = this.pageSizeDefaultOption;\n private _totalNumberOfPages = 0;\n\n public get pageIndex(): number {\n return this._pageIndex;\n }\n\n @Input()\n public set pageIndex(index: number) {\n if (!Number.isInteger(index)) throw new Error('Index is not integer');\n if (index < 0) throw new Error('Negative index');\n if (index > this._totalNumberOfPages) throw new Error('Index out of bound');\n if (this._pageIndex !== index) {\n this._pageIndex = Math.min(index, this._totalNumberOfPages - 1);\n this._emitPageEvent(this._pageIndex);\n this.refreshState();\n }\n }\n\n public resetPageIndex() {\n this._pageIndex = 0;\n }\n\n public get length(): number {\n return this._length;\n }\n\n @Input()\n public set length(length: number) {\n if (this._length !== length) {\n this._length = length;\n this.refreshState();\n }\n }\n\n public get pageSize(): number {\n return this._pageSize;\n }\n\n @Input()\n public set pageSize(pageSize: number) {\n if (!Number.isInteger(pageSize)) throw new Error('pageSize is not integer');\n if (pageSize < 0) throw new Error('pageSize is negative');\n if (this._pageSize !== pageSize) {\n this._pageSize = pageSize;\n this.pageSize$.next(this._pageSize);\n this._pageIndex = 0;\n this._emitPageEvent(this._pageIndex);\n this.refreshState();\n }\n }\n\n get totalNumberOfPages(): number {\n return this._totalNumberOfPages;\n }\n\n @Input() previousKey = 'Previous';\n @Input() nextKey = 'Next';\n\n /** Deprecated **/\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n @Output() onRequestPage = new EventEmitter<number>(); // Pages are displayed starting from 1 but the index starts at 0\n\n /** Event emitted when the paginator changes the page size or page index. */\n @Output() readonly page: EventEmitter<PageEvent> =\n new EventEmitter<PageEvent>();\n\n pageIndex$ = new BehaviorSubject<number>(this._pageIndex);\n pageSize$ = new BehaviorSubject<number>(this.pageSizeDefaultOption);\n\n pages: number[] = [];\n numberOfReachablePages = 5;\n\n private readonly cd = inject(ChangeDetectorRef);\n\n refreshState() {\n this.maxRecordNumber = Math.min(\n this._pageIndex * this._pageSize + this._pageSize,\n this._length,\n );\n\n if (this._pageIndex < 0) throw Error('Negative index');\n this._totalNumberOfPages = Math.ceil(this.length / this.pageSize);\n if (\n this._totalNumberOfPages > 0 &&\n this._pageIndex > this._totalNumberOfPages\n )\n throw Error('Index out of bound');\n if (!Number.isInteger(this._pageIndex)) throw Error('Index is not integer');\n\n if (this._prevIndex != this.pageIndex) {\n this.pageIndex$.next(this._pageIndex);\n this._prevIndex = this.pageIndex;\n }\n\n if (this.type === 'complex') this.refreshComplex();\n else this.refreshDefault();\n\n this.cd.detectChanges();\n }\n\n refreshDefault() {\n if (this._totalNumberOfPages <= this.numberOfReachablePages + 1) {\n // Case 1: not enough pages to display the first \"...\"\n this.pages = [...Array(this._totalNumberOfPages).keys()];\n } else if (this.pageIndex <= this.numberOfReachablePages - 1) {\n // Case 2: page index in first 5 pages\n this.pages = [...Array(this.numberOfReachablePages).keys()];\n } else {\n let firstPageIndex =\n Math.floor(this._pageIndex / this.numberOfReachablePages) *\n this.numberOfReachablePages;\n\n if (\n this._totalNumberOfPages - firstPageIndex <=\n this.numberOfReachablePages + 1\n ) {\n if (this._totalNumberOfPages - firstPageIndex <= 1) {\n // Case 3: in the last block containing only 1 page\n firstPageIndex = firstPageIndex - this.numberOfReachablePages;\n this.pages = [\n ...Array(this._totalNumberOfPages - firstPageIndex).keys(),\n ].map(x => x + firstPageIndex);\n } else {\n // Case 4: one block before the last with last block containing only 1 page\n this.pages = [\n ...Array(this._totalNumberOfPages - firstPageIndex).keys(),\n ].map(x => x + firstPageIndex);\n }\n } else if (this._totalNumberOfPages - 1 - firstPageIndex <= 2) {\n // Case 5: in the last block containing 2 pages or more\n firstPageIndex = firstPageIndex - this.numberOfReachablePages;\n this.pages = [\n ...Array(this._totalNumberOfPages - firstPageIndex).keys(),\n ].map(x => x + firstPageIndex);\n } else {\n // Case 6: same as case 4 but the next block contains at least 2 pages\n this.pages = [...Array(this.numberOfReachablePages).keys()].map(\n x => x + firstPageIndex,\n );\n }\n }\n }\n\n refreshComplex() {\n if (this._totalNumberOfPages <= this.numberOfReachablePages + 2) {\n // Case 1: not enough pages to display the first \"...\"\n this.pages = [...Array(this._totalNumberOfPages).keys()];\n } else if (this.pageIndex <= this.numberOfReachablePages - 1) {\n // Case 2: page index in first 5 pages\n this.pages = [...Array(this.numberOfReachablePages).keys()];\n } else {\n let firstPageIndex =\n Math.floor(this._pageIndex / this.numberOfReachablePages) *\n this.numberOfReachablePages;\n\n if (\n this._totalNumberOfPages - firstPageIndex <=\n this.numberOfReachablePages + 2\n ) {\n if (this._totalNumberOfPages - firstPageIndex <= 2) {\n // Case 3: in the last block containing max 2 pages\n firstPageIndex = firstPageIndex - this.numberOfReachablePages;\n this.pages = [\n ...Array(this._totalNumberOfPages - firstPageIndex).keys(),\n ].map(x => x + firstPageIndex);\n } else {\n // Case 4: one block before the last with last block containing max 2 pages\n this.pages = [\n ...Array(this._totalNumberOfPages - firstPageIndex).keys(),\n ].map(x => x + firstPageIndex);\n }\n } else if (this._totalNumberOfPages - 1 - firstPageIndex <= 3) {\n // Case 5: in the last block containing 2 pages or more\n firstPageIndex = firstPageIndex - this.numberOfReachablePages;\n this.pages = [\n ...Array(this._totalNumberOfPages - firstPageIndex).keys(),\n ].map(x => x + firstPageIndex);\n } else {\n // Case 6: same as case 4 but the next block contains at least 2 pages\n this.pages = [...Array(this.numberOfReachablePages).keys()].map(\n x => x + firstPageIndex,\n );\n }\n }\n }\n\n /** Emits an event notifying that a change of the paginator's properties has been triggered. */\n private _emitPageEvent(previousPageIndex: number) {\n this.page.emit({\n previousPageIndex,\n pageIndex: this._pageIndex,\n pageSize: this._pageSize,\n length: this._length,\n });\n\n // Deprecated\n this.onRequestPage.emit(this._pageIndex);\n }\n\n ngOnInit() {\n this._isInitialized = true;\n this._initializedStream.next();\n }\n\n ngOnDestroy() {\n this._initializedStream.complete();\n }\n}\n","<div class=\"paginator-container\">\n @if (pageSizeSelector) {\n <div class=\"paginator-size-selector-container\">\n @if (pageSizeOptions.length > 1) {\n <mat-form-field\n appearance=\"outline\"\n class=\"paginator-size-selector\"\n data-cy=\"onemrva-mat-paginator-page-size-selector\"\n >\n <mat-select [value]=\"pageSize\">\n @for (size of pageSizeOptions; track size) {\n <mat-option\n [value]=\"size\"\n (click)=\"pageSize = size\"\n [attr.data-cy]=\"\n 'onemrva-mat-paginator-page-size-option-' + size\n \"\n >{{ size }}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n <div>\n @if (pageSizeOptions.length > 1) {\n <span style=\"display: inline-block\">{{\n 'paginator.' + recordKey | translate\n }}</span>\n <mat-divider vertical></mat-divider>\n }\n {{ pageIndex * pageSize + 1 }} - {{ maxRecordNumber }}\n <span>{{ 'paginator.outOf' | translate }}</span>\n {{ length }}\n </div>\n </div>\n }\n\n @if (pages.length > 1) {\n <div class=\"onemrva-mat-paginator\" data-cy=\"onemrva-mat-paginator\">\n <button\n type=\"button\"\n class=\"onemrva-mat-paginator-btn onemrva-mat-paginator-btn-previous\"\n data-cy=\"onemrva-mat-paginator-btn-previous\"\n [disabled]=\"pageIndex === 0\"\n (click)=\"pageIndex = pageIndex - 1\"\n >\n {{ 'paginator.' + previousKey | translate }}\n </button>\n\n @if (pages[0] > 0 && type === 'complex') {\n <button\n type=\"button\"\n class=\"onemrva-mat-paginator-btn onemrva-mat-paginator-first\"\n data-cy=\"onemrva-mat-paginator-first\"\n (click)=\"pageIndex = 0\"\n >\n 1\n </button>\n }\n @if (pages[0] > 0) {\n <button\n type=\"button\"\n class=\"onemrva-mat-paginator-btn onemrva-mat-paginator-btn-too-many\"\n data-cy=\"onemrva-mat-paginator-btn-too-many-before\"\n (click)=\"pageIndex = pageIndex - numberOfReachablePages\"\n >\n ...\n </button>\n }\n @for (page of pages; track page) {\n <button\n type=\"button\"\n class=\"onemrva-mat-paginator-btn onemrva-mat-paginator-btn-page\"\n [ngClass]=\"{\n 'onemrva-mat-paginator-current-index': pageIndex === page,\n }\"\n data-cy=\"onemrva-mat-paginator-btn-page\"\n (click)=\"pageIndex = page\"\n >\n {{ page + 1 }}\n </button>\n }\n @if (pages[pages.length - 1] < totalNumberOfPages - 1) {\n <button\n type=\"button\"\n class=\"onemrva-mat-paginator-btn onemrva-mat-paginator-btn-too-many\"\n data-cy=\"onemrva-mat-paginator-btn-too-many-after\"\n (click)=\"pageIndex = pageIndex + numberOfReachablePages\"\n >\n ...\n </button>\n }\n @if (\n pages[pages.length - 1] < totalNumberOfPages - 1 && type === 'complex'\n ) {\n <button\n type=\"button\"\n class=\"onemrva-mat-paginator-btn onemrva-mat-paginator-btn-last\"\n data-cy=\"onemrva-mat-paginator-btn-last\"\n (click)=\"pageIndex = totalNumberOfPages - 1\"\n >\n {{ totalNumberOfPages }}\n </button>\n }\n <button\n type=\"button\"\n class=\"onemrva-mat-paginator-btn onemrva-mat-paginator-btn-next\"\n data-cy=\"onemrva-mat-paginator-btn-next\"\n [disabled]=\"pageIndex >= totalNumberOfPages - 1\"\n (click)=\"pageIndex = pageIndex + 1\"\n >\n {{ 'paginator.' + nextKey | translate }}\n </button>\n </div>\n }\n</div>\n","import { NgModule } from '@angular/core';\nimport { OnemrvaMatPaginatorComponent } from './onemrva-mat-paginator.component';\n@NgModule({\n declarations: [],\n imports: [OnemrvaMatPaginatorComponent],\n exports: [],\n})\nexport class OnemrvaMatPaginatorModule {}\n","/*\n * Public API Surface of mat-paginator\n */\n\nexport * from './src/onemrva-mat-paginator.module';\nexport * from './src/onemrva-mat-paginator.component';\n","import {\n Component,\n Input,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { NgClass } from '@angular/common';\n\n@Component({\n selector: 'onemrva-mat-panel-title-action',\n templateUrl: './onemrva-mat-panel-title-action.html',\n standalone: true,\n encapsulation: ViewEncapsulation.None,\n imports: [NgClass],\n})\nexport class OnemrvaMatPanelTitleActionComponent {\n @Input() customNgClass: any;\n\n @ViewChild(TemplateRef) template?: TemplateRef<any>;\n}\n","<ng-template>\n <div\n class=\"onemrva-mat-panel-title-action float-right\"\n [ngClass]=\"customNgClass\"\n >\n <ng-content></ng-content>\n </div>\n</ng-template>\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n inject,\n Input,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { OnemrvaMatPanelTitleActionComponent } from './onemrva-mat-panel-title-action.component';\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\n\n@Component({\n selector: 'onemrva-mat-panel-title',\n templateUrl: './onemrva-mat-panel-title.html',\n styleUrl: './onemrva-mat-panel-title.scss',\n standalone: true,\n encapsulation: ViewEncapsulation.None,\n imports: [NgClass, NgTemplateOutlet],\n})\nexport class OnemrvaMatPanelTitleComponent implements AfterViewInit {\n @Input() customNgClass: any;\n\n @ViewChild(TemplateRef) template?: TemplateRef<any>;\n\n @ContentChild(OnemrvaMatPanelTitleActionComponent)\n content?: OnemrvaMatPanelTitleActionComponent;\n\n toggleButtonReference: ElementRef | null = null;\n\n private readonly cd = inject(ChangeDetectorRef);\n\n ngAfterViewInit() {\n this.cd.detectChanges();\n }\n}\n","<ng-template>\n <div class=\"onemrva-mat-panel-title\" [ngClass]=\"customNgClass\">\n <ng-content></ng-content>\n @if (content?.template; as tpl) {\n <ng-container *ngTemplateOutlet=\"tpl\"></ng-container>\n }\n </div>\n</ng-template>\n","import { Component, Input, TemplateRef, ViewChild } from '@angular/core';\nimport { NgClass } from '@angular/common';\n\n@Component({\n selector: 'onemrva-mat-panel-content',\n templateUrl: './onemrva-mat-panel-content.html',\n styleUrl: './onemrva-mat-panel-content.scss',\n standalone: true,\n imports: [NgClass],\n})\nexport class OnemrvaMatPanelContentComponent {\n @Input() customNgClass: any;\n\n @ViewChild(TemplateRef) template?: TemplateRef<any>;\n}\n","<ng-template>\n <div class=\"onemrva-mat-panel-content\" [ngClass]=\"customNgClass\">\n <ng-content></ng-content>\n </div>\n</ng-template>\n","import { Component, Input, TemplateRef, ViewChild } from '@angular/core';\nimport { NgClass } from '@angular/common';\n\n@Component({\n selector: 'onemrva-mat-panel-icon',\n templateUrl: './onemrva-mat-panel-icon.html',\n styleUrl: './onemrva-mat-panel-icon.scss',\n standalone: true,\n imports: [NgClass],\n})\nexport class OnemrvaMatPanelIconComponent {\n @Input() customNgClass: any;\n\n @ViewChild(TemplateRef) template?: TemplateRef<any>;\n}\n","<ng-template>\n <div class=\"onemrva-mat-panel-icon\" [ngClass]=\"customNgClass\">\n <ng-content></ng-content>\n </div>\n</ng-template>\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n HostBinding,\n inject,\n input,\n Input,\n output,\n} from '@angular/core';\nimport { OnemrvaMatPanelTitleComponent } from './onemrva-mat-panel-title.component';\nimport { OnemrvaMatPanelContentComponent } from './onemrva-mat-panel-content.component';\nimport { OnemrvaMatPanelIconComponent } from './onemrva-mat-panel-icon.component';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n MatExpansionPanel,\n MatExpansionPanelHeader,\n} from '@angular/material/expansion';\n// import { MatExpansionPanelHeaderArrowDivider } from './mat-expansion-panel-header-arrow-divider';\n\nlet NEXT_ID = 0;\n\n@Component({\n selector: 'onemrva-mat-panel',\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './onemrva-mat-panel.component.html',\n styleUrl: './onemrva-mat-panel.component.scss',\n imports: [\n NgTemplateOutlet,\n MatExpansionPanel,\n MatExpansionPanelHeader,\n // MatExpansionPanelHeaderArrowDivider,\n ],\n standalone: true,\n})\nexport class OnemrvaMatPanelComponent implements AfterViewInit {\n @HostBinding('attr.id')\n @Input()\n public id = `onemrva-mat-panel-${NEXT_ID++}`;\n\n @HostBinding('attr.data-cy')\n @Input()\n data_cy = 'onemrva-mat-panel';\n\n @HostBinding('class.mat-disabled')\n @Input()\n disabled = false;\n\n @ContentChild(OnemrvaMatPanelComponent)\n panel?: OnemrvaMatPanelComponent;\n\n @ContentChild(OnemrvaMatPanelTitleComponent)\n title?: OnemrvaMatPanelTitleComponent;\n\n @ContentChild(OnemrvaMatPanelContentComponent)\n content!: OnemrvaMatPanelContentComponent;\n\n @HostBinding('class.has-icon')\n @ContentChild(OnemrvaMatPanelIconComponent)\n icon?: OnemrvaMatPanelIconComponent;\n\n @HostBinding('class.is-expandable')\n @Input()\n expandable = false;\n\n expanded = input<boolean>(true);\n\n expandedChange = output<boolean>();\n\n error?: string;\n\n private readonly cd = inject(ChangeDetectorRef);\n\n onChangeState(val: boolean) {\n this.expandedChange.emit(val);\n }\n\n ngAfterViewInit() {\n this.cd.detectChanges();\n }\n}\n","@if (icon?.template; as tpl) {\n <ng-container *ngTemplateOutlet=\"tpl\"></ng-container>\n}\n\n<div class=\"right-content\">\n @if (expandable) {\n @if (title?.template; as titleTpl) {\n <mat-expansion-panel\n [expanded]=\"expanded()\"\n (expandedChange)=\"onChangeState($event)\"\n >\n <mat-expansion-panel-header>\n <ng-container *ngTemplateOutlet=\"titleTpl\"></ng-container>\n </mat-expansion-panel-header>\n <ng-container *ngTemplateOutlet=\"content.template\"></ng-container>\n </mat-expansion-panel>\n }\n } @else {\n @if (title?.template; as tpl) {\n <ng-container *ngTemplateOutlet=\"tpl\"></ng-container>\n }\n <ng-container *ngTemplateOutlet=\"content.template\"></ng-container>\n }\n</div>\n","import { NgModule } from '@angular/core';\nimport { OnemrvaMatPanelComponent } from './onemrva-mat-panel.component';\nimport { OnemrvaMatPanelTitleComponent } from './onemrva-mat-panel-title.component';\nimport { OnemrvaMatPanelContentComponent } from './onemrva-mat-panel-content.component';\nimport { OnemrvaMatPanelTitleActionComponent } from './onemrva-mat-panel-title-action.component';\nimport { OnemrvaMatPanelIconComponent } from './onemrva-mat-panel-icon.component';\n\n@NgModule({\n declarations: [],\n imports: [\n OnemrvaMatPanelComponent,\n OnemrvaMatPanelTitleComponent,\n OnemrvaMatPanelContentComponent,\n OnemrvaMatPanelTitleActionComponent,\n OnemrvaMatPanelIconComponent,\n ],\n exports: [\n OnemrvaMatPanelComponent,\n OnemrvaMatPanelTitleComponent,\n OnemrvaMatPanelContentComponent,\n OnemrvaMatPanelTitleActionComponent,\n OnemrvaMatPanelIconComponent,\n ],\n})\nexport class OnemrvaMatPanelModule {}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'mat-expansion-panel-header-arrow-divider',\n imports: [],\n standalone: true,\n templateUrl: './mat-expansion-panel-header-arrow-divider.html',\n styleUrl: './mat-expansion-panel-header-arrow-divider.scss',\n})\nexport class MatExpansionPanelHeaderArrowDivider {}\n","<span></span>\n","import { Component, Input, TemplateRef, ViewChild } from '@angular/core';\n\nlet index = 0;\n\n@Component({\n selector: 'onemrva-mat-pop-over-trigger',\n template: '<ng-template><ng-content></ng-content></ng-template>',\n standalone: true,\n})\nexport class OnemrvaMatPopOverTriggerComponent {\n @Input() dataCy = `onemrvaMatPopOverTrigger_${++index}`;\n\n @ViewChild(TemplateRef) template?: TemplateRef<any>;\n}\n","import { Component, Input, TemplateRef, ViewChild } from '@angular/core';\n\nlet index = 0;\n\n@Component({\n selector: 'onemrva-mat-pop-over-content',\n template: '<ng-template><ng-content></ng-content></ng-template>',\n standalone: true,\n})\nexport class OnemrvaMatPopOverContentComponent {\n @Input() dataCy = `onemrvaMatPopOverContent_${++index}`;\n\n @ViewChild(TemplateRef) template?: TemplateRef<any>;\n}\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ContentChild,\n inject,\n Input,\n} from '@angular/core';\nimport { OnemrvaMatPopOverTriggerComponent } from './onemrva-mat-pop-over-trigger.component';\nimport { OnemrvaMatPopOverContentComponent } from './onemrva-mat-pop-over-content.component';\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\nlet NEXT_ID = 0;\n@Component({\n selector: 'onemrva-mat-pop-over',\n styleUrls: ['./onemrva-mat-pop-over.component.scss'],\n templateUrl: 'onemrva-mat-pop-over.component.html',\n standalone: true,\n imports: [NgTemplateOutlet, NgClass],\n})\nexport class OnemrvaMatPopOverComponent implements AfterViewInit {\n isOpen = false;\n\n @Input() position: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right' =\n 'bottom-right';\n\n @Input() dataCyTrigger = 'onemrva-po-trigger';\n @Input() dataCyPo = 'onemrva-po';\n\n @Input() poId: string = this.dataCyPo + '-' + NEXT_ID++; // HTML id for the trigger\n\n @ContentChild(OnemrvaMatPopOverTriggerComponent)\n trigger?: OnemrvaMatPopOverTriggerComponent;\n\n @ContentChild(OnemrvaMatPopOverContentComponent)\n content?: OnemrvaMatPopOverContentComponent;\n\n private readonly cd = inject(ChangeDetectorRef);\n\n ngAfterViewInit(): void {\n this.cd.detectChanges();\n }\n\n togglePopOver() {\n this.isOpen = !this.isOpen;\n }\n\n closePopOver() {\n this.isOpen = false;\n }\n}\n","<div class=\"onemrva-pop-over\">\n @if (isOpen) {\n <div class=\"onemrva-overlay\" tabindex=\"1\" (click)=\"closePopOver()\"></div>\n }\n <a\n tabindex=\"1\"\n class=\"onemrva-pop-over-trigger\"\n (click)=\"togglePopOver()\"\n [attr.data-cy]=\"dataCyTrigger\"\n role=\"button\"\n [attr.aria-expanded]=\"isOpen\"\n [id]=\"poId\"\n >\n @if (trigger?.template; as tpl) {\n <ng-container *ngTemplateOutlet=\"tpl\"></ng-container>\n }\n </a>\n\n @if (isOpen) {\n @if (content?.template; as tpl) {\n <div\n class=\"onemrva-pop-over-frame\"\n [ngClass]=\"position\"\n [attr.data-cy]=\"dataCyPo\"\n role=\"region\"\n [attr.aria-labelledby]=\"poId\"\n >\n <div class=\"onemrva-pop-over-content\" [ngClass]=\"position\">\n <ng-container *ngTemplateOutlet=\"tpl\"></ng-container>\n </div>\n </div>\n }\n }\n</div>\n","import { NgModule } from '@angular/core';\nimport { OnemrvaMatPopOverComponent } from './onemrva-mat-pop-over.component';\nimport { OnemrvaMatPopOverContentComponent } from './onemrva-mat-pop-over-content.component';\nimport { OnemrvaMatPopOverTriggerComponent } from './onemrva-mat-pop-over-trigger.component';\n\nconst components = [\n OnemrvaMatPopOverComponent,\n OnemrvaMatPopOverContentComponent,\n OnemrvaMatPopOverTriggerComponent,\n];\n\n@NgModule({\n declarations: [],\n imports: [...components],\n exports: [...components],\n})\nexport class OnemrvaMatPopOverModule {}\n","import { CommonModule } from '@angular/common';\nimport { Component, HostBinding, Input, OnInit } from '@angular/core';\nimport { map, Observable, tap } from 'rxjs';\n\n@Component({\n selector: 'onemrva-mat-progress-bar',\n standalone: true,\n imports: [CommonModule],\n templateUrl: 'onemrva-mat-progress-bar.component.html',\n styleUrl: 'onemrva-mat-progress-bar.component.scss',\n})\nexport class OnemrvaMatProgressBarComponent implements OnInit {\n @Input() label$?: Observable<string>;\n @Input() value$!: Observable<number>;\n @Input() dataCy = 'onemrva-mat-progress-bar';\n\n @HostBinding('attr.role')\n public role = 'progressbar';\n\n @HostBinding('attr.aria-label')\n @Input()\n public ariaLabel = 'progress bar';\n\n progress$!: Observable<string>;\n\n ngOnInit() {\n this.progress$ = this.value$.pipe(\n tap(value => {\n this.success = value >= 100;\n }),\n map(v => (v < 0 ? '0%' : v > 100 ? '100%' : v + '%')),\n );\n\n if (!this.label$) {\n this.label$ = this.progress$;\n }\n }\n\n @HostBinding('class.mat-success')\n success = false;\n}\n","<div class=\"onemrva-progress-bar\">\n <span class=\"onemrva-progress-bar-label\">{{ label$ | async }}</span>\n\n <div class=\"onemrva-progress-bar-outer mt-s\" #onemrvaProgressBar>\n <div\n class=\"onemrva-progress-bar-inner\"\n [ngStyle]=\"{ width: progress$ | async }\"\n [ngClass]=\"{ 'progress-success': (value$ | async)! >= 100 }\"\n [attr.data-cy]=\"dataCy\"\n [attr.value]=\"progress$ | async\"\n ></div>\n </div>\n</div>\n","import { Directive } from '@angular/core';\n\n/**\n * Directive for providing a custom clear-icon.\n * e.g.\n * <mat-select-search [formControl]=\"bankFilterCtrl\">\n * <mat-icon matSelectSearchClear>delete</mat-icon>\n * </mat-select-search>\n */\n@Directive({\n selector: '[matSelectSearchClear]',\n standalone: true,\n})\nexport class MatSelectSearchClearDirective {}\n","import { InjectionToken } from '@angular/core';\nimport { MatSelectSearchComponent } from './mat-select-search.component';\n\n/** List of inputs of NgxMatSelectSearchComponent that can be configured with a global default. */\nexport const configurableDefaultOptions = [\n 'ariaLabel',\n 'clearSearchInput',\n 'closeIcon',\n 'closeSvgIcon',\n 'disableInitialFocus',\n 'disableScrollToActiveOnOptionsChanged',\n 'enableClearOnEscapePressed',\n 'hideClearSearchButton',\n 'noEntriesFoundLabel',\n 'placeholderLabel',\n 'preventHomeEndKeyPropagation',\n 'searching',\n] as const;\n\nexport type ConfigurableDefaultOptions =\n (typeof configurableDefaultOptions)[number];\n\n/**\n * InjectionToken that can be used to specify global options. e.g.\n *\n * ```typescript\n * providers: [\n * {\n * provide: MAT_SELECTSEARCH_DEFAULT_OPTIONS,\n * useValue: <MatSelectSearchOptions>{\n * closeIcon: 'delete',\n * noEntriesFoundLabel: 'No options found'\n * }\n * }\n * ]\n * ```\n *\n * See the corresponding inputs of `MatSelectSearchComponent` for documentation.\n */\nexport const MAT_SELECTSEARCH_DEFAULT_OPTIONS =\n new InjectionToken<MatSelectSearchOptions>(\n 'mat-selectsearch-default-options',\n );\n\n/** Global configurable options for MatSelectSearch. */\nexport type MatSelectSearchOptions = Readonly<\n Partial<Pick<MatSelectSearchComponent, ConfigurableDefaultOptions>>\n>;\n","import { Directive } from '@angular/core';\n\n/**\n * Directive for providing a custom no entries found element.\n * e.g.\n * <mat-select-search [formControl]=\"bankFilterCtrl\">\n * <span matSelectNoEntriesFound>\n * No entries found <button>Add</button>\n * </span>\n * </mat-select-search>\n */\n@Directive({\n selector: '[matSelectNoEntriesFound]',\n standalone: true,\n})\nexport class MatSelectNoEntriesFoundDirective {}\n","/**\n * Copyright (c) 2018 Bithost GmbH All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {\n A,\n DOWN_ARROW,\n END,\n ENTER,\n ESCAPE,\n HOME,\n NINE,\n SPACE,\n UP_ARROW,\n Z,\n ZERO,\n} from '@angular/cdk/keycodes';\nimport { ViewportRuler } from '@angular/cdk/scrolling';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n OnDestroy,\n OnInit,\n Output,\n QueryList,\n ViewChild,\n inject,\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n FormControl,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n} from '@angular/forms';\nimport { MatOption } from '@angular/material/core';\nimport { MatFormField } from '@angular/material/form-field';\nimport { MatSelect } from '@angular/material/select';\nimport { BehaviorSubject, combineLatest, Observable, of, Subject } from 'rxjs';\nimport {\n delay,\n filter,\n map,\n startWith,\n switchMap,\n take,\n takeUntil,\n tap,\n} from 'rxjs/operators';\nimport { MatSelectSearchClearDirective } from './mat-select-search-clear.directive';\nimport {\n configurableDefaultOptions,\n MAT_SELECTSEARCH_DEFAULT_OPTIONS,\n MatSelectSearchOptions,\n} from './default-options';\nimport { MatSelectNoEntriesFoundDirective } from './mat-select-no-entries-found.directive';\nimport { AsyncPipe, NgClass } from '@angular/common';\nimport { MatCheckbox } from '@angular/material/checkbox';\nimport { MatTooltip } from '@angular/material/tooltip';\nimport { MatIcon } from '@angular/material/icon';\nimport { MatProgressSpinner } from '@angular/material/progress-spinner';\nimport { MatIconButton } from '@angular/material/button';\nimport { MatInput } from '@angular/material/input';\nimport { MatDivider } from '@angular/material/divider';\n\n@Component({\n selector: 'mat-select-search',\n templateUrl: './mat-select-search.component.html',\n styleUrls: ['./mat-select-search.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MatSelectSearchComponent),\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n NgClass,\n MatCheckbox,\n MatTooltip,\n ReactiveFormsModule,\n MatIcon,\n MatProgressSpinner,\n MatIconButton,\n MatInput,\n MatDivider,\n AsyncPipe,\n ],\n})\nexport class MatSelectSearchComponent\n implements OnInit, OnDestroy, ControlValueAccessor\n{\n /** Label of the search placeholder */\n @Input() placeholderLabel = 'Search';\n\n /** Type of the search input field */\n @Input() type = 'text';\n\n /** Font-based icon used for displaying Close-Icon */\n @Input() closeIcon = 'close';\n\n /** Svg-based icon used for displaying Close-Icon. If set, closeIcon is overridden */\n @Input() closeSvgIcon = '';\n\n /** Label to be shown when no entries are found. Set to null if no message should be shown. */\n @Input() noEntriesFoundLabel = 'Nothing found';\n\n /**\n * Whether or not the search field should be cleared after the dropdown menu is closed.\n */\n @Input() clearSearchInput = true;\n\n /** Whether to show the search-in-progress indicator */\n @Input() searching = false;\n\n /** Disables initial focusing of the input field */\n @Input() disableInitialFocus = false;\n\n /** Enable clear input on escape pressed */\n @Input() enableClearOnEscapePressed = false;\n\n /**\n * Prevents home / end key being propagated to mat-select,\n * allowing to move the cursor within the search input instead of navigating the options\n */\n @Input() preventHomeEndKeyPropagation = false;\n\n /** Disables scrolling to active options when option list changes. Useful for server-side search */\n @Input() disableScrollToActiveOnOptionsChanged = false;\n\n /** Adds 508 screen reader support for search box */\n @Input() ariaLabel = 'dropdown search';\n\n /** Whether to show Select All Checkbox (for mat-select[multi=true]) */\n @Input() showToggleAllCheckbox = false;\n\n /** select all checkbox checked state */\n @Input() toggleAllCheckboxChecked = false;\n\n /** select all checkbox indeterminate state */\n @Input() toggleAllCheckboxIndeterminate = false;\n\n /** Display a message in a tooltip on the toggle-all checkbox */\n @Input() toggleAllCheckboxTooltipMessage = '';\n\n /** Define the position of the tooltip on the toggle-all checkbox. */\n @Input() toggleAllCheckboxTooltipPosition:\n | 'left'\n | 'right'\n | 'above'\n | 'below'\n | 'before'\n | 'after' = 'below';\n\n /** Show/Hide the search clear button of the search input */\n @Input() hideClearSearchButton = false;\n\n /**\n * Always restore selected options on selectionChange for mode multi (e.g. for lazy loading/infinity scrolling).\n * Defaults to false, so selected options are only restored while filtering is active.\n */\n @Input() alwaysRestoreSelectedOptionsMulti = false;\n\n /** Output emitter to send to parent component with the toggle all boolean */\n @Output() toggleAll = new EventEmitter<boolean>();\n\n /** Reference to the search input field */\n @ViewChild('searchSelectInput', { read: ElementRef, static: true })\n searchSelectInput?: ElementRef;\n\n /** Reference to the search input field */\n @ViewChild('innerSelectSearch', { read: ElementRef, static: true })\n innerSelectSearch?: ElementRef;\n\n /** Reference to custom search input clear icon */\n @ContentChild(MatSelectSearchClearDirective)\n clearIcon?: MatSelectSearchClearDirective;\n\n /** Reference to custom no entries found element */\n @ContentChild(MatSelectNoEntriesFoundDirective)\n noEntriesFound?: MatSelectNoEntriesFoundDirective;\n\n /** Current search value */\n get value(): string {\n return (this._formControl as FormControl).value;\n }\n\n private _lastExternalInputValue?: string;\n\n onTouched: (_: any) => void = (_: any) => {\n //\n };\n\n /** Reference to the MatSelect options */\n public set _options(_options: QueryList<MatOption>) {\n this._options$.next(_options);\n }\n\n public get _options(): QueryList<MatOption> {\n return this._options$.getValue();\n }\n\n public _options$: BehaviorSubject<QueryList<MatOption>> = new BehaviorSubject<\n QueryList<MatOption>\n >(new QueryList());\n\n private optionsList$: Observable<MatOption[]> = this._options$.pipe(\n switchMap(_options =>\n _options\n ? _options.changes.pipe(\n map(options => options.toArray()),\n startWith<MatOption[]>(_options.toArray()),\n )\n : of([]),\n ),\n );\n\n private optionsLength$: Observable<number> = this.optionsList$.pipe(\n map(options => (options ? options.length : 0)),\n );\n\n /** Previously selected values when using <mat-select [multiple]=\"true\">*/\n private previousSelectedValues?: any[];\n\n public _formControl: FormControl<string | null> = new FormControl<string>('');\n\n /** whether to show the no entries found message */\n public _showNoEntriesFound$: Observable<boolean> = combineLatest([\n this._formControl.valueChanges,\n this.optionsLength$,\n ]).pipe(\n map(([_, optionsLength]) => {\n return (\n this.noEntriesFoundLabel !== '' &&\n optionsLength === this.getOptionsLengthOffset()\n );\n }),\n );\n\n /** Subject that emits when the component has been destroyed. */\n private _onDestroy = new Subject<void>();\n\n /** Reference to active descendant for ARIA Support. */\n private activeDescendant?: HTMLElement;\n\n public readonly matSelect = inject(MatSelect);\n public readonly changeDetectorRef = inject(ChangeDetectorRef);\n private readonly _viewportRuler = inject(ViewportRuler);\n public readonly matOption = inject(MatOption, { optional: true });\n public readonly matFormField = inject(MatFormField, { optional: true });\n private readonly defaultOptions = inject(MAT_SELECTSEARCH_DEFAULT_OPTIONS, {\n optional: true,\n });\n\n constructor() {\n this.applyDefaultOptions(this.defaultOptions as MatSelectSearchOptions);\n }\n\n private applyDefaultOptions(defaultOptions: MatSelectSearchOptions) {\n if (!defaultOptions) {\n return;\n }\n for (const key of configurableDefaultOptions) {\n // eslint-disable-next-line\n if (defaultOptions.hasOwnProperty(key)) {\n (this[key] as any) = defaultOptions[key];\n }\n }\n }\n\n ngOnInit() {\n // set custom mat-option class if the component was placed inside a mat-option\n if (this.matOption) {\n this.matOption.disabled = true;\n this.matOption\n ._getHostElement()\n .classList.add('contains-mat-select-search');\n //this.matOption._getHostElement().setAttribute('aria-hidden', 'true'); // this provoke an error\n } else {\n console.error(\n '<mat-select-search> must be placed inside a <mat-option> element',\n );\n }\n\n // when the select dropdown panel is opened or closed\n this.matSelect.openedChange\n .pipe(delay(1), takeUntil(this._onDestroy))\n .subscribe(opened => {\n if (opened) {\n this.updateInputWidth();\n // focus the search field when opening\n if (!this.disableInitialFocus) {\n this._focus();\n }\n } else {\n // clear it when closing\n if (this.clearSearchInput) {\n this._reset();\n }\n }\n });\n\n // set the first item active after the options changed\n this.matSelect.openedChange\n .pipe(\n take(1),\n switchMap(_ => {\n this._options = this.matSelect.options;\n\n // Closure variable for tracking the most recent first option.\n // In order to avoid avoid causing the list to\n // scroll to the top when options are added to the bottom of\n // the list (eg: infinite scroll), we compare only\n // the changes to the first options to determine if we\n // should set the first item as active.\n // This prevents unnecessary scrolling to the top of the list\n // when options are appended, but allows the first item\n // in the list to be set as active by default when there\n // is no active selection\n let previousFirstOption =\n this._options.toArray()[this.getOptionsLengthOffset()];\n\n return this._options.changes.pipe(\n tap(() => {\n // avoid \"expression has been changed\" error\n setTimeout(() => {\n // Convert the QueryList to an array\n const options = this._options.toArray();\n\n // The true first item is offset by 1\n const currentFirstOption =\n options[this.getOptionsLengthOffset()];\n\n const keyManager = this.matSelect._keyManager;\n if (keyManager && this.matSelect.panelOpen) {\n // set first item active and input width\n\n // Check to see if the first option in these changes is different from the previous.\n const firstOptionIsChanged = !this.matSelect.compareWith(\n previousFirstOption,\n currentFirstOption,\n );\n\n // CASE: The first option is different now.\n // Indiciates we should set it as active and scroll to the top.\n if (\n firstOptionIsChanged ||\n !keyManager.activeItem ||\n !options.find(option =>\n this.matSelect.compareWith(option, keyManager.activeItem),\n )\n ) {\n keyManager.setFirstItemActive();\n }\n\n // wait for panel width changes\n setTimeout(() => {\n this.updateInputWidth();\n });\n }\n\n // Update our reference\n previousFirstOption = currentFirstOption;\n });\n }),\n );\n }),\n )\n .subscribe();\n\n // add or remove css class depending on whether to show the no entries found message\n // note: this is hacky\n this._showNoEntriesFound$\n .pipe(takeUntil(this._onDestroy))\n .subscribe(showNoEntriesFound => {\n // set no entries found class on mat option\n if (this.matOption) {\n if (showNoEntriesFound) {\n this.matOption\n ._getHostElement()\n .classList.add('mat-select-search-no-entries-found');\n } else {\n this.matOption\n ._getHostElement()\n .classList.remove('mat-select-search-no-entries-found');\n }\n }\n });\n\n // resize the input width when the viewport is resized, i.e. the trigger width could potentially be resized\n this._viewportRuler\n .change()\n .pipe(takeUntil(this._onDestroy))\n .subscribe(() => {\n if (this.matSelect.panelOpen) {\n this.updateInputWidth();\n }\n });\n\n this.initMultipleHandling();\n\n this.optionsList$.pipe(takeUntil(this._onDestroy)).subscribe(() => {\n // update view when available options change\n this.changeDetectorRef.markForCheck();\n });\n }\n\n _emitSelectAllBooleanToParent(state: boolean) {\n this.toggleAll.emit(state);\n }\n\n ngOnDestroy() {\n this._onDestroy.next();\n this._onDestroy.complete();\n }\n\n _isToggleAllCheckboxVisible(): boolean {\n return this.matSelect.multiple && this.showToggleAllCheckbox;\n }\n\n /**\n * Handles the key down event with MatSelect.\n * Allows e.g. selecting with enter key, navigation with arrow keys, etc.\n * @param event\n */\n _handleKeydown(event: KeyboardEvent) {\n // Prevent propagation for all alphanumeric characters in order to avoid selection issues\n if (\n (event.key && event.key.length === 1) ||\n (event.keyCode >= A && event.keyCode <= Z) ||\n (event.keyCode >= ZERO && event.keyCode <= NINE) ||\n event.keyCode === SPACE ||\n (this.preventHomeEndKeyPropagation &&\n (event.keyCode === HOME || event.keyCode === END))\n ) {\n event.stopPropagation();\n }\n\n if (this.matSelect.multiple && event.key && event.keyCode === ENTER) {\n // Regain focus after multiselect, so we can further type\n setTimeout(() => this._focus());\n }\n\n // Special case if click Escape, if input is empty, close the dropdown, if not, empty out the search field\n if (\n this.enableClearOnEscapePressed === true &&\n event.keyCode === ESCAPE &&\n this.value\n ) {\n this._reset(true);\n event.stopPropagation();\n }\n }\n\n /**\n * Handles the key up event with MatSelect.\n * Allows e.g. the announcing of the currently activeDescendant by screen readers.\n */\n _handleKeyup(event: KeyboardEvent) {\n if (event.keyCode === UP_ARROW || event.keyCode === DOWN_ARROW) {\n const ariaActiveDescendantId = this.matSelect._getAriaActiveDescendant();\n const index = this._options\n .toArray()\n .findIndex(item => item.id === ariaActiveDescendantId);\n if (index !== -1) {\n this.unselectActiveDescendant();\n\n const temp = this._options.toArray();\n this.activeDescendant = temp[index]._getHostElement();\n\n this.activeDescendant.setAttribute('aria-selected', 'true');\n\n this.searchSelectInput?.nativeElement.setAttribute(\n 'aria-activedescendant',\n ariaActiveDescendantId,\n );\n }\n }\n }\n\n writeValue(value: string) {\n this._lastExternalInputValue = value;\n this._formControl.setValue(value);\n this.changeDetectorRef.markForCheck();\n }\n\n onBlur() {\n this.unselectActiveDescendant();\n }\n\n registerOnChange(fn: (value: string | null) => void) {\n this._formControl.valueChanges\n .pipe(\n filter(value => value !== this._lastExternalInputValue),\n tap(() => (this._lastExternalInputValue = undefined)),\n takeUntil(this._onDestroy),\n )\n .subscribe(fn);\n }\n\n registerOnTouched(fn: () => void) {\n this.onTouched = fn;\n }\n\n /**\n * Focuses the search input field\n */\n public _focus() {\n if (!this.searchSelectInput || !this.matSelect.panel) {\n return;\n }\n // save and restore scrollTop of panel, since it will be reset by focus()\n // note: this is hacky\n const panel = this.matSelect.panel.nativeElement;\n const scrollTop = panel.scrollTop;\n\n // focus\n this.searchSelectInput.nativeElement.focus();\n\n panel.scrollTop = scrollTop;\n }\n\n /**\n * Resets the current search value\n * @param focus whether to focus after resetting\n */\n public _reset(focus?: boolean) {\n this._formControl.setValue('');\n if (focus) {\n this._focus();\n }\n }\n\n /**\n * Initializes handling <mat-select [multiple]=\"true\">\n * Note: to improve this code, mat-select should be extended to allow disabling resetting the selection while filtering.\n */\n private initMultipleHandling() {\n if (!this.matSelect.ngControl) {\n if (this.matSelect.multiple) {\n // note: the access to matSelect.ngControl (instead of matSelect.value / matSelect.valueChanges)\n // is necessary to properly work in multi-selection mode.\n console.error(\n 'the mat-select containing mat-select-search must have a ngModel or formControl directive when multiple=true',\n );\n }\n return;\n }\n // if <mat-select [multiple]=\"true\">\n // store previously selected values and restore them when they are deselected\n // because the option is not available while we are currently filtering\n this.previousSelectedValues = this.matSelect.ngControl.value;\n\n this.matSelect.ngControl.valueChanges\n ?.pipe(takeUntil(this._onDestroy))\n .subscribe(values => {\n let restoreSelectedValues = false;\n if (this.matSelect.multiple) {\n if (\n (this.alwaysRestoreSelectedOptionsMulti ||\n (this._formControl.value && this._formControl.value.length)) &&\n this.previousSelectedValues &&\n Array.isArray(this.previousSelectedValues)\n ) {\n if (!values || !Array.isArray(values)) {\n values = [];\n }\n const optionValues = this.matSelect.options.map(\n option => option.value,\n );\n this.previousSelectedValues.forEach(previousValue => {\n if (\n !values.some((v: any) =>\n this.matSelect.compareWith(v, previousValue),\n ) &&\n !optionValues.some(v =>\n this.matSelect.compareWith(v, previousValue),\n )\n ) {\n // if a value that was selected before is deselected and not found in the options, it was deselected\n // due to the filtering, so we restore it.\n values.push(previousValue);\n restoreSelectedValues = true;\n }\n });\n }\n }\n this.previousSelectedValues = values;\n\n if (restoreSelectedValues) {\n this.matSelect._onChange(values);\n }\n });\n }\n\n /**\n * Set the width of the innerSelectSearch to fit even custom scrollbars\n * And support all Operation Systems\n */\n public updateInputWidth() {\n if (!this.innerSelectSearch || !this.innerSelectSearch.nativeElement) {\n return;\n }\n let element: HTMLElement = this.innerSelectSearch.nativeElement;\n if (element.parentElement !== null) {\n let panelElement: HTMLElement | null = null;\n while ((element = element.parentElement)) {\n if (element.classList.contains('mat-select-panel')) {\n panelElement = element;\n break;\n }\n }\n if (panelElement !== null) {\n this.innerSelectSearch.nativeElement.style.width =\n panelElement.clientWidth + 'px';\n }\n }\n }\n\n /**\n * Determine the offset to length that can be caused by the optional matOption used as a search input.\n */\n private getOptionsLengthOffset(): number {\n if (this.matOption) {\n return 1;\n } else {\n return 0;\n }\n }\n\n private unselectActiveDescendant() {\n this.activeDescendant?.removeAttribute('aria-selected');\n this.searchSelectInput?.nativeElement.removeAttribute(\n 'aria-activedescendant',\n );\n }\n}\n","<!--\nCopyright (c) 2018 Bithost GmbH All Rights Reserved.\n\nUse of this source code is governed by an MIT-style license that can be\nfound in the LICENSE file at https://angular.io/license\n-->\n<!-- Placeholder to adjust vertical offset of the mat-option elements -->\n<input matInput class=\"mat-select-search-input mat-select-search-hidden\" />\n\n<!-- Note: the mat-datepicker-content mat-tab-header are needed to inherit the material theme colors, see PR #22 -->\n<div\n #innerSelectSearch\n class=\"mat-select-search-inner mat-typography mat-datepicker-content mat-tab-header\"\n [ngClass]=\"{\n 'mat-select-search-inner-multiple': matSelect.multiple,\n 'mat-select-search-inner-toggle-all': _isToggleAllCheckboxVisible(),\n }\"\n>\n @if (_isToggleAllCheckboxVisible()) {\n <mat-checkbox\n class=\"mat-select-search-toggle-all-checkbox\"\n [checked]=\"toggleAllCheckboxChecked\"\n [indeterminate]=\"toggleAllCheckboxIndeterminate\"\n [matTooltip]=\"toggleAllCheckboxTooltipMessage\"\n matTooltipClass=\"ngx-mat-select-search-toggle-all-tooltip\"\n [matTooltipPosition]=\"toggleAllCheckboxTooltipPosition\"\n (change)=\"_emitSelectAllBooleanToParent($event.checked)\"\n ></mat-checkbox>\n }\n <input\n class=\"mat-select-search-input\"\n autocomplete=\"off\"\n [type]=\"type\"\n [formControl]=\"_formControl\"\n #searchSelectInput\n (keydown)=\"_handleKeydown($event)\"\n (keyup)=\"_handleKeyup($event)\"\n (blur)=\"onBlur()\"\n [placeholder]=\"placeholderLabel\"\n [attr.aria-label]=\"ariaLabel\"\n />\n @if (value === '' && !searching) {\n <mat-icon class=\"suffix\">search</mat-icon>\n }\n @if (searching) {\n <mat-spinner class=\"mat-select-search-spinner\" diameter=\"16\"></mat-spinner>\n }\n @if (!hideClearSearchButton && value && !searching) {\n <button\n mat-icon-button\n aria-label=\"Clear\"\n (click)=\"_reset(true)\"\n class=\"mat-select-search-clear\"\n >\n @if (clearIcon) {\n <ng-content select=\"[matSelectSearchClear]\"></ng-content>\n } @else {\n <mat-icon [svgIcon]=\"closeSvgIcon\">\n {{ !closeSvgIcon ? closeIcon : null }}\n </mat-icon>\n }\n </button>\n }\n\n <ng-content select=\".mat-select-search-custom-header-content\"></ng-content>\n\n <mat-divider></mat-divider>\n</div>\n\n@if (_showNoEntriesFound$ | async) {\n <div class=\"mat-select-search-no-entries-found\">\n @if (noEntriesFound) {\n <ng-content select=\"[matSelectNoEntriesFound]\"></ng-content>\n } @else {\n {{ noEntriesFoundLabel }}\n }\n </div>\n}\n","/**\n * Copyright (c) 2018 Bithost GmbH All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport { NgModule } from '@angular/core';\nimport { MatSelectSearchComponent } from './mat-select-search.component';\n\nimport { MatSelectSearchClearDirective } from './mat-select-search-clear.directive';\nimport { MatSelectNoEntriesFoundDirective } from './mat-select-no-entries-found.directive';\n\nexport { MatSelectSearchClearDirective };\nexport { MatSelectNoEntriesFoundDirective };\n\n@NgModule({\n imports: [\n MatSelectSearchComponent,\n MatSelectSearchClearDirective,\n MatSelectNoEntriesFoundDirective,\n ],\n exports: [\n MatSelectSearchComponent,\n MatSelectSearchClearDirective,\n MatSelectNoEntriesFoundDirective,\n ],\n})\nexport class MatSelectSearchModule {}\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n HostBinding,\n inject,\n Input,\n Output,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { MatRadioButton, MatRadioChange } from '@angular/material/radio';\nimport { MatCard, MatCardContent, MatCardTitle } from '@angular/material/card';\nimport { MatLabel } from '@angular/material/form-field';\nimport { MatIcon } from '@angular/material/icon';\nimport { OnemrvaMatSize } from '@onemrvapublic/design-system/utils';\nimport { OnemRvaSizeDirective } from '@onemrvapublic/design-system/shared';\n\nlet NEXT_ID = 0;\n\n@Component({\n selector: 'onemrva-mat-selectable-box',\n templateUrl: './onemrva-mat-selectable-box.component.html',\n styleUrl: './onemrva-mat-selectable-box.component.scss',\n standalone: true,\n encapsulation: ViewEncapsulation.None,\n imports: [\n MatCardTitle,\n MatCard,\n MatRadioButton,\n MatLabel,\n MatIcon,\n MatCardContent,\n OnemRvaSizeDirective,\n ],\n})\nexport class OnemrvaMatSelectableBoxComponent implements AfterViewInit {\n @HostBinding('attr.id')\n @Input()\n public id = `onemrva-mat-selectable-box-${NEXT_ID++}`;\n\n @ViewChild('radioButton')\n radioButton: MatRadioButton | undefined;\n\n @Input()\n value = '';\n\n @Input()\n disabled = false;\n\n @Input()\n checked = false;\n\n @Input()\n iconSize: OnemrvaMatSize = '';\n\n @Output()\n valueChange = new EventEmitter<MatRadioChange>();\n\n changeDetectorRef = inject(ChangeDetectorRef);\n\n ngAfterViewInit() {\n this.changeDetectorRef.detectChanges();\n }\n\n valueChanged(event: MatRadioChange) {\n this.valueChange.emit(event);\n }\n\n isChecked() {\n return this.radioButton?._inputElement.nativeElement.checked;\n }\n\n triggerRadioClick() {\n if (\n this.radioButton &&\n !this.radioButton.checked &&\n !this.radioButton.disabled\n ) {\n // https://v11.material.angular.io/components/radio/api\n // Changing checked prop does not trigger a change event on the button or radiogroup,\n // only on user-interaction. Workaround trigger/simulate a click event.\n this.radioButton._inputElement.nativeElement.dispatchEvent(\n new MouseEvent('click', { bubbles: false }),\n );\n }\n }\n}\n","<mat-card\n [class.checked]=\"isChecked()\"\n [class.disabled]=\"disabled\"\n class=\"onemrva-selectable-box m-m clickable\"\n (click)=\"triggerRadioClick()\"\n>\n <mat-card-title class=\"selectablebox-title\">\n <mat-radio-button\n #radioButton\n (change)=\"valueChanged($event)\"\n aria-label=\"Selected\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n [value]=\"value\"\n >\n </mat-radio-button>\n\n <mat-label class=\"mr\">\n <ng-content select=\"[title]\"></ng-content>\n </mat-label>\n\n <mat-icon class=\"selectable-box-icon\" [size]=\"iconSize\">\n <ng-content select=\"[icon]\"></ng-content>\n </mat-icon>\n\n <span class=\"sticker\"><ng-content select=\"[sticker]\"></ng-content></span>\n </mat-card-title>\n\n <mat-card-content>\n <ng-content></ng-content>\n </mat-card-content>\n</mat-card>\n","import { NgModule } from '@angular/core';\nimport { OnemrvaMatSelectableBoxComponent } from './onemrva-mat-selectable-box.component';\n\n@NgModule({\n declarations: [],\n imports: [OnemrvaMatSelectableBoxComponent],\n exports: [OnemrvaMatSelectableBoxComponent],\n})\nexport class OnemrvaMatSelectableBoxModule {}\n","/*\n * Public API Surface of mat-selectable-box\n */\n\nexport * from './src/onemrva-mat-selectable-box.component';\nexport * from './src/onemrva-mat-selectable-box.module';\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n OnInit,\n OnDestroy,\n inject,\n} from '@angular/core';\nimport {\n BreakpointObserver,\n Breakpoints,\n BreakpointState,\n} from '@angular/cdk/layout';\nimport { Subscription } from 'rxjs';\nimport { MatChip, MatChipRow } from '@angular/material/chips';\nimport { NgClass } from '@angular/common';\nimport { TranslatePipe } from '@ngx-translate/core';\n\nexport interface OnemrvaMenu {\n wordingKey: string;\n path?: string;\n key?: string;\n}\n\n@Component({\n selector: 'onemrva-mat-side-menu',\n templateUrl: 'onemrva-mat-side-menu.component.html',\n styleUrl: 'onemrva-mat-side-menu.component.scss',\n styles: [],\n standalone: true,\n imports: [MatChip, MatChipRow, NgClass, TranslatePipe],\n})\nexport class OnemrvaMatSideMenuComponent implements OnInit, OnDestroy {\n @Input() menuHeaderKey!: string;\n @Input() menus!: OnemrvaMenu[];\n @Input() currentMenu?: string; // string to be matched against menu.path or menu.key\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n @Output() onSelectOption = new EventEmitter<OnemrvaMenu>();\n\n isSmall = true;\n breakpointObserverSubscription?: Subscription;\n\n breakpointObserver = inject(BreakpointObserver);\n\n ngOnInit(): void {\n this.breakpointObserverSubscription = this.breakpointObserver\n .observe([Breakpoints.XSmall, Breakpoints.Small])\n .subscribe((state: BreakpointState) => {\n if (state.matches) {\n this.isSmall = true;\n } else {\n this.isSmall = false;\n }\n });\n }\n\n ngOnDestroy(): void {\n this.breakpointObserverSubscription?.unsubscribe();\n }\n\n selectMenu(menu: OnemrvaMenu) {\n this.onSelectOption.emit(menu);\n }\n}\n","@if (isSmall) {\n <mat-chip-row class=\"onemrva-side-menu\" role=\"navigation\">\n @for (menu of menus; track menu.key; let i = $index) {\n <mat-chip\n role=\"\"\n class=\"onemrva-side-menu-option\"\n (click)=\"selectMenu(menu)\"\n [ngClass]=\"{\n 'onemrva-side-menu-current-option':\n menu.path === currentMenu || menu.key === currentMenu,\n }\"\n [attr.data-cy]=\"'onemrva-side-menu-chip-option_' + i\"\n >\n {{ menu.wordingKey | translate }}\n </mat-chip>\n }\n </mat-chip-row>\n} @else {\n <div class=\"onemrva-side-menu onemrva-expanded-side-menu\">\n <div class=\"onemrva-side-menu-header\">{{ menuHeaderKey | translate }}</div>\n @for (menu of menus; track menu.key; let mnidx = $index) {\n <div\n tabindex=\"1\"\n role=\"button\"\n class=\"onemrva-side-menu-option\"\n [ngClass]=\"{\n 'onemrva-side-menu-current-option':\n menu.path === currentMenu || menu.key === currentMenu,\n }\"\n (click)=\"selectMenu(menu)\"\n [attr.data-cy]=\"'onemrva-side-menu-option_' + mnidx\"\n >\n {{ menu.wordingKey | translate }}\n </div>\n }\n </div>\n}\n","import { NgModule } from '@angular/core';\n\nimport { OnemrvaMatSideMenuComponent } from './onemrva-mat-side-menu.component';\n\n@NgModule({\n declarations: [],\n imports: [OnemrvaMatSideMenuComponent],\n exports: [OnemrvaMatSideMenuComponent],\n})\nexport class OnemrvaMatSideMenuModule {}\n","/*\n * Public API Surface of mat-side-menu\n */\n\nexport * from './src/onemrva-mat-side-menu.component';\nexport * from './src/onemrva-mat-side-menu.module';\n","import { mkenum } from '@onemrvapublic/design-system/utils';\n\nexport type OnemrvaSkeletonLoaderConfigTheme = Record<string, any> | null;\n\nexport const OnemrvaMatSkeletonAnimations = mkenum({\n PULSE: 'pulse',\n PROGRESS: 'progress',\n NONE: 'none',\n});\nexport type OnemrvaMatSkeletonAnimations =\n (typeof OnemrvaMatSkeletonAnimations)[keyof typeof OnemrvaMatSkeletonAnimations];\n\nexport const OnemrvaMatSkeletoTypes = mkenum({\n H1: 'h1',\n H2: 'h2',\n H3: 'h3',\n H4: 'h4',\n H5: 'h5',\n H6: 'h6',\n BUTTON: 'button',\n CIRCLE: 'circle',\n SQUARE: 'square',\n CUSTOM: 'custom',\n LINE: '',\n});\nexport type OnemrvaMatSkeletoTypes =\n (typeof OnemrvaMatSkeletoTypes)[keyof typeof OnemrvaMatSkeletoTypes];\n","import {\n Component,\n OnInit,\n Input,\n HostBinding,\n OnChanges,\n} from '@angular/core';\nimport { OnemrvaMatSize } from '@onemrvapublic/design-system/utils';\nimport {\n OnemrvaMatSkeletonAnimations,\n OnemrvaMatSkeletoTypes,\n OnemrvaSkeletonLoaderConfigTheme,\n} from './onemrva-mat-skeleton-enums';\nimport { NgStyle } from '@angular/common';\n\nlet NEXT_ID = 0;\n\n/**\n * Skeleton provides a way to display loading element while page is loading.\n *\n * @MatModule OnemrvaMatSkeletonModule\n *\n * @MatKeywords skeleton, loading, progress\n *\n * @example\n * ```html\n * <onemrva-mat-skeleton type=\"avatar\" size=\"large\">\n * </onemrva-mat-skeleton>\n * ```\n */\n@Component({\n selector: 'onemrva-mat-skeleton',\n templateUrl: 'onemrva-mat-skeleton.component.html',\n styleUrls: ['onemrva-mat-skeleton.component.scss'],\n standalone: true,\n imports: [NgStyle],\n})\nexport class OnemrvaMatSkeletonComponent implements OnInit, OnChanges {\n @Input()\n count = 1;\n\n @Input()\n animation: OnemrvaMatSkeletonAnimations =\n OnemrvaMatSkeletonAnimations.PROGRESS;\n\n @Input()\n type: OnemrvaMatSkeletoTypes = OnemrvaMatSkeletoTypes.LINE;\n\n @Input()\n size: OnemrvaMatSize = OnemrvaMatSize.MEDIUM;\n\n @Input()\n theme: OnemrvaSkeletonLoaderConfigTheme = [];\n\n @HostBinding('attr.aria-label')\n @Input()\n ariaLabel = 'loading';\n\n @HostBinding('attr.role')\n @Input()\n public role = 'progressbar';\n\n @HostBinding('attr.valuetext')\n @Input()\n public loadingText = 'Loading...';\n\n @HostBinding('attr.id')\n @Input()\n public id = `onemrva-mat-skeleton-${NEXT_ID++}`;\n\n /** @hidden @internal */\n @HostBinding('class.progress')\n public get _isProgress(): boolean {\n return this.animation === OnemrvaMatSkeletonAnimations.PROGRESS;\n }\n\n /** @hidden @internal */\n @HostBinding('class.pulse')\n public get _isPulse(): boolean {\n return this.animation === OnemrvaMatSkeletonAnimations.PULSE;\n }\n\n /** @hidden @internal */\n @HostBinding('class.h1')\n public get isH1(): boolean {\n return this.type === OnemrvaMatSkeletoTypes.H1;\n }\n\n /** @hidden @internal */\n @HostBinding('class.h2')\n public get isH2(): boolean {\n return this.type === OnemrvaMatSkeletoTypes.H2;\n }\n\n /** @hidden @internal */\n @HostBinding('class.h3')\n public get isH3(): boolean {\n return this.type === OnemrvaMatSkeletoTypes.H3;\n }\n\n /** @hidden @internal */\n @HostBinding('class.h4')\n public get isH4(): boolean {\n return this.type === OnemrvaMatSkeletoTypes.H4;\n }\n\n /** @hidden @internal */\n @HostBinding('class.h5')\n public get isH5(): boolean {\n return this.type === OnemrvaMatSkeletoTypes.H5;\n }\n\n /** @hidden @internal */\n @HostBinding('class.h6')\n public get isH6(): boolean {\n return this.type === OnemrvaMatSkeletoTypes.H6;\n }\n\n /** @hidden @internal */\n @HostBinding('class.line')\n public get _isLine(): boolean {\n return this.type === OnemrvaMatSkeletoTypes.LINE;\n }\n\n /** @hidden @internal */\n @HostBinding('class.button')\n public get _isButton(): boolean {\n return this.type === OnemrvaMatSkeletoTypes.BUTTON;\n }\n\n /** @hidden @internal */\n @HostBinding('class.circle')\n public get _isCircle(): boolean {\n return this.type === OnemrvaMatSkeletoTypes.CIRCLE;\n }\n\n /** @hidden @internal */\n @HostBinding('class.square')\n public get _isSquare(): boolean {\n return this.type === OnemrvaMatSkeletoTypes.SQUARE;\n }\n\n /** @hidden @internal */\n @HostBinding('class.custom')\n public get _isCustom(): boolean {\n return this.type === OnemrvaMatSkeletoTypes.CUSTOM;\n }\n\n /** @hidden @internal */\n @HostBinding('class.onemrva-mat-avatar--xsmall')\n public get _isXSmallSize(): boolean {\n return this.size === OnemrvaMatSize.XSMALL;\n }\n /** @hidden @internal */\n @HostBinding('class.onemrva-mat-avatar--small')\n public get _isSmallSize(): boolean {\n return this.size === OnemrvaMatSize.SMALL;\n }\n /** @hidden @internal */\n @HostBinding('class.onemrva-mat-avatar--medium')\n public get _isMediumSize(): boolean {\n return this.size === OnemrvaMatSize.MEDIUM;\n }\n /** @hidden @internal */\n @HostBinding('class.onemrva-mat-avatar--large')\n public get _isLargeSize(): boolean {\n return this.size === OnemrvaMatSize.LARGE;\n }\n /** @hidden @internal */\n @HostBinding('class.onemrva-mat-avatar--xlarge')\n public get _isXLargeSize(): boolean {\n return this.size === OnemrvaMatSize.XLARGE;\n }\n\n public items: any[] = [];\n\n ngOnInit() {\n this.items.length = this.count;\n }\n\n ngOnChanges() {\n this.items.length = this.count;\n }\n}\n","@for (item of items; track item) {\n <div\n class=\"skeleton-loader\"\n aria-busy=\"true\"\n aria-valuemin=\"0\"\n aria-valuemax=\"100\"\n role=\"progressbar\"\n aria-label=\"loading\"\n [ngStyle]=\"theme\"\n >\n @if (type === 'custom') {\n <ng-content></ng-content>\n }\n </div>\n}\n","import { NgModule } from '@angular/core';\nimport { OnemrvaMatSkeletonComponent } from './onemrva-mat-skeleton.component';\n\n@NgModule({\n declarations: [],\n imports: [OnemrvaMatSkeletonComponent],\n exports: [OnemrvaMatSkeletonComponent],\n})\nexport class OnemrvaMatSkeletonModule {}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'onemrva-mat-spinner',\n templateUrl: 'onemrva-mat-spinner.component.html',\n styleUrl: 'onemrva-mat-spinner.component.scss',\n standalone: true,\n})\nexport class OnemrvaMatSpinnerComponent {}\n","<div class=\"onemrva-spinner-container\">\n <div class=\"onemrva-spinner\">\n <svg\n width=\"400\"\n height=\"400\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"30 30 340 340\"\n >\n <g>\n <circle\n cx=\"202.6178609655925\"\n cy=\"349.9771542734587\"\n r=\"16\"\n opacity=\"35.9\"\n ></circle>\n <circle\n cx=\"205.23492450537515\"\n cy=\"349.90862405286435\"\n r=\"16\"\n opacity=\"17.9\"\n ></circle>\n <circle\n cx=\"207.85039343644158\"\n cy=\"349.79443021318605\"\n r=\"16\"\n opacity=\"11.9\"\n ></circle>\n <circle\n cx=\"210.4634710616188\"\n cy=\"349.6346075389736\"\n r=\"16\"\n opacity=\"8.9\"\n ></circle>\n <circle\n cx=\"213.07336141214873\"\n cy=\"349.4292047137618\"\n r=\"16\"\n opacity=\"7.1\"\n ></circle>\n <circle\n cx=\"215.67926949014802\"\n cy=\"349.178284305241\"\n r=\"16\"\n opacity=\"5.9\"\n ></circle>\n <circle\n cx=\"218.28040151077212\"\n cy=\"348.88192274619826\"\n r=\"16\"\n opacity=\"5.042857142857143\"\n ></circle>\n <circle\n cx=\"220.87596514400983\"\n cy=\"348.54021031123557\"\n r=\"16\"\n opacity=\"4.4\"\n ></circle>\n <circle\n cx=\"223.46516975603464\"\n cy=\"348.15325108927067\"\n r=\"16\"\n opacity=\"3.9\"\n ></circle>\n <circle\n cx=\"226.04722665003956\"\n cy=\"347.72116295183116\"\n r=\"16\"\n opacity=\"3.5\"\n ></circle>\n <circle\n cx=\"228.62134930648173\"\n cy=\"347.2440775171496\"\n r=\"16\"\n opacity=\"3.1727272727272724\"\n ></circle>\n <circle\n cx=\"231.1867536226639\"\n cy=\"346.7221401100709\"\n r=\"16\"\n opacity=\"2.9\"\n ></circle>\n <circle\n cx=\"233.74265815157975\"\n cy=\"346.1555097177853\"\n r=\"16\"\n opacity=\"2.669230769230769\"\n ></circle>\n <circle\n cx=\"236.28828433995017\"\n cy=\"345.5443589413995\"\n r=\"16\"\n opacity=\"2.4714285714285715\"\n ></circle>\n <circle\n cx=\"238.8228567653781\"\n cy=\"344.88887394336024\"\n r=\"16\"\n opacity=\"2.3\"\n ></circle>\n <circle\n cx=\"241.34560337254987\"\n cy=\"344.1892543907478\"\n r=\"16\"\n opacity=\"2.15\"\n ></circle>\n <circle\n cx=\"243.85575570841053\"\n cy=\"343.4457133944553\"\n r=\"16\"\n opacity=\"2.0176470588235293\"\n ></circle>\n <circle\n cx=\"246.3525491562421\"\n cy=\"342.658477444273\"\n r=\"16\"\n opacity=\"1.9\"\n ></circle>\n <circle\n cx=\"248.8352231685735\"\n cy=\"341.82778633989756\"\n r=\"16\"\n opacity=\"1.7947368421052632\"\n ></circle>\n <circle\n cx=\"251.3030214988503\"\n cy=\"340.95389311788625\"\n r=\"16\"\n opacity=\"1.7\"\n ></circle>\n <circle\n cx=\"253.75519243179502\"\n cy=\"340.0370639745803\"\n r=\"16\"\n opacity=\"1.6142857142857143\"\n ></circle>\n <circle\n cx=\"256.1909890123868\"\n cy=\"339.0775781850181\"\n r=\"16\"\n opacity=\"1.5363636363636362\"\n ></circle>\n <circle\n cx=\"258.60966927339103\"\n cy=\"338.075728017866\"\n r=\"16\"\n opacity=\"1.465217391304348\"\n ></circle>\n <circle\n cx=\"261.01049646137005\"\n cy=\"337.0318186463901\"\n r=\"16\"\n opacity=\"1.4\"\n ></circle>\n <circle\n cx=\"263.3927392611049\"\n cy=\"335.9461680554975\"\n r=\"16\"\n opacity=\"1.34\"\n ></circle>\n <circle\n cx=\"265.7556720183616\"\n cy=\"334.81910694487505\"\n r=\"16\"\n opacity=\"1.2846153846153847\"\n ></circle>\n <circle\n cx=\"268.098574960932\"\n cy=\"333.6509786282552\"\n r=\"16\"\n opacity=\"1.2333333333333334\"\n ></circle>\n <circle\n cx=\"270.42073441788364\"\n cy=\"332.4421389288391\"\n r=\"16\"\n opacity=\"1.1857142857142857\"\n ></circle>\n <circle\n cx=\"272.7214430369506\"\n cy=\"331.19295607090936\"\n r=\"16\"\n opacity=\"1.1413793103448275\"\n ></circle>\n <circle cx=\"275\" cy=\"329.9038105676658\" r=\"16\" opacity=\"1.1\"></circle>\n <circle\n cx=\"277.2557112365081\"\n cy=\"328.57509510531685\"\n r=\"16\"\n opacity=\"1.0612903225806452\"\n ></circle>\n <circle\n cx=\"279.4878896349807\"\n cy=\"327.2072144234639\"\n r=\"16\"\n opacity=\"1.025\"\n ></circle>\n <circle\n cx=\"281.6958552522541\"\n cy=\"325.80058519181364\"\n r=\"16\"\n opacity=\"0.990909090909091\"\n ></circle>\n <circle\n cx=\"283.878935520612\"\n cy=\"324.35563588325624\"\n r=\"16\"\n opacity=\"0.9588235294117647\"\n ></circle>\n <circle\n cx=\"286.0364654526569\"\n cy=\"322.8728066433488\"\n r=\"16\"\n opacity=\"0.9285714285714286\"\n ></circle>\n <circle\n cx=\"288.167787843871\"\n cy=\"321.3525491562421\"\n r=\"16\"\n opacity=\"0.9\"\n ></circle>\n <circle\n cx=\"290.2722534728072\"\n cy=\"319.79532650709393\"\n r=\"16\"\n opacity=\"0.8729729729729732\"\n ></circle>\n <circle\n cx=\"292.34922129884876\"\n cy=\"318.2016130410083\"\n r=\"16\"\n opacity=\"0.8473684210526315\"\n ></circle>\n <circle\n cx=\"294.3980586574756\"\n cy=\"316.57189421854565\"\n r=\"16\"\n opacity=\"0.823076923076923\"\n ></circle>\n <circle\n cx=\"296.4181414529809\"\n cy=\"314.9066664678467\"\n r=\"16\"\n opacity=\"0.8\"\n ></circle>\n <circle\n cx=\"298.4088543485761\"\n cy=\"313.2064370334158\"\n r=\"16\"\n opacity=\"0.7780487804878049\"\n ></circle>\n <circle\n cx=\"300.3695909538287\"\n cy=\"311.47172382160915\"\n r=\"16\"\n opacity=\"0.7571428571428571\"\n ></circle>\n <circle\n cx=\"302.29975400937474\"\n cy=\"309.7030552428756\"\n r=\"16\"\n opacity=\"0.7372093023255814\"\n ></circle>\n <circle\n cx=\"304.1987555688496\"\n cy=\"307.9009700507977\"\n r=\"16\"\n opacity=\"0.7181818181818181\"\n ></circle>\n <circle\n cx=\"306.06601717798213\"\n cy=\"306.06601717798213\"\n r=\"16\"\n opacity=\"0.7\"\n ></circle>\n <circle\n cx=\"307.9009700507977\"\n cy=\"304.1987555688496\"\n r=\"16\"\n opacity=\"0.682608695652174\"\n ></circle>\n <circle\n cx=\"309.70305524287556\"\n cy=\"302.29975400937474\"\n r=\"16\"\n opacity=\"0.6659574468085107\"\n ></circle>\n <circle\n cx=\"311.47172382160915\"\n cy=\"300.3695909538287\"\n r=\"16\"\n opacity=\"0.65\"\n ></circle>\n <circle\n cx=\"313.2064370334158\"\n cy=\"298.4088543485761\"\n r=\"16\"\n opacity=\"0.6346938775510204\"\n ></circle>\n <circle\n cx=\"314.9066664678467\"\n cy=\"296.4181414529809\"\n r=\"16\"\n opacity=\"0.62\"\n ></circle>\n <circle\n cx=\"316.5718942185456\"\n cy=\"294.39805865747564\"\n r=\"16\"\n opacity=\"0.6058823529411764\"\n ></circle>\n <circle\n cx=\"318.2016130410083\"\n cy=\"292.34922129884876\"\n r=\"16\"\n opacity=\"0.5923076923076923\"\n ></circle>\n <circle\n cx=\"319.79532650709393\"\n cy=\"290.2722534728073\"\n r=\"16\"\n opacity=\"0.5792452830188679\"\n ></circle>\n <circle\n cx=\"321.3525491562421\"\n cy=\"288.167787843871\"\n r=\"16\"\n opacity=\"0.5666666666666667\"\n ></circle>\n <circle\n cx=\"322.8728066433488\"\n cy=\"286.0364654526569\"\n r=\"16\"\n opacity=\"0.5545454545454546\"\n ></circle>\n <circle\n cx=\"324.35563588325624\"\n cy=\"283.878935520612\"\n r=\"16\"\n opacity=\"0.5428571428571428\"\n ></circle>\n <circle\n cx=\"325.8005851918136\"\n cy=\"281.6958552522541\"\n r=\"16\"\n opacity=\"0.531578947368421\"\n ></circle>\n <circle\n cx=\"327.2072144234639\"\n cy=\"279.4878896349807\"\n r=\"16\"\n opacity=\"0.5206896551724138\"\n ></circle>\n <circle\n cx=\"328.5750951053168\"\n cy=\"277.25571123650815\"\n r=\"16\"\n opacity=\"0.5101694915254237\"\n ></circle>\n <circle cx=\"329.9038105676658\" cy=\"275\" r=\"16\" opacity=\"0.5\"></circle>\n <circle\n cx=\"331.19295607090936\"\n cy=\"272.7214430369506\"\n r=\"16\"\n opacity=\"0.4901639344262295\"\n ></circle>\n <circle\n cx=\"332.44213892883903\"\n cy=\"270.42073441788364\"\n r=\"16\"\n opacity=\"0.4806451612903226\"\n ></circle>\n <circle\n cx=\"333.6509786282552\"\n cy=\"268.098574960932\"\n r=\"16\"\n opacity=\"0.4714285714285714\"\n ></circle>\n <circle\n cx=\"334.81910694487505\"\n cy=\"265.7556720183616\"\n r=\"16\"\n opacity=\"0.4625\"\n ></circle>\n <circle\n cx=\"335.9461680554975\"\n cy=\"263.3927392611049\"\n r=\"16\"\n opacity=\"0.45384615384615384\"\n ></circle>\n <circle\n cx=\"337.0318186463901\"\n cy=\"261.01049646137005\"\n r=\"16\"\n opacity=\"0.44545454545454544\"\n ></circle>\n <circle\n cx=\"338.075728017866\"\n cy=\"258.6096692733911\"\n r=\"16\"\n opacity=\"0.4373134328358209\"\n ></circle>\n <circle\n cx=\"339.0775781850181\"\n cy=\"256.1909890123868\"\n r=\"16\"\n opacity=\"0.4294117647058823\"\n ></circle>\n <circle\n cx=\"340.0370639745803\"\n cy=\"253.75519243179505\"\n r=\"16\"\n opacity=\"0.4217391304347826\"\n ></circle>\n <circle\n cx=\"340.95389311788625\"\n cy=\"251.3030214988503\"\n r=\"16\"\n opacity=\"0.4142857142857143\"\n ></circle>\n <circle\n cx=\"341.8277863398975\"\n cy=\"248.83522316857352\"\n r=\"16\"\n opacity=\"0.4070422535211268\"\n ></circle>\n <circle\n cx=\"342.658477444273\"\n cy=\"246.3525491562421\"\n r=\"16\"\n opacity=\"0.4\"\n ></circle>\n <circle\n cx=\"343.4457133944553\"\n cy=\"243.85575570841053\"\n r=\"16\"\n opacity=\"0.39315068493150684\"\n ></circle>\n <circle\n cx=\"344.1892543907478\"\n cy=\"241.34560337254987\"\n r=\"16\"\n opacity=\"0.38648648648648654\"\n ></circle>\n <circle\n cx=\"344.88887394336024\"\n cy=\"238.8228567653781\"\n r=\"16\"\n opacity=\"0.38\"\n ></circle>\n <circle\n cx=\"345.5443589413995\"\n cy=\"236.2882843399502\"\n r=\"16\"\n opacity=\"0.3736842105263158\"\n ></circle>\n <circle\n cx=\"346.1555097177853\"\n cy=\"233.74265815157975\"\n r=\"16\"\n opacity=\"0.36753246753246754\"\n ></circle>\n <circle\n cx=\"346.7221401100708\"\n cy=\"231.18675362266393\"\n r=\"16\"\n opacity=\"0.36153846153846153\"\n ></circle>\n <circle\n cx=\"347.2440775171496\"\n cy=\"228.62134930648173\"\n r=\"16\"\n opacity=\"0.3556962025316455\"\n ></circle>\n <circle\n cx=\"347.72116295183116\"\n cy=\"226.04722665003956\"\n r=\"16\"\n opacity=\"0.35\"\n ></circle>\n <circle\n cx=\"348.15325108927067\"\n cy=\"223.46516975603464\"\n r=\"16\"\n opacity=\"0.34444444444444444\"\n ></circle>\n <circle\n cx=\"348.54021031123557\"\n cy=\"220.87596514400985\"\n r=\"16\"\n opacity=\"0.33902439024390246\"\n ></circle>\n <circle\n cx=\"348.88192274619826\"\n cy=\"218.28040151077212\"\n r=\"16\"\n opacity=\"0.3337349397590362\"\n ></circle>\n <circle\n cx=\"349.178284305241\"\n cy=\"215.67926949014802\"\n r=\"16\"\n opacity=\"0.32857142857142857\"\n ></circle>\n <circle\n cx=\"349.4292047137618\"\n cy=\"213.07336141214873\"\n r=\"16\"\n opacity=\"0.3235294117647059\"\n ></circle>\n <circle\n cx=\"349.6346075389736\"\n cy=\"210.4634710616188\"\n r=\"16\"\n opacity=\"0.3186046511627907\"\n ></circle>\n <circle\n cx=\"349.79443021318605\"\n cy=\"207.8503934364416\"\n r=\"16\"\n opacity=\"0.3137931034482759\"\n ></circle>\n <circle\n cx=\"349.90862405286435\"\n cy=\"205.23492450537515\"\n r=\"16\"\n opacity=\"0.309090909090909\"\n ></circle>\n <circle\n cx=\"349.9771542734587\"\n cy=\"202.6178609655925\"\n r=\"16\"\n opacity=\"0.3044943820224719\"\n ></circle>\n <circle cx=\"350\" cy=\"200\" r=\"16\" opacity=\"0.3\"></circle>\n <circle\n cx=\"349.9771542734587\"\n cy=\"197.3821390344075\"\n r=\"16\"\n opacity=\"0.2956043956043956\"\n ></circle>\n <circle\n cx=\"349.90862405286435\"\n cy=\"194.76507549462488\"\n r=\"16\"\n opacity=\"0.291304347826087\"\n ></circle>\n <circle\n cx=\"349.79443021318605\"\n cy=\"192.14960656355845\"\n r=\"16\"\n opacity=\"0.2870967741935484\"\n ></circle>\n <circle\n cx=\"349.6346075389736\"\n cy=\"189.5365289383812\"\n r=\"16\"\n opacity=\"0.28297872340425534\"\n ></circle>\n <circle\n cx=\"349.4292047137618\"\n cy=\"186.92663858785127\"\n r=\"16\"\n opacity=\"0.2789473684210526\"\n ></circle>\n <circle\n cx=\"349.17828430524105\"\n cy=\"184.320730509852\"\n r=\"16\"\n opacity=\"0.275\"\n ></circle>\n <circle\n cx=\"348.8819227461983\"\n cy=\"181.7195984892279\"\n r=\"16\"\n opacity=\"0.2711340206185567\"\n ></circle>\n <circle\n cx=\"348.54021031123557\"\n cy=\"179.1240348559902\"\n r=\"16\"\n opacity=\"0.2673469387755102\"\n ></circle>\n <circle\n cx=\"348.1532510892706\"\n cy=\"176.53483024396536\"\n r=\"16\"\n opacity=\"0.2636363636363636\"\n ></circle>\n <circle\n cx=\"347.72116295183116\"\n cy=\"173.95277334996047\"\n r=\"16\"\n opacity=\"0.26\"\n ></circle>\n <circle\n cx=\"347.2440775171496\"\n cy=\"171.37865069351827\"\n r=\"16\"\n opacity=\"0.25643564356435644\"\n ></circle>\n <circle\n cx=\"346.7221401100709\"\n cy=\"168.81324637733613\"\n r=\"16\"\n opacity=\"0.2529411764705882\"\n ></circle>\n <circle\n cx=\"346.1555097177853\"\n cy=\"166.25734184842028\"\n r=\"16\"\n opacity=\"0.24951456310679612\"\n ></circle>\n <circle\n cx=\"345.5443589413995\"\n cy=\"163.71171566004983\"\n r=\"16\"\n opacity=\"0.24615384615384617\"\n ></circle>\n <circle\n cx=\"344.88887394336024\"\n cy=\"161.17714323462187\"\n r=\"16\"\n opacity=\"0.24285714285714285\"\n ></circle>\n <circle\n cx=\"344.1892543907478\"\n cy=\"158.65439662745013\"\n r=\"16\"\n opacity=\"0.23962264150943396\"\n ></circle>\n <circle\n cx=\"343.4457133944553\"\n cy=\"156.1442442915895\"\n r=\"16\"\n opacity=\"0.23644859813084113\"\n ></circle>\n <circle\n cx=\"342.65847744427305\"\n cy=\"153.6474508437579\"\n r=\"16\"\n opacity=\"0.23333333333333334\"\n ></circle>\n <circle\n cx=\"341.82778633989756\"\n cy=\"151.16477683142654\"\n r=\"16\"\n opacity=\"0.23027522935779818\"\n ></circle>\n <circle\n cx=\"340.95389311788625\"\n cy=\"148.6969785011497\"\n r=\"16\"\n opacity=\"0.22727272727272727\"\n ></circle>\n <circle\n cx=\"340.0370639745803\"\n cy=\"146.24480756820498\"\n r=\"16\"\n opacity=\"0.22432432432432434\"\n ></circle>\n <circle\n cx=\"339.0775781850181\"\n cy=\"143.8090109876132\"\n r=\"16\"\n opacity=\"0.22142857142857142\"\n ></circle>\n <circle\n cx=\"338.075728017866\"\n cy=\"141.39033072660897\"\n r=\"16\"\n opacity=\"0.21858407079646017\"\n ></circle>\n <circle\n cx=\"337.03181864639015\"\n cy=\"138.98950353863\"\n r=\"16\"\n opacity=\"0.21578947368421053\"\n ></circle>\n <circle\n cx=\"335.94616805549754\"\n cy=\"136.6072607388951\"\n r=\"16\"\n opacity=\"0.21304347826086956\"\n ></circle>\n <circle\n cx=\"334.81910694487505\"\n cy=\"134.24432798163838\"\n r=\"16\"\n opacity=\"0.2103448275862069\"\n ></circle>\n <circle\n cx=\"333.6509786282552\"\n cy=\"131.901425039068\"\n r=\"16\"\n opacity=\"0.2076923076923077\"\n ></circle>\n <circle\n cx=\"332.4421389288391\"\n cy=\"129.57926558211642\"\n r=\"16\"\n opacity=\"0.20508474576271185\"\n ></circle>\n <circle\n cx=\"331.1929560709094\"\n cy=\"127.27855696304945\"\n r=\"16\"\n opacity=\"0.20252100840336135\"\n ></circle>\n <circle\n cx=\"329.9038105676658\"\n cy=\"125.00000000000003\"\n r=\"16\"\n opacity=\"0.2\"\n ></circle>\n <circle\n cx=\"328.57509510531685\"\n cy=\"122.74428876349187\"\n r=\"16\"\n opacity=\"0.1975206611570248\"\n ></circle>\n <circle\n cx=\"327.20721442346394\"\n cy=\"120.51211036501928\"\n r=\"16\"\n opacity=\"0.19508196721311474\"\n ></circle>\n <circle\n cx=\"325.8005851918136\"\n cy=\"118.30414474774594\"\n r=\"16\"\n opacity=\"0.1926829268292683\"\n ></circle>\n <circle\n cx=\"324.35563588325624\"\n cy=\"116.121064479388\"\n r=\"16\"\n opacity=\"0.19032258064516128\"\n ></circle>\n <circle\n cx=\"322.8728066433488\"\n cy=\"113.96353454734313\"\n r=\"16\"\n opacity=\"0.188\"\n ></circle>\n <circle\n cx=\"321.3525491562421\"\n cy=\"111.83221215612905\"\n r=\"16\"\n opacity=\"0.18571428571428572\"\n ></circle>\n <circle\n cx=\"319.79532650709393\"\n cy=\"109.72774652719275\"\n r=\"16\"\n opacity=\"0.18346456692913385\"\n ></circle>\n <circle\n cx=\"318.2016130410083\"\n cy=\"107.65077870115125\"\n r=\"16\"\n opacity=\"0.18125\"\n ></circle>\n <circle\n cx=\"316.57189421854565\"\n cy=\"105.60194134252441\"\n r=\"16\"\n opacity=\"0.17906976744186046\"\n ></circle>\n <circle\n cx=\"314.9066664678467\"\n cy=\"103.5818585470191\"\n r=\"16\"\n opacity=\"0.17692307692307693\"\n ></circle>\n <circle\n cx=\"313.2064370334158\"\n cy=\"101.59114565142387\"\n r=\"16\"\n opacity=\"0.17480916030534352\"\n ></circle>\n <circle\n cx=\"311.47172382160915\"\n cy=\"99.63040904617127\"\n r=\"16\"\n opacity=\"0.17272727272727273\"\n ></circle>\n <circle\n cx=\"309.7030552428756\"\n cy=\"97.70024599062525\"\n r=\"16\"\n opacity=\"0.17067669172932332\"\n ></circle>\n <circle\n cx=\"307.9009700507977\"\n cy=\"95.80124443115045\"\n r=\"16\"\n opacity=\"0.16865671641791044\"\n ></circle>\n <circle\n cx=\"306.06601717798213\"\n cy=\"93.93398282201788\"\n r=\"16\"\n opacity=\"0.16666666666666666\"\n ></circle>\n <circle\n cx=\"304.1987555688496\"\n cy=\"92.09902994920232\"\n r=\"16\"\n opacity=\"0.16470588235294117\"\n ></circle>\n <circle\n cx=\"302.2997540093748\"\n cy=\"90.29694475712444\"\n r=\"16\"\n opacity=\"0.16277372262773723\"\n ></circle>\n <circle\n cx=\"300.3695909538287\"\n cy=\"88.5282761783909\"\n r=\"16\"\n opacity=\"0.1608695652173913\"\n ></circle>\n <circle\n cx=\"298.4088543485761\"\n cy=\"86.7935629665842\"\n r=\"16\"\n opacity=\"0.15899280575539568\"\n ></circle>\n <circle\n cx=\"296.41814145298093\"\n cy=\"85.09333353215331\"\n r=\"16\"\n opacity=\"0.15714285714285714\"\n ></circle>\n <circle\n cx=\"294.39805865747564\"\n cy=\"83.42810578145439\"\n r=\"16\"\n opacity=\"0.15531914893617021\"\n ></circle>\n <circle\n cx=\"292.34922129884876\"\n cy=\"81.79838695899171\"\n r=\"16\"\n opacity=\"0.15352112676056337\"\n ></circle>\n <circle\n cx=\"290.2722534728072\"\n cy=\"80.20467349290605\"\n r=\"16\"\n opacity=\"0.15174825174825174\"\n ></circle>\n <circle\n cx=\"288.167787843871\"\n cy=\"78.6474508437579\"\n r=\"16\"\n opacity=\"0.15\"\n ></circle>\n <circle\n cx=\"286.03646545265696\"\n cy=\"77.12719335665126\"\n r=\"16\"\n opacity=\"0.1482758620689655\"\n ></circle>\n <circle\n cx=\"283.878935520612\"\n cy=\"75.64436411674376\"\n r=\"16\"\n opacity=\"0.14657534246575343\"\n ></circle>\n <circle\n cx=\"281.69585525225403\"\n cy=\"74.19941480818638\"\n r=\"16\"\n opacity=\"0.14489795918367346\"\n ></circle>\n <circle\n cx=\"279.4878896349807\"\n cy=\"72.7927855765361\"\n r=\"16\"\n opacity=\"0.14324324324324328\"\n ></circle>\n <circle\n cx=\"277.25571123650815\"\n cy=\"71.42490489468318\"\n r=\"16\"\n opacity=\"0.14161073825503354\"\n ></circle>\n <circle cx=\"275\" cy=\"70.0961894323342\" r=\"16\" opacity=\"0.14\"></circle>\n <circle\n cx=\"272.7214430369506\"\n cy=\"68.80704392909064\"\n r=\"16\"\n opacity=\"0.13841059602649006\"\n ></circle>\n <circle\n cx=\"270.42073441788364\"\n cy=\"67.55786107116097\"\n r=\"16\"\n opacity=\"0.1368421052631579\"\n ></circle>\n <circle\n cx=\"268.098574960932\"\n cy=\"66.34902137174484\"\n r=\"16\"\n opacity=\"0.13529411764705881\"\n ></circle>\n <circle\n cx=\"265.75567201836157\"\n cy=\"65.18089305512495\"\n r=\"16\"\n opacity=\"0.13376623376623376\"\n ></circle>\n <circle\n cx=\"263.3927392611049\"\n cy=\"64.05383194450252\"\n r=\"16\"\n opacity=\"0.13225806451612904\"\n ></circle>\n <circle\n cx=\"261.01049646137005\"\n cy=\"62.96818135360988\"\n r=\"16\"\n opacity=\"0.13076923076923078\"\n ></circle>\n <circle\n cx=\"258.60966927339115\"\n cy=\"61.92427198213397\"\n r=\"16\"\n opacity=\"0.12929936305732487\"\n ></circle>\n <circle\n cx=\"256.1909890123868\"\n cy=\"60.9224218149819\"\n r=\"16\"\n opacity=\"0.12784810126582277\"\n ></circle>\n <circle\n cx=\"253.75519243179502\"\n cy=\"59.96293602541974\"\n r=\"16\"\n opacity=\"0.12641509433962264\"\n ></circle>\n <circle\n cx=\"251.30302149885034\"\n cy=\"59.04610688211375\"\n r=\"16\"\n opacity=\"0.125\"\n ></circle>\n <circle\n cx=\"248.83522316857355\"\n cy=\"58.1722136601025\"\n r=\"16\"\n opacity=\"0.12360248447204969\"\n ></circle>\n <circle\n cx=\"246.35254915624213\"\n cy=\"57.34152255572698\"\n r=\"16\"\n opacity=\"0.12222222222222222\"\n ></circle>\n <circle\n cx=\"243.85575570841056\"\n cy=\"56.55428660554469\"\n r=\"16\"\n opacity=\"0.12085889570552147\"\n ></circle>\n <circle\n cx=\"241.34560337254996\"\n cy=\"55.810745609252194\"\n r=\"16\"\n opacity=\"0.11951219512195121\"\n ></circle>\n <circle\n cx=\"238.82285676537816\"\n cy=\"55.11112605663976\"\n r=\"16\"\n opacity=\"0.11818181818181818\"\n ></circle>\n <circle\n cx=\"236.28828433995017\"\n cy=\"54.45564105860052\"\n r=\"16\"\n opacity=\"0.11686746987951808\"\n ></circle>\n <circle\n cx=\"233.74265815157972\"\n cy=\"53.84449028221471\"\n r=\"16\"\n opacity=\"0.11556886227544909\"\n ></circle>\n <circle\n cx=\"231.1867536226639\"\n cy=\"53.27785988992915\"\n r=\"16\"\n opacity=\"0.11428571428571428\"\n ></circle>\n <circle\n cx=\"228.62134930648176\"\n cy=\"52.755922482850394\"\n r=\"16\"\n opacity=\"0.11301775147928994\"\n ></circle>\n <circle\n cx=\"226.04722665003953\"\n cy=\"52.27883704816881\"\n r=\"16\"\n opacity=\"0.11176470588235295\"\n ></circle>\n <circle\n cx=\"223.46516975603464\"\n cy=\"51.84674891072936\"\n r=\"16\"\n opacity=\"0.11052631578947368\"\n ></circle>\n <circle\n cx=\"220.87596514400985\"\n cy=\"51.45978968876446\"\n r=\"16\"\n opacity=\"0.10930232558139535\"\n ></circle>\n <circle\n cx=\"218.28040151077212\"\n cy=\"51.118077253801715\"\n r=\"16\"\n opacity=\"0.10809248554913295\"\n ></circle>\n <circle\n cx=\"215.67926949014807\"\n cy=\"50.82171569475901\"\n r=\"16\"\n opacity=\"0.10689655172413794\"\n ></circle>\n <circle\n cx=\"213.07336141214878\"\n cy=\"50.570795286238166\"\n r=\"16\"\n opacity=\"0.10571428571428573\"\n ></circle>\n <circle\n cx=\"210.46347106161883\"\n cy=\"50.365392461026374\"\n r=\"16\"\n opacity=\"0.10454545454545454\"\n ></circle>\n <circle\n cx=\"207.85039343644158\"\n cy=\"50.205569786813925\"\n r=\"16\"\n opacity=\"0.10338983050847457\"\n ></circle>\n <circle\n cx=\"205.2349245053751\"\n cy=\"50.091375947135646\"\n r=\"16\"\n opacity=\"0.10224719101123596\"\n ></circle>\n <circle\n cx=\"202.6178609655925\"\n cy=\"50.022845726541306\"\n r=\"16\"\n opacity=\"0.1011173184357542\"\n ></circle>\n <circle cx=\"200.00000000000003\" cy=\"50\" r=\"16\" opacity=\"0.1\"></circle>\n <circle\n cx=\"197.38213903440752\"\n cy=\"50.022845726541306\"\n r=\"16\"\n opacity=\"0.09889502762430939\"\n ></circle>\n <circle\n cx=\"194.76507549462485\"\n cy=\"50.091375947135646\"\n r=\"16\"\n opacity=\"0.0978021978021978\"\n ></circle>\n <circle\n cx=\"192.14960656355848\"\n cy=\"50.205569786813925\"\n r=\"16\"\n opacity=\"0.09672131147540984\"\n ></circle>\n <circle\n cx=\"189.53652893838128\"\n cy=\"50.365392461026346\"\n r=\"16\"\n opacity=\"0.0956521739130435\"\n ></circle>\n <circle\n cx=\"186.9266385878513\"\n cy=\"50.570795286238166\"\n r=\"16\"\n opacity=\"0.09459459459459459\"\n ></circle>\n <circle\n cx=\"184.32073050985204\"\n cy=\"50.82171569475898\"\n r=\"16\"\n opacity=\"0.0935483870967742\"\n ></circle>\n <circle\n cx=\"181.71959848922785\"\n cy=\"51.118077253801715\"\n r=\"16\"\n opacity=\"0.09251336898395722\"\n ></circle>\n <circle\n cx=\"179.12403485599017\"\n cy=\"51.45978968876446\"\n r=\"16\"\n opacity=\"0.09148936170212765\"\n ></circle>\n <circle\n cx=\"176.5348302439654\"\n cy=\"51.84674891072933\"\n r=\"16\"\n opacity=\"0.09047619047619047\"\n ></circle>\n <circle\n cx=\"173.95277334996044\"\n cy=\"52.27883704816881\"\n r=\"16\"\n opacity=\"0.08947368421052632\"\n ></circle>\n <circle\n cx=\"171.3786506935183\"\n cy=\"52.755922482850394\"\n r=\"16\"\n opacity=\"0.08848167539267016\"\n ></circle>\n <circle\n cx=\"168.81324637733613\"\n cy=\"53.27785988992915\"\n r=\"16\"\n opacity=\"0.0875\"\n ></circle>\n <circle\n cx=\"166.25734184842025\"\n cy=\"53.84449028221471\"\n r=\"16\"\n opacity=\"0.08652849740932643\"\n ></circle>\n <circle\n cx=\"163.7117156600499\"\n cy=\"54.45564105860052\"\n r=\"16\"\n opacity=\"0.08556701030927834\"\n ></circle>\n <circle\n cx=\"161.17714323462195\"\n cy=\"55.11112605663973\"\n r=\"16\"\n opacity=\"0.08461538461538462\"\n ></circle>\n <circle\n cx=\"158.65439662745015\"\n cy=\"55.810745609252166\"\n r=\"16\"\n opacity=\"0.0836734693877551\"\n ></circle>\n <circle\n cx=\"156.14424429158953\"\n cy=\"56.55428660554466\"\n r=\"16\"\n opacity=\"0.08274111675126904\"\n ></circle>\n <circle\n cx=\"153.64745084375784\"\n cy=\"57.34152255572698\"\n r=\"16\"\n opacity=\"0.08181818181818182\"\n ></circle>\n <circle\n cx=\"151.16477683142648\"\n cy=\"58.1722136601025\"\n r=\"16\"\n opacity=\"0.08090452261306533\"\n ></circle>\n <circle\n cx=\"148.69697850114972\"\n cy=\"59.04610688211375\"\n r=\"16\"\n opacity=\"0.08\"\n ></circle>\n <circle\n cx=\"146.24480756820492\"\n cy=\"59.96293602541974\"\n r=\"16\"\n opacity=\"0.0791044776119403\"\n ></circle>\n <circle\n cx=\"143.8090109876132\"\n cy=\"60.922421814981874\"\n r=\"16\"\n opacity=\"0.07821782178217823\"\n ></circle>\n <circle\n cx=\"141.39033072660897\"\n cy=\"61.924271982133945\"\n r=\"16\"\n opacity=\"0.0773399014778325\"\n ></circle>\n <circle\n cx=\"138.98950353863003\"\n cy=\"62.96818135360985\"\n r=\"16\"\n opacity=\"0.07647058823529412\"\n ></circle>\n <circle\n cx=\"136.6072607388951\"\n cy=\"64.05383194450249\"\n r=\"16\"\n opacity=\"0.07560975609756097\"\n ></circle>\n <circle\n cx=\"134.24432798163843\"\n cy=\"65.18089305512493\"\n r=\"16\"\n opacity=\"0.07475728155339806\"\n ></circle>\n <circle\n cx=\"131.90142503906804\"\n cy=\"66.34902137174478\"\n r=\"16\"\n opacity=\"0.07391304347826087\"\n ></circle>\n <circle\n cx=\"129.57926558211636\"\n cy=\"67.55786107116097\"\n r=\"16\"\n opacity=\"0.07307692307692308\"\n ></circle>\n <circle\n cx=\"127.27855696304945\"\n cy=\"68.80704392909061\"\n r=\"16\"\n opacity=\"0.0722488038277512\"\n ></circle>\n <circle\n cx=\"124.99999999999999\"\n cy=\"70.0961894323342\"\n r=\"16\"\n opacity=\"0.07142857142857142\"\n ></circle>\n <circle\n cx=\"122.74428876349188\"\n cy=\"71.42490489468315\"\n r=\"16\"\n opacity=\"0.07061611374407582\"\n ></circle>\n <circle\n cx=\"120.51211036501928\"\n cy=\"72.79278557653609\"\n r=\"16\"\n opacity=\"0.06981132075471698\"\n ></circle>\n <circle\n cx=\"118.30414474774594\"\n cy=\"74.19941480818639\"\n r=\"16\"\n opacity=\"0.06901408450704226\"\n ></circle>\n <circle\n cx=\"116.121064479388\"\n cy=\"75.64436411674372\"\n r=\"16\"\n opacity=\"0.06822429906542056\"\n ></circle>\n <circle\n cx=\"113.96353454734313\"\n cy=\"77.12719335665119\"\n r=\"16\"\n opacity=\"0.06744186046511629\"\n ></circle>\n <circle\n cx=\"111.83221215612905\"\n cy=\"78.64745084375787\"\n r=\"16\"\n opacity=\"0.06666666666666667\"\n ></circle>\n <circle\n cx=\"109.72774652719279\"\n cy=\"80.20467349290604\"\n r=\"16\"\n opacity=\"0.06589861751152074\"\n ></circle>\n <circle\n cx=\"107.65077870115132\"\n cy=\"81.79838695899167\"\n r=\"16\"\n opacity=\"0.06513761467889909\"\n ></circle>\n <circle\n cx=\"105.60194134252436\"\n cy=\"83.42810578145438\"\n r=\"16\"\n opacity=\"0.06438356164383562\"\n ></circle>\n <circle\n cx=\"103.58185854701911\"\n cy=\"85.0933335321533\"\n r=\"16\"\n opacity=\"0.06363636363636363\"\n ></circle>\n <circle\n cx=\"101.59114565142389\"\n cy=\"86.79356296658422\"\n r=\"16\"\n opacity=\"0.06289592760180995\"\n ></circle>\n <circle\n cx=\"99.63040904617127\"\n cy=\"88.52827617839087\"\n r=\"16\"\n opacity=\"0.062162162162162166\"\n ></circle>\n <circle\n cx=\"97.70024599062525\"\n cy=\"90.29694475712441\"\n r=\"16\"\n opacity=\"0.06143497757847534\"\n ></circle>\n <circle\n cx=\"95.8012444311504\"\n cy=\"92.09902994920233\"\n r=\"16\"\n opacity=\"0.060714285714285714\"\n ></circle>\n <circle\n cx=\"93.93398282201788\"\n cy=\"93.93398282201785\"\n r=\"16\"\n opacity=\"0.06\"\n ></circle>\n <circle\n cx=\"92.09902994920238\"\n cy=\"95.80124443115037\"\n r=\"16\"\n opacity=\"0.05929203539823009\"\n ></circle>\n <circle\n cx=\"90.29694475712448\"\n cy=\"97.70024599062516\"\n r=\"16\"\n opacity=\"0.05859030837004405\"\n ></circle>\n <circle\n cx=\"88.5282761783909\"\n cy=\"99.63040904617124\"\n r=\"16\"\n opacity=\"0.05789473684210526\"\n ></circle>\n <circle\n cx=\"86.79356296658425\"\n cy=\"101.59114565142386\"\n r=\"16\"\n opacity=\"0.05720524017467249\"\n ></circle>\n <circle\n cx=\"85.09333353215331\"\n cy=\"103.58185854701908\"\n r=\"16\"\n opacity=\"0.05652173913043478\"\n ></circle>\n <circle\n cx=\"83.42810578145433\"\n cy=\"105.60194134252443\"\n r=\"16\"\n opacity=\"0.05584415584415584\"\n ></circle>\n <circle\n cx=\"81.79838695899168\"\n cy=\"107.6507787011513\"\n r=\"16\"\n opacity=\"0.05517241379310345\"\n ></circle>\n <circle\n cx=\"80.20467349290608\"\n cy=\"109.72774652719276\"\n r=\"16\"\n opacity=\"0.054506437768240344\"\n ></circle>\n <circle\n cx=\"78.6474508437579\"\n cy=\"111.83221215612902\"\n r=\"16\"\n opacity=\"0.05384615384615385\"\n ></circle>\n <circle\n cx=\"77.12719335665126\"\n cy=\"113.96353454734304\"\n r=\"16\"\n opacity=\"0.05319148936170213\"\n ></circle>\n <circle\n cx=\"75.64436411674379\"\n cy=\"116.12106447938791\"\n r=\"16\"\n opacity=\"0.05254237288135593\"\n ></circle>\n <circle\n cx=\"74.19941480818639\"\n cy=\"118.30414474774595\"\n r=\"16\"\n opacity=\"0.05189873417721519\"\n ></circle>\n <circle\n cx=\"72.7927855765361\"\n cy=\"120.51211036501925\"\n r=\"16\"\n opacity=\"0.05126050420168067\"\n ></circle>\n <circle\n cx=\"71.42490489468318\"\n cy=\"122.74428876349182\"\n r=\"16\"\n opacity=\"0.050627615062761505\"\n ></circle>\n <circle\n cx=\"70.09618943233426\"\n cy=\"124.99999999999993\"\n r=\"16\"\n opacity=\"0.05\"\n ></circle>\n <circle\n cx=\"68.80704392909061\"\n cy=\"127.27855696304947\"\n r=\"16\"\n opacity=\"0.04937759336099585\"\n ></circle>\n <circle\n cx=\"67.55786107116094\"\n cy=\"129.5792655821164\"\n r=\"16\"\n opacity=\"0.048760330578512395\"\n ></circle>\n <circle\n cx=\"66.34902137174484\"\n cy=\"131.90142503906796\"\n r=\"16\"\n opacity=\"0.04814814814814815\"\n ></circle>\n <circle\n cx=\"65.18089305512498\"\n cy=\"134.24432798163832\"\n r=\"16\"\n opacity=\"0.047540983606557376\"\n ></circle>\n <circle\n cx=\"64.05383194450255\"\n cy=\"136.607260738895\"\n r=\"16\"\n opacity=\"0.04693877551020408\"\n ></circle>\n <circle\n cx=\"62.96818135360985\"\n cy=\"138.98950353862998\"\n r=\"16\"\n opacity=\"0.046341463414634146\"\n ></circle>\n <circle\n cx=\"61.92427198213397\"\n cy=\"141.3903307266089\"\n r=\"16\"\n opacity=\"0.045748987854251015\"\n ></circle>\n <circle\n cx=\"60.9224218149819\"\n cy=\"143.80901098761316\"\n r=\"16\"\n opacity=\"0.04516129032258064\"\n ></circle>\n <circle\n cx=\"59.962936025419765\"\n cy=\"146.2448075682049\"\n r=\"16\"\n opacity=\"0.04457831325301205\"\n ></circle>\n <circle\n cx=\"59.046106882113776\"\n cy=\"148.6969785011496\"\n r=\"16\"\n opacity=\"0.044\"\n ></circle>\n <circle\n cx=\"58.17221366010247\"\n cy=\"151.1647768314265\"\n r=\"16\"\n opacity=\"0.04342629482071713\"\n ></circle>\n <circle\n cx=\"57.34152255572698\"\n cy=\"153.64745084375787\"\n r=\"16\"\n opacity=\"0.04285714285714286\"\n ></circle>\n <circle\n cx=\"56.55428660554469\"\n cy=\"156.14424429158944\"\n r=\"16\"\n opacity=\"0.042292490118577074\"\n ></circle>\n <circle\n cx=\"55.81074560925214\"\n cy=\"158.65439662745018\"\n r=\"16\"\n opacity=\"0.04173228346456693\"\n ></circle>\n <circle\n cx=\"55.11112605663976\"\n cy=\"161.1771432346219\"\n r=\"16\"\n opacity=\"0.041176470588235294\"\n ></circle>\n <circle\n cx=\"54.45564105860052\"\n cy=\"163.71171566004983\"\n r=\"16\"\n opacity=\"0.040625\"\n ></circle>\n <circle\n cx=\"53.844490282214736\"\n cy=\"166.2573418484202\"\n r=\"16\"\n opacity=\"0.040077821011673155\"\n ></circle>\n <circle\n cx=\"53.277859889929175\"\n cy=\"168.81324637733604\"\n r=\"16\"\n opacity=\"0.03953488372093023\"\n ></circle>\n <circle\n cx=\"52.75592248285042\"\n cy=\"171.37865069351818\"\n r=\"16\"\n opacity=\"0.038996138996139\"\n ></circle>\n <circle\n cx=\"52.27883704816881\"\n cy=\"173.95277334996044\"\n r=\"16\"\n opacity=\"0.038461538461538464\"\n ></circle>\n <circle\n cx=\"51.84674891072936\"\n cy=\"176.53483024396536\"\n r=\"16\"\n opacity=\"0.03793103448275862\"\n ></circle>\n <circle\n cx=\"51.45978968876446\"\n cy=\"179.12403485599026\"\n r=\"16\"\n opacity=\"0.03740458015267176\"\n ></circle>\n <circle\n cx=\"51.11807725380169\"\n cy=\"181.71959848922793\"\n r=\"16\"\n opacity=\"0.03688212927756654\"\n ></circle>\n <circle\n cx=\"50.82171569475898\"\n cy=\"184.32073050985198\"\n r=\"16\"\n opacity=\"0.03636363636363636\"\n ></circle>\n <circle\n cx=\"50.570795286238166\"\n cy=\"186.92663858785127\"\n r=\"16\"\n opacity=\"0.035849056603773584\"\n ></circle>\n <circle\n cx=\"50.365392461026374\"\n cy=\"189.53652893838117\"\n r=\"16\"\n opacity=\"0.035338345864661655\"\n ></circle>\n <circle\n cx=\"50.205569786813925\"\n cy=\"192.14960656355836\"\n r=\"16\"\n opacity=\"0.0348314606741573\"\n ></circle>\n <circle\n cx=\"50.091375947135646\"\n cy=\"194.76507549462474\"\n r=\"16\"\n opacity=\"0.034328358208955224\"\n ></circle>\n <circle\n cx=\"50.022845726541306\"\n cy=\"197.3821390344075\"\n r=\"16\"\n opacity=\"0.03382899628252788\"\n ></circle>\n <circle\n cx=\"50\"\n cy=\"199.99999999999997\"\n r=\"16\"\n opacity=\"0.03333333333333333\"\n ></circle>\n <circle\n cx=\"50.022845726541306\"\n cy=\"202.61786096559246\"\n r=\"16\"\n opacity=\"0.03284132841328413\"\n ></circle>\n <circle\n cx=\"50.091375947135646\"\n cy=\"205.2349245053752\"\n r=\"16\"\n opacity=\"0.03235294117647059\"\n ></circle>\n <circle\n cx=\"50.205569786813925\"\n cy=\"207.85039343644158\"\n r=\"16\"\n opacity=\"0.031868131868131866\"\n ></circle>\n <circle\n cx=\"50.365392461026346\"\n cy=\"210.46347106161878\"\n r=\"16\"\n opacity=\"0.031386861313868614\"\n ></circle>\n <circle\n cx=\"50.570795286238166\"\n cy=\"213.07336141214867\"\n r=\"16\"\n opacity=\"0.03090909090909091\"\n ></circle>\n <circle\n cx=\"50.82171569475898\"\n cy=\"215.67926949014796\"\n r=\"16\"\n opacity=\"0.030434782608695653\"\n ></circle>\n <circle\n cx=\"51.118077253801715\"\n cy=\"218.28040151077215\"\n r=\"16\"\n opacity=\"0.029963898916967508\"\n ></circle>\n <circle\n cx=\"51.45978968876446\"\n cy=\"220.87596514400983\"\n r=\"16\"\n opacity=\"0.029496402877697843\"\n ></circle>\n <circle\n cx=\"51.84674891072933\"\n cy=\"223.4651697560346\"\n r=\"16\"\n opacity=\"0.02903225806451613\"\n ></circle>\n <circle\n cx=\"52.27883704816878\"\n cy=\"226.0472266500395\"\n r=\"16\"\n opacity=\"0.02857142857142857\"\n ></circle>\n <circle\n cx=\"52.755922482850394\"\n cy=\"228.62134930648165\"\n r=\"16\"\n opacity=\"0.028113879003558717\"\n ></circle>\n <circle\n cx=\"53.27785988992912\"\n cy=\"231.1867536226638\"\n r=\"16\"\n opacity=\"0.027659574468085105\"\n ></circle>\n <circle\n cx=\"53.84449028221471\"\n cy=\"233.74265815157975\"\n r=\"16\"\n opacity=\"0.027208480565371024\"\n ></circle>\n <circle\n cx=\"54.45564105860052\"\n cy=\"236.2882843399501\"\n r=\"16\"\n opacity=\"0.02676056338028169\"\n ></circle>\n <circle\n cx=\"55.11112605663976\"\n cy=\"238.82285676537816\"\n r=\"16\"\n opacity=\"0.02631578947368421\"\n ></circle>\n <circle\n cx=\"55.810745609252194\"\n cy=\"241.3456033725499\"\n r=\"16\"\n opacity=\"0.025874125874125874\"\n ></circle>\n <circle\n cx=\"56.55428660554469\"\n cy=\"243.8557557084105\"\n r=\"16\"\n opacity=\"0.025435540069686412\"\n ></circle>\n <circle\n cx=\"57.341522555726954\"\n cy=\"246.35254915624208\"\n r=\"16\"\n opacity=\"0.025\"\n ></circle>\n <circle\n cx=\"58.17221366010244\"\n cy=\"248.83522316857346\"\n r=\"16\"\n opacity=\"0.0245674740484429\"\n ></circle>\n <circle\n cx=\"59.04610688211372\"\n cy=\"251.30302149885023\"\n r=\"16\"\n opacity=\"0.02413793103448276\"\n ></circle>\n <circle\n cx=\"59.96293602541968\"\n cy=\"253.75519243179494\"\n r=\"16\"\n opacity=\"0.023711340206185566\"\n ></circle>\n <circle\n cx=\"60.922421814981874\"\n cy=\"256.1909890123868\"\n r=\"16\"\n opacity=\"0.023287671232876714\"\n ></circle>\n <circle\n cx=\"61.92427198213392\"\n cy=\"258.60966927339103\"\n r=\"16\"\n opacity=\"0.02286689419795222\"\n ></circle>\n <circle\n cx=\"62.96818135360988\"\n cy=\"261.01049646137005\"\n r=\"16\"\n opacity=\"0.022448979591836733\"\n ></circle>\n <circle\n cx=\"64.05383194450252\"\n cy=\"263.39273926110496\"\n r=\"16\"\n opacity=\"0.022033898305084745\"\n ></circle>\n <circle\n cx=\"65.18089305512495\"\n cy=\"265.7556720183616\"\n r=\"16\"\n opacity=\"0.021621621621621626\"\n ></circle>\n <circle\n cx=\"66.34902137174481\"\n cy=\"268.098574960932\"\n r=\"16\"\n opacity=\"0.021212121212121213\"\n ></circle>\n <circle\n cx=\"67.55786107116094\"\n cy=\"270.4207344178836\"\n r=\"16\"\n opacity=\"0.020805369127516776\"\n ></circle>\n <circle\n cx=\"68.80704392909058\"\n cy=\"272.72144303695046\"\n r=\"16\"\n opacity=\"0.02040133779264214\"\n ></circle>\n <circle cx=\"70.0961894323342\" cy=\"275\" r=\"16\" opacity=\"0.02\"></circle>\n <circle\n cx=\"71.42490489468315\"\n cy=\"277.2557112365081\"\n r=\"16\"\n opacity=\"0.019601328903654486\"\n ></circle>\n <circle\n cx=\"72.79278557653608\"\n cy=\"279.4878896349807\"\n r=\"16\"\n opacity=\"0.019205298013245033\"\n ></circle>\n <circle\n cx=\"74.19941480818636\"\n cy=\"281.695855252254\"\n r=\"16\"\n opacity=\"0.01881188118811881\"\n ></circle>\n <circle\n cx=\"75.64436411674369\"\n cy=\"283.87893552061195\"\n r=\"16\"\n opacity=\"0.018421052631578946\"\n ></circle>\n <circle\n cx=\"77.12719335665123\"\n cy=\"286.0364654526569\"\n r=\"16\"\n opacity=\"0.018032786885245903\"\n ></circle>\n <circle\n cx=\"78.64745084375787\"\n cy=\"288.16778784387094\"\n r=\"16\"\n opacity=\"0.01764705882352941\"\n ></circle>\n <circle\n cx=\"80.20467349290604\"\n cy=\"290.27225347280717\"\n r=\"16\"\n opacity=\"0.017263843648208467\"\n ></circle>\n <circle\n cx=\"81.79838695899173\"\n cy=\"292.34922129884876\"\n r=\"16\"\n opacity=\"0.016883116883116882\"\n ></circle>\n <circle\n cx=\"83.42810578145438\"\n cy=\"294.39805865747564\"\n r=\"16\"\n opacity=\"0.01650485436893204\"\n ></circle>\n <circle\n cx=\"85.09333353215328\"\n cy=\"296.4181414529809\"\n r=\"16\"\n opacity=\"0.016129032258064516\"\n ></circle>\n <circle\n cx=\"86.79356296658416\"\n cy=\"298.408854348576\"\n r=\"16\"\n opacity=\"0.015755627009646302\"\n ></circle>\n <circle\n cx=\"88.52827617839081\"\n cy=\"300.36959095382866\"\n r=\"16\"\n opacity=\"0.015384615384615385\"\n ></circle>\n <circle\n cx=\"90.29694475712435\"\n cy=\"302.29975400937474\"\n r=\"16\"\n opacity=\"0.015015974440894569\"\n ></circle>\n <circle\n cx=\"92.09902994920223\"\n cy=\"304.1987555688495\"\n r=\"16\"\n opacity=\"0.014649681528662422\"\n ></circle>\n <circle\n cx=\"93.93398282201785\"\n cy=\"306.0660171779821\"\n r=\"16\"\n opacity=\"0.014285714285714285\"\n ></circle>\n <circle\n cx=\"95.80124443115037\"\n cy=\"307.90097005079764\"\n r=\"16\"\n opacity=\"0.01392405063291139\"\n ></circle>\n <circle\n cx=\"97.70024599062526\"\n cy=\"309.7030552428756\"\n r=\"16\"\n opacity=\"0.013564668769716088\"\n ></circle>\n <circle\n cx=\"99.63040904617128\"\n cy=\"311.47172382160915\"\n r=\"16\"\n opacity=\"0.013207547169811321\"\n ></circle>\n <circle\n cx=\"101.59114565142389\"\n cy=\"313.2064370334158\"\n r=\"16\"\n opacity=\"0.012852664576802508\"\n ></circle>\n <circle\n cx=\"103.58185854701907\"\n cy=\"314.90666646784666\"\n r=\"16\"\n opacity=\"0.0125\"\n ></circle>\n <circle\n cx=\"105.60194134252433\"\n cy=\"316.5718942185456\"\n r=\"16\"\n opacity=\"0.012149532710280374\"\n ></circle>\n <circle\n cx=\"107.65077870115117\"\n cy=\"318.2016130410082\"\n r=\"16\"\n opacity=\"0.011801242236024845\"\n ></circle>\n <circle\n cx=\"109.72774652719276\"\n cy=\"319.79532650709393\"\n r=\"16\"\n opacity=\"0.011455108359133128\"\n ></circle>\n <circle\n cx=\"111.832212156129\"\n cy=\"321.3525491562421\"\n r=\"16\"\n opacity=\"0.011111111111111112\"\n ></circle>\n <circle\n cx=\"113.96353454734303\"\n cy=\"322.8728066433487\"\n r=\"16\"\n opacity=\"0.010769230769230767\"\n ></circle>\n <circle\n cx=\"116.1210644793879\"\n cy=\"324.35563588325624\"\n r=\"16\"\n opacity=\"0.010429447852760737\"\n ></circle>\n <circle\n cx=\"118.30414474774595\"\n cy=\"325.80058519181364\"\n r=\"16\"\n opacity=\"0.010091743119266056\"\n ></circle>\n <circle\n cx=\"120.51211036501913\"\n cy=\"327.2072144234638\"\n r=\"16\"\n opacity=\"0.00975609756097561\"\n ></circle>\n <circle\n cx=\"122.74428876349182\"\n cy=\"328.5750951053168\"\n r=\"16\"\n opacity=\"0.009422492401215805\"\n ></circle>\n <circle\n cx=\"124.99999999999993\"\n cy=\"329.90381056766574\"\n r=\"16\"\n opacity=\"0.00909090909090909\"\n ></circle>\n <circle\n cx=\"127.27855696304947\"\n cy=\"331.1929560709094\"\n r=\"16\"\n opacity=\"0.008761329305135951\"\n ></circle>\n <circle\n cx=\"129.57926558211636\"\n cy=\"332.44213892883903\"\n r=\"16\"\n opacity=\"0.008433734939759038\"\n ></circle>\n <circle\n cx=\"131.90142503906796\"\n cy=\"333.6509786282552\"\n r=\"16\"\n opacity=\"0.008108108108108109\"\n ></circle>\n <circle\n cx=\"134.24432798163843\"\n cy=\"334.8191069448751\"\n r=\"16\"\n opacity=\"0.00778443113772455\"\n ></circle>\n <circle\n cx=\"136.607260738895\"\n cy=\"335.9461680554974\"\n r=\"16\"\n opacity=\"0.007462686567164179\"\n ></circle>\n <circle\n cx=\"138.98950353862998\"\n cy=\"337.03181864639015\"\n r=\"16\"\n opacity=\"0.007142857142857143\"\n ></circle>\n <circle\n cx=\"141.3903307266088\"\n cy=\"338.075728017866\"\n r=\"16\"\n opacity=\"0.006824925816023739\"\n ></circle>\n <circle\n cx=\"143.80901098761314\"\n cy=\"339.07757818501807\"\n r=\"16\"\n opacity=\"0.00650887573964497\"\n ></circle>\n <circle\n cx=\"146.2448075682049\"\n cy=\"340.03706397458024\"\n r=\"16\"\n opacity=\"0.006194690265486726\"\n ></circle>\n <circle\n cx=\"148.69697850114972\"\n cy=\"340.95389311788625\"\n r=\"16\"\n opacity=\"0.0058823529411764705\"\n ></circle>\n <circle\n cx=\"151.16477683142637\"\n cy=\"341.82778633989744\"\n r=\"16\"\n opacity=\"0.005571847507331379\"\n ></circle>\n <circle\n cx=\"153.64745084375784\"\n cy=\"342.658477444273\"\n r=\"16\"\n opacity=\"0.005263157894736842\"\n ></circle>\n <circle\n cx=\"156.14424429158956\"\n cy=\"343.4457133944553\"\n r=\"16\"\n opacity=\"0.004956268221574344\"\n ></circle>\n <circle\n cx=\"158.65439662745004\"\n cy=\"344.1892543907478\"\n r=\"16\"\n opacity=\"0.004651162790697674\"\n ></circle>\n <circle\n cx=\"161.1771432346219\"\n cy=\"344.88887394336024\"\n r=\"16\"\n opacity=\"0.004347826086956522\"\n ></circle>\n <circle\n cx=\"163.71171566004983\"\n cy=\"345.5443589413995\"\n r=\"16\"\n opacity=\"0.004046242774566474\"\n ></circle>\n <circle\n cx=\"166.2573418484202\"\n cy=\"346.15550971778526\"\n r=\"16\"\n opacity=\"0.0037463976945244955\"\n ></circle>\n <circle\n cx=\"168.81324637733601\"\n cy=\"346.7221401100708\"\n r=\"16\"\n opacity=\"0.0034482758620689655\"\n ></circle>\n <circle\n cx=\"171.3786506935183\"\n cy=\"347.2440775171496\"\n r=\"16\"\n opacity=\"0.003151862464183381\"\n ></circle>\n <circle\n cx=\"173.9527733499603\"\n cy=\"347.72116295183116\"\n r=\"16\"\n opacity=\"0.0028571428571428576\"\n ></circle>\n <circle\n cx=\"176.53483024396533\"\n cy=\"348.1532510892706\"\n r=\"16\"\n opacity=\"0.002564102564102564\"\n ></circle>\n <circle\n cx=\"179.12403485599012\"\n cy=\"348.54021031123557\"\n r=\"16\"\n opacity=\"0.0022727272727272726\"\n ></circle>\n <circle\n cx=\"181.7195984892278\"\n cy=\"348.88192274619826\"\n r=\"16\"\n opacity=\"0.00198300283286119\"\n ></circle>\n <circle\n cx=\"184.32073050985198\"\n cy=\"349.178284305241\"\n r=\"16\"\n opacity=\"0.001694915254237288\"\n ></circle>\n <circle\n cx=\"186.92663858785124\"\n cy=\"349.4292047137618\"\n r=\"16\"\n opacity=\"0.0014084507042253522\"\n ></circle>\n <circle\n cx=\"189.53652893838128\"\n cy=\"349.6346075389737\"\n r=\"16\"\n opacity=\"0.0011235955056179776\"\n ></circle>\n <circle\n cx=\"192.14960656355834\"\n cy=\"349.79443021318605\"\n r=\"16\"\n opacity=\"0.0008403361344537816\"\n ></circle>\n <circle\n cx=\"194.76507549462488\"\n cy=\"349.90862405286435\"\n r=\"16\"\n opacity=\"0.0005586592178770949\"\n ></circle>\n <circle\n cx=\"197.38213903440734\"\n cy=\"349.9771542734587\"\n r=\"16\"\n opacity=\"0.0002785515320334262\"\n ></circle>\n </g>\n Sorry, your browser does not support inline SVG.\n </svg>\n </div>\n</div>\n","import {\n ComponentFactoryResolver,\n Directive,\n ElementRef,\n HostBinding,\n inject,\n Input,\n OnInit,\n ViewContainerRef,\n} from '@angular/core';\nimport { OnemrvaMatSpinnerComponent } from './onemrva-mat-spinner.component';\n\n@Directive({\n standalone: true,\n selector: 'button[loading]',\n})\nexport class OnemrvaMatLoadingDirective implements OnInit {\n @Input()\n @HostBinding('class.has-spinner')\n loading = false;\n\n element = inject(ElementRef);\n viewContainerRef = inject(ViewContainerRef);\n componentFactoryResolver = inject(ComponentFactoryResolver);\n\n ngOnInit() {\n const host = this.element.nativeElement;\n const componentFactory =\n this.componentFactoryResolver.resolveComponentFactory(\n OnemrvaMatSpinnerComponent,\n );\n\n const componentRef =\n this.viewContainerRef.createComponent(componentFactory);\n\n //componentRef.instance.color = '';\n\n host.insertBefore(componentRef.location.nativeElement, host.firstChild);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { OnemrvaMatSpinnerComponent } from './onemrva-mat-spinner.component';\nimport { OnemrvaMatLoadingDirective } from './onemrva-mat-loading.directive';\n\n@NgModule({\n imports: [OnemrvaMatSpinnerComponent, OnemrvaMatLoadingDirective],\n exports: [OnemrvaMatSpinnerComponent, OnemrvaMatLoadingDirective],\n})\nexport class OnemrvaMatSpinnerModule {}\n","/*\n * Public API Surface of mat-side-menu\n */\n\nexport * from './src/onemrva-mat-spinner.component';\nexport * from './src/onemrva-mat-spinner.module';\nexport * from './src/onemrva-mat-loading.directive';\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport {\n animate,\n state,\n style,\n transition,\n trigger,\n AnimationTriggerMetadata,\n} from '@angular/animations';\n\nexport const DEFAULT_VERTICAL_ANIMATION_DURATION = '225ms';\n\n/**\n * Animations used by the Material steppers.\n * @docs-private\n */\nexport const onemrvaMatStepperAnimations: {\n readonly verticalStepTransition: AnimationTriggerMetadata;\n} = {\n /** Animation that transitions the step along the Y axis in a vertical summary-stepper. */\n verticalStepTransition: trigger('verticalStepTransition', [\n state('previous', style({ height: '*', visibility: 'inherit' })),\n state('next', style({ height: '0px', visibility: 'hidden' })),\n // Transition to `inherit`, rather than `visible`,\n // because visibility on a child element the one from the parent,\n // making this element focusable inside of a `hidden` element.\n state('current', style({ height: '*', visibility: 'inherit' })),\n transition(\n '* <=> current',\n animate('{{animationDuration}} cubic-bezier(0.4, 0.0, 0.2, 1)'),\n {\n params: { animationDuration: DEFAULT_VERTICAL_ANIMATION_DURATION },\n },\n ),\n ]),\n};\n","import { Directionality } from '@angular/cdk/bidi';\nimport { CdkStepper, StepperOrientation } from '@angular/cdk/stepper';\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n HostBinding,\n Input,\n OnDestroy,\n ViewEncapsulation,\n inject,\n} from '@angular/core';\n\nimport { onemrvaMatStepperAnimations } from './onemrva-stepper-animations';\nimport { MatStep, MatStepHeader, MatStepper } from '@angular/material/stepper';\nimport { Subject, takeUntil } from 'rxjs';\nimport { NgTemplateOutlet } from '@angular/common';\n\n@Component({\n selector:\n 'onemrva-mat-stepper, ' +\n 'onemrva-mat-vertical-stepper, ' +\n '[onemrvaMatStepper]',\n exportAs: 'matStepper, ' + 'matVerticalStepper, ' + 'matHorizontalStepper',\n templateUrl: 'onemrva-mat-stepper.html',\n styleUrls: ['onemrva-mat-stepper.scss'],\n // eslint-disable-next-line\n inputs: ['selectedIndex'],\n animations: [onemrvaMatStepperAnimations.verticalStepTransition],\n providers: [\n { provide: MatStepper, useExisting: OnemrvaMatStepperComponent },\n { provide: CdkStepper, useExisting: MatStepper },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.Emulated,\n standalone: true,\n imports: [NgTemplateOutlet, MatStepHeader],\n})\nexport class OnemrvaMatStepperComponent\n extends MatStepper\n implements AfterContentInit, OnDestroy\n{\n destroyNotifier$: Subject<void> = new Subject<void>();\n\n /** Orientation of the summary-stepper. */\n @Input()\n override get orientation(): StepperOrientation {\n return 'vertical';\n }\n override set orientation(value: StepperOrientation) {\n this.matStepperVertical = true;\n }\n\n @HostBinding('class.mat-stepper-vertical') matStepperVertical = true;\n @HostBinding('attr.aria-orientation') ariaOrientation = 'vertical';\n @HostBinding('role') role = 'tablist';\n _animationDone = new Subject<any>();\n\n private readonly dir = inject(Directionality, { optional: true });\n private readonly cd = inject(ChangeDetectorRef);\n private readonly elementRef = inject(ElementRef<HTMLElement>);\n\n scrollToElement(elementId: string): void {\n const element = document.getElementById(elementId);\n if (element) {\n const yOffset = -100; // Optional: offset from the top for better positioning\n const y =\n element.getBoundingClientRect().top + window.pageYOffset + yOffset;\n window.scrollTo({ top: y, behavior: 'smooth' });\n }\n }\n\n constructor() {\n super(\n inject(Directionality, { optional: true }),\n inject(ChangeDetectorRef),\n inject(ElementRef<HTMLElement>),\n );\n }\n\n override ngAfterContentInit(): void {\n super.ngAfterContentInit();\n this.selectionChange\n .pipe(takeUntil(this.destroyNotifier$))\n .subscribe(value => {\n const timeBeforeScroll = parseInt(this.animationDuration || '0') + 400;\n setTimeout(() => {\n const el = `cdk-step-label-${this._getStepLabelId(value.selectedIndex)}`; // TODO check ??\n this.scrollToElement(el);\n }, timeBeforeScroll);\n });\n }\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this.destroyNotifier$.next();\n this.destroyNotifier$.complete();\n }\n\n _stepIsNavigable(index: number, step: MatStep): boolean {\n return (\n step.completed ||\n this.selectedIndex === index ||\n this.selectedIndex > index\n );\n }\n\n _getIndicatorType(index: number, state?: string): string {\n if (state) {\n return state;\n }\n if (this.selectedIndex === index) {\n return 'number';\n }\n return 'number';\n }\n}\n","<!-- Vertical summary-stepper -->\n<ng-container>\n @for (step of steps; track step; let stepidx = $index; let isLast = $last) {\n <div class=\"mat-step\">\n <ng-container\n [ngTemplateOutlet]=\"stepTemplate\"\n [ngTemplateOutletContext]=\"{step: step, i: stepidx}\"\n ></ng-container>\n <div\n class=\"mat-vertical-content-container\"\n [class.mat-stepper-vertical-line]=\"!isLast\"\n >\n <div\n class=\"mat-vertical-stepper-content\"\n role=\"tabpanel\"\n [@verticalStepTransition]=\"{\n 'value': _getAnimationDirection(stepidx),\n 'params': {'animationDuration': _getAnimationDuration()}\n }\"\n (@verticalStepTransition.done)=\"_animationDone.next($event)\"\n [id]=\"_getStepContentId(stepidx)\"\n [attr.aria-labelledby]=\"_getStepLabelId(stepidx)\"\n [attr.aria-expanded]=\"selectedIndex === stepidx\"\n >\n <div class=\"mat-vertical-content\">\n <ng-container [ngTemplateOutlet]=\"step.content\"></ng-container>\n </div>\n </div>\n </div>\n </div>\n }\n</ng-container>\n\n<!-- Common step templating -->\n<ng-template let-step=\"step\" let-i=\"i\" #stepTemplate>\n <mat-step-header\n [class.mat-horizontal-stepper-header]=\"orientation === 'horizontal'\"\n [class.mat-vertical-stepper-header]=\"orientation === 'vertical'\"\n (click)=\"step.select()\"\n (keydown)=\"_onKeydown($event)\"\n [tabIndex]=\"_getFocusIndex() === i ? 0 : -1\"\n [id]=\"_getStepLabelId(i)\"\n [attr.aria-posinset]=\"i + 1\"\n [attr.aria-setsize]=\"steps.length\"\n [attr.aria-controls]=\"_getStepContentId(i)\"\n [attr.aria-selected]=\"selectedIndex === i\"\n [attr.aria-label]=\"step.ariaLabel || null\"\n [attr.aria-labelledby]=\"(!step.ariaLabel && step.ariaLabelledby) ? step.ariaLabelledby : null\"\n [attr.aria-disabled]=\"_stepIsNavigable(i, step) ? null : true\"\n [index]=\"i\"\n [state]=\"_getIndicatorType(i, step.state)\"\n [label]=\"step.stepLabel || step.label\"\n [selected]=\"selectedIndex === i\"\n [active]=\"_stepIsNavigable(i, step)\"\n [optional]=\"step.optional\"\n [errorMessage]=\"step.errorMessage\"\n [iconOverrides]=\"_iconOverrides\"\n [disableRipple]=\"disableRipple || !_stepIsNavigable(i, step)\"\n ></mat-step-header>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { OnemrvaMatStepperComponent } from './onemrva-mat-stepper.component';\nimport { MatStepperModule } from '@angular/material/stepper';\n\n@NgModule({\n imports: [OnemrvaMatStepperComponent],\n exports: [MatStepperModule, OnemrvaMatStepperComponent],\n declarations: [],\n providers: [],\n})\nexport class OnemrvaMatStepperModule {}\n","/*\n * Public API Surface of mat-summary-stepper\n */\n\nexport * from './src/onemrva-mat-stepper.component';\nexport * from './src/onemrva-mat-stepper.module';\n","import { Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'onemrva-mat-sticker',\n template: ` <ng-content></ng-content>`,\n styleUrl: 'onemrva-mat-sticker.component.scss',\n imports: [],\n standalone: true,\n encapsulation: ViewEncapsulation.Emulated,\n})\nexport class OnemrvaMatStickerComponent {}\n","import { NgModule } from '@angular/core';\nimport { OnemrvaMatStickerComponent } from './onemrva-mat-sticker.component';\n\n@NgModule({\n declarations: [],\n imports: [OnemrvaMatStickerComponent],\n exports: [OnemrvaMatStickerComponent],\n})\nexport class OnemrvaMatStickerModule {}\n","/*\n * Public API Surface of mat-sticker\n */\n\nexport * from './src/onemrva-mat-sticker.component';\nexport * from './src/onemrva-mat-sticker.module';\n","export enum OnemrvaMatTocAnchorStatus {\n CHECKMARK,\n WARNING,\n}\n\nexport enum OnemrvaMatTocAnchorLevel {\n SECTION,\n SUBSECTION,\n}\n\nexport interface OnemrvaMatTocAnchor {\n tocName: string;\n titleKey: string;\n path: string;\n order?: number; // You can manually set the order of your links\n status?: OnemrvaMatTocAnchorStatus; // checkmarck add a checkmark icon at the end of the line. Warning adds an exclamation mark\n level?: OnemrvaMatTocAnchorLevel; // Section level by default\n hidden?: boolean;\n directive?: any;\n}\n\nexport type OnemrvaMatToc = Record<string, OnemrvaMatTocAnchor[]>;\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport {\n OnemrvaMatTocAnchor,\n OnemrvaMatToc,\n OnemrvaMatTocAnchorLevel,\n} from './onemrva-mat-toc-anchor.model';\n\n@Injectable()\nexport class OnemrvaMatTableOfContentService {\n private _toc: OnemrvaMatToc = {};\n private _toc$ = new BehaviorSubject<OnemrvaMatToc>({});\n toc$: Observable<OnemrvaMatToc> = this._toc$.asObservable();\n\n addAnchor(anchor: OnemrvaMatTocAnchor) {\n if (!anchor.level) {\n anchor.level = OnemrvaMatTocAnchorLevel.SECTION;\n }\n\n if (!this._toc[anchor.tocName])\n this._toc = { ...this._toc, [anchor.tocName]: [anchor] };\n else if (\n this._toc[anchor.tocName].findIndex(a => anchor.path === a.path) < 0\n ) {\n let idx = -1;\n if (anchor.order) {\n idx = this._toc[anchor.tocName].findIndex(\n a => a.order && anchor.order! < a.order,\n );\n }\n\n const newToc = [...this._toc[anchor.tocName]];\n if (idx >= 0) {\n newToc.splice(idx, 0, anchor);\n } else {\n newToc.push(anchor);\n }\n this._toc = {\n ...this._toc,\n [anchor.tocName]: newToc,\n };\n }\n\n this._toc$.next(this._toc);\n }\n\n resetToc() {\n this._toc = {};\n this._toc$.next(this._toc);\n }\n}\n","import {\n AfterViewInit,\n Component,\n HostBinding,\n inject,\n Input,\n OnDestroy,\n OnInit,\n ViewEncapsulation,\n} from '@angular/core';\nimport { MatListModule } from '@angular/material/list';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { OnemrvaMatTableOfContentService } from './onemrva-mat-table-of-content.service';\nimport { Observable, map, tap, Subject, takeUntil } from 'rxjs';\nimport {\n OnemrvaMatTocAnchor,\n OnemrvaMatTocAnchorLevel,\n OnemrvaMatTocAnchorStatus,\n} from './onemrva-mat-toc-anchor.model';\nimport { CommonModule } from '@angular/common';\nimport { MatIconModule } from '@angular/material/icon';\nimport { ActivatedRoute, Router, RouterLink } from '@angular/router';\nimport { Location } from '@angular/common';\n\n@Component({\n selector: 'onemrva-mat-table-of-content',\n templateUrl: 'onemrva-mat-table-of-content.component.html',\n styleUrl: 'onemrva-mat-table-of-content.component.scss',\n standalone: true,\n imports: [\n MatListModule,\n TranslateModule,\n CommonModule,\n MatIconModule,\n RouterLink,\n ],\n encapsulation: ViewEncapsulation.Emulated,\n})\nexport class OnemrvaMatTableOfContentComponent\n implements OnInit, OnDestroy, AfterViewInit\n{\n @Input()\n titleKey!: string;\n\n @Input()\n tocName!: string;\n\n @HostBinding('attr.data-cy')\n @Input()\n dataCy = 'onemrva-mat-toc';\n\n @Input()\n tableOfContentName!: string;\n\n @Input()\n scrollShift = 0;\n\n toc$!: Observable<OnemrvaMatTocAnchor[]>;\n\n activePath = '';\n\n destroy$ = new Subject<boolean>();\n\n level = OnemrvaMatTocAnchorLevel;\n status = OnemrvaMatTocAnchorStatus;\n\n location = inject(Location);\n route = inject(ActivatedRoute);\n router = inject(Router);\n tocService = inject(OnemrvaMatTableOfContentService);\n\n ngOnInit(): void {\n this.route.fragment.pipe(takeUntil(this.destroy$)).subscribe(fragment => {\n this.activePath = fragment ?? '';\n });\n\n this.toc$ = this.tocService.toc$.pipe(\n map(tocMap => {\n const toc = tocMap[this.tocName]?.filter(entry => !entry.hidden) ?? [];\n return toc.map(entry => ({\n ...entry,\n path: entry.path?.startsWith('#') ? entry.path.slice(1) : entry.path,\n }));\n }),\n tap(toc => {\n if (!toc.length) {\n this.titleKey = 'tocName.notFound';\n } else {\n this.activePath = toc[0].path;\n }\n }),\n );\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.tocService.resetToc();\n }\n\n private observer!: IntersectionObserver;\n private timeoutId: ReturnType<typeof setTimeout> | null = null;\n\n ngAfterViewInit(): void {\n const elements = document.querySelectorAll<HTMLElement>(\n '.onemrva-mat-toc-anchor',\n );\n\n this.observer = new IntersectionObserver(\n entries => {\n entries.forEach(entry => {\n if (entry.isIntersecting) {\n const id = entry.target.getAttribute('id');\n if (id) {\n if (this.timeoutId !== null) clearTimeout(this.timeoutId);\n this.timeoutId = setTimeout(() => {\n this.location.replaceState(\n this.router.url.split('#')[0] + `#${id}`,\n );\n this.activePath = id;\n this.timeoutId = null;\n }, 200);\n }\n }\n });\n },\n {\n root: null,\n threshold: 0,\n rootMargin: '-92px 0px -75% 0px',\n },\n );\n elements.forEach(el => this.observer.observe(el));\n }\n}\n","<div class=\"onemrva-mat-toc\">\n <h3 class=\"onemrva-mat-toc-title\">{{ titleKey | translate }}</h3>\n\n <mat-list>\n @for (anchor of toc$ | async; track anchor.path) {\n <mat-list-item\n [routerLink]=\"[]\"\n [fragment]=\"anchor.path\"\n [ngClass]=\"{\n 'active-anchor': anchor.path === activePath,\n 'onemrva-anchor-for-subsection': anchor.level === level.SUBSECTION,\n 'onemrva-mat-hidden-toc-anchor': anchor.directive?.hiddenInToc,\n }\"\n >\n {{ anchor.titleKey | translate }}\n @if (anchor.status === status.CHECKMARK) {\n <mat-icon class=\"mat-success\">check</mat-icon>\n }\n @if (anchor.status === status.WARNING) {\n <mat-icon class=\"anchor-warning\">priority_high</mat-icon>\n }\n </mat-list-item>\n }\n </mat-list>\n</div>\n","import {\n OnInit,\n Directive,\n Input,\n HostBinding,\n AfterViewInit,\n ChangeDetectorRef,\n inject,\n} from '@angular/core';\nimport { OnemrvaMatTableOfContentService } from './onemrva-mat-table-of-content.service';\nimport { OnemrvaMatTocAnchor } from './onemrva-mat-toc-anchor.model';\nimport { TranslateService } from '@ngx-translate/core';\nimport { ActivatedRoute } from '@angular/router';\n\n/**\n * For accessibility purpose, aria-label and will be displayed\n */\n\n@Directive({\n selector: '[onemrvaMatToc]',\n standalone: true,\n})\nexport class OnemrvaMatTableOfContentDirective\n implements OnInit, AfterViewInit\n{\n @Input()\n onemrvaMatToc!: OnemrvaMatTocAnchor;\n\n @HostBinding('attr.role')\n role = '';\n\n @HostBinding('attr.class')\n clazz = 'onemrva-mat-toc-anchor';\n\n @HostBinding('attr.id')\n id = '';\n\n @HostBinding('attr.aria-label')\n get ariaLabel() {\n return this.translateService.instant(this.onemrvaMatToc?.titleKey);\n }\n\n @Input()\n hiddenInToc = false;\n\n @HostBinding('attr.rvaonem-toc-anchor')\n get ariaToc() {\n if (\n this.onemrvaMatToc &&\n this.onemrvaMatToc.path &&\n this.onemrvaMatToc.path[0] !== '#'\n )\n return '#' + this.onemrvaMatToc?.path;\n return this.onemrvaMatToc?.path;\n }\n\n tocService = inject(OnemrvaMatTableOfContentService);\n cd = inject(ChangeDetectorRef);\n translateService = inject(TranslateService);\n route = inject(ActivatedRoute);\n\n ngOnInit(): void {\n this.tocService.addAnchor({ ...this.onemrvaMatToc, directive: this });\n\n this.id = this.onemrvaMatToc.path.slice(1, this.onemrvaMatToc.path.length);\n // console.log(' HWK this.hidden', this.hidden);\n }\n\n ngAfterViewInit(): void {\n this.cd.detectChanges();\n this.route.fragment.subscribe(fragment => {\n const el = document.getElementById(fragment!);\n if (el) {\n el.scrollIntoView({ behavior: 'smooth' });\n }\n });\n }\n}\n","/*\n * Public API Surface of mat-summary-stepper\n */\n\nexport * from './src/onemrva-mat-table-of-content.component';\nexport * from './src/onemrva-mat-table-of-content.directive';\nexport * from './src/onemrva-mat-table-of-content.service';\nexport * from './src/onemrva-mat-toc-anchor.model';\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n inject,\n Input,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { NgClass } from '@angular/common';\n\n@Component({\n selector: 'onemrva-mat-task-title',\n templateUrl: './onemrva-mat-task-title.html',\n styleUrl: './onemrva-mat-task-title.scss',\n standalone: true,\n imports: [NgClass],\n encapsulation: ViewEncapsulation.Emulated,\n})\nexport class OnemrvaMatTaskTitleComponent implements AfterViewInit {\n @Input() customNgClass = ['onemrva-mat-task-title'];\n\n @ViewChild(TemplateRef) template?: TemplateRef<any>;\n\n cd = inject(ChangeDetectorRef);\n\n ngAfterViewInit() {\n this.cd.detectChanges();\n }\n}\n","<ng-template>\n <div [ngClass]=\"customNgClass\">\n <ng-content></ng-content>\n </div>\n</ng-template>\n","import { Component, Input, TemplateRef, ViewChild } from '@angular/core';\nimport { NgClass } from '@angular/common';\n\n@Component({\n selector: 'onemrva-mat-task-content',\n templateUrl: './onemrva-mat-task-content.html',\n styleUrl: './onemrva-mat-task-content.scss',\n standalone: true,\n imports: [NgClass],\n})\nexport class OnemrvaMatTaskContentComponent {\n @Input() customNgClass = ['onemrva-mat-task-content'];\n\n @ViewChild(TemplateRef) template?: TemplateRef<any>;\n}\n","<ng-template>\n <div [ngClass]=\"customNgClass\">\n <ng-content></ng-content>\n </div>\n</ng-template>\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n HostBinding,\n inject,\n Input,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { OnemrvaMatTaskTitleComponent } from './onemrva-mat-task-title.component';\nimport { OnemrvaMatTaskContentComponent } from './onemrva-mat-task-content.component';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { MatCheckbox } from '@angular/material/checkbox';\nimport { MatIcon } from '@angular/material/icon';\nimport { NgTemplateOutlet } from '@angular/common';\n\n@Component({\n selector: 'onemrva-mat-task',\n templateUrl: './onemrva-mat-task.component.html',\n styleUrls: ['onemrva-mat-task.component.scss'],\n standalone: true,\n imports: [MatCheckbox, MatIcon, ReactiveFormsModule, NgTemplateOutlet],\n encapsulation: ViewEncapsulation.Emulated,\n})\nexport class OnemrvaMatTaskComponent implements AfterViewInit {\n @Input() customNgClass: any;\n\n @Input() icon: string | undefined;\n @Input() form: FormControl | undefined;\n @Input() bubble: string | undefined;\n @Input() arialLabel = 'select';\n\n /** @hidden @internal */\n @HostBinding('class.disabled')\n @Input()\n disabled = false;\n private hostClass: string | undefined;\n\n @HostBinding('attr.aria-disabled')\n public get showAriaDisabled(): boolean {\n return this.disabled;\n }\n\n @ViewChild(TemplateRef) template!: TemplateRef<any>;\n\n @ContentChild(OnemrvaMatTaskTitleComponent)\n title?: OnemrvaMatTaskTitleComponent;\n\n @ContentChild(OnemrvaMatTaskContentComponent)\n content?: OnemrvaMatTaskContentComponent;\n\n cd = inject(ChangeDetectorRef);\n elRef = inject(ElementRef<HTMLElement>);\n\n ngAfterViewInit() {\n this.hostClass = Array.from(this.elRef.nativeElement.classList)\n .filter((c): c is string => typeof c === 'string' && c.startsWith('mat-'))\n .join(' ');\n if (this.title) {\n this.title.customNgClass.push(this.hostClass);\n }\n\n if (this.disabled) {\n this.form?.disable();\n if (this.title) {\n this.title.customNgClass.push('disabled');\n }\n if (this.content) {\n this.content.customNgClass.push('disabled');\n }\n }\n\n this.cd.detectChanges();\n }\n}\n","<div class=\"onemrva-mat-task-icon\">\n @if (icon !== undefined) {\n <span class=\"bubble\"\n ><mat-icon>{{ icon }}</mat-icon></span\n >\n }\n @if (form !== undefined) {\n <mat-checkbox\n [disabled]=\"true\"\n [formControl]=\"form\"\n [aria-label]=\"arialLabel\"\n ></mat-checkbox>\n }\n @if (bubble !== undefined) {\n <span class=\"bubble\">{{ bubble }}</span>\n }\n</div>\n\n@if (title?.template; as tpl) {\n <ng-container *ngTemplateOutlet=\"tpl\"></ng-container>\n}\n@if (content?.template; as tpl) {\n <ng-container *ngTemplateOutlet=\"tpl\"></ng-container>\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n HostBinding,\n inject,\n Input,\n QueryList,\n} from '@angular/core';\nimport { OnemrvaMatTaskComponent } from './onemrva-mat-task.component';\n\nlet NEXT_ID = 0;\n\n@Component({\n selector: 'onemrva-mat-task-list',\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrl: './onemrva-mat-task-list.component.scss',\n templateUrl: './onemrva-mat-task-list.component.html',\n standalone: true,\n})\nexport class OnemrvaMatTaskListComponent implements AfterViewInit {\n @HostBinding('attr.id')\n @Input()\n public id = `onemrva-mat-task-list-${NEXT_ID++}`;\n\n @HostBinding('attr.data-cy')\n @Input()\n data_cy = 'onemrva-mat-task-list';\n\n @ContentChildren(OnemrvaMatTaskComponent, {\n descendants: true,\n })\n _tasks?: QueryList<OnemrvaMatTaskComponent>;\n\n cd = inject(ChangeDetectorRef);\n\n ngAfterViewInit() {\n this.cd.detectChanges();\n }\n}\n","<ng-content></ng-content>\n","import { NgModule } from '@angular/core';\nimport { OnemrvaMatTaskListComponent } from './onemrva-mat-task-list.component';\nimport { OnemrvaMatTaskTitleComponent } from './onemrva-mat-task-title.component';\nimport { OnemrvaMatTaskContentComponent } from './onemrva-mat-task-content.component';\nimport { OnemrvaMatTaskComponent } from './onemrva-mat-task.component';\n\n@NgModule({\n imports: [\n OnemrvaMatTaskListComponent,\n OnemrvaMatTaskTitleComponent,\n OnemrvaMatTaskContentComponent,\n OnemrvaMatTaskComponent,\n ],\n exports: [],\n})\nexport class OnemrvaMatTaskListModule {}\n","import { ClockViewType } from './interfaces-and-types';\n\nexport function twoDigits(n: number) {\n return n < 10 ? `0${n}` : `${n}`;\n}\n\nexport function addDays(date: Date, days: number) {\n const result = new Date(date);\n result.setDate(result.getDate() + days);\n return result;\n}\n\nexport function convertHoursForMode(hour: number) {\n const isPm = hour >= 12;\n return { hour, isPm };\n}\n\nfunction mod(a: number, b: number) {\n return a - Math.floor(a / b) * b;\n}\n\nexport function getShortestAngle(from: number, to: number) {\n const difference = to - from;\n return from + mod(difference + 180, 360) - 180;\n}\n\nexport function isDateInRange(minDate: Date, maxDate: Date, current: Date) {\n const unixCurrentDate = +current;\n return (\n (!minDate || +minDate <= unixCurrentDate) &&\n (!maxDate || unixCurrentDate <= +maxDate)\n );\n}\n\nexport function isTimeInRange(minDate: Date, maxDate: Date, current: Date) {\n if (minDate instanceof Date) {\n const newMinDate = new Date();\n newMinDate.setHours(minDate.getHours());\n newMinDate.setMinutes(minDate.getMinutes());\n newMinDate.setSeconds(0);\n newMinDate.setMilliseconds(0);\n minDate = newMinDate;\n }\n if (maxDate instanceof Date) {\n const newMaxDate = new Date();\n newMaxDate.setHours(maxDate.getHours());\n newMaxDate.setMinutes(maxDate.getMinutes());\n newMaxDate.setSeconds(0);\n newMaxDate.setMilliseconds(0);\n maxDate = newMaxDate;\n }\n if (current instanceof Date) {\n const newCurrent = new Date();\n newCurrent.setHours(current.getHours());\n newCurrent.setMinutes(current.getMinutes());\n newCurrent.setSeconds(0);\n newCurrent.setMilliseconds(0);\n current = newCurrent;\n }\n const unixCurrentDate = +current;\n return (\n (!minDate || +minDate <= unixCurrentDate) &&\n (!maxDate || unixCurrentDate <= +maxDate)\n );\n}\n\n// used when generating the allowed maps\n\nexport function isAllowed(\n hour: number,\n minutes: number,\n minDate: Date,\n maxDate: Date,\n) {\n if (hour > 24 || hour < 0 || minutes > 60 || minutes < 0) {\n return false;\n }\n\n if (!minDate && !maxDate) {\n return true;\n }\n\n const checkDate = new Date();\n\n checkDate.setHours(hour);\n checkDate.setMinutes(minutes);\n checkDate.setSeconds(0);\n checkDate.setMilliseconds(0);\n\n return isDateInRange(minDate, maxDate, checkDate);\n}\n\n// used by the clock component to visually disable the not allowed values\n\nexport function getIsAvailabeFn(allowed24HourMap: any) {\n return (value: number, viewType: ClockViewType, h: number) => {\n const isHourCheck = viewType === 'hours';\n const [hour, minutes] = isHourCheck ? [value, 0] : [h, value];\n\n if (!allowed24HourMap) {\n return true;\n }\n\n if (isHourCheck) {\n return !!Object.values(allowed24HourMap[hour]).find(v => v === true);\n }\n return allowed24HourMap[hour][minutes];\n };\n}\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n OnChanges,\n SimpleChanges,\n ChangeDetectionStrategy,\n} from '@angular/core';\nimport {\n ClockViewType,\n ClockNumber,\n IAllowed24HourMap,\n} from '../interfaces-and-types';\nimport { getIsAvailabeFn } from '../util';\nimport { NgClass } from '@angular/common';\nimport { MatMiniFabButton } from '@angular/material/button';\nimport { MatToolbar } from '@angular/material/toolbar';\nimport { OnemRvaColorDirective } from '@onemrvapublic/design-system/shared';\n\n@Component({\n selector: 'mat-clock',\n templateUrl: './clock.component.html',\n styleUrls: ['./clock.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [NgClass, MatMiniFabButton, MatToolbar, OnemRvaColorDirective],\n})\nexport class ClockComponent implements OnChanges {\n @Input() viewType: ClockViewType = 'hours';\n @Input() formattedValue = 0;\n @Input() minDate!: Date;\n @Input() maxDate!: Date;\n @Input() formattedHours = 0;\n @Input() minutes!: number;\n @Output() changeEvent: EventEmitter<any> = new EventEmitter<any>();\n @Output() unavailableSelection: EventEmitter<any> = new EventEmitter<any>();\n @Output() invalidSelection: EventEmitter<any> = new EventEmitter<any>();\n\n @Input() allowed24HourMap!: IAllowed24HourMap;\n\n isFormattedValueAllowed = true;\n\n isAvailableFn?: ReturnType<typeof getIsAvailabeFn>;\n\n touching = false;\n angle?: number;\n numbers: ClockNumber[] = [];\n secondaryNumbers: ClockNumber[] = [];\n minuteDots: ClockNumber[] = [];\n invalidMeridiemEmitted = true;\n\n initIsAllowedFn() {\n if (!this.allowed24HourMap) {\n return;\n }\n this.isAvailableFn = getIsAvailabeFn(this.allowed24HourMap);\n }\n\n isAvailable(value: number) {\n return this.isAvailableFn\n ? this.isAvailableFn(value, this.viewType, this.formattedHours)\n : true;\n }\n\n ngOnChanges(simpleChanges: SimpleChanges) {\n if (\n simpleChanges['allowed24HourMap'] ||\n (simpleChanges['mode'] && !simpleChanges['mode'].firstChange)\n ) {\n this.initIsAllowedFn();\n }\n\n this.calculateAngule();\n this.setNumbers();\n\n if (simpleChanges['formattedValue'] && this.allowed24HourMap) {\n this.isFormattedValueAllowed = this.isAvailable(this.formattedValue);\n }\n\n const isSelectedTimeAvailable = this.isAvailableFn\n ? this.isAvailableFn(this.formattedValue, 'minutes', this.formattedHours)\n : true;\n\n if (this.viewType === 'minutes' && this.isAvailableFn) {\n const areMinitesAvailable = this.isAvailableFn(\n this.minutes,\n 'minutes',\n this.formattedHours,\n );\n if (!areMinitesAvailable) {\n if (this.minDate && this.minDate.getMinutes() > this.minutes) {\n setTimeout(() => {\n this.changeEvent.emit({\n value: this.minDate.getMinutes(),\n type: 'minutes',\n });\n });\n } else {\n setTimeout(() => {\n this.changeEvent.emit({\n value: this.maxDate.getMinutes(),\n type: 'minutes',\n });\n });\n }\n }\n }\n\n if (isSelectedTimeAvailable && this.invalidMeridiemEmitted) {\n this.invalidMeridiemEmitted = false;\n }\n\n this.invalidSelection.emit(!isSelectedTimeAvailable);\n }\n\n calculateAngule() {\n this.angle = this.getPointerAngle(this.formattedValue, this.viewType);\n }\n\n setNumbers() {\n if (this.viewType === 'hours') {\n // if (this.mode === '12h') {\n // const meridiem : string = this.isPm ? 'pm' : 'am';\n // const isAllowedFn = this.allowed12HourMap ? (num : number) => this.allowed12HourMap[meridiem][num + 1][0] : undefined;\n // this.numbers = this.getNumbers(12, { size: 256 }, isAllowedFn);\n // this.secondaryNumbers = [];\n // this.minuteDots = [];\n // } else if (this.mode === '24h') {\n const isAllowedFn = this.allowed24HourMap\n ? (num: number) => this.allowed24HourMap[num][0]\n : undefined;\n this.numbers = this.getNumbers(12, { size: 256 }, isAllowedFn);\n this.secondaryNumbers = this.getNumbers(\n 12,\n { size: 256 - 64, start: 13 },\n isAllowedFn,\n );\n this.minuteDots = [];\n //}\n } else {\n //const meridiem : string = this.isPm ? 'pm' : 'am';\n const isAllowedFn =\n // !!this.allowed12HourMap ? (num : number) => this.allowed12HourMap[meridiem][this.formattedHours][num] :\n this.allowed24HourMap\n ? (num: number) => this.allowed24HourMap[this.formattedHours][num]\n : undefined;\n\n this.numbers = this.getNumbers(\n 12,\n { size: 256, start: 5, step: 5 },\n isAllowedFn,\n );\n this.minuteDots = this.getNumbers(60, { size: 256, start: 13 }).map(\n digit => {\n if (digit.display <= 59) {\n digit.allowed = isAllowedFn ? isAllowedFn(digit.display) : true;\n return digit;\n }\n digit.display = digit.display - 60;\n digit.allowed = isAllowedFn ? isAllowedFn(digit.display) : true;\n return digit;\n },\n );\n this.secondaryNumbers = [];\n }\n }\n\n disableAnimatedPointer() {\n this.touching = true;\n }\n\n enableAnimatedPointer() {\n this.touching = false;\n }\n\n handleTouchMove = (e: any) => {\n e.preventDefault(); // prevent scrolling behind the clock on iOS\n const rect = e.target.getBoundingClientRect();\n this.movePointer(\n e.changedTouches[0].clientX - rect.left,\n e.changedTouches[0].clientY - rect.top,\n );\n };\n\n handleTouchEnd(e: any) {\n this.handleTouchMove(e);\n this.enableAnimatedPointer();\n }\n\n handleMouseMove(e: any) {\n // MouseEvent.which is deprecated, but MouseEvent.buttons is not supported in Safari\n if (e.buttons === 1 || e.which === 1) {\n const rect = e.target.getBoundingClientRect();\n this.movePointer(e.clientX - rect.left, e.clientY - rect.top);\n }\n }\n\n handleClick(e: any) {\n const rect = e.target.getBoundingClientRect();\n this.movePointer(e.clientX - rect.left, e.clientY - rect.top);\n }\n\n movePointer(x: number, y: number) {\n const value = this.getPointerValue(x, y, 256);\n if (!this.isAvailable(value)) {\n this.unavailableSelection.emit();\n return;\n }\n if (value !== this.formattedValue) {\n this.changeEvent.emit({\n value,\n type: this.viewType !== 'minutes' ? 'hours' : 'minutes',\n });\n if (this.viewType !== 'minutes') {\n if (!this.isAvailable(value)) {\n if (this.minDate && this.isAvailable(value)) {\n this.changeEvent.emit({\n value: this.minDate.getMinutes(),\n type: 'minutes',\n });\n } else if (this.maxDate && this.isAvailable(value)) {\n this.changeEvent.emit({\n value: this.maxDate.getMinutes(),\n type: 'minutes',\n });\n }\n }\n }\n }\n }\n\n getNumbers(\n count: number,\n { size = 0, start = 1, step = 1 },\n isAllowedFn?: (num: number) => boolean,\n ) {\n // eslint-disable-next-line\n return Array.apply(null, Array(count)).map((_, i) => ({\n display: i * step + start,\n translateX: (size / 2 - 20) * Math.cos((2 * Math.PI * (i - 2)) / count),\n translateY: (size / 2 - 20) * Math.sin((2 * Math.PI * (i - 2)) / count),\n allowed: isAllowedFn ? isAllowedFn(i) : true,\n }));\n }\n\n getPointerAngle(value: number, _mode: ClockViewType) {\n if (this.viewType === 'hours') {\n return (360 / 12) * ((value % 12) - 3);\n }\n return (360 / 60) * (value - 15);\n }\n\n getPointerValue(x: number, y: number, size: number) {\n let value;\n let angle = (Math.atan2(size / 2 - x, size / 2 - y) / Math.PI) * 180;\n if (angle < 0) {\n angle = 360 + angle;\n }\n\n if (this.viewType === 'hours') {\n const radius = Math.sqrt(\n Math.pow(size / 2 - x, 2) + Math.pow(size / 2 - y, 2),\n );\n value = 12 - Math.round((angle * 12) / 360);\n if (value === 0) {\n value = 12;\n }\n if (radius < size / 2 - 32) {\n value = value === 12 ? 0 : value + 12;\n }\n return value;\n }\n\n value = Math.round(60 - (60 * angle) / 360);\n return value === 60 ? 0 : value;\n }\n}\n","<div class=\"root\">\n <div\n class=\"circle\"\n tabindex=\"1\"\n (touchmove)=\"handleTouchMove($event)\"\n (mousemove)=\"handleMouseMove($event)\"\n (touchstart)=\"disableAnimatedPointer()\"\n (mousedown)=\"disableAnimatedPointer()\"\n (touchend)=\"handleTouchEnd($event)\"\n (mouseup)=\"enableAnimatedPointer()\"\n (click)=\"handleClick($event)\"\n >\n <div\n class=\"pointer-container\"\n [ngClass]=\"{\n 'small-pointer':\n viewType === 'hours' && (formattedValue === 0 || formattedValue > 12),\n 'animated-pointer': !touching,\n }\"\n [style.transform]=\"'rotate(' + angle + 'deg)'\"\n >\n <button\n aria-disabled=\"true\"\n mat-mini-fab\n color=\"neutral\"\n class=\"inner-dot\"\n aria-label=\"Inner Dot\"\n ></button>\n <mat-toolbar color=\"accent\" class=\"pointer\">\n <button\n mat-mini-fab\n color=\"neutral\"\n class=\"outer-dot\"\n aria-label=\"Outer dot\"\n [ngClass]=\"{\n 'outer-dot-odd': viewType === 'minutes' && formattedValue % 5 !== 0,\n }\"\n >\n @if (viewType === 'minutes' && formattedValue % 5 !== 0) {\n <ng-container>·</ng-container>\n }\n </button>\n </mat-toolbar>\n </div>\n @for (digit of minuteDots; track digit.display) {\n <button\n mat-mini-fab\n color=\"neutral\"\n class=\"number minute-dot\"\n [ngClass]=\"{\n selected:\n formattedValue === digit.display ||\n (digit.display === 0 && formattedValue === 0),\n disabled: !isAvailable(digit.display === 60 ? 0 : digit.display),\n }\"\n [style.transform]=\"\n 'translate(' + digit.translateX + 'px, ' + digit.translateY + 'px)'\n \"\n >\n @if (digit.display % 5 !== 0) {\n <ng-container>·</ng-container>\n }\n </button>\n }\n @for (digit of numbers; track digit.display) {\n <button\n mat-mini-fab\n color=\"neutral\"\n class=\"number\"\n [ngClass]=\"{\n selected:\n formattedValue === digit.display ||\n (digit.display === 60 && formattedValue === 0),\n disabled: !isAvailable(digit.display === 60 ? 0 : digit.display),\n }\"\n [style.transform]=\"\n 'translate(' + digit.translateX + 'px, ' + digit.translateY + 'px)'\n \"\n >\n <ng-template #hoursTemplate>{{ digit.display }}</ng-template>\n <ng-template #minutesTemplate>{{\n digit.display === 60 ? '00' : digit.display\n }}</ng-template>\n @if (viewType === 'minutes') {\n {{ digit.display === 60 ? '00' : digit.display }}\n } @else {\n {{ digit.display }}\n }\n </button>\n }\n @for (digit of secondaryNumbers; track digit.display) {\n <button\n mat-mini-fab\n color=\"neutral\"\n class=\"number small-number\"\n [ngClass]=\"{\n selected:\n formattedValue === digit.display ||\n (digit.display === 24 && formattedValue === 0),\n disabled: !isAvailable(digit.display === 24 ? 0 : digit.display),\n }\"\n [style.transform]=\"\n 'translate(' + digit.translateX + 'px, ' + digit.translateY + 'px)'\n \"\n >\n {{ digit.display === 24 ? '00' : digit.display }}\n </button>\n }\n </div>\n</div>\n","import {\n MAT_DIALOG_DATA,\n MatDialog,\n MatDialogActions,\n MatDialogContent,\n} from '@angular/material/dialog';\nimport {\n Component,\n EventEmitter,\n Output,\n DoCheck,\n inject,\n} from '@angular/core';\nimport { ClockViewType, IAllowed24HourMap } from '../interfaces-and-types';\nimport { twoDigits, convertHoursForMode } from '../util';\nimport { Subject } from 'rxjs';\nimport { MatToolbar } from '@angular/material/toolbar';\nimport { NgClass } from '@angular/common';\nimport { ClockComponent } from '../clock/clock.component';\nimport { MatButton } from '@angular/material/button';\nimport { OnemRvaColorDirective } from '@onemrvapublic/design-system/shared';\nimport { OnemrvaMatColor } from '@onemrvapublic/design-system/utils';\n\n@Component({\n selector: 'mat-timepicker-dialog',\n templateUrl: './timepicker-dialog.component.html',\n styleUrls: ['./timepicker-dialog.component.scss'],\n standalone: true,\n imports: [\n MatDialogContent,\n MatToolbar,\n NgClass,\n ClockComponent,\n MatDialogActions,\n MatButton,\n OnemRvaColorDirective,\n ],\n})\nexport class MatTimepickerComponentDialogComponent implements DoCheck {\n twoDigits = twoDigits;\n\n @Output() changeEvent: EventEmitter<any> = new EventEmitter<any>();\n @Output() okClickEvent: EventEmitter<any> = new EventEmitter<any>();\n @Output() cancelClickEvent: EventEmitter<any> = new EventEmitter<any>();\n\n allowed24HourMap!: IAllowed24HourMap;\n\n invalidSelection = false;\n\n okLabel = '';\n cancelLabel = '';\n\n set value(value: any) {\n value = value || this.minDate || this.maxDate || new Date();\n this.hours = value.getHours();\n this.minutes = value.getMinutes();\n this._value = value;\n }\n\n get value() {\n return this._value;\n }\n\n viewType: ClockViewType = 'hours';\n\n minutes: any;\n color: OnemrvaMatColor = 'primary';\n isPm = false;\n skipMinuteAutoSwitch = false;\n autoSwitchID: any;\n editHoursClicked = false;\n isClosing = false;\n\n minDate!: Date;\n maxDate!: Date;\n\n _formattedHour: any;\n\n _hours: any;\n\n _value?: Date;\n\n set hours(value: any) {\n this._hours = value;\n this._formattedHour = convertHoursForMode(this.hours).hour;\n }\n\n get hours() {\n return this._hours;\n }\n\n get formattedHours() {\n return this._formattedHour;\n }\n\n bindData(data: any) {\n this.okLabel = data.okLabel;\n this.cancelLabel = data.cancelLabel;\n this.color = data.color;\n this.minDate = data.minDate;\n this.maxDate = data.maxDate;\n this.allowed24HourMap = data.allowed24HourMap;\n }\n\n dialog = inject(MatDialog);\n data = inject(MAT_DIALOG_DATA);\n\n constructor() {\n this.isPm = this.data.isPm;\n this.bindData(this.data);\n // keep this always at the bottom\n this.value = this.data.value;\n }\n\n timepickerInput!: any;\n\n ngDoCheck() {\n this.bindData(this.data);\n }\n\n handleClockChange({\n value,\n type,\n }: {\n value: number;\n type: 'minutes' | 'hours';\n }) {\n if ((type && type === 'hours') || (!type && this.viewType === 'hours')) {\n this.hours = value;\n } else if (\n (type && type === 'minutes') ||\n (!type && this.viewType === 'minutes')\n ) {\n this.minutes = value;\n }\n\n const newValue = new Date();\n const hours = this.hours;\n // newValue.setFullYear(0);\n // newValue.setMonth(0);\n // newValue.setDate(0);\n newValue.setHours(hours);\n newValue.setMinutes(this.minutes);\n newValue.setSeconds(0);\n newValue.setMilliseconds(0);\n this.value = newValue;\n this.changeEvent.emit(newValue);\n }\n\n handleUnavailableSelection() {\n clearTimeout(this.autoSwitchID);\n }\n\n handleClockChangeDone(e: Event) {\n e.preventDefault(); // prevent mouseUp after touchEnd\n\n if (this.viewType === 'hours' && !this.skipMinuteAutoSwitch) {\n this.autoSwitchID = setTimeout(() => {\n this.editMinutes();\n this.autoSwitchID = null;\n }, 300);\n }\n }\n\n editHours() {\n this.viewType = 'hours';\n this.editHoursClicked = true;\n setTimeout(() => {\n this.editHoursClicked = false;\n }, 0);\n }\n\n editMinutes() {\n this.viewType = 'minutes';\n }\n\n invalidSelectionHandler(value: boolean) {\n this.invalidSelection = value;\n }\n\n okClickHandler() {\n this.okClickEvent.emit();\n }\n\n cancelClickHandler() {\n this.cancelClickEvent.emit();\n }\n\n closedStream!: EventEmitter<void>;\n disabled!: boolean;\n id!: string;\n opened!: boolean;\n openedStream!: EventEmitter<void>;\n stateChanges!: Subject<void>;\n}\n","<mat-dialog-content>\n <div class=\"root\">\n <mat-toolbar color=\"accent\" class=\"header\">\n <div class=\"time-frame\">\n <span\n class=\"time fixed-font-size\"\n [ngClass]=\"{ select: viewType === 'hours' && 'active' }\"\n (click)=\"editHours()\"\n role=\"button\"\n tabindex=\"0\"\n >\n {{ twoDigits(formattedHours) }}\n </span>\n <span class=\"fixed-font-size\">:</span>\n <span\n class=\"time fixed-font-size\"\n [ngClass]=\"{ select: viewType === 'minutes' && 'active' }\"\n (click)=\"editMinutes()\"\n tabindex=\"1\"\n role=\"button\"\n >\n {{ twoDigits(minutes) }}\n </span>\n </div>\n </mat-toolbar>\n <div class=\"body\">\n <mat-clock\n [allowed24HourMap]=\"allowed24HourMap\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n [viewType]=\"viewType\"\n [formattedHours]=\"formattedHours\"\n [minutes]=\"minutes\"\n (changeEvent)=\"handleClockChange($event)\"\n (unavailableSelection)=\"handleUnavailableSelection()\"\n [formattedValue]=\"viewType === 'minutes' ? minutes : formattedHours\"\n (mouseup)=\"handleClockChangeDone($event)\"\n (touchend)=\"handleClockChangeDone($event)\"\n (invalidSelection)=\"invalidSelectionHandler($event)\"\n ></mat-clock>\n </div>\n </div>\n</mat-dialog-content>\n<mat-dialog-actions>\n <button mat-button color=\"primary\" (click)=\"cancelClickHandler()\">\n {{ cancelLabel }}\n </button>\n <button\n mat-flat-button\n [disabled]=\"invalidSelection\"\n [color]=\"color\"\n (click)=\"okClickHandler()\"\n >\n {{ okLabel }}\n </button>\n</mat-dialog-actions>\n","import {\n Component,\n EventEmitter,\n HostBinding,\n Input,\n OnDestroy,\n Output,\n inject,\n} from '@angular/core';\nimport {\n OnemrvaMatColor,\n OnemrvaMatSize,\n} from '@onemrvapublic/design-system/utils';\nimport { MatTimepickerComponentDialogComponent } from './timepicker-dialog/timepicker-dialog.component';\nimport { Subject } from 'rxjs';\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\nimport { MatTimepickerDirective } from './timepicker.directive';\nimport { ThemePalette } from '@angular/material/core';\nimport { first, takeUntil } from 'rxjs/operators';\nimport { ONEMRVA_THEME_CLASS } from '@onemrvapublic/design-system/shared';\n\nlet NEXT_ID = 0;\n\n@Component({\n selector: 'mat-timepicker',\n templateUrl: 'onemrva-mat-timepicker.component.html',\n})\nexport class OnemrvaMatTimepickerComponent implements OnDestroy {\n public modalRef!: MatDialogRef<MatTimepickerComponentDialogComponent>;\n private onChangeFn: any;\n private _value!: Date;\n\n get value(): Date {\n return this._value;\n }\n\n set value(value: Date) {\n this._value = value;\n }\n\n private isAlive: Subject<any> = new Subject<any>();\n\n dialog = inject(MatDialog);\n\n opened = false;\n\n public setTimepickerInput(t: MatTimepickerDirective) {\n this.timepickerInput = t;\n }\n\n timepickerInput: any;\n\n /** Emits when the timepicker's state changes. */\n readonly stateChanges = new Subject<void>();\n\n // eslint-disable-next-line @angular-eslint/no-output-rename\n @Output('opened') readonly openedStream = new EventEmitter<void>();\n\n // eslint-disable-next-line @angular-eslint/no-output-rename\n @Output('closed') readonly closedStream = new EventEmitter<void>();\n\n /**\n * Returns the `aria-label` attribute of the element.\n *\n * @example\n * ```typescript\n * let timepickerLabel = this.timepicker.ariaLabel;\n * ```\n *\n */\n @HostBinding('attr.aria-label')\n public ariaLabel = '';\n\n @Input()\n public dialogLabel = 'Pick a Time';\n\n /**\n * Returns the `role` attribute of the element.\n *\n * @example\n * ```typescript\n * let timepickerRole = this.timepicker.role;\n * ```\n */\n @HostBinding('attr.role')\n public role = '';\n\n /**\n * Host `class.onemrva-mat-timepicker` binding.\n *\n * @hidden\n * @internal\n */\n @HostBinding('class.onemrva-mat-timepicker')\n public cssClass = 'onemrva-mat-timepicker';\n\n /**\n * Sets the `id` of the element. If not set, the first component instance will have `id` = `\"onemrva-mat-timepicker-0\"`.\n *\n * @example\n * ```html\n * <onemrva-mat-timepicker id=\"my-first-timepicker\"></onemrva-mat-timepicker>\n * ```\n */\n @HostBinding('attr.id')\n @Input()\n public id = `onemrva-mat-timepicker-${NEXT_ID++}`;\n\n /**\n * Sets the `data-cy` of the element. If not set, the first component instance will have `data-cy` = `\"onemrva-mat-timepicker-0\"`.\n *\n * @example\n * ```html\n * <onemrva-mat-timepicker id=\"my-first-timepicker\"></onemrva-mat-timepicker>\n * ```\n */\n @HostBinding('attr.data-cy')\n @Input()\n public dataCy = `onemrva-mat-timepicker-${NEXT_ID++}`;\n\n /**\n * @hidden\n * @internal\n */\n private _color: ThemePalette = 'primary';\n\n /**\n * Returns the color of the element.\n *\n * @example\n * ```typescript\n * let color = this.timepicker.color;\n * ```\n */\n @Input()\n public get color(): ThemePalette {\n return this._color;\n }\n\n /**\n * Sets the size of the element.\n * By default, the color is `\"primary\"`.\n *\n * @example\n * ```html\n * <onemrva-mat-timepicker size=\"large\"></onemrva-mat-timepicker>\n * ```\n */\n public set color(value: ThemePalette) {\n switch (value) {\n case OnemrvaMatColor.PRIMARY:\n case OnemrvaMatColor.ACCENT:\n case OnemrvaMatColor.WARN:\n this._color = value;\n break;\n default:\n this._color = OnemrvaMatColor.PRIMARY;\n }\n }\n\n /** @hidden @internal */\n @HostBinding('class.mat-primary')\n public get _isPrimary(): boolean {\n return this.color === OnemrvaMatColor.PRIMARY;\n }\n\n /** @hidden @internal */\n @HostBinding('class.mat-accent')\n public get _isAccent(): boolean {\n return this.color === OnemrvaMatColor.ACCENT;\n }\n\n /**\n * @hidden\n * @internal\n */\n private _size: string | OnemrvaMatSize = OnemrvaMatSize.SMALL;\n\n /**\n * Returns the size of the element.\n *\n * @example\n * ```typescript\n * let timepickerSize = this.timepicker.size;\n * ```\n */\n @Input()\n public get size(): string | OnemrvaMatSize {\n return this._size;\n }\n\n /**\n * Sets the size of the element.\n * By default, the size is `\"medium\"`.\n *\n * @example\n * ```html\n * <onemrva-mat-timepicker size=\"large\"></onemrva-mat-timepicker>\n * ```\n */\n public set size(value: string | OnemrvaMatSize) {\n switch (value) {\n case OnemrvaMatSize.XSMALL:\n case OnemrvaMatSize.SMALL:\n case OnemrvaMatSize.MEDIUM:\n case OnemrvaMatSize.LARGE:\n case OnemrvaMatSize.XLARGE:\n this._size = value;\n break;\n default:\n this._size = OnemrvaMatSize.MEDIUM;\n }\n }\n\n open() {\n if (this.timepickerInput.disabled) {\n return;\n }\n\n this.value = this.timepickerInput.currentValue;\n if (this.value === undefined || this.value === null) {\n this.value = new Date();\n }\n\n this.modalRef = this.dialog.open(MatTimepickerComponentDialogComponent, {\n ariaLabel: this.dialogLabel,\n autoFocus: false,\n data: {\n value: this.timepickerInput.currentValue,\n okLabel: this.timepickerInput.okLabel,\n cancelLabel: this.timepickerInput.cancelLabel,\n color: this.color,\n minDate: this.timepickerInput.minDate,\n maxDate: this.timepickerInput.maxDate,\n allowed24HourMap: this.timepickerInput.allowed24HourMap,\n },\n });\n\n const instance = this.modalRef.componentInstance;\n instance.changeEvent\n .pipe(takeUntil(this.isAlive))\n .subscribe(this.handleChange);\n instance.okClickEvent\n .pipe(takeUntil(this.isAlive))\n .subscribe(this.handleOk);\n instance.cancelClickEvent\n .pipe(takeUntil(this.isAlive))\n .subscribe(this.handleCancel);\n this.modalRef\n .beforeClosed()\n .pipe(first())\n .subscribe(() => (instance.isClosing = true));\n this.modalRef\n .afterClosed()\n .pipe(first())\n .subscribe(() => {\n if (this.timepickerInput.onTouchedFn) {\n this.timepickerInput.onTouchedFn();\n }\n //this.modalRef = null;\n this.timepickerInput.elRef.nativeElement.focus();\n });\n this.timepickerInput.currentValue = this.value as Date;\n }\n\n handleChange = (newValue: Date) => {\n if (!(newValue instanceof Date)) {\n return;\n }\n const v =\n this.value instanceof Date ? new Date(this.value.getTime()) : new Date();\n v.setHours(newValue.getHours());\n v.setMinutes(newValue.getMinutes());\n v.setSeconds(0);\n v.setMilliseconds(0);\n this.value = v;\n };\n\n handleOk = () => {\n if (this.onChangeFn) {\n this.onChangeFn(this.value);\n }\n this.timepickerInput.value = this.value;\n this.modalRef.close();\n };\n\n handleCancel = () => {\n this.modalRef.close();\n };\n\n ngOnDestroy() {\n this.isAlive.next('0');\n this.isAlive.complete();\n this.stateChanges.complete();\n\n // if (this._platform.isBrowser) {\n // this.fm.stopMonitoring(this.elRef.nativeElement);\n // }\n //\n // this.listeners.forEach(l => l());\n }\n}\n","","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Directive,\n inject,\n Input,\n OnChanges,\n OnDestroy,\n SimpleChanges,\n ViewEncapsulation,\n HostAttributeToken,\n} from '@angular/core';\nimport { merge, Observable, of as observableOf, Subscription } from 'rxjs';\nimport { OnemrvaMatTimepickerComponent } from '../onemrva-mat-timepicker.component';\nimport { MatIconButton } from '@angular/material/button';\nimport { MatIcon } from '@angular/material/icon';\n\n/** Can be used to override the icon of a `matDatepickerToggle`. */\n@Directive({\n selector: '[matDatepickerToggleIcon]',\n})\nexport class MatTimepickerToggleIconDirective {}\n\n@Component({\n selector: 'mat-timepicker-toggle',\n templateUrl: 'timepicker-toggle.component.html',\n styleUrls: ['timepicker-toggle.component.scss'],\n\n host: {\n class: 'mat-timepicker-toggle',\n '[attr.tabindex]': 'null',\n '[class.mat-timepicker-toggle-active]': 'timepicker && timepicker.opened',\n '[class.mat-accent]': 'timepicker && timepicker.color === \"accent\"',\n '[class.mat-warn]': 'timepicker && timepicker.color === \"warn\"',\n // Used by the test harness to tie this toggle to its timepicker.\n '[attr.data-mat-calendar]': 'timepicker ? timepicker.id : null',\n // Bind the `click` on the host, rather than the inner `button`, so that we can call\n // `stopPropagation` on it without affecting the user's `click` handlers. We need to stop\n // it so that the input doesn't get focused automatically by the form field (See #21836).\n '(click)': '_open($event)',\n },\n exportAs: 'matDatepickerToggle',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [MatIconButton, MatIcon],\n})\nexport class MatTimePickerToggle\n implements AfterContentInit, OnChanges, OnDestroy\n{\n private _stateChanges = Subscription.EMPTY;\n\n /** Datepicker instance that the button will toggle. */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('for') timepicker!: OnemrvaMatTimepickerComponent;\n\n /** Tabindex for the toggle. */\n @Input() tabIndex: number | null;\n\n /** Screenreader label for the button. */\n @Input() ariaLabel = '';\n\n /** Whether the toggle button is disabled. */\n @Input()\n get disabled(): boolean {\n if (this.timepicker) {\n return this.timepicker.timepickerInput._disabled;\n }\n return this._disabled;\n }\n\n set disabled(value: BooleanInput) {\n this._disabled = coerceBooleanProperty(value);\n }\n\n private _disabled = false;\n\n /** Whether ripples on the toggle should be disabled. */\n @Input() disableRipple = false;\n $event: Event = new Event('abrupt');\n\n /** Underlying button element. */\n //@ViewChild('button') _button: MatButton;\n\n _changeDetectorRef = inject(ChangeDetectorRef);\n\n constructor() {\n const defaultTabIndex = inject(new HostAttributeToken('tabindex'), {\n optional: true,\n });\n\n const parsedTabIndex = Number(defaultTabIndex);\n this.tabIndex =\n parsedTabIndex || parsedTabIndex === 0 ? parsedTabIndex : null;\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['timepicker']) {\n this._watchStateChanges();\n }\n }\n\n ngOnDestroy() {\n this._stateChanges.unsubscribe();\n }\n\n ngAfterContentInit() {\n this._watchStateChanges();\n }\n\n _open(event: Event): void {\n if (this.timepicker && !this.disabled) {\n this.timepicker.open();\n event.stopPropagation();\n }\n }\n\n private _watchStateChanges() {\n const datepickerStateChanged = this.timepicker\n ? this.timepicker.stateChanges\n : observableOf();\n const inputStateChanged =\n this.timepicker && this.timepicker.timepickerInput\n ? this.timepicker.timepickerInput.stateChanges\n : observableOf();\n const datepickerToggled = this.timepicker\n ? merge(this.timepicker.openedStream, this.timepicker.closedStream)\n : observableOf();\n\n this._stateChanges.unsubscribe();\n this._stateChanges = merge(\n datepickerStateChanged as Observable<void>,\n inputStateChanged,\n datepickerToggled,\n ).subscribe(() => this._changeDetectorRef.markForCheck());\n }\n}\n","<button\n #button\n mat-icon-button\n type=\"button\"\n [attr.aria-haspopup]=\"timepicker ? 'dialog' : null\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.tabindex]=\"disabled ? -1 : tabIndex\"\n [disabled]=\"disabled\"\n [disableRipple]=\"disableRipple\"\n>\n <mat-icon>schedule</mat-icon>\n\n <ng-content select=\"[mattimepickerToggleIcon]\"></ng-content>\n</button>\n","import {\n ControlValueAccessor,\n NgForm,\n NgControl,\n FormGroupDirective,\n FormControl,\n Validators,\n} from '@angular/forms';\nimport {\n Directive,\n OnInit,\n EventEmitter,\n Input,\n ElementRef,\n OnChanges,\n Renderer2,\n NgZone,\n HostBinding,\n Output,\n HostListener,\n inject,\n} from '@angular/core';\nimport {\n MatFormFieldControl,\n MatFormField,\n} from '@angular/material/form-field';\nimport { IAllowed24HourMap } from './interfaces-and-types';\nimport { twoDigits, isAllowed, isDateInRange, isTimeInRange } from './util';\nimport { Subject, Subscription } from 'rxjs';\nimport { FocusMonitor } from '@angular/cdk/a11y';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { ErrorStateMatcher } from '@angular/material/core';\nimport { Platform } from '@angular/cdk/platform';\nimport { OnemrvaMatTimepickerComponent } from './onemrva-mat-timepicker.component';\n\n@Directive({\n selector: 'input[matTimepicker]',\n providers: [\n { provide: MatFormFieldControl, useExisting: MatTimepickerDirective },\n ],\n\n host: {\n class: 'mat-input-element mat-form-field-autofill-control',\n '[class.mat-input-server]': '_isServer',\n // Native input properties that are overwritten by Angular inputs need to be synced with\n // the native input element. Otherwise property bindings for those don't work.\n '[attr.id]': 'id',\n '[attr.placeholder]': 'placeholder',\n '[disabled]': 'disabled',\n '[required]': 'required',\n '[attr.readonly]': 'readonly || null',\n '[attr.aria-invalid]': 'errorState',\n '[attr.aria-required]': 'required.toString()',\n },\n exportAs: 'matTimepicker',\n standalone: true,\n})\nexport class MatTimepickerDirective\n implements OnInit, OnChanges, ControlValueAccessor, MatFormFieldControl<any>\n{\n static nextId = 0;\n\n /** Whether the component is being rendered on the server. */\n readonly _isServer: boolean;\n private _closedSubscription = Subscription.EMPTY;\n\n /** The datepicker that this input is associated with. */\n @Input()\n set matTimepicker(timepicker: OnemrvaMatTimepickerComponent) {\n if (timepicker) {\n this._timepicker = timepicker;\n this._timepicker.setTimepickerInput(this);\n this._closedSubscription = timepicker.closedStream.subscribe(() =>\n this._onTouched(),\n );\n //this._registerModel(datepicker.registerInput(this));\n }\n }\n\n _timepicker!: OnemrvaMatTimepickerComponent;\n\n _errorState = false;\n get errorState() {\n const oldState = this._errorState;\n const parent = this._parentFormGroup || this._parentForm;\n const control = this.ngControl\n ? (this.ngControl.control as FormControl)\n : null;\n const newState = this.errorStateMatcher\n ? this.errorStateMatcher.isErrorState(control, parent)\n : oldState;\n\n if (newState !== oldState) {\n this._errorState = newState;\n this.stateChanges.next();\n }\n\n return newState;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n _onTouched = () => {};\n\n @Input()\n get disabled(): boolean {\n if (this.ngControl && this.ngControl.disabled !== null) {\n return this.ngControl.disabled;\n }\n return this._disabled;\n }\n\n set disabled(value: boolean) {\n this._disabled = coerceBooleanProperty(value);\n\n // Browsers may not fire the blur event if the input is disabled too quickly.\n // Reset from here to ensure that the element doesn't become stuck.\n if (this.focused) {\n this.focused = false;\n }\n this.stateChanges.next();\n }\n\n protected _disabled = false;\n\n @Input() get id(): string {\n return this._id;\n }\n\n set id(value: string) {\n this._id = value || this._uid;\n }\n\n protected _id = '0';\n\n @Input() get readonly(): boolean {\n return this._readonly;\n }\n\n set readonly(value: boolean) {\n this._readonly = coerceBooleanProperty(value);\n }\n\n private _readonly = false;\n\n stateChanges = new Subject<void>();\n\n protected _uid = `mat-input-${MatTimepickerDirective.nextId++}`;\n\n @HostBinding('class.floating') get shouldLabelFloat() {\n return this.focused || !this.empty;\n }\n\n @HostBinding('attr.aria-describedby') describedBy = '';\n\n @Input() errorStateMatcher: ErrorStateMatcher;\n\n @Input() get required() {\n if (this.ngControl?.control) {\n return this.ngControl.control.hasValidator(Validators.required);\n }\n return this._required;\n }\n\n set required(req) {\n this._required = coerceBooleanProperty(req);\n this.stateChanges.next();\n }\n\n private _required = false;\n\n @Input() get placeholder() {\n return this._placeholder;\n }\n\n set placeholder(plh) {\n this._placeholder = plh;\n this.stateChanges.next();\n }\n\n private _placeholder = '';\n\n focused = false;\n private pattern = new RegExp('[0-2]?[0-9]:[0-6]?[0-9]');\n\n private allowed24HourMap: IAllowed24HourMap = this.generateAllowedMap();\n\n private isInputFocused = false;\n\n /** Override the label of the ok button. */\n @Input() okLabel = 'Ok';\n /** Override the label of the cancel button. */\n @Input() cancelLabel = 'Cancel';\n\n /** Sets the clock mode, 12-hour or 24-hour clocks are supported. */\n @Input() color = 'primary';\n @Input() disableDialogOpenOnClick = false;\n @Input() strict = true;\n\n controlType = 'angular-material-timepicker';\n\n @Input() minDate!: Date;\n @Input() maxDate!: Date;\n\n private _value: Date | null = null;\n private _formattedValueString = '';\n\n private _skipValueChangeEmission = true;\n\n @Input() set value(value: Date | null) {\n if (value === this._value) {\n return;\n }\n this._value = value;\n if (!value) {\n this._formattedValueString = '';\n this.setInputElementValue(value);\n this.currentValue = value ?? new Date();\n return;\n }\n\n this._formattedValueString = `${twoDigits(value.getHours())}:${twoDigits(\n value.getMinutes(),\n )}`;\n\n if (!this.isInputFocused) {\n this.setInputElementValue(this.formattedValueString);\n }\n this.currentValue = value;\n this.stateChanges.next();\n\n if (this._skipValueChangeEmission) {\n return;\n }\n this.timeChange.emit(this.currentValue);\n\n if (this.onChangeFn) this.onChangeFn(this.value);\n }\n\n get value() {\n return this._value;\n }\n\n get empty() {\n return !(this.currentValue instanceof Date);\n }\n\n private get formattedValueString() {\n return this._formattedValueString;\n }\n\n private currentValue!: Date;\n\n private onChangeFn: any;\n private onTouchedFn: any;\n private combination: string[] = [];\n\n @Output() timeChange: EventEmitter<any> = new EventEmitter<any>();\n @Output() invalidInput: EventEmitter<any> = new EventEmitter<any>();\n\n @HostListener('input') inputHandler() {\n const value = (this.elRef.nativeElement as any).value as string;\n const length = value.length;\n\n if (length === 0) {\n this.writeValue(null, true);\n this._value = null;\n this._skipValueChangeEmission = true;\n Promise.resolve().then(() => (this._skipValueChangeEmission = false));\n\n if (this.onChangeFn) {\n this.onChangeFn(null);\n }\n\n return;\n }\n\n const valueHasColumn = value.includes(':');\n let [hours, minutes]: any =\n length === 1\n ? [value, 0]\n : length === 2 && !valueHasColumn\n ? [value, 0]\n : valueHasColumn\n ? value.split(':')\n : value.split(/(\\d\\d)/).filter(v => v);\n\n hours = +hours;\n\n if (/\\s/.test(minutes)) {\n let other;\n [minutes, other] = minutes.split(/\\s/);\n if (other === 'pm' && !isNaN(hours) && hours < 12) {\n hours += 12;\n }\n }\n\n minutes = +minutes;\n\n if (isNaN(hours) || isNaN(minutes)) {\n //this.writeValue(null, true);\n this._skipValueChangeEmission = true;\n Promise.resolve().then(() => (this._skipValueChangeEmission = false));\n return;\n }\n\n if (+hours > 24) {\n hours = '24';\n } else if (+hours < 0) {\n hours = '0';\n }\n\n if (+minutes > 59) {\n minutes = '59';\n } else if (+minutes < 0) {\n minutes = '0';\n }\n\n const d = this.value ? new Date(this.value.getTime()) : new Date();\n d.setHours(+hours);\n d.setMinutes(+minutes);\n d.setSeconds(0);\n d.setMilliseconds(0);\n\n const isValueInRange = isDateInRange(this.minDate, this.maxDate, d);\n if (!isValueInRange) {\n this.invalidInput.emit();\n }\n\n this.writeValue(d, true);\n if (this.onChangeFn) {\n this.onChangeFn(d);\n }\n }\n\n @HostListener('keydown', ['$event']) keydownHandler(event: any) {\n const e = event as KeyboardEvent;\n\n const allowedKey = [\n '0',\n '1',\n '2',\n '3',\n '4',\n '5',\n '6',\n '7',\n '8',\n '9',\n ':',\n 'Backspace',\n 'Delete',\n 'Tab',\n 'Enter',\n 'ArrowLeft',\n 'ArrowRight',\n 'ArrowUp',\n 'ArrowDown',\n 'Home',\n 'End',\n ];\n if (allowedKey.indexOf(e.key) >= 0) return;\n\n const allowedCtrlShortcuts = ['a', 'c', 'x', 'v'];\n if (e.ctrlKey && allowedCtrlShortcuts.indexOf(e.key) >= 0) return;\n\n if (event.metaKey || event.ctrlKey || event.altKey) {\n this.combination = this.combination.concat(event.code);\n return;\n }\n const target = event.target;\n const tValue = target.value;\n const value = `${tValue.slice(0, target.selectionStart)}${\n event.key\n }${tValue.slice(target.selectionEnd)}`;\n if (value.match(this.pattern) || this.combination.length > 0) {\n return true;\n }\n event.preventDefault();\n event.stopImmediatePropagation();\n return;\n }\n\n @HostListener('keyup', ['$event']) keyupHandler(event: any) {\n this.combination = this.combination.filter(v => v !== event.code);\n }\n\n @HostListener('focus') focusHandler() {\n this.isInputFocused = true;\n }\n\n @HostListener('focusout') focusoutHandler() {\n this.isInputFocused = false;\n this.setInputElementValue(this.formattedValueString);\n if (this.onTouchedFn && !this._timepicker.modalRef) {\n this.onTouchedFn();\n }\n }\n\n public readonly ngControl = inject(NgControl, { optional: true, self: true });\n private readonly renderer = inject(Renderer2);\n private readonly zone = inject(NgZone);\n private readonly fm = inject(FocusMonitor);\n private readonly elRef = inject(ElementRef<HTMLElement>);\n private readonly ngZone = inject(NgZone);\n protected readonly _platform = inject(Platform);\n private readonly _parentForm = inject(NgForm, { optional: true });\n private readonly _matFormFiled = inject(MatFormField, { optional: true });\n private readonly _parentFormGroup = inject(FormGroupDirective, {\n optional: true,\n });\n private readonly _defaultErrorStateMatcher = inject(ErrorStateMatcher);\n\n constructor() {\n this.errorStateMatcher = this._defaultErrorStateMatcher;\n if (this.ngControl != null) {\n this.ngControl.valueAccessor = this;\n }\n\n if (this._platform.IOS) {\n this.ngZone.runOutsideAngular(() => {\n this.elRef.nativeElement.addEventListener('keyup', (event: Event) => {\n const el = event.target as HTMLInputElement;\n if (!el.value && !el.selectionStart && !el.selectionEnd) {\n // Note: Just setting `0, 0` doesn't fix the issue. Setting\n // `1, 1` fixes it for the first time that you type text and\n // then hold delete. Toggling to `1, 1` and then back to\n // `0, 0` seems to completely fix it.\n el.setSelectionRange(1, 1);\n el.setSelectionRange(0, 0);\n }\n });\n });\n }\n\n this._isServer = !this._platform.isBrowser;\n }\n\n setDescribedByIds(ids: string[]) {\n this.describedBy = ids.join(' ');\n }\n\n onContainerClick(event: MouseEvent) {\n if ((event.target as Element).tagName.toLowerCase() !== 'input') {\n this.elRef.nativeElement.focus();\n }\n }\n\n setInputElementValue(value: any) {\n Promise.resolve().then(() => {\n this.zone.runOutsideAngular(() => {\n this.renderer.setProperty(this.elRef.nativeElement, 'value', value);\n });\n });\n }\n\n validate() {\n const isValueInRange = this.strict\n ? isDateInRange(this.minDate, this.maxDate, this.currentValue)\n : isTimeInRange(this.minDate, this.maxDate, this.currentValue);\n\n return isValueInRange ? null : { dateRange: true };\n }\n\n ngOnInit() {\n if (this._platform.isBrowser) {\n this.fm.monitor(this.elRef.nativeElement, true).subscribe(origin => {\n this.focused = !!origin;\n this.stateChanges.next();\n });\n }\n if (!this.value) {\n const hasMaxDate = !!this.maxDate;\n const hasMinDate = !!this.minDate;\n\n //if (hasMinDate || hasMaxDate) {\n if (hasMinDate) {\n this.minDate.setSeconds(0);\n this.minDate.setMilliseconds(0);\n }\n if (hasMaxDate) {\n this.maxDate.setSeconds(0);\n this.maxDate.setMilliseconds(0);\n }\n\n if (\n !(this.ngControl as any)._rawValidators.find((v: any) => v === this)\n ) {\n (this.ngControl as any)._rawValidators.push(this);\n }\n //}\n }\n this._skipValueChangeEmission = false;\n }\n\n generateAllowedMap(): IAllowed24HourMap {\n const isStrictMode = this.strict && this.value instanceof Date;\n const a24hm: IAllowed24HourMap = {};\n for (let h = 0; h < 24; h++) {\n for (let m = 0; m < 60; m++) {\n const hourMap = a24hm[h] || {};\n if (isStrictMode && this.value) {\n const currentDate = new Date(this.value.getTime());\n currentDate.setHours(h);\n currentDate.setMinutes(m);\n currentDate.setSeconds(0);\n currentDate.setMilliseconds(0);\n hourMap[m] = isDateInRange(this.minDate, this.maxDate, currentDate);\n } else {\n hourMap[m] = isAllowed(h, m, this.minDate, this.maxDate);\n }\n a24hm[h] = hourMap;\n }\n }\n\n return a24hm;\n }\n\n ngOnChanges() {\n this.pattern = /^[0-9]{1,2}:?([0-9]{1,2})?$/;\n\n if (\n !this._timepicker.modalRef ||\n !this._timepicker.modalRef.componentInstance\n ) {\n return;\n }\n\n this._timepicker.modalRef.componentInstance.data = {\n value: this.currentValue,\n okLabel: this.okLabel,\n cancelLabel: this.cancelLabel,\n color: this.color,\n minDate: this.minDate,\n maxDate: this.maxDate,\n allowed24HourMap: this.allowed24HourMap,\n };\n }\n\n checkValidity(value: Date) {\n if (!value) {\n return false;\n }\n const hour = value.getHours();\n const minutes = value.getMinutes();\n return isAllowed(hour, minutes, this.minDate, this.maxDate);\n }\n\n writeValue(value: Date | null, isInnerCall = false): void {\n if (!isInnerCall) {\n this._skipValueChangeEmission = true;\n Promise.resolve().then(() => (this._skipValueChangeEmission = false));\n }\n\n if (value) {\n value.setSeconds(0);\n value.setMilliseconds(0);\n }\n\n if (this.value && +this.value === +(value ?? 0)) {\n return;\n } else {\n this.value = value;\n }\n }\n\n registerOnChange(fn: any): void {\n this.onChangeFn = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouchedFn = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n this.stateChanges.next();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { OnemrvaMatTimepickerComponent } from './onemrva-mat-timepicker.component';\nimport {\n MatTimePickerToggle,\n MatTimepickerToggleIconDirective,\n} from './timepicker-toggle/timepicker-toggle.component';\nimport { MatTimepickerDirective } from './timepicker.directive';\nimport { ClockComponent } from './clock/clock.component';\nimport { MatTimepickerComponentDialogComponent } from './timepicker-dialog/timepicker-dialog.component';\n\n@NgModule({\n imports: [\n ClockComponent,\n MatTimepickerDirective,\n MatTimepickerComponentDialogComponent,\n MatTimepickerToggleIconDirective,\n MatTimePickerToggle,\n OnemrvaMatTimepickerComponent,\n ],\n exports: [\n MatTimepickerDirective,\n MatTimePickerToggle,\n OnemrvaMatTimepickerComponent,\n ],\n})\nexport class OnemrvaMatTimepickerModule {}\n","import { Component, inject } from '@angular/core';\nimport { MAT_SNACK_BAR_DATA } from '@angular/material/snack-bar';\nimport { NgClass } from '@angular/common';\nimport { OnemRvaColorDirective } from '@onemrvapublic/design-system/shared';\n\nexport enum ToastType {\n info = 'info',\n success = 'success',\n warn = 'warn',\n error = 'error',\n accent = 'accent',\n primary = 'primary',\n}\n\n@Component({\n selector: 'onemrva-mat-toast',\n styleUrl: 'onemrva-mat-toast.component.scss',\n template: `\n <div\n class=\"onemrva-mat-toast show-icon\"\n [color]=\"data.type\"\n [ngClass]=\"data.type\"\n [attr.data-cy]=\"dataCy\"\n role=\"alert\"\n aria-atomic=\"true\"\n >\n <span>{{ data.message }}</span>\n </div>\n `,\n standalone: true,\n imports: [NgClass, OnemRvaColorDirective],\n})\nexport class OnemrvaMatToastComponent {\n dataCy: string;\n data = inject(MAT_SNACK_BAR_DATA) as {\n type: ToastType;\n message: string;\n dataCy?: string;\n };\n\n constructor() {\n this.dataCy = this.data.dataCy ? this.data.dataCy : 'onemrva-mat-toast';\n }\n}\n","import { NgModule } from '@angular/core';\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\nimport { OnemrvaMatToastComponent } from './onemrva-mat-toast.component';\n\n@NgModule({\n imports: [OnemrvaMatToastComponent],\n exports: [OnemrvaMatToastComponent, MatSnackBarModule],\n})\nexport class OnemrvaMatToastModule {}\n","/*\n * Public API Surface of mat-toast\n */\n\nexport * from './src/onemrva-mat-toast.component';\nexport * from './src/onemrva-mat-toast.module';\n","import { Component, Input, TemplateRef } from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\n\n@Component({\n selector: 'onemrva-mat-tooltip',\n styleUrls: ['./onemrva-mat-tooltip.component.scss'],\n template: `\n <div>\n <div class=\"tooltip-container\">\n <ng-template #simpleText>\n {{ text }}\n </ng-template>\n <ng-container *ngTemplateOutlet=\"contentTemplate || simpleText\">\n </ng-container>\n </div>\n </div>\n `,\n standalone: true,\n imports: [NgTemplateOutlet],\n})\nexport class OnemrvaMatTooltipComponent {\n @Input() text!: string;\n @Input() contentTemplate!: TemplateRef<any>;\n}\n","import {\n ComponentRef,\n Directive,\n ElementRef,\n HostListener,\n Input,\n OnDestroy,\n OnInit,\n TemplateRef,\n inject,\n} from '@angular/core';\nimport { OnemrvaMatTooltipComponent } from './onemrva-mat-tooltip.component';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport {\n ConnectedPosition,\n Overlay,\n OverlayPositionBuilder,\n OverlayRef,\n} from '@angular/cdk/overlay';\nimport { TooltipPosition } from '@angular/material/tooltip';\n\n@Directive({\n selector: '[OnemrvaMatTooltip]',\n standalone: true,\n})\nexport class OnemrvaMatTooltipDirective implements OnInit, OnDestroy {\n private _overlay = inject(Overlay);\n private _overlayPositionBuilder = inject(OverlayPositionBuilder);\n private _elementRef = inject(ElementRef);\n\n @Input() showToolTip = true;\n\n @Input() customToolTip!: string;\n\n @Input() contentTemplate!: TemplateRef<any>;\n\n @Input() position: TooltipPosition = 'after';\n @Input() positionOffset = 5;\n\n private _overlayRef!: OverlayRef;\n\n ngOnInit() {\n if (!this.showToolTip) {\n return;\n }\n\n const positionStrategy = this._overlayPositionBuilder\n .flexibleConnectedTo(this._elementRef)\n .withPositions(this.defineStrategy());\n this._overlayRef = this._overlay.create({ positionStrategy });\n }\n\n defineStrategy(): ConnectedPosition[] {\n switch (this.position) {\n case 'above':\n return [\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n },\n ];\n\n case 'below':\n return [\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n },\n ];\n\n case 'after':\n case 'right':\n return [\n {\n originX: 'end',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'top',\n },\n ];\n\n case 'before':\n case 'left':\n return [\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'top',\n },\n ];\n default:\n return [];\n }\n }\n\n @HostListener('mouseenter')\n show() {\n if (this._overlayRef && !this._overlayRef.hasAttached()) {\n const tooltipRef: ComponentRef<OnemrvaMatTooltipComponent> =\n this._overlayRef.attach(\n new ComponentPortal(OnemrvaMatTooltipComponent),\n );\n tooltipRef.instance.text = this.customToolTip;\n tooltipRef.instance.contentTemplate = this.contentTemplate;\n }\n }\n\n @HostListener('mouseleave')\n hide() {\n this.closeToolTip();\n }\n\n ngOnDestroy() {\n this.closeToolTip();\n }\n\n private closeToolTip() {\n if (this._overlayRef) {\n this._overlayRef.detach();\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { OnemrvaMatTooltipComponent } from './onemrva-mat-tooltip.component';\nimport { OnemrvaMatTooltipDirective } from './onemrva-mat-tooltip.directive';\n\n@NgModule({\n declarations: [],\n imports: [OnemrvaMatTooltipDirective, OnemrvaMatTooltipComponent],\n exports: [OnemrvaMatTooltipDirective, OnemrvaMatTooltipComponent],\n})\nexport class OnemrvaMatTooltipModule {}\n","import { Component, TemplateRef, ViewChild } from '@angular/core';\n\n@Component({\n selector: 'page-not-found-action',\n template: '<ng-template><ng-content></ng-content></ng-template>',\n standalone: true,\n})\nexport class PageNotFoundActionComponent {\n @ViewChild(TemplateRef) template?: TemplateRef<any>;\n}\n","import { Component, TemplateRef, ViewChild } from '@angular/core';\n\n@Component({\n selector: 'page-not-found-extra',\n template: '<ng-template><ng-content></ng-content></ng-template>',\n standalone: true,\n})\nexport class PageNotFoundExtraComponent {\n @ViewChild(TemplateRef) template?: TemplateRef<any>;\n}\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n OnDestroy,\n inject,\n} from '@angular/core';\nimport { Observable, of, Subject, Subscription, timer } from 'rxjs';\nimport { map, startWith, switchMap } from 'rxjs/operators';\nimport { AsyncPipe, NgClass, NgStyle } from '@angular/common';\n\n@Component({\n selector: 'page-not-found-invader',\n styleUrls: ['page-not-found-invader.component.scss'],\n template: `\n <img\n role=\"button\"\n tabindex=\"1\"\n src=\"https://cdn.services.rvaonem.fgov.be/assets/404/saucer.svg\"\n class=\"invader\"\n alt=\"invader\"\n [ngClass]=\"{ 'game-over': gameOver }\"\n [ngStyle]=\"{\n width: (size$ | async) + 'px',\n height: (size$ | async) + 'px',\n left: left + 'px',\n top: top + 'px',\n }\"\n (click)=\"getScore()\"\n />\n <div class=\"score\">Score: {{ score }}</div>\n <!--div class=\"laser\"></div-->\n `,\n standalone: true,\n imports: [AsyncPipe, NgStyle, NgClass],\n})\nexport class PageNotFoundInvaderComponent implements AfterViewInit, OnDestroy {\n private cd = inject(ChangeDetectorRef);\n\n level = 0;\n size$?: Observable<number>;\n\n start: Date = new Date();\n score = 0;\n gameOver = false;\n sub?: Subscription;\n\n score$ = new Subject<number>();\n top = 0;\n left = 0;\n\n ngAfterViewInit() {\n this.size$ = this.score$.pipe(\n startWith(0),\n switchMap(score => {\n this.level++;\n if (this.gameOver) {\n this.sub?.unsubscribe();\n return of(10);\n }\n\n const width = window.innerWidth;\n const height = window.innerHeight;\n\n this.left = (Math.random() * width) / 2 + width / 3;\n this.top = Math.random() * height * 0.8 + height / 10;\n\n const lvl = score < 39 ? score : 39.5;\n return timer(0, 10).pipe(map(i => i / (40 - lvl)));\n }),\n );\n\n this.sub = this.size$.subscribe(s => {\n if (s > 20) {\n this.gameOver = true;\n this.score$.next(this.score);\n }\n });\n\n this.cd.detectChanges();\n }\n\n ngOnDestroy(): void {\n this.sub?.unsubscribe();\n }\n\n getScore() {\n if (this.gameOver) {\n this.score$.next(this.score);\n this.sub?.unsubscribe();\n return;\n }\n this.score++;\n this.score$.next(this.score);\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n OnDestroy,\n QueryList,\n inject,\n} from '@angular/core';\nimport { PageNotFoundActionComponent } from './page-not-found-action.component';\nimport { PageNotFoundExtraComponent } from './page-not-found-extra.component';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { PageNotFoundInvaderComponent } from './page-not-found-invader.component';\n\nconst konamiPattern = [\n 'ArrowUp',\n 'ArrowUp',\n 'ArrowDown',\n 'ArrowDown',\n 'ArrowLeft',\n 'ArrowRight',\n 'ArrowLeft',\n 'ArrowRight',\n 'b',\n 'a',\n];\n@Component({\n selector: 'page-not-found',\n styleUrls: ['./page-not-found.component.scss'],\n templateUrl: 'page-not-found.component.html',\n standalone: true,\n imports: [TranslatePipe, NgTemplateOutlet, PageNotFoundInvaderComponent],\n})\nexport class PageNotFoundComponent implements AfterViewInit, OnDestroy {\n @ContentChildren(PageNotFoundActionComponent)\n actions?: QueryList<PageNotFoundActionComponent>;\n @ContentChild(PageNotFoundExtraComponent)\n extra?: PageNotFoundExtraComponent;\n\n sequence: string[] = ['', '', '', '', '', '', '', '', '', ''];\n konamiMatch = false;\n\n cd = inject(ChangeDetectorRef);\n\n ngAfterViewInit() {\n this.cd.detectChanges();\n window.addEventListener('keydown', this.konami.bind(this));\n }\n\n ngOnDestroy() {\n window.removeEventListener('keydown', this.konami.bind(this));\n }\n\n konami($event: any) {\n this.sequence.shift();\n this.sequence = [...this.sequence, $event.key];\n\n if (\n this.sequence.length === konamiPattern.length &&\n !this.sequence.map((s, idx) => s === konamiPattern[idx]).includes(false)\n ) {\n this.konamiMatch = true;\n }\n }\n}\n","<div class=\"page-not-found\">\n <!--img src=\"https://cdn.services.rvaonem.fgov.be/img/404/Arrière-plan.svg\" class=\"ap\" /-->\n <div class=\"not-found-section\">\n <div class=\"heading mat-headline-1\">{{ '404.oops' | translate }}</div>\n <h1>{{ '404.title' | translate }}</h1>\n <p>{{ '404.body' | translate }}</p>\n <h2>{{ '404.actions' | translate }}</h2>\n <div class=\"actions\">\n @for (action of actions?.toArray(); track action.template) {\n @if (action.template) {\n <ng-container *ngTemplateOutlet=\"action.template\"></ng-container>\n }\n }\n </div>\n @if (extra?.template; as tpl) {\n <ng-container *ngTemplateOutlet=\"tpl\"></ng-container>\n }\n </div>\n <div class=\"not-found-section section-flying-saucer\">\n <div class=\"not-found-section flying-saucer-container\">\n <img\n src=\"https://cdn.services.rvaonem.fgov.be/img/404/saucer.svg\"\n class=\"soucoupe\"\n alt=\"{{ '404.flying.saucer' | translate }}\"\n />\n <img\n src=\"https://cdn.services.rvaonem.fgov.be/img/404/lightbeam.svg\"\n class=\"halo\"\n alt=\"{{ '404.tractor.beam' | translate }}\"\n />\n <div class=\"page-container\">\n <img\n src=\"https://cdn.services.rvaonem.fgov.be/img/404/document.svg\"\n class=\"page\"\n alt=\"{{ '404.scared.page' | translate }}\"\n />\n </div>\n <img\n src=\"https://cdn.services.rvaonem.fgov.be/img/404/shadow.svg\"\n class=\"ombre\"\n alt=\"{{ '404.shadow' | translate }}\"\n />\n </div>\n </div>\n @if (konamiMatch) {\n <page-not-found-invader></page-not-found-invader>\n }\n</div>\n","import { NgModule } from '@angular/core';\nimport { PageNotFoundComponent } from './page-not-found.component';\nimport { PageNotFoundInvaderComponent } from './page-not-found-invader.component';\nimport { PageNotFoundActionComponent } from './page-not-found-action.component';\nimport { PageNotFoundExtraComponent } from './page-not-found-extra.component';\n\n@NgModule({\n declarations: [],\n imports: [\n PageNotFoundComponent,\n PageNotFoundInvaderComponent,\n PageNotFoundActionComponent,\n PageNotFoundExtraComponent,\n ],\n exports: [\n PageNotFoundComponent,\n PageNotFoundInvaderComponent,\n PageNotFoundActionComponent,\n PageNotFoundExtraComponent,\n ],\n})\nexport class OnemrvaPageNotFoundModule {}\n","import { Component, ElementRef, inject } from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { Clipboard } from '@angular/cdk/clipboard';\n\n@Component({\n selector: 'lib-clipboard-icon',\n templateUrl: './clipboard-icon.component.html',\n styleUrls: ['./clipboard-icon.component.css'],\n standalone: true,\n imports: [MatIconModule, MatTooltipModule],\n})\nexport class ClipboardIconComponent {\n public _elementRef = inject(ElementRef);\n private clipboardService = inject(Clipboard);\n}\n","<mat-icon [matTooltip]=\"'TEST'\">content_copy</mat-icon>\n","export enum CDNUrlModeOptions {\n PROD = 'production',\n VAL = 'validation',\n}\n","export const CDN_URLS = {\n prod: 'https://cdn.services.rvaonem.fgov.be',\n val: 'https://cdn.servicesval.rvaonem.fgov.be',\n};\n\nexport const NISS_MASK = '000000/000-00';\n\nexport const LOOKUP_COUNTRY_URL =\n 'http://services/lookupwpptservice/rest/lookup/getLookups?class=be.fgov.onerva.lookup.wppt.persistence.model.common.Country';\n\nexport const ONEMRVA_THEME = 'onemrva-theme';\n\n// export const LOOKUP_POSTAL_CODE_URL =\n// 'https://services/lookupwpptservice/rest/lookup/getBelgianCommunityByPostalCode?postalCode=';\n","import { MatDateFormats } from '@angular/material/core';\n\nconst parseNativeDateFormats = [\n 'ddMMyyyy',\n 'dd/MM/yyyy',\n 'd/M/yyyy',\n 'dd/M/yyyy',\n 'd/MM/yyyy',\n 'd.M.yyyy',\n 'dd.M.yyyy',\n 'd.MM.yyyy',\n 'd/M/yy',\n 'dd/M/yy',\n 'd/MM/yy',\n 'd.M.yy',\n 'dd.M.yy',\n 'd.MM.yy',\n];\nconst parseNativeYearMonthFormats = [\n 'MMyyyy',\n 'M/yyyy',\n 'M/yy',\n 'MM/yyyy',\n 'MM/yy',\n 'M.yyyy',\n 'MM.yyyy',\n];\nconst parseLuxonYearMonthFormats = [\n 'LLyyyy',\n 'L/yyyy',\n 'L/yy',\n 'LL/yyyy',\n 'LL/yy',\n 'L.yyyy',\n 'LL.yyyy',\n];\nconst parseLuxonDateFormat = [\n 'ddLLyyyy',\n 'd/LL/yyyy',\n 'd/L/yyyy',\n 'dd/L/yyyy',\n 'd/LL/yyyy',\n 'd.L.yyyy',\n 'dd.L.yyyy',\n 'd.LL.yyyy',\n 'd/L/yy',\n 'dd/L/yy',\n 'd/LL/yy',\n 'd.L.yy',\n 'dd.L.yy',\n 'd.LL.yy',\n];\n\nexport const ONEMRVA_MAT_NATIVE_DATE_FORMAT: MatDateFormats = {\n parse: {\n dateInput: parseNativeDateFormats,\n },\n display: {\n dateInput: 'dd/MM/yyyy',\n monthYearLabel: 'LL / yyyy',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMMM yyyy',\n },\n};\n\nexport const ONEMRVA_MAT_NATIVE_YEAR_MONTH_FORMAT: MatDateFormats = {\n parse: {\n dateInput: parseNativeYearMonthFormats,\n },\n display: {\n dateInput: 'dd/MM/yyyy',\n monthYearLabel: 'LL / yyyy',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMM yyyy',\n },\n};\n\nexport const ONEMRVA_MAT_LUXON_YEAR_MONTH_FORMATS: MatDateFormats = {\n parse: {\n dateInput: parseLuxonYearMonthFormats,\n },\n display: {\n dateInput: 'LL/yyyy',\n monthYearLabel: 'LLL yyyy',\n dateA11yLabel: 'DDD',\n monthYearA11yLabel: 'LLLL yyyy',\n },\n};\n\nexport const ONEMRVA_MAT_LUXON_DATE_FORMATS: MatDateFormats = {\n parse: {\n dateInput: parseLuxonDateFormat,\n },\n display: {\n dateInput: 'dd/LL/yyyy',\n monthYearLabel: 'LLL yyyy',\n dateA11yLabel: 'DDD',\n monthYearA11yLabel: 'LLL yyyy',\n },\n};\n","import { InjectionToken } from '@angular/core';\n\nexport const CDN_URL_MODE = new InjectionToken<string>(\n 'This is cdn url that will be used (val/prod)',\n);\n","import { InjectionToken } from '@angular/core';\nimport { LOOKUP_COUNTRY_URL, ONEMRVA_THEME } from '../constants';\n\nexport const LOOKUP_COUNTRY_SERVICE_URL = new InjectionToken<string>(\n 'LOOKUP_COUNTRY_SERVICE_URL',\n {\n providedIn: 'root',\n factory: () => LOOKUP_COUNTRY_URL,\n },\n);\n\nexport const ONEMRVA_THEME_CLASS = new InjectionToken<string>(\n 'ONEMRVA_THEME_CLASS',\n {\n providedIn: 'root',\n factory: () => ONEMRVA_THEME,\n },\n);\n","/**\n * @license\n * Copyright 2025 OneMRVA\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport { DOCUMENT } from '@angular/common';\nimport { inject, Injectable, OnDestroy } from '@angular/core';\nimport { Platform, _isTestEnvironment } from '@angular/cdk/platform';\nimport { ONEMRVA_THEME_CLASS } from '../tokens/inject.token';\n\n/** Container inside which all overlays will render. */\n@Injectable({ providedIn: 'root' })\nexport class WebComponentOverlayContainer implements OnDestroy {\n protected _containerElement: HTMLElement | null = null;\n private _themeObserver: MutationObserver | null = null;\n\n private platform = inject(Platform);\n private _document = inject(DOCUMENT);\n private themeClass = inject(ONEMRVA_THEME_CLASS);\n\n ngOnDestroy() {\n this._containerElement?.remove();\n this._themeObserver?.disconnect();\n }\n\n /**\n * This method returns the overlay container element. It will lazily\n * create the element the first time it is called to facilitate using\n * the container in non-browser environments.\n * @returns the container element\n */\n getContainerElement(): HTMLElement | null {\n if (this._containerElement === null) {\n this._createContainer();\n }\n\n return this._containerElement;\n }\n\n /**\n * Create the overlay container element, which is simply a div\n * with the 'cdk-overlay-container' class on the document body.\n */\n protected _createContainer(): void {\n const containerClass = 'cdk-overlay-container';\n\n if (this.platform.isBrowser || _isTestEnvironment()) {\n const oppositePlatformContainers = this._document.querySelectorAll(\n `.${containerClass}[platform=\"server\"], ` +\n `.${containerClass}[platform=\"test\"]`,\n );\n\n oppositePlatformContainers.forEach(platform => {\n platform.remove();\n });\n }\n\n const containerwrap = this._document.createElement('div');\n containerwrap.classList.add(this.themeClass);\n\n const themeElements = this._document.querySelectorAll(\n `.${this.themeClass}`,\n );\n const existingThemeElement = Array.from(themeElements).find(\n el => el !== containerwrap,\n );\n\n if (existingThemeElement) {\n if (existingThemeElement.classList.contains('dark-theme')) {\n containerwrap.classList.add('dark-theme');\n } else if (existingThemeElement.classList.contains('light-theme')) {\n containerwrap.classList.add('light-theme');\n }\n }\n\n this._themeObserver = new MutationObserver(mutations => {\n mutations.forEach(mutation => {\n if (\n mutation.type === 'attributes' &&\n mutation.attributeName === 'class'\n ) {\n const target = mutation.target as HTMLElement;\n if (\n target.classList.contains(this.themeClass) &&\n target !== containerwrap\n ) {\n containerwrap.classList.remove('dark-theme', 'light-theme');\n if (target.classList.contains('dark-theme')) {\n containerwrap.classList.add('dark-theme');\n } else if (target.classList.contains('light-theme')) {\n containerwrap.classList.add('light-theme');\n }\n }\n }\n });\n });\n\n if (existingThemeElement) {\n this._themeObserver.observe(existingThemeElement, {\n attributes: true,\n attributeFilter: ['class'],\n });\n }\n\n const container = this._document.createElement('div');\n container.classList.add(containerClass);\n\n if (_isTestEnvironment()) {\n container.setAttribute('platform', 'test');\n } else if (!this.platform.isBrowser) {\n container.setAttribute('platform', 'server');\n }\n\n containerwrap.appendChild(container);\n this._document.body.appendChild(containerwrap);\n this._containerElement = container;\n }\n}\n","import {\n filter,\n finalize,\n merge,\n NEVER,\n Observable,\n Subject,\n tap,\n shareReplay,\n startWith,\n switchMap,\n BehaviorSubject,\n take,\n catchError,\n} from 'rxjs';\n\ntype HttpRequestCacheMethod = (...args: any[]) => Observable<any>;\n\nexport class DefaultStorage implements HttpCacheStorage {\n private storage = new Map<string, Observable<any>>();\n\n getItem(key: string): Observable<any> | undefined {\n return this.storage.get(key);\n }\n\n setItem(key: string, item: Observable<any>): void {\n this.storage.set(key, item);\n }\n\n deleteItem(key: string): void {\n this.storage.delete(key);\n }\n}\n\nexport interface HttpCacheStorage {\n setItem(key: string, item: Observable<any>): void;\n getItem(key: string): Observable<null> | undefined;\n deleteItem(key: string): void;\n}\n\nexport interface HttpCacheOptions {\n refCount?: boolean;\n windowTime?: number;\n ttl?: number;\n storage?: HttpCacheStorage;\n refreshOn?: Observable<unknown> | Subject<unknown> | BehaviorSubject<unknown>;\n}\n\nexport class RequestTimes implements HttpCacheStorage {\n private storage = new Map<string, Observable<any>>();\n\n getItem(key: string): Observable<any> | undefined {\n return this.storage.get(key);\n }\n\n setItem(key: string, item: Observable<any>): void {\n this.storage.set(key, item);\n }\n\n deleteItem(key: string): void {\n this.storage.delete(key);\n }\n}\n\nexport const HttpRequestCache = <T extends Record<string, any>>(\n optionsHandler?: (obj: T, ...args: any[]) => HttpCacheOptions,\n) => {\n return (\n target: T,\n methodName: string,\n descriptor: TypedPropertyDescriptor<HttpRequestCacheMethod>,\n ): TypedPropertyDescriptor<HttpRequestCacheMethod> => {\n if (!(descriptor?.value instanceof Function)) {\n throw Error(\n `'@HttpRequestCache' can be applied only to the class method which returns an Observable`,\n );\n }\n\n const cacheKeyPrefix = `${target.constructor.name}_${methodName}`;\n const originalMethod = descriptor.value;\n const working: Record<string, boolean> = {};\n let subscribers = 0;\n\n descriptor.value = function (...args: any[]): Observable<any> {\n const options = optionsHandler?.call(this as T, this as T, ...args);\n\n if (!options?.storage && !(target as any)._____storage_____) {\n (target as any)._____storage_____ = new DefaultStorage();\n }\n\n if (options?.ttl && !(target as any)._____ttl_storage_____) {\n (target as any)._____ttl_storage_____ = new RequestTimes();\n }\n\n const storage = options?.storage ?? (target as any)._____storage_____;\n\n const key = `${cacheKeyPrefix}_${JSON.stringify(args)}`;\n\n let ttl: { requestTime: number; subject: Subject<void> } =\n undefined as any;\n\n if (options?.ttl) {\n ttl = (target as any)._____ttl_storage_____.getItem(key);\n\n if (!ttl) {\n ttl = {\n requestTime: Date.now(),\n subject: new Subject(),\n };\n } else if (ttl.requestTime + options.ttl <= Date.now()) {\n working[key] = true;\n ttl.requestTime = Date.now();\n ttl.subject.next();\n }\n\n (target as any)._____ttl_storage_____.setItem(key, ttl);\n }\n\n const refreshOn = merge(\n options?.refreshOn ?? (NEVER as Observable<unknown>),\n ttl?.subject ?? (NEVER as Observable<unknown>),\n );\n\n return storage.getItem(key).pipe(\n take(1),\n tap(value => {\n subscribers++;\n if (value === null) throw '';\n }),\n catchError(() => {\n const observable = refreshOn.pipe(\n startWith(true),\n switchMap(() => originalMethod.apply(this, [...args])),\n tap(() => {\n delete working[key];\n }),\n shareReplay({\n bufferSize: 1,\n refCount: options?.refCount ?? false,\n windowTime: options?.windowTime ?? Infinity,\n }),\n filter(() => {\n return !working[key];\n }),\n finalize(() => {\n subscribers--;\n if (subscribers === 0 && options?.refCount) {\n storage.deleteItem(key);\n (target as any)._____ttl_storage_____?.deleteItem(key);\n }\n }),\n );\n storage.setItem(key, observable);\n return observable;\n }),\n );\n\n // let observable = storage.getItem(key);\n //\n // if (!observable) {\n //\n // observable = refreshOn.pipe(\n // startWith(true),\n // switchMap(() => originalMethod.apply(this, [...args])),\n // tap(() => {\n // delete working[key];\n // }),\n // shareReplay({\n // bufferSize: 1,\n // refCount: options?.refCount ?? false,\n // windowTime: options?.windowTime ?? Infinity,\n // }),\n // filter(() => {\n // return !working[key];\n // }),\n // finalize(() => {\n // subscribers--;\n // if (subscribers === 0 && options?.refCount) {\n // storage.deleteItem(key);\n // (target as any)._____ttl_storage_____?.deleteItem(key);\n // }\n // })\n // );\n // storage.setItem(key, observable);\n // }\n\n // subscribers++;\n\n // return observable;\n };\n\n return descriptor;\n };\n};\n","import { Directive, HostListener } from '@angular/core';\n\n@Directive({\n selector: '[digitOnly]',\n standalone: true,\n})\nexport class DigitOnlyDirective {\n @HostListener('keydown', ['$event']) onKeyDown(event: any) {\n const e = event as KeyboardEvent;\n\n const allowedKey = [\n '0',\n '1',\n '2',\n '3',\n '4',\n '5',\n '6',\n '7',\n '8',\n '9',\n '.',\n ',',\n ' ',\n 'Backspace',\n 'Delete',\n 'Tab',\n '-',\n 'Enter',\n 'ArrowLeft',\n 'ArrowRight',\n 'ArrowUp',\n 'ArrowDown',\n 'Home',\n 'End',\n ];\n if (allowedKey.indexOf(e.key) >= 0) return;\n\n // HWKTODO manage ctrl Z and ctrl U\n const allowedCtrlShortcuts = ['a', 'c', 'x', 'v'];\n if (e.ctrlKey && allowedCtrlShortcuts.indexOf(e.key) >= 0) return;\n\n e.preventDefault();\n }\n}\n","import { Directive, HostBinding, Input } from '@angular/core';\nimport { OnemrvaMatColor } from '@onemrvapublic/design-system/utils';\n\n/**\n * Conditionally adds component to the tree if screen width matches at least one size in input\n */\n@Directive({\n selector:\n 'onemrva-mat-selectable-box[color],' +\n 'div[color],' +\n 'onemrva-mat-avatar[color],' +\n 'mat-card[color],' +\n 'mat-toolbar[color],' +\n 'onemrva-mat-spinner[color],' +\n 'onemrva-mat-notification[color],' +\n 'onemrva-mat-task-list[color],' +\n 'onemrva-mat-sticker[color],' +\n 'onemrva-mat-panel[color],' +\n 'onemrva-mat-task[color],' +\n 'onemrva-mat-choice-chip[color],' +\n 'mat-form-field[color],' +\n 'button[color],' +\n 'mat-icon[color],' +\n 'mat-chip[color],' +\n 'mat-chip-option[color]',\n standalone: true,\n})\nexport class OnemRvaColorDirective {\n @Input()\n color: OnemrvaMatColor = '';\n\n /** @hidden @internal */\n @HostBinding('class.mat-primary')\n public get _isPrimary(): boolean {\n return this.color === OnemrvaMatColor.PRIMARY;\n }\n /** @hidden @internal */\n @HostBinding('class.mat-accent')\n public get _isAccent(): boolean {\n return this.color === OnemrvaMatColor.ACCENT;\n }\n /** @hidden @internal */\n @HostBinding('class.mat-error')\n public get _isError(): boolean {\n return this.color === OnemrvaMatColor.ERROR;\n }\n /** @hidden @internal */\n @HostBinding('class.mat-warn')\n public get _isWarn(): boolean {\n return this.color === OnemrvaMatColor.WARN;\n }\n /** @hidden @internal */\n @HostBinding('class.mat-success')\n public get _isSuccess(): boolean {\n return this.color === OnemrvaMatColor.SUCCESS;\n }\n /** @hidden @internal */\n @HostBinding('class.mat-info')\n public get _isInfo(): boolean {\n return this.color === OnemrvaMatColor.INFO;\n }\n /** @hidden @internal */\n @HostBinding('class.mat-neutral')\n public get _isNeutral(): boolean {\n return this.color === OnemrvaMatColor.NEUTRAL;\n }\n}\n","import {\n Directive,\n EventEmitter,\n HostBinding,\n HostListener,\n Output,\n} from '@angular/core';\nimport { OnemRvaColorDirective } from './color.directive';\n\n@Directive({\n selector: 'tr[matRowClickable]',\n standalone: true,\n})\nexport class MatRowClickableDirective extends OnemRvaColorDirective {\n @Output()\n matRowClickable = new EventEmitter<any>();\n\n @HostListener('click', ['$event'])\n click() {\n this.matRowClickable.emit();\n }\n\n /** @hidden @internal */\n @HostBinding('class.clickable')\n public get _isClickable(): boolean {\n return this.matRowClickable.observed;\n }\n\n @HostBinding('class.onemrva-clickable-row')\n public cssClass = true;\n}\n","import {\n BreakpointObserver,\n Breakpoints,\n BreakpointState,\n} from '@angular/cdk/layout';\nimport {\n Directive,\n Input,\n OnInit,\n TemplateRef,\n ViewContainerRef,\n inject,\n} from '@angular/core';\n\n/**\n * Conditionally adds component to the tree if screen width matches at least one size in input\n */\n@Directive({\n selector: '[ifWidthIs]',\n standalone: true,\n})\nexport class IfWidthIsDirective implements OnInit {\n breakpointObserver = inject(BreakpointObserver);\n private _templateRef = inject<TemplateRef<any>>(TemplateRef);\n private _viewContainer = inject(ViewContainerRef);\n\n @Input() ifWidthIs!: (typeof Breakpoints)[keyof typeof Breakpoints][];\n\n ngOnInit() {\n this.breakpointObserver\n .observe([...this.ifWidthIs])\n .subscribe((state: BreakpointState) => {\n this._viewContainer.clear();\n if (state.matches) {\n this._viewContainer.createEmbeddedView(this._templateRef);\n }\n });\n }\n}\n","import {\n Directive,\n ElementRef,\n HostListener,\n Input,\n inject,\n} from '@angular/core';\n\nconst UNDO_STACK_MAX_LENGTH = 50;\n\n/**\n * 0: digits\n * A: letters (uppercase or lowercase) and digits\n * S: only letters (uppercase or lowercase)\n * U: only letters uppercase\n * L: only letters lowercase\n */\n\n@Directive({\n selector: '[onemrvamask]',\n standalone: true,\n})\nexport class OnemrvaMaskDirective {\n private el = inject(ElementRef);\n\n @Input() onemrvamask!: string;\n\n private inputStack: string[] = ['']; // Stack for undo/redo\n private stackIdx = 0; // Current index in undo/redo stack\n\n markForDelete = false;\n\n @HostListener('keydown', ['$event']) onKeyDown(event: KeyboardEvent) {\n // Allow functional keystrokes\n const e = event as KeyboardEvent;\n\n let specialKeys = [\n 'Tab',\n 'Enter',\n 'ArrowLeft',\n 'ArrowRight',\n 'ArrowUp',\n 'ArrowDown',\n 'Home',\n 'End',\n ];\n if (specialKeys.indexOf(e.key) >= 0) return;\n\n specialKeys = ['Backspace', 'Delete'];\n if (specialKeys.indexOf(e.key) >= 0) {\n this.markForDelete = true;\n return;\n }\n\n // Undo\n if (e.ctrlKey && 'z' === e.key && this.stackIdx > 0) {\n this.stackIdx--;\n this.el.nativeElement.value = this.inputStack[this.stackIdx];\n event.preventDefault();\n }\n\n // Redo\n if (\n e.ctrlKey &&\n 'u' === e.key &&\n this.stackIdx < this.inputStack.length - 1\n ) {\n this.stackIdx++;\n this.el.nativeElement.value = this.inputStack[this.stackIdx];\n event.preventDefault();\n }\n\n const allowedCtrlShortcuts = ['a', 'c', 'x', 'v'];\n if (e.ctrlKey && allowedCtrlShortcuts.indexOf(e.key) >= 0) return;\n }\n\n @HostListener('input', ['$event']) onInput(event: any) {\n const selectionStart = event.target?.selectionStart;\n\n /*\n * Step 1\n * This block lets a delete execution if the new value is compliant.\n * There are 2 deletion cases, after which the new value is not compliant\n * - dd/MX/yyyy: X is deleted, then the date becomes dd/M/yyyy\n * This case is resolved by step 2 and the date will become: dd/My/yyy\n * - dd/MMXyyyy: the last '/' is deleted, then the date becomes dd/MMyyyy\n * In this particular case, step 2 will automatically add the missing slash, so the date will remain dd/MM/yyyy\n * The issue is that the caret position will remain stuck where it was, so if the user keeps hitting the delete key, nothing will change at all. This is resolved in step 4 by moving the caret to the left\n */\n if (this.markForDelete) {\n const isCompliantAfterDeletion =\n [...this.el.nativeElement.value].findIndex((char, idx) => {\n const rule = this.onemrvamask[idx];\n\n if (rule === null || rule === undefined) return true;\n\n if (isNaN(char) && char.toLowerCase() === char.toUpperCase())\n return char !== rule;\n\n return !isAllowed(rule, char);\n }) < 0;\n\n if (isCompliantAfterDeletion) {\n this.markForDelete = false;\n return;\n }\n }\n\n // Step 2\n const compliantValue = [...this.el.nativeElement.value]\n .filter(char => isAllowed('A', char)) // Necessary when several special char in a row\n .reduce((newValue, char) => {\n let idx = newValue.length;\n const rule = this.onemrvamask[idx];\n\n if (rule === null || rule === undefined) return newValue;\n\n newValue = !isAllowed(rule, char) ? newValue : newValue + char;\n\n // Add all trailing special characters\n let nextRule = this.onemrvamask[++idx];\n let i = 0;\n\n while (\n nextRule !== null &&\n nextRule !== undefined &&\n ['0', 'A', 'S', 'U', 'L'].indexOf(nextRule) < 0\n ) {\n i++;\n newValue += nextRule;\n nextRule = this.onemrvamask[++idx];\n\n if (i > 50) break;\n }\n\n return newValue;\n }, '');\n\n this.el.nativeElement.value = compliantValue;\n\n // Step 3 - Find the new cursor position. If the last new character is just before special character, move the caret after\n let idx = selectionStart;\n let nextRule = this.onemrvamask[idx];\n while (\n nextRule !== null &&\n nextRule !== undefined &&\n ['0', 'A', 'S', 'U', 'L'].indexOf(nextRule) < 0\n ) {\n idx++;\n nextRule = this.onemrvamask[idx];\n if (\n nextRule !== null &&\n nextRule &&\n ['0', 'A', 'S', 'U', 'L'].indexOf(nextRule) < 0\n ) {\n /* empty */\n } else break;\n }\n\n // Step 4 - Update inputStack only when all characters are processed\n if (compliantValue !== this.inputStack[this.stackIdx]) {\n this.stackIdx++;\n\n const stack =\n this.stackIdx > UNDO_STACK_MAX_LENGTH - 1\n ? this.inputStack.slice(1)\n : this.inputStack.splice(0, this.stackIdx);\n this.stackIdx =\n this.stackIdx > UNDO_STACK_MAX_LENGTH - 1\n ? UNDO_STACK_MAX_LENGTH - 1\n : this.stackIdx;\n\n this.inputStack = [...stack, compliantValue];\n\n this.el.nativeElement.setSelectionRange(idx, idx);\n } else {\n if (this.markForDelete) {\n let i = idx - 1;\n /* Finds the last rule character before the special character.\n * e.g: (nnn)/nnnn\n * If the user tries to delete '/', the caret will move just before ')'\n */\n while (i > 0) {\n const previousRule = this.onemrvamask[i - 1];\n if (['0', 'A', 'S', 'U', 'L'].indexOf(previousRule) < 0) {\n i--;\n } else break;\n }\n this.el.nativeElement.setSelectionRange(i, i);\n }\n }\n this.markForDelete = false;\n }\n}\n\nfunction isAllowed(rule: string, character: string) {\n switch (rule) {\n // Any digit\n case '0':\n if (character === ' ') return false;\n return !isNaN(+character);\n\n // A: letters (uppercase or lowercase) and digits\n case 'A':\n if (character === ' ') return false;\n return (\n !isNaN(+character) || character.toLowerCase() != character.toUpperCase()\n );\n\n // only letters (uppercase or lowercase)\n case 'S':\n return character.toLowerCase() != character.toUpperCase();\n\n // only uppercase letters\n case 'U':\n return (\n character.toLowerCase() != character.toUpperCase() &&\n character === character.toUpperCase()\n );\n\n // only lowercase letters\n case 'L':\n return (\n character.toLowerCase() != character.toUpperCase() &&\n character === character.toLowerCase()\n );\n }\n\n return false;\n}\n","import {\n ComponentFactoryResolver,\n ComponentRef,\n Directive,\n ElementRef,\n HostBinding,\n Input,\n OnInit,\n Renderer2,\n ViewContainerRef,\n inject,\n} from '@angular/core';\nimport { Clipboard } from '@angular/cdk/clipboard';\nimport { ClipboardIconComponent } from '../components/clipboard-icon/clipboard-icon.component';\n\n/**\n * Conditionally adds component to the tree if screen width matches at least one size in input\n */\n@Directive({\n selector: 'span[clipboard]',\n standalone: true,\n})\nexport class OnemRvaClipboardDirective implements OnInit {\n private elementRef = inject(ElementRef);\n private renderer = inject(Renderer2);\n private factory = inject(ComponentFactoryResolver);\n private vcRef = inject(ViewContainerRef);\n private clipboardService = inject(Clipboard);\n\n private icon: ComponentRef<ClipboardIconComponent>;\n private iconEl: any;\n\n constructor() {\n const miFactory = this.factory.resolveComponentFactory(\n ClipboardIconComponent,\n );\n this.icon = this.vcRef.createComponent(miFactory);\n this.iconEl = this.icon.injector.get(\n ClipboardIconComponent,\n )._elementRef.nativeElement;\n }\n\n @HostBinding('class')\n class = '';\n\n @Input()\n clipboard = '';\n\n ngOnInit(): void {\n this.vcRef.clear();\n\n this.renderer.appendChild(this.elementRef.nativeElement, this.iconEl);\n }\n}\n","import { Directive, HostBinding } from '@angular/core';\n\n/**\n * Conditionally adds component to the tree if screen width matches at least one size in input\n */\n@Directive({\n selector: 'button[iconRight]',\n standalone: true,\n})\nexport class OnemRvaIconRightDirective {\n @HostBinding('class.onemrva-icon-right')\n class = true;\n}\n","import { Directive, ElementRef, HostListener, inject } from '@angular/core';\n\n@Directive({\n selector: '[onemrvaDateFormat]',\n standalone: true,\n})\nexport class OnemrvaDateFormatDirective {\n private el = inject<ElementRef<HTMLInputElement>>(ElementRef);\n\n private readonly template = '__/__/____';\n\n @HostListener('paste', ['$event'])\n onPaste(event: ClipboardEvent) {\n const input = this.el.nativeElement;\n\n // Get pasted content\n const pasted = event.clipboardData?.getData('text/plain') || '';\n const digitsOnly = pasted.replace(/\\D/g, '');\n\n if (!digitsOnly) {\n event.preventDefault(); // Ignore invalid paste\n return;\n }\n\n event.preventDefault(); // Stop default paste\n\n // Start at current caret position\n let pos = input.selectionStart ?? 0;\n const chars = input.value.split('');\n let digitIndex = 0;\n\n while (pos < this.template.length && digitIndex < digitsOnly.length) {\n if (this.template[pos] === '/') {\n pos++;\n continue;\n }\n\n chars[pos] = digitsOnly[digitIndex++];\n pos++;\n }\n\n input.value = chars.join('');\n this.emitInputEvent(input);\n\n // Set caret after the last replaced character\n this.setCaretToNextEditable(pos);\n }\n\n @HostListener('cut', ['$event'])\n onCut(event: ClipboardEvent) {\n const input = this.el.nativeElement;\n const start = input.selectionStart ?? 0;\n const end = input.selectionEnd ?? 0;\n\n // Capture the selected value (optional: log or store it)\n const cutText = input.value.substring(start, end);\n\n // Replace the selected portion with underscores (skip slashes)\n const chars = input.value.split('');\n for (let i = start; i < end; i++) {\n if (this.template[i] !== '/') {\n chars[i] = '_';\n }\n }\n\n // Update input value\n input.value = chars.join('');\n this.emitInputEvent(input);\n\n // Move caret to next editable position\n this.setCaretToNextEditable(start);\n\n // Prevent default cut behavior from modifying content further\n event.preventDefault();\n\n // ✅ Optionally copy to clipboard manually (optional)\n if (event.clipboardData) {\n event.clipboardData.setData('text/plain', cutText.replace(/\\//g, ''));\n }\n }\n\n @HostListener('focus')\n onFocus() {\n const input = this.el.nativeElement;\n if (!input.value || input.value === this.template) {\n input.value = this.template;\n }\n this.setCaretToNextEditable(0);\n }\n\n @HostListener('click')\n onClick() {\n const input = this.el.nativeElement;\n\n // Only reposition the caret if there's no selection (start === end)\n const selectionStart = input.selectionStart ?? 0;\n const selectionEnd = input.selectionEnd ?? 0;\n\n if (selectionStart === selectionEnd) {\n if (input.value === this.template) {\n this.setCaretToNextEditable(0);\n } else {\n this.setCaretToNextEditable(selectionStart);\n }\n }\n }\n\n @HostListener('keydown', ['$event'])\n onKeyDown(event: KeyboardEvent) {\n const input = this.el.nativeElement;\n let pos = input.selectionStart ?? 0;\n\n const allowedCtrlShortcuts = ['a', 'c', 'x', 'v'];\n if (event.ctrlKey && allowedCtrlShortcuts.indexOf(event.key) >= 0) {\n if (event.key === 'x' && input.value === '') {\n input.value = this.template;\n this.emitInputEvent(input);\n }\n return;\n }\n\n // Allow navigation\n if (['ArrowLeft', 'ArrowRight', 'Tab'].includes(event.key)) return;\n\n // Handle Backspace or Delete with selection\n if (event.key === 'Backspace' || event.key === 'Delete') {\n event.preventDefault();\n\n const start = input.selectionStart ?? 0;\n const end = input.selectionEnd ?? start;\n\n // If there's a selection\n if (end > start) {\n const chars = input.value.split('');\n for (let i = start; i < end; i++) {\n if (this.template[i] !== '/') {\n chars[i] = '_';\n }\n }\n input.value = chars.join('');\n this.emitInputEvent(input);\n this.setCaretToNextEditable(start);\n return;\n }\n\n // If no selection, handle as usual (delete previous or next char)\n let pos = start;\n\n if (event.key === 'Backspace' && pos > 0) {\n do {\n pos--;\n } while (this.template[pos] === '/' && pos > 0);\n\n this.replaceCharAt(input, pos, '_');\n this.emitInputEvent(input);\n this.setCaretToNextEditable(pos);\n return;\n }\n\n if (event.key === 'Delete' && pos < this.template.length) {\n while (this.template[pos] === '/' && pos < this.template.length) {\n pos++;\n }\n this.replaceCharAt(input, pos, '_');\n this.emitInputEvent(input);\n this.setCaretToNextEditable(pos);\n return;\n }\n }\n\n // Handle Slash `/` key\n if (\n event.key === '/' ||\n event.key === '.' ||\n event.key === '-' ||\n event.key === ' '\n ) {\n event.preventDefault();\n\n if (pos === 1 || pos === 4) {\n // Typing `/` at end of day field\n const currentVal = input.value.substring(pos - 1, pos);\n if (!currentVal.includes('_')) {\n this.replaceCharAt(input, pos - 1, '0');\n this.replaceCharAt(input, pos, currentVal);\n this.setCaretToNextEditable(pos + 2);\n return;\n }\n }\n\n // Default: just skip to next editable section if allowed\n this.setCaretToNextEditable(pos + 1);\n return;\n }\n\n // Handle Backspace\n if (event.key === 'Backspace') {\n event.preventDefault();\n if (pos === 0) return;\n\n do {\n pos--;\n } while (this.template[pos] === '/' && pos > 0);\n\n this.replaceCharAt(input, pos, '_');\n this.setCaretToNextEditable(pos);\n this.emitInputEvent(input);\n return;\n }\n\n // Allow only digits\n if (!/^\\d$/.test(event.key)) {\n event.preventDefault();\n return;\n }\n\n // Prevent typing beyond mask\n if (pos >= this.template.length) {\n event.preventDefault();\n return;\n }\n\n // Skip slashes forward\n while (this.template[pos] === '/' && pos < this.template.length) {\n pos++;\n }\n\n this.replaceCharAt(input, pos, event.key);\n event.preventDefault();\n this.setCaretToNextEditable(pos + 1);\n this.emitInputEvent(input);\n }\n\n private emitInputEvent(input: HTMLInputElement) {\n input.dispatchEvent(new Event('input', { bubbles: true }));\n }\n\n @HostListener('blur')\n onBlur() {\n // Optionally keep the mask visible on blur — do nothing\n }\n\n private replaceCharAt(input: HTMLInputElement, index: number, char: string) {\n const value = input.value.split('');\n value[index] = char;\n input.value = value.join('');\n }\n\n private setCaretToNextEditable(pos: number) {\n const input = this.el.nativeElement;\n while (this.template[pos] === '/' && pos < this.template.length) {\n pos++;\n }\n input.setSelectionRange(pos, pos);\n }\n\n private sanitizeDateInput(input: string | undefined): string {\n if (typeof input !== 'string') return '';\n return input\n .replace(/[.\\s-]/g, '/') // Replace dot, space, dash with slash\n .replace(/[^0-9/]/g, '')\n .replace('//', ''); // Remove everything except digits and slash\n }\n}\n","import { Directive, HostBinding, input, Input } from '@angular/core';\n\n@Directive({\n selector:\n 'form[readonly], ' +\n 'mat-checkbox[readonly], ' +\n 'mat-radio-group[readonly], ' +\n 'mat-form-field[readonly], ' +\n 'onemrva-mat-input-phone[readonly],' +\n 'onemrva-mat-task-list[readonly],' +\n 'onemrva-mat-selectable-box[readonly],' +\n 'onemrva-mat-choice-chip[readonly],' +\n 'onemrva-mat-input-birthplace[readonly],' +\n 'onemrva-mat-input-country[readonly],' +\n 'onemrva-mat-input-enterprise-number[readonly]',\n standalone: true,\n})\nexport class OnemRvaReadonlyDirective {\n readonly = input(true);\n\n /** @hidden @internal */\n @HostBinding('class.onemrva-readonly')\n public get isReadOnly(): boolean {\n return this.readonly();\n }\n}\n","import { Directive, HostBinding, Input } from '@angular/core';\nimport { OnemrvaMatSize } from '@onemrvapublic/design-system/utils';\n\n/**\n * Conditionally adds component to the tree if screen width matches at least one size in input\n */\n@Directive({\n selector:\n 'mat-icon[size], onemrva-mat-skeleton[size], onemrva-mat-avatar[size], button[size]',\n standalone: true,\n})\nexport class OnemRvaSizeDirective {\n @Input()\n size: OnemrvaMatSize = '';\n\n /** @hidden @internal */\n @HostBinding('class.xsmall')\n public get _isXSmall(): boolean {\n return this.size === OnemrvaMatSize.XSMALL;\n }\n /** @hidden @internal */\n @HostBinding('class.small')\n public get _isSmall(): boolean {\n return this.size === OnemrvaMatSize.SMALL;\n }\n /** @hidden @internal */\n @HostBinding('class.large')\n public get _isLarge(): boolean {\n return this.size === OnemrvaMatSize.LARGE;\n }\n /** @hidden @internal */\n @HostBinding('class.xlarge')\n public get _isXLarge(): boolean {\n return this.size === OnemrvaMatSize.XLARGE;\n }\n /** @hidden @internal */\n @HostBinding('class.xxlarge')\n public get _isXXLarge(): boolean {\n return this.size === OnemrvaMatSize.XXLARGE;\n }\n}\n","import { DigitOnlyDirective } from './digit-only.directive';\nimport { MatRowClickableDirective } from './mat-row-clickable.directive';\nimport { IfWidthIsDirective } from './if-width-is.directive';\nimport { OnemRvaColorDirective } from './color.directive';\nimport { OnemrvaMaskDirective } from './mask.directive';\nimport { OnemRvaClipboardDirective } from './clipboard.directive';\nimport { OnemRvaIconRightDirective } from './iconRight.directive';\nimport { OnemrvaDateFormatDirective } from './date-format.directive';\nimport { OnemRvaReadonlyDirective } from './readonly-directive';\n\nexport const directives: any[] = [\n DigitOnlyDirective,\n MatRowClickableDirective,\n OnemRvaClipboardDirective,\n OnemRvaIconRightDirective,\n IfWidthIsDirective,\n OnemRvaColorDirective,\n OnemrvaMaskDirective,\n OnemrvaDateFormatDirective,\n OnemRvaReadonlyDirective,\n];\n\nexport * from './digit-only.directive';\nexport * from './mat-row-clickable.directive';\nexport * from './if-width-is.directive';\nexport * from './color.directive';\nexport * from './mask.directive';\nexport * from './clipboard.directive';\nexport * from './iconRight.directive';\nexport * from './date-format.directive';\nexport * from './size.directive';\nexport * from './readonly-directive';\n","import { TranslateService } from '@ngx-translate/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n/**\n * Get language from local storage or browser.ééééééééééééé\n * é\n * @param translateService\n * @param languages\n * @param default_language\n */\nexport function setTranslationLanguage(\n translateService: TranslateService,\n languages = ['en', 'fr', 'nl', 'de'],\n default_language = 'en',\n) {\n return async () => {\n translateService.onLangChange.subscribe(value => {\n localStorage.setItem('language', value.lang);\n });\n translateService.addLangs(languages);\n let language: string | null = localStorage.getItem('language');\n if (language === null || languages.indexOf(language) < 0) {\n // getting language from browser\n if (languages.indexOf(navigator.language) >= 0) {\n language = navigator.language;\n } else {\n // getting language from one of the browser's languages\n for (const lng of navigator.languages) {\n if (languages.indexOf(lng) >= 0) {\n language = lng;\n break;\n }\n }\n // getting default language\n if (language === null || languages.indexOf(language) < 0) {\n language = default_language;\n }\n }\n }\n await translateService.use(language).toPromise();\n };\n}\n\n/**\n * Get language from WO\n *\n * @param translateService\n * @param languages\n * @param default_language\n */\nexport function setTranslationLanguageFromWO(\n translateService: TranslateService,\n languages = ['fr', 'nl'],\n default_language = 'fr',\n) {\n return async () => {\n translateService.addLangs(languages);\n let language: string | null = localStorage.getItem(\n 'be_social_security_workenv_language',\n );\n if (language !== null) {\n language = language.toLowerCase();\n if (languages.indexOf(language) >= 0) {\n await translateService.use(language).toPromise();\n return;\n }\n }\n await translateService.use(default_language).toPromise();\n };\n}\n","import { Observable } from 'rxjs';\nimport { TranslateLoader } from '@ngx-translate/core';\nimport { OnemRvaCDNService } from '../services';\n\nexport class OnemrvaTranslateCDNLoader implements TranslateLoader {\n constructor(\n private cdn: OnemRvaCDNService,\n public projects: string[] = [],\n public prefix = '/i18n/',\n public suffix = '.json',\n ) {}\n\n /**\n * Gets the translations from the server\n */\n public getTranslation(lang: string): Observable<any> {\n return this.cdn.getTranslations(\n this.projects,\n lang,\n this.prefix,\n this.suffix,\n );\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { forkJoin, Observable, of } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\nimport { TranslateLoader } from '@ngx-translate/core';\n\nexport class OnemrvaTranslateHttpLoader implements TranslateLoader {\n constructor(\n private http: HttpClient,\n public prefix = '/assets/i18n/',\n public suffix = '.json',\n public modules: string[] = [],\n ) {}\n\n /**\n * Gets the translations from the server\n */\n public getTranslation(lang: string): Observable<any> {\n const observables = [\n this.http\n .get(`${this.prefix}${lang}${this.suffix}`)\n .pipe(catchError(() => of(null))),\n ...this.modules.map(m => {\n this.http\n .get(`${this.prefix}${m}/${lang}${this.suffix}`)\n .pipe(catchError(() => of(null)));\n //console.log(`${this.prefix}${m}/${lang}${this.suffix}`);\n }),\n ];\n\n return forkJoin(observables).pipe(\n map(all => {\n return all.filter(v => !!v).reduce((s, c) => ({ ...s, ...c }), {});\n }),\n );\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'onemrvaBce',\n standalone: true,\n})\nexport class OnemrvaBcePipe implements PipeTransform {\n transform(value: string): string {\n const strOut = value.trim().replace(/\\/|\\.|-/g, '');\n\n if (strOut.length !== 10) return '?01?.???.???';\n\n return `${strOut.substring(0, 4)}.${strOut.substring(\n 4,\n 7,\n )}.${strOut.substring(7, 10)}`;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'onemrvaNiss',\n standalone: true,\n})\nexport class OnemrvaNissPipe implements PipeTransform {\n transform(value: string): string {\n const strOut = value.trim().replace(/\\/|\\.|-/g, '');\n\n if (strOut.length !== 11) return '??01??/???-??';\n\n return `${strOut.substring(0, 6)}/${strOut.substring(\n 6,\n 9,\n )}-${strOut.substring(9, 11)}`;\n }\n}\n","import { Inject, Injectable, inject } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport {\n Observable,\n map,\n ReplaySubject,\n skip,\n distinctUntilChanged,\n} from 'rxjs';\nimport { OnemRvaCommonCountry } from '../interfaces';\nimport { LOOKUP_COUNTRY_SERVICE_URL } from '../tokens/inject.token';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CommonCountryLookupService {\n protected _countries$ = new ReplaySubject<OnemRvaCommonCountry[]>(1);\n protected _customersInitialized = false;\n\n public http = inject(HttpClient);\n private commonCountryServiceURL = inject(LOOKUP_COUNTRY_SERVICE_URL);\n\n public getCountries(refresh = false): Observable<OnemRvaCommonCountry[]> {\n if (refresh || !this._customersInitialized) {\n this._customersInitialized = true;\n this.http\n .get<OnemRvaCommonCountry[]>(this.commonCountryServiceURL)\n .subscribe(countries => {\n this._countries$.next(countries);\n });\n }\n\n return this._countries$.pipe(skip(+refresh), distinctUntilChanged());\n }\n\n public getCountryByCode(code: string | null) {\n return this._countries$.pipe(\n map(countries => {\n const country = countries.find(country => country.code === code);\n\n return country || null;\n }),\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, of } from 'rxjs';\nimport { HttpCacheStorage } from '../decorators/HttpCacheDecorator';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CacheService implements HttpCacheStorage {\n setItem(key: string, item: Observable<any>): void {\n //console.log(\"SET \" + key);\n item.subscribe(value => {\n localStorage.setItem(key, JSON.stringify(value));\n });\n }\n\n public getItem(key: string): Observable<any> {\n const r = localStorage.getItem(key);\n if (r === null) {\n return of(null);\n }\n return of(JSON.parse(r));\n }\n\n deleteItem(key: string): void {\n //console.log(\"DELETE \" + key);\n localStorage.removeItem(key);\n }\n}\n","import { Injectable, Renderer2, RendererFactory2, inject } from '@angular/core';\nimport { CDN_URL_MODE, CDN_URLS } from '../constants';\nimport { CDNUrlModeOptions } from '../constants';\nimport { HttpClient } from '@angular/common/http';\nimport { catchError, map } from 'rxjs/operators';\nimport { HttpRequestCache } from '../decorators';\nimport { CacheService } from './cache.service';\nimport { forkJoin, Observable, of, Subject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class OnemRvaCDNService {\n private rendererFactory = inject(RendererFactory2);\n private cacheService = inject(CacheService);\n private http = inject(HttpClient);\n\n private readonly cdnUrl: string;\n public refresh$ = new Subject();\n private renderer: Renderer2;\n\n constructor() {\n const cdnUrlMode = inject<CDNUrlModeOptions>(CDN_URL_MODE, {\n optional: true,\n });\n\n this.renderer = this.rendererFactory.createRenderer(null, null);\n switch (cdnUrlMode) {\n case CDNUrlModeOptions.PROD:\n this.cdnUrl = CDN_URLS.prod;\n break;\n case CDNUrlModeOptions.VAL:\n this.cdnUrl = CDN_URLS.val;\n break;\n default:\n this.cdnUrl = CDN_URLS.prod;\n }\n const linkElement = this.renderer.createElement('link');\n\n // Set the attributes\n this.renderer.setAttribute(linkElement, 'rel', 'preconnect');\n this.renderer.setAttribute(linkElement, 'href', this.cdnUrl);\n\n // Append the <link> element to the <head>\n this.renderer.appendChild(document.head, linkElement);\n }\n\n public getUrl(path = '') {\n return this.cdnUrl + path;\n }\n\n public getImg(path = '') {\n return this.getUrl('/img/' + path);\n }\n\n public getOri(path = '') {\n return this.getImg('ori/' + path);\n }\n\n @HttpRequestCache<OnemRvaCDNService>(cdnService => ({\n refreshOn: cdnService.refresh$,\n storage: cdnService.cacheService,\n ttl: 3600000,\n }))\n public fetch<T = any>(endpoint: string) {\n return this.http.get(this.cdnUrl + endpoint);\n }\n\n public fetchNoCache<T = any>(endpoint: string) {\n return this.http.get(this.cdnUrl + endpoint);\n }\n\n public getTranslations(\n projects: string[],\n lang: string,\n prefix = '',\n suffix = '',\n ): Observable<any> {\n const observables = [\n this.http\n .get(\n `${this.cdnUrl}${prefix}design-system/design-system/${lang}${suffix}`,\n )\n .pipe(catchError(() => of({}))),\n ...projects.map(m => {\n return this.http\n .get(`${this.cdnUrl}${prefix}${m}/${lang}${suffix}`)\n .pipe(\n catchError(() => {\n return of({});\n }),\n );\n }),\n ];\n\n return forkJoin(observables).pipe(\n map(all => {\n return all.filter(v => !!v).reduce((s, c) => ({ ...s, ...c }), {});\n }),\n );\n }\n\n /**\n * Loads a CSS file dynamically into the document head.\n * @param href The URL of the CSS file.\n * @returns A promise that resolves when the CSS file is loaded.\n * //\n */\n loadCss(href: string): Promise<void> {\n return new Promise((resolve, reject) => {\n const existingLink = document.querySelector(`link[href=\"${href}\"]`);\n if (existingLink) {\n resolve(); // CSS is already loaded\n return;\n }\n\n const link = this.renderer.createElement('link');\n this.renderer.setAttribute(link, 'rel', 'stylesheet');\n this.renderer.setAttribute(link, 'type', 'text/css');\n this.renderer.setAttribute(link, 'href', href);\n\n link.onload = () => resolve();\n link.onerror = () => reject(new Error(`Failed to load CSS: ${href}`));\n\n this.renderer.appendChild(document.head, link);\n });\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { map, startWith } from 'rxjs/operators';\nimport { TranslateService } from '@ngx-translate/core';\nimport { combineLatestWith, from, Observable } from 'rxjs';\nimport { OnemRvaCDNService } from './cdn.service';\n\nexport interface OnemrvaMaterialCountry {\n code: string;\n name: string;\n dial_code: string;\n zone: string;\n pattern: string;\n placeholder: string;\n translations: {\n fr: string;\n nl: string;\n de: string;\n };\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class OnemRvaCDNCountryService {\n private cdnService = inject(OnemRvaCDNService);\n private translateService = inject(TranslateService);\n\n public getCountries(): Observable<OnemrvaMaterialCountry[]> {\n return this.cdnService.fetch('/json/countries.json').pipe(\n map(response => response as OnemrvaMaterialCountry[]), // ✅ Explicitly cast response\n combineLatestWith(\n from(this.translateService.onLangChange).pipe(\n startWith(this.translateService.currentLang ?? 'fr'),\n map(event => {\n return typeof event === 'string' ? event : event.lang;\n }), // ✅ Ensure it is always a string\n ),\n ),\n map(([response, currentLang]: [OnemrvaMaterialCountry[], string]) => {\n // ✅ Explicit type definition\n return response\n .map((country: OnemrvaMaterialCountry) => ({\n ...country,\n name: this.getTranslatedCountryName(country, currentLang),\n }))\n .sort((a, b) =>\n a.name.toLowerCase().localeCompare(b.name.toLowerCase()),\n );\n }),\n );\n }\n\n public getCountriesByZone(zone: string) {\n return this.getCountries().pipe(\n map(countries => {\n return countries.filter(country => country.zone === zone);\n }),\n );\n }\n\n public getTranslatedCountryName(\n country: OnemrvaMaterialCountry,\n languageCode: string = this.translateService.currentLang,\n ) {\n if (\n languageCode === 'fr' ||\n languageCode === 'nl' ||\n languageCode === 'de'\n ) {\n if (country.translations[languageCode] !== undefined)\n return country.translations[languageCode];\n }\n return country.name;\n }\n\n public findCountryFromCode(code: any) {\n return this.getCountries().pipe(\n map(countries => {\n return countries.find(\n (country: OnemrvaMaterialCountry) =>\n country.code.toLowerCase() === code.toLowerCase(),\n );\n }),\n );\n }\n\n public findCountryFromVIESCode(code: any) {\n return this.getCountriesByZone('EU').pipe(\n map(countries => {\n return countries.find(\n (country: OnemrvaMaterialCountry) =>\n country.pattern.substring(0, 2) === code.substring(0, 2),\n );\n }),\n );\n }\n\n public findCountryFromPrefix(number: any) {\n return this.getCountries().pipe(\n map(countries => {\n return countries.find((country: OnemrvaMaterialCountry) => {\n return (\n country.dial_code === number.substring(0, country.dial_code.length)\n );\n });\n }),\n );\n }\n}\n","import { Injectable, inject } from '@angular/core';\nimport { OnemRvaCDNService } from './cdn.service';\nimport { catchError, map } from 'rxjs';\n\nexport interface MimeDefinition {\n extension: string;\n mimeType: string;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class OnemRvaCDNMimeService {\n private cdnService = inject(OnemRvaCDNService);\n\n static mimetypeFile = '/json/mimetypes.json';\n\n public getMimesForExtension(extensions: string[]) {\n return this.cdnService.fetch(OnemRvaCDNMimeService.mimetypeFile).pipe(\n catchError(() => {\n return [];\n }),\n map(response => {\n return (response as MimeDefinition[])\n .filter(mime => {\n return extensions.includes(mime.extension);\n })\n .map(mime => {\n return mime.mimeType;\n });\n }),\n );\n }\n\n public getExtensionsForMime(mimTypes: string[]) {\n return this.cdnService.fetch(OnemRvaCDNMimeService.mimetypeFile).pipe(\n catchError(() => {\n return [];\n }),\n map(response => {\n return (response as MimeDefinition[])\n .filter(mime => {\n return mimTypes.includes(mime.mimeType);\n })\n .map(mime => {\n return mime.extension;\n });\n }),\n );\n }\n}\n","import { Injectable, inject } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { Observable } from 'rxjs';\n\nexport interface OSMAddress {\n house_number?: string;\n road?: string;\n village?: string;\n municipality?: string;\n county?: string;\n town?: string;\n state?: string;\n 'ISO3166-2-lvl6'?: string;\n postcode?: string;\n neighbourhood?: string;\n city_district?: string;\n city?: string;\n region?: string;\n suburb?: string;\n country?: string;\n country_code?: string;\n}\n\nexport interface OSMResult {\n place_id: number;\n licence: string;\n osm_type: string;\n osm_id: number;\n lat: string;\n lon: string;\n class: string;\n type: string;\n place_rank: number;\n importance: number;\n addresstype: string;\n name: string;\n display_name: string;\n address: OSMAddress;\n boundingbox: [string, string, string, string];\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class OnemRvaOSMService {\n private http = inject(HttpClient);\n\n private nominatimUrl = 'https://nominatim.openstreetmap.org/search';\n\n searchAddress(\n query: string,\n countryCodes: string[] = ['be'],\n format = 'json',\n addressdetails = 1,\n limit = 10,\n ): Observable<OSMResult[]> {\n const params = new HttpParams()\n .set('q', query)\n .set('format', format)\n // .set('accept-language', 'fr') // TODO how do we manage multiple languages ??\n .set('countrycodes', countryCodes.join(','))\n .set('addressdetails', addressdetails)\n .set('limit', limit);\n\n return this.http.get<OSMResult[]>(this.nominatimUrl, { params });\n }\n}\n","import { ErrorHandler, Injectable } from '@angular/core';\n\n@Injectable()\nexport class OnemrvaErrorHandler implements ErrorHandler {\n handleError(error: any) {\n console.error(error);\n //alert(\"Error: \" + error.message);\n // this._snackBar.open(`Error: ${error.message}`, '', {\n // duration: 5000,\n // panelClass: 'mat-primary',\n // horizontalPosition: this.horizontalPosition,\n // verticalPosition: this.verticalPosition,\n // });\n }\n}\n","import {\n MissingTranslationHandler,\n MissingTranslationHandlerParams,\n} from '@ngx-translate/core';\n\nexport class OnemrvaMissingTranslationHandler\n implements MissingTranslationHandler\n{\n handle(params: MissingTranslationHandlerParams) {\n return `???${params.key}???`;\n }\n}\n","import { ValidationErrors } from '@angular/forms';\nimport { AbstractControl, ValidatorFn } from '@angular/forms';\n\nexport class OnemrvaValidators {\n private static bceValidator(required = false, control: AbstractControl) {\n if (control.value === null || control.value.trim() === '') {\n return !required ? null : { bceNull: true };\n }\n\n const bceCandidate = control.value.trim().replace(/\\/|\\.|-/g, '');\n\n if (bceCandidate.length !== 10)\n return { bceLengthError: { value: bceCandidate } };\n\n if (Number.isNaN(+bceCandidate)) return { bceNan: { value: bceCandidate } };\n\n return null;\n }\n\n static bce(required = false): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n return this.bceValidator(required, control);\n };\n }\n\n private static nissValidator(required = false, control: AbstractControl) {\n if (control.value === null || control.value.trim() === '') {\n return !required ? null : { nissNull: true };\n }\n\n const nissCandidate = control.value.trim().replace(/\\/|\\.|-/g, '');\n\n if (nissCandidate.length !== 11) {\n return { nissLengthError: { value: nissCandidate } };\n }\n\n if (Number.isNaN(+nissCandidate)) {\n return { nissNan: { value: nissCandidate } };\n }\n\n // Niss day and year are actual values, the month can be different according to the logic below\n // [20-32] & [40-52] => foreigners & temporary NISS values\n // it is not necessary to check for the actual date to be valid\n\n const checksumValue = nissCandidate.substring(9);\n const nissNumbersToCheck = nissCandidate.substring(0, 9);\n const isValidChecksumYear1900 =\n 97 - (+nissNumbersToCheck % 97) === +checksumValue;\n const isValidChecksumYear2000 =\n 97 - (+`2${nissNumbersToCheck}` % 97) === +checksumValue;\n\n if (!isValidChecksumYear1900 && !isValidChecksumYear2000) {\n return { nissCheckDigitError: { value: nissCandidate } };\n }\n\n /*\n Below checks aren't really necessary but are here to exclude even more potential errors\n We could still improve this to include february days & 30 day months + the real potential ranges\n */\n const monthString = nissCandidate.substring(2, 4);\n const month = parseInt(monthString) - 1;\n const real_month = (parseInt(monthString) % 20) - 1;\n\n if (real_month > 11 || month > 51) {\n return { nissInvalidMonth: { value: nissCandidate } };\n }\n\n const day = +nissCandidate.substring(4, 6);\n if (day > 31) {\n return { nissInvalidDate: { value: nissCandidate } };\n }\n\n return null;\n }\n\n static niss(required = false): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n return this.nissValidator(required, control);\n };\n }\n\n static nissOrBce(required = false): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n if (control.value === null || control.value.trim() === '')\n return !required ? null : { nissNull: true };\n\n const nissCandidate = control.value.trim().replace(/\\/|\\.|-/g, '');\n\n if (control.value.length === 11) {\n return this.nissValidator(required, control);\n } else if (control.value.length === 10) {\n return this.bceValidator(required, control);\n }\n return { lengthError: { value: nissCandidate } };\n };\n }\n}\n","import {\n AbstractControl,\n ValidationErrors,\n ValidatorFn,\n Validators,\n} from '@angular/forms';\nimport {\n validateIBAN,\n electronicFormatIBAN,\n countrySpecs,\n ValidationErrorsIBAN,\n} from 'ibantools';\n\nexport const IBAN_SUPPORTED_COUNTRIES = Object.entries(countrySpecs)\n .filter(value => {\n return value[1].IBANRegistry;\n })\n .map(value => {\n return value[0];\n });\n\nexport const SEPA_ONLY_SUPPORTED_COUNTRIES = Object.entries(countrySpecs)\n .filter(value => {\n return value[1].SEPA;\n })\n .map(value => {\n return value[0];\n });\n\nconst internValidateIban = (iban = '') => {\n return validateIBAN(electronicFormatIBAN(iban) || undefined);\n};\n\n// const getMappedCodes = (errorCodes: ValidationErrorsIBAN[], value?: any) => {\n// const mappedCodes = errorCodes.map(code => ValidationErrorsIBAN[code]);\n//\n// if (mappedCodes.length > 0) {\n// const listCodes: Record<string, any> = {};\n//\n// mappedCodes.forEach((code: string) => {\n// listCodes[code] = { value };\n// });\n//\n// return listCodes as ValidationErrors;\n// }\n//\n// return null;\n// };\n\nexport const bankAccountValidator = (allowEmptyCountry = true): ValidatorFn => {\n return (control: AbstractControl): ValidationErrors | null => {\n let finalErrorCodes: number[] = [];\n if (typeof control.getRawValue() === 'string') {\n const regex = /^[a-zA-Z]{2}/;\n if (regex.test(control.getRawValue().substring(0, 2))) {\n const { valid: _valid, errorCodes } = internValidateIban(control.value);\n finalErrorCodes = errorCodes;\n } else if (!allowEmptyCountry) {\n finalErrorCodes.push(ValidationErrorsIBAN.NoIBANCountry);\n }\n } else {\n const countryCodeValue: string =\n control.value !== null ? control.value['countryCode'] : '';\n const bankNumber: string =\n control.value !== null ? control.value['bban'] : '';\n\n if (countryCodeValue !== '') {\n const { valid: _valid, errorCodes } = internValidateIban(\n `${countryCodeValue}${bankNumber}`,\n );\n finalErrorCodes = errorCodes;\n } else if (!allowEmptyCountry) {\n //\n }\n }\n\n if (finalErrorCodes.length === 0) {\n return null;\n }\n\n const validationErrors: Record<string, { value: any }> = {};\n finalErrorCodes.forEach(errCode => {\n const key = ValidationErrorsIBAN[errCode];\n validationErrors[key] = { value: control.getRawValue() };\n });\n\n return validationErrors;\n };\n};\n","import { NgModule } from '@angular/core';\nimport { directives } from './directives';\n\n@NgModule({\n imports: [...directives],\n exports: [...directives],\n})\nexport class OnemrvaSharedModule {}\n","import { Injectable, OnDestroy, inject } from '@angular/core';\nimport { NativeDateAdapter } from '@angular/material/core';\nimport { DateTime } from 'luxon';\n\nimport { TranslateService } from '@ngx-translate/core';\nimport { Subject, takeUntil } from 'rxjs';\nimport { ONEMRVA_MAT_NATIVE_DATE_FORMAT } from '../constants';\n\n@Injectable()\nexport class OnemrvaNativeDateAdapter\n extends NativeDateAdapter\n implements OnDestroy\n{\n private translateService = inject(TranslateService);\n\n private destroyNotifier$ = new Subject<void>();\n\n override localeChanges = new Subject<any>();\n\n constructor() {\n super();\n\n this.setLocale(this.translateService.currentLang);\n this.localeChanges.next(this);\n if (this.translateService !== undefined) {\n this.translateService.onLangChange\n .pipe(takeUntil(this.destroyNotifier$))\n .subscribe(({ lang }) => {\n this.setLocale(lang);\n this.localeChanges.next(this);\n });\n }\n }\n\n override format(date: Date, formats: any): string {\n const dt = DateTime.fromJSDate(date);\n return dt.toFormat(formats);\n }\n\n override parse(value: any): Date | null {\n const formats = ONEMRVA_MAT_NATIVE_DATE_FORMAT;\n if (value && typeof value === 'string') {\n value = value.replace(/\\D/g, '/');\n }\n\n if (value === null || value === '') {\n return null;\n }\n\n const dt = DateTime.fromFormat(value, formats.display.dateInput, {\n locale: this.locale,\n });\n\n if (dt.isValid) {\n return dt.toJSDate();\n }\n\n for (const format of formats.parse.dateInput) {\n const parsed = DateTime.fromFormat(value, format, {\n locale: this.locale,\n });\n if (parsed.isValid) {\n return parsed.toJSDate();\n }\n }\n\n return this.invalid();\n }\n\n override getFirstDayOfWeek(): number {\n return 1;\n }\n\n ngOnDestroy() {\n this.destroyNotifier$.next();\n this.destroyNotifier$.complete();\n }\n}\n","import { CalendarSystem as LuxonCalendarSystem } from 'luxon/src/misc';\nimport { InjectionToken } from '@angular/core';\n\n/** Configurable options for the `LuxonDateAdapter`. */\nexport interface MatLuxonDateAdapterOptions {\n /**\n * Turns the use of utc dates on or off.\n * Changing this will change how Angular Material components like DatePicker output dates.\n */\n useUtc: boolean;\n\n /**\n * Sets the first day of week.\n * Changing this will change how Angular Material components like DatePicker shows start of week.\n */\n firstDayOfWeek: number;\n\n /**\n * Sets the output Calendar.\n * Changing this will change how Angular Material components like DatePicker output dates.\n */\n defaultOutputCalendar: LuxonCalendarSystem;\n}\n\n/** InjectionToken for LuxonDateAdapter to configure options. */\nexport const MAT_LUXON_DATE_ADAPTER_OPTIONS =\n new InjectionToken<MatLuxonDateAdapterOptions>(\n 'MAT_LUXON_DATE_ADAPTER_OPTIONS',\n {\n providedIn: 'root',\n factory: MAT_LUXON_DATE_ADAPTER_OPTIONS_FACTORY,\n },\n );\n\n/** @docs-private */\nexport function MAT_LUXON_DATE_ADAPTER_OPTIONS_FACTORY(): MatLuxonDateAdapterOptions {\n return {\n useUtc: false,\n firstDayOfWeek: 0,\n defaultOutputCalendar: 'gregory',\n };\n}\n\n/** Creates an array and fills it with values. */\nexport function luxonRange<T>(\n length: number,\n valueFunction: (index: number) => T,\n): T[] {\n const valuesArray = Array(length);\n for (let i = 0; i < length; i++) {\n valuesArray[i] = valueFunction(i);\n }\n return valuesArray;\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport { Injectable, inject } from '@angular/core';\nimport { DateAdapter, MAT_DATE_LOCALE } from '@angular/material/core';\nimport {\n DateTime as LuxonDateTime,\n Info as LuxonInfo,\n DateTimeOptions as LuxonDateTimeOptions,\n CalendarSystem as LuxonCalendarSystem,\n} from 'luxon';\nimport { TranslateService } from '@ngx-translate/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n luxonRange,\n MAT_LUXON_DATE_ADAPTER_OPTIONS,\n MatLuxonDateAdapterOptions,\n} from './luxon.utils';\n\n/** Adapts Luxon Dates for use with Angular Material. */\n@Injectable()\nexport class OnemrvaLuxonDateAdapter extends DateAdapter<LuxonDateTime> {\n private translateService = inject(TranslateService);\n\n private _useUTC: boolean;\n private _firstDayOfWeek: number;\n private _defaultOutputCalendar: LuxonCalendarSystem;\n\n constructor() {\n super();\n\n const dateLocale = inject(MAT_DATE_LOCALE, { optional: true });\n const options = inject<MatLuxonDateAdapterOptions>(\n MAT_LUXON_DATE_ADAPTER_OPTIONS,\n {\n optional: true,\n },\n );\n\n this._useUTC = !!options?.useUtc;\n this._firstDayOfWeek = options?.firstDayOfWeek || 0;\n this._defaultOutputCalendar = options?.defaultOutputCalendar || 'gregory';\n this.setLocale(dateLocale || LuxonDateTime.local().locale);\n\n this.setLocale(this.translateService.currentLang);\n if (this.translateService !== undefined) {\n this.translateService.onLangChange\n .pipe(takeUntilDestroyed())\n .subscribe(({ lang }) => {\n this.setLocale(lang);\n });\n }\n }\n\n getYear(date: LuxonDateTime): number {\n return date.year;\n }\n\n getMonth(date: LuxonDateTime): number {\n // Luxon works with 1-indexed months whereas our code expects 0-indexed.\n return date.month - 1;\n }\n\n getDate(date: LuxonDateTime): number {\n return date.day;\n }\n\n getDayOfWeek(date: LuxonDateTime): number {\n return date.weekday;\n }\n\n getMonthNames(style: 'long' | 'short' | 'narrow'): string[] {\n // Adding outputCalendar option, because LuxonInfo doesn't get effected by LuxonSettings\n return LuxonInfo.months(style, {\n locale: this.locale,\n outputCalendar: this._defaultOutputCalendar,\n });\n }\n\n getDateNames(): string[] {\n // At the time of writing, Luxon doesn't offer similar\n // functionality so we have to fall back to the Intl API.\n const dtf = new Intl.DateTimeFormat(this.locale, {\n day: 'numeric',\n timeZone: 'utc',\n });\n\n // Format a UTC date in order to avoid DST issues.\n return luxonRange(31, i =>\n dtf.format(LuxonDateTime.utc(2017, 1, i + 1).toJSDate()),\n );\n }\n\n getDayOfWeekNames(style: 'long' | 'short' | 'narrow'): string[] {\n // Note that we shift the array once, because Luxon returns Monday as the\n // first day of the week, whereas our logic assumes that it's Sunday. See:\n // https://moment.github.io/luxon/api-docs/index.html#infoweekdays\n const days = LuxonInfo.weekdays(style, { locale: this.locale });\n days.unshift(days.pop()!);\n return days;\n }\n\n getYearName(date: LuxonDateTime): string {\n return date.toFormat('yyyy', this._getOptions());\n }\n\n getFirstDayOfWeek(): number {\n return this._firstDayOfWeek;\n }\n\n getNumDaysInMonth(date: LuxonDateTime): number {\n return date.daysInMonth!;\n }\n\n clone(date: LuxonDateTime): LuxonDateTime {\n return LuxonDateTime.fromObject(date.toObject(), this._getOptions());\n }\n\n createDate(year: number, month: number, date: number): LuxonDateTime {\n const options = this._getOptions();\n\n if (month < 0 || month > 11) {\n throw Error(\n `Invalid month index \"${month}\". Month index has to be between 0 and 11.`,\n );\n }\n\n if (date < 1) {\n throw Error(`Invalid date \"${date}\". Date has to be greater than 0.`);\n }\n\n // Luxon uses 1-indexed months so we need to add one to the month.\n const result = this._useUTC\n ? LuxonDateTime.utc(year, month + 1, date, options)\n : LuxonDateTime.local(year, month + 1, date, options);\n\n if (!this.isValid(result)) {\n throw Error(`Invalid date \"${date}\". Reason: \"${result.invalidReason}\".`);\n }\n\n return result;\n }\n\n today(): LuxonDateTime {\n const options = this._getOptions();\n\n return this._useUTC\n ? LuxonDateTime.utc(options)\n : LuxonDateTime.local(options);\n }\n\n parse(value: any, parseFormat: string | string[]): LuxonDateTime | null {\n const options: LuxonDateTimeOptions = this._getOptions();\n\n if (typeof value == 'string' && value.length > 0) {\n // This is screwing things up as 062005 would become 05 0602\n // const iso8601Date = LuxonDateTime.fromISO(value, options);\n //\n // if (this.isValid(iso8601Date)) {\n // console.log(iso8601Date);\n // return iso8601Date;\n // }\n\n const formats = Array.isArray(parseFormat) ? parseFormat : [parseFormat];\n\n if (!parseFormat.length) {\n throw Error('Formats array must not be empty.');\n }\n\n for (const format of formats) {\n const fromFormat = LuxonDateTime.fromFormat(value, format, options);\n\n if (this.isValid(fromFormat)) {\n return fromFormat;\n }\n }\n return this.invalid();\n } else if (typeof value === 'number') {\n return LuxonDateTime.fromMillis(value, options);\n } else if (value instanceof Date) {\n return LuxonDateTime.fromJSDate(value, options);\n } else if (value instanceof LuxonDateTime) {\n return LuxonDateTime.fromMillis(value.toMillis(), options);\n }\n\n return null;\n }\n\n format(date: LuxonDateTime, displayFormat: string): string {\n if (!this.isValid(date)) {\n throw Error('LuxonDateAdapter: Cannot format invalid date.');\n }\n if (this._useUTC) {\n return date.setLocale(this.locale).setZone('utc').toFormat(displayFormat);\n } else {\n return date.setLocale(this.locale).toFormat(displayFormat);\n }\n }\n\n addCalendarYears(date: LuxonDateTime, years: number): LuxonDateTime {\n return date.reconfigure(this._getOptions()).plus({ years });\n }\n\n addCalendarMonths(date: LuxonDateTime, months: number): LuxonDateTime {\n return date.reconfigure(this._getOptions()).plus({ months });\n }\n\n addCalendarDays(date: LuxonDateTime, days: number): LuxonDateTime {\n return date.reconfigure(this._getOptions()).plus({ days });\n }\n\n toIso8601(date: LuxonDateTime): string {\n return date.toISO()!;\n }\n\n /**\n * Returns the given value if given a valid Luxon or null. Deserializes valid ISO 8601 strings\n * (https://www.ietf.org/rfc/rfc3339.txt) and valid Date objects into valid DateTime and empty\n * string into null. Returns an invalid date for all other values.\n */\n override deserialize(value: any): LuxonDateTime | null {\n const options = this._getOptions();\n let date: LuxonDateTime | undefined;\n if (value instanceof Date) {\n date = LuxonDateTime.fromJSDate(value, options);\n }\n if (typeof value === 'string') {\n if (!value) {\n return null;\n }\n date = LuxonDateTime.fromISO(value, options);\n }\n if (date && this.isValid(date)) {\n return date;\n }\n return super.deserialize(value);\n }\n\n isDateInstance(obj: any): boolean {\n return obj instanceof LuxonDateTime;\n }\n\n isValid(date: LuxonDateTime): boolean {\n return date.isValid;\n }\n\n invalid(): LuxonDateTime {\n return LuxonDateTime.invalid('Invalid Luxon DateTime object.');\n }\n\n override setTime(\n target: LuxonDateTime,\n hours: number,\n minutes: number,\n seconds: number,\n ): LuxonDateTime {\n //if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (hours < 0 || hours > 23) {\n throw Error(\n `Invalid hours \"${hours}\". Hours value must be between 0 and 23.`,\n );\n }\n\n if (minutes < 0 || minutes > 59) {\n throw Error(\n `Invalid minutes \"${minutes}\". Minutes value must be between 0 and 59.`,\n );\n }\n\n if (seconds < 0 || seconds > 59) {\n throw Error(\n `Invalid seconds \"${seconds}\". Seconds value must be between 0 and 59.`,\n );\n }\n //}\n\n return this.clone(target).set({\n hour: hours,\n minute: minutes,\n second: seconds,\n millisecond: 0,\n });\n }\n\n override getHours(date: LuxonDateTime): number {\n return date.hour;\n }\n\n override getMinutes(date: LuxonDateTime): number {\n return date.minute;\n }\n\n override getSeconds(date: LuxonDateTime): number {\n return date.second;\n }\n\n override parseTime(\n value: any,\n parseFormat: string | string[],\n ): LuxonDateTime | null {\n const result = this.parse(value, parseFormat);\n\n if ((!result || !this.isValid(result)) && typeof value === 'string') {\n // It seems like Luxon doesn't work well cross-browser for strings that have\n // additional characters around the time. Try parsing without those characters.\n return (\n this.parse(value.replace(/[^0-9:(AM|PM)]/gi, ''), parseFormat) || result\n );\n }\n\n return result;\n }\n\n override addSeconds(date: LuxonDateTime, amount: number): LuxonDateTime {\n return date.reconfigure(this._getOptions()).plus({ seconds: amount });\n }\n\n /** Gets the options that should be used when constructing a new `DateTime` object. */\n private _getOptions(): LuxonDateTimeOptions {\n return {\n zone: this._useUTC ? 'utc' : undefined,\n locale: this.locale,\n outputCalendar: this._defaultOutputCalendar,\n };\n }\n}\n","import { Provider } from '@angular/core';\nimport { MAT_DATE_FORMATS, DateAdapter } from '@angular/material/core';\nimport { ONEMRVA_MAT_NATIVE_YEAR_MONTH_FORMAT } from '../constants';\nimport { OnemrvaNativeDateAdapter } from '../adapters';\n\nexport function onemrvaDateNativeYearMonthProvider(): Provider[] {\n return [\n {\n provide: MAT_DATE_FORMATS,\n useValue: ONEMRVA_MAT_NATIVE_YEAR_MONTH_FORMAT,\n },\n {\n provide: DateAdapter,\n useClass: OnemrvaNativeDateAdapter,\n },\n ];\n}\n","import { Provider } from '@angular/core';\nimport { MAT_DATE_FORMATS, DateAdapter } from '@angular/material/core';\nimport { ONEMRVA_MAT_NATIVE_DATE_FORMAT } from '../constants';\nimport { OnemrvaNativeDateAdapter } from '../adapters';\n\nexport function onemrvaDateNativeProvider(): Provider[] {\n return [\n {\n provide: MAT_DATE_FORMATS,\n useValue: ONEMRVA_MAT_NATIVE_DATE_FORMAT,\n },\n {\n provide: DateAdapter,\n useClass: OnemrvaNativeDateAdapter,\n },\n ];\n}\n","import { Provider } from '@angular/core';\nimport { ONEMRVA_MAT_LUXON_DATE_FORMATS } from '../constants';\nimport { DateAdapter, MAT_DATE_FORMATS } from '@angular/material/core';\nimport { OnemrvaLuxonDateAdapter } from '../adapters';\n\nexport function onemrvaDateLuxonProvider(): Provider[] {\n return [\n {\n provide: MAT_DATE_FORMATS,\n useValue: ONEMRVA_MAT_LUXON_DATE_FORMATS,\n },\n {\n provide: DateAdapter,\n useClass: OnemrvaLuxonDateAdapter,\n },\n ];\n}\n","import { Provider } from '@angular/core';\nimport { ONEMRVA_MAT_LUXON_YEAR_MONTH_FORMATS } from '../constants';\nimport { DateAdapter, MAT_DATE_FORMATS } from '@angular/material/core';\nimport { OnemrvaLuxonDateAdapter } from '../adapters';\n\nexport function onemrvaDateLuxonYearMonthProvider(): Provider[] {\n return [\n {\n provide: MAT_DATE_FORMATS,\n useValue: ONEMRVA_MAT_LUXON_YEAR_MONTH_FORMATS,\n },\n {\n provide: DateAdapter,\n useClass: OnemrvaLuxonDateAdapter,\n },\n ];\n}\n","import { ErrorHandler, Provider } from '@angular/core';\nimport {\n MAT_FORM_FIELD_DEFAULT_OPTIONS,\n MatFormFieldDefaultOptions,\n} from '@angular/material/form-field';\nimport { OverlayContainer } from '@angular/cdk/overlay';\nimport { WebComponentOverlayContainer } from '../containers';\nimport { OnemrvaErrorHandler } from '../services';\n// import { MAT_DIALOG_DEFAULT_OPTIONS } from '@angular/material/dialog';\n// import { ONEMRVA_THEME_CLASS } from '@onemrvapublic/design-system/shared';\n\nexport function onemrvaThemeProvider(): Provider[] {\n return [\n {\n provide: ErrorHandler,\n useClass: OnemrvaErrorHandler,\n },\n {\n provide: MAT_FORM_FIELD_DEFAULT_OPTIONS,\n useValue: {\n appearance: 'outline',\n floatLabel: 'always',\n subscriptSizing: 'dynamic',\n } as MatFormFieldDefaultOptions,\n },\n {\n provide: OverlayContainer,\n useClass: WebComponentOverlayContainer,\n },\n ];\n}\n","/*\n * Public API Surface of shared\n */\n\nexport * from './src/lib/components';\nexport * from './src/lib/constants';\nexport * from './src/lib/containers';\nexport * from './src/lib/decorators';\nexport * from './src/lib/directives';\nexport * from './src/lib/helpers';\nexport * from './src/lib/loaders';\nexport * from './src/lib/interfaces';\nexport * from './src/lib/pipes';\nexport * from './src/lib/services';\nexport * from './src/lib/validators';\nexport * from './src/lib/shared.module';\nexport * from './src/lib/adapters';\nexport * from './src/lib/providers';\nexport * from './src/lib/tokens';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["OnemrvaMatNavigationComponent","DOCUMENT","i3","ONEMRVA_THEME_CLASS","OnemRvaCDNService","OnemrvaMatAvatarModule","i1","OnemRvaSizeDirective","OnemRvaColorDirective","i2","i1.LayoutComponent","i4.LayoutRouteComponent","i8.LayoutSidenavComponent","i11.LayoutLeftSidenavComponent","NEXT_ID","i4","FlagIconComponent","filter","OnemRvaCDNMimeService","components","OnemRvaOSMService","i5","OnemrvaMatInputCountryComponent","OnemrvaMatInputAddressComponent","CommonCountryLookupService","MatSelectSearchModule","OnemrvaCountryItemComponent","OnemRvaCDNCountryService","i6","i7","IBAN_SUPPORTED_COUNTRIES","SEPA_ONLY_SUPPORTED_COUNTRIES","map","MatSelectSearchComponent","MatOption","index","switchMap","startWith","takeUntil","take","tap","isAllowed","observableOf","catchError","i1.DigitOnlyDirective","i2.MatRowClickableDirective","i3.OnemRvaClipboardDirective","i4.OnemRvaIconRightDirective","i5.IfWidthIsDirective","i6.OnemRvaColorDirective","i7.OnemrvaMaskDirective","i8.OnemrvaDateFormatDirective","i9.OnemRvaReadonlyDirective","LuxonDateTime","LuxonInfo"],"mappings":"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"}