{"version":3,"file":"icure-cardinal-prescription-be-angular.mjs","sources":["../../../projects/cardinal-prescription-be-angular/src/lib/internal/components/common/icons/search-icn/search-icn.component.ts","../../../projects/cardinal-prescription-be-angular/src/lib/internal/components/common/icons/search-icn/search-icn.component.html","../../../projects/cardinal-prescription-be-angular/src/lib/internal/utils/date-helpers.ts","../../../projects/cardinal-prescription-be-angular/src/lib/internal/services/common/tooltip-context.service.ts","../../../projects/cardinal-prescription-be-angular/src/lib/internal/components/common/tooltip/tooltip.component.ts","../../../projects/cardinal-prescription-be-angular/src/lib/internal/components/common/tooltip/tooltip.component.html","../../../projects/cardinal-prescription-be-angular/src/lib/internal/components/common/icons/solid-pill-icn/solid-pill-icn.component.ts","../../../projects/cardinal-prescription-be-angular/src/lib/internal/components/common/icons/solid-pill-icn/solid-pill-icn.component.html","../../../projects/cardinal-prescription-be-angular/src/lib/internal/components/common/icons/molecule-icn/molecule-icn.component.ts","../../../projects/cardinal-prescription-be-angular/src/lib/internal/components/common/icons/molecule-icn/molecule-icn.component.html","../../../projects/cardinal-prescription-be-angular/src/lib/internal/components/common/icons/leaf-icn/leaf-icn.component.ts","../../../projects/cardinal-prescription-be-angular/src/lib/internal/components/common/icons/leaf-icn/leaf-icn.component.html","../../../projects/cardinal-prescription-be-angular/src/lib/internal/components/common/icons/triangle-icn/triangle-icn.component.ts","../../../projects/cardinal-prescription-be-angular/src/lib/internal/components/common/icons/triangle-icn/triangle-icn.component.html","../../../projects/cardinal-prescription-be-angular/src/lib/internal/components/common/icons/pills-bottle-icn/pills-bottle-icn.component.ts","../../../projects/cardinal-prescription-be-angular/src/lib/internal/components/common/icons/pills-bottle-icn/pills-bottle-icn.component.html","../../../projects/cardinal-prescription-be-angular/src/lib/internal/components/common/icons/prescription-icn/prescription-icn.component.ts","../../../projects/cardinal-prescription-be-angular/src/lib/internal/components/common/icons/prescription-icn/prescription-icn.component.html","../../../projects/cardinal-prescription-be-angular/src/lib/internal/components/common/icons/supply-icn/supply-icn.component.ts","../../../projects/cardinal-prescription-be-angular/src/lib/internal/components/common/icons/supply-icn/supply-icn.component.html","../../../projects/cardinal-prescription-be-angular/src/lib/internal/components/common/icons/end-of-commercialisation-icn/end-of-commercialisation-icn.component.ts","../../../projects/cardinal-prescription-be-angular/src/lib/internal/components/common/icons/end-of-commercialisation-icn/end-of-commercialisation-icn.component.html","../../../projects/cardinal-prescription-be-angular/src/lib/internal/components/common/icons/start-of-commercialisation-icn/start-of-commercialisation-icn.component.ts","../../../projects/cardinal-prescription-be-angular/src/lib/internal/components/common/icons/start-of-commercialisation-icn/start-of-commercialisation-icn.component.html","../../../projects/cardinal-prescription-be-angular/src/lib/internal/components/common/icons/chevron-icn/chevron-icn.component.ts","../../../projects/cardinal-prescription-be-angular/src/lib/internal/components/common/icons/chevron-icn/chevron-icn.component.html","../../../projects/cardinal-prescription-be-angular/src/lib/internal/utils/reimbursement-helpers.ts","../../../projects/cardinal-prescription-be-angular/src/lib/internal/translations/home.translations.ts","../../../projects/cardinal-prescription-be-angular/src/lib/internal/translations/prescription.translations.ts","../../../projects/cardinal-prescription-be-angular/src/lib/internal/translations/medication.translations.ts","../../../projects/cardinal-prescription-be-angular/src/lib/internal/translations/practitioner.translations.ts","../../../projects/cardinal-prescription-be-angular/src/lib/internal/translations/utils/visibility-helpers.translations.ts","../../../projects/cardinal-prescription-be-angular/src/lib/internal/translations/utils/reimbursement-helpers.translations.ts","../../../projects/cardinal-prescription-be-angular/src/lib/internal/translations/utils/prescription-duration-helpers.translations.ts","../../../projects/cardinal-prescription-be-angular/src/lib/internal/translations/utils/delivery-helpers.translations.ts","../../../projects/cardinal-prescription-be-angular/src/lib/internal/translations/index.ts","../../../projects/cardinal-prescription-be-angular/src/lib/shared/services/translation/translation.service.ts","../../../projects/cardinal-prescription-be-angular/src/lib/internal/components/medication-elements/medication-card/medication-card.component.ts","../../../projects/cardinal-prescription-be-angular/src/lib/internal/components/medication-elements/medication-card/medication-card.component.html","../../../projects/cardinal-prescription-be-angular/src/lib/shared/services/api/sam-sdk.service.ts","../../../projects/cardinal-prescription-be-angular/src/lib/internal/utils/string-helpers.ts","../../../projects/cardinal-prescription-be-angular/src/lib/internal/services/loaders/merge-lazy-sorted-named-items.service.ts","../../../projects/cardinal-prescription-be-angular/src/lib/internal/services/loaders/medication-loader.service.ts","../../../projects/cardinal-prescription-be-angular/src/lib/shared/components/medication-search/medication-search.component.ts","../../../projects/cardinal-prescription-be-angular/src/lib/shared/components/medication-search/medication-search.component.html","../../../projects/cardinal-prescription-be-angular/src/lib/internal/components/common/icons/status-success/status-success.component.ts","../../../projects/cardinal-prescription-be-angular/src/lib/internal/components/common/icons/status-success/status-success.component.html","../../../projects/cardinal-prescription-be-angular/src/lib/internal/components/common/icons/status-error/status-error.component.ts","../../../projects/cardinal-prescription-be-angular/src/lib/internal/components/common/icons/status-error/status-error.component.html","../../../projects/cardinal-prescription-be-angular/src/lib/internal/components/certificate-elements/certificate-status/certificate-status.component.ts","../../../projects/cardinal-prescription-be-angular/src/lib/internal/components/certificate-elements/certificate-status/certificate-status.component.html","../../../projects/cardinal-prescription-be-angular/src/lib/internal/components/form-elements/text-input/text-input.component.ts","../../../projects/cardinal-prescription-be-angular/src/lib/internal/components/form-elements/text-input/text-input.component.html","../../../projects/cardinal-prescription-be-angular/src/lib/internal/components/common/icons/spinner-icn/spinner-icn.component.ts","../../../projects/cardinal-prescription-be-angular/src/lib/internal/components/common/icons/spinner-icn/spinner-icn.component.html","../../../projects/cardinal-prescription-be-angular/src/lib/internal/components/form-elements/button/button.component.ts","../../../projects/cardinal-prescription-be-angular/src/lib/internal/components/form-elements/button/button.component.html","../../../projects/cardinal-prescription-be-angular/src/lib/shared/services/certificate/upload-practitioner-certificate.service.ts","../../../projects/cardinal-prescription-be-angular/src/lib/internal/components/certificate-elements/certificate-upload/certificate-upload.component.ts","../../../projects/cardinal-prescription-be-angular/src/lib/internal/components/certificate-elements/certificate-upload/certificate-upload.component.html","../../../projects/cardinal-prescription-be-angular/src/lib/shared/components/practitioner-certificate/practitioner-certificate.component.ts","../../../projects/cardinal-prescription-be-angular/src/lib/shared/components/practitioner-certificate/practitioner-certificate.component.html","../../../projects/cardinal-prescription-be-angular/src/lib/internal/components/common/icons/edit-icn/edit-icn.component.ts","../../../projects/cardinal-prescription-be-angular/src/lib/internal/components/common/icons/edit-icn/edit-icn.component.html","../../../projects/cardinal-prescription-be-angular/src/lib/internal/components/common/icons/delete-icn/delete-icn.component.ts","../../../projects/cardinal-prescription-be-angular/src/lib/internal/components/common/icons/delete-icn/delete-icn.component.html","../../../projects/cardinal-prescription-be-angular/src/lib/internal/components/prescription-elements/prescription-card/prescription-card.component.ts","../../../projects/cardinal-prescription-be-angular/src/lib/internal/components/prescription-elements/prescription-card/prescription-card.component.html","../../../projects/cardinal-prescription-be-angular/src/lib/shared/components/prescription-list/prescription-list.component.ts","../../../projects/cardinal-prescription-be-angular/src/lib/shared/components/prescription-list/prescription-list.component.html","../../../projects/cardinal-prescription-be-angular/src/lib/internal/components/form-elements/select-input/select-input.component.ts","../../../projects/cardinal-prescription-be-angular/src/lib/internal/components/form-elements/select-input/select-input.component.html","../../../projects/cardinal-prescription-be-angular/src/lib/internal/components/form-elements/radio-input/radio-input.component.ts","../../../projects/cardinal-prescription-be-angular/src/lib/internal/components/form-elements/radio-input/radio-input.component.html","../../../projects/cardinal-prescription-be-angular/src/lib/internal/components/form-elements/toggle-switch/toggle-switch.component.ts","../../../projects/cardinal-prescription-be-angular/src/lib/internal/components/form-elements/toggle-switch/toggle-switch.component.html","../../../projects/cardinal-prescription-be-angular/src/lib/internal/components/form-elements/textarea-input/textarea-input.component.ts","../../../projects/cardinal-prescription-be-angular/src/lib/internal/components/form-elements/textarea-input/textarea-input.component.html","../../../projects/cardinal-prescription-be-angular/src/lib/internal/components/common/icons/close-icn/close-icn.component.ts","../../../projects/cardinal-prescription-be-angular/src/lib/internal/components/common/icons/close-icn/close-icn.component.html","../../../projects/cardinal-prescription-be-angular/src/lib/internal/utils/prescription-duration-helpers.ts","../../../projects/cardinal-prescription-be-angular/src/lib/internal/utils/visibility-helpers.ts","../../../projects/cardinal-prescription-be-angular/src/lib/shared/services/api/fhc.service.ts","../../../projects/cardinal-prescription-be-angular/src/lib/internal/services/prescription/create-prescription.service.ts","../../../projects/cardinal-prescription-be-angular/src/lib/shared/components/prescription-modal/prescription-modal.component.ts","../../../projects/cardinal-prescription-be-angular/src/lib/shared/components/prescription-modal/prescription-modal.component.html","../../../projects/cardinal-prescription-be-angular/src/lib/internal/components/prescription-elements/prescription-document-to-print/prescription-document-to-print.component.ts","../../../projects/cardinal-prescription-be-angular/src/lib/internal/components/prescription-elements/prescription-document-to-print/prescription-document-to-print.component.html","../../../projects/cardinal-prescription-be-angular/src/lib/shared/components/print-prescription-modal/print-prescription-modal.component.ts","../../../projects/cardinal-prescription-be-angular/src/lib/shared/components/print-prescription-modal/print-prescription-modal.component.html","../../../projects/cardinal-prescription-be-angular/src/lib/shared/services/certificate/indexed-db-token-store.service.ts","../../../projects/cardinal-prescription-be-angular/src/public-api.ts","../../../projects/cardinal-prescription-be-angular/src/icure-cardinal-prescription-be-angular.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { IconComponentBase } from '../../../../types';\n\n@Component({\n  selector: 'cardinal-search-icn',\n  imports: [],\n  templateUrl: './search-icn.component.html',\n  styleUrl: './search-icn.component.scss',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: true,\n})\nexport class SearchIcnComponent implements IconComponentBase {\n  @Input({ required: true }) color: string = 'currentColor';\n}\n","<svg\n  width=\"20px\"\n  height=\"20px\"\n  viewBox=\"0 0 20 20\"\n  fill=\"none\"\n  xmlns=\"http://www.w3.org/2000/svg\">\n  <g mask=\"url(#mask0_16_247)\">\n    <path\n      d=\"M16.3333 17.5L11.0833 12.25C10.6667 12.5833 10.1875 12.8472 9.64583 13.0417C9.10417 13.2361 8.52778 13.3333 7.91667 13.3333C6.40278 13.3333 5.12153 12.809 4.07292 11.7604C3.02431 10.7118 2.5 9.43056 2.5 7.91667C2.5 6.40278 3.02431 5.12153 4.07292 4.07292C5.12153 3.02431 6.40278 2.5 7.91667 2.5C9.43056 2.5 10.7118 3.02431 11.7604 4.07292C12.809 5.12153 13.3333 6.40278 13.3333 7.91667C13.3333 8.52778 13.2361 9.10417 13.0417 9.64583C12.8472 10.1875 12.5833 10.6667 12.25 11.0833L17.5 16.3333L16.3333 17.5ZM7.91667 11.6667C8.95833 11.6667 9.84375 11.3021 10.5729 10.5729C11.3021 9.84375 11.6667 8.95833 11.6667 7.91667C11.6667 6.875 11.3021 5.98958 10.5729 5.26042C9.84375 4.53125 8.95833 4.16667 7.91667 4.16667C6.875 4.16667 5.98958 4.53125 5.26042 5.26042C4.53125 5.98958 4.16667 6.875 4.16667 7.91667C4.16667 8.95833 4.53125 9.84375 5.26042 10.5729C5.98958 11.3021 6.875 11.6667 7.91667 11.6667Z\"\n      [attr.fill]=\"color\" />\n  </g>\n</svg>\n","import { PrescribedMedicationType } from '../../shared/types';\n\nexport const convertYyyyMmDdNumberToIsoDate = (dateNumber: number): string => {\n  const year = Math.floor(dateNumber / 10000);\n  const month = Math.floor((dateNumber % 10000) / 100)\n    .toString()\n    .padStart(2, '0');\n  const day = (dateNumber % 100).toString().padStart(2, '0');\n  return `${year}-${month}-${day}`;\n};\n\nexport const getTreatmentStartDate = (\n  prescribedMedication?: PrescribedMedicationType\n): string => {\n  if (prescribedMedication?.medication.beginMoment) {\n    return convertYyyyMmDdNumberToIsoDate(\n      prescribedMedication?.medication.beginMoment\n    );\n  } else {\n    return new Date().toISOString().split('T')[0];\n  }\n};\n\nexport const getExecutableUntilDate = (\n  prescribedMedication?: PrescribedMedicationType\n): string => {\n  if (prescribedMedication?.medication.endMoment) {\n    return convertYyyyMmDdNumberToIsoDate(\n      prescribedMedication.medication.endMoment\n    );\n  } else {\n    const startDay = new Date();\n    const nextYear = new Date(startDay);\n    nextYear.setFullYear(startDay.getFullYear() + 1);\n    return nextYear.toISOString().split('T')[0];\n  }\n};\n\nexport const formatToDayMonthYear = (timestamp: number): string | undefined => {\n  if (!timestamp) {\n    return undefined;\n  } else {\n    const date = new Date(timestamp);\n    const day = String(date.getDate()).padStart(2, '0');\n    const month = String(date.getMonth() + 1).padStart(2, '0'); // Months are zero-based\n    const year = date.getFullYear();\n\n    return `${day}-${month}-${year}`;\n  }\n};\n\nexport function dateDecode(date: number): Date {\n  return date > 99990000\n    ? new Date(\n        date / 10000000000,\n        ((date / 100000000) % 100) - 1,\n        (date / 1000000) % 100\n      )\n    : new Date(date / 10000, ((date / 100) % 100) - 1, date % 100);\n}\n\nexport function dateEncode(date: Date): number {\n  return (\n    date.getFullYear() * 10000 + (date.getMonth() + 1) * 100 + date.getDate()\n  );\n}\n\nexport function offsetDate(date: number, offsetInDays: number): number {\n  const result = new Date(dateDecode(date)); // Decode the date\n  result.setDate(result.getDate() + offsetInDays); // Add or subtract the offset in days\n  return dateEncode(result); // Encode it back to the required format\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class TooltipContextService {\n  private dropdownRectSubject = new BehaviorSubject<DOMRect | null>(null);\n  dropdownRect$ = this.dropdownRectSubject.asObservable();\n\n  setDropdownRect(rect: DOMRect) {\n    this.dropdownRectSubject.next(rect);\n  }\n}\n","import {\n  Component,\n  Input,\n  ViewChild,\n  TemplateRef,\n  ElementRef,\n  OnInit,\n  OnDestroy,\n  AfterViewInit,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n} from '@angular/core';\nimport { NgClass, NgIf, NgTemplateOutlet } from '@angular/common';\nimport { TooltipContextService } from '../../../services/common/tooltip-context.service';\nimport { Subscription } from 'rxjs';\n\n@Component({\n  selector: 'cardinal-tooltip',\n  standalone: true,\n  templateUrl: './tooltip.component.html',\n  styleUrls: ['./tooltip.component.scss'],\n  imports: [NgIf, NgTemplateOutlet, NgClass],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TooltipComponent implements OnInit, OnDestroy, AfterViewInit {\n  @Input() content?: string;\n  @Input() contentSnippet?: TemplateRef<any>;\n  @Input() iconSnippet?: TemplateRef<any>;\n  @Input() orientation?: 'tr' | 'tl' | 'bl' | 'br';\n\n  @ViewChild('tooltipRef') tooltipRef!: ElementRef<HTMLElement>;\n\n  constructor(\n    private tooltipContext: TooltipContextService,\n    private cdr: ChangeDetectorRef\n  ) {}\n\n  active = false;\n  tooltipOrientation: 'tr' | 'tl' | 'bl' | 'br' = this.orientation ?? 'bl';\n\n  private rectSub?: Subscription;\n  private hasViewInitialized = false;\n  private latestRect: DOMRect | null = null;\n\n  ngOnInit() {\n    // Subscribe to reactive rect updates\n    this.rectSub = this.tooltipContext.dropdownRect$.subscribe(rect => {\n      this.latestRect = rect;\n      if (rect && this.hasViewInitialized) {\n        this.repositionTooltip(rect);\n      }\n    });\n  }\n\n  ngAfterViewInit() {\n    this.hasViewInitialized = true;\n\n    // Tooltip view now ready — safe to reposition if we already got the rect\n    if (this.latestRect) {\n      this.repositionTooltip(this.latestRect);\n    }\n  }\n\n  repositionTooltip(rect: DOMRect) {\n    const tooltipElement = this.tooltipRef?.nativeElement;\n    if (!tooltipElement || !rect) return;\n\n    const tooltipRect = this.tooltipRef?.nativeElement?.getBoundingClientRect();\n    const widthOfTooltipPopUp = 300;\n\n    // By default, we don't set up top origination, bcs it's not unfriendly\n    if (rect.right - tooltipRect.right > widthOfTooltipPopUp) {\n      this.tooltipOrientation = 'bl';\n    } else if (\n      rect.right - tooltipRect.right < widthOfTooltipPopUp ||\n      rect.right - tooltipRect.right === widthOfTooltipPopUp\n    ) {\n      this.tooltipOrientation = 'br';\n    }\n    this.cdr.markForCheck();\n  }\n\n  ngOnDestroy() {\n    this.rectSub?.unsubscribe();\n  }\n\n  handleMouseEnter() {\n    this.active = true;\n    this.cdr.markForCheck();\n  }\n\n  handleMouseLeave() {\n    this.active = false;\n    this.cdr.markForCheck();\n  }\n}\n","<div\n  #tooltipRef\n  class=\"tooltip\"\n  [class.active]=\"active\"\n  (mouseenter)=\"handleMouseEnter()\"\n  (mouseleave)=\"handleMouseLeave()\"\n  [ngClass]=\"tooltipOrientation\">\n  <div class=\"icon\">\n    <ng-container *ngIf=\"iconSnippet\">\n      <ng-container *ngTemplateOutlet=\"iconSnippet\"></ng-container>\n    </ng-container>\n  </div>\n  <div class=\"chevron\"></div>\n  <div class=\"popup\">\n    <div class=\"popup__iconWrap\">\n      <div class=\"popup__icon\">\n        <ng-container *ngIf=\"iconSnippet\">\n          <ng-container *ngTemplateOutlet=\"iconSnippet\"></ng-container>\n        </ng-container>\n      </div>\n    </div>\n    <p *ngIf=\"content\">{{ content }}</p>\n    <ng-container *ngIf=\"contentSnippet\">\n      <ng-container *ngTemplateOutlet=\"contentSnippet\"></ng-container>\n    </ng-container>\n  </div>\n</div>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { IconComponentBase } from '../../../../types';\n\n@Component({\n  selector: 'cardinal-solid-pill-icn',\n  imports: [],\n  templateUrl: './solid-pill-icn.component.html',\n  styleUrl: './solid-pill-icn.component.scss',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: true,\n})\nexport class SolidPillIcnComponent implements IconComponentBase {\n  @Input({ required: true }) color: string = 'currentColor';\n}\n","<svg\n  width=\"14\"\n  height=\"14\"\n  viewBox=\"0 0 14 14\"\n  fill=\"none\"\n  xmlns=\"http://www.w3.org/2000/svg\">\n  <g clip-path=\"url(#clip0_618_3928)\">\n    <path\n      d=\"M12.5957 9.11825C12.1339 8.62182 11.5084 8.31967 10.8342 8.26742L10.8168 8.26608L3.19964 8.25861C1.71537 8.25861 0.507812 9.46617 0.507812 10.9505C0.507812 12.4347 1.71537 13.6423 3.19964 13.6423H3.20011L10.7994 13.6348L10.8342 13.6335C11.5083 13.5812 12.1339 13.2791 12.5957 12.7827C13.0601 12.2834 13.3159 11.6327 13.3159 10.9505C13.3159 10.2682 13.0601 9.61754 12.5957 9.11825ZM6.98957 12.7251L3.19931 12.7288C2.21893 12.7286 1.42131 11.9309 1.42131 10.9505C1.42131 9.96992 2.21907 9.17214 3.19918 9.17214L6.98957 9.17586V12.7251ZM1.69844 7.39865C2.15702 7.73348 2.72102 7.91788 3.28648 7.91794H3.28659C3.48032 7.91794 3.67493 7.89669 3.86497 7.85477L3.882 7.85103L11.1737 5.64824C12.5941 5.21763 13.3994 3.71168 12.9688 2.2912C12.7979 1.72734 12.4566 1.24606 11.9819 0.899316C11.5232 0.564246 10.9591 0.37973 10.3935 0.37973C10.1285 0.379872 9.86494 0.419123 9.61137 0.496215L2.34107 2.70811L2.30812 2.71951C1.67812 2.96508 1.16713 3.43572 0.869242 4.04475C0.569637 4.65728 0.513664 5.35421 0.711578 6.00713C0.882531 6.5709 1.22378 7.05207 1.69844 7.39865ZM9.87685 1.37031C10.0443 1.31935 10.2185 1.29337 10.3935 1.29323C11.1697 1.29323 11.8691 1.8126 12.0946 2.55621C12.379 3.49462 11.847 4.48952 10.9091 4.77387L7.28069 5.86997L6.25098 2.47344L9.87685 1.37031Z\"\n      [attr.fill]=\"color\" />\n  </g>\n  <defs>\n    <clipPath id=\"clip0_618_3928\">\n      <rect width=\"14\" height=\"14\" fill=\"white\" />\n    </clipPath>\n  </defs>\n</svg>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { IconComponentBase } from '../../../../types';\n\n@Component({\n  selector: 'cardinal-molecule-icn',\n  imports: [],\n  templateUrl: './molecule-icn.component.html',\n  styleUrl: './molecule-icn.component.scss',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: true,\n})\nexport class MoleculeIcnComponent implements IconComponentBase {\n  @Input({ required: true }) color: string = 'currentColor';\n}\n","<svg\n  width=\"14\"\n  height=\"14\"\n  viewBox=\"0 0 14 14\"\n  fill=\"none\"\n  xmlns=\"http://www.w3.org/2000/svg\">\n  <g clip-path=\"url(#clip0_618_936)\">\n    <mask\n      id=\"mask0_618_936\"\n      style=\"mask-type: luminance\"\n      maskUnits=\"userSpaceOnUse\"\n      x=\"0\"\n      y=\"0\"\n      width=\"14\"\n      height=\"14\">\n      <path d=\"M14 0H0V14H14V0Z\" fill=\"white\" />\n    </mask>\n    <g mask=\"url(#mask0_618_936)\">\n      <path\n        d=\"M10.1245 5.15595V2.10851C10.1245 1.90286 10.016 1.71436 9.84181 1.60869L7.29986 0.0835404C7.11421 -0.0278468 6.88572 -0.0278468 6.70008 0.0835404L4.15531 1.60869C3.97824 1.71436 3.87256 1.90286 3.87256 2.10851V5.15595C3.87256 5.36159 3.98109 5.55009 4.15531 5.65576L6.70008 7.18091C6.96856 7.33514 7.19133 7.25231 7.29986 7.18091L9.84181 5.65576C10.016 5.55009 10.1245 5.36159 10.1245 5.15595Z\"\n        [attr.fill]=\"color\" />\n      <path\n        d=\"M5.96922 8.3405L3.4273 6.81532C3.24165 6.70393 3.01317 6.70393 2.82753 6.81532L0.282753 8.3405C0.105675 8.44612 0 8.63465 0 8.8403V11.8877C0 12.0934 0.108531 12.2819 0.282753 12.3875L2.82753 13.9127C3.096 14.0669 3.31877 13.9841 3.4273 13.9127L5.96922 12.3875C6.1463 12.2819 6.25197 12.0934 6.25197 11.8877V8.8403C6.25197 8.63465 6.1463 8.44612 5.96922 8.3405Z\"\n        [attr.fill]=\"color\" />\n      <path\n        d=\"M13.7119 8.33763L11.17 6.81248C10.9843 6.7011 10.7559 6.7011 10.5702 6.81248L8.02541 8.33763C7.84831 8.44333 7.74268 8.63178 7.74268 8.83743V11.8849C7.74268 12.0906 7.85119 12.279 8.02541 12.3847L10.5673 13.9099C10.8358 14.0641 11.0586 13.9813 11.1671 13.9099L13.709 12.3847C13.8861 12.279 13.9918 12.0906 13.9918 11.8849V8.83743C13.9946 8.63178 13.8861 8.44333 13.7119 8.33763Z\"\n        [attr.fill]=\"color\" />\n    </g>\n  </g>\n  <defs>\n    <clipPath id=\"clip0_618_936\">\n      <rect width=\"14\" height=\"14\" fill=\"white\" />\n    </clipPath>\n  </defs>\n</svg>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { IconComponentBase } from '../../../../types';\n\n@Component({\n  selector: 'cardinal-leaf-icn',\n  imports: [],\n  templateUrl: './leaf-icn.component.html',\n  styleUrl: './leaf-icn.component.scss',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: true,\n})\nexport class LeafIcnComponent implements IconComponentBase {\n  @Input({ required: true }) color: string = 'currentColor';\n}\n","<svg\n  width=\"14\"\n  height=\"14\"\n  viewBox=\"0 0 14 14\"\n  fill=\"none\"\n  xmlns=\"http://www.w3.org/2000/svg\">\n  <g clip-path=\"url(#clip0_618_2370)\">\n    <mask\n      id=\"mask0_618_2370\"\n      style=\"mask-type: luminance\"\n      maskUnits=\"userSpaceOnUse\"\n      x=\"0\"\n      y=\"0\"\n      width=\"14\"\n      height=\"14\">\n      <path d=\"M14 0H0V14H14V0Z\" fill=\"white\" />\n    </mask>\n    <g mask=\"url(#mask0_618_2370)\">\n      <path\n        d=\"M7.87489 0C4.49192 0 1.74989 2.74203 1.74989 6.125V11.0128L0.256266 12.5064C-0.085422 12.8481 -0.085422 13.4019 0.256266 13.7436C0.42711 13.9145 0.65111 14 0.874891 14C1.09867 14 1.32267 13.9145 1.49352 13.7436L2.98714 12.25H7.87489C11.2579 12.25 13.9999 9.50797 13.9999 6.125V0H7.87489ZM11.1185 4.11862L8.23627 7.00088H9.62489C10.1085 7.00088 10.4999 7.39222 10.4999 7.87588C10.4999 8.35953 10.1085 8.75088 9.62489 8.75088H6.48627L5.86852 9.36862C5.69767 9.53947 5.47367 9.625 5.24989 9.625C5.02611 9.625 4.80211 9.53947 4.63127 9.36862C4.28958 9.02694 4.28958 8.47306 4.63127 8.13138L5.24989 7.51275V4.375C5.24989 3.89134 5.64124 3.5 6.12489 3.5C6.60855 3.5 6.99989 3.89134 6.99989 4.375V5.76275L9.88127 2.88137C10.223 2.53969 10.7768 2.53969 11.1185 2.88137C11.4602 3.22306 11.4604 3.77694 11.1185 4.11862Z\"\n        [attr.fill]=\"color\" />\n    </g>\n  </g>\n  <defs>\n    <clipPath id=\"clip0_618_2370\">\n      <rect width=\"14\" height=\"14\" fill=\"white\" />\n    </clipPath>\n  </defs>\n</svg>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { IconComponentBase } from '../../../../types';\n\n@Component({\n  selector: 'cardinal-triangle-icn',\n  imports: [],\n  templateUrl: './triangle-icn.component.html',\n  styleUrl: './triangle-icn.component.scss',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: true,\n})\nexport class TriangleIcnComponent implements IconComponentBase {\n  @Input({ required: true }) color: string = 'currentColor';\n}\n","<svg\n  width=\"12px\"\n  height=\"12px\"\n  viewBox=\"0 0 10 10\"\n  fill=\"none\"\n  xmlns=\"http://www.w3.org/2000/svg\">\n  <path\n    fill-rule=\"evenodd\"\n    clip-rule=\"evenodd\"\n    d=\"M5.37602 8.49475C5.49353 8.4276 5.59093 8.33021 5.65808 8.21269L8.9 2.53934C9.1077 2.17586 8.98142 1.71282 8.61793 1.50511C8.5034 1.43966 8.37377 1.40524 8.24185 1.40524H1.75802C1.33938 1.40524 1 1.74461 1 2.16326C1 2.29517 1.03443 2.4248 1.09987 2.53934L4.34179 8.21269C4.54949 8.57617 5.01253 8.70246 5.37602 8.49475Z\"\n    [attr.fill]=\"color\" />\n</svg>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { IconComponentBase } from '../../../../types';\n\n@Component({\n  selector: 'cardinal-pills-bottle-icn',\n  imports: [],\n  templateUrl: './pills-bottle-icn.component.html',\n  styleUrl: './pills-bottle-icn.component.scss',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: true,\n})\nexport class PillsBottleIcnComponent implements IconComponentBase {\n  @Input({ required: true }) color: string = 'currentColor';\n}\n","<svg\n  width=\"12px\"\n  height=\"12px\"\n  viewBox=\"0 0 10 10\"\n  fill=\"none\"\n  xmlns=\"http://www.w3.org/2000/svg\">\n  <g clip-path=\"url(#clip0_165_1782)\">\n    <path\n      d=\"M7.8751 4.34052C7.86877 4.11591 7.75782 3.91751 7.58907 3.79252C7.40655 3.62106 7.2094 3.46818 7.01846 3.26338C6.98683 3.22948 6.96046 3.19954 6.93778 3.17205C6.93517 3.16894 6.93256 3.1658 6.92996 3.16263C6.92681 3.1587 6.92397 3.155 6.92093 3.15118L6.91757 3.14688C6.82224 3.02447 6.81289 2.95561 6.81289 2.83826C6.81289 2.77897 6.81289 2.65316 6.81289 2.52272H6.9662C7.18556 2.52272 7.3634 2.36418 7.3634 2.16861V1.35413C7.3634 1.15854 7.18557 1 6.9662 1H3.03366C2.81429 1 2.63645 1.15854 2.63645 1.35413V2.16859C2.63645 2.36416 2.81429 2.5227 3.03366 2.5227H3.18697C3.18697 2.65314 3.18697 2.77896 3.18697 2.83824C3.18697 2.95559 3.17762 3.02446 3.08227 3.14687L3.07893 3.15116C3.07589 3.15498 3.07308 3.1587 3.06991 3.16261C3.06734 3.16578 3.06474 3.16891 3.06208 3.17203C3.0394 3.19952 3.01303 3.22948 2.98144 3.26336C2.79046 3.46817 2.59332 3.62099 2.41079 3.79246C2.24204 3.91746 2.13109 4.11591 2.12476 4.34051C2.12476 4.34635 2.12427 4.35356 2.12427 4.36032C2.12427 4.86656 2.12427 7.86047 2.12427 8.24009C2.12427 8.62504 2.40714 9 2.88414 9C3.12245 9 3.82162 9 4.98483 9C4.98483 9 4.9887 9 4.99588 9H4.99991H5.00395C5.01113 9 5.015 9 5.015 9C6.17819 9 6.87738 9 7.11569 9C7.59269 9 7.87556 8.62504 7.87556 8.24009C7.87556 7.86047 7.87556 4.8673 7.87556 4.36108C7.87556 4.35432 7.8751 4.34637 7.8751 4.34052ZM7.08025 6.21274C7.08025 6.43213 6.90241 6.60997 6.68304 6.60997H4.99995H3.31686C3.0975 6.60997 2.91965 6.43213 2.91965 6.21274V5.5681C2.91965 5.34872 3.0975 5.17088 3.31686 5.17088H6.68304C6.90241 5.17088 7.08025 5.34874 7.08025 5.5681V6.21274Z\"\n      [attr.fill]=\"color\" />\n  </g>\n  <defs>\n    <clipPath id=\"clip0_165_1782\">\n      <rect width=\"8\" height=\"8\" fill=\"white\" transform=\"translate(1 1)\" />\n    </clipPath>\n  </defs>\n</svg>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { IconComponentBase } from '../../../../types';\n\n@Component({\n  selector: 'cardinal-prescription-icn',\n  imports: [],\n  templateUrl: './prescription-icn.component.html',\n  styleUrl: './prescription-icn.component.scss',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: true,\n})\nexport class PrescriptionIcnComponent implements IconComponentBase {\n  @Input({ required: true }) color: string = 'currentColor';\n}\n","<!--<svg-->\n<!--  width=\"12px\"-->\n<!--  height=\"12px\"-->\n<!--  viewBox=\"0 0 12 12\"-->\n<!--  fill=\"none\"-->\n<!--  xmlns=\"http://www.w3.org/2000/svg\">-->\n<!--  <path-->\n<!--    d=\"M7.29275 4.90649C7.3391 4.88707 7.37877 4.85455 7.40691 4.81291C7.43504 4.77127 7.45041 4.72233 7.45113 4.67208V1.00699C7.45113 0.804093 7.37053 0.609509 7.22707 0.466041C7.0836 0.322573 6.88902 0.241974 6.68612 0.241974H1.76185C1.66159 0.242182 1.56236 0.262134 1.46982 0.300692C1.37727 0.33925 1.29323 0.395658 1.22248 0.466697C1.15174 0.537735 1.09568 0.622011 1.05751 0.714714C1.01933 0.807417 0.999793 0.906732 1 1.00699V7.43278C0.999793 7.53316 1.01939 7.63261 1.05766 7.72541C1.09593 7.81822 1.15213 7.90257 1.22304 7.97363C1.29396 8.04468 1.37819 8.10106 1.47091 8.13952C1.56364 8.17799 1.66304 8.19779 1.76343 8.19779H4.26596C4.31409 8.19765 4.3612 8.18389 4.40184 8.1581C4.44248 8.13232 4.47499 8.09556 4.49562 8.05207C4.56793 7.92463 4.6563 7.80699 4.75854 7.70203L6.65919 5.44501C6.82535 5.21842 7.04235 5.03397 7.29275 4.90649ZM1.8252 2.42297C1.8252 2.39136 1.83143 2.36005 1.84353 2.33084C1.85563 2.30163 1.87336 2.27509 1.89572 2.25274C1.91807 2.23038 1.94461 2.21265 1.97382 2.20055C2.00303 2.18845 2.03434 2.18222 2.06595 2.18222H2.54903V1.70706C2.55069 1.64431 2.57678 1.58469 2.62175 1.54091C2.66672 1.49712 2.72701 1.47262 2.78978 1.47265H3.03053C3.09453 1.47306 3.15576 1.49878 3.20086 1.54418C3.24597 1.58958 3.27128 1.65098 3.27128 1.71498V2.18222H3.74644C3.81046 2.18304 3.87162 2.20884 3.91689 2.25411C3.96216 2.29938 3.98796 2.36054 3.98878 2.42456V2.66531C3.98756 2.7292 3.96164 2.79013 3.91645 2.83531C3.87127 2.8805 3.81033 2.90642 3.74644 2.90764H3.27128V3.39389C3.27128 3.45774 3.24592 3.51898 3.20077 3.56412C3.15562 3.60927 3.09438 3.63464 3.03053 3.63464H2.7882C2.72462 3.63422 2.66379 3.60867 2.61899 3.56357C2.57418 3.51846 2.54903 3.45747 2.54903 3.39389V2.91873H2.06595C2.03434 2.91873 2.00303 2.9125 1.97382 2.9004C1.94461 2.8883 1.91807 2.87057 1.89572 2.84821C1.87336 2.82586 1.85563 2.79932 1.84353 2.77011C1.83143 2.7409 1.8252 2.70959 1.8252 2.67798V2.42297ZM4.85199 6.30506C4.85199 6.37269 4.82512 6.43755 4.7773 6.48537C4.72948 6.53319 4.66462 6.56006 4.59699 6.56006H2.08021C2.01257 6.56006 1.94771 6.53319 1.89989 6.48537C1.85207 6.43755 1.8252 6.37269 1.8252 6.30506V6.02471C1.82562 5.95735 1.85267 5.8929 1.90045 5.84542C1.94823 5.79794 2.01285 5.77129 2.08021 5.77129H4.59699C4.66434 5.77129 4.72897 5.79794 4.77674 5.84542C4.82452 5.8929 4.85157 5.95735 4.85199 6.02471V6.30506ZM6.13493 4.75127C6.13535 4.78502 6.12906 4.81853 6.11644 4.84983C6.10381 4.88114 6.08509 4.90962 6.06137 4.93364C6.03765 4.95765 6.0094 4.97672 5.97825 4.98973C5.9471 5.00275 5.91368 5.00945 5.87993 5.00944H2.07862C2.01099 5.00944 1.94613 4.98258 1.89831 4.93475C1.85048 4.88693 1.82362 4.82207 1.82362 4.75444V4.47568C1.8232 4.44179 1.82953 4.40816 1.84226 4.37675C1.85498 4.34534 1.87384 4.31678 1.89773 4.29274C1.92162 4.26871 1.95006 4.24967 1.98139 4.23676C2.01273 4.22384 2.04632 4.21729 2.08021 4.21751H5.88151C5.94914 4.21751 6.014 4.24437 6.06183 4.29219C6.10965 4.34002 6.13652 4.40488 6.13652 4.47251L6.13493 4.75127Z\"-->\n<!--    [attr.fill]=\"color\" />-->\n<!--  <path-->\n<!--    d=\"M8.66256 5.60659C8.45267 5.42295 8.17908 5.32902 7.90065 5.34502C7.62222 5.36101 7.36119 5.48565 7.17371 5.69212C7.1623 5.70461 7.15171 5.71783 7.14204 5.73171L6.3501 6.66303L7.93397 8.01091L8.72591 7.07959C8.91253 6.87571 9.01067 6.60613 8.99879 6.32999C8.98692 6.05385 8.866 5.79369 8.66256 5.60659Z\"-->\n<!--    [attr.fill]=\"color\" />-->\n<!--  <path-->\n<!--    d=\"M6.01441 7.08432L5.22247 8.01564C5.03848 8.22421 4.94488 8.49732 4.96226 8.7749C4.97963 9.05248 5.10656 9.31178 5.31513 9.49577C5.52369 9.67976 5.79681 9.77337 6.07439 9.75599C6.35197 9.73861 6.61127 9.61168 6.79526 9.40312L6.82852 9.36352L7.62046 8.4322L6.03659 7.08432H6.01441Z\"-->\n<!--    [attr.fill]=\"color\" />-->\n<!--</svg>-->\n<svg\n  width=\"12\"\n  height=\"12\"\n  viewBox=\"0 0 12 12\"\n  fill=\"none\"\n  xmlns=\"http://www.w3.org/2000/svg\">\n  <path\n    d=\"M8.56078 8.25L10.3903 6.42047C10.5368 6.27398 10.5368 6.03656 10.3903 5.89008L9.85992 5.35969C9.71344 5.2132 9.47602 5.2132 9.32953 5.35969L7.5 7.18922L5.53219 5.22141C6.64008 5.08125 7.5 4.14586 7.5 3C7.5 1.75734 6.49266 0.75 5.25 0.75H1.875C1.66781 0.75 1.5 0.917813 1.5 1.125V7.125C1.5 7.33219 1.66781 7.5 1.875 7.5H2.625C2.83219 7.5 3 7.33219 3 7.125V5.25H3.43945L6.43945 8.25L4.60992 10.0795C4.46344 10.226 4.46344 10.4634 4.60992 10.6099L5.14031 11.1403C5.2868 11.2868 5.52422 11.2868 5.6707 11.1403L7.5 9.31055L9.32953 11.1401C9.47602 11.2866 9.71344 11.2866 9.85992 11.1401L10.3903 10.6097C10.5368 10.4632 10.5368 10.2258 10.3903 10.0793L8.56078 8.25ZM3 2.25H5.25C5.66344 2.25 6 2.58656 6 3C6 3.41344 5.66344 3.75 5.25 3.75H3V2.25Z\"\n    [attr.fill]=\"color\" />\n</svg>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { IconComponentBase } from '../../../../types';\n\n@Component({\n  selector: 'cardinal-supply-icn',\n  imports: [],\n  templateUrl: './supply-icn.component.html',\n  styleUrl: './supply-icn.component.scss',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: true,\n})\nexport class SupplyIcnComponent implements IconComponentBase {\n  @Input({ required: true }) color: string = 'currentColor';\n}\n","<svg\n  width=\"16\"\n  height=\"16\"\n  viewBox=\"0 0 16 16\"\n  fill=\"none\"\n  xmlns=\"http://www.w3.org/2000/svg\">\n  <g clip-path=\"url(#clip0_329_708)\">\n    <path\n      d=\"M5.18757 9.96101C4.45959 9.96101 3.86963 10.5508 3.86963 11.2788C3.86963 12.0069 4.45959 12.5966 5.18757 12.5966C5.91581 12.5966 6.50562 12.0069 6.50562 11.2788C6.50562 10.5508 5.91581 9.96101 5.18757 9.96101ZM5.18757 11.8517C4.87111 11.8517 4.61468 11.5953 4.61468 11.2788C4.61468 10.9622 4.87111 10.7059 5.18757 10.7059C5.50406 10.7059 5.76067 10.9622 5.76067 11.2788C5.76067 11.5953 5.50406 11.8517 5.18757 11.8517Z\"\n      [attr.fill]=\"color\" />\n    <path\n      d=\"M12.1372 9.96101C11.4093 9.96101 10.8193 10.5508 10.8193 11.2788C10.8193 12.0069 11.4093 12.5966 12.1372 12.5966C12.8655 12.5966 13.4553 12.0069 13.4553 11.2788C13.4553 10.5508 12.8655 9.96101 12.1372 9.96101ZM12.1372 11.8517C11.8208 11.8517 11.5644 11.5953 11.5644 11.2788C11.5644 10.9622 11.8208 10.7059 12.1372 10.7059C12.4538 10.7059 12.7104 10.9622 12.7104 11.2788C12.7104 11.5953 12.4538 11.8517 12.1372 11.8517Z\"\n      [attr.fill]=\"color\" />\n    <path\n      d=\"M6.6703 5.9117C6.6703 6.09636 6.51918 6.24744 6.33455 6.24744H1.70143C1.51676 6.24744 1.36572 6.09636 1.36572 5.9117V5.71025C1.36572 5.52562 1.5168 5.37454 1.70143 5.37454H6.33455C6.51922 5.37454 6.6703 5.52562 6.6703 5.71025V5.9117Z\"\n      [attr.fill]=\"color\" />\n    <path\n      d=\"M14.7198 7.87737C14.2365 7.75174 13.96 7.67276 13.7703 7.30629L13.1358 6.02162C12.9459 5.65516 12.4529 5.35529 12.0403 5.35529H11.1725C11.1725 5.35529 11.0557 5.35773 11.0557 5.24024C11.0557 4.97087 11.0557 4.1628 11.0557 4.1628C11.0557 3.74512 10.8194 3.40337 10.3166 3.40337H3.24371C2.52388 3.40337 2.18213 3.74516 2.18213 4.1628V4.83801C2.18213 4.83801 2.18213 5.03883 2.3765 5.03883C3.36599 5.03883 6.33452 5.03883 6.33452 5.03883C6.70477 5.03883 7.006 5.34003 7.006 5.71028V5.91173C7.006 6.28199 6.70477 6.58318 6.33452 6.58318H2.3765C2.3765 6.58318 2.18213 6.56703 2.18213 6.77685C2.18213 6.88106 2.18213 6.95101 2.18213 7.00905C2.18213 7.19372 2.43524 7.19361 2.43524 7.19361H5.09958C5.46984 7.19361 5.77107 7.49483 5.77107 7.86506V8.0665C5.77107 8.43676 5.46984 8.73795 5.09958 8.73795H2.47727C2.47727 8.73795 2.18213 8.7325 2.18213 8.9675C2.18213 9.37541 2.18213 10.5991 2.18213 10.5991C2.18213 11.0167 2.52388 11.3585 2.94156 11.3585C2.94156 11.3585 3.25618 11.3585 3.36105 11.3585C3.45619 11.3585 3.4702 11.3055 3.4702 11.2789C3.4702 10.332 4.24066 9.5617 5.1876 9.5617C6.13462 9.5617 6.90504 10.332 6.90504 11.2789C6.90504 11.3056 6.89744 11.3585 6.9702 11.3585C7.80172 11.3585 10.3555 11.3585 10.3555 11.3585C10.4226 11.3585 10.4199 11.3019 10.4199 11.2789C10.4199 10.332 11.1903 9.5617 12.1373 9.5617C13.0843 9.5617 13.8547 10.332 13.8547 11.2789C13.8547 11.3056 13.854 11.3585 13.896 11.3585C14.2773 11.3585 14.7495 11.3585 14.7495 11.3585C15.1624 11.3585 15.5 11.0208 15.5 10.6081V9.18233C15.5001 7.98165 15.1209 7.98165 14.7198 7.87737ZM13.2917 7.81059C13.2917 7.81059 11.6981 7.81059 11.1557 7.81059C11.0674 7.81059 11.0557 7.72468 11.0557 7.72468V5.94529C11.0557 5.94529 11.0507 5.87696 11.164 5.87696C11.3164 5.87696 11.7735 5.87696 11.7735 5.87696C12.1408 5.87696 12.5794 6.14378 12.7483 6.46987L13.3129 7.61298C13.3367 7.659 13.3621 7.69986 13.3893 7.73647C13.4094 7.76332 13.3757 7.81059 13.2917 7.81059Z\"\n      [attr.fill]=\"color\" />\n    <path\n      d=\"M5.43524 8.06651C5.43524 8.25118 5.28416 8.40226 5.09953 8.40226H0.835707C0.651039 8.40226 0.5 8.25118 0.5 8.06651V7.86506C0.5 7.68043 0.651076 7.52936 0.835707 7.52936H5.09953C5.2842 7.52936 5.43524 7.68043 5.43524 7.86506V8.06651Z\"\n      [attr.fill]=\"color\" />\n  </g>\n  <defs>\n    <clipPath id=\"clip0_329_708\">\n      <rect\n        width=\"15\"\n        height=\"15\"\n        fill=\"white\"\n        transform=\"translate(0.5 0.5)\" />\n    </clipPath>\n  </defs>\n</svg>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { IconComponentBase } from '../../../../types';\n\n@Component({\n  selector: 'cardinal-end-of-commercialisation-icn',\n  imports: [],\n  templateUrl: './end-of-commercialisation-icn.component.html',\n  styleUrl: './end-of-commercialisation-icn.component.scss',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: true,\n})\nexport class EndOfCommercialisationIcnComponent implements IconComponentBase {\n  @Input({ required: true }) color: string = 'currentColor';\n}\n","<svg\n  width=\"12\"\n  height=\"12\"\n  viewBox=\"0 0 12 12\"\n  fill=\"none\"\n  xmlns=\"http://www.w3.org/2000/svg\">\n  <g clip-path=\"url(#clip0_330_2250)\">\n    <path\n      d=\"M4.65801 10.3098C4.52446 10.2195 4.36185 10.1662 4.18897 10.1664C4.07385 10.1664 3.96278 10.1899 3.86218 10.2325C3.71139 10.2963 3.58384 10.4023 3.49335 10.5362C3.40283 10.6698 3.34991 10.8324 3.3501 11.0052C3.34991 11.1204 3.37335 11.2314 3.416 11.3318C3.47997 11.4828 3.58579 11.6104 3.71952 11.7007C3.85328 11.7914 4.01608 11.8443 4.18897 11.8443C4.3041 11.8443 4.41496 11.8208 4.51536 11.7782C4.66635 11.7144 4.79408 11.6082 4.88439 11.4745C4.97472 11.3409 5.0278 11.1781 5.0278 11.0052C5.0278 10.8901 5.00415 10.7793 4.96171 10.6787C4.89793 10.5277 4.79174 10.4002 4.65801 10.3098ZM4.50062 11.1368C4.47503 11.1973 4.43181 11.2495 4.37772 11.2859C4.32346 11.3224 4.2599 11.3435 4.18895 11.3437C4.14147 11.3435 4.09745 11.3342 4.05735 11.3169C3.99707 11.2917 3.94473 11.2483 3.90829 11.1944C3.87184 11.1399 3.85091 11.0762 3.85054 11.0052C3.85072 10.9579 3.86022 10.9141 3.87728 10.8736C3.90247 10.8134 3.9459 10.7612 3.99995 10.7246C4.05423 10.6882 4.11798 10.6672 4.18893 10.667C4.23622 10.667 4.28003 10.6766 4.32032 10.6936C4.38079 10.719 4.43272 10.7622 4.46938 10.8165C4.50583 10.8708 4.52694 10.9343 4.52694 11.0053C4.52699 11.0527 4.51766 11.0966 4.50062 11.1368Z\"\n      [attr.fill]=\"color\" />\n    <path\n      d=\"M3.95443 9.20724C3.86373 9.20724 3.77884 9.189 3.70093 9.15623C3.58466 9.10702 3.48425 9.02405 3.41408 8.91977C3.34663 8.81956 3.30671 8.70155 3.3036 8.57208C3.30709 8.4176 3.35633 8.28349 3.44277 8.17629C3.48756 8.12107 3.54278 8.0726 3.60983 8.03248C3.67611 7.99294 3.75423 7.96156 3.84592 7.94177L9.57245 7.00971C9.9467 6.94866 10.2442 6.6626 10.3198 6.29102L11.0203 2.84747V2.84709C11.0284 2.80716 11.0323 2.76645 11.0323 2.72616C11.0323 2.58698 10.9846 2.45093 10.895 2.34122C10.7797 2.20013 10.6068 2.11814 10.4243 2.11814H2.495L2.22481 1.18997V1.19016C2.10078 0.775195 1.76042 0.460828 1.33714 0.370125L0.367674 0.162539C0.203705 0.127266 0.0420336 0.231938 0.00678359 0.396094C-0.0283023 0.56025 0.0761586 0.721899 0.240526 0.756985L1.20962 0.964758C1.41601 1.00894 1.58192 1.16205 1.64221 1.36441L3.41371 7.44949C3.37379 7.4681 3.33521 7.48826 3.29821 7.51055C3.1071 7.62434 2.95398 7.78404 2.85125 7.97049C2.753 8.14763 2.70085 8.34844 2.696 8.55563H2.69502V8.5872H2.69579C2.69968 8.74906 2.73418 8.90431 2.79406 9.04599C2.89002 9.27256 3.04932 9.46425 3.25011 9.59991C3.4509 9.73575 3.69472 9.81541 3.95443 9.81523H7.17163C7.17064 9.7852 7.16717 9.75593 7.16717 9.7257C7.16717 9.54834 7.18538 9.37526 7.21815 9.20724H3.95443ZM8.28413 3.16263C8.45488 3.11302 8.63356 3.2107 8.68318 3.38145L9.33556 5.61441C9.38518 5.78517 9.28728 5.96367 9.11656 6.01366C8.94599 6.06349 8.7673 5.96562 8.71749 5.79485L8.06527 3.56187C8.01549 3.39134 8.11337 3.21265 8.28413 3.16263ZM6.87643 3.16845C7.04699 3.11843 7.2257 3.21631 7.27548 3.38707L7.99009 5.83418C8.0401 6.00476 7.94202 6.18363 7.77146 6.23346C7.60091 6.28324 7.4222 6.18539 7.37218 6.01463L6.65757 3.56747C6.60781 3.39696 6.70567 3.21806 6.87643 3.16845ZM5.46835 3.17348C5.6391 3.12387 5.81781 3.22174 5.8674 3.39248L6.64074 6.04022C6.69074 6.21099 6.59267 6.38967 6.42212 6.43948C6.25159 6.48931 6.07288 6.39143 6.02286 6.22066L5.24952 3.57274C5.19971 3.40219 5.29759 3.22348 5.46835 3.17348ZM4.06046 3.17911C4.23123 3.12928 4.40992 3.22718 4.45972 3.39795L5.29332 6.25249C5.34334 6.42324 5.24525 6.60213 5.0747 6.65175C4.90414 6.70174 4.72543 6.60368 4.67542 6.43313L3.84163 3.5782C3.79203 3.40763 3.88972 3.22891 4.06046 3.17911Z\"\n      [attr.fill]=\"color\" />\n    <path\n      d=\"M9.88112 7.60687C8.71086 7.60687 7.7627 8.55541 7.7627 9.72569C7.7627 10.8958 8.71086 11.8443 9.88112 11.8443C11.0514 11.8443 11.9999 10.8958 11.9999 9.72569C11.9999 8.55541 11.0514 7.60687 9.88112 7.60687ZM11.0917 10.0788H8.67055V9.37235H11.0917V10.0788Z\"\n      [attr.fill]=\"color\" />\n  </g>\n  <defs>\n    <clipPath id=\"clip0_330_2250\">\n      <rect width=\"12\" height=\"12\" fill=\"white\" />\n    </clipPath>\n  </defs>\n</svg>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { IconComponentBase } from '../../../../types';\n\n@Component({\n  selector: 'cardinal-start-of-commercialisation-icn',\n  imports: [],\n  templateUrl: './start-of-commercialisation-icn.component.html',\n  styleUrl: './start-of-commercialisation-icn.component.scss',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: true,\n})\nexport class StartOfCommercialisationIcnComponent implements IconComponentBase {\n  @Input({ required: true }) color: string = 'currentColor';\n}\n","<svg\n  width=\"12\"\n  height=\"12\"\n  viewBox=\"0 0 12 12\"\n  fill=\"none\"\n  xmlns=\"http://www.w3.org/2000/svg\">\n  <g clip-path=\"url(#clip0_330_2383)\">\n    <path\n      d=\"M4.65803 10.3099C4.52448 10.2196 4.36187 10.1663 4.18897 10.1665C4.07385 10.1665 3.96278 10.1899 3.86218 10.2326C3.71139 10.2964 3.58384 10.4024 3.49335 10.5363C3.40283 10.6698 3.34991 10.8325 3.3501 11.0054C3.34991 11.1205 3.37337 11.2316 3.41601 11.3319C3.47997 11.4829 3.58579 11.6105 3.71952 11.7008C3.85326 11.7915 4.01608 11.8444 4.18897 11.8444C4.3041 11.8444 4.41496 11.8209 4.51536 11.7783C4.66635 11.7145 4.79408 11.6083 4.88441 11.4746C4.97474 11.341 5.02783 11.1782 5.02783 11.0053C5.02783 10.8902 5.00418 10.7793 4.96173 10.6788C4.89796 10.5278 4.79176 10.4002 4.65803 10.3099ZM4.50062 11.1369C4.47503 11.1974 4.43181 11.2496 4.37772 11.286C4.32346 11.3224 4.25987 11.3436 4.18895 11.3437C4.14147 11.3436 4.09745 11.3343 4.05735 11.317C3.99707 11.2918 3.94473 11.2484 3.90829 11.1945C3.87184 11.14 3.85091 11.0763 3.85054 11.0053C3.85075 10.958 3.86024 10.9142 3.8773 10.8737C3.9025 10.8134 3.94593 10.7613 3.99997 10.7247C4.05426 10.6882 4.11803 10.6673 4.18895 10.6671C4.23625 10.6671 4.28005 10.6766 4.32036 10.6937C4.38083 10.719 4.43277 10.7623 4.46943 10.8165C4.50587 10.8708 4.52699 10.9344 4.52699 11.0053C4.52699 11.0528 4.51768 11.0966 4.50062 11.1369Z\"\n      [attr.fill]=\"color\" />\n    <path\n      d=\"M3.9545 9.20728C3.8638 9.20728 3.77891 9.18907 3.701 9.15631C3.58471 9.10709 3.4843 9.02412 3.41415 8.91985C3.3467 8.81965 3.30676 8.7016 3.30367 8.57215C3.30716 8.41765 3.3564 8.28354 3.44284 8.17636C3.4876 8.12112 3.54285 8.07267 3.6099 8.03255C3.67618 7.99301 3.75428 7.96163 3.84599 7.94185L9.57261 7.00976C9.94686 6.94871 10.2444 6.66263 10.32 6.29107L11.0205 2.84745V2.84707C11.0286 2.80714 11.0325 2.76645 11.0325 2.72614C11.0325 2.58696 10.9848 2.45091 10.8952 2.3412C10.7799 2.2001 10.607 2.11812 10.4245 2.11812H2.49505L2.22486 1.1899V1.19009C2.10081 0.775128 1.76045 0.460738 1.33714 0.370035L0.367674 0.162449C0.203705 0.127175 0.0420336 0.231824 0.00678359 0.396003C-0.0283023 0.56016 0.0761586 0.721808 0.240526 0.756894L1.20964 0.964667C1.41606 1.00885 1.58195 1.16196 1.64223 1.36432L3.41375 7.44949C3.37384 7.4681 3.33526 7.48826 3.29825 7.51055C3.10714 7.62434 2.95403 7.78404 2.8513 7.97049C2.75305 8.14765 2.7009 8.34844 2.69605 8.55565H2.69506V8.58722H2.69584C2.69973 8.74908 2.73423 8.90433 2.79411 9.04601C2.89006 9.27258 3.04937 9.46428 3.25016 9.59993C3.45095 9.73577 3.69477 9.81546 3.9545 9.81525H7.17174C7.17076 9.78523 7.16729 9.75595 7.16729 9.72572C7.16729 9.54837 7.1855 9.37528 7.21827 9.20724H3.9545V9.20728ZM8.28428 3.16259C8.45502 3.11297 8.63373 3.21066 8.68335 3.3814L9.33575 5.61441C9.38537 5.78517 9.28749 5.96368 9.11675 6.01367C8.94617 6.0635 8.76749 5.96562 8.71768 5.79485L8.06546 3.56185C8.01561 3.39129 8.11351 3.2126 8.28428 3.16259ZM6.87655 3.1684C7.04713 3.11839 7.22581 3.21626 7.27562 3.38703L7.99023 5.83418C8.04024 6.00476 7.94216 6.18366 7.7716 6.23346C7.60103 6.28327 7.42234 6.18539 7.37232 6.01463L6.65771 3.56745C6.60791 3.39694 6.70578 3.21802 6.87655 3.1684ZM5.46845 3.17344C5.63919 3.12382 5.8179 3.2217 5.86752 3.39244L6.64086 6.04022C6.69085 6.21099 6.59279 6.3897 6.42224 6.43948C6.25168 6.48931 6.07297 6.39143 6.02296 6.22067L5.24961 3.5727C5.19978 3.40214 5.29768 3.22346 5.46845 3.17344ZM4.06053 3.17907C4.2313 3.12924 4.41001 3.22714 4.45982 3.3979L5.29344 6.25249C5.34346 6.42324 5.24537 6.60214 5.07481 6.65178C4.90424 6.70177 4.72555 6.60371 4.67553 6.43315L3.84172 3.57818C3.79208 3.40758 3.88977 3.22889 4.06053 3.17907Z\"\n      [attr.fill]=\"color\" />\n    <path\n      d=\"M9.88135 7.6069C8.71107 7.6069 7.7627 8.55547 7.7627 9.72575C7.7627 10.8958 8.71107 11.8444 9.88135 11.8444C11.0514 11.8444 12 10.8958 12 9.72575C12 8.55547 11.0514 7.6069 9.88135 7.6069ZM9.76121 10.7154L8.74831 9.90502L9.13266 9.42455L9.6583 9.84514L10.5439 8.70664L11.0298 9.0844L9.76121 10.7154Z\"\n      [attr.fill]=\"color\" />\n  </g>\n  <defs>\n    <clipPath id=\"clip0_330_2383\">\n      <rect width=\"12\" height=\"12\" fill=\"white\" />\n    </clipPath>\n  </defs>\n</svg>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { IconComponentBase } from '../../../../types';\n\n@Component({\n  selector: 'cardinal-chevron-icn',\n  imports: [],\n  templateUrl: './chevron-icn.component.html',\n  styleUrl: './chevron-icn.component.scss',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: true,\n})\nexport class ChevronIcnComponent implements IconComponentBase {\n  @Input({ required: true }) color: string = 'currentColor';\n}\n","<svg\n  width=\"12px\"\n  height=\"12px\"\n  viewBox=\"0 0 12 12\"\n  fill=\"none\"\n  xmlns=\"http://www.w3.org/2000/svg\">\n  <g clip-path=\"url(#clip0_153_633)\">\n    <path\n      d=\"M2.57153 1.018L2.57153 2.02247C2.57153 2.09077 2.60502 2.15505 2.65993 2.19523L7.90457 6.00014L2.65993 9.80506C2.60502 9.84523 2.57153 9.90952 2.57153 9.97782L2.57153 10.9823C2.57153 11.0693 2.67064 11.1202 2.74162 11.0693L9.25189 6.34702C9.4876 6.17559 9.4876 5.8247 9.25189 5.65461L2.74162 0.932286C2.67064 0.880054 2.57153 0.930947 2.57153 1.018Z\"\n      [attr.fill]=\"color\" />\n  </g>\n  <defs>\n    <clipPath id=\"clip0_153_633\">\n      <rect\n        width=\"12px\"\n        height=\"12px\"\n        fill=\"white\"\n        transform=\"matrix(0 -1 1 0 0 12)\" />\n    </clipPath>\n  </defs>\n</svg>\n","import { Medication } from '@icure/be-fhc-lite-api';\nimport { ReimbursementType } from '../types/reimbursement';\n\nexport const getReimbursementOptions = (\n  t: (key: string) => string\n): { value: ReimbursementType; label: string }[] => [\n  {\n    value: null,\n    label: t('reimbursementHelper.practitionerSelectionOptions.none'),\n  },\n  {\n    value: Medication.InstructionsForReimbursementEnum.PAYINGTHIRDPARTY,\n    label: t(\n      'reimbursementHelper.practitionerSelectionOptions.PAYINGTHIRDPARTY'\n    ),\n  },\n  {\n    value: Medication.InstructionsForReimbursementEnum.FIRSTDOSE,\n    label: t('reimbursementHelper.practitionerSelectionOptions.FIRSTDOSE'),\n  },\n  {\n    value: Medication.InstructionsForReimbursementEnum.SECONDDOSE,\n    label: t('reimbursementHelper.practitionerSelectionOptions.SECONDDOSE'),\n  },\n  {\n    value: Medication.InstructionsForReimbursementEnum.THIRDDOSE,\n    label: t('reimbursementHelper.practitionerSelectionOptions.THIRDDOSE'),\n  },\n  {\n    value: Medication.InstructionsForReimbursementEnum.CHRONICKINDEYDISEASE,\n    label: t(\n      'reimbursementHelper.practitionerSelectionOptions.CHRONICKINDEYDISEASE'\n    ),\n  },\n  {\n    value: Medication.InstructionsForReimbursementEnum.DIABETESTREATMENT,\n    label: t(\n      'reimbursementHelper.practitionerSelectionOptions.DIABETESTREATMENT'\n    ),\n  },\n  {\n    value: Medication.InstructionsForReimbursementEnum.DIABETESCONVENTION,\n    label: t(\n      'reimbursementHelper.practitionerSelectionOptions.DIABETESCONVENTION'\n    ),\n  },\n  {\n    value: Medication.InstructionsForReimbursementEnum.NOTREIMBURSABLE,\n    label: t(\n      'reimbursementHelper.practitionerSelectionOptions.NOTREIMBURSABLE'\n    ),\n  },\n  {\n    value: Medication.InstructionsForReimbursementEnum.EXPLAINMEDICATION,\n    label: t(\n      'reimbursementHelper.practitionerSelectionOptions.EXPLAINMEDICATION'\n    ),\n  },\n  {\n    value: Medication.InstructionsForReimbursementEnum.DIABETESSTARTPATH,\n    label: t(\n      'reimbursementHelper.practitionerSelectionOptions.DIABETESSTARTPATH'\n    ),\n  },\n];\n\nexport function getCategoryLabelForReimbursement(\n  code: string | undefined,\n  translate: (key: string) => string\n): string {\n  if (!code) return '';\n  return translate(`reimbursementHelper.categoryOptions.${code}`) || code;\n}\n","export const homeTranslations = {\n  fr: {\n    samVersionLabel: 'Version Sam :',\n  },\n  en: {\n    samVersionLabel: 'Sam version:',\n  },\n  nl: {\n    samVersionLabel: 'Sam-versie:',\n  },\n  de: {\n    samVersionLabel: 'Sam-version:',\n  },\n};\n","export const prescriptionTranslations = {\n  fr: {\n    createTitle: 'Créer la prescription',\n    modifyTitle: 'Modifier la prescription',\n    pdf: {\n      title: 'PREUVE DE PRESCRIPTION ELECTRONIQUE',\n      instructions:\n        'Veuillez présenter ce document à votre pharmacien pour scanner le code-barres et vous délivrer les médicaments prescrits.',\n      options: {\n        title:\n          'De quelles options disposez-vous pour vous rendre à la pharmacie si vous avez perdu ce document ?',\n        option1:\n          'Via Masanté.be - MyHealthViewer - App MesMédicaments ou toute autre App, vous pouvez montrer votre prescription au pharmacien, qui lira le code-barres.',\n        option2:\n          'Vous pouvez également aller chercher les produits prescrits avec votre eID (ou votre numéro de registre national si votre eID a été lue par le pharmacien qui vous délivre les produits dans les 15 mois précédents).',\n      },\n      prescriber: 'Prescripteur',\n      patient: 'Bénéficiaire',\n      electronicContent: 'Contenu de la prescription électronique:',\n      product: 'Produit:',\n      dosage: 'Posologie:',\n      date: 'Date:',\n      validUntil: \"Date de fin pour l'exécution:\",\n    },\n    list: {\n      sentTitle: 'Ordonnances envoyées:',\n      pendingTitle: 'Ordonnances en attente:',\n      print: 'Imprimer',\n      send: 'Envoyer',\n      sendAndPrint: 'Envoyer et imprimer',\n    },\n    form: {\n      medicationTitle: 'Nom du groupe DCI',\n      dosage: 'Posologie',\n      duration: 'Durée (nombre d’unités)',\n      durationTimeUnit: 'Unité de temps',\n      treatmentStartDate: 'Date début du traitement',\n      executableUntil: 'Exécutable jusqu`au',\n      prescriptionsNumber: 'Nombre de prescriptions',\n      periodicityTimeUnit: 'Périodicité',\n      periodicityDaysNumber: 'Nombre de jours',\n      substitutionAllowed: 'Substitution autorisée',\n      substitutionYes: 'Oui',\n      substitutionNo: 'Non',\n      toggleExtraFields: 'Afficher plus',\n      patientInstructions: 'Instructions pour le patient',\n      reimbursementInstructions: 'Instructions remboursement',\n      prescriberVisibility: 'Visibilité prescripteur',\n      pharmacistVisibility: 'Visibilité officine',\n      cancel: 'Annuler',\n      submit: 'Soumettre',\n      fieldRequired: 'Ce champ est requis',\n      fieldInvalid: 'Champ invalide',\n      instructionLabelNone: 'Aucun',\n    },\n  },\n  en: {\n    createTitle: 'Create prescription',\n    modifyTitle: 'Modify prescription',\n    pdf: {\n      title: 'PROOF OF ELECTRONIC PRESCRIPTION',\n      instructions:\n        'Please present this document to your pharmacist to scan the barcode and dispense the prescribed medication.',\n      options: {\n        title: 'What are your options if you lost this document?',\n        option1:\n          'Via Masanté.be - MyHealthViewer - MyMeds App or any other app, you can show your prescription to the pharmacist who will scan the barcode.',\n        option2:\n          'You can also collect the prescribed products with your eID (or your national register number if your eID was read by the pharmacist who dispenses the products within the last 15 months).',\n      },\n      prescriber: 'Prescriber',\n      patient: 'Beneficiary',\n      electronicContent: 'Electronic prescription content:',\n      product: 'Product:',\n      dosage: 'Dosage:',\n      date: 'Date:',\n      validUntil: 'Valid until:',\n    },\n    list: {\n      sentTitle: 'Sent prescriptions:',\n      pendingTitle: 'Pending prescriptions:',\n      print: 'Print',\n      send: 'Send',\n      sendAndPrint: 'Send and print',\n    },\n    form: {\n      medicationTitle: 'DCI group name',\n      dosage: 'Dosage',\n      duration: 'Duration (number of units)',\n      durationTimeUnit: 'Time unit',\n      treatmentStartDate: 'Start date of treatment',\n      executableUntil: 'Executable until',\n      prescriptionsNumber: 'Number of prescriptions',\n      periodicityTimeUnit: 'Periodicity',\n      periodicityDaysNumber: 'Number of days',\n      substitutionAllowed: 'Substitution allowed',\n      substitutionYes: 'Yes',\n      substitutionNo: 'No',\n      toggleExtraFields: 'Show more',\n      patientInstructions: 'Instructions for the patient',\n      reimbursementInstructions: 'Reimbursement instructions',\n      prescriberVisibility: 'Prescriber visibility',\n      pharmacistVisibility: 'Pharmacist visibility',\n      cancel: 'Cancel',\n      submit: 'Submit',\n      fieldRequired: 'This field is required',\n      fieldInvalid: 'Invalid field',\n      instructionLabelNone: 'None',\n    },\n  },\n  nl: {\n    createTitle: 'Voorschrift aanmaken',\n    modifyTitle: 'Voorschrift bewerken',\n    pdf: {\n      title: 'BEWIJS VAN ELEKTRONISCH VOORSCHRIFT',\n      instructions:\n        'Gelieve dit document aan uw apotheker te tonen zodat hij/zij de barcode kan scannen en de voorgeschreven geneesmiddelen kan afleveren.',\n      options: {\n        title:\n          'Welke opties hebt u om naar de apotheek te gaan als u dit document bent verloren?',\n        option1:\n          'Via Masanté.be - MyHealthViewer - MijnGeneesmiddelen-app of een andere app, kunt u uw voorschrift tonen aan de apotheker, die de barcode zal scannen.',\n        option2:\n          'U kunt de voorgeschreven producten ook afhalen met uw eID (of uw rijksregisternummer als uw eID werd uitgelezen door de apotheker die de producten aflevert binnen de laatste 15 maanden).',\n      },\n      prescriber: 'Voorschrijver',\n      patient: 'Begunstigde',\n      electronicContent: 'Inhoud van het elektronisch voorschrift:',\n      product: 'Product:',\n      dosage: 'Dosering:',\n      date: 'Datum:',\n      validUntil: 'Uitvoerbaar tot:',\n    },\n    list: {\n      sentTitle: 'Verzonden voorschriften:',\n      pendingTitle: 'Voorschriften in afwachting:',\n      print: 'Afdrukken',\n      send: 'Verzenden',\n      sendAndPrint: 'Verzenden en afdrukken',\n    },\n    form: {\n      medicationTitle: 'Naam van DCI-groep',\n      dosage: 'Dosering',\n      duration: 'Duur (aantal eenheden)',\n      durationTimeUnit: 'Tijdseenheid',\n      treatmentStartDate: 'Startdatum van behandeling',\n      executableUntil: 'Uitvoerbaar tot',\n      prescriptionsNumber: 'Aantal voorschriften',\n      periodicityTimeUnit: 'Periodiciteit',\n      periodicityDaysNumber: 'Aantal dagen',\n      substitutionAllowed: 'Vervanging toegestaan',\n      substitutionYes: 'Ja',\n      substitutionNo: 'Nee',\n      toggleExtraFields: 'Meer weergeven',\n      patientInstructions: 'Instructies voor de patiënt',\n      reimbursementInstructions: 'Instructies voor terugbetaling',\n      prescriberVisibility: 'Zichtbaarheid voor de voorschrijver',\n      pharmacistVisibility: 'Zichtbaarheid voor de apotheker',\n      cancel: 'Annuleren',\n      submit: 'Indienen',\n      fieldRequired: 'Dit veld is verplicht',\n      fieldInvalid: 'Ongeldig veld',\n      instructionLabelNone: 'Geen',\n    },\n  },\n  de: {\n    createTitle: 'Rezept erstellen',\n    modifyTitle: 'Rezept bearbeiten',\n    pdf: {\n      title: 'NACHWEIS DES ELEKTRONISCHEN REZEPTS',\n      instructions:\n        'Bitte legen Sie dieses Dokument Ihrem Apotheker vor, damit er den Barcode scannen und die verschriebenen Medikamente abgeben kann.',\n      options: {\n        title:\n          'Welche Möglichkeiten haben Sie, wenn Sie dieses Dokument verloren haben?',\n        option1:\n          'Über Masanté.be – MyHealthViewer – MeineMedikamente-App oder eine andere App können Sie Ihr Rezept dem Apotheker zeigen, der den Barcode scannt.',\n        option2:\n          'Sie können die verschriebenen Produkte auch mit Ihrem eID (oder Ihrer nationalen Registernummer, falls Ihre eID vom Apotheker, der Ihnen in den letzten 15 Monaten Produkte ausgehändigt hat, gelesen wurde) abholen.',\n      },\n      prescriber: 'Verschreiber',\n      patient: 'Empfänger',\n      electronicContent: 'Inhalt des elektronischen Rezepts:',\n      product: 'Produkt:',\n      dosage: 'Dosierung:',\n      date: 'Datum:',\n      validUntil: 'Gültig bis:',\n    },\n    list: {\n      sentTitle: 'Versendete Rezepte:',\n      pendingTitle: 'Ausstehende Rezepte:',\n      print: 'Drucken',\n      send: 'Senden',\n      sendAndPrint: 'Senden und drucken',\n    },\n    form: {\n      medicationTitle: 'Name der DCI-Gruppe',\n      dosage: 'Dosierung',\n      duration: 'Dauer (Anzahl der Einheiten)',\n      durationTimeUnit: 'Zeiteinheit',\n      treatmentStartDate: 'Behandlungsbeginn',\n      executableUntil: 'Ausführbar bis',\n      prescriptionsNumber: 'Anzahl der Rezepte',\n      periodicityTimeUnit: 'Periodizität',\n      periodicityDaysNumber: 'Anzahl der Tage',\n      substitutionAllowed: 'Substitution erlaubt',\n      substitutionYes: 'Ja',\n      substitutionNo: 'Nein',\n      toggleExtraFields: 'Mehr anzeigen',\n      patientInstructions: 'Anweisungen für den Patienten',\n      reimbursementInstructions: 'Anweisungen zur Erstattung',\n      prescriberVisibility: 'Sichtbarkeit für den Verschreiber',\n      pharmacistVisibility: 'Sichtbarkeit für den Apotheker',\n      cancel: 'Abbrechen',\n      submit: 'Absenden',\n      fieldRequired: 'Dieses Feld ist erforderlich',\n      fieldInvalid: 'Ungültiges Feld',\n      instructionLabelNone: 'Keine',\n    },\n  },\n};\n","export const medicationTranslations = {\n  fr: {\n    drugType: {\n      medication: 'Médicament',\n      molecule: 'Molécule',\n      homologation: 'Homologation',\n    },\n    drugInfographic: {\n      blackTriangle: 'Pharmacovigilance renforcée (Triangle noir)',\n      rma: 'Activités additionnelles de minimisation des risques ou additional RMA (Risk Minimisation Activities) (Source: AFMPS)',\n      genericPrescriptionRequired: 'Ordonnance générique requise',\n    },\n    drugSpecialRegulation: {\n      noNarcoticRegulation:\n        'Aucun stupéfiant, médicament soumis à réglementation particulière',\n      narcoticRegulation:\n        'Stupéfiant, médicament soumis à réglementation particulière',\n      noSpecialRegulation: 'Aucune réglementation particulière',\n    },\n    supply: {\n      issueTitle: \"Problème d'approvisionnement temporaire :\",\n      startDate: 'Disponibilité limitée depuis :',\n      expectedEndDate: 'Date de fin présumée :',\n      reason: 'Raison :',\n      impact: 'Impact :',\n      prescriberNote: 'Déclaration du prescripteur :',\n      downloadPdf: 'Télécharger le document en .pdf',\n      extraInfo: 'Informations complémentaires :',\n    },\n    commercialization: {\n      end: 'Fin de commercialisation :',\n      limitedAvailabilityFrom: 'Disponibilité limitée à partir de :',\n      unavailableFrom: 'Indisponible à partir de :',\n      endReason: 'Raison :',\n      endImpact: 'Impact :',\n      endAdditionalInformation: 'Informations complémentaires :',\n      start: 'Début de commercialisation :',\n      startAvailableFrom: 'Disponible depuis :',\n    },\n    reimbursement: {\n      title: 'Remboursement :',\n      category: 'Catégorie de remboursement :',\n      categoryLabel: 'Spécification de la catégorie de remboursement :',\n      copay: 'Ticket modérateur type',\n      copayPreferential: ' Préférentiel :',\n      copayActive: ' Actif :',\n      temporary: 'Remboursement temporaire (art. 111) :',\n      chapter: 'Chapitre :',\n      noneTitle: 'Conditions de prescription',\n      notApplicable: 'Non applicable',\n      non: 'Non',\n    },\n    delivery: {\n      title: 'Conditions de livraison :',\n      code: 'Code de livraison :',\n      modus: 'Mode de livraison :',\n      specification: 'Spécification de livraison :',\n      notApplicable: 'Non applicable',\n    },\n    prescription: {\n      title: 'Conditions de prescription :',\n      code: 'Code de prescription :',\n      specification: 'Spécification de prescription :',\n      free: 'Libre de prescription',\n    },\n    vmp: {\n      label: 'VMP :',\n      groupLabel: 'Groupe VMP :',\n    },\n    links: {\n      cbip: 'Répertoire commenté des médicaments (CBIP)',\n      leaflet: 'Notice pour le patient',\n      rma: 'Activités de réduction des risques (RMA)',\n      spc: 'Résumé des caractéristiques du produit (RCP)',\n      dhpc: 'Communication directe aux professionnels de santé (DHPC)',\n    },\n    ui: {\n      price: 'Prix :',\n    },\n    search: {\n      label: 'Trouver un médicament',\n      errorMessage: ' Entrez au moins 3 lettres du nom du médicament',\n    },\n  },\n  en: {\n    drugType: {\n      medication: 'Medication',\n      molecule: 'Molecule',\n      homologation: 'Homologation',\n    },\n    drugInfographic: {\n      blackTriangle: 'Enhanced pharmacovigilance (Black triangle)',\n      rma: 'Additional risk minimisation activities or additional RMA (Risk Minimisation Activities) (Source: FAMHP)',\n      genericPrescriptionRequired: 'Generic prescription required',\n    },\n    drugSpecialRegulation: {\n      noNarcoticRegulation: 'No narcotic, specially regulated drug',\n      narcoticRegulation: 'Narcotic, specially regulated drug',\n      noSpecialRegulation: 'No special regulation',\n    },\n    supply: {\n      issueTitle: 'Temporary supply problem:',\n      startDate: 'Limited availability since:',\n      expectedEndDate: 'Presumed end date:',\n      reason: 'Reason:',\n      impact: 'Impact:',\n      prescriberNote: 'Prescriber declaration:',\n      downloadPdf: 'Download the document (.pdf)',\n      extraInfo: 'Additional information:',\n    },\n    commercialization: {\n      end: 'End of commercialisation:',\n      limitedAvailabilityFrom: 'Limited availability from:',\n      unavailableFrom: 'Unavailable from:',\n      endReason: 'Reason:',\n      endImpact: 'Impact:',\n      endAdditionalInformation: 'Additional information:',\n      start: 'Start of commercialisation:',\n      startAvailableFrom: 'Available from:',\n    },\n    reimbursement: {\n      title: 'Reimbursement:',\n      category: 'Reimbursement category:',\n      categoryLabel: 'Reimbursement category specification:',\n      copay: 'Co-payment type',\n      copayPreferential: 'Preferential:',\n      copayActive: 'Active:',\n      temporary: 'Temporary reimbursement (art. 111):',\n      chapter: 'Chapter:',\n      noneTitle: 'Prescription conditions',\n      notApplicable: 'Not applicable',\n      non: 'No',\n    },\n    delivery: {\n      title: 'Delivery conditions:',\n      code: 'Delivery code:',\n      modus: 'Delivery method:',\n      specification: 'Delivery specification:',\n      notApplicable: 'Not applicable',\n    },\n    prescription: {\n      title: 'Prescription conditions:',\n      code: 'Prescription code:',\n      specification: 'Prescription specification:',\n      free: 'Free of prescription',\n    },\n    vmp: {\n      label: 'VMP:',\n      groupLabel: 'VMP-group:',\n    },\n    links: {\n      cbip: 'Commented Medicines Directory (CBIP)',\n      leaflet: 'Patient information leaflet',\n      rma: 'Risk Minimisation Activities (RMA)',\n      spc: 'Summary of Product Characteristics (SPC)',\n      dhpc: 'Direct Healthcare Professional Communication (DHPC)',\n    },\n    ui: {\n      price: 'Price:',\n    },\n    search: {\n      label: 'Find a medication',\n      errorMessage: 'Enter at least 3 letters of the medication name',\n    },\n  },\n  nl: {\n    drugType: {\n      medication: 'Geneesmiddel',\n      molecule: 'Molecule',\n      homologation: 'Homologatie',\n    },\n    drugInfographic: {\n      blackTriangle: 'Verhoogde waakzaamheid (Zwarte driehoek)',\n      rma: 'Aanvullende risicobeperkende maatregelen (RMA) (Bron: FAGG)',\n      genericPrescriptionRequired: 'Generiek voorschrift vereist',\n    },\n    drugSpecialRegulation: {\n      noNarcoticRegulation:\n        'Geen verdovend middel, geneesmiddel onderworpen aan specifieke regelgeving',\n      narcoticRegulation:\n        'Verdovend middel, geneesmiddel onderworpen aan specifieke regelgeving',\n      noSpecialRegulation: 'Geen specifieke regelgeving',\n    },\n    supply: {\n      issueTitle: 'Tijdelijk bevoorradingsprobleem:',\n      startDate: 'Beperkte beschikbaarheid sinds:',\n      expectedEndDate: 'Verwachte einddatum:',\n      reason: 'Reden:',\n      impact: 'Impact:',\n      prescriberNote: 'Verklaring van de voorschrijver:',\n      downloadPdf: 'Download het document (.pdf)',\n      extraInfo: 'Aanvullende informatie:',\n    },\n    commercialization: {\n      end: 'Einde van commercialisering:',\n      limitedAvailabilityFrom: 'Beperkte beschikbaarheid vanaf:',\n      unavailableFrom: 'Niet beschikbaar vanaf:',\n      endReason: 'Reden:',\n      endImpact: 'Impact:',\n      endAdditionalInformation: 'Aanvullende informatie:',\n      start: 'Start van commercialisering:',\n      startAvailableFrom: 'Beschikbaar sinds:',\n    },\n    reimbursement: {\n      title: 'Terugbetaling:',\n      category: 'Terugbetalingscategorie:',\n      categoryLabel: 'Specificatie van de terugbetalingscategorie:',\n      copay: 'Soort remgeld',\n      copayPreferential: 'Voorkeurtarief:',\n      copayActive: 'Actief:',\n      temporary: 'Tijdelijke terugbetaling (art. 111):',\n      chapter: 'Hoofdstuk:',\n      noneTitle: 'Voorschrijfvoorwaarden',\n      notApplicable: 'Niet van toepassing',\n      non: 'Nee',\n    },\n    delivery: {\n      title: 'Aflevervoorwaarden:',\n      code: 'Aflevercode:',\n      modus: 'Afleverwijze:',\n      specification: 'Specificatie van aflevering:',\n      notApplicable: 'Niet van toepassing',\n    },\n    prescription: {\n      title: 'Voorschrijfvoorwaarden:',\n      code: 'Voorschrijfcode:',\n      specification: 'Specificatie van voorschrift:',\n      free: 'Vrij voorschrijfbaar',\n    },\n    vmp: {\n      label: 'VMP:',\n      groupLabel: 'VMP-groep:',\n    },\n    links: {\n      cbip: 'Gecommentarieerde geneesmiddelenrepertorium (CBIP)',\n      leaflet: 'Bijsluiter voor de patiënt',\n      rma: 'Maatregelen voor risicobeperking (RMA)',\n      spc: 'Samenvatting van de productkenmerken (SKP)',\n      dhpc: 'Rechtstreekse communicatie naar zorgverleners (DHPC)',\n    },\n    ui: {\n      price: 'Prijs:',\n    },\n    search: {\n      label: 'Zoek een geneesmiddel',\n      errorMessage: 'Voer minstens 3 letters van de naam in',\n    },\n  },\n  de: {\n    drugType: {\n      medication: 'Arzneimittel',\n      molecule: 'Molekül',\n      homologation: 'Zulassung',\n    },\n    drugInfographic: {\n      blackTriangle: 'Verstärkte Pharmakovigilanz (Schwarzes Dreieck)',\n      rma: 'Zusätzliche Maßnahmen zur Risikominimierung (RMA) (Quelle: BfArM)',\n      genericPrescriptionRequired: 'Generisches Rezept erforderlich',\n    },\n    drugSpecialRegulation: {\n      noNarcoticRegulation:\n        'Kein Betäubungsmittel, Arzneimittel mit besonderer Regelung',\n      narcoticRegulation:\n        'Betäubungsmittel, Arzneimittel mit besonderer Regelung',\n      noSpecialRegulation: 'Keine besondere Regelung',\n    },\n    supply: {\n      issueTitle: 'Vorübergehendes Lieferproblem :',\n      startDate: 'Eingeschränkte Verfügbarkeit seit :',\n      expectedEndDate: 'Voraussichtliches Enddatum :',\n      reason: 'Grund :',\n      impact: 'Auswirkung :',\n      prescriberNote: 'Erklärung des Verschreibers :',\n      downloadPdf: 'Dokument als .pdf herunterladen',\n      extraInfo: 'Zusätzliche Informationen :',\n    },\n    commercialization: {\n      end: 'Ende der Vermarktung :',\n      limitedAvailabilityFrom: 'Eingeschränkte Verfügbarkeit ab :',\n      unavailableFrom: 'Nicht verfügbar ab :',\n      endReason: 'Grund :',\n      endImpact: 'Auswirkung :',\n      endAdditionalInformation: 'Zusätzliche Informationen :',\n      start: 'Beginn der Vermarktung :',\n      startAvailableFrom: 'Verfügbar seit :',\n    },\n    reimbursement: {\n      title: 'Erstattung :',\n      category: 'Erstattungskategorie :',\n      categoryLabel: 'Spezifikation der Erstattungskategorie :',\n      copay: 'Zuzahlungstyp',\n      copayPreferential: ' Bevorzugt :',\n      copayActive: ' Aktiv :',\n      temporary: 'Vorübergehende Erstattung (Art. 111) :',\n      chapter: 'Kapitel :',\n      noneTitle: 'Verordnungsbedingungen',\n      notApplicable: 'Nicht zutreffend',\n      non: 'Nein',\n    },\n    delivery: {\n      title: 'Lieferbedingungen :',\n      code: 'Liefercode :',\n      modus: 'Liefermethode :',\n      specification: 'Lieferdetails :',\n      notApplicable: 'Nicht zutreffend',\n    },\n    prescription: {\n      title: 'Verordnungsbedingungen :',\n      code: 'Verordnungscode :',\n      specification: 'Verordnungsdetails :',\n      free: 'Frei verschreibbar',\n    },\n    vmp: {\n      label: 'VMP :',\n      groupLabel: 'VMP-Gruppe :',\n    },\n    links: {\n      cbip: 'Kommentiertes Arzneimittelverzeichnis (CBIP)',\n      leaflet: 'Packungsbeilage für Patienten',\n      rma: 'Maßnahmen zur Risikominimierung (RMA)',\n      spc: 'Fachinformation (SPC)',\n      dhpc: 'Direkte Kommunikation an medizinisches Fachpersonal (DHPC)',\n    },\n    ui: {\n      price: 'Preis :',\n    },\n    search: {\n      label: 'Arzneimittel suchen',\n      errorMessage:\n        'Geben Sie mindestens 3 Buchstaben des Arzneimittelnamens ein',\n    },\n  },\n};\n","export const practitionerTranslations = {\n  fr: {\n    certificateUpload: {\n      titleUpload: 'Télécharger le certificat',\n      titlePassword: 'Entrez le mot de passe du certificat',\n      fileLabel: 'Certificat du praticien',\n      passwordLabel: 'Mot de passe du certificat',\n      submitButtonUpload: 'Crypter et télécharger',\n      submitButtonPassword: 'Soumettre',\n      resetButton: 'Télécharger un autre certificat',\n      errorRequired: 'Ce champ est requis',\n      errorInvalid: 'Champ invalide',\n      passwordMissingTitle: 'Mot de passe manquant',\n      passwordMissingDescription:\n        'Veuillez saisir le mot de passe associé au certificat afin de pouvoir le déchiffrer. Ce mot de passe est requis pour poursuivre la vérification.',\n    },\n    certificateFeedback: {\n      successTitle: 'Téléchargement du certificat réussi',\n      successDescription:\n        'Le certificat du praticien a été téléchargé avec succès et le mot de passe a été enregistré en toute sécurité. Vous pouvez maintenant poursuivre les prochaines étapes.',\n      failureTitle: 'Échec du téléchargement du certificat',\n      failureDescription:\n        \"Une erreur est survenue lors du téléchargement du certificat du praticien ou de l'enregistrement du mot de passe. Veuillez vous assurer que le certificat est valide et réessayez. Si le problème persiste, contactez le support.\",\n      verificationErrorTitle: 'Erreur de vérification du certificat',\n    },\n    printModal: {\n      title: 'Imprimer la prescription',\n      close: 'Fermer',\n      print: 'Imprimer',\n    },\n  },\n  en: {\n    certificateUpload: {\n      titleUpload: 'Upload certificate',\n      titlePassword: 'Enter certificate password',\n      fileLabel: 'Practitioner certificate',\n      passwordLabel: 'Certificate password',\n      submitButtonUpload: 'Encrypt and upload',\n      submitButtonPassword: 'Submit',\n      resetButton: 'Upload another certificate',\n      errorRequired: 'This field is required',\n      errorInvalid: 'Invalid field',\n      passwordMissingTitle: 'Missing password',\n      passwordMissingDescription:\n        'Please enter the password associated with the certificate to decrypt it. This password is required to continue verification.',\n    },\n    certificateFeedback: {\n      successTitle: 'Certificate upload successful',\n      successDescription:\n        'The certificate’s certificate was uploaded successfully and the password has been securely saved. You may proceed with the next steps.',\n      failureTitle: 'Certificate upload failed',\n      failureDescription:\n        'An error occurred while uploading the certificate or saving the password. Please ensure the certificate is valid and try again. If the problem persists, contact support.',\n      verificationErrorTitle: 'Certificate verification error',\n    },\n    printModal: {\n      title: 'Print prescription',\n      close: 'Close',\n      print: 'Print',\n    },\n  },\n  nl: {\n    certificateUpload: {\n      titleUpload: 'Certificaat uploaden',\n      titlePassword: 'Voer het certificaatwachtwoord in',\n      fileLabel: 'Certificaat van de zorgverlener',\n      passwordLabel: 'Wachtwoord van het certificaat',\n      submitButtonUpload: 'Versleutelen en uploaden',\n      submitButtonPassword: 'Verzenden',\n      resetButton: 'Ander certificaat uploaden',\n      errorRequired: 'Dit veld is verplicht',\n      errorInvalid: 'Ongeldig veld',\n      passwordMissingTitle: 'Wachtwoord ontbreekt',\n      passwordMissingDescription:\n        'Voer het wachtwoord in dat aan het certificaat is gekoppeld om het te ontsleutelen. Dit wachtwoord is vereist om de verificatie voort te zetten.',\n    },\n    certificateFeedback: {\n      successTitle: 'Certificaat succesvol geüpload',\n      successDescription:\n        'Het certificaat van de zorgverlener is succesvol geüpload en het wachtwoord is veilig opgeslagen. U kunt nu doorgaan met de volgende stappen.',\n      failureTitle: 'Uploaden van certificaat mislukt',\n      failureDescription:\n        'Er is een fout opgetreden bij het uploaden van het certificaat of het opslaan van het wachtwoord. Zorg ervoor dat het certificaat geldig is en probeer het opnieuw. Neem contact op met de ondersteuning als het probleem aanhoudt.',\n      verificationErrorTitle: 'Fout bij verificatie van certificaat',\n    },\n    printModal: {\n      title: 'Voorschrift afdrukken',\n      close: 'Sluiten',\n      print: 'Afdrukken',\n    },\n  },\n  de: {\n    certificateUpload: {\n      titleUpload: 'Zertifikat hochladen',\n      titlePassword: 'Zertifikat-Passwort eingeben',\n      fileLabel: 'Zertifikat des Arztes',\n      passwordLabel: 'Passwort des Zertifikats',\n      submitButtonUpload: 'Verschlüsseln und hochladen',\n      submitButtonPassword: 'Absenden',\n      resetButton: 'Anderes Zertifikat hochladen',\n      errorRequired: 'Dieses Feld ist erforderlich',\n      errorInvalid: 'Ungültiges Feld',\n      passwordMissingTitle: 'Passwort fehlt',\n      passwordMissingDescription:\n        'Bitte geben Sie das Passwort ein, das mit dem Zertifikat verknüpft ist, um es zu entschlüsseln. Dieses Passwort ist für die weitere Überprüfung erforderlich.',\n    },\n    certificateFeedback: {\n      successTitle: 'Zertifikat erfolgreich hochgeladen',\n      successDescription:\n        'Das Zertifikat des Arztes wurde erfolgreich hochgeladen und das Passwort wurde sicher gespeichert. Sie können nun mit den nächsten Schritten fortfahren.',\n      failureTitle: 'Zertifikat-Upload fehlgeschlagen',\n      failureDescription:\n        'Beim Hochladen des Zertifikats oder beim Speichern des Passworts ist ein Fehler aufgetreten. Bitte stellen Sie sicher, dass das Zertifikat gültig ist, und versuchen Sie es erneut. Wenn das Problem weiterhin besteht, wenden Sie sich an den Support.',\n      verificationErrorTitle: 'Fehler bei der Zertifikatsprüfung',\n    },\n    printModal: {\n      title: 'Rezept drucken',\n      close: 'Schließen',\n      print: 'Drucken',\n    },\n  },\n};\n","export const prescriptionVisibilityTranslations = {\n  fr: {\n    practitionerVisibility: {\n      open: 'Visible pour tous les prescripteurs',\n      locked: 'Visible uniquement pour moi-même',\n      gmd_prescriber: 'Visible uniquement pour le titulaire du DMG',\n    },\n    pharmacistVisibility: {\n      null: 'Le médicament est visible par tous les pharmaciens',\n      locked: 'Le médicament n`est pas visible par tous les pharmaciens',\n    },\n  },\n  en: {\n    practitionerVisibility: {\n      open: 'Visible to all prescribers',\n      locked: 'Visible only to myself',\n      gmd_prescriber: 'Visible only to the GMD holder',\n    },\n    pharmacistVisibility: {\n      null: 'The medication is visible to all pharmacists',\n      locked: 'The medication is not visible to all pharmacists',\n    },\n  },\n  nl: {\n    practitionerVisibility: {\n      open: 'Zichtbaar voor alle voorschrijvers',\n      locked: 'Alleen zichtbaar voor mezelf',\n      gmd_prescriber: 'Alleen zichtbaar voor de GMD-houder',\n    },\n    pharmacistVisibility: {\n      null: 'Het geneesmiddel is zichtbaar voor alle apothekers',\n      locked: 'Het geneesmiddel is niet zichtbaar voor alle apothekers',\n    },\n  },\n  de: {\n    practitionerVisibility: {\n      open: 'Sichtbar für alle verschreiber',\n      locked: 'Nur für mich sichtbar',\n      gmd_prescriber: 'Nur für den GMD-inhaber sichtbar',\n    },\n    pharmacistVisibility: {\n      null: 'Das medikament ist für alle apotheker sichtbar',\n      locked: 'Das medikament ist nicht für alle apotheker sichtbar',\n    },\n  },\n};\n","export const reimbursementTranslations = {\n  fr: {\n    practitionerSelectionOptions: {\n      none: 'Aucun',\n      PAYINGTHIRDPARTY: 'Tiers Payant',\n      FIRSTDOSE: 'Première Dose',\n      SECONDDOSE: 'Deuxième Dose',\n      THIRDDOSE: 'Troisième Dose',\n      CHRONICKINDEYDISEASE: 'Maladie Rénale Chronique',\n      DIABETESTREATMENT: 'Traitement du Diabète',\n      DIABETESCONVENTION: 'Convention Diabète',\n      NOTREIMBURSABLE: 'Non Remboursable',\n      EXPLAINMEDICATION: 'Explication du Médicament',\n      DIABETESSTARTPATH: 'Parcours Initial Diabète',\n    },\n    categoryOptions: {\n      A: 'Médicaments vitaux',\n      B: 'Médicaments thérapeutiquement importants',\n      C: 'Médicaments pour traitement symptomatique',\n      Cs: 'Ex. vaccins, médicaments antiallergiques',\n      Cx: 'Ex. contraceptifs',\n      Fa: 'Médicaments vitaux remboursés sur une base fixe',\n      Fb: 'Médicaments thérapeutiquement importants remboursés sur une base fixe',\n    },\n  },\n  en: {\n    practitionerSelectionOptions: {\n      none: 'None',\n      PAYINGTHIRDPARTY: 'Third-party payment',\n      FIRSTDOSE: 'First dose',\n      SECONDDOSE: 'Second dose',\n      THIRDDOSE: 'Third dose',\n      CHRONICKINDEYDISEASE: 'Chronic kidney disease',\n      DIABETESTREATMENT: 'Diabetes treatment',\n      DIABETESCONVENTION: 'Diabetes convention',\n      NOTREIMBURSABLE: 'Not reimbursable',\n      EXPLAINMEDICATION: 'Medication explanation',\n      DIABETESSTARTPATH: 'Diabetes initial care path',\n    },\n    categoryOptions: {\n      A: 'Life-saving medicines',\n      B: 'Therapeutically important medicines',\n      C: 'Medicines for symptomatic treatment',\n      Cs: 'e.g. vaccines, allergy medicines',\n      Cx: 'e.g. contraceptives',\n      Fa: 'Life-saving medicines with reimbursement based on a fixed amount',\n      Fb: 'Therapeutically important medicines with reimbursement based on a fixed amount',\n    },\n  },\n  nl: {\n    practitionerSelectionOptions: {\n      none: 'Geen',\n      PAYINGTHIRDPARTY: 'Derdebetaler',\n      FIRSTDOSE: 'Eerste Dosis',\n      SECONDDOSE: 'Tweede Dosis',\n      THIRDDOSE: 'Derde Dosis',\n      CHRONICKINDEYDISEASE: 'Chronische Nierziekte',\n      DIABETESTREATMENT: 'Diabetesbehandeling',\n      DIABETESCONVENTION: 'Diabetesconventie',\n      NOTREIMBURSABLE: 'Niet Terugbetaalbaar',\n      EXPLAINMEDICATION: 'Uitleg over het Geneesmiddel',\n      DIABETESSTARTPATH: 'Opstarttraject Diabetes',\n    },\n    categoryOptions: {\n      A: 'Levensreddende geneesmiddelen',\n      B: 'Therapeutisch belangrijke geneesmiddelen',\n      C: 'Geneesmiddelen voor symptomatische behandeling',\n      Cs: 'bv. vaccins, allergiemedicatie',\n      Cx: 'bv. anticonceptiva',\n      Fa: 'Levensreddende geneesmiddelen met terugbetaling op basis van een vast bedrag',\n      Fb: 'Therapeutisch belangrijke geneesmiddelen met terugbetaling op basis van een vast bedrag',\n    },\n  },\n  de: {\n    practitionerSelectionOptions: {\n      none: 'Keine',\n      PAYINGTHIRDPARTY: 'Drittzahlerregelung',\n      FIRSTDOSE: 'Erste Dosis',\n      SECONDDOSE: 'Zweite Dosis',\n      THIRDDOSE: 'Dritte Dosis',\n      CHRONICKINDEYDISEASE: 'Chronische Nierenerkrankung',\n      DIABETESTREATMENT: 'Diabetesbehandlung',\n      DIABETESCONVENTION: 'Diabetesvereinbarung',\n      NOTREIMBURSABLE: 'Nicht Erstattungsfähig',\n      EXPLAINMEDICATION: 'Erläuterung zum Medikament',\n      DIABETESSTARTPATH: 'Einstiegspfad Diabetes',\n    },\n    categoryOptions: {\n      A: 'Lebensrettende Medikamente',\n      B: 'Therapeutisch wichtige Medikamente',\n      C: 'Medikamente zur symptomatischen Behandlung',\n      Cs: 'z. B. Impfstoffe, Allergiemedikamente',\n      Cx: 'z. B. Verhütungsmittel',\n      Fa: 'Lebensrettende Medikamente mit Erstattung auf Basis eines Festbetrags',\n      Fb: 'Therapeutisch wichtige Medikamente mit Erstattung auf Basis eines Festbetrags',\n    },\n  },\n};\n","export const prescriptionDurationTranslations = {\n  fr: {\n    durationUnits: {\n      day: 'jour',\n      week: 'semaine',\n    },\n    periodicityUnits: {\n      none: 'aucune',\n      week: 'semaine',\n      twoWeeks: '2 semaines',\n      threeWeeks: '3 semaines',\n      numberOfDays: 'x nombre de jours',\n    },\n  },\n  en: {\n    durationUnits: {\n      day: 'day',\n      week: 'week',\n    },\n    periodicityUnits: {\n      none: 'none',\n      week: 'week',\n      twoWeeks: '2 weeks',\n      threeWeeks: '3 weeks',\n      numberOfDays: 'x number of days',\n    },\n  },\n  nl: {\n    durationUnits: {\n      day: 'dag',\n      week: 'week',\n    },\n    periodicityUnits: {\n      none: 'geen',\n      week: 'week',\n      twoWeeks: '2 weken',\n      threeWeeks: '3 weken',\n      numberOfDays: 'x aantal dagen',\n    },\n  },\n  de: {\n    durationUnits: {\n      day: 'tag',\n      week: 'woche',\n    },\n    periodicityUnits: {\n      none: 'keine',\n      week: 'woche',\n      twoWeeks: '2 wochen',\n      threeWeeks: '3 wochen',\n      numberOfDays: 'x anzahl der tage',\n    },\n  },\n};\n","export const deliveryModusTranslations = {\n  fr: {\n    specifications: {\n      Sp: 'Prescription par un médecin-spécialiste',\n      Sp1: 'Première prescription par un médecin-spécialiste, prescription de suivi par un médecin généraliste',\n      'Sp/S': 'Prescription par un médecin-spécialiste',\n      'Sp1/S':\n        'Première prescription par un médecin-spécialiste, prescription de suivi par un médecin généraliste',\n      'IMP/Sp': 'Prescription par un médecin-spécialiste',\n      'IMP/Sp1':\n        'Première prescription par un médecin-spécialiste, prescription de suivi par un médecin généraliste',\n    },\n  },\n  en: {\n    specifications: {\n      Sp: 'Prescription by specialist',\n      Sp1: 'First prescription by specialist, follow-up prescription by general certificate',\n      'Sp/S': 'Prescription by specialist',\n      'Sp1/S':\n        'First prescription by specialist, follow-up prescription by general certificate',\n      'IMP/Sp': 'Prescription by specialist',\n      'IMP/Sp1':\n        'First prescription by specialist, follow-up prescription by general certificate',\n    },\n  },\n  nl: {\n    specifications: {\n      Sp: 'Voorschrift door een geneesheer-specialist',\n      Sp1: 'Eerste voorschrift door een geneesheer-specialist, vervolgoorschrift door huisarts',\n      'Sp/S': 'Voorschrift door een geneesheer-specialist',\n      'Sp1/S':\n        'Eerste voorschrift door een geneesheer-specialist, vervolgoorschrift door huisarts',\n      'IMP/Sp': 'Voorschrift door een geneesheer-specialist',\n      'IMP/Sp1':\n        'Eerste voorschrift door een geneesheer-specialist, vervolgoorschrift door huisarts',\n    },\n  },\n  de: {\n    specifications: {\n      Sp: 'Verschreibung von einem Facharzt',\n      Sp1: 'Erste Verschreibung von einem Facharzt, Folgeverordnung vom Hausarzt',\n      'Sp/S': 'Verschreibung von einem Facharzt',\n      'Sp1/S':\n        'Erste Verschreibung von einem Facharzt, Folgeverordnung vom Hausarzt',\n      'IMP/Sp': 'Verschreibung von einem Facharzt',\n      'IMP/Sp1':\n        'Erste Verschreibung von einem Facharzt, Folgeverordnung vom Hausarzt',\n    },\n  },\n};\n","import { homeTranslations } from './home.translations';\nimport { prescriptionTranslations } from './prescription.translations';\nimport { medicationTranslations } from './medication.translations';\nimport { practitionerTranslations } from './practitioner.translations';\nimport { prescriptionVisibilityTranslations } from './utils/visibility-helpers.translations';\nimport { reimbursementTranslations } from './utils/reimbursement-helpers.translations';\nimport { prescriptionDurationTranslations } from './utils/prescription-duration-helpers.translations';\nimport { deliveryModusTranslations } from './utils/delivery-helpers.translations';\n\nexport const appTranslations = {\n  fr: {\n    home: homeTranslations.fr,\n    prescription: prescriptionTranslations.fr,\n    medication: medicationTranslations.fr,\n    practitioner: practitionerTranslations.fr,\n    prescriptionVisibilityHelper: prescriptionVisibilityTranslations.fr,\n    reimbursementHelper: reimbursementTranslations.fr,\n    prescriptionDurationHelper: prescriptionDurationTranslations.fr,\n    deliveryModusHelper: deliveryModusTranslations.fr,\n  },\n  en: {\n    home: homeTranslations.en,\n    prescription: prescriptionTranslations.en,\n    medication: medicationTranslations.en,\n    practitioner: practitionerTranslations.en,\n    prescriptionVisibilityHelper: prescriptionVisibilityTranslations.en,\n    reimbursementHelper: reimbursementTranslations.en,\n    prescriptionDurationHelper: prescriptionDurationTranslations.en,\n    deliveryModusHelper: deliveryModusTranslations.en,\n  },\n  nl: {\n    home: homeTranslations.nl,\n    prescription: prescriptionTranslations.nl,\n    medication: medicationTranslations.nl,\n    practitioner: practitionerTranslations.nl,\n    prescriptionVisibilityHelper: prescriptionVisibilityTranslations.nl,\n    reimbursementHelper: reimbursementTranslations.nl,\n    prescriptionDurationHelper: prescriptionDurationTranslations.nl,\n    deliveryModusHelper: deliveryModusTranslations.nl,\n  },\n  de: {\n    home: homeTranslations.de,\n    prescription: prescriptionTranslations.de,\n    medication: medicationTranslations.de,\n    practitioner: practitionerTranslations.de,\n    prescriptionVisibilityHelper: prescriptionVisibilityTranslations.de,\n    reimbursementHelper: reimbursementTranslations.de,\n    prescriptionDurationHelper: prescriptionDurationTranslations.de,\n    deliveryModusHelper: deliveryModusTranslations.de,\n  },\n};\n","// translation.service.ts\nimport { Injectable } from '@angular/core';\nimport { appTranslations } from '../../../internal/translations';\n\n@Injectable({ providedIn: 'root' })\nexport class TranslationService {\n  private currentLang: keyof typeof appTranslations = 'fr';\n\n  setLanguage(lang: keyof typeof appTranslations) {\n    this.currentLang = lang;\n  }\n\n  getCurrentLanguage(): keyof typeof appTranslations {\n    return this.currentLang;\n  }\n\n  translate(path: string): string {\n    const keys = path.split('.');\n    let value = appTranslations[this.currentLang] as any;\n\n    for (const key of keys) {\n      value = value?.[key];\n      if (value === undefined) return `[${path}]`;\n    }\n\n    return value;\n  }\n}\n","import {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  EventEmitter,\n  Input,\n  OnInit,\n  Output,\n} from '@angular/core';\nimport {\n  Commercialization,\n  Reimbursement,\n  SamText,\n  SupplyProblem,\n} from '@icure/cardinal-be-sam-sdk';\nimport { MedicationType } from '../../../../shared/types';\nimport { formatToDayMonthYear } from '../../../utils/date-helpers';\nimport { TooltipComponent } from '../../common/tooltip/tooltip.component';\nimport { SolidPillIcnComponent } from '../../common/icons/solid-pill-icn/solid-pill-icn.component';\nimport { MoleculeIcnComponent } from '../../common/icons/molecule-icn/molecule-icn.component';\nimport { LeafIcnComponent } from '../../common/icons/leaf-icn/leaf-icn.component';\nimport { TriangleIcnComponent } from '../../common/icons/triangle-icn/triangle-icn.component';\nimport { PillsBottleIcnComponent } from '../../common/icons/pills-bottle-icn/pills-bottle-icn.component';\nimport { NgForOf, NgIf, NgTemplateOutlet } from '@angular/common';\nimport { PrescriptionIcnComponent } from '../../common/icons/prescription-icn/prescription-icn.component';\nimport { SupplyIcnComponent } from '../../common/icons/supply-icn/supply-icn.component';\nimport { EndOfCommercialisationIcnComponent } from '../../common/icons/end-of-commercialisation-icn/end-of-commercialisation-icn.component';\nimport { StartOfCommercialisationIcnComponent } from '../../common/icons/start-of-commercialisation-icn/start-of-commercialisation-icn.component';\nimport { ChevronIcnComponent } from '../../common/icons/chevron-icn/chevron-icn.component';\nimport { TranslationService } from '../../../../shared/services/translation/translation.service';\nimport { getCategoryLabelForReimbursement } from '../../../utils/reimbursement-helpers';\n\n@Component({\n  selector: 'cardinal-medication-card',\n  standalone: true,\n  imports: [\n    TooltipComponent,\n    NgIf,\n    NgForOf,\n    ChevronIcnComponent,\n    NgTemplateOutlet,\n    SolidPillIcnComponent,\n    MoleculeIcnComponent,\n    LeafIcnComponent,\n    TriangleIcnComponent,\n    PillsBottleIcnComponent,\n    PrescriptionIcnComponent,\n    SupplyIcnComponent,\n    EndOfCommercialisationIcnComponent,\n    StartOfCommercialisationIcnComponent,\n  ],\n  templateUrl: './medication-card.component.html',\n  styleUrl: './medication-card.component.scss',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MedicationCardComponent implements OnInit {\n  @Input({ required: true }) medication!: MedicationType;\n  @Input({ required: true }) index!: number;\n  @Input() focused?: boolean = false;\n\n  @Output() addPrescription = new EventEmitter<MedicationType>();\n\n  constructor(\n    private translationService: TranslationService,\n    private cdr: ChangeDetectorRef\n  ) {}\n\n  language: keyof SamText = 'fr';\n  isExpanded: boolean = false;\n\n  t = (key: string): string => this.translationService.translate(key);\n\n  commercialization?: Commercialization;\n  supplyProblem?: SupplyProblem;\n  reimbursement?: Reimbursement;\n\n  commercializationExtraInfo?: string[];\n  commercializationEnd?: string;\n  commercializationReason?: string;\n  commercializationImpact?: string;\n\n  supplyProblemExtraInfo?: string[];\n  supplyProblemReason?: string;\n  supplyProblemImpact?: string;\n\n  reimbursementCriterion?: string;\n\n  vmpName?: string;\n  vmpGroupName?: string;\n\n  handleMedicationClick(): void {\n    this.addPrescription.emit(this.medication); // emit the card's medication\n  }\n\n  ngOnInit(): void {\n    this.language = this.translationService.getCurrentLanguage();\n\n    this.commercialization = this.medication.commercializations?.[0];\n    this.supplyProblem = this.medication.supplyProblems?.[0];\n    this.reimbursement = this.medication.reimbursements;\n\n    this.commercializationExtraInfo = this.getTranslatedText(\n      this.commercialization?.additionalInformation\n    )?.split('\\n');\n\n    this.commercializationEnd = this.getTranslatedText(\n      this.commercialization?.endOfComercialization\n    );\n\n    this.commercializationReason = this.getTranslatedText(\n      this.commercialization?.reason\n    );\n\n    this.commercializationImpact = this.getTranslatedText(\n      this.commercialization?.impact\n    );\n\n    this.supplyProblemExtraInfo = this.getTranslatedText(\n      this.supplyProblem?.additionalInformation\n    )?.split('\\n');\n\n    this.supplyProblemReason = this.getTranslatedText(\n      this.supplyProblem?.reason\n    );\n\n    this.supplyProblemImpact = this.getTranslatedText(\n      this.supplyProblem?.impact\n    );\n\n    this.reimbursementCriterion = this.getTranslatedText(\n      this.reimbursement?.reimbursementCriterion?.description\n    );\n\n    this.vmpName = this.getTranslatedText(this.medication?.vmp?.name);\n\n    this.vmpGroupName = this.getTranslatedText(\n      this.medication?.vmp?.vmpGroup?.name\n    );\n  }\n\n  toggleMedicationDetails(): void {\n    this.isExpanded = !this.isExpanded;\n    this.cdr.markForCheck();\n  }\n\n  get showLinks(): boolean {\n    const m = this.medication;\n    return !!(\n      m.crmLink ||\n      m.patientInformationLeafletLink ||\n      m.rmaProfessionalLink ||\n      m.spcLink ||\n      m.dhpcLink\n    );\n  }\n\n  getSpecialRegulation(code: number): string {\n    switch (code) {\n      case 1:\n        return this.t('medication.drugSpecialRegulation.noNarcoticRegulation');\n      case 2:\n        return this.t('medication.drugSpecialRegulation.narcoticRegulation');\n      default:\n        return this.t('medication.drugSpecialRegulation.noSpecialRegulation');\n    }\n  }\n\n  formatTimestamp(timestamp: number): string | undefined {\n    return formatToDayMonthYear(timestamp);\n  }\n\n  getCategoryLabelForReimbursement(code?: string): string {\n    return getCategoryLabelForReimbursement(code, this.t);\n  }\n\n  computeFeeAmount(fee: string): string {\n    return Math.round(+fee * 100) / 100 + '€';\n  }\n\n  getTranslatedText(\n    text?: SamText,\n    lang = this.language,\n    fallback = 'fr' as keyof SamText\n  ): string | undefined {\n    return text?.[lang] ?? text?.[fallback];\n  }\n}\n","<div\n  [class.focused]=\"focused\"\n  [class.isExpanded]=\"isExpanded\"\n  [id]=\"index\"\n  class=\"medicationRow\">\n  <div class=\"header\">\n    <div\n      class=\"header__medication\"\n      (click)=\"handleMedicationClick()\"\n      tabindex=\"0\">\n      <div class=\"header__medication__content\">\n        <div class=\"header__medication__content__heading\">\n          <div class=\"header__medication__content__heading__title\">\n            <!-- Choose the appropriate icon based on the drug type: medications,molecules, non-medicinal products -->\n            <ng-container *ngIf=\"!!medication.ampId; else checkVmpGroup\">\n              <cardinal-tooltip\n                [iconSnippet]=\"medicationIcn\"\n                content=\"{{ t('medication.drugType.medication') }}\" />\n            </ng-container>\n\n            <ng-template #checkVmpGroup>\n              <ng-container *ngIf=\"!!medication.vmpGroupId; else checkNmp\">\n                <cardinal-tooltip\n                  [iconSnippet]=\"moleculeIcn\"\n                  content=\"{{ t('medication.drugType.molecule') }}\" />\n              </ng-container>\n            </ng-template>\n\n            <ng-template #checkNmp>\n              <ng-container *ngIf=\"!!medication.nmpId\">\n                <cardinal-tooltip\n                  [iconSnippet]=\"naturalIcn\"\n                  content=\"{{ t('medication.drugType.homologation') }}\" />\n              </ng-container>\n            </ng-template>\n\n            <!-- Templates for icons -->\n            <ng-template #medicationIcn>\n              <cardinal-solid-pill-icn [color]=\"'#3D87C5'\" />\n            </ng-template>\n\n            <ng-template #moleculeIcn>\n              <cardinal-molecule-icn [color]=\"'#EFAC2F'\" />\n            </ng-template>\n\n            <ng-template #naturalIcn>\n              <cardinal-leaf-icn [color]=\"'#197437'\" />\n            </ng-template>\n\n            <h3>{{ medication.title }}</h3>\n            <div class=\"header__medication__content__heading__infographics\">\n              <div class=\"medicationInfographics\">\n                <div\n                  class=\"medicationInfographics__item\"\n                  *ngIf=\"!!medication.blackTriangle\">\n                  <ng-template #blackTriangleIcn>\n                    <cardinal-triangle-icn [color]=\"'#000000'\" />\n                  </ng-template>\n                  <cardinal-tooltip\n                    [iconSnippet]=\"blackTriangleIcn\"\n                    content=\"{{\n                      t('medication.drugInfographic.blackTriangle')\n                    }}\" />\n                </div>\n                <div\n                  class=\"medicationInfographics__item\"\n                  *ngIf=\"!!medication.rmaProfessionalLink\">\n                  <ng-template #rmaContent>\n                    <p *ngIf=\"medication?.rmakeyMessages\">\n                      {{ medication.rmakeyMessages }}\n                    </p>\n                    <a\n                      class=\"snippetLink\"\n                      [href]=\"medication.rmaProfessionalLink\"\n                      target=\"_blank\">\n                      {{ t('medication.drugInfographic.rma') }}\n                    </a>\n                  </ng-template>\n                  <ng-template #orangeTriangleIcn>\n                    <cardinal-triangle-icn [color]=\"'#FF5E00'\" />\n                  </ng-template>\n                  <cardinal-tooltip\n                    [iconSnippet]=\"orangeTriangleIcn\"\n                    [contentSnippet]=\"rmaContent\" />\n                </div>\n                <div\n                  class=\"medicationInfographics__item\"\n                  *ngIf=\"!!medication.speciallyRegulated\">\n                  <ng-template #specialRegulationsIcn>\n                    <cardinal-pills-bottle-icn [color]=\"'#000000'\" />\n                  </ng-template>\n                  <cardinal-tooltip\n                    [content]=\"\n                      getSpecialRegulation(medication.speciallyRegulated)\n                    \"\n                    [iconSnippet]=\"specialRegulationsIcn\" />\n                </div>\n                <div\n                  class=\"medicationInfographics__item\"\n                  *ngIf=\"!!medication.genericPrescriptionRequired\">\n                  <ng-template #prescriptionIcn>\n                    <cardinal-prescription-icn [color]=\"'#000000'\" />\n                  </ng-template>\n                  <cardinal-tooltip\n                    content=\"{{\n                      t(\n                        'medication.drugInfographic.genericPrescriptionRequired'\n                      )\n                    }}\"\n                    [iconSnippet]=\"prescriptionIcn\" />\n                </div>\n              </div>\n              <div class=\"medicationAvailabilityInfographics\">\n                <ng-template #supplyProblemsContent>\n                  <div class=\"supplyProblemsTooltip\" *ngIf=\"!!supplyProblem\">\n                    <p\n                      class=\"supplyProblemsTooltip__title supplyProblemsTooltip__title--orange\">\n                      {{ t('medication.supply.issueTitle') }}\n                    </p>\n\n                    <div class=\"supplyProblemsTooltip__content\">\n                      <div *ngIf=\"supplyProblem.from\">\n                        <span>\n                          {{ t('medication.supply.startDate') }}\n                        </span>\n                        <p>\n                          {{ formatTimestamp(supplyProblem.from) }}\n                        </p>\n                      </div>\n                      <div *ngIf=\"supplyProblem.expectedEndOn\">\n                        <span>\n                          {{ t('medication.supply.expectedEndDate') }}\n                        </span>\n                        <p>\n                          {{ formatTimestamp(supplyProblem.expectedEndOn) }}\n                        </p>\n                      </div>\n                      <div *ngIf=\"supplyProblemReason\">\n                        <span>{{ t('medication.supply.reason') }}</span>\n                        <p>\n                          {{ supplyProblemReason }}\n                        </p>\n                      </div>\n                      <div *ngIf=\"supplyProblemImpact\">\n                        <span>{{ t('medication.supply.impact') }}</span>\n                        <p>{{ supplyProblemImpact }}</p>\n                      </div>\n\n                      <div\n                        *ngIf=\"\n                          supplyProblem.impact?.fr ===\n                          'Importation possible par le pharmacien'\n                        \">\n                        <span>{{ t('medication.supply.prescriberNote') }}</span>\n                        <a\n                          target=\"_blank\"\n                          href=\"https://www.afmps.be/sites/default/files/content/INSP/NARC/declaration-medecin.pdf\"\n                          >{{ t('medication.supply.downloadPdf') }}</a\n                        >\n                      </div>\n\n                      <div *ngIf=\"supplyProblemExtraInfo?.length !== 0\">\n                        <span>{{ t('medication.supply.extraInfo') }}</span>\n                        <p *ngFor=\"let problem of supplyProblemExtraInfo\">\n                          {{ problem }}\n                        </p>\n                      </div>\n                    </div>\n                  </div>\n                </ng-template>\n                <div\n                  class=\"medicationAvailabilityInfographics__item medicationAvailabilityInfographics__item--orange\"\n                  *ngIf=\"!!medication.supplyProblems\">\n                  <ng-template #supplyIcn>\n                    <cardinal-supply-icn [color]=\"'#FF5E00'\" />\n                  </ng-template>\n                  <cardinal-tooltip\n                    [iconSnippet]=\"supplyIcn\"\n                    [contentSnippet]=\"supplyProblemsContent\" />\n                </div>\n                <ng-template #endOfCommercialisationContent>\n                  <div\n                    class=\"supplyProblemsTooltip\"\n                    *ngIf=\"!!commercialization\">\n                    <p\n                      class=\"supplyProblemsTooltip__title supplyProblemsTooltip__title--red\">\n                      {{ t('medication.commercialization.end') }}\n                    </p>\n                    <div class=\"supplyProblemsTooltip__content\">\n                      <div *ngIf=\"commercialization.from\">\n                        <span>\n                          {{\n                            t(\n                              'medication.commercialization.limitedAvailabilityFrom'\n                            )\n                          }}</span\n                        >\n                        <p>\n                          {{ formatTimestamp(commercialization.from) }}\n                        </p>\n                      </div>\n                      <div *ngIf=\"commercialization.to\">\n                        <span>{{\n                          t('medication.commercialization.unavailableFrom')\n                        }}</span>\n                        <p>\n                          {{ formatTimestamp(commercialization.to) }}\n                        </p>\n                      </div>\n\n                      <div *ngIf=\"commercializationEnd\">\n                        <span>{{ t('medication.commercialization.end') }}</span>\n                        <p>\n                          {{ commercializationEnd }}\n                        </p>\n                      </div>\n\n                      <div *ngIf=\"commercializationReason\">\n                        <span>{{\n                          t('medication.commercialization.endReason')\n                        }}</span>\n                        <p>{{ commercializationReason }}</p>\n                      </div>\n\n                      <div *ngIf=\"commercializationImpact\">\n                        <span>{{\n                          t('medication.commercialization.endImpact')\n                        }}</span>\n                        <p>{{ commercializationImpact }}</p>\n                      </div>\n\n                      <div *ngIf=\"commercializationExtraInfo?.length !== 0\">\n                        <span>{{\n                          t(\n                            'medication.commercialization.endAdditionalInformation'\n                          )\n                        }}</span>\n\n                        <p *ngFor=\"let line of commercializationExtraInfo\">\n                          {{ line }}\n                        </p>\n                      </div>\n                    </div>\n                  </div>\n                </ng-template>\n                <div\n                  class=\"medicationAvailabilityInfographics__item medicationAvailabilityInfographics__item--red\"\n                  *ngIf=\"commercialization?.endOfComercialization\">\n                  <ng-template #endOfCommercialisationIcn>\n                    <cardinal-end-of-commercialisation-icn\n                      [color]=\"'#EE1313'\" />\n                  </ng-template>\n                  <cardinal-tooltip\n                    [iconSnippet]=\"endOfCommercialisationIcn\"\n                    [contentSnippet]=\"endOfCommercialisationContent\" />\n                </div>\n                <ng-template #startOfCommercialisationContent>\n                  <div\n                    class=\"supplyProblemsTooltip\"\n                    *ngIf=\"!!commercialization\">\n                    <p\n                      class=\"supplyProblemsTooltip__title supplyProblemsTooltip__title--green\">\n                      {{ t('medication.commercialization.start') }}\n                    </p>\n                    <div class=\"supplyProblemsTooltip__content\">\n                      <div *ngIf=\"commercialization.from\">\n                        <span>{{\n                          t('medication.commercialization.startAvailableFrom')\n                        }}</span>\n                        <p>\n                          {{ formatTimestamp(commercialization.from) }}\n                        </p>\n                      </div>\n                    </div>\n                  </div>\n                </ng-template>\n                <div\n                  class=\"medicationAvailabilityInfographics__item medicationAvailabilityInfographics__item--green\"\n                  *ngIf=\"\n                    commercialization &&\n                    !commercialization?.endOfComercialization\n                  \">\n                  <ng-template #startOfCommercialisationIcn>\n                    <cardinal-start-of-commercialisation-icn\n                      [color]=\"'#09853D'\" />\n                  </ng-template>\n                  <cardinal-tooltip\n                    [iconSnippet]=\"startOfCommercialisationIcn\"\n                    [contentSnippet]=\"startOfCommercialisationContent\" />\n                </div>\n              </div>\n              <div class=\"deliveryPrescriptionConditions\">\n                <ng-template #reimbursementsIcn>\n                  <div class=\"textToIcon textToIcon--green\">\n                    <p>\n                      {{ reimbursement?.reimbursementCriterion?.category }}\n                    </p>\n                  </div>\n                </ng-template>\n                <ng-template #reimbursementsContent>\n                  <div *ngIf=\"reimbursement; else noReimbursement\">\n                    <div class=\"supplyProblemsTooltip\">\n                      <p\n                        class=\"supplyProblemsTooltip__title supplyProblemsTooltip__title--green\">\n                        {{ t('medication.reimbursement.title') }}\n                      </p>\n                      <div class=\"supplyProblemsTooltip__content\">\n                        <div\n                          *ngIf=\"\n                            reimbursement.reimbursementCriterion?.category\n                          \">\n                          <span>\n                            {{ t('medication.reimbursement.category') }}\n                          </span>\n                          <p>\n                            {{ reimbursement.reimbursementCriterion?.category }}\n                          </p>\n                        </div>\n                        <div\n                          *ngIf=\"\n                            reimbursement.reimbursementCriterion?.category\n                          \">\n                          <span>\n                            {{ t('medication.reimbursement.categoryLabel') }}\n                          </span>\n                          <p>\n                            {{\n                              getCategoryLabelForReimbursement(\n                                reimbursement.reimbursementCriterion?.category\n                              )\n                            }}\n                          </p>\n                        </div>\n\n                        <div *ngIf=\"reimbursement.copayments\">\n                          <div *ngFor=\"let el of reimbursement.copayments\">\n                            <div *ngIf=\"el.regimeType === 1\">\n                              <span>\n                                {{ t('medication.reimbursement.copay') }}\n                                <strong>\n                                  {{\n                                    t(\n                                      'medication.reimbursement.copayPreferential'\n                                    )\n                                  }}\n                                </strong>\n                              </span>\n                            </div>\n                            <div *ngIf=\"el.regimeType === 2\">\n                              <span>\n                                {{ t('medication.reimbursement.copay') }}\n                                <strong>\n                                  {{\n                                    t('medication.reimbursement.copayActive')\n                                  }}\n                                </strong>\n                              </span>\n                            </div>\n                            <div *ngIf=\"el.feeAmount\">\n                              <p class=\"feeAmount\">\n                                {{ computeFeeAmount(el.feeAmount) }}\n                              </p>\n                            </div>\n                          </div>\n                        </div>\n\n                        <div *ngIf=\"reimbursement.temporary\">\n                          <span>\n                            {{ t('medication.reimbursement.temporary') }}\n                          </span>\n                          <p class=\"textRed\">\n                            {{ reimbursement.temporary }}\n                          </p>\n                        </div>\n\n                        <div *ngIf=\"reimbursementCriterion\">\n                          <span>\n                            {{ t('medication.reimbursement.chapter') }}\n                          </span>\n                          <p>\n                            {{ reimbursementCriterion }}\n                          </p>\n                        </div>\n                      </div>\n                    </div>\n                  </div>\n\n                  <ng-template #noReimbursement>\n                    <div class=\"supplyProblemsTooltip\">\n                      <p\n                        class=\"supplyProblemsTooltip__title supplyProblemsTooltip__title--green\">\n                        {{ t('medication.reimbursement.noneTitle') }}\n                      </p>\n                      <div class=\"supplyProblemsTooltip__content\">\n                        <div>\n                          <p>\n                            {{ t('medication.reimbursement.notApplicable') }}\n                          </p>\n                        </div>\n                      </div>\n                    </div>\n                  </ng-template>\n                </ng-template>\n                <cardinal-tooltip\n                  *ngIf=\"reimbursement\"\n                  [iconSnippet]=\"reimbursementsIcn\"\n                  [contentSnippet]=\"reimbursementsContent\" />\n\n                <ng-template #deliveryConditionsIcn>\n                  <div class=\"textToIcon textToIcon--orange\">\n                    <p>{{ medication.deliveryModusCode }}</p>\n                  </div>\n                </ng-template>\n                <ng-template #deliveryConditionsContent>\n                  <div\n                    *ngIf=\"medication.deliveryModusCode; else noDeliveryModus\">\n                    <div class=\"supplyProblemsTooltip\">\n                      <p\n                        class=\"supplyProblemsTooltip__title supplyProblemsTooltip__title--orange\">\n                        {{ t('medication.delivery.title') }}\n                      </p>\n                      <div class=\"supplyProblemsTooltip__content\">\n                        <div *ngIf=\"medication.deliveryModusCode\">\n                          <span>\n                            {{ t('medication.delivery.code') }}\n                          </span>\n                          <p>{{ medication.deliveryModusCode }}</p>\n                        </div>\n\n                        <div *ngIf=\"medication.deliveryModus\">\n                          <span>{{ t('medication.delivery.modus') }}</span>\n                          <p>{{ medication.deliveryModus }}</p>\n                        </div>\n\n                        <div *ngIf=\"medication.deliveryModusSpecification\">\n                          <span>{{\n                            t('medication.delivery.specification')\n                          }}</span>\n                          <p>{{ medication.deliveryModusSpecification }}</p>\n                        </div>\n                      </div>\n                    </div>\n                  </div>\n\n                  <ng-template #noDeliveryModus>\n                    <div class=\"supplyProblemsTooltip\">\n                      <p\n                        class=\"supplyProblemsTooltip__title supplyProblemsTooltip__title--green\">\n                        {{ t('medication.delivery.title') }}\n                      </p>\n                      <div class=\"supplyProblemsTooltip__content\">\n                        <div>\n                          <p>{{ t('medication.prescription.free') }}</p>\n                        </div>\n                      </div>\n                    </div>\n                  </ng-template>\n                </ng-template>\n                <cardinal-tooltip\n                  *ngIf=\"!!medication.deliveryModusCode\"\n                  [iconSnippet]=\"deliveryConditionsIcn\"\n                  [contentSnippet]=\"deliveryConditionsContent\" />\n\n                <ng-template #prescriptionConditionsIcn>\n                  <div\n                    *ngIf=\"\n                      medication.deliveryModusSpecificationCode &&\n                      medication.deliveryModusSpecification\n                    \">\n                    <div class=\"textToIcon textToIcon--red\">\n                      <p>{{ medication.deliveryModusSpecificationCode }}</p>\n                    </div>\n                  </div>\n                </ng-template>\n                <ng-template #prescriptionConditionsContent>\n                  <div\n                    *ngIf=\"\n                      medication.deliveryModusSpecificationCode;\n                      else noDeliveryModus\n                    \">\n                    <div class=\"supplyProblemsTooltip\">\n                      <p\n                        class=\"supplyProblemsTooltip__title supplyProblemsTooltip__title--red\">\n                        {{ t('medication.prescription.title') }}\n                      </p>\n                      <div class=\"supplyProblemsTooltip__content\">\n                        <div *ngIf=\"medication.deliveryModusSpecificationCode\">\n                          <span>\n                            {{ t('medication.delivery.code') }}\n                          </span>\n                          <p>{{ medication.deliveryModusSpecificationCode }}</p>\n                        </div>\n\n                        <div *ngIf=\"medication.deliveryModusSpecification\">\n                          <span>\n                            {{ t('medication.delivery.specification') }}\n                          </span>\n                          <p>\n                            {{ medication.deliveryModusSpecification }}\n                          </p>\n                        </div>\n                      </div>\n                    </div>\n                  </div>\n\n                  <ng-template #noDeliveryModus>\n                    <div class=\"supplyProblemsTooltip\">\n                      <p\n                        class=\"supplyProblemsTooltip__title supplyProblemsTooltip__title--green\">\n                        {{ t('medication.prescription.title') }}\n                      </p>\n                      <div class=\"supplyProblemsTooltip__content\">\n                        <div>\n                          <p>{{ t('medication.delivery.notApplicable') }}</p>\n                        </div>\n                      </div>\n                    </div>\n                  </ng-template>\n                </ng-template>\n                <cardinal-tooltip\n                  *ngIf=\"!!medication.deliveryModusSpecificationCode\"\n                  [iconSnippet]=\"prescriptionConditionsIcn\"\n                  [contentSnippet]=\"prescriptionConditionsContent\" />\n              </div>\n            </div>\n          </div>\n\n          <p class=\"header__medication__content__heading__activeIngredient\">\n            {{ medication.activeIngredient }}\n          </p>\n        </div>\n\n        <div class=\"header__medication__content__description\">\n          <div\n            class=\"header__medication__content__description__item price\"\n            *ngIf=\"medication.price\">\n            <span>\n              {{ t('medication.ui.price') }}\n            </span>\n            <p>{{ medication.price }}</p>\n          </div>\n\n          <div\n            *ngIf=\"medication.price\"\n            class=\"header__medication__content__description__item price\">\n            <span>\n              {{ t('medication.reimbursement.title') }}\n            </span>\n            <div *ngIf=\"reimbursement; else noReimbursement\">\n              <div class=\"textToIcon textToIcon--green\">\n                <p>\n                  {{ reimbursement.reimbursementCriterion?.category }}\n                </p>\n              </div>\n            </div>\n            <ng-template #noReimbursement>\n              <div class=\"textToIcon textToIcon--gray\">\n                <p>\n                  {{ t('medication.reimbursement.non') }}\n                </p>\n              </div>\n            </ng-template>\n          </div>\n\n          <div class=\"header__medication__content__description__item\">\n            <span>{{ t('medication.delivery.title') }}</span>\n            <div *ngIf=\"medication.deliveryModusCode; else freeOfPrescription\">\n              <div class=\"textToIcon textToIcon--orange\">\n                <p>{{ medication.deliveryModusCode }}</p>\n              </div>\n            </div>\n            <ng-template #freeOfPrescription>\n              <div class=\"textToIcon textToIcon--green\">\n                <p>{{ t('medication.prescription.free') }}</p>\n              </div>\n            </ng-template>\n          </div>\n\n          <div class=\"header__medication__content__description__item\">\n            <span>\n              {{ t('medication.prescription.title') }}\n            </span>\n            <div\n              *ngIf=\"\n                medication.deliveryModusSpecificationCode &&\n                  medication.deliveryModusSpecification;\n                else notApplicable\n              \">\n              <div class=\"textToIcon textToIcon--red\">\n                <p>{{ medication.deliveryModusSpecificationCode }}</p>\n              </div>\n            </div>\n            <ng-template #notApplicable>\n              <div class=\"textToIcon textToIcon--green\">\n                <p>\n                  {{ t('medication.delivery.notApplicable') }}\n                </p>\n              </div>\n            </ng-template>\n          </div>\n        </div>\n      </div>\n    </div>\n    <button\n      class=\"header__arrow\"\n      [class.isExpanded]=\"isExpanded\"\n      (click)=\"toggleMedicationDetails()\">\n      <cardinal-chevron-icn color=\"#3D87C5\" />\n    </button>\n  </div>\n\n  <div *ngIf=\"isExpanded\" class=\"content\">\n    <div *ngIf=\"medication.vmp\" class=\"content__vmp\">\n      <div *ngIf=\"vmpName\" class=\"content__vmp__item\">\n        <span>\n          {{ t('medication.vmp.label') }}\n        </span>\n        <p>{{ vmpName }}</p>\n      </div>\n      <div *ngIf=\"vmpGroupName\" class=\"content__vmp__item\">\n        <span>\n          {{ t('medication.vmp.groupLabel') }}\n        </span>\n        <p>{{ vmpGroupName }}</p>\n      </div>\n    </div>\n\n    <div class=\"content__divider\" *ngIf=\"showLinks\"></div>\n\n    <div class=\"content__links\" *ngIf=\"showLinks\">\n      <a *ngIf=\"medication.crmLink\" [href]=\"medication.crmLink\" target=\"_blank\">\n        {{ t('medication.links.cbip') }}\n      </a>\n      <a\n        *ngIf=\"medication.patientInformationLeafletLink\"\n        [href]=\"medication.patientInformationLeafletLink\"\n        target=\"_blank\">\n        {{ t('medication.links.leaflet') }}\n      </a>\n      <a\n        *ngIf=\"medication.rmaProfessionalLink\"\n        [href]=\"medication.rmaProfessionalLink\"\n        target=\"_blank\">\n        {{ t('medication.links.rma') }}\n      </a>\n      <a *ngIf=\"medication.spcLink\" [href]=\"medication.spcLink\" target=\"_blank\">\n        {{ t('medication.links.spc') }}\n      </a>\n      <a\n        *ngIf=\"medication.dhpcLink\"\n        [href]=\"medication.dhpcLink\"\n        target=\"_blank\">\n        {{ t('medication.links.dhpc') }}\n      </a>\n    </div>\n\n    <div class=\"content__divider\" *ngIf=\"reimbursement\"></div>\n    <div *ngIf=\"reimbursement\">\n      <ng-container *ngTemplateOutlet=\"reimbursementsContent\"></ng-container>\n    </div>\n\n    <div class=\"content__divider\"></div>\n    <ng-container\n      *ngTemplateOutlet=\"prescriptionConditionsContent\"></ng-container>\n\n    <div class=\"content__divider\"></div>\n    <ng-container *ngTemplateOutlet=\"deliveryConditionsContent\"></ng-container>\n\n    <div *ngIf=\"medication.supplyProblems\" class=\"content__divider\"></div>\n    <div *ngIf=\"medication.supplyProblems\">\n      <ng-container *ngTemplateOutlet=\"supplyProblemsContent\"></ng-container>\n    </div>\n\n    <div\n      *ngIf=\"commercialization?.endOfComercialization\"\n      class=\"content__divider\"></div>\n    <div *ngIf=\"commercialization?.endOfComercialization\">\n      <ng-container\n        *ngTemplateOutlet=\"endOfCommercialisationContent\"></ng-container>\n    </div>\n\n    <div\n      *ngIf=\"commercialization && !commercialization.endOfComercialization\"\n      class=\"content__divider\"></div>\n    <div *ngIf=\"commercialization && !commercialization.endOfComercialization\">\n      <ng-container\n        *ngTemplateOutlet=\"startOfCommercialisationContent\"></ng-container>\n    </div>\n  </div>\n</div>\n","import { Injectable } from '@angular/core';\nimport {\n  type Amp,\n  Nmp,\n  type PaginatedListIterator,\n  type SamV2Api,\n  VmpGroup,\n  type SamVersion,\n} from '@icure/cardinal-be-sam-sdk';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class SamSdkService {\n  private sdk: SamV2Api | null = null;\n\n  setSdk(instance: SamV2Api) {\n    this.sdk = instance;\n  }\n\n  async searchMedications(\n    lang: string,\n    query: string | null\n  ): Promise<\n    [\n      PaginatedListIterator<Amp>,\n      PaginatedListIterator<VmpGroup>,\n      PaginatedListIterator<Nmp>,\n    ]\n  > {\n    if (!this.sdk) throw new Error('SDK not initialized');\n    if (!query) throw new Error('Query is not found');\n    try {\n      const res = await Promise.all([\n        this.sdk.findPaginatedAmpsByLabel(lang, query),\n        this.sdk.findPaginatedVmpGroupsByLabel(lang, query),\n        this.sdk.findPaginatedNmpsByLabel(lang, query),\n      ]);\n      console.log('search res');\n      console.log(res);\n      return res;\n    } catch (error) {\n      console.error('Error searching medications:', error);\n      throw error;\n    }\n  }\n\n  async getSamVersion(): Promise<SamVersion | undefined> {\n    if (!this.sdk) throw new Error('SDK not initialized');\n    try {\n      return await this.sdk.getSamVersion();\n    } catch (error) {\n      console.error('Error getting SAM version:', error);\n      return undefined;\n    }\n  }\n}\n","export function capitalize(s?: string): string | undefined {\n  if (!s) return s;\n  return s.charAt(0).toUpperCase() + s.slice(1).toLowerCase();\n}\n","import { Injectable } from '@angular/core';\n\nexport interface NamedItem {\n  title: string;\n}\n\nexport type FetchMissingCallback = (\n  fromName: string,\n  toName?: string\n) => Promise<NamedItem[]>;\n\n/**\n * Service to merge multiple sorted, partially loaded arrays of NamedItems.\n */\n@Injectable({\n  providedIn: 'root',\n})\nexport class MergeLazySortedNamedItemsService {\n  async mergeLazySortedNamedItems(\n    limit: number,\n    arrays: NamedItem[][],\n    fetchMissingCallbacks: FetchMissingCallback[]\n  ): Promise<[NamedItem[], number[]]> {\n    if (arrays.length !== fetchMissingCallbacks.length) {\n      throw new Error('Each array must have a corresponding fetch callback.');\n    }\n\n    const result: NamedItem[] = [];\n    const pointers = arrays.map(() => 0);\n    let lastPushedName = '';\n\n    async function drainArrayUpTo(\n      k: number,\n      limitName: string | null,\n      limit: number\n    ): Promise<void> {\n      const arr = arrays[k];\n      let p = pointers[k];\n      const fetchMissing = fetchMissingCallbacks[k];\n\n      while (result.length < limit) {\n        if (p < arr.length) {\n          const itemName = arr[p].title.toLowerCase();\n          if (limitName === null || itemName < limitName) {\n            result.push(arr[p]);\n            lastPushedName = itemName;\n            p++;\n          } else {\n            break;\n          }\n        } else {\n          const upper = limitName === null ? undefined : limitName;\n          const newItems = await fetchMissing(lastPushedName, upper);\n\n          if (newItems.length === 0) break;\n          arr.splice(p, 0, ...newItems);\n        }\n      }\n\n      pointers[k] = p;\n    }\n\n    function indexOfSmallestFront(): number | null {\n      let smallestIndex: number | null = null;\n      let smallestName = '';\n\n      for (let k = 0; k < arrays.length; k++) {\n        const p = pointers[k];\n        if (p < arrays[k].length) {\n          const candidateName = arrays[k][p].title.toLowerCase();\n          if (smallestIndex === null || candidateName < smallestName) {\n            smallestIndex = k;\n            smallestName = candidateName;\n          }\n        }\n      }\n      return smallestIndex;\n    }\n\n    while (result.length < limit) {\n      const si = indexOfSmallestFront();\n      if (si === null) break;\n\n      const nextName = arrays[si][pointers[si]].title.toLowerCase();\n\n      for (let k = 0; k < arrays.length; k++) {\n        await drainArrayUpTo(k, nextName, limit);\n      }\n\n      if (result.length < limit && pointers[si] < arrays[si].length) {\n        const item = arrays[si][pointers[si]];\n        if (item.title.toLowerCase() === nextName) {\n          result.push(item);\n          lastPushedName = nextName;\n          pointers[si]++;\n        }\n      }\n    }\n\n    if (result.length < limit) {\n      for (let k = 0; k < arrays.length; k++) {\n        await drainArrayUpTo(k, null, limit);\n      }\n    }\n\n    return [result, pointers];\n  }\n}\n","import { Injectable } from '@angular/core';\nimport {\n  Amp,\n  AmpStatus,\n  DmppCodeType,\n  Nmp,\n  PaginatedListIterator,\n  VmpGroup,\n  SamText,\n} from '@icure/cardinal-be-sam-sdk';\nimport { MedicationType } from '../../../shared/types';\nimport { capitalize } from '../../utils/string-helpers';\nimport { MergeLazySortedNamedItemsService } from './merge-lazy-sorted-named-items.service';\nimport { TranslationService } from '../../../shared/services/translation/translation.service';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class MedicationLoaderService {\n  constructor(\n    private mergeService: MergeLazySortedNamedItemsService,\n    private translationService: TranslationService\n  ) {}\n\n  private defaultLanguage: keyof SamText = 'fr';\n\n  private get language(): keyof SamText {\n    return (\n      this.translationService.getCurrentLanguage?.() ?? this.defaultLanguage\n    );\n  }\n\n  async loadMedicationsPage(\n    medications: PaginatedListIterator<Amp>,\n    min: number,\n    deliveryEnvironment: string,\n    acc: MedicationType[] = []\n  ): Promise<MedicationType[]> {\n    const now = Date.now();\n    const twoYearsAgo = now - 2 * 365 * 24 * 3600 * 1000;\n    const loadedPage = !(await medications.hasNext())\n      ? []\n      : await medications.next(min);\n\n    const page: MedicationType[] = loadedPage.flatMap((amp: Amp) =>\n      amp.to && amp.to < now\n        ? []\n        : amp.ampps\n            .filter(\n              ampp =>\n                ampp.from &&\n                ampp.from < now &&\n                (!ampp.to || ampp.to > now) &&\n                ampp.status === AmpStatus.Authorized &&\n                ampp.commercializations?.some(\n                  c => !!c.from && (!c.to || c.to > twoYearsAgo)\n                ) &&\n                ampp.dmpps?.some(\n                  dmpp =>\n                    dmpp.from &&\n                    dmpp.from < now &&\n                    (!dmpp.to || dmpp.to > now) &&\n                    dmpp.deliveryEnvironment?.toString() === deliveryEnvironment\n                )\n            )\n            .map(ampp => {\n              const dmpp = ampp.dmpps?.find(\n                dmpp =>\n                  dmpp.from &&\n                  dmpp.from < now &&\n                  (!dmpp.to || dmpp.to > now) &&\n                  dmpp.deliveryEnvironment?.toString() ===\n                    deliveryEnvironment &&\n                  dmpp.codeType === DmppCodeType.Cnk\n              );\n              const language: keyof SamText = this.language;\n              return {\n                ampId: amp.id,\n                vmpGroupId: amp.vmp?.vmpGroup?.id,\n                id: ampp.ctiExtended,\n                cnk: dmpp?.code,\n                dmppProductId: dmpp?.productId,\n                title:\n                  ampp.prescriptionName?.[language] ??\n                  ampp.prescriptionName?.[this.defaultLanguage] ??\n                  ampp.abbreviatedName?.[language] ??\n                  ampp.abbreviatedName?.[this.defaultLanguage] ??\n                  amp.prescriptionName?.[language] ??\n                  amp.prescriptionName?.[this.defaultLanguage] ??\n                  amp.name?.[language] ??\n                  amp.name?.[this.defaultLanguage] ??\n                  amp.abbreviatedName?.[language] ??\n                  amp.abbreviatedName?.[this.defaultLanguage] ??\n                  '',\n                vmpTitle:\n                  amp.vmp?.name?.[language] ??\n                  amp.vmp?.name?.[this.defaultLanguage] ??\n                  '',\n                activeIngredient:\n                  amp.vmp?.vmpGroup?.name?.[language] ??\n                  amp.vmp?.vmpGroup?.name?.[this.defaultLanguage] ??\n                  '',\n                price: ampp?.exFactoryPrice ? `€${ampp.exFactoryPrice}` : '',\n                crmLink:\n                  ampp.crmLink?.[language] ??\n                  ampp.crmLink?.[this.defaultLanguage],\n                patientInformationLeafletLink:\n                  ampp.leafletLink?.[language] ??\n                  ampp.leafletLink?.[this.defaultLanguage],\n                blackTriangle: amp.blackTriangle,\n                speciallyRegulated: ampp.speciallyRegulated,\n                genericPrescriptionRequired: ampp.genericPrescriptionRequired,\n                intendedName:\n                  ampp.prescriptionName?.[language] ??\n                  ampp.prescriptionName?.[this.defaultLanguage],\n                rmaProfessionalLink:\n                  ampp.rmaProfessionalLink?.[language] ??\n                  ampp.rmaProfessionalLink?.[this.defaultLanguage],\n                spcLink:\n                  ampp.spcLink?.[language] ??\n                  ampp.spcLink?.[this.defaultLanguage],\n                dhpcLink:\n                  ampp.dhpcLink?.[language] ??\n                  ampp.dhpcLink?.[this.defaultLanguage],\n                rmakeyMessages: ampp.rmaKeyMessages,\n                vmp: amp.vmp,\n                supplyProblems: ampp.supplyProblems,\n                commercializations: ampp?.commercializations,\n                deliveryModusCode: ampp.deliveryModusCode,\n                deliveryModus:\n                  ampp.deliveryModus?.[language] ??\n                  ampp.deliveryModus?.[this.defaultLanguage],\n                deliveryModusSpecificationCode:\n                  ampp.deliveryModusSpecificationCode,\n                deliveryModusSpecification:\n                  ampp.deliveryModusSpecification?.[language] ??\n                  ampp.deliveryModusSpecification?.[this.defaultLanguage],\n                reimbursements: dmpp?.reimbursements?.find(\n                  dmpp =>\n                    dmpp.from && dmpp.from < now && (!dmpp.to || dmpp.to > now)\n                ),\n              } as MedicationType;\n            })\n    );\n\n    return loadedPage.length < min || page.length + acc.length >= min\n      ? [...acc, ...page]\n      : await this.loadMedicationsPage(medications, min, deliveryEnvironment, [\n          ...acc,\n          ...page,\n        ]);\n  }\n\n  async loadMoleculesPage(\n    molecules: PaginatedListIterator<VmpGroup>,\n    min: number,\n    acc: MedicationType[] = []\n  ): Promise<MedicationType[]> {\n    const now = Date.now();\n    const language = this.language;\n    const loadedPage = !(await molecules.hasNext())\n      ? []\n      : await molecules.next(min);\n    const page: MedicationType[] = loadedPage\n      .filter((vmp: VmpGroup) => !(vmp.to && vmp.to < now))\n      .map(vmp => {\n        return {\n          vmpGroupId: vmp.id,\n          id: vmp.code,\n          title:\n            capitalize(vmp.name?.[language]) ??\n            capitalize(vmp.name?.[this.defaultLanguage]) ??\n            '',\n          standardDosage: vmp.standardDosage,\n        };\n      });\n\n    return page.length < min || page.length + acc.length >= min\n      ? [...acc, ...page]\n      : await this.loadMoleculesPage(molecules, min, [...acc, ...page]);\n  }\n\n  async loadNonMedicinalPage(\n    products: PaginatedListIterator<Nmp>,\n    min: number,\n    acc: MedicationType[] = []\n  ): Promise<MedicationType[]> {\n    const now = Date.now();\n    const language = this.language;\n    const loadedPage = !(await products.hasNext())\n      ? []\n      : await products.next(min);\n    const page: MedicationType[] = loadedPage\n      .filter((nmp: Nmp) => !(nmp.to && nmp.to < now))\n      .map(nmp => {\n        return {\n          nmpId: nmp.id,\n          id: nmp.code,\n          title:\n            capitalize(nmp.name?.[language]) ??\n            capitalize(nmp.name?.[this.defaultLanguage]) ??\n            '',\n        };\n      });\n\n    return page.length < min || page.length + acc.length >= min\n      ? [...acc, ...page]\n      : await this.loadNonMedicinalPage(products, min, [...acc, ...page]);\n  }\n\n  async loadUntil(\n    toName: string | undefined,\n    loadPage: () => Promise<MedicationType[]>\n  ): Promise<MedicationType[]> {\n    let page = await loadPage();\n    const lcToName = toName?.toLowerCase();\n    while (\n      page.length &&\n      (!lcToName || page[page.length - 1].title.toLowerCase() < lcToName)\n    ) {\n      const newPage = await loadPage();\n      if (!newPage.length) break;\n      page = [...page, ...newPage];\n    }\n    return page;\n  }\n\n  async loadMore(params: {\n    medicationsPage: MedicationType[];\n    moleculesPage: MedicationType[];\n    productsPage: MedicationType[];\n    medications: PaginatedListIterator<Amp> | undefined;\n    molecules: PaginatedListIterator<VmpGroup> | undefined;\n    products: PaginatedListIterator<Nmp> | undefined;\n    deliveryEnvironment: string;\n  }): Promise<{\n    result: MedicationType[];\n    updated: {\n      medicationsPage: MedicationType[];\n      moleculesPage: MedicationType[];\n      productsPage: MedicationType[];\n    };\n  }> {\n    const {\n      medicationsPage,\n      moleculesPage,\n      productsPage,\n      medications,\n      molecules,\n      products,\n      deliveryEnvironment,\n    } = params;\n\n    const [result, pointers] =\n      await this.mergeService.mergeLazySortedNamedItems(\n        10,\n        [[...medicationsPage], [...moleculesPage], [...productsPage]],\n        [\n          async (_, toName) => {\n            const loaded = await this.loadUntil(toName, () =>\n              medications\n                ? this.loadMedicationsPage(medications, 10, deliveryEnvironment)\n                : Promise.resolve([])\n            );\n            params.medicationsPage.push(...loaded);\n            return loaded;\n          },\n          async (_, toName) => {\n            const loaded = await this.loadUntil(toName, () =>\n              molecules\n                ? this.loadMoleculesPage(molecules, 10)\n                : Promise.resolve([])\n            );\n            params.moleculesPage.push(...loaded);\n            return loaded;\n          },\n          async (_, toName) => {\n            const loaded = await this.loadUntil(toName, () =>\n              products\n                ? this.loadNonMedicinalPage(products, 10)\n                : Promise.resolve([])\n            );\n            params.productsPage.push(...loaded);\n            return loaded;\n          },\n        ]\n      );\n\n    return {\n      result,\n      updated: {\n        medicationsPage: params.medicationsPage.slice(pointers[0]),\n        moleculesPage: params.moleculesPage.slice(pointers[1]),\n        productsPage: params.productsPage.slice(pointers[2]),\n      },\n    };\n  }\n}\n","import {\n  AfterViewChecked,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ElementRef,\n  EventEmitter,\n  HostListener,\n  Input,\n  OnDestroy,\n  OnInit,\n  Output,\n  QueryList,\n  ViewChild,\n  ViewChildren,\n} from '@angular/core';\nimport { NgForOf, NgIf } from '@angular/common';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { debounceTime, Subject, takeUntil } from 'rxjs';\nimport {\n  Amp,\n  Nmp,\n  PaginatedListIterator,\n  SamText,\n  VmpGroup,\n} from '@icure/cardinal-be-sam-sdk';\n\nimport { SearchIcnComponent } from '../../../internal/components/common/icons/search-icn/search-icn.component';\nimport { MedicationLoaderService } from '../../../internal/services/loaders/medication-loader.service';\nimport { MedicationCardComponent } from '../../../internal/components/medication-elements/medication-card/medication-card.component';\nimport { TooltipContextService } from '../../../internal/services/common/tooltip-context.service';\n\nimport { TranslationService } from '../../services/translation/translation.service';\nimport { SamSdkService } from '../../services/api/sam-sdk.service';\nimport { MedicationType } from '../../types';\n\n@Component({\n  selector: 'cardinal-medication-search',\n  standalone: true,\n  imports: [\n    SearchIcnComponent,\n    NgIf,\n    MedicationCardComponent,\n    NgForOf,\n    ReactiveFormsModule,\n  ],\n  templateUrl: './medication-search.component.html',\n  styleUrl: './medication-search.component.scss',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MedicationSearchComponent\n  implements OnInit, OnDestroy, AfterViewChecked\n{\n  @Input({ required: true }) deliveryEnvironment!: string;\n\n  @Output() addPrescription = new EventEmitter<MedicationType>();\n\n  @ViewChild('inputRef') inputRef!: ElementRef<HTMLInputElement>;\n  @ViewChild('scrollAnchor', { static: false }) scrollAnchor!: ElementRef;\n  @ViewChildren('resultRef') resultRefs!: QueryList<ElementRef<HTMLElement>>;\n  @ViewChild('medicationSearchDropdown', { static: false })\n  medicationSearchDropdown!: ElementRef<HTMLDivElement>;\n\n  constructor(\n    private samSdkService: SamSdkService,\n    private loader: MedicationLoaderService,\n    private tooltipContext: TooltipContextService,\n    private translationService: TranslationService,\n    private cdr: ChangeDetectorRef\n  ) {}\n\n  t(key: string): string {\n    return this.translationService.translate(key);\n  }\n\n  private intersectionObserver?: IntersectionObserver;\n  private observerInitialized = false;\n  private medicationSearchDropdownRectInitialized = false;\n  private language: keyof SamText = 'fr';\n\n  destroy$ = new Subject<void>();\n\n  medications: PaginatedListIterator<Amp> | undefined;\n  molecules: PaginatedListIterator<VmpGroup> | undefined;\n  products: PaginatedListIterator<Nmp> | undefined;\n\n  pages: MedicationType[] = [];\n  medicationsPage: MedicationType[] = [];\n  moleculesPage: MedicationType[] = [];\n  productsPage: MedicationType[] = [];\n\n  focusedMedicationIndex: number | undefined = undefined;\n  searchControl: FormControl<string | null> = new FormControl('');\n\n  get totalPagesLength(): number {\n    return this.pages.length;\n  }\n\n  get dropdownDisplayed(): boolean {\n    return !!this.searchControl.value?.trim();\n  }\n\n  ngOnInit(): void {\n    this.language = this.translationService.getCurrentLanguage();\n    this.searchControl.valueChanges\n      .pipe(debounceTime(100), takeUntil(this.destroy$))\n      .subscribe(query => {\n        const q = query?.trim() ?? '';\n\n        if (q.length === 0) {\n          this.onResetSearch();\n          return;\n        }\n\n        if (q.length < 3) return;\n\n        this.samSdkService\n          .searchMedications(this.language, q)\n          .then(async ([meds, mols, prods]) => {\n            const latestQuery = this.searchControl.value?.trim();\n            if (q !== latestQuery) return;\n\n            this.medications = meds;\n            this.molecules = mols;\n            this.products = prods;\n\n            const [medicationsPage, moleculesPage, productsPage] =\n              await Promise.all([\n                meds\n                  ? this.loader.loadMedicationsPage(\n                      meds,\n                      10,\n                      this.deliveryEnvironment\n                    )\n                  : [],\n                mols ? this.loader.loadMoleculesPage(mols, 10) : [],\n                prods ? this.loader.loadNonMedicinalPage(prods, 10) : [],\n              ]);\n\n            this.medicationsPage = medicationsPage;\n            this.moleculesPage = moleculesPage;\n            this.productsPage = productsPage;\n\n            if (q !== this.searchControl.value?.trim()) return;\n\n            const { result, updated } = await this.loader.loadMore({\n              medicationsPage: this.medicationsPage,\n              moleculesPage: this.moleculesPage,\n              productsPage: this.productsPage,\n              medications: this.medications,\n              molecules: this.molecules,\n              products: this.products,\n              deliveryEnvironment: this.deliveryEnvironment,\n            });\n\n            this.medicationsPage = updated.medicationsPage;\n            this.moleculesPage = updated.moleculesPage;\n            this.productsPage = updated.productsPage;\n            this.pages = result;\n\n            this.focusedMedicationIndex = 0;\n\n            this.cdr.markForCheck();\n          });\n      });\n  }\n\n  ngAfterViewChecked(): void {\n    if (\n      !this.observerInitialized &&\n      this.medicationSearchDropdown &&\n      this.scrollAnchor\n    ) {\n      this.initIntersectionObserver();\n      this.observerInitialized = true;\n    }\n\n    if (\n      !this.medicationSearchDropdownRectInitialized &&\n      this.medicationSearchDropdown\n    ) {\n      const rect =\n        this.medicationSearchDropdown.nativeElement.getBoundingClientRect();\n      this.tooltipContext.setDropdownRect(rect);\n      this.medicationSearchDropdownRectInitialized = true;\n    }\n  }\n\n  ngOnDestroy(): void {\n    this.destroy$.next();\n    this.destroy$.complete();\n\n    if (this.intersectionObserver) {\n      this.intersectionObserver.disconnect();\n    }\n  }\n\n  handleAddPrescription(med: MedicationType): void {\n    this.addPrescription.emit(med);\n    this.searchControl.setValue('');\n    this.onResetSearch();\n    this.cdr.markForCheck();\n  }\n\n  onResetSearch(): void {\n    this.medications = undefined;\n    this.molecules = undefined;\n    this.products = undefined;\n    this.medicationsPage = [];\n    this.moleculesPage = [];\n    this.productsPage = [];\n    this.pages = [];\n    this.focusedMedicationIndex = undefined;\n    this.cdr.markForCheck();\n  }\n\n  @HostListener('document:keydown', ['$event'])\n  handleKeyDown(event: KeyboardEvent): void {\n    const pageCount = this.totalPagesLength;\n    const viewCount = this.resultRefs.length;\n\n    if (this.focusedMedicationIndex !== undefined) {\n      if (event.key === 'ArrowDown') {\n        this.focusedMedicationIndex =\n          (this.focusedMedicationIndex + 1) % pageCount;\n      } else if (event.key === 'ArrowUp') {\n        this.focusedMedicationIndex =\n          (this.focusedMedicationIndex - 1 + pageCount) % pageCount;\n      } else if (event.key === 'Enter' && this.focusedMedicationIndex >= 0) {\n        this.handleAddPrescription(this.pages[this.focusedMedicationIndex]);\n      }\n\n      if (viewCount > 0) {\n        this.scrollToFocusedItem();\n      }\n    }\n\n    this.cdr.markForCheck();\n  }\n\n  scrollToFocusedItem(): void {\n    setTimeout(() => {\n      const refs = this.resultRefs?.toArray();\n      const index = this.focusedMedicationIndex;\n      if (index !== undefined && refs && refs[index]) {\n        refs[index].nativeElement.scrollIntoView({\n          behavior: 'smooth',\n          block: 'nearest',\n        });\n      }\n    }, 0);\n    this.cdr.markForCheck();\n  }\n\n  private initIntersectionObserver(): void {\n    this.intersectionObserver = new IntersectionObserver(\n      async entries => {\n        for (let entry of entries) {\n          if (entry.isIntersecting) {\n            const res = await this.loader.loadMore({\n              medicationsPage: this.medicationsPage,\n              moleculesPage: this.moleculesPage,\n              productsPage: this.productsPage,\n              medications: this.medications,\n              molecules: this.molecules,\n              products: this.products,\n              deliveryEnvironment: this.deliveryEnvironment,\n            });\n\n            this.medicationsPage = [\n              ...this.medicationsPage,\n              ...res.updated.medicationsPage,\n            ];\n            this.moleculesPage = [\n              ...this.moleculesPage,\n              ...res.updated.moleculesPage,\n            ];\n            this.productsPage = [\n              ...this.productsPage,\n              ...res.updated.productsPage,\n            ];\n            this.pages = [...this.pages, ...res.result];\n            this.cdr.markForCheck();\n          }\n        }\n      },\n      {\n        root: this.medicationSearchDropdown.nativeElement,\n        rootMargin: '0px',\n        threshold: 0.1,\n      }\n    );\n\n    this.intersectionObserver.observe(this.scrollAnchor.nativeElement);\n  }\n\n  get showSearchError(): boolean {\n    const value = this.searchControl.value?.trim();\n    return !!value && value.length < 3;\n  }\n}\n","<div class=\"medicationSearch\">\n  <div\n    [class.dropdownDisplayed]=\"dropdownDisplayed\"\n    class=\"medicationSearch__input\">\n    <p>{{ t('medication.search.label') }}:</p>\n    <label for=\"medicationSearch\">\n      <input\n        #inputRef\n        id=\"medicationSearch\"\n        type=\"text\"\n        placeholder=\"{{ t('medication.search.label') }}\"\n        autocomplete=\"off\"\n        autocapitalize=\"off\"\n        [formControl]=\"searchControl\" />\n      <cardinal-search-icn color=\"#9CA8B2\" />\n    </label>\n    <p class=\"error\" *ngIf=\"showSearchError\">\n      {{ t('medication.search.errorMessage') }}\n    </p>\n  </div>\n\n  <div\n    #medicationSearchDropdown\n    *ngIf=\"pages && pages.length > 0\"\n    class=\"medicationSearchDropdown\"\n    (keydown)=\"handleKeyDown($event)\">\n    <div\n      *ngFor=\"let med of pages; let i = index\"\n      #resultRef\n      class=\"medicationSearchDropdown__cardWrap\"\n      [class.focused]=\"focusedMedicationIndex === i\">\n      <cardinal-medication-card\n        class=\"medication-card\"\n        [medication]=\"med\"\n        [index]=\"i\"\n        [focused]=\"focusedMedicationIndex === i\"\n        (addPrescription)=\"handleAddPrescription($event)\" />\n    </div>\n    <div #scrollAnchor style=\"height: 1px\"></div>\n  </div>\n</div>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { IconComponentBase } from '../../../../types';\n\n@Component({\n  selector: 'cardinal-status-success',\n  imports: [],\n  templateUrl: './status-success.component.html',\n  styleUrl: './status-success.component.scss',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: true,\n})\nexport class StatusSuccessComponent implements IconComponentBase {\n  @Input({ required: true }) color: string = 'currentColor';\n}\n","<svg\n  width=\"26\"\n  height=\"26\"\n  viewBox=\"0 0 26 26\"\n  fill=\"none\"\n  xmlns=\"http://www.w3.org/2000/svg\">\n  <g clip-path=\"url(#clip0_1152_2420)\">\n    <path\n      d=\"M13 0C5.82098 0 0 5.82098 0 13C0 20.179 5.82098 26 13 26C20.179 26 26 20.179 26 13C26 5.82098 20.179 0 13 0ZM18.615 8.75469L12.5038 17.2279C12.4184 17.3471 12.3058 17.4443 12.1753 17.5113C12.0449 17.5783 11.9003 17.6132 11.7537 17.6132C11.607 17.6132 11.4625 17.5783 11.332 17.5113C11.2016 17.4443 11.089 17.3471 11.0036 17.2279L7.38504 12.2136C7.27478 12.0598 7.38504 11.8451 7.57366 11.8451H8.9346C9.23058 11.8451 9.51205 11.9873 9.68616 12.231L11.7522 15.098L16.3138 8.7721C16.4879 8.53125 16.7665 8.38616 17.0654 8.38616H18.4263C18.615 8.38616 18.7252 8.60089 18.615 8.75469Z\"\n      [attr.fill]=\"color\" />\n  </g>\n  <defs>\n    <clipPath id=\"clip0_1152_2420\">\n      <rect width=\"26\" height=\"26\" fill=\"white\" />\n    </clipPath>\n  </defs>\n</svg>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { IconComponentBase } from '../../../../types';\n\n@Component({\n  selector: 'cardinal-status-error',\n  imports: [],\n  templateUrl: './status-error.component.html',\n  styleUrl: './status-error.component.scss',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: true,\n})\nexport class StatusErrorComponent implements IconComponentBase {\n  @Input({ required: true }) color: string = 'currentColor';\n}\n","<svg\n  width=\"24\"\n  height=\"24\"\n  viewBox=\"0 0 24 24\"\n  fill=\"none\"\n  xmlns=\"http://www.w3.org/2000/svg\">\n  <path\n    fill-rule=\"evenodd\"\n    clip-rule=\"evenodd\"\n    d=\"M12 0C18.6268 0 24 5.37321 24 12C24 18.6268 18.6268 24 12 24C5.37321 24 0 18.6268 0 12C0 5.37321 5.37321 0 12 0ZM15.428 7.36125H15.427L15.4248 7.36286L12 10.7879L8.57518 7.36286C8.57411 7.36152 8.57357 7.36125 8.57304 7.36125C8.57242 7.36106 8.57177 7.36106 8.57116 7.36125C8.57036 7.36125 8.56982 7.36152 8.56875 7.36259L7.36286 8.56848C7.36221 8.56916 7.36175 8.56999 7.36152 8.57089C7.36133 8.5715 7.36133 8.57216 7.36152 8.57277V8.5733C7.36197 8.57392 7.36251 8.57446 7.36313 8.57491L10.7879 12L7.36286 15.4248C7.36152 15.4259 7.36125 15.4264 7.36125 15.427C7.36106 15.4276 7.36106 15.4282 7.36125 15.4288C7.36125 15.4296 7.36152 15.4302 7.36259 15.4312L8.56848 16.6371C8.56916 16.6378 8.56999 16.6383 8.57089 16.6385C8.5715 16.6387 8.57216 16.6387 8.57277 16.6385C8.5733 16.6385 8.57384 16.6382 8.57491 16.6371L12 13.2121L15.4248 16.6371C15.4259 16.6382 15.4264 16.6385 15.427 16.6385C15.4276 16.6387 15.4282 16.6387 15.4288 16.6385C15.4296 16.6385 15.4302 16.6382 15.4312 16.6371L16.6371 15.4312C16.6378 15.4306 16.6383 15.4297 16.6385 15.4288C16.6387 15.4282 16.6387 15.4276 16.6385 15.427V15.4264C16.6381 15.4258 16.6377 15.4253 16.6371 15.4248L13.2121 12L16.6371 8.57518C16.6382 8.57411 16.6385 8.57357 16.6385 8.57304C16.6387 8.57242 16.6387 8.57177 16.6385 8.57116C16.6385 8.57036 16.6382 8.56982 16.6371 8.56875L15.4312 7.36286C15.4306 7.36221 15.4297 7.36175 15.4288 7.36152C15.4282 7.36133 15.4276 7.36133 15.427 7.36152L15.428 7.36125Z\"\n    [attr.fill]=\"color\" />\n</svg>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { StatusSuccessComponent } from '../../common/icons/status-success/status-success.component';\nimport { StatusErrorComponent } from '../../common/icons/status-error/status-error.component';\nimport { NgIf } from '@angular/common';\n\n@Component({\n  selector: 'cardinal-certificate-status',\n  imports: [StatusSuccessComponent, StatusErrorComponent, NgIf],\n  templateUrl: './certificate-status.component.html',\n  styleUrl: './certificate-status.component.scss',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: true,\n})\nexport class CertificateStatusComponent {\n  @Input({ required: true }) status!: 'error' | 'success';\n  @Input({ required: true }) title!: string;\n  @Input({ required: true }) description!: string;\n}\n","<div\n  class=\"status\"\n  [class.success]=\"status === 'success'\"\n  [class.error]=\"status === 'error'\">\n  <div class=\"status__heading\">\n    <cardinal-status-success [color]=\"'#52C41A'\" *ngIf=\"status === 'success'\" />\n    <cardinal-status-error [color]=\"'#FF4D4F'\" *ngIf=\"status === 'error'\" />\n\n    <h4>{{ title }}</h4>\n  </div>\n  <p>{{ description }}</p>\n</div>\n","import {\n  Component,\n  Input,\n  forwardRef,\n  ElementRef,\n  ViewChild,\n  AfterViewInit,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n} from '@angular/core';\nimport {\n  ControlValueAccessor,\n  FormsModule,\n  NG_VALUE_ACCESSOR,\n} from '@angular/forms';\nimport { NgClass, NgIf } from '@angular/common';\n\n@Component({\n  selector: 'cardinal-text-input',\n  templateUrl: './text-input.component.html',\n  styleUrls: ['./text-input.component.scss'],\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => TextInputComponent),\n      multi: true,\n    },\n  ],\n  standalone: true,\n  imports: [NgClass, NgIf, FormsModule],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TextInputComponent implements ControlValueAccessor, AfterViewInit {\n  @Input({ required: true }) label!: string;\n  @Input({ required: true }) id!: string;\n  @Input() type?: 'text' | 'number' | 'date' | 'password' | 'file' = 'text';\n  @Input() required? = false;\n  @Input() autofocus? = false;\n  @Input() disabled?: boolean | undefined = false;\n  @Input() min?: number;\n  @Input() max?: number;\n  @Input() accept?: string;\n  @Input() errorMessage?: string;\n\n  @ViewChild('inputRef') inputRef!: ElementRef<HTMLInputElement>;\n\n  value: string | number | Date | null = '';\n\n  constructor(private cdr: ChangeDetectorRef) {}\n\n  onChange = (_: any) => {};\n  onTouched = () => {};\n\n  writeValue(value: any): void {\n    this.value = value;\n    this.cdr.markForCheck();\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  setDisabledState(isDisabled: boolean): void {\n    this.disabled = isDisabled;\n    this.cdr.markForCheck(); // ensures view reflects disabled state\n  }\n\n  ngAfterViewInit() {\n    if (this.autofocus) {\n      setTimeout(() => this.inputRef.nativeElement.focus());\n      this.cdr.markForCheck(); // triggers a re-render\n    }\n  }\n\n  onInputChange(event: Event) {\n    const target = event.target as HTMLInputElement;\n    this.value = target.value;\n    this.onChange(this.value);\n    this.onTouched();\n    this.cdr.markForCheck();\n  }\n}\n","<div class=\"textInput\">\n  <label [for]=\"id\" [ngClass]=\"{ required: required, error: errorMessage }\">\n    <span *ngIf=\"required\">*</span>{{ label }}\n  </label>\n\n  <input\n    #inputRef\n    [id]=\"id\"\n    [name]=\"id\"\n    [type]=\"type\"\n    [placeholder]=\"label\"\n    [disabled]=\"disabled ?? false\"\n    [attr.min]=\"min\"\n    [attr.max]=\"max\"\n    [attr.accept]=\"accept\"\n    [ngClass]=\"{ disabled: disabled, error: errorMessage }\"\n    [(ngModel)]=\"value\"\n    (input)=\"onInputChange($event)\"\n    autocomplete=\"off\" />\n\n  <p class=\"textInput__error\" *ngIf=\"errorMessage\">\n    {{ errorMessage }}\n  </p>\n</div>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { IconComponentBase } from '../../../../types';\n\n@Component({\n  selector: 'cardinal-spinner-icn',\n  imports: [],\n  templateUrl: './spinner-icn.component.html',\n  styleUrl: './spinner-icn.component.scss',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: true,\n})\nexport class SpinnerIcnComponent implements IconComponentBase {\n  @Input({ required: true }) color: string = 'currentColor';\n}\n","<svg\n  xmlns=\"http://www.w3.org/2000/svg\"\n  viewBox=\"0 0 100 100\"\n  preserveAspectRatio=\"xMidYMid\"\n  width=\"24\"\n  height=\"24\"\n  style=\"shape-rendering: auto; display: block; background: transparent\"\n  xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n  <g>\n    <circle\n      stroke-dasharray=\"169.64600329384882 58.548667764616276\"\n      r=\"36\"\n      stroke-width=\"8\"\n      [attr.stroke]=\"color\"\n      fill=\"none\"\n      cy=\"50\"\n      cx=\"50\">\n      <animateTransform\n        keyTimes=\"0;1\"\n        values=\"0 50 50;360 50 50\"\n        dur=\"1s\"\n        repeatCount=\"indefinite\"\n        type=\"rotate\"\n        attributeName=\"transform\"></animateTransform>\n    </circle>\n    <g></g>\n  </g>\n  <!-- [ldio] generated by https://loading.io -->\n</svg>\n","import {\n  Component,\n  Input,\n  Output,\n  EventEmitter,\n  ChangeDetectionStrategy,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { NgForm } from '@angular/forms';\nimport { SpinnerIcnComponent } from '../../common/icons/spinner-icn/spinner-icn.component';\n\n@Component({\n  selector: 'cardinal-button',\n  standalone: true,\n  imports: [CommonModule, SpinnerIcnComponent],\n  templateUrl: './button.component.html',\n  styleUrls: ['./button.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ButtonComponent {\n  @Input() view?: 'primary' | 'withSpinner' | 'outlined' = 'primary';\n  @Input() type?: 'button' | 'reset' | 'submit' = 'button';\n  @Input() formId?: NgForm;\n  @Input() disabled?: boolean = false;\n\n  @Output() handleClick = new EventEmitter<void>();\n\n  onClick(evt: MouseEvent) {\n    this.formId?.onSubmit(evt);\n    if (this.view !== 'withSpinner') {\n      this.handleClick.emit();\n    }\n  }\n\n  getSpinnerIcnColor(): string {\n    if (this.disabled) {\n      return '#B8B8B8';\n    } else {\n      return '#084B83';\n    }\n  }\n}\n","<button\n  [ngClass]=\"view\"\n  [type]=\"type\"\n  [disabled]=\"disabled\"\n  (click)=\"onClick($event)\">\n  <ng-container *ngIf=\"view === 'withSpinner'; else null\">\n    <cardinal-spinner-icn [color]=\"getSpinnerIcnColor()\" />\n  </ng-container>\n  <ng-content />\n</button>\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class UploadPractitionerCertificateService {\n  // Open IndexedDB database\n  async openCertificatesDatabase(): Promise<IDBDatabase> {\n    return new Promise<IDBDatabase>((resolve, reject) => {\n      const request = indexedDB.open('CertificateStore', 1);\n\n      request.onupgradeneeded = event => {\n        const database = (event.target as IDBOpenDBRequest).result;\n        database.createObjectStore('certificates', { keyPath: 'id' });\n      };\n\n      request.onsuccess = () => resolve(request.result);\n      request.onerror = () => reject(request.error);\n    });\n  }\n\n  // Load certificate information from IndexedDB\n  async loadCertificateInformation(\n    db: IDBDatabase,\n    id: string\n  ): Promise<{\n    salt: ArrayBuffer;\n    iv: ArrayBuffer;\n    encryptedCertificate: ArrayBuffer;\n  }> {\n    const transaction = db.transaction('certificates', 'readonly');\n    const store = transaction.objectStore('certificates');\n\n    const request = store.get(id);\n    const record = await new Promise<any>((resolve, reject) => {\n      request.onsuccess = () => resolve(request.result);\n      request.onerror = () => reject(request.error);\n    });\n\n    if (!record) {\n      throw new Error('Record not found');\n    }\n\n    return {\n      salt: new Uint8Array(record.salt).buffer,\n      iv: new Uint8Array(record.iv).buffer,\n      encryptedCertificate: new Uint8Array(record.encryptedCertificate).buffer,\n    };\n  }\n\n  // Load and decrypt certificate using password\n  async loadAndDecryptCertificate(\n    password: string,\n    id: string\n  ): Promise<ArrayBuffer | undefined> {\n    const db = await this.openCertificatesDatabase();\n    if (!db) {\n      console.error('Database not initialized');\n      return undefined;\n    }\n\n    const { salt, iv, encryptedCertificate } =\n      await this.loadCertificateInformation(db, id);\n\n    // Derive a key from the password using PBKDF2\n    const passwordKey = await crypto.subtle.importKey(\n      'raw',\n      new TextEncoder().encode(password),\n      { name: 'PBKDF2' },\n      false,\n      ['deriveKey']\n    );\n\n    const decryptionKey = await crypto.subtle.deriveKey(\n      {\n        name: 'PBKDF2',\n        salt: new Uint8Array(salt),\n        iterations: 100000,\n        hash: 'SHA-256',\n      },\n      passwordKey,\n      { name: 'AES-GCM', length: 256 },\n      false,\n      ['decrypt']\n    );\n\n    // Decrypt the certificate\n    return await crypto.subtle.decrypt(\n      { name: 'AES-GCM', iv: new Uint8Array(iv) },\n      decryptionKey,\n      new Uint8Array(encryptedCertificate)\n    );\n  }\n\n  // Upload and encrypt certificate to IndexedDB\n  async uploadAndEncrypt(\n    db: IDBDatabase,\n    id: string,\n    passphrase: string,\n    certificate: ArrayBuffer\n  ): Promise<string> {\n    const salt = crypto.getRandomValues(new Uint8Array(16));\n    const iv = crypto.getRandomValues(new Uint8Array(12));\n\n    // Derive a key from the password using PBKDF2\n    const passwordKey = await crypto.subtle.importKey(\n      'raw',\n      new TextEncoder().encode(passphrase),\n      { name: 'PBKDF2' },\n      false,\n      ['deriveKey']\n    );\n\n    const encryptionKey = await crypto.subtle.deriveKey(\n      {\n        name: 'PBKDF2',\n        salt,\n        iterations: 100000,\n        hash: 'SHA-256',\n      },\n      passwordKey,\n      { name: 'AES-GCM', length: 256 },\n      false,\n      ['encrypt']\n    );\n\n    return new Promise<string>(async (resolve, reject) => {\n      try {\n        // Ensure the database is available\n        if (!db) {\n          console.error('IndexedDB instance is not available.');\n        }\n\n        // Encrypt the certificate (outside the transaction to avoid delays)\n        const encryptedCertificate = await crypto.subtle.encrypt(\n          { name: 'AES-GCM', iv },\n          encryptionKey,\n          certificate\n        );\n\n        // Start a transaction\n        const transaction = db.transaction('certificates', 'readwrite');\n        const store = transaction.objectStore('certificates');\n\n        // Convert the encrypted certificate and other data to a storable format\n        const record = {\n          id: id,\n          salt: Array.from(salt), // Convert TypedArray to a normal array\n          iv: Array.from(iv),\n          encryptedCertificate: Array.from(\n            new Uint8Array(encryptedCertificate)\n          ), // Convert ArrayBuffer to an array\n        };\n\n        // Use a single transaction to perform all operations\n        const request = store.get(id);\n\n        request.onsuccess = () => {\n          if (request.result) {\n            // Update the existing record\n            const putRequest = store.put(record);\n            putRequest.onsuccess = () => {\n              console.log(`Record with ID ${id} successfully updated.`);\n              resolve(id);\n            };\n            putRequest.onerror = () => {\n              console.error(\n                `Error updating record with ID ${id}:`,\n                putRequest.error\n              );\n              reject(putRequest.error);\n            };\n          } else {\n            // Add a new record\n            const addRequest = store.add(record);\n            addRequest.onsuccess = () => {\n              console.log(`Record with ID ${id} successfully added.`);\n              resolve(id);\n            };\n            addRequest.onerror = () => {\n              console.error(\n                `Error adding record with ID ${id}:`,\n                addRequest.error\n              );\n              reject(addRequest.error);\n            };\n          }\n        };\n\n        request.onerror = () => {\n          console.error(\n            `Error retrieving record with ID ${id}:`,\n            request.error\n          );\n          reject(request.error);\n        };\n\n        // Transaction completion handlers\n        transaction.oncomplete = () => {\n          console.log('Transaction completed successfully.');\n        };\n\n        transaction.onerror = () => {\n          console.error('Transaction failed:', transaction.error);\n        };\n\n        transaction.onabort = () => {\n          console.error('Transaction aborted.');\n        };\n      } catch (error) {\n        console.error('An error occurred:', error);\n      }\n    });\n  }\n}\n","import {\n  Component,\n  Output,\n  EventEmitter,\n  OnInit,\n  Input,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n} from '@angular/core';\nimport { UploadPractitionerCertificateService } from '../../../../shared/services/certificate/upload-practitioner-certificate.service';\nimport {\n  FormGroup,\n  FormsModule,\n  NonNullableFormBuilder,\n  ReactiveFormsModule,\n  Validators,\n} from '@angular/forms';\nimport { TextInputComponent } from '../../form-elements/text-input/text-input.component';\nimport { ButtonComponent } from '../../form-elements/button/button.component';\nimport { HealthcareParty } from '@icure/be-fhc-lite-api';\nimport { NgIf } from '@angular/common';\nimport { CertificateStatusComponent } from '../certificate-status/certificate-status.component';\nimport { TranslationService } from '../../../../shared/services/translation/translation.service';\n\n@Component({\n  selector: 'cardinal-certificate-upload',\n  templateUrl: './certificate-upload.component.html',\n  styleUrls: ['./certificate-upload.component.scss'],\n  imports: [\n    FormsModule,\n    ReactiveFormsModule,\n    TextInputComponent,\n    ButtonComponent,\n    NgIf,\n    CertificateStatusComponent,\n  ],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: true,\n})\nexport class CertificateUploadComponent implements OnInit {\n  @Input({ required: true }) hcp!: HealthcareParty;\n\n  @Output() onUploadCertificate: EventEmitter<string> = new EventEmitter();\n\n  constructor(\n    private certificateService: UploadPractitionerCertificateService,\n    private fb: NonNullableFormBuilder,\n    private translationService: TranslationService,\n    private cdr: ChangeDetectorRef\n  ) {}\n\n  t(key: string): string {\n    return this.translationService.translate(key);\n  }\n\n  password: string = '';\n  certificateFile: File | null = null;\n  db: IDBDatabase | undefined;\n  uploadCertificateForm!: FormGroup;\n  certificateUploaded: boolean = false;\n  certificateAvailabilityFeedback?: {\n    passwordMissing: {\n      title: string;\n      description: string;\n    };\n  };\n\n  // Initialize IndexedDB\n  ngOnInit(): void {\n    this.buildFeedback();\n\n    this.certificateService.openCertificatesDatabase().then(async db => {\n      this.db = db;\n\n      try {\n        if (!this.hcp.ssin) return;\n\n        const stored = await this.certificateService.loadCertificateInformation(\n          db,\n          this.hcp.ssin\n        );\n\n        this.certificateUploaded = !!stored;\n      } catch {\n        this.certificateUploaded = false;\n      }\n\n      this.uploadCertificateForm = this.fb.group({\n        certificateFile: [\n          { value: null, disabled: false },\n          this.certificateUploaded ? [] : [Validators.required],\n        ],\n        certificatePassword: ['', Validators.required],\n      });\n\n      this.cdr.markForCheck();\n    });\n  }\n\n  getErrorMessage(fieldName: string): string | undefined {\n    const control = this.uploadCertificateForm.get(fieldName);\n\n    if (\n      !this.uploadCertificateForm.dirty ||\n      !control?.touched ||\n      control?.valid ||\n      control?.disabled\n    )\n      return undefined;\n\n    if (control.errors?.['required'])\n      return this.t('practitioner.certificateUpload.errorRequired');\n    return this.t('practitioner.certificateUpload.errorInvalid');\n  }\n\n  // Handle form submission\n  async handleFormSubmit(): Promise<void> {\n    if (this.certificateFile !== null && !!this.db) {\n      const certificateData = await this.readFileAsArrayBuffer(\n        this.certificateFile\n      );\n      await this.certificateService.uploadAndEncrypt(\n        this.db,\n        this.certificateFile.name.split('=')[1].split(' ')[0],\n        this.password,\n        certificateData\n      );\n    }\n    this.onUploadCertificate.emit(this.password);\n  }\n\n  async onSubmit() {\n    if (this.uploadCertificateForm.invalid) {\n      this.uploadCertificateForm.markAllAsTouched();\n      return;\n    }\n\n    if (this.uploadCertificateForm.valid) {\n      const formValues = this.uploadCertificateForm.value;\n      this.password = formValues.certificatePassword;\n\n      await this.handleFormSubmit();\n      // ✅ Clean reset without validation flicker\n      this.uploadCertificateForm.reset({\n        certificateFile: null,\n        certificatePassword: '',\n      });\n      this.uploadCertificateForm.markAsPristine();\n      this.uploadCertificateForm.markAsUntouched();\n    }\n    this.cdr.markForCheck();\n  }\n\n  private buildFeedback(): void {\n    this.certificateAvailabilityFeedback = {\n      passwordMissing: {\n        title: this.t('practitioner.certificateUpload.passwordMissingTitle'),\n        description: this.t(\n          'practitioner.certificateUpload.passwordMissingDescription'\n        ),\n      },\n    };\n    this.cdr.markForCheck();\n  }\n\n  onUploadedAnotherCertificate(): void {\n    this.uploadCertificateForm.reset();\n    this.certificateUploaded = false;\n    this.cdr.markForCheck();\n  }\n\n  // Handle file input change\n  handleFileChange(event: Event): void {\n    const target = event.target as HTMLInputElement;\n    this.certificateFile = target.files ? target.files[0] : null;\n    this.cdr.markForCheck();\n  }\n\n  // Read the file as ArrayBuffer\n  readFileAsArrayBuffer(file: File): Promise<ArrayBuffer> {\n    return new Promise((resolve, reject) => {\n      const reader = new FileReader();\n      reader.onload = () => resolve(reader.result as ArrayBuffer);\n      reader.onerror = () => reject(reader.error);\n      reader.readAsArrayBuffer(file);\n    });\n  }\n}\n","<div class=\"uploadCertificateWrap\">\n  <cardinal-certificate-status\n    *ngIf=\"certificateUploaded\"\n    [status]=\"'error'\"\n    [title]=\"certificateAvailabilityFeedback?.passwordMissing?.title ?? ''\"\n    [description]=\"\n      certificateAvailabilityFeedback?.passwordMissing?.description ?? ''\n    \" />\n\n  <form\n    *ngIf=\"uploadCertificateForm\"\n    class=\"uploadCertificate\"\n    id=\"uploadCertificateForm\"\n    (ngSubmit)=\"onSubmit()\"\n    [formGroup]=\"uploadCertificateForm\">\n    <h3>\n      {{\n        !certificateUploaded\n          ? t('practitioner.certificateUpload.titleUpload')\n          : t('practitioner.certificateUpload.titlePassword')\n      }}\n    </h3>\n    <div class=\"uploadCertificate__inputs\">\n      <cardinal-text-input\n        *ngIf=\"!certificateUploaded\"\n        [label]=\"t('practitioner.certificateUpload.fileLabel')\"\n        [id]=\"'certificateFile'\"\n        [type]=\"'file'\"\n        [required]=\"true\"\n        [accept]=\"'.p12,.acc-p12'\"\n        formControlName=\"certificateFile\"\n        (change)=\"handleFileChange($event)\"\n        [errorMessage]=\"getErrorMessage('certificateFile')\" />\n\n      <cardinal-text-input\n        [label]=\"t('practitioner.certificateUpload.passwordLabel')\"\n        [id]=\"'certificatePassword'\"\n        [type]=\"'password'\"\n        [required]=\"true\"\n        formControlName=\"certificatePassword\"\n        [errorMessage]=\"getErrorMessage('certificatePassword')\" />\n    </div>\n\n    <cardinal-button\n      [type]=\"'submit'\"\n      (handleClick)=\"onSubmit()\"\n      [view]=\"'primary'\">\n      {{\n        !certificateUploaded\n          ? t('practitioner.certificateUpload.submitButtonUpload')\n          : t('practitioner.certificateUpload.submitButtonPassword')\n      }}\n    </cardinal-button>\n  </form>\n  <cardinal-button\n    *ngIf=\"certificateUploaded\"\n    [type]=\"'reset'\"\n    (handleClick)=\"onUploadedAnotherCertificate()\"\n    [view]=\"'outlined'\">\n    {{ t('practitioner.certificateUpload.resetButton') }}\n  </cardinal-button>\n</div>\n","import {\n  Component,\n  EventEmitter,\n  Input,\n  Output,\n  ChangeDetectionStrategy,\n} from '@angular/core';\nimport { NgIf } from '@angular/common';\nimport { HealthcareParty } from '@icure/be-fhc-lite-api';\n\nimport { CertificateStatusComponent } from '../../../internal/components/certificate-elements/certificate-status/certificate-status.component';\nimport { CertificateUploadComponent } from '../../../internal/components/certificate-elements/certificate-upload/certificate-upload.component';\n\nimport { TranslationService } from '../../services/translation/translation.service';\n\n@Component({\n  selector: 'cardinal-practitioner-certificate',\n  standalone: true,\n  imports: [CertificateStatusComponent, NgIf, CertificateUploadComponent],\n  templateUrl: './practitioner-certificate.component.html',\n  styleUrl: './practitioner-certificate.component.scss',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PractitionerCertificateComponent {\n  @Input({ required: true }) hcp!: HealthcareParty;\n  @Input() certificateValid?: boolean = false;\n  @Input() certificateUploaded?: boolean = false;\n  @Input() errorWhileVerifyingCertificate?: string | undefined = undefined;\n  @Output() onUploadCertificate: EventEmitter<string> = new EventEmitter();\n\n  constructor(private translationService: TranslationService) {}\n\n  t(key: string): string {\n    return this.translationService.translate(key);\n  }\n}\n","<div class=\"certificate\">\n  <cardinal-certificate-status\n    *ngIf=\"certificateValid && !errorWhileVerifyingCertificate\"\n    [status]=\"'success'\"\n    [title]=\"t('practitioner.certificateFeedback.successTitle')\"\n    [description]=\"t('practitioner.certificateFeedback.successDescription')\" />\n\n  <cardinal-certificate-status\n    *ngIf=\"!certificateValid && !certificateUploaded\"\n    [status]=\"'error'\"\n    [title]=\"t('practitioner.certificateFeedback.failureTitle')\"\n    [description]=\"t('practitioner.certificateFeedback.failureDescription')\" />\n\n  <cardinal-certificate-status\n    *ngIf=\"errorWhileVerifyingCertificate\"\n    [status]=\"'error'\"\n    [title]=\"t('practitioner.certificateFeedback.verificationErrorTitle')\"\n    [description]=\"errorWhileVerifyingCertificate\" />\n\n  <cardinal-certificate-upload\n    [hcp]=\"hcp\"\n    *ngIf=\"!certificateValid || !certificateUploaded\"\n    (onUploadCertificate)=\"onUploadCertificate.emit($event)\" />\n</div>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { IconComponentBase } from '../../../../types';\n\n@Component({\n  selector: 'cardinal-edit-icn',\n  imports: [],\n  templateUrl: './edit-icn.component.html',\n  styleUrl: './edit-icn.component.scss',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: true,\n})\nexport class EditIcnComponent implements IconComponentBase {\n  @Input({ required: true }) color: string = 'currentColor';\n}\n","<svg\n  width=\"14\"\n  height=\"14\"\n  viewBox=\"0 0 14 14\"\n  fill=\"none\"\n  xmlns=\"http://www.w3.org/2000/svg\">\n  <path\n    d=\"M7.277 9.81458L12.1624 4.92916L11.4041 4.17083L6.51867 9.05625L7.277 9.81458ZM3.47075 11.0833C2.49853 11.0347 1.77422 10.8306 1.29784 10.4708C0.821446 10.1111 0.583252 9.59097 0.583252 8.91041C0.583252 8.27847 0.843321 7.76562 1.36346 7.37187C1.8836 6.97812 2.60547 6.74236 3.52909 6.66458C3.90825 6.63541 4.19263 6.57465 4.38221 6.48229C4.57179 6.38993 4.66659 6.26111 4.66659 6.09583C4.66659 5.84305 4.52318 5.65347 4.23638 5.52708C3.94957 5.40069 3.47561 5.30833 2.8145 5.25L2.91659 4.08333C3.91797 4.16111 4.65443 4.36284 5.12596 4.68854C5.59749 5.01423 5.83325 5.48333 5.83325 6.09583C5.83325 6.61111 5.6461 7.01458 5.27179 7.30625C4.89749 7.59791 4.34575 7.77291 3.61659 7.83125C2.99436 7.87986 2.5277 7.99409 2.21659 8.17396C1.90547 8.35382 1.74992 8.5993 1.74992 8.91041C1.74992 9.25069 1.88603 9.49618 2.15825 9.64687C2.43047 9.79757 2.88742 9.8875 3.52909 9.91666L3.47075 11.0833ZM7.55409 11.1854L5.14784 8.77916L10.7187 3.20833C10.9131 3.01389 11.144 2.91666 11.4114 2.91666C11.6787 2.91666 11.9096 3.01389 12.1041 3.20833L13.1249 4.22916C13.3194 4.42361 13.4166 4.65451 13.4166 4.92187C13.4166 5.18923 13.3194 5.42014 13.1249 5.61458L7.55409 11.1854ZM5.23534 11.6667C5.07006 11.7056 4.92422 11.6618 4.79784 11.5354C4.67145 11.409 4.6277 11.2632 4.66659 11.0979L5.14784 8.77916L7.55409 11.1854L5.23534 11.6667Z\"\n    [attr.fill]=\"color\" />\n</svg>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { IconComponentBase } from '../../../../types';\n\n@Component({\n  selector: 'cardinal-delete-icn',\n  imports: [],\n  templateUrl: './delete-icn.component.html',\n  styleUrl: './delete-icn.component.scss',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: true,\n})\nexport class DeleteIcnComponent implements IconComponentBase {\n  @Input({ required: true }) color: string = 'currentColor';\n}\n","<svg\n  width=\"14\"\n  height=\"14\"\n  viewBox=\"0 0 14 14\"\n  fill=\"none\"\n  xmlns=\"http://www.w3.org/2000/svg\">\n  <path\n    d=\"M5.83325 5.25C6.15542 5.25 6.41659 5.51117 6.41659 5.83334V9.625C6.41659 9.94717 6.15542 10.2083 5.83325 10.2083C5.51109 10.2083 5.24992 9.94717 5.24992 9.625V5.83334C5.24992 5.51117 5.51109 5.25 5.83325 5.25Z\"\n    [attr.fill]=\"color\" />\n  <path\n    d=\"M8.74992 5.83334C8.74992 5.51117 8.48875 5.25 8.16659 5.25C7.84442 5.25 7.58325 5.51117 7.58325 5.83334V9.625C7.58325 9.94717 7.84442 10.2083 8.16659 10.2083C8.48875 10.2083 8.74992 9.94717 8.74992 9.625V5.83334Z\"\n    [attr.fill]=\"color\" />\n  <path\n    fill-rule=\"evenodd\"\n    clip-rule=\"evenodd\"\n    d=\"M5.62588 0.583336C5.41285 0.583336 5.21676 0.699465 5.11436 0.88627L4.32112 2.33334H1.16659C0.844419 2.33334 0.583252 2.5945 0.583252 2.91667C0.583252 3.23884 0.844419 3.5 1.16659 3.5H2.04159V12.8333C2.04159 13.1555 2.30275 13.4167 2.62492 13.4167H11.3749C11.6971 13.4167 11.9583 13.1555 11.9583 12.8333V3.5H12.8333C13.1554 3.5 13.4166 3.23884 13.4166 2.91667C13.4166 2.5945 13.1554 2.33334 12.8333 2.33334H9.68208L8.90713 0.890634C8.80548 0.701395 8.60805 0.583336 8.39324 0.583336H5.62588ZM8.35775 2.33334L8.04442 1.75H5.97134L5.65158 2.33334H8.35775ZM3.20825 3.5V12.25H10.7916V3.5H3.20825Z\"\n    [attr.fill]=\"color\" />\n</svg>\n","import {\n  Component,\n  Input,\n  Output,\n  EventEmitter,\n  ChangeDetectionStrategy,\n} from '@angular/core';\nimport { PrescribedMedicationType } from '../../../../shared/types';\nimport { NgIf } from '@angular/common';\nimport { EditIcnComponent } from '../../common/icons/edit-icn/edit-icn.component';\nimport { DeleteIcnComponent } from '../../common/icons/delete-icn/delete-icn.component';\n\n@Component({\n  selector: 'cardinal-prescription-card',\n  imports: [NgIf, EditIcnComponent, DeleteIcnComponent],\n  templateUrl: './prescription-card.component.html',\n  styleUrl: './prescription-card.component.scss',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: true,\n})\nexport class PrescriptionRowComponent {\n  @Input({ required: true }) prescribedMedication!: PrescribedMedicationType;\n  @Output() handleModifyPrescription: EventEmitter<PrescribedMedicationType> =\n    new EventEmitter();\n  @Output() handleDeletePrescription: EventEmitter<PrescribedMedicationType> =\n    new EventEmitter();\n\n  onModifyClick() {\n    this.handleModifyPrescription.emit(this.prescribedMedication);\n  }\n\n  onDeleteClick() {\n    this.handleDeletePrescription.emit(this.prescribedMedication);\n  }\n}\n","<div\n  *ngIf=\"prescribedMedication\"\n  class=\"prescriptionCard\"\n  [class.prescribed]=\"prescribedMedication.rid\">\n  <div class=\"header\">\n    <div class=\"header__prescription\">\n      <div class=\"header__prescription__content\">\n        <div class=\"header__prescription__content__title\">\n          <h3>\n            {{\n              prescribedMedication.medication.medicinalProduct?.intendedname ||\n                prescribedMedication.medication.substanceProduct\n                  ?.intendedname ||\n                prescribedMedication.medication.compoundPrescription\n            }}\n          </h3>\n        </div>\n        <p>{{ prescribedMedication.medication.instructionForPatient }}</p>\n      </div>\n    </div>\n  </div>\n\n  <div *ngIf=\"!prescribedMedication.rid\" class=\"actions\">\n    <button class=\"actions__btn actions__btn--edit\" (click)=\"onModifyClick()\">\n      <cardinal-edit-icn [color]=\"'#383A3C'\" />\n    </button>\n    <button class=\"actions__btn actions__btn--delete\" (click)=\"onDeleteClick()\">\n      <cardinal-delete-icn [color]=\"'#383A3C'\" />\n    </button>\n  </div>\n\n  <div *ngIf=\"prescribedMedication.rid\" class=\"rid\">\n    {{ prescribedMedication.rid }}\n  </div>\n</div>\n","import {\n  Component,\n  Input,\n  Output,\n  EventEmitter,\n  ChangeDetectionStrategy,\n} from '@angular/core';\nimport { NgForOf, NgIf } from '@angular/common';\n\nimport { PrescriptionRowComponent } from '../../../internal/components/prescription-elements/prescription-card/prescription-card.component';\nimport { ButtonComponent } from '../../../internal/components/form-elements/button/button.component';\n\nimport { TranslationService } from '../../services/translation/translation.service';\nimport { PrescribedMedicationType } from '../../types';\n\n@Component({\n  standalone: true,\n  selector: 'cardinal-prescription-list',\n  imports: [PrescriptionRowComponent, NgForOf, NgIf, ButtonComponent],\n  templateUrl: './prescription-list.component.html',\n  styleUrl: './prescription-list.component.scss',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PrescriptionListComponent {\n  @Input({ required: true }) prescribedMedications!: PrescribedMedicationType[];\n\n  @Input({ required: true }) sending!: boolean;\n  @Input({ required: true }) printing!: boolean;\n\n  @Output() sendPrescriptions = new EventEmitter<void>();\n  @Output() sendAndPrintPrescriptions = new EventEmitter<void>();\n  @Output() printPrescriptions = new EventEmitter<void>();\n\n  @Output() handleModifyPrescription =\n    new EventEmitter<PrescribedMedicationType>();\n  @Output() handleDeletePrescription =\n    new EventEmitter<PrescribedMedicationType>();\n\n  constructor(private translationService: TranslationService) {}\n\n  t(key: string): string {\n    return this.translationService.translate(key);\n  }\n\n  get sentPrescriptions() {\n    return this.prescribedMedications.filter(item => !!item.rid);\n  }\n\n  get pendingPrescriptions(): PrescribedMedicationType[] {\n    return this.prescribedMedications.filter(item => !item.rid);\n  }\n\n  onClickSend(): void {\n    this.sendPrescriptions.emit();\n  }\n\n  onClickPrint(): void {\n    this.printPrescriptions.emit();\n  }\n\n  onClickSendAndPrint(): void {\n    this.sendAndPrintPrescriptions.emit();\n  }\n}\n","<div class=\"prescriptionsWrap\">\n  <div *ngIf=\"sentPrescriptions.length\" class=\"prescriptions\">\n    <p class=\"prescriptions__title\">{{ t('prescription.list.sentTitle') }}</p>\n    <div class=\"prescriptions__rows\">\n      <cardinal-prescription-card\n        *ngFor=\"let medication of sentPrescriptions\"\n        [prescribedMedication]=\"medication\"\n        (handleModifyPrescription)=\"handleModifyPrescription.emit($event)\"\n        (handleDeletePrescription)=\"handleDeletePrescription.emit($event)\" />\n    </div>\n\n    <div class=\"prescriptions__footer\">\n      <cardinal-button\n        [disabled]=\"sending\"\n        [view]=\"printing && !sending ? 'withSpinner' : 'outlined'\"\n        type=\"submit\"\n        (click)=\"onClickPrint()\">\n        {{ t('prescription.list.print') }}\n      </cardinal-button>\n    </div>\n  </div>\n\n  <div *ngIf=\"pendingPrescriptions.length\" class=\"prescriptions\">\n    <p class=\"prescriptions__title\">\n      {{ t('prescription.list.pendingTitle') }}\n    </p>\n\n    <div class=\"prescriptions__rows\">\n      <cardinal-prescription-card\n        *ngFor=\"let medication of pendingPrescriptions\"\n        [prescribedMedication]=\"medication\"\n        (handleModifyPrescription)=\"handleModifyPrescription.emit($event)\"\n        (handleDeletePrescription)=\"handleDeletePrescription.emit($event)\" />\n    </div>\n\n    <div class=\"prescriptions__footer\">\n      <cardinal-button\n        [disabled]=\"sending\"\n        [view]=\"printing ? 'withSpinner' : 'outlined'\"\n        type=\"submit\"\n        (click)=\"onClickSendAndPrint()\">\n        {{ t('prescription.list.sendAndPrint') }}\n      </cardinal-button>\n\n      <cardinal-button\n        [disabled]=\"printing\"\n        [view]=\"sending && !printing ? 'withSpinner' : 'primary'\"\n        type=\"submit\"\n        (click)=\"onClickSend()\">\n        {{ t('prescription.list.send') }}\n      </cardinal-button>\n    </div>\n  </div>\n</div>\n","import {\n  Component,\n  Input,\n  forwardRef,\n  Output,\n  EventEmitter,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n} from '@angular/core';\nimport {\n  ControlValueAccessor,\n  FormsModule,\n  NG_VALUE_ACCESSOR,\n} from '@angular/forms';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n  selector: 'cardinal-select-input',\n  standalone: true,\n  imports: [CommonModule, FormsModule],\n  templateUrl: './select-input.component.html',\n  styleUrls: ['./select-input.component.scss'],\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => SelectInputComponent),\n      multi: true,\n    },\n  ],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SelectInputComponent implements ControlValueAccessor {\n  @Input({ required: true }) label!: string;\n  @Input({ required: true }) id!: string;\n  @Input() required = false;\n  @Input() disabled = false;\n  @Input({ required: true }) options: {\n    value: string | null;\n    label: string;\n  }[] = [];\n  @Input() errorMessage?: string;\n\n  @Output() valueChange = new EventEmitter<string | null>();\n\n  value: string | null = '';\n\n  constructor(private cdr: ChangeDetectorRef) {}\n\n  onChangeFn: (_: any) => void = () => {};\n  onTouchedFn: () => void = () => {};\n\n  writeValue(value: any): void {\n    this.value = value;\n    this.cdr.markForCheck(); // triggers a re-render\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.cdr.markForCheck(); // ensure view reflects disabled state\n  }\n\n  trackByOptionValue(\n    _: number,\n    option: { value: string | null; label: string }\n  ) {\n    return option.value;\n  }\n\n  onChange(event: Event): void {\n    const target = event.target as HTMLSelectElement;\n    this.value = target.value;\n    this.onChangeFn(this.value);\n    this.onTouchedFn();\n    this.valueChange.emit(this.value);\n    this.cdr.markForCheck(); // triggers a re-render\n  }\n}\n","<div class=\"selectInput\">\n  <label [for]=\"id\" [ngClass]=\"{ required: required, error: errorMessage }\">\n    <span *ngIf=\"required\">*</span>{{ label }}\n  </label>\n\n  <select\n    [id]=\"id\"\n    [name]=\"id\"\n    [ngClass]=\"{ disabled: disabled, error: errorMessage }\"\n    [disabled]=\"disabled\"\n    [(ngModel)]=\"value\"\n    (change)=\"onChange($event)\">\n    <option\n      *ngFor=\"let option of options; trackBy: trackByOptionValue\"\n      [value]=\"option.value\">\n      {{ option.label }}\n    </option>\n  </select>\n\n  <p class=\"selectInput__error\" *ngIf=\"errorMessage\">\n    {{ errorMessage }}\n  </p>\n</div>\n","import {\n  Component,\n  Input,\n  forwardRef,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\nimport { FormsModule } from '@angular/forms';\nimport { NgClass, NgForOf, NgIf } from '@angular/common';\n\n@Component({\n  selector: 'cardinal-radio-input',\n  standalone: true,\n  imports: [FormsModule, NgIf, NgForOf, NgClass],\n  templateUrl: './radio-input.component.html',\n  styleUrl: './radio-input.component.scss',\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => RadioInputComponent),\n      multi: true,\n    },\n  ],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class RadioInputComponent implements ControlValueAccessor {\n  @Input({ required: true }) label!: string;\n  @Input({ required: true }) name!: string;\n  @Input() required?: boolean = false;\n  @Input() errorMessage?: string;\n  @Input({ required: true }) options: {\n    label: string;\n    value: boolean;\n    id: string;\n  }[] = [];\n\n  value!: boolean;\n\n  constructor(private cdr: ChangeDetectorRef) {}\n\n  private onChange = (value: any) => {};\n  private onTouched = () => {};\n\n  writeValue(value: boolean): void {\n    this.value = value;\n    this.cdr.markForCheck(); // triggers a re-render\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  onSelectionChange(val: boolean) {\n    this.value = val;\n    this.onChange(val);\n    this.onTouched();\n    this.cdr.markForCheck(); // triggers a re-render\n  }\n\n  trackById(_: number, item: { id: string }) {\n    return item.id;\n  }\n}\n","<div class=\"radioBtnsGroup\">\n  <p\n    [ngClass]=\"{ required: required, error: errorMessage }\"\n    class=\"radioBtnsGroup__label\">\n    <span *ngIf=\"required\">*</span>{{ label }}\n  </p>\n\n  <div class=\"radioBtnsGroup__buttons\">\n    <label\n      *ngFor=\"let option of options; trackBy: trackById\"\n      [for]=\"option.id\"\n      class=\"radioButton\"\n      [ngClass]=\"{ error: errorMessage }\">\n      <input\n        type=\"radio\"\n        [id]=\"option.id\"\n        [name]=\"name\"\n        [value]=\"option.value\"\n        [checked]=\"value === option.value\"\n        (change)=\"onSelectionChange(option.value)\" />\n      <span class=\"radioButton__toggle\" [ngClass]=\"{ error: errorMessage }\">\n        <span class=\"radioButton__toggle__inside\"></span>\n      </span>\n      <span class=\"radioButton__label\" [ngClass]=\"{ error: errorMessage }\">{{\n        option.label\n      }}</span>\n    </label>\n  </div>\n\n  <p *ngIf=\"errorMessage\" class=\"radioBtnsGroup__error\">{{ errorMessage }}</p>\n</div>\n","import {\n  Component,\n  Input,\n  forwardRef,\n  EventEmitter,\n  Output,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n  selector: 'cardinal-toggle-switch',\n  templateUrl: './toggle-switch.component.html',\n  styleUrls: ['./toggle-switch.component.scss'],\n  standalone: true,\n  imports: [CommonModule],\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => ToggleSwitchComponent),\n      multi: true,\n    },\n  ],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ToggleSwitchComponent implements ControlValueAccessor {\n  @Input({ required: true }) id!: string;\n  @Input({ required: true }) value!: string;\n  @Input() label?: string;\n\n  @Output() checkedChange = new EventEmitter<boolean>();\n\n  checked: boolean = false;\n  disabled: boolean = false;\n\n  constructor(private cdr: ChangeDetectorRef) {}\n\n  // ControlValueAccessor required methods\n  onChange = (_: any) => {};\n  onTouched = () => {};\n\n  writeValue(value: boolean): void {\n    this.checked = value;\n    this.cdr.markForCheck();\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  setDisabledState(isDisabled: boolean): void {\n    this.disabled = isDisabled;\n    this.cdr.markForCheck();\n  }\n\n  toggle() {\n    this.checked = !this.checked;\n    this.onChange(this.checked); // notify Reactive Form of change\n    this.checkedChange.emit(this.checked);\n    this.onTouched(); // mark as touched\n    this.cdr.markForCheck();\n  }\n}\n","<div class=\"switch\">\n  <p *ngIf=\"label\" class=\"switch__label\">{{ label }}</p>\n\n  <div class=\"toggleWrapper\" [class.checked]=\"checked\">\n    <label class=\"toggle\">\n      <input\n        type=\"checkbox\"\n        [id]=\"id\"\n        [name]=\"id\"\n        [checked]=\"checked\"\n        (change)=\"toggle()\" />\n      <span class=\"slider\"></span>\n    </label>\n    <p (click)=\"toggle()\">{{ value }}</p>\n  </div>\n</div>\n","import {\n  Component,\n  Input,\n  ViewChild,\n  ElementRef,\n  forwardRef,\n  AfterViewInit,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n} from '@angular/core';\nimport {\n  ControlValueAccessor,\n  FormsModule,\n  NG_VALUE_ACCESSOR,\n} from '@angular/forms';\nimport { NgClass, NgIf } from '@angular/common';\n\n@Component({\n  selector: 'cardinal-textarea-input',\n  templateUrl: './textarea-input.component.html',\n  styleUrls: ['./textarea-input.component.scss'],\n  standalone: true,\n  imports: [NgClass, NgIf, FormsModule],\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => TextareaInputComponent),\n      multi: true,\n    },\n  ],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TextareaInputComponent\n  implements ControlValueAccessor, AfterViewInit\n{\n  @Input({ required: true }) label!: string;\n  @Input({ required: true }) id!: string;\n  @Input() required? = false;\n  @Input() disabled = false;\n  @Input() errorMessage?: string;\n  @Input() autofocus? = false;\n\n  @ViewChild('textareaRef') textareaRef!: ElementRef<HTMLTextAreaElement>;\n\n  constructor(private cdr: ChangeDetectorRef) {}\n\n  value: string = '';\n  onChange = (_: any) => {};\n  onTouched = () => {};\n\n  writeValue(value: string): void {\n    this.value = value ?? '';\n    this.cdr.markForCheck();\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  setDisabledState(isDisabled: boolean): void {\n    this.disabled = isDisabled;\n    this.cdr.markForCheck();\n  }\n\n  ngAfterViewInit(): void {\n    if (this.autofocus) {\n      setTimeout(() => this.textareaRef.nativeElement.focus());\n      this.cdr.markForCheck();\n    }\n  }\n\n  onInputChange(event: Event) {\n    const target = event.target as HTMLTextAreaElement;\n    this.value = target.value;\n    this.onChange(this.value);\n    this.onTouched();\n    this.cdr.markForCheck();\n  }\n}\n","<div class=\"textareaInput\">\n  <label [for]=\"id\" [ngClass]=\"{ required: required, error: errorMessage }\">\n    <span *ngIf=\"required\">*</span>{{ label }}\n  </label>\n  <textarea\n    #textareaRef\n    [id]=\"id\"\n    [name]=\"id\"\n    [attr.placeholder]=\"label\"\n    [disabled]=\"disabled\"\n    [ngClass]=\"{ disabled: disabled }\"\n    rows=\"2\"\n    [(ngModel)]=\"value\"\n    (input)=\"onInputChange($event)\"></textarea>\n  <p class=\"textareaInput__error\" *ngIf=\"errorMessage\">\n    {{ errorMessage }}\n  </p>\n</div>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { IconComponentBase } from '../../../../types';\n\n@Component({\n  selector: 'cardinal-close-icn',\n  imports: [],\n  templateUrl: './close-icn.component.html',\n  styleUrl: './close-icn.component.scss',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: true,\n})\nexport class CloseIcnComponent implements IconComponentBase {\n  @Input({ required: true }) color: string = 'currentColor';\n}\n","<svg\n  width=\"16\"\n  height=\"16\"\n  viewBox=\"0 0 16 16\"\n  fill=\"none\"\n  xmlns=\"http://www.w3.org/2000/svg\">\n  <path\n    fill-rule=\"evenodd\"\n    clip-rule=\"evenodd\"\n    d=\"M13.1404 2.32697C13.1407 2.32697 13.1411 2.32732 13.1418 2.32804L14.172 3.3584C14.1727 3.35893 14.1729 3.35929 14.1731 3.35982C14.1732 3.36018 14.1732 3.36054 14.1731 3.3609C14.1731 3.36143 14.1727 3.36179 14.172 3.3625L9.0345 8.5L14.172 13.6375C14.1727 13.6382 14.1729 13.6386 14.1731 13.6391C14.1732 13.6395 14.1732 13.64 14.1731 13.6404C14.1731 13.6407 14.1727 13.6411 14.172 13.6418L13.1416 14.672C13.1411 14.6727 13.1407 14.6729 13.1404 14.673C13.14 14.6732 13.1395 14.6732 13.1391 14.673C13.1386 14.673 13.1382 14.6727 13.1375 14.672L8.00003 9.53447L2.86253 14.672C2.86182 14.6727 2.86146 14.6729 2.86093 14.673C2.86052 14.6732 2.86008 14.6732 2.85968 14.673C2.85932 14.673 2.85896 14.6727 2.85825 14.672L1.82807 13.6416C1.82735 13.6411 1.82718 13.6407 1.827 13.6404C1.82687 13.64 1.82687 13.6395 1.827 13.6391C1.827 13.6386 1.82735 13.6382 1.82807 13.6375L6.96557 8.5L1.82807 3.3625C1.82735 3.36179 1.82718 3.36143 1.827 3.3609C1.82687 3.36049 1.82687 3.36005 1.827 3.35965C1.827 3.35929 1.82735 3.35893 1.82807 3.35822L2.85843 2.32804C2.85896 2.32732 2.85932 2.32715 2.85968 2.32697C2.86008 2.32684 2.86052 2.32684 2.86093 2.32697C2.86146 2.32697 2.86182 2.32732 2.86253 2.32804L8.00003 7.46554L13.1375 2.32804C13.1382 2.32732 13.1386 2.32715 13.1391 2.32697C13.1395 2.32684 13.14 2.32684 13.1404 2.32697Z\"\n    [attr.fill]=\"color\" />\n</svg>\n","export enum durationTimeUnitsEnum {\n  DAY = 'DAY',\n  WEEK = 'WEEK',\n}\n\nexport const getDurationTimeUnits = (t: (key: string) => string) => [\n  {\n    value: durationTimeUnitsEnum.DAY,\n    label: t('prescriptionDurationHelper.durationUnits.day'),\n  },\n  {\n    value: durationTimeUnitsEnum.WEEK,\n    label: t('prescriptionDurationHelper.durationUnits.week'),\n  },\n];\n\nexport enum periodicityTimeUnitsEnum {\n  NONE = '0',\n  WEEK = '7',\n  TWO_WEEKS = '14',\n  THREE_WEEKS = '21',\n  NUMBER_OF_DAYS = '1',\n}\n\nexport const getPeriodicityTimeUnits = (t: (key: string) => string) => [\n  {\n    value: periodicityTimeUnitsEnum.NONE,\n    label: t('prescriptionDurationHelper.periodicityUnits.none'),\n  },\n  {\n    value: periodicityTimeUnitsEnum.WEEK,\n    label: t('prescriptionDurationHelper.periodicityUnits.week'),\n  },\n  {\n    value: periodicityTimeUnitsEnum.TWO_WEEKS,\n    label: t('prescriptionDurationHelper.periodicityUnits.twoWeeks'),\n  },\n  {\n    value: periodicityTimeUnitsEnum.THREE_WEEKS,\n    label: t('prescriptionDurationHelper.periodicityUnits.threeWeeks'),\n  },\n  {\n    value: periodicityTimeUnitsEnum.NUMBER_OF_DAYS,\n    label: t('prescriptionDurationHelper.periodicityUnits.numberOfDays'),\n  },\n];\n\nexport const getDurationInDays = (\n  timeUnit: durationTimeUnitsEnum,\n  value: number\n): number => {\n  if (timeUnit === durationTimeUnitsEnum.DAY) {\n    return value;\n  } else if (timeUnit === durationTimeUnitsEnum.WEEK) {\n    return value * 7;\n  }\n  // Handle unexpected values of timeUnit (optional but recommended)\n  throw new Error(`Invalid time unit: ${timeUnit}`);\n};\n\nexport const getDurationFromDays = (numberOfDays: number) => {\n  if (numberOfDays % 7 === 0) {\n    return {\n      duration: numberOfDays / 7,\n      durationTimeUnit: durationTimeUnitsEnum.WEEK,\n    };\n  } else {\n    return {\n      duration: numberOfDays,\n      durationTimeUnit: durationTimeUnitsEnum.DAY,\n    };\n  }\n};\n","import { PharmacistVisibilityType, PractitionerVisibilityType } from '../types';\nimport { TranslationService } from '../../shared/services/translation/translation.service';\n\nexport function getPractitionerVisibilityOptions(\n  t: TranslationService['translate']\n): {\n  value: PractitionerVisibilityType;\n  label: string;\n}[] {\n  return [\n    {\n      value: 'open',\n      label: t('prescriptionVisibilityHelper.practitionerVisibility.open'),\n    },\n    {\n      value: 'locked',\n      label: t('prescriptionVisibilityHelper.practitionerVisibility.locked'),\n    },\n    {\n      value: 'gmd_prescriber',\n      label: t(\n        'prescriptionVisibilityHelper.practitionerVisibility.gmd_prescriber'\n      ),\n    },\n  ];\n}\n\nexport function getPharmacistVisibilityOptions(\n  t: TranslationService['translate']\n): {\n  value: PharmacistVisibilityType;\n  label: string;\n}[] {\n  return [\n    {\n      value: null,\n      label: t('prescriptionVisibilityHelper.pharmacistVisibility.null'),\n    },\n    {\n      value: 'locked',\n      label: t('prescriptionVisibilityHelper.pharmacistVisibility.locked'),\n    },\n  ];\n}\n","import { Injectable } from '@angular/core';\nimport {\n  fhcStsApi,\n  fhcRecipeApi,\n  UUIDType,\n  Prescription,\n  PrescriptionRequest,\n  Patient,\n  HealthcareParty,\n  Code as FhcCode,\n  SamlTokenResult,\n} from '@icure/be-fhc-lite-api';\nimport { SamText, SamVersion } from '@icure/cardinal-be-sam-sdk';\n\nimport { UploadPractitionerCertificateService } from '../certificate/upload-practitioner-certificate.service';\nimport { dateEncode } from '../../../internal/utils/date-helpers';\n\nimport {\n  CertificateValidationResultType,\n  PrescribedMedicationType,\n  TokenStore,\n} from '../../types';\nimport { TranslationService } from '../translation/translation.service';\n\n// TODO: Replace with actual vendor information and package details\n\nconst vendor = {\n  vendorEmail: 'support@test.be',\n  vendorName: 'vendorName',\n  vendorPhone: '+3200000000',\n};\n\nconst usedPackage = {\n  packageName: 'test[test/1.0]-freehealth-connector',\n  packageVersion: '1.0-freehealth-connector',\n};\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class FhcService {\n  private language: keyof SamText;\n  constructor(\n    private certificateService: UploadPractitionerCertificateService,\n    private translationService: TranslationService\n  ) {\n    this.language = this.translationService.getCurrentLanguage();\n  }\n\n  // Method to create a Free Health Connector Code\n  createFhcFromCode(type: string, code: string, version?: string): FhcCode {\n    return new FhcCode({\n      id: `${type}:${code}:${version ?? '1.0'}`,\n      type,\n      code,\n      version: version ?? '1.0',\n    });\n  }\n\n  // Create the prescription request\n  makePrescriptionRequest(\n    samVersion: SamVersion,\n    prescriber: HealthcareParty,\n    patient: Patient,\n    prescribedMedication: PrescribedMedicationType\n  ): PrescriptionRequest {\n    return new PrescriptionRequest({\n      medications: [prescribedMedication.medication],\n      patient: {\n        firstName: patient.firstName,\n        lastName: patient.lastName,\n        ssin: patient.ssin,\n        dateOfBirth: patient.dateOfBirth,\n      },\n      hcp: {\n        firstName: prescriber.firstName,\n        lastName: prescriber.lastName,\n        ssin: prescriber.ssin,\n        nihii: prescriber.nihii,\n        addresses: prescriber.addresses,\n      },\n      feedback: false,\n      vendorName: vendor.vendorName,\n      vendorEmail: vendor.vendorEmail,\n      vendorPhone: vendor.vendorPhone,\n      packageName: usedPackage.packageName,\n      packageVersion: usedPackage.packageVersion,\n      vision: prescribedMedication.pharmacistVisibility,\n      visionOthers: prescribedMedication.prescriberVisibility,\n      samVersion: samVersion.version,\n      deliveryDate:\n        prescribedMedication.medication.beginMoment ?? dateEncode(new Date()),\n      expirationDate:\n        prescribedMedication.medication.beginMoment ??\n        dateEncode(new Date(+new Date() + 1000 * 3600 * 24 * 90)),\n      lang: this.language,\n    });\n  }\n\n  async sendRecipe(\n    samVersion: SamVersion,\n    prescriber: HealthcareParty,\n    patient: Patient,\n    prescribedMedication: PrescribedMedicationType,\n    passphrase: string,\n    cache: TokenStore\n  ): Promise<Prescription[]> {\n    const prescription = this.makePrescriptionRequest(\n      samVersion,\n      prescriber,\n      patient,\n      prescribedMedication\n    );\n\n    if (!prescriber || !prescriber.ssin || !prescriber.nihii) {\n      throw new Error('Missing prescriber information');\n    }\n\n    // Load and decrypt keystore\n    const keystore = await this.certificateService.loadAndDecryptCertificate(\n      passphrase,\n      prescriber.ssin\n    );\n    if (!keystore) {\n      throw new Error('Cannot obtain keystore');\n    }\n\n    const url = 'https://fhcacc.icure.cloud';\n\n    const sts = new fhcStsApi(url, []);\n    const recipe = new fhcRecipeApi(url, []);\n\n    let storeKey = `keystore.${prescriber.ssin}`;\n\n    const keystoreUuid =\n      (await cache.get(storeKey)) ??\n      (await sts\n        .uploadKeystoreUsingPOST(keystore)\n        .then(({ uuid }: UUIDType) => {\n          if (!uuid) {\n            throw new Error('Cannot obtain keystore uuid');\n          }\n          return cache.put(storeKey, uuid);\n        }));\n\n    const stsToken: SamlTokenResult = await sts.requestTokenUsingGET(\n      passphrase,\n      prescriber.ssin,\n      keystoreUuid,\n      'doctor',\n      await cache.get(storeKey)\n    );\n\n    if (!stsToken.tokenId) {\n      console.error('Cannot obtain token');\n    }\n\n    return Promise.all(\n      prescription.medications?.map(m =>\n        recipe.createPrescriptionV4UsingPOST(\n          keystoreUuid,\n          stsToken.tokenId!,\n          passphrase,\n          'persphysician',\n          prescriber.nihii!,\n          prescriber.ssin!,\n          `${prescriber.firstName!} ${prescriber.lastName!}`,\n          'iCure',\n          '1',\n          new PrescriptionRequest({ ...prescription, medications: [m] })\n        )\n      ) ?? []\n    );\n  }\n\n  async verifyCertificateWithSts(\n    prescriber: HealthcareParty,\n    passphrase: string,\n    cache: TokenStore\n  ): Promise<CertificateValidationResultType> {\n    if (!prescriber?.ssin || !prescriber?.nihii) {\n      return {\n        status: false,\n        error: {\n          en: 'Missing prescriber information',\n          fr: 'Informations du prescripteur manquantes',\n          nl: 'Ontbrekende voorschrijversinformatie',\n          de: 'Fehlende Verschreiberinformationen',\n        },\n      };\n    }\n\n    try {\n      const keystore = await this.certificateService.loadAndDecryptCertificate(\n        passphrase,\n        prescriber.ssin\n      );\n      if (!keystore) {\n        return {\n          status: false,\n          error: {\n            en: 'Cannot obtain the certificat',\n            fr: 'Impossible d’obtenir le certificat',\n            nl: 'Certificaat kan niet worden verkregen',\n            de: 'Zertifikat kann nicht abgerufen werden',\n          },\n        };\n      }\n\n      const url = 'https://fhcacc.icure.cloud';\n      const sts = new fhcStsApi(url, []);\n\n      const storeKey = `keystore.${prescriber.ssin}`;\n\n      const keystoreUuid = await sts\n        .uploadKeystoreUsingPOST(keystore)\n        .then(({ uuid }: UUIDType) => {\n          if (!uuid) {\n            throw new Error('Cannot obtain keystore uuid');\n          }\n          return cache.put(storeKey, uuid);\n        });\n\n      const token = await cache.get(storeKey);\n      const stsToken = await sts.requestTokenUsingGET(\n        passphrase,\n        prescriber.ssin,\n        keystoreUuid,\n        'doctor',\n        token\n      );\n      return { status: !!stsToken.tokenId };\n    } catch (error: any) {\n      console.error('Certificate verification error:', error);\n      return {\n        status: false,\n        error: {\n          en: error?.message || 'Unknown error occurred',\n          fr: error?.message || 'Une erreur inconnue est survenue',\n          nl: error?.message || 'Er is een onbekende fout opgetreden',\n          de: error?.message || 'Ein unbekannter Fehler ist aufgetreten',\n        },\n      };\n    }\n  }\n\n  // Validate the certificate by loading and decrypting it, then verifying with FHC\n  async validateDecryptedCertificate(\n    hcp: HealthcareParty,\n    passphrase: string,\n    indexedDbTokenStore: TokenStore\n  ): Promise<CertificateValidationResultType> {\n    try {\n      await this.certificateService.loadAndDecryptCertificate(\n        passphrase,\n        hcp.ssin!\n      );\n      const res = await this.verifyCertificateWithSts(\n        hcp,\n        passphrase,\n        indexedDbTokenStore\n      );\n      return { status: res.status, error: res.error };\n    } catch {\n      return { status: false };\n    }\n  }\n}\n","import { Injectable } from '@angular/core';\n\nimport {\n  Duration,\n  Medication,\n  Substanceproduct,\n  Medicinalproduct,\n} from '@icure/be-fhc-lite-api';\nimport { v4 as uuid } from 'uuid'; // For generating UUIDs\nimport { FhcService } from '../../../shared/services/api/fhc.service';\nimport { offsetDate } from '../../utils/date-helpers';\nimport {\n  durationTimeUnitsEnum,\n  getDurationInDays,\n} from '../../utils/prescription-duration-helpers';\nimport { PrescriptionFormType } from '../../types'; // Assuming you have utility functions\nimport {\n  MedicationType,\n  PrescribedMedicationType,\n} from '../../../shared/types';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class CreatePrescriptionService {\n  constructor(private fhcService: FhcService) {}\n\n  createPrescribedMedication(\n    formValues: PrescriptionFormType,\n    prescribedMedication?: PrescribedMedicationType | undefined,\n    medicationToPrescribe?: MedicationType | undefined\n  ): PrescribedMedicationType[] {\n    if (prescribedMedication) {\n      return this.createSinglePrescribedMedication(\n        prescribedMedication,\n        formValues\n      );\n    } else if (medicationToPrescribe) {\n      return this.createMultiplePrescribedMedications(\n        formValues,\n        medicationToPrescribe\n      );\n    } else {\n      return [];\n    }\n  }\n\n  private createSinglePrescribedMedication(\n    prescribedMedication: PrescribedMedicationType,\n    formValues: PrescriptionFormType\n  ) {\n    return [\n      {\n        ...prescribedMedication,\n        medication: new Medication({\n          ...prescribedMedication.medication,\n          beginMoment: offsetDate(\n            parseInt(\n              (formValues.treatmentStartDate as string)?.replace(/-/g, '')\n            ),\n            formValues.periodicityTimeUnit\n              ? parseInt(formValues.periodicityTimeUnit) *\n                  (formValues.periodicityDaysNumber ?? 1)\n              : 0\n          ),\n\n          endMoment: offsetDate(\n            parseInt((formValues.executableUntil as string)?.replace(/-/g, '')),\n            formValues.periodicityTimeUnit\n              ? parseInt(formValues.periodicityTimeUnit) *\n                  (formValues.periodicityDaysNumber ?? 1)\n              : 0\n          ),\n          duration: new Duration({\n            unit: this.fhcService.createFhcFromCode('CD-TIMEUNIT', 'D'),\n            value: getDurationInDays(\n              formValues.durationTimeUnit as durationTimeUnitsEnum,\n              formValues.duration as number\n            ),\n          }),\n          instructionForPatient: formValues.dosage,\n          recipeInstructionForPatient: formValues.recipeInstructionForPatient,\n          instructionsForReimbursement: formValues.instructionsForReimbursement,\n          substitutionAllowed: formValues.substitutionAllowed,\n        }),\n        prescriberVisibility: formValues.prescriberVisibility,\n        pharmacistVisibility: formValues.pharmacistVisibility,\n      },\n    ];\n  }\n\n  private createMultiplePrescribedMedications(\n    formValues: PrescriptionFormType,\n    medicationToPrescribe: MedicationType\n  ) {\n    const prescriptionsNumber = formValues.prescriptionsNumber ?? 1;\n    return Array.from({ length: prescriptionsNumber }, (_, idx) => {\n      return {\n        uuid: uuid(),\n        medication: this.createMedicationForPrescription(\n          formValues,\n          medicationToPrescribe,\n          idx\n        ),\n        prescriberVisibility: formValues.prescriberVisibility,\n        pharmacistVisibility: formValues.pharmacistVisibility,\n      };\n    });\n  }\n\n  private createMedicationForPrescription(\n    formValues: PrescriptionFormType,\n    medicationToPrescribe: MedicationType,\n    idx: number\n  ): Medication {\n    const medicationData = this.determineMedicationData(medicationToPrescribe);\n\n    return new Medication({\n      ...medicationData,\n      beginMoment: offsetDate(\n        parseInt((formValues.treatmentStartDate as string)?.replace(/-/g, '')),\n        formValues.periodicityTimeUnit\n          ? parseInt(formValues.periodicityTimeUnit) *\n              (formValues.periodicityDaysNumber ?? 1) *\n              idx\n          : 0\n      ),\n\n      endMoment: offsetDate(\n        parseInt((formValues.executableUntil as string)?.replace(/-/g, '')),\n        formValues.periodicityTimeUnit\n          ? parseInt(formValues.periodicityTimeUnit) *\n              (formValues.periodicityDaysNumber ?? 1) *\n              idx\n          : 0\n      ),\n      duration: new Duration({\n        unit: this.fhcService.createFhcFromCode('CD-TIMEUNIT', 'D'),\n        value: getDurationInDays(\n          formValues.durationTimeUnit as durationTimeUnitsEnum,\n          formValues.duration as number\n        ),\n      }),\n      instructionForPatient: formValues.dosage,\n      recipeInstructionForPatient: formValues.recipeInstructionForPatient,\n      instructionsForReimbursement: formValues.instructionsForReimbursement,\n      substitutionAllowed: formValues.substitutionAllowed,\n    });\n  }\n\n  private determineMedicationData(medicationToPrescribe: MedicationType) {\n    if (\n      medicationToPrescribe?.ampId &&\n      !medicationToPrescribe.genericPrescriptionRequired &&\n      medicationToPrescribe.cnk\n    ) {\n      return {\n        medicinalProduct: new Medicinalproduct({\n          samId: medicationToPrescribe.dmppProductId,\n          intendedcds: [\n            this.fhcService.createFhcFromCode(\n              'CD-DRUG-CNK',\n              medicationToPrescribe.cnk\n            ),\n          ],\n          intendedname: medicationToPrescribe.intendedName,\n        }),\n      };\n    } else if (medicationToPrescribe?.vmpGroupId) {\n      return {\n        substanceProduct: new Substanceproduct({\n          samId: medicationToPrescribe.vmpGroupId,\n          intendedcds: [\n            this.fhcService.createFhcFromCode(\n              'CD_VMPGROUP',\n              medicationToPrescribe.vmpGroupId\n            ),\n          ],\n          intendedname:\n            medicationToPrescribe.vmpTitle ?? medicationToPrescribe.title,\n        }),\n      };\n    } else {\n      return { compoundPrescription: medicationToPrescribe.title };\n    }\n  }\n}\n","import {\n  Component,\n  EventEmitter,\n  Input,\n  OnInit,\n  Output,\n  OnDestroy,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  SimpleChanges,\n  OnChanges,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport {\n  NonNullableFormBuilder,\n  FormGroup,\n  ReactiveFormsModule,\n  Validators,\n} from '@angular/forms';\nimport { Subscription } from 'rxjs';\nimport { makeParser } from '@icure/medication-sdk';\nimport { SamText } from '@icure/cardinal-be-sam-sdk';\n\nimport { ButtonComponent } from '../../../internal/components/form-elements/button/button.component';\nimport { TextInputComponent } from '../../../internal/components/form-elements/text-input/text-input.component';\nimport { SelectInputComponent } from '../../../internal/components/form-elements/select-input/select-input.component';\nimport { RadioInputComponent } from '../../../internal/components/form-elements/radio-input/radio-input.component';\nimport { ToggleSwitchComponent } from '../../../internal/components/form-elements/toggle-switch/toggle-switch.component';\nimport { TextareaInputComponent } from '../../../internal/components/form-elements/textarea-input/textarea-input.component';\nimport { CloseIcnComponent } from '../../../internal/components/common/icons/close-icn/close-icn.component';\nimport {\n  PharmacistVisibilityType,\n  PractitionerVisibilityType,\n} from '../../../internal/types';\nimport {\n  getTreatmentStartDate,\n  getExecutableUntilDate,\n} from '../../../internal/utils/date-helpers';\nimport {\n  durationTimeUnitsEnum,\n  getDurationFromDays,\n  getDurationTimeUnits,\n  getPeriodicityTimeUnits,\n  periodicityTimeUnitsEnum,\n} from '../../../internal/utils/prescription-duration-helpers';\nimport {\n  getPractitionerVisibilityOptions,\n  getPharmacistVisibilityOptions,\n} from '../../../internal/utils/visibility-helpers';\nimport { CreatePrescriptionService } from '../../../internal/services/prescription/create-prescription.service';\nimport { ReimbursementType } from '../../../internal/types/reimbursement';\nimport { getReimbursementOptions } from '../../../internal/utils/reimbursement-helpers';\n\nimport { TranslationService } from '../../services/translation/translation.service';\nimport { MedicationType, PrescribedMedicationType } from '../../types';\n\n@Component({\n  selector: 'cardinal-prescription-modal',\n  standalone: true,\n  imports: [\n    CommonModule,\n    ReactiveFormsModule,\n    ButtonComponent,\n    TextInputComponent,\n    TextareaInputComponent,\n    SelectInputComponent,\n    RadioInputComponent,\n    ToggleSwitchComponent,\n    CloseIcnComponent,\n  ],\n  templateUrl: './prescription-modal.component.html',\n  styleUrl: './prescription-modal.component.scss',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PrescriptionModalComponent\n  implements OnInit, OnChanges, OnDestroy\n{\n  @Input({ required: true }) modalTitle!: string;\n  @Input() medicationToPrescribe?: MedicationType;\n  @Input() prescriptionToModify?: PrescribedMedicationType;\n\n  @Output() handleSubmit = new EventEmitter<PrescribedMedicationType[]>();\n  @Output() handleCancel = new EventEmitter<void>();\n\n  constructor(\n    private fb: NonNullableFormBuilder,\n    private createPrescriptionService: CreatePrescriptionService,\n    private translationService: TranslationService,\n    private cdr: ChangeDetectorRef\n  ) {}\n\n  readonly t = (key: string): string => {\n    return this.translationService.translate(key);\n  };\n\n  language: keyof SamText = 'fr';\n\n  prescriptionForm!: FormGroup;\n  private subscriptions: Subscription[] = [];\n\n  practitionerVisibilityOptions: {\n    value: PractitionerVisibilityType;\n    label: string;\n  }[] = [];\n  pharmacistVisibilityOptions: {\n    value: PharmacistVisibilityType;\n    label: string;\n  }[] = [];\n  reimbursementOptions: { value: ReimbursementType; label: string }[] = [];\n  durationTimeUnits: {\n    value: durationTimeUnitsEnum;\n    label: string;\n  }[] = [];\n  periodicityTimeUnits: {\n    value: periodicityTimeUnitsEnum;\n    label: string;\n  }[] = [];\n\n  recipeInstructionForPatientLabel?: string;\n  selectedReimbursementLabel?: string;\n  selectedPractitionerVisibilityLabel?: string;\n  selectedPharmacistVisibilityLabel?: string;\n\n  focusedDosageIndex = -1;\n  dosageSuggestions: string[] = [];\n  disableHover = false;\n\n  ngOnInit(): void {\n    this.language = this.translationService.getCurrentLanguage();\n\n    this.practitionerVisibilityOptions = getPractitionerVisibilityOptions(\n      this.t\n    );\n    this.pharmacistVisibilityOptions = getPharmacistVisibilityOptions(this.t);\n    this.reimbursementOptions = getReimbursementOptions(this.t);\n    this.durationTimeUnits = getDurationTimeUnits(this.t);\n    this.periodicityTimeUnits = getPeriodicityTimeUnits(this.t);\n\n    this.selectedPractitionerVisibilityLabel =\n      this.practitionerVisibilityOptions[0].label;\n    this.selectedPharmacistVisibilityLabel =\n      this.pharmacistVisibilityOptions[0].label;\n    this.selectedReimbursementLabel = this.reimbursementOptions[0].label;\n\n    this.initForm();\n    this.subscribeToValidationChanges();\n    this.subscribeToLabelChanges();\n\n    this.setupDosageSuggestionLogic();\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (\n      changes['prescriptionToModify'] &&\n      changes['prescriptionToModify'].currentValue !==\n        changes['prescriptionToModify'].previousValue\n    ) {\n      this.initForm();\n      this.cdr.markForCheck();\n    }\n  }\n\n  ngOnDestroy(): void {\n    this.subscriptions.forEach(sub => sub.unsubscribe());\n  }\n\n  private getInitialFormValues(): Record<string, any> {\n    const medicationTitleValue =\n      this.medicationToPrescribe?.title ??\n      this.prescriptionToModify?.medication.medicinalProduct?.intendedname ??\n      this.prescriptionToModify?.medication.substanceProduct?.intendedname ??\n      this.prescriptionToModify?.medication.compoundPrescription ??\n      '';\n\n    return {\n      medicationTitle: {\n        value: medicationTitleValue,\n        disabled: true,\n      },\n      dosage: this.prescriptionToModify?.medication.instructionForPatient ?? '',\n      duration:\n        getDurationFromDays(\n          this.prescriptionToModify?.medication.duration?.value ?? 1\n        ).duration ?? 1,\n      durationTimeUnit:\n        getDurationFromDays(\n          this.prescriptionToModify?.medication.duration?.value ?? 1\n        ).durationTimeUnit ?? this.durationTimeUnits[0]?.value,\n      treatmentStartDate: getTreatmentStartDate(this.prescriptionToModify),\n      executableUntil: getExecutableUntilDate(this.prescriptionToModify),\n      prescriptionsNumber: 1,\n      substitutionAllowed:\n        this.prescriptionToModify?.medication.substitutionAllowed ?? false,\n      showExtraFields: false,\n      periodicityTimeUnit: this.periodicityTimeUnits[0]?.value,\n      periodicityDaysNumber: 1,\n      recipeInstructionForPatient:\n        this.prescriptionToModify?.medication.recipeInstructionForPatient,\n      instructionsForReimbursement:\n        this.prescriptionToModify?.medication.instructionsForReimbursement ??\n        this.reimbursementOptions?.[0]?.value,\n      prescriberVisibility:\n        this.prescriptionToModify?.prescriberVisibility ??\n        this.practitionerVisibilityOptions?.[0]?.value,\n      pharmacistVisibility:\n        this.prescriptionToModify?.pharmacistVisibility ??\n        this.pharmacistVisibilityOptions?.[0]?.value,\n    };\n  }\n  private initForm(): void {\n    this.prescriptionForm = this.fb.group(this.getInitialFormValues());\n\n    this.recipeInstructionForPatientLabel =\n      this.prescriptionToModify?.medication.recipeInstructionForPatient ??\n      this.t('prescription.form.instructionLabelNone');\n\n    if (this.prescriptionToModify?.medication.instructionsForReimbursement) {\n      this.selectedReimbursementLabel = this.getLabel(\n        this.reimbursementOptions!,\n        this.prescriptionToModify.medication.instructionsForReimbursement\n      );\n    }\n    if (this.prescriptionToModify?.prescriberVisibility) {\n      this.selectedPractitionerVisibilityLabel = this.getLabel(\n        this.practitionerVisibilityOptions!,\n        this.prescriptionToModify.prescriberVisibility\n      );\n    }\n    if (this.prescriptionToModify?.pharmacistVisibility) {\n      this.selectedPharmacistVisibilityLabel = this.getLabel(\n        this.pharmacistVisibilityOptions!,\n        this.prescriptionToModify.pharmacistVisibility\n      );\n    }\n    this.cdr.markForCheck();\n  }\n\n  private getLabel(\n    options: { value: string | null; label: string }[],\n    value: string | null\n  ): string {\n    return (\n      options.find(opt => opt.value === value)?.label ??\n      this.t('prescription.form.instructionLabelNone')\n    );\n  }\n\n  getControl(name: string) {\n    return this.prescriptionForm.get(name);\n  }\n\n  getErrorMessage(fieldName: string): string | undefined {\n    const control = this.getControl(fieldName);\n    if (control?.valid || !control?.touched || control?.disabled)\n      return undefined;\n    if (control?.errors?.['required'])\n      return this.t('prescription.form.fieldRequired');\n    return this.t('prescription.form.fieldInvalid');\n  }\n\n  onSubmit() {\n    if (this.prescriptionForm.invalid) {\n      this.prescriptionForm.markAllAsTouched();\n      return;\n    }\n    const prescribedMedications =\n      this.createPrescriptionService.createPrescribedMedication(\n        this.prescriptionForm.value,\n        this.prescriptionToModify,\n        this.medicationToPrescribe\n      );\n    this.handleSubmit.emit(prescribedMedications);\n    this.prescriptionForm.reset();\n\n    // this.cdr.markForCheck();\n  }\n\n  onCancel() {\n    this.handleCancel.emit();\n    this.prescriptionForm.reset();\n    this.cdr.markForCheck();\n  }\n\n  private subscribeToValidationChanges(): void {\n    const prescriptionsNumberCtrl = this.getControl('prescriptionsNumber');\n    const periodicityTimeUnitCtrl = this.getControl('periodicityTimeUnit');\n\n    if (prescriptionsNumberCtrl && periodicityTimeUnitCtrl) {\n      this.subscriptions.push(\n        prescriptionsNumberCtrl.valueChanges.subscribe(() =>\n          this.updatePeriodicityValidators()\n        ),\n        periodicityTimeUnitCtrl.valueChanges.subscribe(() =>\n          this.updatePeriodicityValidators()\n        )\n      );\n    }\n\n    this.updatePeriodicityValidators();\n    this.cdr.markForCheck();\n  }\n\n  private updatePeriodicityValidators(): void {\n    const prescriptionsNumber = this.getControl('prescriptionsNumber')?.value;\n    const periodicityTimeUnit = this.getControl('periodicityTimeUnit')?.value;\n    const periodicityTimeUnitCtrl = this.getControl('periodicityTimeUnit');\n    const periodicityDaysNumberCtrl = this.getControl('periodicityDaysNumber');\n\n    if (prescriptionsNumber > 1) {\n      periodicityTimeUnitCtrl?.setValidators([Validators.required]);\n    } else {\n      periodicityTimeUnitCtrl?.clearValidators();\n    }\n    periodicityTimeUnitCtrl?.updateValueAndValidity({ emitEvent: false });\n\n    if (prescriptionsNumber && periodicityTimeUnit === '1') {\n      periodicityDaysNumberCtrl?.setValidators([Validators.required]);\n    } else {\n      periodicityDaysNumberCtrl?.clearValidators();\n    }\n    periodicityDaysNumberCtrl?.updateValueAndValidity({ emitEvent: false });\n    this.cdr.markForCheck();\n  }\n\n  private subscribeToLabelChanges(): void {\n    const reimbursementCtrl = this.getControl('instructionsForReimbursement');\n    const practitionerCtrl = this.getControl('prescriberVisibility');\n    const pharmacistCtrl = this.getControl('pharmacistVisibility');\n    const recipeInstructionCtrl = this.getControl(\n      'recipeInstructionForPatient'\n    );\n\n    if (\n      reimbursementCtrl &&\n      practitionerCtrl &&\n      pharmacistCtrl &&\n      recipeInstructionCtrl\n    ) {\n      this.subscriptions.push(\n        reimbursementCtrl.valueChanges.subscribe(value => {\n          this.selectedReimbursementLabel = this.getLabel(\n            this.reimbursementOptions!,\n            value\n          );\n        }),\n        practitionerCtrl.valueChanges.subscribe(value => {\n          this.selectedPractitionerVisibilityLabel = this.getLabel(\n            this.practitionerVisibilityOptions!,\n            value\n          );\n        }),\n        pharmacistCtrl.valueChanges.subscribe(value => {\n          this.selectedPharmacistVisibilityLabel = this.getLabel(\n            this.pharmacistVisibilityOptions!,\n            value\n          );\n        }),\n        recipeInstructionCtrl.valueChanges.subscribe(value => {\n          this.recipeInstructionForPatientLabel = value;\n        })\n      );\n    }\n    this.cdr.markForCheck();\n  }\n\n  private setupDosageSuggestionLogic(): void {\n    const dosageControl = this.getControl('dosage');\n    if (!dosageControl) return;\n\n    const { completePosology: completeDosage } = makeParser(this.language);\n\n    this.subscriptions.push(\n      dosageControl.valueChanges.subscribe((newValue: string) => {\n        if (!newValue?.trim()) {\n          this.dosageSuggestions = [];\n          return;\n        }\n\n        setTimeout(() => {\n          if (dosageControl.value === newValue) {\n            this.dosageSuggestions = completeDosage(newValue);\n          }\n        }, 100);\n      })\n    );\n    this.cdr.markForCheck();\n  }\n  private findCommonSequence(a: string, b: string): string {\n    let i = 0;\n    while (i < a.length && a[i] === b[i]) i++;\n    return a.slice(0, i);\n  }\n\n  validateSuggestion(index: number): void {\n    const dosageCtrl = this.getControl('dosage');\n    const dosage = dosageCtrl?.value;\n    const suggestion = this.dosageSuggestions[index];\n\n    if (!suggestion || !dosage) return;\n\n    const common = this.findCommonSequence(dosage, suggestion);\n    const newDosage = (\n      dosage +\n      (common.length ? suggestion.slice(common.length) : ' ' + suggestion)\n    )\n      .replace(/ {2,}/g, ' ')\n      .replace(/\\/ /g, '/');\n\n    dosageCtrl?.setValue(newDosage);\n    this.dosageSuggestions = [];\n    this.focusedDosageIndex = -1;\n    this.cdr.markForCheck();\n  }\n\n  onKeyDownDosageSuggestions(event: KeyboardEvent): void {\n    const len = this.dosageSuggestions.length;\n\n    if (event.key === 'ArrowDown') {\n      this.disableHover = true;\n      this.focusedDosageIndex = (this.focusedDosageIndex + 1) % len;\n      event.preventDefault();\n      event.stopPropagation();\n    } else if (event.key === 'ArrowUp') {\n      this.disableHover = true;\n      this.focusedDosageIndex = (this.focusedDosageIndex - 1 + len) % len;\n      event.preventDefault();\n      event.stopPropagation();\n    } else if (event.key === 'Enter' && this.focusedDosageIndex >= 0) {\n      this.validateSuggestion(this.focusedDosageIndex);\n      event.preventDefault();\n      event.stopPropagation();\n    } else if (event.key === 'Escape') {\n      this.dosageSuggestions = [];\n      this.focusedDosageIndex = -1;\n      event.preventDefault();\n      event.stopPropagation();\n    }\n    this.cdr.markForCheck();\n  }\n}\n","<div class=\"addMedicationModal\">\n  <div class=\"addMedicationModal__content\">\n    <form\n      id=\"prescriptionForm\"\n      class=\"addMedicationForm\"\n      [formGroup]=\"prescriptionForm\"\n      (ngSubmit)=\"onSubmit()\">\n      <div class=\"addMedicationForm__header\">\n        <h3>{{ modalTitle }}</h3>\n        <button\n          type=\"reset\"\n          class=\"addMedicationForm__header__closeIcn\"\n          (click)=\"onCancel()\">\n          <cardinal-close-icn color=\"#4B6682\" />\n        </button>\n      </div>\n      <div class=\"addMedicationForm__body\">\n        <div class=\"addMedicationForm__body__content\">\n          <cardinal-text-input\n            [required]=\"true\"\n            [label]=\"t('prescription.form.medicationTitle')\"\n            [id]=\"'medicationTitle'\"\n            formControlName=\"medicationTitle\"\n            [errorMessage]=\"getErrorMessage('medicationTitle')\" />\n          <div class=\"dosageInput\">\n            <cardinal-text-input\n              [label]=\"t('prescription.form.dosage')\"\n              [id]=\"'dosage'\"\n              [required]=\"true\"\n              formControlName=\"dosage\"\n              [errorMessage]=\"getErrorMessage('dosage')\"\n              (keydown)=\"onKeyDownDosageSuggestions($event)\" />\n            <ul\n              class=\"dosageInput__dropdown\"\n              *ngIf=\"dosageSuggestions.length > 0\">\n              <li\n                *ngFor=\"let suggestion of dosageSuggestions; let i = index\"\n                [class.focused]=\"focusedDosageIndex === i\"\n                (click)=\"validateSuggestion(i)\">\n                {{ suggestion }}\n              </li>\n            </ul>\n          </div>\n\n          <div class=\"addMedicationForm__body__content__inputsGroup\">\n            <cardinal-text-input\n              [label]=\"t('prescription.form.duration')\"\n              [id]=\"'duration'\"\n              [type]=\"'number'\"\n              formControlName=\"duration\"\n              [min]=\"1\"\n              [required]=\"true\"\n              [errorMessage]=\"getErrorMessage('duration')\" />\n\n            <cardinal-select-input\n              [label]=\"t('prescription.form.durationTimeUnit')\"\n              [id]=\"'durationTimeUnit'\"\n              [required]=\"true\"\n              [options]=\"durationTimeUnits\"\n              formControlName=\"durationTimeUnit\"\n              [errorMessage]=\"getErrorMessage('durationTimeUnit')\" />\n          </div>\n          <div class=\"addMedicationForm__body__content__inputsGroup\">\n            <cardinal-text-input\n              [label]=\"t('prescription.form.treatmentStartDate')\"\n              [id]=\"'treatmentStartDate'\"\n              [type]=\"'date'\"\n              [required]=\"true\"\n              formControlName=\"treatmentStartDate\"\n              [errorMessage]=\"getErrorMessage('treatmentStartDate')\" />\n\n            <cardinal-text-input\n              [label]=\"t('prescription.form.executableUntil')\"\n              [id]=\"'executableUntil'\"\n              [type]=\"'date'\"\n              [required]=\"true\"\n              formControlName=\"executableUntil\"\n              [errorMessage]=\"getErrorMessage('executableUntil')\" />\n          </div>\n\n          <div\n            class=\"addMedicationForm__body__content__inputsGroup\"\n            *ngIf=\"medicationToPrescribe\">\n            <cardinal-text-input\n              [label]=\"t('prescription.form.prescriptionsNumber')\"\n              [id]=\"'prescriptionsNumber'\"\n              [type]=\"'number'\"\n              [min]=\"1\"\n              [required]=\"true\"\n              formControlName=\"prescriptionsNumber\"\n              [errorMessage]=\"getErrorMessage('prescriptionsNumber')\" />\n\n            <cardinal-select-input\n              [label]=\"t('prescription.form.periodicityTimeUnit')\"\n              [id]=\"'periodicityTimeUnit'\"\n              [required]=\"true\"\n              [options]=\"periodicityTimeUnits\"\n              formControlName=\"periodicityTimeUnit\"\n              *ngIf=\"\n                prescriptionForm.get('prescriptionsNumber')?.value &&\n                prescriptionForm.get('prescriptionsNumber')?.value > 1\n              \"\n              [errorMessage]=\"getErrorMessage('periodicityTimeUnit')\" />\n\n            <cardinal-text-input\n              [label]=\"t('prescription.form.periodicityDaysNumber')\"\n              [id]=\"'periodicityDaysNumber'\"\n              [type]=\"'number'\"\n              [min]=\"1\"\n              [required]=\"true\"\n              formControlName=\"periodicityDaysNumber\"\n              *ngIf=\"\n                prescriptionForm.get('prescriptionsNumber')?.value &&\n                prescriptionForm.get('periodicityTimeUnit')?.value &&\n                prescriptionForm.get('periodicityTimeUnit')?.value === '1'\n              \"\n              [errorMessage]=\"getErrorMessage('periodicityDaysNumber')\" />\n          </div>\n\n          <div class=\"addMedicationForm__body__content__radioBtns\">\n            <cardinal-radio-input\n              [name]=\"'substitutionAllowed'\"\n              [label]=\"t('prescription.form.substitutionAllowed')\"\n              [options]=\"[\n                {\n                  id: 'yes',\n                  label: t('prescription.form.substitutionYes'),\n                  value: true,\n                },\n                {\n                  id: 'no',\n                  label: t('prescription.form.substitutionNo'),\n                  value: false,\n                },\n              ]\"\n              formControlName=\"substitutionAllowed\"\n              [required]=\"true\"\n              [errorMessage]=\"getErrorMessage('substitutionAllowed')\" />\n          </div>\n        </div>\n        <cardinal-toggle-switch\n          [id]=\"'showExtraFields'\"\n          formControlName=\"showExtraFields\"\n          [value]=\"t('prescription.form.toggleExtraFields')\" />\n\n        <div\n          class=\"addMedicationForm__body__extraFieldsPreview\"\n          *ngIf=\"prescriptionForm.get('showExtraFields')?.value === false\">\n          <p>\n            <span>{{ t('prescription.form.patientInstructions') }} :</span>\n            <i\n              ><span> {{ recipeInstructionForPatientLabel }}</span></i\n            >\n          </p>\n          <p>\n            <span\n              >{{ t('prescription.form.reimbursementInstructions') }} :</span\n            >\n            <i\n              ><span> {{ selectedReimbursementLabel }}</span></i\n            >\n          </p>\n          <p>\n            <span>{{ t('prescription.form.prescriberVisibility') }} :</span>\n            <i\n              ><span> {{ selectedPractitionerVisibilityLabel }}</span></i\n            >\n          </p>\n\n          <p>\n            <span>{{ t('prescription.form.pharmacistVisibility') }} :</span>\n            <i\n              ><span> {{ selectedPharmacistVisibilityLabel }}</span></i\n            >\n          </p>\n\n          <p></p>\n        </div>\n\n        <div\n          class=\"addMedicationForm__body__content\"\n          *ngIf=\"prescriptionForm.get('showExtraFields')?.value === true\">\n          <cardinal-textarea-input\n            [label]=\"t('prescription.form.patientInstructions')\"\n            [id]=\"'recipeInstructionForPatient'\"\n            formControlName=\"recipeInstructionForPatient\"\n            *ngIf=\"prescriptionForm.get('showExtraFields')?.value === true\" />\n\n          <cardinal-select-input\n            [label]=\"t('prescription.form.reimbursementInstructions')\"\n            [id]=\"'instructionsForReimbursement'\"\n            [options]=\"reimbursementOptions\"\n            formControlName=\"instructionsForReimbursement\"\n            *ngIf=\"prescriptionForm.get('showExtraFields')?.value === true\" />\n\n          <cardinal-select-input\n            [label]=\"t('prescription.form.prescriberVisibility')\"\n            [id]=\"'prescriberVisibility'\"\n            [options]=\"practitionerVisibilityOptions\"\n            formControlName=\"prescriberVisibility\"\n            *ngIf=\"prescriptionForm.get('showExtraFields')?.value === true\" />\n\n          <cardinal-select-input\n            [label]=\"t('prescription.form.pharmacistVisibility')\"\n            [id]=\"'pharmacistVisibility'\"\n            [options]=\"pharmacistVisibilityOptions\"\n            formControlName=\"pharmacistVisibility\"\n            *ngIf=\"prescriptionForm.get('showExtraFields')?.value === true\" />\n        </div>\n      </div>\n      <div class=\"addMedicationForm__footer\">\n        <cardinal-button\n          [view]=\"'outlined'\"\n          [type]=\"'reset'\"\n          (handleClick)=\"onCancel()\">\n          {{ t('prescription.form.cancel') }}\n        </cardinal-button>\n        <cardinal-button\n          [type]=\"'submit'\"\n          (handleClick)=\"onSubmit()\"\n          [view]=\"'primary'\">\n          {{ t('prescription.form.submit') }}\n        </cardinal-button>\n      </div>\n    </form>\n  </div>\n</div>\n","import {\n  AfterViewInit,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ElementRef,\n  Input,\n  OnInit,\n  QueryList,\n  ViewChildren,\n} from '@angular/core';\nimport { PrescribedMedicationType } from '../../../../shared/types';\nimport { HealthcareParty, Patient } from '@icure/be-fhc-lite-api';\nimport JsBarcode from 'jsbarcode';\nimport { dateDecode } from '../../../utils/date-helpers';\nimport { NgForOf, NgIf } from '@angular/common';\nimport { TranslationService } from '../../../../shared/services/translation/translation.service';\n\n@Component({\n  selector: 'cardinal-prescription-document-to-print',\n  imports: [NgForOf, NgIf],\n  templateUrl: './prescription-document-to-print.component.html',\n  styleUrl: './prescription-document-to-print.component.scss',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: true,\n})\nexport class PrescriptionDocumentToPrintComponent\n  implements OnInit, AfterViewInit\n{\n  @Input({ required: true }) prescribedMedications!: PrescribedMedicationType[];\n  @Input({ required: true }) prescriber!: HealthcareParty;\n  @Input({ required: true }) patient!: Patient;\n\n  @ViewChildren('ridElements') ridElements!: QueryList<ElementRef<SVGElement>>;\n\n  constructor(\n    private translationService: TranslationService,\n    private cdr: ChangeDetectorRef\n  ) {}\n\n  t(key: string): string {\n    return this.translationService.translate(key);\n  }\n\n  chunks: PrescribedMedicationType[][] = [];\n\n  ngOnInit() {\n    this.chunkPrescriptions();\n  }\n\n  ngAfterViewInit() {\n    setTimeout(() => this.generateBarcodes()); // ensures DOM is fully rendered\n    this.cdr.markForCheck();\n  }\n\n  // Chunk the medications into groups of 4 for display\n  chunkPrescriptions() {\n    const chunkSize = 4;\n    const tmpChunks = [];\n    for (let i = 0; i < this.prescribedMedications.length; i += chunkSize) {\n      tmpChunks.push(this.prescribedMedications.slice(i, i + chunkSize));\n    }\n    this.chunks = tmpChunks;\n    this.cdr.markForCheck();\n  }\n\n  // Handle barcode generation using JsBarcode\n  handleRid(rid?: string, elm?: SVGElement) {\n    if (elm && rid) {\n      JsBarcode(elm, rid, {\n        format: 'CODE128A',\n        lineColor: '#000',\n        width: 2,\n        height: 40,\n        displayValue: true,\n      });\n    }\n  }\n\n  // Generate barcodes for each prescription item\n  generateBarcodes() {\n    const elements = this.ridElements.toArray();\n    this.prescribedMedications.forEach((med, idx) => {\n      this.handleRid(med.rid, elements[idx]?.nativeElement);\n    });\n    this.cdr.markForCheck();\n  }\n\n  // Helper to format dates\n  formatDate(date: number | undefined): string | 0 {\n    return (date && dateDecode(date)?.toLocaleDateString()) ?? '-';\n  }\n}\n","<div *ngIf=\"prescribedMedications?.length\" class=\"prescriptionsHolder\">\n  <div *ngFor=\"let chunk of chunks; let chunkIndex = index\">\n    <div class=\"prescription\">\n      <div class=\"header\">\n        <h1>{{ t('prescription.pdf.title') }}</h1>\n        <p>{{ t('prescription.pdf.instructions') }}</p>\n      </div>\n      <div class=\"divider\"></div>\n      <div class=\"options\">\n        <p>\n          <strong>{{ t('prescription.pdf.options.title') }}</strong>\n        </p>\n        <ol>\n          <li>{{ t('prescription.pdf.options.option1') }}</li>\n          <li>{{ t('prescription.pdf.options.option2') }}</li>\n        </ol>\n      </div>\n      <div class=\"divider\"></div>\n\n      <div class=\"prescription-section\">\n        <div class=\"prescription-section__persons\">\n          <p>\n            <strong>{{ t('prescription.pdf.prescriber') }}:</strong>\n            {{ prescriber.lastName }} {{ prescriber.firstName }}\n            {{ prescriber.nihii }}\n          </p>\n          <p>\n            <strong>{{ t('prescription.pdf.patient') }}:</strong>\n            {{ patient.lastName }} {{ patient.firstName }}\n            {{ patient.ssin }}\n          </p>\n        </div>\n        <h3>{{ t('prescription.pdf.electronicContent') }}</h3>\n\n        <div\n          *ngFor=\"let item of chunk; let idx = index\"\n          class=\"prescription-item\">\n          <div class=\"prescription-item__block\">\n            <p>\n              {{ t('prescription.pdf.product') }}\n              <strong>{{\n                item.medication.medicinalProduct?.intendedname\n              }}</strong>\n            </p>\n            <p>\n              {{ t('prescription.pdf.dosage') }}\n              {{ item.medication.instructionForPatient }}\n            </p>\n            <p>\n              {{ t('prescription.pdf.date') }}\n              {{ formatDate(item.medication.beginMoment) }}\n            </p>\n            <p>\n              {{ t('prescription.pdf.validUntil') }}\n              {{\n                item.medication.endMoment\n                  ? formatDate(item.medication.endMoment)\n                  : '-'\n              }}\n            </p>\n          </div>\n          <div class=\"prescription-item__block prescription-item__block--right\">\n            <strong class=\"ridTitle\">RID {{ idx + 1 }}</strong>\n            <div class=\"barcode\">\n              <svg #ridElements [attr.id]=\"'barcode' + idx\"></svg>\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n</div>\n","import {\n  Component,\n  Input,\n  ViewChild,\n  Output,\n  EventEmitter,\n  ElementRef,\n  ChangeDetectionStrategy,\n} from '@angular/core';\nimport { Patient, HealthcareParty } from '@icure/be-fhc-lite-api';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nimport { PrescriptionDocumentToPrintComponent } from '../../../internal/components/prescription-elements/prescription-document-to-print/prescription-document-to-print.component';\nimport { ButtonComponent } from '../../../internal/components/form-elements/button/button.component';\nimport { CloseIcnComponent } from '../../../internal/components/common/icons/close-icn/close-icn.component';\n\nimport { TranslationService } from '../../services/translation/translation.service';\nimport { PrescribedMedicationType } from '../../types';\n\n@Component({\n  standalone: true,\n  selector: 'cardinal-print-prescription-modal',\n  imports: [\n    PrescriptionDocumentToPrintComponent,\n    ButtonComponent,\n    ReactiveFormsModule,\n    CloseIcnComponent,\n  ],\n  templateUrl: './print-prescription-modal.component.html',\n  styleUrl: './print-prescription-modal.component.scss',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PrintPrescriptionModalComponent {\n  @Input({ required: true }) prescribedMedications!: PrescribedMedicationType[];\n  @Input({ required: true }) prescriber!: HealthcareParty;\n  @Input({ required: true }) patient!: Patient;\n\n  @Output() onCloseModal = new EventEmitter<void>(); // Emit event to close the modal\n  @ViewChild('printContainer', { static: false }) printContainer!: ElementRef; // ViewChild to access print container\n\n  constructor(private translationService: TranslationService) {}\n\n  t(key: string): string {\n    return this.translationService.translate(key);\n  }\n\n  get sentPrescriptions() {\n    return this.prescribedMedications.filter(item => !!item.rid);\n  }\n\n  // Print function\n  print() {\n    const div = this.printContainer.nativeElement;\n    if (div) {\n      const newDiv = div.cloneNode(true) as HTMLDivElement;\n      newDiv.style.cssText = window.getComputedStyle(div).cssText;\n      newDiv.id = 'new' + div.id;\n\n      const hideFrame = document.createElement('iframe');\n      hideFrame.style.display = 'none';\n\n      // Set onload handler BEFORE setting src and appending to DOM\n      hideFrame.onload = () => {\n        console.log('Frame loaded, ready to print');\n        const setPrint = () => {\n          const closePrint = () => {\n            document.body.removeChild(hideFrame);\n          };\n\n          if (hideFrame.contentWindow && hideFrame.contentDocument) {\n            // Append stylesheets to iframe document\n            const stylesheets = document.querySelectorAll(\n              \"link[rel='stylesheet'], style\"\n            );\n            stylesheets.forEach(stylesheet => {\n              hideFrame.contentDocument!.head.appendChild(\n                stylesheet.cloneNode(true)\n              );\n            });\n\n            hideFrame.contentDocument.body.appendChild(newDiv);\n\n            hideFrame.contentWindow.onbeforeunload = closePrint;\n            hideFrame.contentWindow.onafterprint = closePrint;\n            hideFrame.contentWindow.print();\n          }\n        };\n        setPrint();\n      };\n\n      // Set src and append to DOM after onload handler is set\n      hideFrame.src = 'about:blank';\n      document.body.appendChild(hideFrame);\n    }\n  }\n}\n","<div class=\"printPrescriptionModal\">\n  <div class=\"printPrescriptionModal__contentWrap\">\n    <div class=\"printPrescriptionModal__content\">\n      <div class=\"printPrescriptionModal__content__header\">\n        <h3>{{ t('practitioner.printModal.title') }}</h3>\n        <button\n          type=\"reset\"\n          class=\"printPrescriptionModal__content__header__closeIcn\"\n          (click)=\"onCloseModal.emit()\">\n          <cardinal-close-icn color=\"#4B6682\" />\n        </button>\n      </div>\n      <div class=\"printPrescriptionModal__content__body\">\n        <div #printContainer id=\"print-container\">\n          <cardinal-prescription-document-to-print\n            [prescribedMedications]=\"sentPrescriptions\"\n            [prescriber]=\"prescriber\"\n            [patient]=\"patient\" />\n        </div>\n      </div>\n      <div class=\"printPrescriptionModal__content__footer\">\n        <cardinal-button\n          [view]=\"'outlined'\"\n          [type]=\"'reset'\"\n          (click)=\"onCloseModal.emit()\">\n          {{ t('practitioner.printModal.close') }}\n        </cardinal-button>\n        <cardinal-button [type]=\"'submit'\" (click)=\"print()\" [view]=\"'primary'\">\n          {{ t('practitioner.printModal.print') }}\n        </cardinal-button>\n      </div>\n    </div>\n  </div>\n</div>\n","import { Injectable } from '@angular/core';\nimport { TokenStore } from '../../types';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class IndexedDbTokenStoreService {\n  private readonly dbName = 'certificate-store';\n  private readonly storeName = 'certificates';\n\n  async open(): Promise<IDBDatabase> {\n    return new Promise((resolve, reject) => {\n      const request = indexedDB.open(this.dbName, 1);\n\n      request.onupgradeneeded = () => {\n        const db = request.result;\n        if (!db.objectStoreNames.contains(this.storeName)) {\n          db.createObjectStore(this.storeName, { keyPath: 'id' });\n        }\n      };\n\n      request.onsuccess = () => resolve(request.result);\n      request.onerror = () => reject(request.error);\n    });\n  }\n\n  getTokenStore(db: IDBDatabase): TokenStore {\n    return {\n      get: (key: string) => {\n        return new Promise((resolve, reject) => {\n          const tx = db.transaction(this.storeName, 'readonly');\n          const store = tx.objectStore(this.storeName);\n          const request = store.get(key);\n          request.onsuccess = () => {\n            request.result\n              ? resolve(request.result.value)\n              : reject(new Error(`No value for key: ${key}`));\n          };\n          request.onerror = () => reject(request.error);\n        });\n      },\n      put: (key: string, value: string) => {\n        return new Promise((resolve, reject) => {\n          const tx = db.transaction(this.storeName, 'readwrite');\n          const store = tx.objectStore(this.storeName);\n          const request = store.put({ id: key, value });\n          request.onsuccess = () => resolve(value);\n          request.onerror = () => reject(request.error);\n        });\n      },\n    };\n  }\n}\n","/*\n * Public API Surface of cardinal-prescription-be-angular\n */\n\nexport * from './lib/shared/components/medication-search/medication-search.component';\nexport * from './lib/shared/components/practitioner-certificate/practitioner-certificate.component';\nexport * from './lib/shared/components/prescription-list/prescription-list.component';\nexport * from './lib/shared/components/prescription-modal/prescription-modal.component';\nexport * from './lib/shared/components/print-prescription-modal/print-prescription-modal.component';\n\nexport * from './lib/shared/services/api/sam-sdk.service';\nexport * from './lib/shared/services/api/fhc.service';\nexport * from './lib/shared/services/translation/translation.service';\nexport * from './lib/shared/services/certificate/upload-practitioner-certificate.service';\nexport * from './lib/shared/services/certificate/indexed-db-token-store.service';\n\nexport * from './lib/shared/types/index';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.TooltipContextService","i1.TranslationService","i1.MergeLazySortedNamedItemsService","i2.TranslationService","i1.SamSdkService","i2.MedicationLoaderService","i3.TooltipContextService","i4.TranslationService","i5","i1.UploadPractitionerCertificateService","i2","i3.TranslationService","i1","FhcCode","uuid","i1.FhcService","i2.CreatePrescriptionService","i4"],"mappings":"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"}