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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/README.md +4 -4
  2. package/fesm2022/onemrvapublic-design-system-layout.mjs +14 -13
  3. package/fesm2022/onemrvapublic-design-system-layout.mjs.map +1 -1
  4. package/fesm2022/onemrvapublic-design-system-mat-address.mjs +3 -4
  5. package/fesm2022/onemrvapublic-design-system-mat-address.mjs.map +1 -1
  6. package/fesm2022/onemrvapublic-design-system-mat-carousel.mjs +3 -4
  7. package/fesm2022/onemrvapublic-design-system-mat-carousel.mjs.map +1 -1
  8. package/fesm2022/onemrvapublic-design-system-mat-copy-to-clipboard.mjs +3 -3
  9. package/fesm2022/onemrvapublic-design-system-mat-copy-to-clipboard.mjs.map +1 -1
  10. package/fesm2022/onemrvapublic-design-system-mat-country-item.mjs +2 -3
  11. package/fesm2022/onemrvapublic-design-system-mat-country-item.mjs.map +1 -1
  12. package/fesm2022/onemrvapublic-design-system-mat-datepicker-header.mjs +3 -4
  13. package/fesm2022/onemrvapublic-design-system-mat-datepicker-header.mjs.map +1 -1
  14. package/fesm2022/onemrvapublic-design-system-mat-file-upload.mjs +5 -4
  15. package/fesm2022/onemrvapublic-design-system-mat-file-upload.mjs.map +1 -1
  16. package/fesm2022/onemrvapublic-design-system-mat-input-address.mjs +3 -4
  17. package/fesm2022/onemrvapublic-design-system-mat-input-address.mjs.map +1 -1
  18. package/fesm2022/onemrvapublic-design-system-mat-input-birthplace.mjs +3 -4
  19. package/fesm2022/onemrvapublic-design-system-mat-input-birthplace.mjs.map +1 -1
  20. package/fesm2022/onemrvapublic-design-system-mat-input-country.mjs +3 -4
  21. package/fesm2022/onemrvapublic-design-system-mat-input-country.mjs.map +1 -1
  22. package/fesm2022/onemrvapublic-design-system-mat-input-enterprise-number.mjs +3 -4
  23. package/fesm2022/onemrvapublic-design-system-mat-input-enterprise-number.mjs.map +1 -1
  24. package/fesm2022/onemrvapublic-design-system-mat-input-iban.mjs +3 -4
  25. package/fesm2022/onemrvapublic-design-system-mat-input-iban.mjs.map +1 -1
  26. package/fesm2022/onemrvapublic-design-system-mat-input-phone.mjs +1 -3
  27. package/fesm2022/onemrvapublic-design-system-mat-input-phone.mjs.map +1 -1
  28. package/fesm2022/onemrvapublic-design-system-mat-notification.mjs +3 -4
  29. package/fesm2022/onemrvapublic-design-system-mat-notification.mjs.map +1 -1
  30. package/fesm2022/onemrvapublic-design-system-mat-table-of-content.mjs +3 -4
  31. package/fesm2022/onemrvapublic-design-system-mat-table-of-content.mjs.map +1 -1
  32. package/fesm2022/onemrvapublic-design-system-page-error.mjs +3 -4
  33. package/fesm2022/onemrvapublic-design-system-page-error.mjs.map +1 -1
  34. package/fesm2022/onemrvapublic-design-system-shared.mjs +7 -7
  35. package/fesm2022/onemrvapublic-design-system-shared.mjs.map +1 -1
  36. package/fesm2022/onemrvapublic-design-system.mjs +1 -1
  37. package/fesm2022/onemrvapublic-design-system.mjs.map +1 -1
  38. package/package.json +1 -1
  39. package/types/onemrvapublic-design-system-layout.d.ts +1 -1
  40. package/types/onemrvapublic-design-system-mat-file-upload.d.ts +1 -1
  41. package/types/onemrvapublic-design-system-shared.d.ts +1 -1
  42. package/types/onemrvapublic-design-system.d.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"onemrvapublic-design-system-mat-input-phone.mjs","sources":["../../../../projects/onemrva/design-system/mat-input-phone/src/onemrva-mat-input-phone.component.ts","../../../../projects/onemrva/design-system/mat-input-phone/src/onemrva-mat-input-phone.component.html","../../../../projects/onemrva/design-system/mat-input-phone/src/phone-number.directive.ts","../../../../projects/onemrva/design-system/mat-input-phone/index.ts","../../../../projects/onemrva/design-system/mat-input-phone/onemrvapublic-design-system-mat-input-phone.ts"],"sourcesContent":["import { AsyncPipe } from '@angular/common';\nimport {\n Component,\n ElementRef,\n inject,\n Input,\n OnDestroy,\n OnInit,\n ViewChild,\n ViewEncapsulation,\n input,\n output,\n} from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n FormBuilder,\n FormControl,\n FormGroup,\n NgControl,\n ReactiveFormsModule,\n ValidationErrors,\n Validators,\n} from '@angular/forms';\nimport {\n MatFormFieldControl,\n MatFormFieldModule,\n} from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\nimport { TranslateModule } from '@ngx-translate/core';\nimport {\n combineLatestWith,\n debounceTime,\n Observable,\n startWith,\n Subject,\n takeUntil,\n zip,\n} from 'rxjs';\nimport {\n OnemRvaCDNCountryService,\n OnemrvaMaterialCountry,\n} from '@onemrvapublic/design-system/shared';\nimport { map } from 'rxjs/operators';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { FocusMonitor } from '@angular/cdk/a11y';\nimport { FlagIconComponent } from '@onemrvapublic/design-system/flag-icon';\nimport { MatSelectSearchModule } from '@onemrvapublic/design-system/mat-select-search';\nimport parsePhoneNumber from 'libphonenumber-js';\n\n@Component({\n selector: 'onemrva-mat-input-phone',\n styleUrls: ['onemrva-mat-input-phone.component.scss'],\n templateUrl: 'onemrva-mat-input-phone.component.html',\n standalone: true,\n imports: [\n MatInputModule,\n MatFormFieldModule,\n MatSelectModule,\n MatSelectSearchModule,\n ReactiveFormsModule,\n TranslateModule,\n FlagIconComponent,\n AsyncPipe,\n ],\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: MatFormFieldControl,\n useExisting: OnemrvaMatInputPhoneComponent,\n },\n ],\n})\nexport class OnemrvaMatInputPhoneComponent\n implements\n ControlValueAccessor,\n MatFormFieldControl<string>,\n OnInit,\n OnDestroy\n{\n @ViewChild('countryCode') countryCode!: HTMLInputElement;\n @ViewChild('number') number!: ElementRef;\n\n private readonly cdn = inject(OnemRvaCDNCountryService);\n\n public countries$: Observable<OnemrvaMaterialCountry[]> =\n this.cdn.getCountries();\n\n static nextId = 0;\n\n readonly noEntriesFoundLabel = input('Not found');\n readonly placeholderLabel = input('Search');\n readonly searchAriaLabel = input('Search');\n\n readonly defaultPrefix = input('+32');\n\n readonly getCountry = output<any>();\n\n public filterCtrl: FormControl<string | null> = new FormControl<string>('');\n\n destroyNotifier$ = new Subject<void>();\n\n controlType = 'phone-input';\n stateChanges = new Subject<void>();\n focused = false;\n id = `phone-input-${OnemrvaMatInputPhoneComponent.nextId++}`;\n touched = false;\n\n parts: FormGroup<{\n countryCode: FormControl<string | null>;\n number: FormControl<string | null>;\n }>;\n\n get numberField() {\n return this.parts.get('number') as FormControl;\n }\n get countryCodeField() {\n return this.parts.get('countryCode') as FormControl;\n }\n\n private readonly focusMonitor = inject(FocusMonitor);\n public readonly elementRef = inject(ElementRef<HTMLElement>);\n private readonly formBuilder = inject(FormBuilder);\n public readonly ngControl = inject(NgControl, { optional: true });\n\n public filteredCountries$: Observable<OnemrvaMaterialCountry[]>;\n\n constructor() {\n this.filteredCountries$ = this.filterCtrl.valueChanges.pipe(\n debounceTime(400),\n startWith<string | null>(''), // Explicitly define type\n combineLatestWith(this.countries$), // Ensure correct tuple structure\n map(([search, countries]: [string | null, OnemrvaMaterialCountry[]]) => {\n // Define expected tuple\n return countries.filter((country: OnemrvaMaterialCountry) => {\n if (!search || search.trim() === '') return true; // Return all when search is empty\n return country.name?.toLowerCase().includes(search.toLowerCase());\n });\n }),\n );\n\n if (this.ngControl) {\n this.ngControl.valueAccessor = this; // ✅ Only assign if ngControl exists\n }\n\n this.parts = this.formBuilder.group({\n countryCode: ['', [Validators.maxLength(2)]],\n number: ['', []],\n });\n }\n\n errors(): ValidationErrors | null {\n return this.parts.errors;\n }\n\n onChange = (_value: any) => {\n //do nothing\n };\n\n onTouched = () => {\n if (!this.touched) {\n this.touched = true;\n this.stateChanges.next();\n }\n };\n\n get errorState(): boolean {\n const control = this.ngControl?.control;\n const externalErrors = !!(\n control &&\n control.invalid &&\n (control.dirty || control.touched)\n );\n\n // Also check internal form errors\n const internalErrors =\n this.parts &&\n this.parts.invalid &&\n (this.parts.dirty || this.parts.touched);\n\n return externalErrors || internalErrors;\n }\n\n get shouldLabelFloat() {\n return this.focused || !this.empty;\n }\n\n get empty() {\n const {\n value: { countryCode, number },\n } = this.parts;\n\n // Consider empty if both fields are truly empty or just contain whitespace\n const countryCodeEmpty = !countryCode || countryCode.trim() === '';\n const numberEmpty = !number || number.trim() === '';\n\n return countryCodeEmpty && numberEmpty;\n }\n\n @Input()\n get value(): string {\n const {\n value: { countryCode, number },\n } = this.parts;\n\n // Return empty string if both are empty\n if (\n (!countryCode || countryCode.trim() === '') &&\n (!number || number.trim() === '')\n ) {\n return '';\n }\n\n // Return the number as is (since it should already contain the full international number)\n return number || '';\n }\n\n set value(phoneNumber: string | null) {\n const incoming = phoneNumber ?? '';\n // If empty, clear both fields without emitting extra events\n if (incoming.trim() === '') {\n this.parts.setValue(\n { countryCode: '', number: '' },\n { emitEvent: false },\n );\n this.stateChanges.next();\n return;\n }\n // Set the number field; existing subscriptions will derive country code and formatting\n this.numberField.setValue(incoming, { emitEvent: false });\n this.stateChanges.next();\n }\n\n readonly readonly = input(false);\n\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n\n set disabled(value: BooleanInput) {\n this._disabled = coerceBooleanProperty(value);\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n this._disabled ? this.parts.disable() : this.parts.enable();\n this.stateChanges.next();\n }\n\n private _disabled = false;\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n this.stateChanges.next();\n }\n\n @Input()\n get placeholder(): string {\n return this._placeholder;\n }\n\n set placeholder(value: string) {\n this._placeholder = value;\n this.stateChanges.next();\n }\n\n private _placeholder = '';\n\n @Input()\n get required(): boolean {\n return this._required;\n }\n\n set required(value: BooleanInput) {\n this._required = coerceBooleanProperty(value);\n this.stateChanges.next();\n }\n private _required = false;\n\n ngOnInit(): void {\n // Add focus monitoring\n this.focusMonitor.monitor(this.elementRef, true).subscribe(origin => {\n this.focused = !!origin;\n if (!this.focused && !this.touched) {\n this.touched = true;\n this.onTouched();\n }\n this.stateChanges.next();\n });\n\n // Monitor internal form changes and notify parent form\n this.parts.valueChanges\n .pipe(takeUntil(this.destroyNotifier$))\n .subscribe(() => {\n this.onChange(this.value);\n this.stateChanges.next();\n });\n\n this.focusMonitor.monitor(this.elementRef, true).subscribe(origin => {\n this.focused = !!origin;\n if (!this.focused) {\n this.onTouched();\n }\n this.stateChanges.next();\n });\n\n this.numberField.valueChanges\n .pipe(\n startWith(this.numberField.getRawValue()),\n takeUntil(this.destroyNotifier$),\n )\n .subscribe(number => {\n if (number && number !== '') {\n if (number.substring(0, 1) !== '+')\n this.countryCodeField.setValue('', { emitEvent: false });\n if (number === '0') {\n this.cdn\n .findCountryFromPrefix(this.defaultPrefix())\n .pipe(takeUntil(this.destroyNotifier$))\n .subscribe(country => {\n if (country) {\n //this.getCountry.next(country);\n this.numberField.setValue(this.defaultPrefix(), {\n emitEvent: false,\n });\n this.countryCodeField.setValue(country.code, {\n emitEvent: false,\n });\n } else {\n this.countryCodeField.setValue('');\n }\n this.formatPhoneNumber();\n });\n } else {\n this.cdn\n .findCountryFromPrefix(number)\n .pipe(takeUntil(this.destroyNotifier$))\n .subscribe(country => {\n if (country) {\n //this.getCountry.next(country);\n this.countryCodeField.setValue(country.code);\n } else {\n this.countryCodeField.setValue('');\n }\n this.formatPhoneNumber();\n });\n }\n }\n });\n\n this.countryCodeField.valueChanges\n .pipe(takeUntil(this.destroyNotifier$))\n .subscribe(value => {\n let number = this.numberField.getRawValue() ?? '';\n zip(\n this.cdn.findCountryFromPrefix(number),\n this.cdn.findCountryFromCode(value),\n ).subscribe(([countryFromVies, countryFromCode]) => {\n // Perform your action here using countryFromVies and countryFromCode\n if (countryFromVies) {\n number = number.replace(countryFromVies.dial_code, '');\n }\n if (countryFromCode) {\n this.getCountry.emit(countryFromCode);\n if (number.substring(0, 1) === '+') {\n number = number.replace('+', '');\n }\n number = countryFromCode.dial_code + number;\n this.numberField.setValue(number, { emitEvent: false });\n this.formatPhoneNumber();\n }\n // setTimeout(() => {\n // this.number.nativeElement.focus();\n // }, 200);\n });\n });\n }\n\n handleClick(e: any) {\n e.stopPropagation();\n }\n\n ngOnDestroy() {\n this.destroyNotifier$.next();\n this.destroyNotifier$.complete();\n }\n\n autoFocusNext(\n control: AbstractControl,\n nextElement?: HTMLInputElement,\n ): void {\n if (!control.errors && nextElement) {\n this.focusMonitor.focusVia(nextElement, 'program');\n }\n }\n\n onContainerClick(event: MouseEvent): void {\n if ((event.target as Element).tagName.toLowerCase() != 'input') {\n this.elementRef.nativeElement.querySelector('input')?.focus();\n }\n }\n\n setDescribedByIds(ids: string[]) {\n const controlElement =\n this.elementRef.nativeElement.querySelector('.phone-fields')!;\n controlElement.setAttribute('aria-describedby', ids.join(' '));\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n writeValue(number: string | null | undefined): void {\n // Ignore undefined updates (e.g., unrelated JSONForms changes)\n if (number === undefined) return;\n if (number === null) {\n this.parts.setValue(\n { countryCode: '', number: '' },\n { emitEvent: false },\n );\n this.stateChanges.next();\n return;\n }\n this.value = number;\n this.stateChanges.next();\n }\n\n _handleInput(control: AbstractControl, nextElement?: HTMLInputElement): void {\n this.autoFocusNext(control, nextElement);\n this.onChange(this.value);\n\n // Mark as touched when user interacts\n if (!this.touched) {\n this.touched = true;\n this.onTouched();\n }\n\n this.stateChanges.next();\n }\n\n private formatPhoneNumber() {\n try {\n const parsedPhone = parsePhoneNumber(this.numberField.getRawValue());\n const code = parsedPhone?.country;\n if (code) {\n this.countryCodeField.setValue(code, { emitEvent: false });\n this.numberField.setValue(parsedPhone?.format('INTERNATIONAL'), {\n emitEvent: false,\n });\n }\n } catch (e: any) {\n console.warn(e);\n }\n }\n\n onKeyup(event: KeyboardEvent): void {\n // Clear country when backspace on empty number\n if (this.numberField.value === '' && event.key === 'Backspace') {\n this.countryCodeField.setValue(null);\n // this.parts.clearValidators();\n }\n }\n}\n","<ng-container [formGroup]=\"parts\">\n <div class=\"phone-fields\">\n <div class=\"phone-prefix\">\n <mat-select\n #countryCode\n matTextPrefix\n class=\"onemrva-phone-number-select\"\n [formControl]=\"countryCodeField\"\n >\n <mat-select-trigger>\n <flag-icon [countryCode]=\"countryCodeField.getRawValue()\" />\n </mat-select-trigger>\n <mat-option>\n <mat-select-search\n [formControl]=\"filterCtrl\"\n [ariaLabel]=\"searchAriaLabel()\"\n [noEntriesFoundLabel]=\"noEntriesFoundLabel()\"\n [placeholderLabel]=\"placeholderLabel()\"\n />\n </mat-option>\n @for (country of filteredCountries$ | async; track $index) {\n <mat-option [value]=\"country.code\">\n <flag-icon [countryCode]=\"country.code\" />\n &nbsp;&nbsp;&nbsp;\n {{ country.name }}\n &nbsp;&nbsp;&nbsp;\n <span class=\"dialcode\">\n {{ country.dial_code }}\n </span>\n </mat-option>\n }\n </mat-select>\n </div>\n <input\n (click)=\"handleClick($event)\"\n type=\"tel\"\n matInput\n #number\n [placeholder]=\"placeholder\"\n [formControl]=\"numberField\"\n class=\"onemrva-text-number\"\n [readOnly]=\"readonly()\"\n />\n </div>\n</ng-container>\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[phoneNumber]',\n standalone: true,\n host: {\n '(keydown)': 'onKeyDown($event)',\n },\n})\nexport class PhoneNumberDirective {\n onKeyDown(event: any) {\n const e = event as KeyboardEvent;\n\n const allowedKey = [\n '0',\n '1',\n '2',\n '3',\n '4',\n '5',\n '6',\n '7',\n '8',\n '9',\n ' ',\n 'Backspace',\n 'Delete',\n 'Tab',\n '+',\n '-',\n 'Enter',\n 'ArrowLeft',\n 'ArrowRight',\n 'ArrowUp',\n 'ArrowDown',\n 'Home',\n 'End',\n ];\n\n if (allowedKey.indexOf(e.key) >= 0) return;\n\n const allowedCtrlShortcuts = ['a', 'c', 'x', 'v'];\n if (e.ctrlKey && allowedCtrlShortcuts.indexOf(e.key) >= 0) return;\n\n e.preventDefault();\n }\n}\n","/*\n * Public API Surface of mat-bank-account-input\n */\n\nexport * from './src/onemrva-mat-input-phone.component';\nexport * from './src/phone-number.directive';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"onemrvapublic-design-system-mat-input-phone.mjs","sources":["../../../../projects/onemrva/design-system/mat-input-phone/src/onemrva-mat-input-phone.component.ts","../../../../projects/onemrva/design-system/mat-input-phone/src/onemrva-mat-input-phone.component.html","../../../../projects/onemrva/design-system/mat-input-phone/src/phone-number.directive.ts","../../../../projects/onemrva/design-system/mat-input-phone/index.ts","../../../../projects/onemrva/design-system/mat-input-phone/onemrvapublic-design-system-mat-input-phone.ts"],"sourcesContent":["import { AsyncPipe } from '@angular/common';\nimport {\n Component,\n ElementRef,\n inject,\n Input,\n OnDestroy,\n OnInit,\n ViewChild,\n ViewEncapsulation,\n input,\n output,\n} from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n FormBuilder,\n FormControl,\n FormGroup,\n NgControl,\n ReactiveFormsModule,\n ValidationErrors,\n Validators,\n} from '@angular/forms';\nimport {\n MatFormFieldControl,\n MatFormFieldModule,\n} from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\nimport {\n combineLatestWith,\n debounceTime,\n Observable,\n startWith,\n Subject,\n takeUntil,\n zip,\n} from 'rxjs';\nimport {\n OnemRvaCDNCountryService,\n OnemrvaMaterialCountry,\n} from '@onemrvapublic/design-system/shared';\nimport { map } from 'rxjs/operators';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { FocusMonitor } from '@angular/cdk/a11y';\nimport { FlagIconComponent } from '@onemrvapublic/design-system/flag-icon';\nimport { MatSelectSearchModule } from '@onemrvapublic/design-system/mat-select-search';\nimport parsePhoneNumber from 'libphonenumber-js';\n\n@Component({\n selector: 'onemrva-mat-input-phone',\n styleUrls: ['onemrva-mat-input-phone.component.scss'],\n templateUrl: 'onemrva-mat-input-phone.component.html',\n standalone: true,\n imports: [\n MatInputModule,\n MatFormFieldModule,\n MatSelectModule,\n MatSelectSearchModule,\n ReactiveFormsModule,\n FlagIconComponent,\n AsyncPipe,\n ],\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: MatFormFieldControl,\n useExisting: OnemrvaMatInputPhoneComponent,\n },\n ],\n})\nexport class OnemrvaMatInputPhoneComponent\n implements\n ControlValueAccessor,\n MatFormFieldControl<string>,\n OnInit,\n OnDestroy\n{\n @ViewChild('countryCode') countryCode!: HTMLInputElement;\n @ViewChild('number') number!: ElementRef;\n\n private readonly cdn = inject(OnemRvaCDNCountryService);\n\n public countries$: Observable<OnemrvaMaterialCountry[]> =\n this.cdn.getCountries();\n\n static nextId = 0;\n\n readonly noEntriesFoundLabel = input('Not found');\n readonly placeholderLabel = input('Search');\n readonly searchAriaLabel = input('Search');\n\n readonly defaultPrefix = input('+32');\n\n readonly getCountry = output<any>();\n\n public filterCtrl: FormControl<string | null> = new FormControl<string>('');\n\n destroyNotifier$ = new Subject<void>();\n\n controlType = 'phone-input';\n stateChanges = new Subject<void>();\n focused = false;\n id = `phone-input-${OnemrvaMatInputPhoneComponent.nextId++}`;\n touched = false;\n\n parts: FormGroup<{\n countryCode: FormControl<string | null>;\n number: FormControl<string | null>;\n }>;\n\n get numberField() {\n return this.parts.get('number') as FormControl;\n }\n get countryCodeField() {\n return this.parts.get('countryCode') as FormControl;\n }\n\n private readonly focusMonitor = inject(FocusMonitor);\n public readonly elementRef = inject(ElementRef<HTMLElement>);\n private readonly formBuilder = inject(FormBuilder);\n public readonly ngControl = inject(NgControl, { optional: true });\n\n public filteredCountries$: Observable<OnemrvaMaterialCountry[]>;\n\n constructor() {\n this.filteredCountries$ = this.filterCtrl.valueChanges.pipe(\n debounceTime(400),\n startWith<string | null>(''), // Explicitly define type\n combineLatestWith(this.countries$), // Ensure correct tuple structure\n map(([search, countries]: [string | null, OnemrvaMaterialCountry[]]) => {\n // Define expected tuple\n return countries.filter((country: OnemrvaMaterialCountry) => {\n if (!search || search.trim() === '') return true; // Return all when search is empty\n return country.name?.toLowerCase().includes(search.toLowerCase());\n });\n }),\n );\n\n if (this.ngControl) {\n this.ngControl.valueAccessor = this; // ✅ Only assign if ngControl exists\n }\n\n this.parts = this.formBuilder.group({\n countryCode: ['', [Validators.maxLength(2)]],\n number: ['', []],\n });\n }\n\n errors(): ValidationErrors | null {\n return this.parts.errors;\n }\n\n onChange = (_value: any) => {\n //do nothing\n };\n\n onTouched = () => {\n if (!this.touched) {\n this.touched = true;\n this.stateChanges.next();\n }\n };\n\n get errorState(): boolean {\n const control = this.ngControl?.control;\n const externalErrors = !!(\n control &&\n control.invalid &&\n (control.dirty || control.touched)\n );\n\n // Also check internal form errors\n const internalErrors =\n this.parts &&\n this.parts.invalid &&\n (this.parts.dirty || this.parts.touched);\n\n return externalErrors || internalErrors;\n }\n\n get shouldLabelFloat() {\n return this.focused || !this.empty;\n }\n\n get empty() {\n const {\n value: { countryCode, number },\n } = this.parts;\n\n // Consider empty if both fields are truly empty or just contain whitespace\n const countryCodeEmpty = !countryCode || countryCode.trim() === '';\n const numberEmpty = !number || number.trim() === '';\n\n return countryCodeEmpty && numberEmpty;\n }\n\n @Input()\n get value(): string {\n const {\n value: { countryCode, number },\n } = this.parts;\n\n // Return empty string if both are empty\n if (\n (!countryCode || countryCode.trim() === '') &&\n (!number || number.trim() === '')\n ) {\n return '';\n }\n\n // Return the number as is (since it should already contain the full international number)\n return number || '';\n }\n\n set value(phoneNumber: string | null) {\n const incoming = phoneNumber ?? '';\n // If empty, clear both fields without emitting extra events\n if (incoming.trim() === '') {\n this.parts.setValue(\n { countryCode: '', number: '' },\n { emitEvent: false },\n );\n this.stateChanges.next();\n return;\n }\n // Set the number field; existing subscriptions will derive country code and formatting\n this.numberField.setValue(incoming, { emitEvent: false });\n this.stateChanges.next();\n }\n\n readonly readonly = input(false);\n\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n\n set disabled(value: BooleanInput) {\n this._disabled = coerceBooleanProperty(value);\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n this._disabled ? this.parts.disable() : this.parts.enable();\n this.stateChanges.next();\n }\n\n private _disabled = false;\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n this.stateChanges.next();\n }\n\n @Input()\n get placeholder(): string {\n return this._placeholder;\n }\n\n set placeholder(value: string) {\n this._placeholder = value;\n this.stateChanges.next();\n }\n\n private _placeholder = '';\n\n @Input()\n get required(): boolean {\n return this._required;\n }\n\n set required(value: BooleanInput) {\n this._required = coerceBooleanProperty(value);\n this.stateChanges.next();\n }\n private _required = false;\n\n ngOnInit(): void {\n // Add focus monitoring\n this.focusMonitor.monitor(this.elementRef, true).subscribe(origin => {\n this.focused = !!origin;\n if (!this.focused && !this.touched) {\n this.touched = true;\n this.onTouched();\n }\n this.stateChanges.next();\n });\n\n // Monitor internal form changes and notify parent form\n this.parts.valueChanges\n .pipe(takeUntil(this.destroyNotifier$))\n .subscribe(() => {\n this.onChange(this.value);\n this.stateChanges.next();\n });\n\n this.focusMonitor.monitor(this.elementRef, true).subscribe(origin => {\n this.focused = !!origin;\n if (!this.focused) {\n this.onTouched();\n }\n this.stateChanges.next();\n });\n\n this.numberField.valueChanges\n .pipe(\n startWith(this.numberField.getRawValue()),\n takeUntil(this.destroyNotifier$),\n )\n .subscribe(number => {\n if (number && number !== '') {\n if (number.substring(0, 1) !== '+')\n this.countryCodeField.setValue('', { emitEvent: false });\n if (number === '0') {\n this.cdn\n .findCountryFromPrefix(this.defaultPrefix())\n .pipe(takeUntil(this.destroyNotifier$))\n .subscribe(country => {\n if (country) {\n //this.getCountry.next(country);\n this.numberField.setValue(this.defaultPrefix(), {\n emitEvent: false,\n });\n this.countryCodeField.setValue(country.code, {\n emitEvent: false,\n });\n } else {\n this.countryCodeField.setValue('');\n }\n this.formatPhoneNumber();\n });\n } else {\n this.cdn\n .findCountryFromPrefix(number)\n .pipe(takeUntil(this.destroyNotifier$))\n .subscribe(country => {\n if (country) {\n //this.getCountry.next(country);\n this.countryCodeField.setValue(country.code);\n } else {\n this.countryCodeField.setValue('');\n }\n this.formatPhoneNumber();\n });\n }\n }\n });\n\n this.countryCodeField.valueChanges\n .pipe(takeUntil(this.destroyNotifier$))\n .subscribe(value => {\n let number = this.numberField.getRawValue() ?? '';\n zip(\n this.cdn.findCountryFromPrefix(number),\n this.cdn.findCountryFromCode(value),\n ).subscribe(([countryFromVies, countryFromCode]) => {\n // Perform your action here using countryFromVies and countryFromCode\n if (countryFromVies) {\n number = number.replace(countryFromVies.dial_code, '');\n }\n if (countryFromCode) {\n this.getCountry.emit(countryFromCode);\n if (number.substring(0, 1) === '+') {\n number = number.replace('+', '');\n }\n number = countryFromCode.dial_code + number;\n this.numberField.setValue(number, { emitEvent: false });\n this.formatPhoneNumber();\n }\n // setTimeout(() => {\n // this.number.nativeElement.focus();\n // }, 200);\n });\n });\n }\n\n handleClick(e: any) {\n e.stopPropagation();\n }\n\n ngOnDestroy() {\n this.destroyNotifier$.next();\n this.destroyNotifier$.complete();\n }\n\n autoFocusNext(\n control: AbstractControl,\n nextElement?: HTMLInputElement,\n ): void {\n if (!control.errors && nextElement) {\n this.focusMonitor.focusVia(nextElement, 'program');\n }\n }\n\n onContainerClick(event: MouseEvent): void {\n if ((event.target as Element).tagName.toLowerCase() != 'input') {\n this.elementRef.nativeElement.querySelector('input')?.focus();\n }\n }\n\n setDescribedByIds(ids: string[]) {\n const controlElement =\n this.elementRef.nativeElement.querySelector('.phone-fields')!;\n controlElement.setAttribute('aria-describedby', ids.join(' '));\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n writeValue(number: string | null | undefined): void {\n // Ignore undefined updates (e.g., unrelated JSONForms changes)\n if (number === undefined) return;\n if (number === null) {\n this.parts.setValue(\n { countryCode: '', number: '' },\n { emitEvent: false },\n );\n this.stateChanges.next();\n return;\n }\n this.value = number;\n this.stateChanges.next();\n }\n\n _handleInput(control: AbstractControl, nextElement?: HTMLInputElement): void {\n this.autoFocusNext(control, nextElement);\n this.onChange(this.value);\n\n // Mark as touched when user interacts\n if (!this.touched) {\n this.touched = true;\n this.onTouched();\n }\n\n this.stateChanges.next();\n }\n\n private formatPhoneNumber() {\n try {\n const parsedPhone = parsePhoneNumber(this.numberField.getRawValue());\n const code = parsedPhone?.country;\n if (code) {\n this.countryCodeField.setValue(code, { emitEvent: false });\n this.numberField.setValue(parsedPhone?.format('INTERNATIONAL'), {\n emitEvent: false,\n });\n }\n } catch (e: any) {\n console.warn(e);\n }\n }\n\n onKeyup(event: KeyboardEvent): void {\n // Clear country when backspace on empty number\n if (this.numberField.value === '' && event.key === 'Backspace') {\n this.countryCodeField.setValue(null);\n // this.parts.clearValidators();\n }\n }\n}\n","<ng-container [formGroup]=\"parts\">\n <div class=\"phone-fields\">\n <div class=\"phone-prefix\">\n <mat-select\n #countryCode\n matTextPrefix\n class=\"onemrva-phone-number-select\"\n [formControl]=\"countryCodeField\"\n >\n <mat-select-trigger>\n <flag-icon [countryCode]=\"countryCodeField.getRawValue()\" />\n </mat-select-trigger>\n <mat-option>\n <mat-select-search\n [formControl]=\"filterCtrl\"\n [ariaLabel]=\"searchAriaLabel()\"\n [noEntriesFoundLabel]=\"noEntriesFoundLabel()\"\n [placeholderLabel]=\"placeholderLabel()\"\n />\n </mat-option>\n @for (country of filteredCountries$ | async; track $index) {\n <mat-option [value]=\"country.code\">\n <flag-icon [countryCode]=\"country.code\" />\n &nbsp;&nbsp;&nbsp;\n {{ country.name }}\n &nbsp;&nbsp;&nbsp;\n <span class=\"dialcode\">\n {{ country.dial_code }}\n </span>\n </mat-option>\n }\n </mat-select>\n </div>\n <input\n (click)=\"handleClick($event)\"\n type=\"tel\"\n matInput\n #number\n [placeholder]=\"placeholder\"\n [formControl]=\"numberField\"\n class=\"onemrva-text-number\"\n [readOnly]=\"readonly()\"\n />\n </div>\n</ng-container>\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[phoneNumber]',\n standalone: true,\n host: {\n '(keydown)': 'onKeyDown($event)',\n },\n})\nexport class PhoneNumberDirective {\n onKeyDown(event: any) {\n const e = event as KeyboardEvent;\n\n const allowedKey = [\n '0',\n '1',\n '2',\n '3',\n '4',\n '5',\n '6',\n '7',\n '8',\n '9',\n ' ',\n 'Backspace',\n 'Delete',\n 'Tab',\n '+',\n '-',\n 'Enter',\n 'ArrowLeft',\n 'ArrowRight',\n 'ArrowUp',\n 'ArrowDown',\n 'Home',\n 'End',\n ];\n\n if (allowedKey.indexOf(e.key) >= 0) return;\n\n const allowedCtrlShortcuts = ['a', 'c', 'x', 'v'];\n if (e.ctrlKey && allowedCtrlShortcuts.indexOf(e.key) >= 0) return;\n\n e.preventDefault();\n }\n}\n","/*\n * Public API Surface of mat-bank-account-input\n */\n\nexport * from './src/onemrva-mat-input-phone.component';\nexport * from './src/phone-number.directive';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -3,8 +3,7 @@ import * as i0 from '@angular/core';
3
3
  import { input, model, output, inject, Component } from '@angular/core';
4
4
  import * as i1 from '@angular/material/icon';
5
5
  import { MatIconModule } from '@angular/material/icon';
6
- import * as i2 from '@ngx-translate/core';
7
- import { TranslateModule } from '@ngx-translate/core';
6
+ import { TranslatePipe } from '@ngx-translate/core';
8
7
  import { Subject, takeUntil } from 'rxjs';
9
8
 
10
9
  class OnemrvaMatNotificationComponent {
@@ -40,11 +39,11 @@ class OnemrvaMatNotificationComponent {
40
39
  this.notificationClose.emit();
41
40
  }
42
41
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: OnemrvaMatNotificationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
43
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.1", type: OnemrvaMatNotificationComponent, isStandalone: true, selector: "onemrva-mat-notification", inputs: { message: { classPropertyName: "message", publicName: "message", isSignal: true, isRequired: false, transformFunction: null }, closable: { classPropertyName: "closable", publicName: "closable", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, dataCy: { classPropertyName: "dataCy", publicName: "dataCy", isSignal: true, isRequired: false, transformFunction: null }, isOpen: { classPropertyName: "isOpen", publicName: "isOpen", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { isOpen: "isOpenChange", notificationClose: "notificationClose" }, host: { properties: { "class.collapse-notification": "!isOpen()", "attr.id": "id()", "attr.data-cy": "dataCy()", "attr.aria-live": "\"assertive\"", "attr.role": "\"alert\"" } }, ngImport: i0, template: "<div class=\"onemrva-mat-notification container\">\n <div class=\"onemrva-mat-notification-content show-icon\">\n @if (message() !== '') {\n {{ message() | translate }}\n }\n <ng-content />\n @if (closable() || isSmall) {\n <mat-icon\n class=\"close-notification float-right clickable mr\"\n (click)=\"closeNotification()\"\n >\n close\n </mat-icon>\n }\n </div>\n</div>\n", styles: [":host .onemrva-mat-notification{transition:max-height .4s ease-out;max-height:100vh;z-index:401;background-color:var(--mat-sys-primary-container);color:var(--mat-sys-on-primary-container);border-bottom:1px solid var(--mat-sys-primary)}:host .onemrva-mat-notification .onemrva-mat-notification-content{font:var(--mat-sys-body-medium);padding:var(--double-spacer) var(--spacer) var(--double-spacer) var(--spacer)}:host .onemrva-mat-notification .onemrva-mat-notification-content:before{margin-right:var(--double-spacer);margin-top:var(--quarter-spacer)}:host.collapse-notification{display:none}\n"], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] }); }
42
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.1", type: OnemrvaMatNotificationComponent, isStandalone: true, selector: "onemrva-mat-notification", inputs: { message: { classPropertyName: "message", publicName: "message", isSignal: true, isRequired: false, transformFunction: null }, closable: { classPropertyName: "closable", publicName: "closable", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, dataCy: { classPropertyName: "dataCy", publicName: "dataCy", isSignal: true, isRequired: false, transformFunction: null }, isOpen: { classPropertyName: "isOpen", publicName: "isOpen", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { isOpen: "isOpenChange", notificationClose: "notificationClose" }, host: { properties: { "class.collapse-notification": "!isOpen()", "attr.id": "id()", "attr.data-cy": "dataCy()", "attr.aria-live": "\"assertive\"", "attr.role": "\"alert\"" } }, ngImport: i0, template: "<div class=\"onemrva-mat-notification container\">\n <div class=\"onemrva-mat-notification-content show-icon\">\n @if (message() !== '') {\n {{ message() | translate }}\n }\n <ng-content />\n @if (closable() || isSmall) {\n <mat-icon\n class=\"close-notification float-right clickable mr\"\n (click)=\"closeNotification()\"\n >\n close\n </mat-icon>\n }\n </div>\n</div>\n", styles: [":host .onemrva-mat-notification{transition:max-height .4s ease-out;max-height:100vh;z-index:401;background-color:var(--mat-sys-primary-container);color:var(--mat-sys-on-primary-container);border-bottom:1px solid var(--mat-sys-primary)}:host .onemrva-mat-notification .onemrva-mat-notification-content{font:var(--mat-sys-body-medium);padding:var(--double-spacer) var(--spacer) var(--double-spacer) var(--spacer)}:host .onemrva-mat-notification .onemrva-mat-notification-content:before{margin-right:var(--double-spacer);margin-top:var(--quarter-spacer)}:host.collapse-notification{display:none}\n"], dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
44
43
  }
45
44
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: OnemrvaMatNotificationComponent, decorators: [{
46
45
  type: Component,
47
- args: [{ selector: 'onemrva-mat-notification', standalone: true, imports: [TranslateModule, MatIconModule], host: {
46
+ args: [{ selector: 'onemrva-mat-notification', standalone: true, imports: [TranslatePipe, MatIconModule], host: {
48
47
  '[class.collapse-notification]': '!isOpen()',
49
48
  '[attr.id]': 'id()',
50
49
  '[attr.data-cy]': 'dataCy()',
@@ -1 +1 @@
1
- {"version":3,"file":"onemrvapublic-design-system-mat-notification.mjs","sources":["../../../../projects/onemrva/design-system/mat-notification/src/onemrva-mat-notification.component.ts","../../../../projects/onemrva/design-system/mat-notification/src/onemrva-mat-notification.component.html","../../../../projects/onemrva/design-system/mat-notification/onemrvapublic-design-system-mat-notification.ts"],"sourcesContent":["import {\n BreakpointObserver,\n Breakpoints,\n BreakpointState,\n} from '@angular/cdk/layout';\n\nimport {\n Component,\n inject,\n OnDestroy,\n input,\n output,\n model,\n} from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { Subject, takeUntil } from 'rxjs';\n\n@Component({\n selector: 'onemrva-mat-notification',\n templateUrl: 'onemrva-mat-notification.component.html',\n styleUrl: 'onemrva-mat-notification.component.scss',\n standalone: true,\n imports: [TranslateModule, MatIconModule],\n host: {\n '[class.collapse-notification]': '!isOpen()',\n '[attr.id]': 'id()',\n '[attr.data-cy]': 'dataCy()',\n '[attr.aria-live]': '\"assertive\"',\n '[attr.role]': '\"alert\"',\n },\n})\nexport class OnemrvaMatNotificationComponent implements OnDestroy {\n readonly message = input('');\n readonly closable = input(true);\n readonly id = input('onemrva-mat-notification');\n readonly dataCy = input('onemrva-mat-notification');\n isOpen = model(true);\n\n readonly notificationClose = output<void>();\n\n private destroyNotifier$ = new Subject<void>();\n isSmall = false;\n public breakpointObserver = inject(BreakpointObserver);\n\n constructor() {\n this.breakpointObserver\n .observe([Breakpoints.XSmall, Breakpoints.Small])\n .pipe(takeUntil(this.destroyNotifier$))\n .subscribe((state: BreakpointState) => {\n this.isSmall = state.matches;\n });\n }\n\n ngOnDestroy(): void {\n this.destroyNotifier$.next();\n this.destroyNotifier$.complete();\n }\n\n closeNotification() {\n this.isOpen.set(false);\n // TODO: The 'emit' function requires a mandatory void argument\n this.notificationClose.emit();\n }\n}\n","<div class=\"onemrva-mat-notification container\">\n <div class=\"onemrva-mat-notification-content show-icon\">\n @if (message() !== '') {\n {{ message() | translate }}\n }\n <ng-content />\n @if (closable() || isSmall) {\n <mat-icon\n class=\"close-notification float-right clickable mr\"\n (click)=\"closeNotification()\"\n >\n close\n </mat-icon>\n }\n </div>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"onemrvapublic-design-system-mat-notification.mjs","sources":["../../../../projects/onemrva/design-system/mat-notification/src/onemrva-mat-notification.component.ts","../../../../projects/onemrva/design-system/mat-notification/src/onemrva-mat-notification.component.html","../../../../projects/onemrva/design-system/mat-notification/onemrvapublic-design-system-mat-notification.ts"],"sourcesContent":["import {\n BreakpointObserver,\n Breakpoints,\n BreakpointState,\n} from '@angular/cdk/layout';\n\nimport {\n Component,\n inject,\n OnDestroy,\n input,\n output,\n model,\n} from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { Subject, takeUntil } from 'rxjs';\n\n@Component({\n selector: 'onemrva-mat-notification',\n templateUrl: 'onemrva-mat-notification.component.html',\n styleUrl: 'onemrva-mat-notification.component.scss',\n standalone: true,\n imports: [TranslatePipe, MatIconModule],\n host: {\n '[class.collapse-notification]': '!isOpen()',\n '[attr.id]': 'id()',\n '[attr.data-cy]': 'dataCy()',\n '[attr.aria-live]': '\"assertive\"',\n '[attr.role]': '\"alert\"',\n },\n})\nexport class OnemrvaMatNotificationComponent implements OnDestroy {\n readonly message = input('');\n readonly closable = input(true);\n readonly id = input('onemrva-mat-notification');\n readonly dataCy = input('onemrva-mat-notification');\n isOpen = model(true);\n\n readonly notificationClose = output<void>();\n\n private destroyNotifier$ = new Subject<void>();\n isSmall = false;\n public breakpointObserver = inject(BreakpointObserver);\n\n constructor() {\n this.breakpointObserver\n .observe([Breakpoints.XSmall, Breakpoints.Small])\n .pipe(takeUntil(this.destroyNotifier$))\n .subscribe((state: BreakpointState) => {\n this.isSmall = state.matches;\n });\n }\n\n ngOnDestroy(): void {\n this.destroyNotifier$.next();\n this.destroyNotifier$.complete();\n }\n\n closeNotification() {\n this.isOpen.set(false);\n // TODO: The 'emit' function requires a mandatory void argument\n this.notificationClose.emit();\n }\n}\n","<div class=\"onemrva-mat-notification container\">\n <div class=\"onemrva-mat-notification-content show-icon\">\n @if (message() !== '') {\n {{ message() | translate }}\n }\n <ng-content />\n @if (closable() || isSmall) {\n <mat-icon\n class=\"close-notification float-right clickable mr\"\n (click)=\"closeNotification()\"\n >\n close\n </mat-icon>\n }\n </div>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -2,8 +2,7 @@ import * as i0 from '@angular/core';
2
2
  import { Injectable, input, signal, computed, inject, ViewEncapsulation, Component, ChangeDetectorRef, Directive } from '@angular/core';
3
3
  import * as i1 from '@angular/material/list';
4
4
  import { MatListModule } from '@angular/material/list';
5
- import * as i3 from '@ngx-translate/core';
6
- import { TranslateModule, TranslateService } from '@ngx-translate/core';
5
+ import { TranslatePipe, TranslateService } from '@ngx-translate/core';
7
6
  import { BehaviorSubject, Subject, takeUntil, map, tap } from 'rxjs';
8
7
  import { Location, AsyncPipe } from '@angular/common';
9
8
  import * as i2 from '@angular/material/icon';
@@ -143,13 +142,13 @@ class OnemrvaMatTableOfContentComponent {
143
142
  this.tocService.resetToc();
144
143
  }
145
144
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: OnemrvaMatTableOfContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
146
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.1", type: OnemrvaMatTableOfContentComponent, isStandalone: true, selector: "onemrva-mat-table-of-content", inputs: { titleKeyIn: { classPropertyName: "titleKeyIn", publicName: "titleKeyIn", isSignal: true, isRequired: false, transformFunction: null }, tocName: { classPropertyName: "tocName", publicName: "tocName", isSignal: true, isRequired: true, transformFunction: null }, tableOfContentName: { classPropertyName: "tableOfContentName", publicName: "tableOfContentName", isSignal: true, isRequired: false, transformFunction: null }, scrollShift: { classPropertyName: "scrollShift", publicName: "scrollShift", isSignal: true, isRequired: false, transformFunction: null }, dataCy: { classPropertyName: "dataCy", publicName: "dataCy", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.data-cy": "dataCy()" } }, ngImport: i0, template: "<div class=\"onemrva-mat-toc\">\n <h3 class=\"onemrva-mat-toc-title\">{{ titleKey() | translate }}</h3>\n\n <mat-list>\n @for (anchor of toc$ | async; track anchor.path) {\n <mat-list-item\n [routerLink]=\"[]\"\n [fragment]=\"anchor.path\"\n [class]=\"{\n 'active-anchor': anchor.path === activePath,\n 'onemrva-anchor-for-subsection': anchor.level === level.SUBSECTION,\n 'onemrva-mat-hidden-toc-anchor': anchor.directive?.hiddenInToc(),\n }\"\n >\n {{ anchor.titleKey | translate }}\n @if (anchor.status === status.CHECKMARK) {\n <mat-icon class=\"mat-success\">check</mat-icon>\n }\n @if (anchor.status === status.WARNING) {\n <mat-icon class=\"anchor-warning\">priority_high</mat-icon>\n }\n </mat-list-item>\n }\n </mat-list>\n</div>\n", styles: [":host{position:fixed;width:var(--toc-width, 280px);top:var(--layout-header-height, 82px);left:0;bottom:0;overflow:auto;background-color:var(--mat-sys-surface-container);padding:var(--triple-spacer) var(--spacer) var(--spacer) var(--triple-spacer);box-sizing:border-box}:host .onemrva-mat-toc-title{color:var(--mat-sys-secondary);line-height:1.5rem;margin-bottom:var(--double-spacer)}:host mat-list{padding:0}:host mat-list mat-list-item{--mat-list-list-item-focus-state-layer-color: transparant;padding:var(--half-spacer) 0 var(--half-spacer) var(--spacer);height:2rem!important;border-left:1px solid var(--mat-sys-outline-variant)}:host mat-list mat-list-item.onemrva-mat-hidden-toc-anchor{display:none}:host mat-list mat-list-item .mdc-list-item__primary-text{font-weight:600;color:var(--mat-sys-outline)}:host mat-list mat-list-item.active-anchor{border-left:3px solid var(--mat-sys-on-tertiary-fixed-variant);padding-left:6px}:host mat-list mat-list-item.active-anchor .mdc-list-item__primary-text{color:var(--mat-sys-outline-variant)}:host mat-list mat-list-item:hover{cursor:pointer}:host mat-list mat-list-item mat-icon{vertical-align:bottom!important}:host mat-list mat-list-item mat-icon.anchor-warning{color:var(--mat-sys-on-tertiary-fixed-variant)}\n"], dependencies: [{ kind: "ngmodule", type: MatListModule }, { kind: "component", type: i1.MatList, selector: "mat-list", exportAs: ["matList"] }, { kind: "component", type: i1.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "browserUrl", "routerLink"] }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }] }); }
145
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.1", type: OnemrvaMatTableOfContentComponent, isStandalone: true, selector: "onemrva-mat-table-of-content", inputs: { titleKeyIn: { classPropertyName: "titleKeyIn", publicName: "titleKeyIn", isSignal: true, isRequired: false, transformFunction: null }, tocName: { classPropertyName: "tocName", publicName: "tocName", isSignal: true, isRequired: true, transformFunction: null }, tableOfContentName: { classPropertyName: "tableOfContentName", publicName: "tableOfContentName", isSignal: true, isRequired: false, transformFunction: null }, scrollShift: { classPropertyName: "scrollShift", publicName: "scrollShift", isSignal: true, isRequired: false, transformFunction: null }, dataCy: { classPropertyName: "dataCy", publicName: "dataCy", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.data-cy": "dataCy()" } }, ngImport: i0, template: "<div class=\"onemrva-mat-toc\">\n <h3 class=\"onemrva-mat-toc-title\">{{ titleKey() | translate }}</h3>\n\n <mat-list>\n @for (anchor of toc$ | async; track anchor.path) {\n <mat-list-item\n [routerLink]=\"[]\"\n [fragment]=\"anchor.path\"\n [class]=\"{\n 'active-anchor': anchor.path === activePath,\n 'onemrva-anchor-for-subsection': anchor.level === level.SUBSECTION,\n 'onemrva-mat-hidden-toc-anchor': anchor.directive?.hiddenInToc(),\n }\"\n >\n {{ anchor.titleKey | translate }}\n @if (anchor.status === status.CHECKMARK) {\n <mat-icon class=\"mat-success\">check</mat-icon>\n }\n @if (anchor.status === status.WARNING) {\n <mat-icon class=\"anchor-warning\">priority_high</mat-icon>\n }\n </mat-list-item>\n }\n </mat-list>\n</div>\n", styles: [":host{position:fixed;width:var(--toc-width, 280px);top:var(--layout-header-height, 82px);left:0;bottom:0;overflow:auto;background-color:var(--mat-sys-surface-container);padding:var(--triple-spacer) var(--spacer) var(--spacer) var(--triple-spacer);box-sizing:border-box}:host .onemrva-mat-toc-title{color:var(--mat-sys-secondary);line-height:1.5rem;margin-bottom:var(--double-spacer)}:host mat-list{padding:0}:host mat-list mat-list-item{--mat-list-list-item-focus-state-layer-color: transparant;padding:var(--half-spacer) 0 var(--half-spacer) var(--spacer);height:2rem!important;border-left:1px solid var(--mat-sys-outline-variant)}:host mat-list mat-list-item.onemrva-mat-hidden-toc-anchor{display:none}:host mat-list mat-list-item .mdc-list-item__primary-text{font-weight:600;color:var(--mat-sys-outline)}:host mat-list mat-list-item.active-anchor{border-left:3px solid var(--mat-sys-on-tertiary-fixed-variant);padding-left:6px}:host mat-list mat-list-item.active-anchor .mdc-list-item__primary-text{color:var(--mat-sys-outline-variant)}:host mat-list mat-list-item:hover{cursor:pointer}:host mat-list mat-list-item mat-icon{vertical-align:bottom!important}:host mat-list mat-list-item mat-icon.anchor-warning{color:var(--mat-sys-on-tertiary-fixed-variant)}\n"], dependencies: [{ kind: "ngmodule", type: MatListModule }, { kind: "component", type: i1.MatList, selector: "mat-list", exportAs: ["matList"] }, { kind: "component", type: i1.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "browserUrl", "routerLink"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }] }); }
147
146
  }
148
147
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: OnemrvaMatTableOfContentComponent, decorators: [{
149
148
  type: Component,
150
149
  args: [{ selector: 'onemrva-mat-table-of-content', standalone: true, imports: [
151
150
  MatListModule,
152
- TranslateModule,
151
+ TranslatePipe,
153
152
  MatIconModule,
154
153
  RouterLink,
155
154
  AsyncPipe,
@@ -1 +1 @@
1
- {"version":3,"file":"onemrvapublic-design-system-mat-table-of-content.mjs","sources":["../../../../projects/onemrva/design-system/mat-table-of-content/src/onemrva-mat-toc-anchor.model.ts","../../../../projects/onemrva/design-system/mat-table-of-content/src/onemrva-mat-table-of-content.service.ts","../../../../projects/onemrva/design-system/mat-table-of-content/src/onemrva-mat-table-of-content.component.ts","../../../../projects/onemrva/design-system/mat-table-of-content/src/onemrva-mat-table-of-content.component.html","../../../../projects/onemrva/design-system/mat-table-of-content/src/onemrva-mat-table-of-content.directive.ts","../../../../projects/onemrva/design-system/mat-table-of-content/index.ts","../../../../projects/onemrva/design-system/mat-table-of-content/onemrvapublic-design-system-mat-table-of-content.ts"],"sourcesContent":["export enum OnemrvaMatTocAnchorStatus {\n CHECKMARK,\n WARNING,\n}\n\nexport enum OnemrvaMatTocAnchorLevel {\n SECTION,\n SUBSECTION,\n}\n\nexport interface OnemrvaMatTocAnchor {\n tocName: string;\n titleKey: string;\n path: string;\n order?: number; // You can manually set the order of your links\n status?: OnemrvaMatTocAnchorStatus; // checkmarck add a checkmark icon at the end of the line. Warning adds an exclamation mark\n level?: OnemrvaMatTocAnchorLevel; // Section level by default\n hidden?: boolean;\n directive?: any;\n}\n\nexport type OnemrvaMatToc = Record<string, OnemrvaMatTocAnchor[]>;\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport {\n OnemrvaMatTocAnchor,\n OnemrvaMatToc,\n OnemrvaMatTocAnchorLevel,\n} from './onemrva-mat-toc-anchor.model';\n\n@Injectable()\nexport class OnemrvaMatTableOfContentService {\n private _toc: OnemrvaMatToc = {};\n private _toc$ = new BehaviorSubject<OnemrvaMatToc>({});\n toc$: Observable<OnemrvaMatToc> = this._toc$.asObservable();\n\n addAnchor(anchor: OnemrvaMatTocAnchor) {\n if (!anchor.level) {\n anchor.level = OnemrvaMatTocAnchorLevel.SECTION;\n }\n\n if (!this._toc[anchor.tocName])\n this._toc = { ...this._toc, [anchor.tocName]: [anchor] };\n else if (\n this._toc[anchor.tocName].findIndex(a => anchor.path === a.path) < 0\n ) {\n let idx = -1;\n if (anchor.order) {\n idx = this._toc[anchor.tocName].findIndex(\n a => a.order && anchor.order! < a.order,\n );\n }\n\n const newToc = [...this._toc[anchor.tocName]];\n if (idx >= 0) {\n newToc.splice(idx, 0, anchor);\n } else {\n newToc.push(anchor);\n }\n this._toc = {\n ...this._toc,\n [anchor.tocName]: newToc,\n };\n }\n\n this._toc$.next(this._toc);\n }\n\n resetToc() {\n this._toc = {};\n this._toc$.next(this._toc);\n }\n}\n","import {\n AfterViewInit,\n Component,\n inject,\n OnDestroy,\n OnInit,\n ViewEncapsulation,\n input,\n signal,\n computed,\n} from '@angular/core';\nimport { MatListModule } from '@angular/material/list';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { OnemrvaMatTableOfContentService } from './onemrva-mat-table-of-content.service';\nimport { Observable, map, tap, Subject, takeUntil } from 'rxjs';\nimport {\n OnemrvaMatTocAnchor,\n OnemrvaMatTocAnchorLevel,\n OnemrvaMatTocAnchorStatus,\n} from './onemrva-mat-toc-anchor.model';\nimport { Location, AsyncPipe } from '@angular/common';\nimport { MatIconModule } from '@angular/material/icon';\nimport { ActivatedRoute, Router, RouterLink } from '@angular/router';\n\n@Component({\n selector: 'onemrva-mat-table-of-content',\n templateUrl: 'onemrva-mat-table-of-content.component.html',\n styleUrl: 'onemrva-mat-table-of-content.component.scss',\n standalone: true,\n imports: [\n MatListModule,\n TranslateModule,\n MatIconModule,\n RouterLink,\n AsyncPipe,\n ],\n encapsulation: ViewEncapsulation.Emulated,\n host: {\n '[attr.data-cy]': 'dataCy()',\n },\n})\nexport class OnemrvaMatTableOfContentComponent\n implements OnInit, OnDestroy, AfterViewInit\n{\n // Inputs (immutable)\n readonly titleKeyIn = input<string>();\n readonly tocName = input.required<string>();\n readonly tableOfContentName = input<string>();\n readonly scrollShift = input(0);\n\n readonly dataCy = input('onemrva-mat-toc');\n\n // Internal override for titleKey\n private readonly _titleKeyOverride = signal<string | null>(null);\n\n // What the template should use\n readonly titleKey = computed(\n () => this._titleKeyOverride() ?? this.titleKeyIn(),\n );\n\n toc$!: Observable<OnemrvaMatTocAnchor[]>;\n activePath = '';\n\n private readonly destroy$ = new Subject<void>();\n\n level = OnemrvaMatTocAnchorLevel;\n status = OnemrvaMatTocAnchorStatus;\n\n private readonly location = inject(Location);\n private readonly route = inject(ActivatedRoute);\n private readonly router = inject(Router);\n private readonly tocService = inject(OnemrvaMatTableOfContentService);\n\n private observer!: IntersectionObserver;\n private timeoutId: ReturnType<typeof setTimeout> | null = null;\n\n ngOnInit(): void {\n this.route.fragment.pipe(takeUntil(this.destroy$)).subscribe(fragment => {\n this.activePath = fragment ?? '';\n });\n\n this.toc$ = this.tocService.toc$.pipe(\n map(tocMap => {\n const toc =\n tocMap[this.tocName()]?.filter(entry => !entry.hidden) ?? [];\n return toc.map(entry => ({\n ...entry,\n path: entry.path?.startsWith('#') ? entry.path.slice(1) : entry.path,\n }));\n }),\n tap(toc => {\n if (!toc.length) {\n this._titleKeyOverride.set('tocName.notFound');\n } else {\n this._titleKeyOverride.set(null);\n this.activePath = toc[0].path;\n }\n }),\n );\n }\n\n ngAfterViewInit(): void {\n const elements = document.querySelectorAll<HTMLElement>(\n '.onemrva-mat-toc-anchor',\n );\n\n this.observer = new IntersectionObserver(\n entries => {\n for (const entry of entries) {\n if (!entry.isIntersecting) continue;\n\n const id = entry.target.getAttribute('id');\n if (!id) continue;\n\n if (this.timeoutId !== null) clearTimeout(this.timeoutId);\n\n this.timeoutId = setTimeout(() => {\n this.location.replaceState(\n this.router.url.split('#')[0] + `#${id}`,\n );\n this.activePath = id;\n this.timeoutId = null;\n }, 200);\n }\n },\n { root: null, threshold: 0, rootMargin: '-92px 0px -75% 0px' },\n );\n\n elements.forEach(el => this.observer.observe(el));\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n\n if (this.timeoutId !== null) {\n clearTimeout(this.timeoutId);\n this.timeoutId = null;\n }\n\n this.observer?.disconnect();\n this.tocService.resetToc();\n }\n}\n","<div class=\"onemrva-mat-toc\">\n <h3 class=\"onemrva-mat-toc-title\">{{ titleKey() | translate }}</h3>\n\n <mat-list>\n @for (anchor of toc$ | async; track anchor.path) {\n <mat-list-item\n [routerLink]=\"[]\"\n [fragment]=\"anchor.path\"\n [class]=\"{\n 'active-anchor': anchor.path === activePath,\n 'onemrva-anchor-for-subsection': anchor.level === level.SUBSECTION,\n 'onemrva-mat-hidden-toc-anchor': anchor.directive?.hiddenInToc(),\n }\"\n >\n {{ anchor.titleKey | translate }}\n @if (anchor.status === status.CHECKMARK) {\n <mat-icon class=\"mat-success\">check</mat-icon>\n }\n @if (anchor.status === status.WARNING) {\n <mat-icon class=\"anchor-warning\">priority_high</mat-icon>\n }\n </mat-list-item>\n }\n </mat-list>\n</div>\n","import {\n OnInit,\n Directive,\n AfterViewInit,\n ChangeDetectorRef,\n inject,\n input,\n computed,\n signal,\n} from '@angular/core';\nimport { OnemrvaMatTableOfContentService } from './onemrva-mat-table-of-content.service';\nimport { OnemrvaMatTocAnchor } from './onemrva-mat-toc-anchor.model';\nimport { TranslateService } from '@ngx-translate/core';\nimport { ActivatedRoute } from '@angular/router';\n\n/**\n * For accessibility purpose, aria-label and will be displayed\n */\n\n@Directive({\n selector: '[onemrvaMatToc]',\n standalone: true,\n host: {\n '[attr.role]': 'role()',\n '[attr.class]': 'clazz()',\n '[attr.id]': 'id()',\n '[attr.aria-label]': '_ariaLabel()',\n '[attr.rvaonem-toc-anchor]': '_ariaToc()',\n },\n})\nexport class OnemrvaMatTableOfContentDirective\n implements OnInit, AfterViewInit\n{\n readonly onemrvaMatToc = input.required<OnemrvaMatTocAnchor>();\n\n readonly role = signal('');\n readonly clazz = signal('onemrva-mat-toc-anchor');\n readonly id = signal('');\n\n readonly _ariaLabel = computed(() =>\n this.translateService.instant(this.onemrvaMatToc()?.titleKey),\n );\n\n readonly hiddenInToc = input(false);\n\n readonly _ariaToc = computed(() => {\n const onemrvaMatToc = this.onemrvaMatToc();\n if (onemrvaMatToc && onemrvaMatToc.path && onemrvaMatToc.path[0] !== '#')\n return '#' + onemrvaMatToc?.path;\n return onemrvaMatToc?.path;\n });\n\n tocService = inject(OnemrvaMatTableOfContentService);\n cd = inject(ChangeDetectorRef);\n translateService = inject(TranslateService);\n route = inject(ActivatedRoute);\n\n ngOnInit(): void {\n const onemrvaMatToc = this.onemrvaMatToc();\n this.tocService.addAnchor({ ...onemrvaMatToc, directive: this });\n\n this.id.set(onemrvaMatToc.path.slice(1, onemrvaMatToc.path.length));\n // console.log(' HWK this.hidden', this.hidden);\n }\n\n ngAfterViewInit(): void {\n this.cd.detectChanges();\n this.route.fragment.subscribe(fragment => {\n const el = document.getElementById(fragment!);\n if (el) {\n el.scrollIntoView({ behavior: 'smooth' });\n }\n });\n }\n}\n","/*\n * Public API Surface of mat-summary-stepper\n */\n\nexport * from './src/onemrva-mat-table-of-content.component';\nexport * from './src/onemrva-mat-table-of-content.directive';\nexport * from './src/onemrva-mat-table-of-content.service';\nexport * from './src/onemrva-mat-toc-anchor.model';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"onemrvapublic-design-system-mat-table-of-content.mjs","sources":["../../../../projects/onemrva/design-system/mat-table-of-content/src/onemrva-mat-toc-anchor.model.ts","../../../../projects/onemrva/design-system/mat-table-of-content/src/onemrva-mat-table-of-content.service.ts","../../../../projects/onemrva/design-system/mat-table-of-content/src/onemrva-mat-table-of-content.component.ts","../../../../projects/onemrva/design-system/mat-table-of-content/src/onemrva-mat-table-of-content.component.html","../../../../projects/onemrva/design-system/mat-table-of-content/src/onemrva-mat-table-of-content.directive.ts","../../../../projects/onemrva/design-system/mat-table-of-content/index.ts","../../../../projects/onemrva/design-system/mat-table-of-content/onemrvapublic-design-system-mat-table-of-content.ts"],"sourcesContent":["export enum OnemrvaMatTocAnchorStatus {\n CHECKMARK,\n WARNING,\n}\n\nexport enum OnemrvaMatTocAnchorLevel {\n SECTION,\n SUBSECTION,\n}\n\nexport interface OnemrvaMatTocAnchor {\n tocName: string;\n titleKey: string;\n path: string;\n order?: number; // You can manually set the order of your links\n status?: OnemrvaMatTocAnchorStatus; // checkmarck add a checkmark icon at the end of the line. Warning adds an exclamation mark\n level?: OnemrvaMatTocAnchorLevel; // Section level by default\n hidden?: boolean;\n directive?: any;\n}\n\nexport type OnemrvaMatToc = Record<string, OnemrvaMatTocAnchor[]>;\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport {\n OnemrvaMatTocAnchor,\n OnemrvaMatToc,\n OnemrvaMatTocAnchorLevel,\n} from './onemrva-mat-toc-anchor.model';\n\n@Injectable()\nexport class OnemrvaMatTableOfContentService {\n private _toc: OnemrvaMatToc = {};\n private _toc$ = new BehaviorSubject<OnemrvaMatToc>({});\n toc$: Observable<OnemrvaMatToc> = this._toc$.asObservable();\n\n addAnchor(anchor: OnemrvaMatTocAnchor) {\n if (!anchor.level) {\n anchor.level = OnemrvaMatTocAnchorLevel.SECTION;\n }\n\n if (!this._toc[anchor.tocName])\n this._toc = { ...this._toc, [anchor.tocName]: [anchor] };\n else if (\n this._toc[anchor.tocName].findIndex(a => anchor.path === a.path) < 0\n ) {\n let idx = -1;\n if (anchor.order) {\n idx = this._toc[anchor.tocName].findIndex(\n a => a.order && anchor.order! < a.order,\n );\n }\n\n const newToc = [...this._toc[anchor.tocName]];\n if (idx >= 0) {\n newToc.splice(idx, 0, anchor);\n } else {\n newToc.push(anchor);\n }\n this._toc = {\n ...this._toc,\n [anchor.tocName]: newToc,\n };\n }\n\n this._toc$.next(this._toc);\n }\n\n resetToc() {\n this._toc = {};\n this._toc$.next(this._toc);\n }\n}\n","import {\n AfterViewInit,\n Component,\n inject,\n OnDestroy,\n OnInit,\n ViewEncapsulation,\n input,\n signal,\n computed,\n} from '@angular/core';\nimport { MatListModule } from '@angular/material/list';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { OnemrvaMatTableOfContentService } from './onemrva-mat-table-of-content.service';\nimport { Observable, map, tap, Subject, takeUntil } from 'rxjs';\nimport {\n OnemrvaMatTocAnchor,\n OnemrvaMatTocAnchorLevel,\n OnemrvaMatTocAnchorStatus,\n} from './onemrva-mat-toc-anchor.model';\nimport { Location, AsyncPipe } from '@angular/common';\nimport { MatIconModule } from '@angular/material/icon';\nimport { ActivatedRoute, Router, RouterLink } from '@angular/router';\n\n@Component({\n selector: 'onemrva-mat-table-of-content',\n templateUrl: 'onemrva-mat-table-of-content.component.html',\n styleUrl: 'onemrva-mat-table-of-content.component.scss',\n standalone: true,\n imports: [\n MatListModule,\n TranslatePipe,\n MatIconModule,\n RouterLink,\n AsyncPipe,\n ],\n encapsulation: ViewEncapsulation.Emulated,\n host: {\n '[attr.data-cy]': 'dataCy()',\n },\n})\nexport class OnemrvaMatTableOfContentComponent\n implements OnInit, OnDestroy, AfterViewInit\n{\n // Inputs (immutable)\n readonly titleKeyIn = input<string>();\n readonly tocName = input.required<string>();\n readonly tableOfContentName = input<string>();\n readonly scrollShift = input(0);\n\n readonly dataCy = input('onemrva-mat-toc');\n\n // Internal override for titleKey\n private readonly _titleKeyOverride = signal<string | null>(null);\n\n // What the template should use\n readonly titleKey = computed(\n () => this._titleKeyOverride() ?? this.titleKeyIn(),\n );\n\n toc$!: Observable<OnemrvaMatTocAnchor[]>;\n activePath = '';\n\n private readonly destroy$ = new Subject<void>();\n\n level = OnemrvaMatTocAnchorLevel;\n status = OnemrvaMatTocAnchorStatus;\n\n private readonly location = inject(Location);\n private readonly route = inject(ActivatedRoute);\n private readonly router = inject(Router);\n private readonly tocService = inject(OnemrvaMatTableOfContentService);\n\n private observer!: IntersectionObserver;\n private timeoutId: ReturnType<typeof setTimeout> | null = null;\n\n ngOnInit(): void {\n this.route.fragment.pipe(takeUntil(this.destroy$)).subscribe(fragment => {\n this.activePath = fragment ?? '';\n });\n\n this.toc$ = this.tocService.toc$.pipe(\n map(tocMap => {\n const toc =\n tocMap[this.tocName()]?.filter(entry => !entry.hidden) ?? [];\n return toc.map(entry => ({\n ...entry,\n path: entry.path?.startsWith('#') ? entry.path.slice(1) : entry.path,\n }));\n }),\n tap(toc => {\n if (!toc.length) {\n this._titleKeyOverride.set('tocName.notFound');\n } else {\n this._titleKeyOverride.set(null);\n this.activePath = toc[0].path;\n }\n }),\n );\n }\n\n ngAfterViewInit(): void {\n const elements = document.querySelectorAll<HTMLElement>(\n '.onemrva-mat-toc-anchor',\n );\n\n this.observer = new IntersectionObserver(\n entries => {\n for (const entry of entries) {\n if (!entry.isIntersecting) continue;\n\n const id = entry.target.getAttribute('id');\n if (!id) continue;\n\n if (this.timeoutId !== null) clearTimeout(this.timeoutId);\n\n this.timeoutId = setTimeout(() => {\n this.location.replaceState(\n this.router.url.split('#')[0] + `#${id}`,\n );\n this.activePath = id;\n this.timeoutId = null;\n }, 200);\n }\n },\n { root: null, threshold: 0, rootMargin: '-92px 0px -75% 0px' },\n );\n\n elements.forEach(el => this.observer.observe(el));\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n\n if (this.timeoutId !== null) {\n clearTimeout(this.timeoutId);\n this.timeoutId = null;\n }\n\n this.observer?.disconnect();\n this.tocService.resetToc();\n }\n}\n","<div class=\"onemrva-mat-toc\">\n <h3 class=\"onemrva-mat-toc-title\">{{ titleKey() | translate }}</h3>\n\n <mat-list>\n @for (anchor of toc$ | async; track anchor.path) {\n <mat-list-item\n [routerLink]=\"[]\"\n [fragment]=\"anchor.path\"\n [class]=\"{\n 'active-anchor': anchor.path === activePath,\n 'onemrva-anchor-for-subsection': anchor.level === level.SUBSECTION,\n 'onemrva-mat-hidden-toc-anchor': anchor.directive?.hiddenInToc(),\n }\"\n >\n {{ anchor.titleKey | translate }}\n @if (anchor.status === status.CHECKMARK) {\n <mat-icon class=\"mat-success\">check</mat-icon>\n }\n @if (anchor.status === status.WARNING) {\n <mat-icon class=\"anchor-warning\">priority_high</mat-icon>\n }\n </mat-list-item>\n }\n </mat-list>\n</div>\n","import {\n OnInit,\n Directive,\n AfterViewInit,\n ChangeDetectorRef,\n inject,\n input,\n computed,\n signal,\n} from '@angular/core';\nimport { OnemrvaMatTableOfContentService } from './onemrva-mat-table-of-content.service';\nimport { OnemrvaMatTocAnchor } from './onemrva-mat-toc-anchor.model';\nimport { TranslateService } from '@ngx-translate/core';\nimport { ActivatedRoute } from '@angular/router';\n\n/**\n * For accessibility purpose, aria-label and will be displayed\n */\n\n@Directive({\n selector: '[onemrvaMatToc]',\n standalone: true,\n host: {\n '[attr.role]': 'role()',\n '[attr.class]': 'clazz()',\n '[attr.id]': 'id()',\n '[attr.aria-label]': '_ariaLabel()',\n '[attr.rvaonem-toc-anchor]': '_ariaToc()',\n },\n})\nexport class OnemrvaMatTableOfContentDirective\n implements OnInit, AfterViewInit\n{\n readonly onemrvaMatToc = input.required<OnemrvaMatTocAnchor>();\n\n readonly role = signal('');\n readonly clazz = signal('onemrva-mat-toc-anchor');\n readonly id = signal('');\n\n readonly _ariaLabel = computed(() =>\n this.translateService.instant(this.onemrvaMatToc()?.titleKey),\n );\n\n readonly hiddenInToc = input(false);\n\n readonly _ariaToc = computed(() => {\n const onemrvaMatToc = this.onemrvaMatToc();\n if (onemrvaMatToc && onemrvaMatToc.path && onemrvaMatToc.path[0] !== '#')\n return '#' + onemrvaMatToc?.path;\n return onemrvaMatToc?.path;\n });\n\n tocService = inject(OnemrvaMatTableOfContentService);\n cd = inject(ChangeDetectorRef);\n translateService = inject(TranslateService);\n route = inject(ActivatedRoute);\n\n ngOnInit(): void {\n const onemrvaMatToc = this.onemrvaMatToc();\n this.tocService.addAnchor({ ...onemrvaMatToc, directive: this });\n\n this.id.set(onemrvaMatToc.path.slice(1, onemrvaMatToc.path.length));\n // console.log(' HWK this.hidden', this.hidden);\n }\n\n ngAfterViewInit(): void {\n this.cd.detectChanges();\n this.route.fragment.subscribe(fragment => {\n const el = document.getElementById(fragment!);\n if (el) {\n el.scrollIntoView({ behavior: 'smooth' });\n }\n });\n }\n}\n","/*\n * Public API Surface of mat-summary-stepper\n */\n\nexport * from './src/onemrva-mat-table-of-content.component';\nexport * from './src/onemrva-mat-table-of-content.directive';\nexport * from './src/onemrva-mat-table-of-content.service';\nexport * from './src/onemrva-mat-toc-anchor.model';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,7 +1,6 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { viewChild, TemplateRef, Component, contentChildren, input, computed, inject, Renderer2, ChangeDetectorRef, effect } from '@angular/core';
3
- import * as i1 from '@ngx-translate/core';
4
- import { TranslateService, TranslateModule } from '@ngx-translate/core';
3
+ import { TranslateService, TranslatePipe } from '@ngx-translate/core';
5
4
  import { NgTemplateOutlet } from '@angular/common';
6
5
  import { OnemRvaCDNService } from '@onemrvapublic/design-system/shared';
7
6
 
@@ -63,11 +62,11 @@ class PageErrorComponent {
63
62
  return this.cdn.getOri(this.translate.instant(`error.${this.safeCode()}.ori`));
64
63
  }
65
64
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: PageErrorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
66
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.1", type: PageErrorComponent, isStandalone: true, selector: "page-error", inputs: { code: { classPropertyName: "code", publicName: "code", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "actions", predicate: PageErrorActionComponent, isSignal: true }], ngImport: i0, template: "<div class=\"bkg\">\n <!-- do not copy -->\n <div>\n <!-- do not copy -->\n <main class=\"page-error\">\n <section class=\"row\">\n <div class=\"col-6-large col-12 col-left\">\n <div class=\"error-content\">\n <h1>{{ 'error.' + code() + '.h1' | translate }}</h1>\n <h2>{{ 'error.' + code() + '.h2' | translate }}</h2>\n <p>{{ 'error.' + code() + '.p' | translate }}</p>\n @for (action of actions(); track action.template()) {\n @if (action.template()) {\n <ng-container *ngTemplateOutlet=\"action.template()\" />\n }\n }\n </div>\n </div>\n <div class=\"col-6-large col-12 col-right\">\n <img\n alt=\"{{ 'error.' + code() + '.h2' | translate }}\"\n [src]=\"ori\"\n class=\"ori\"\n />\n </div>\n </section>\n </main>\n </div>\n <!-- do not copy -->\n</div>\n<!-- do not copy -->\n", styles: [".page-error section.row{min-height:calc(100vh - 200px)}.page-error section.row .col-right{display:grid!important;place-items:center}.page-error section.row .col-right img.ori{height:428px}.page-error section.row .col-left{display:flex!important;align-items:center;justify-content:flex-start;text-align:left}.page-error section.row .col-left .error-content{display:block;height:auto}.page-error section.row .col-left .error-content h1{font:var(--mat-sys-display-medium)}\n"], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }] }); }
65
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.1", type: PageErrorComponent, isStandalone: true, selector: "page-error", inputs: { code: { classPropertyName: "code", publicName: "code", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "actions", predicate: PageErrorActionComponent, isSignal: true }], ngImport: i0, template: "<div class=\"bkg\">\n <!-- do not copy -->\n <div>\n <!-- do not copy -->\n <main class=\"page-error\">\n <section class=\"row\">\n <div class=\"col-6-large col-12 col-left\">\n <div class=\"error-content\">\n <h1>{{ 'error.' + code() + '.h1' | translate }}</h1>\n <h2>{{ 'error.' + code() + '.h2' | translate }}</h2>\n <p>{{ 'error.' + code() + '.p' | translate }}</p>\n @for (action of actions(); track action.template()) {\n @if (action.template()) {\n <ng-container *ngTemplateOutlet=\"action.template()\" />\n }\n }\n </div>\n </div>\n <div class=\"col-6-large col-12 col-right\">\n <img\n alt=\"{{ 'error.' + code() + '.h2' | translate }}\"\n [src]=\"ori\"\n class=\"ori\"\n />\n </div>\n </section>\n </main>\n </div>\n <!-- do not copy -->\n</div>\n<!-- do not copy -->\n", styles: [".page-error section.row{min-height:calc(100vh - 200px)}.page-error section.row .col-right{display:grid!important;place-items:center}.page-error section.row .col-right img.ori{height:428px}.page-error section.row .col-left{display:flex!important;align-items:center;justify-content:flex-start;text-align:left}.page-error section.row .col-left .error-content{display:block;height:auto}.page-error section.row .col-left .error-content h1{font:var(--mat-sys-display-medium)}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
67
66
  }
68
67
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: PageErrorComponent, decorators: [{
69
68
  type: Component,
70
- args: [{ selector: 'page-error', standalone: true, imports: [TranslateModule, NgTemplateOutlet], template: "<div class=\"bkg\">\n <!-- do not copy -->\n <div>\n <!-- do not copy -->\n <main class=\"page-error\">\n <section class=\"row\">\n <div class=\"col-6-large col-12 col-left\">\n <div class=\"error-content\">\n <h1>{{ 'error.' + code() + '.h1' | translate }}</h1>\n <h2>{{ 'error.' + code() + '.h2' | translate }}</h2>\n <p>{{ 'error.' + code() + '.p' | translate }}</p>\n @for (action of actions(); track action.template()) {\n @if (action.template()) {\n <ng-container *ngTemplateOutlet=\"action.template()\" />\n }\n }\n </div>\n </div>\n <div class=\"col-6-large col-12 col-right\">\n <img\n alt=\"{{ 'error.' + code() + '.h2' | translate }}\"\n [src]=\"ori\"\n class=\"ori\"\n />\n </div>\n </section>\n </main>\n </div>\n <!-- do not copy -->\n</div>\n<!-- do not copy -->\n", styles: [".page-error section.row{min-height:calc(100vh - 200px)}.page-error section.row .col-right{display:grid!important;place-items:center}.page-error section.row .col-right img.ori{height:428px}.page-error section.row .col-left{display:flex!important;align-items:center;justify-content:flex-start;text-align:left}.page-error section.row .col-left .error-content{display:block;height:auto}.page-error section.row .col-left .error-content h1{font:var(--mat-sys-display-medium)}\n"] }]
69
+ args: [{ selector: 'page-error', standalone: true, imports: [TranslatePipe, NgTemplateOutlet], template: "<div class=\"bkg\">\n <!-- do not copy -->\n <div>\n <!-- do not copy -->\n <main class=\"page-error\">\n <section class=\"row\">\n <div class=\"col-6-large col-12 col-left\">\n <div class=\"error-content\">\n <h1>{{ 'error.' + code() + '.h1' | translate }}</h1>\n <h2>{{ 'error.' + code() + '.h2' | translate }}</h2>\n <p>{{ 'error.' + code() + '.p' | translate }}</p>\n @for (action of actions(); track action.template()) {\n @if (action.template()) {\n <ng-container *ngTemplateOutlet=\"action.template()\" />\n }\n }\n </div>\n </div>\n <div class=\"col-6-large col-12 col-right\">\n <img\n alt=\"{{ 'error.' + code() + '.h2' | translate }}\"\n [src]=\"ori\"\n class=\"ori\"\n />\n </div>\n </section>\n </main>\n </div>\n <!-- do not copy -->\n</div>\n<!-- do not copy -->\n", styles: [".page-error section.row{min-height:calc(100vh - 200px)}.page-error section.row .col-right{display:grid!important;place-items:center}.page-error section.row .col-right img.ori{height:428px}.page-error section.row .col-left{display:flex!important;align-items:center;justify-content:flex-start;text-align:left}.page-error section.row .col-left .error-content{display:block;height:auto}.page-error section.row .col-left .error-content h1{font:var(--mat-sys-display-medium)}\n"] }]
71
70
  }], ctorParameters: () => [], propDecorators: { actions: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => PageErrorActionComponent), { isSignal: true }] }], code: [{ type: i0.Input, args: [{ isSignal: true, alias: "code", required: false }] }] } });
72
71
 
73
72
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"onemrvapublic-design-system-page-error.mjs","sources":["../../../../projects/onemrva/design-system/page-error/src/page-error-action.component.ts","../../../../projects/onemrva/design-system/page-error/src/page-error.component.ts","../../../../projects/onemrva/design-system/page-error/src/page-error.component.html","../../../../projects/onemrva/design-system/page-error/onemrvapublic-design-system-page-error.ts"],"sourcesContent":["import { Component, TemplateRef, viewChild } from '@angular/core';\n\n@Component({\n selector: 'page-error-action',\n template: '<ng-template><ng-content /></ng-template>',\n standalone: true,\n})\nexport class PageErrorActionComponent {\n readonly template = viewChild(TemplateRef);\n}\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n OnDestroy,\n Renderer2,\n computed,\n effect,\n inject,\n input,\n contentChildren,\n} from '@angular/core';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { OnemRvaCDNService } from '@onemrvapublic/design-system/shared';\nimport { PageErrorActionComponent } from './page-error-action.component';\n\n@Component({\n selector: 'page-error',\n styleUrls: ['./page-error.component.scss'],\n templateUrl: 'page-error.component.html',\n standalone: true,\n imports: [TranslateModule, NgTemplateOutlet],\n})\nexport class PageErrorComponent implements AfterViewInit, OnDestroy {\n private readonly defaultCode = 500;\n private readonly supportedCodes = new Set([\n 500, 404, 403, 401, 400, 503, 502, 408, 429,\n ]);\n\n mdc: HTMLElement | null = null;\n\n readonly actions = contentChildren(PageErrorActionComponent);\n\n readonly code = input<number>(this.defaultCode);\n\n readonly safeCode = computed(() => {\n const c = this.code();\n return this.supportedCodes.has(c) ? c : this.defaultCode;\n });\n\n private cdn = inject(OnemRvaCDNService);\n private renderer = inject(Renderer2);\n private translate = inject(TranslateService);\n private cd = inject(ChangeDetectorRef);\n\n // optional: react to language changes (so ori updates)\n constructor() {\n effect(() => {\n // track both: safeCode + current language from ngx-translate\n // `instant` won’t trigger by itself when language changes, so use onLangChange if needed\n this.safeCode();\n });\n }\n\n ngAfterViewInit(): void {\n this.cd.detectChanges();\n this.mdc = document.querySelector('#onemrva-drawer-container');\n if (this.mdc) this.renderer.addClass(this.mdc, 'bkg');\n }\n\n ngOnDestroy(): void {\n if (this.mdc) this.renderer.removeClass(this.mdc, 'bkg');\n }\n\n get ori() {\n return this.cdn.getOri(\n this.translate.instant(`error.${this.safeCode()}.ori`),\n );\n }\n}\n","<div class=\"bkg\">\n <!-- do not copy -->\n <div>\n <!-- do not copy -->\n <main class=\"page-error\">\n <section class=\"row\">\n <div class=\"col-6-large col-12 col-left\">\n <div class=\"error-content\">\n <h1>{{ 'error.' + code() + '.h1' | translate }}</h1>\n <h2>{{ 'error.' + code() + '.h2' | translate }}</h2>\n <p>{{ 'error.' + code() + '.p' | translate }}</p>\n @for (action of actions(); track action.template()) {\n @if (action.template()) {\n <ng-container *ngTemplateOutlet=\"action.template()\" />\n }\n }\n </div>\n </div>\n <div class=\"col-6-large col-12 col-right\">\n <img\n alt=\"{{ 'error.' + code() + '.h2' | translate }}\"\n [src]=\"ori\"\n class=\"ori\"\n />\n </div>\n </section>\n </main>\n </div>\n <!-- do not copy -->\n</div>\n<!-- do not copy -->\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"onemrvapublic-design-system-page-error.mjs","sources":["../../../../projects/onemrva/design-system/page-error/src/page-error-action.component.ts","../../../../projects/onemrva/design-system/page-error/src/page-error.component.ts","../../../../projects/onemrva/design-system/page-error/src/page-error.component.html","../../../../projects/onemrva/design-system/page-error/onemrvapublic-design-system-page-error.ts"],"sourcesContent":["import { Component, TemplateRef, viewChild } from '@angular/core';\n\n@Component({\n selector: 'page-error-action',\n template: '<ng-template><ng-content /></ng-template>',\n standalone: true,\n})\nexport class PageErrorActionComponent {\n readonly template = viewChild(TemplateRef);\n}\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n OnDestroy,\n Renderer2,\n computed,\n effect,\n inject,\n input,\n contentChildren,\n} from '@angular/core';\nimport { TranslatePipe, TranslateService } from '@ngx-translate/core';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { OnemRvaCDNService } from '@onemrvapublic/design-system/shared';\nimport { PageErrorActionComponent } from './page-error-action.component';\n\n@Component({\n selector: 'page-error',\n styleUrls: ['./page-error.component.scss'],\n templateUrl: 'page-error.component.html',\n standalone: true,\n imports: [TranslatePipe, NgTemplateOutlet],\n})\nexport class PageErrorComponent implements AfterViewInit, OnDestroy {\n private readonly defaultCode = 500;\n private readonly supportedCodes = new Set([\n 500, 404, 403, 401, 400, 503, 502, 408, 429,\n ]);\n\n mdc: HTMLElement | null = null;\n\n readonly actions = contentChildren(PageErrorActionComponent);\n\n readonly code = input<number>(this.defaultCode);\n\n readonly safeCode = computed(() => {\n const c = this.code();\n return this.supportedCodes.has(c) ? c : this.defaultCode;\n });\n\n private cdn = inject(OnemRvaCDNService);\n private renderer = inject(Renderer2);\n private translate = inject(TranslateService);\n private cd = inject(ChangeDetectorRef);\n\n // optional: react to language changes (so ori updates)\n constructor() {\n effect(() => {\n // track both: safeCode + current language from ngx-translate\n // `instant` won’t trigger by itself when language changes, so use onLangChange if needed\n this.safeCode();\n });\n }\n\n ngAfterViewInit(): void {\n this.cd.detectChanges();\n this.mdc = document.querySelector('#onemrva-drawer-container');\n if (this.mdc) this.renderer.addClass(this.mdc, 'bkg');\n }\n\n ngOnDestroy(): void {\n if (this.mdc) this.renderer.removeClass(this.mdc, 'bkg');\n }\n\n get ori() {\n return this.cdn.getOri(\n this.translate.instant(`error.${this.safeCode()}.ori`),\n );\n }\n}\n","<div class=\"bkg\">\n <!-- do not copy -->\n <div>\n <!-- do not copy -->\n <main class=\"page-error\">\n <section class=\"row\">\n <div class=\"col-6-large col-12 col-left\">\n <div class=\"error-content\">\n <h1>{{ 'error.' + code() + '.h1' | translate }}</h1>\n <h2>{{ 'error.' + code() + '.h2' | translate }}</h2>\n <p>{{ 'error.' + code() + '.p' | translate }}</p>\n @for (action of actions(); track action.template()) {\n @if (action.template()) {\n <ng-container *ngTemplateOutlet=\"action.template()\" />\n }\n }\n </div>\n </div>\n <div class=\"col-6-large col-12 col-right\">\n <img\n alt=\"{{ 'error.' + code() + '.h2' | translate }}\"\n [src]=\"ori\"\n class=\"ori\"\n />\n </div>\n </section>\n </main>\n </div>\n <!-- do not copy -->\n</div>\n<!-- do not copy -->\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@ import { MatTooltipModule } from '@angular/material/tooltip';
7
7
  import { Clipboard } from '@angular/cdk/clipboard';
8
8
  import { DOCUMENT } from '@angular/common';
9
9
  import { Platform, _isTestEnvironment } from '@angular/cdk/platform';
10
- import { Subject, merge, NEVER, take, tap, catchError, startWith, switchMap, shareReplay, filter, finalize, of, forkJoin, ReplaySubject, skip, distinctUntilChanged, map as map$1, combineLatestWith, from, takeUntil } from 'rxjs';
10
+ import { Subject, merge, NEVER, take, tap, catchError, startWith, switchMap, shareReplay, filter, finalize, firstValueFrom, of, forkJoin, ReplaySubject, skip, distinctUntilChanged, map as map$1, combineLatestWith, from, takeUntil } from 'rxjs';
11
11
  import { OnemrvaMatColor, OnemrvaMatSize } from '@onemrvapublic/design-system/utils';
12
12
  import { BreakpointObserver } from '@angular/cdk/layout';
13
13
  import { catchError as catchError$1, map, startWith as startWith$1 } from 'rxjs/operators';
@@ -1125,7 +1125,7 @@ function setTranslationLanguage(translateService, languages = ['en', 'fr', 'nl',
1125
1125
  }
1126
1126
  }
1127
1127
  }
1128
- await translateService.use(language).toPromise();
1128
+ await firstValueFrom(translateService.use(language));
1129
1129
  };
1130
1130
  }
1131
1131
  /**
@@ -1142,11 +1142,11 @@ function setTranslationLanguageFromWO(translateService, languages = ['fr', 'nl']
1142
1142
  if (language !== null) {
1143
1143
  language = language.toLowerCase();
1144
1144
  if (languages.indexOf(language) >= 0) {
1145
- await translateService.use(language).toPromise();
1145
+ await firstValueFrom(translateService.use(language));
1146
1146
  return;
1147
1147
  }
1148
1148
  }
1149
- await translateService.use(default_language).toPromise();
1149
+ await firstValueFrom(translateService.use(default_language));
1150
1150
  };
1151
1151
  }
1152
1152
 
@@ -1396,7 +1396,7 @@ class OnemRvaCDNCountryService {
1396
1396
  }
1397
1397
  getCountries() {
1398
1398
  return this.cdnService.fetch('/json/countries.json').pipe(map(response => response), // ✅ Explicitly cast response
1399
- combineLatestWith(from(this.translateService.onLangChange).pipe(startWith$1(this.translateService.currentLang ?? 'fr'), map(event => {
1399
+ combineLatestWith(from(this.translateService.onLangChange).pipe(startWith$1(this.translateService.getCurrentLang() || 'fr'), map(event => {
1400
1400
  return typeof event === 'string' ? event : event.lang;
1401
1401
  }))), map(([response, currentLang]) => {
1402
1402
  // ✅ Explicit type definition
@@ -1413,7 +1413,7 @@ class OnemRvaCDNCountryService {
1413
1413
  return countries.filter(country => country.zone === zone);
1414
1414
  }));
1415
1415
  }
1416
- getTranslatedCountryName(country, languageCode = this.translateService.currentLang) {
1416
+ getTranslatedCountryName(country, languageCode = this.translateService.getCurrentLang()) {
1417
1417
  if (languageCode === 'fr' ||
1418
1418
  languageCode === 'nl' ||
1419
1419
  languageCode === 'de') {
@@ -2086,7 +2086,7 @@ function onemrvaDateLuxonYearMonthProvider() {
2086
2086
  }
2087
2087
 
2088
2088
  // Auto-generated — do not edit
2089
- const VERSION = '22.0.0-develop.3';
2089
+ const VERSION = '22.0.0-develop.4';
2090
2090
 
2091
2091
  function onemrvaThemeProvider() {
2092
2092
  return makeEnvironmentProviders([