@fundamental-ngx/core 0.61.2-rc.8 → 0.61.2

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 (114) hide show
  1. package/fesm2022/fundamental-ngx-core-action-sheet.mjs +2 -3
  2. package/fesm2022/fundamental-ngx-core-action-sheet.mjs.map +1 -1
  3. package/fesm2022/fundamental-ngx-core-avatar-group.mjs +4 -6
  4. package/fesm2022/fundamental-ngx-core-avatar-group.mjs.map +1 -1
  5. package/fesm2022/fundamental-ngx-core-breadcrumb.mjs +13 -11
  6. package/fesm2022/fundamental-ngx-core-breadcrumb.mjs.map +1 -1
  7. package/fesm2022/fundamental-ngx-core-busy-indicator.mjs +7 -5
  8. package/fesm2022/fundamental-ngx-core-busy-indicator.mjs.map +1 -1
  9. package/fesm2022/fundamental-ngx-core-calendar.mjs +31 -35
  10. package/fesm2022/fundamental-ngx-core-calendar.mjs.map +1 -1
  11. package/fesm2022/fundamental-ngx-core-carousel.mjs +2 -2
  12. package/fesm2022/fundamental-ngx-core-carousel.mjs.map +1 -1
  13. package/fesm2022/fundamental-ngx-core-combobox.mjs +3 -5
  14. package/fesm2022/fundamental-ngx-core-combobox.mjs.map +1 -1
  15. package/fesm2022/fundamental-ngx-core-date-picker.mjs +2 -2
  16. package/fesm2022/fundamental-ngx-core-date-picker.mjs.map +1 -1
  17. package/fesm2022/fundamental-ngx-core-datetime-picker.mjs +2 -2
  18. package/fesm2022/fundamental-ngx-core-datetime-picker.mjs.map +1 -1
  19. package/fesm2022/fundamental-ngx-core-datetime.mjs +13 -7
  20. package/fesm2022/fundamental-ngx-core-datetime.mjs.map +1 -1
  21. package/fesm2022/fundamental-ngx-core-dynamic-page.mjs +13 -13
  22. package/fesm2022/fundamental-ngx-core-dynamic-page.mjs.map +1 -1
  23. package/fesm2022/fundamental-ngx-core-feed-list-item.mjs +2 -2
  24. package/fesm2022/fundamental-ngx-core-feed-list-item.mjs.map +1 -1
  25. package/fesm2022/fundamental-ngx-core-form.mjs +1 -1
  26. package/fesm2022/fundamental-ngx-core-form.mjs.map +1 -1
  27. package/fesm2022/fundamental-ngx-core-grid-list.mjs +4 -4
  28. package/fesm2022/fundamental-ngx-core-grid-list.mjs.map +1 -1
  29. package/fesm2022/fundamental-ngx-core-info-label.mjs +2 -2
  30. package/fesm2022/fundamental-ngx-core-info-label.mjs.map +1 -1
  31. package/fesm2022/fundamental-ngx-core-inline-help.mjs +65 -59
  32. package/fesm2022/fundamental-ngx-core-inline-help.mjs.map +1 -1
  33. package/fesm2022/fundamental-ngx-core-link.mjs +2 -2
  34. package/fesm2022/fundamental-ngx-core-link.mjs.map +1 -1
  35. package/fesm2022/fundamental-ngx-core-menu.mjs +1 -3
  36. package/fesm2022/fundamental-ngx-core-menu.mjs.map +1 -1
  37. package/fesm2022/fundamental-ngx-core-message-strip.mjs +49 -44
  38. package/fesm2022/fundamental-ngx-core-message-strip.mjs.map +1 -1
  39. package/fesm2022/fundamental-ngx-core-multi-combobox.mjs +17 -23
  40. package/fesm2022/fundamental-ngx-core-multi-combobox.mjs.map +1 -1
  41. package/fesm2022/fundamental-ngx-core-multi-input.mjs +2 -2
  42. package/fesm2022/fundamental-ngx-core-multi-input.mjs.map +1 -1
  43. package/fesm2022/fundamental-ngx-core-nested-list.mjs +21 -22
  44. package/fesm2022/fundamental-ngx-core-nested-list.mjs.map +1 -1
  45. package/fesm2022/fundamental-ngx-core-notification.mjs +16 -13
  46. package/fesm2022/fundamental-ngx-core-notification.mjs.map +1 -1
  47. package/fesm2022/fundamental-ngx-core-object-identifier.mjs +2 -2
  48. package/fesm2022/fundamental-ngx-core-object-identifier.mjs.map +1 -1
  49. package/fesm2022/fundamental-ngx-core-object-number.mjs +2 -2
  50. package/fesm2022/fundamental-ngx-core-object-number.mjs.map +1 -1
  51. package/fesm2022/fundamental-ngx-core-object-status.mjs +2 -2
  52. package/fesm2022/fundamental-ngx-core-object-status.mjs.map +1 -1
  53. package/fesm2022/fundamental-ngx-core-overflow-layout.mjs +2 -2
  54. package/fesm2022/fundamental-ngx-core-overflow-layout.mjs.map +1 -1
  55. package/fesm2022/fundamental-ngx-core-pagination.mjs +14 -11
  56. package/fesm2022/fundamental-ngx-core-pagination.mjs.map +1 -1
  57. package/fesm2022/fundamental-ngx-core-popover.mjs +6 -0
  58. package/fesm2022/fundamental-ngx-core-popover.mjs.map +1 -1
  59. package/fesm2022/fundamental-ngx-core-product-switch.mjs +2 -2
  60. package/fesm2022/fundamental-ngx-core-product-switch.mjs.map +1 -1
  61. package/fesm2022/fundamental-ngx-core-rating-indicator.mjs +7 -4
  62. package/fesm2022/fundamental-ngx-core-rating-indicator.mjs.map +1 -1
  63. package/fesm2022/fundamental-ngx-core-segmented-button.mjs +11 -10
  64. package/fesm2022/fundamental-ngx-core-segmented-button.mjs.map +1 -1
  65. package/fesm2022/fundamental-ngx-core-select.mjs +6 -7
  66. package/fesm2022/fundamental-ngx-core-select.mjs.map +1 -1
  67. package/fesm2022/fundamental-ngx-core-shellbar.mjs +6 -6
  68. package/fesm2022/fundamental-ngx-core-shellbar.mjs.map +1 -1
  69. package/fesm2022/fundamental-ngx-core-slider.mjs +6 -6
  70. package/fesm2022/fundamental-ngx-core-slider.mjs.map +1 -1
  71. package/fesm2022/fundamental-ngx-core-split-button.mjs +2 -2
  72. package/fesm2022/fundamental-ngx-core-split-button.mjs.map +1 -1
  73. package/fesm2022/fundamental-ngx-core-step-input.mjs +2 -2
  74. package/fesm2022/fundamental-ngx-core-step-input.mjs.map +1 -1
  75. package/fesm2022/fundamental-ngx-core-switch.mjs +2 -2
  76. package/fesm2022/fundamental-ngx-core-switch.mjs.map +1 -1
  77. package/fesm2022/fundamental-ngx-core-tabs.mjs +2 -2
  78. package/fesm2022/fundamental-ngx-core-tabs.mjs.map +1 -1
  79. package/fesm2022/fundamental-ngx-core-text.mjs +2 -2
  80. package/fesm2022/fundamental-ngx-core-text.mjs.map +1 -1
  81. package/fesm2022/fundamental-ngx-core-time-picker.mjs +29 -4
  82. package/fesm2022/fundamental-ngx-core-time-picker.mjs.map +1 -1
  83. package/fesm2022/fundamental-ngx-core-time.mjs +4 -4
  84. package/fesm2022/fundamental-ngx-core-time.mjs.map +1 -1
  85. package/fesm2022/fundamental-ngx-core-token.mjs +15 -12
  86. package/fesm2022/fundamental-ngx-core-token.mjs.map +1 -1
  87. package/fesm2022/fundamental-ngx-core-toolbar.mjs +3 -5
  88. package/fesm2022/fundamental-ngx-core-toolbar.mjs.map +1 -1
  89. package/fesm2022/fundamental-ngx-core-tree.mjs +4 -4
  90. package/fesm2022/fundamental-ngx-core-tree.mjs.map +1 -1
  91. package/fesm2022/fundamental-ngx-core-upload-collection.mjs +4 -4
  92. package/fesm2022/fundamental-ngx-core-upload-collection.mjs.map +1 -1
  93. package/fesm2022/fundamental-ngx-core-user-menu.mjs +3 -5
  94. package/fesm2022/fundamental-ngx-core-user-menu.mjs.map +1 -1
  95. package/fesm2022/fundamental-ngx-core-vertical-navigation.mjs +2 -2
  96. package/fesm2022/fundamental-ngx-core-vertical-navigation.mjs.map +1 -1
  97. package/package.json +3 -3
  98. package/types/fundamental-ngx-core-breadcrumb.d.ts +5 -5
  99. package/types/fundamental-ngx-core-busy-indicator.d.ts +3 -3
  100. package/types/fundamental-ngx-core-combobox.d.ts +2 -4
  101. package/types/fundamental-ngx-core-datetime.d.ts +5 -1
  102. package/types/fundamental-ngx-core-dynamic-page.d.ts +2 -1
  103. package/types/fundamental-ngx-core-inline-help.d.ts +45 -24
  104. package/types/fundamental-ngx-core-menu.d.ts +0 -2
  105. package/types/fundamental-ngx-core-message-strip.d.ts +12 -3
  106. package/types/fundamental-ngx-core-multi-combobox.d.ts +1 -1
  107. package/types/fundamental-ngx-core-nested-list.d.ts +10 -10
  108. package/types/fundamental-ngx-core-notification.d.ts +7 -5
  109. package/types/fundamental-ngx-core-pagination.d.ts +4 -3
  110. package/types/fundamental-ngx-core-rating-indicator.d.ts +2 -3
  111. package/types/fundamental-ngx-core-segmented-button.d.ts +5 -3
  112. package/types/fundamental-ngx-core-slider.d.ts +1 -1
  113. package/types/fundamental-ngx-core-time-picker.d.ts +17 -1
  114. package/types/fundamental-ngx-core-token.d.ts +4 -4
@@ -1 +1 @@
1
- {"version":3,"file":"fundamental-ngx-core-notification.mjs","sources":["../../../../libs/core/notification/directives/notification-footer-content.directive.ts","../../../../libs/core/notification/directives/notification-group-growing-item-title.directive.ts","../../../../libs/core/notification/token.ts","../../../../libs/core/notification/directives/notification-group-header-title.directive.ts","../../../../libs/core/notification/directives/notification-list.directive.ts","../../../../libs/core/notification/directives/notification-message-strip-container.directive.ts","../../../../libs/core/notification/directives/notification-message-strip.directive.ts","../../../../libs/core/notification/directives/notification-paragraph.directive.ts","../../../../libs/core/notification/directives/notification-popover.directive.ts","../../../../libs/core/notification/directives/notification-separator.directive.ts","../../../../libs/core/notification/directives/notification-title.directive.ts","../../../../libs/core/notification/notification-actions/notification-actions.component.ts","../../../../libs/core/notification/notification-header/notification-header.component.ts","../../../../libs/core/notification/notification-utils/notification-group-base.ts","../../../../libs/core/notification/notification-body/notification-body.component.ts","../../../../libs/core/notification/notification-content/notification-content.component.ts","../../../../libs/core/notification/notification-footer/notification-footer.component.ts","../../../../libs/core/notification/notification-group-growing-item/notification-group-growing-item.component.ts","../../../../libs/core/notification/notification-group-header/notification-group-header.component.ts","../../../../libs/core/notification/notification-group-list/notification-group-list.component.ts","../../../../libs/core/notification/notification-group/notification-group.component.ts","../../../../libs/core/notification/notification-link/notification-link.component.ts","../../../../libs/core/notification/notification-utils/notification-config.ts","../../../../libs/core/notification/notification-utils/notification-ref.ts","../../../../libs/core/notification/notification/notification.component.ts","../../../../libs/core/notification/notification-utils/notification-container.ts","../../../../libs/core/notification/notification-service/notification.service.ts","../../../../libs/core/notification/notification.module.ts","../../../../libs/core/notification/index.ts","../../../../libs/core/notification/fundamental-ngx-core-notification.ts"],"sourcesContent":["import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[fdNotificationFooterContent], [fd-notification-footer-content]',\n standalone: true,\n host: {\n class: 'fd-notification__footer-content'\n }\n})\nexport class NotificationFooterContentDirective {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[fdNotificationGroupGrowingItemTitle], [fd-notification-group-growing-item-title]',\n standalone: true,\n host: {\n class: 'fd-notification-group__growing-item-title'\n }\n})\nexport class NotificationGroupGrowingItemTitleDirective {}\n","import { InjectionToken } from '@angular/core';\n\nexport const FD_NOTIFICATION = new InjectionToken('FdNotificationComponent');\nexport const FD_NOTIFICATION_TITLE = new InjectionToken('FdNotificationTitleDirective');\nexport const FD_NOTIFICATION_PARAGRAPH = new InjectionToken('FdNotificationParagraphDirective');\nexport const FD_NOTIFICATION_GROUP_HEADER = new InjectionToken('FdNotificationGroupHeaderComponent');\nexport const FD_NOTIFICATION_GROUP_HEADER_TITLE = new InjectionToken('FdNotificationGroupHeaderTitleDirective');\nexport const FD_NOTIFICATION_GROUP_LIST = new InjectionToken('FdNotificationGroupListComponent');\nexport const FD_NOTIFICATION_FOOTER = new InjectionToken('FdNotificationFooterComponent');\n","import { Directive, input } from '@angular/core';\nimport { FD_NOTIFICATION_GROUP_HEADER_TITLE } from '../token';\n\nlet notificationGroupHeaderTitleCounter = 0;\n\n@Directive({\n selector: '[fdNotificationGroupHeaderTitle], [fd-notification-group-header-title]',\n standalone: true,\n host: {\n class: 'fd-notification-group__header-title',\n role: 'heading',\n '[attr.aria-level]': 'ariaLevel()',\n '[attr.id]': 'id()'\n },\n providers: [\n {\n provide: FD_NOTIFICATION_GROUP_HEADER_TITLE,\n useExisting: NotificationGroupHeaderTitleDirective\n }\n ]\n})\nexport class NotificationGroupHeaderTitleDirective {\n /**\n * aria-level for the title\n * a numeric value from 1 to 6\n * default value is 3\n */\n ariaLevel = input<1 | 2 | 3 | 4 | 5 | 6>(3);\n\n /**\n * id for the notification group header title\n * if not set, a default value is provided\n */\n id = input('fd-notification-group-header-title-' + ++notificationGroupHeaderTitleCounter);\n}\n","import { Directive, input } from '@angular/core';\n\n@Directive({\n selector: '[fdNotificationList], [fd-notification-list]',\n standalone: true,\n host: {\n class: 'fd-notification-list',\n role: 'list',\n '[attr.aria-label]': 'ariaLabel()'\n }\n})\nexport class NotificationListDirective {\n /**\n * aria-label attribute for the element\n * Default is set to 'Notifications'\n */\n ariaLabel = input('Notifications');\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[fdNotificationMessageStripContainer], [fd-notification-message-strip-container]',\n standalone: true,\n host: {\n class: 'fd-notification__message-strip-container'\n }\n})\nexport class NotificationMessageStripContainerDirective {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[fdNotificationMessageStrip], [fd-notification-message-strip]',\n standalone: true,\n host: {\n class: 'fd-notification-message-strip'\n }\n})\nexport class NotificationMessageStripDirective {}\n","import { Directive, ElementRef, inject, input } from '@angular/core';\nimport { FD_NOTIFICATION_PARAGRAPH } from '../token';\n\nlet notificationParagraphCounter = 0;\n\n@Directive({\n selector: '[fdNotificationParagraph], [fd-notification-paragraph]',\n standalone: true,\n host: {\n class: 'fd-notification__paragraph',\n '[attr.id]': 'id()'\n },\n providers: [\n {\n provide: FD_NOTIFICATION_PARAGRAPH,\n useExisting: NotificationParagraphDirective\n }\n ]\n})\nexport class NotificationParagraphDirective {\n /**\n * id for the notification paragraph\n * if not set, a default value is provided\n */\n id = input('fd-notification-paragraph-' + ++notificationParagraphCounter);\n\n /** @hidden */\n elementRef = inject(ElementRef);\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[fdNotificationPopover], [fd-notification-popover]',\n standalone: true,\n host: {\n class: 'fd-notification-popover',\n role: 'dialog'\n }\n})\nexport class NotificationPopoverDirective {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[fdNotificationSeparator], [fd-notification-separator]',\n standalone: true,\n host: {\n class: 'fd-notification__separator'\n }\n})\nexport class NotificationSeparatorDirective {}\n","import { Directive, ElementRef, inject, input } from '@angular/core';\nimport { FD_NOTIFICATION_TITLE } from '../token';\n\nlet notificationTitleCounter = 0;\n\n@Directive({\n selector: '[fdNotificationTitle], [fd-notification-title]',\n standalone: true,\n host: {\n class: 'fd-notification__title',\n '[class.fd-notification__title--unread]': 'unread()',\n '[attr.id]': 'id()'\n },\n providers: [\n {\n provide: FD_NOTIFICATION_TITLE,\n useExisting: NotificationTitleDirective\n }\n ]\n})\nexport class NotificationTitleDirective {\n /**\n * Whether the notification title is unread.\n * default is false\n */\n unread = input(false);\n\n /**\n * id for the notification title\n * if not set, a default value is provided\n */\n id = input('fd-notification-title-' + ++notificationTitleCounter);\n\n /** @hidden */\n elementRef = inject(ElementRef);\n}\n","import { ChangeDetectionStrategy, Component, ContentChildren, QueryList, ViewEncapsulation } from '@angular/core';\nimport { ButtonComponent, FD_BUTTON_COMPONENT } from '@fundamental-ngx/core/button';\n\n@Component({\n selector: 'fd-notification-actions',\n template: `<ng-content></ng-content>`,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n host: {\n class: 'fd-notification__actions'\n }\n})\nexport class NotificationActionsComponent {\n /** @hidden */\n @ContentChildren(FD_BUTTON_COMPONENT)\n buttons: QueryList<ButtonComponent>;\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, input } from '@angular/core';\n\nlet notificationHeaderCounter = 0;\n\n@Component({\n selector: 'fd-notification-header',\n template: `<ng-content select=\"fd-icon\"></ng-content>\n <ng-content select=\"[fd-notification-title]\"></ng-content> `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n host: {\n class: 'fd-notification__header',\n '[attr.id]': 'uniqueId()'\n }\n})\nexport class NotificationHeaderComponent {\n /**\n * Unique id for the notification header\n * if not set, a default value is provided\n */\n uniqueId = input('fd-notification-header-' + ++notificationHeaderCounter);\n}\n","import { afterNextRender, contentChildren, DestroyRef, Directive, inject, Injector, Renderer2 } from '@angular/core';\nimport { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';\nimport { merge, NEVER, Observable } from 'rxjs';\nimport { auditTime, filter, startWith, switchMap } from 'rxjs/operators';\nimport { NotificationActionsComponent } from '../notification-actions/notification-actions.component';\nimport { NotificationHeaderComponent } from '../notification-header/notification-header.component';\n\n/**\n * @hidden\n * Base directive for notification components that need to set aria-describedby\n * on action buttons linking them to notification headers.\n */\n@Directive()\nexport abstract class NotificationGroupBaseDirective {\n /** @hidden */\n readonly notificationHeader = contentChildren(NotificationHeaderComponent, { descendants: true });\n\n /** @hidden */\n readonly notificationActions = contentChildren(NotificationActionsComponent);\n\n /** @hidden */\n protected readonly _destroyRef = inject(DestroyRef);\n\n /** @hidden */\n private readonly _renderer = inject(Renderer2);\n\n /** @hidden */\n private readonly _injector = inject(Injector);\n\n constructor() {\n // Use afterNextRender to ensure DOM is ready before setting up the observable chain\n afterNextRender(() => this._setupAriaDescribedBy(), { injector: this._injector });\n }\n\n /**\n * Sets up reactive subscription to update aria-describedby on action buttons.\n * @hidden\n */\n private _setupAriaDescribedBy(): void {\n const headersChanges$ = this._createHeadersObservable();\n const actionsChanges$ = this._createActionsObservable();\n\n merge(headersChanges$, actionsChanges$)\n .pipe(\n auditTime(0), // batch emissions within the same tick\n filter(() => this._hasRequiredContent()),\n takeUntilDestroyed(this._destroyRef)\n )\n .subscribe(() => this._applyAriaDescribedBy());\n }\n\n /**\n * Creates an observable that emits when notification headers change.\n * @hidden\n */\n private _createHeadersObservable(): Observable<readonly NotificationHeaderComponent[]> {\n return toObservable(this.notificationHeader, { injector: this._injector }).pipe(\n startWith(this.notificationHeader())\n );\n }\n\n /**\n * Creates an observable that emits when notification actions or their buttons change.\n * @hidden\n */\n private _createActionsObservable(): Observable<unknown> {\n return toObservable(this.notificationActions, { injector: this._injector }).pipe(\n startWith(this.notificationActions()),\n switchMap((actions) => {\n // Listen to button changes for each actions component\n // This ensures dynamically added buttons also get aria-describedby\n const buttonsChanges$ = actions.reduce(\n (acc, c) => acc.concat(c.buttons.changes),\n [] as Observable<unknown>[]\n );\n // Use NEVER to prevent completion when buttonsChanges$ is empty\n return merge(...buttonsChanges$, NEVER).pipe(startWith(0));\n })\n );\n }\n\n /**\n * Checks if required content (headers and buttons) exists.\n * @hidden\n */\n private _hasRequiredContent(): boolean {\n const headers = this.notificationHeader();\n const actions = this.notificationActions();\n\n if (headers.length === 0 || actions.length === 0) {\n return false;\n }\n return actions.some((a) => a.buttons.length > 0);\n }\n\n /**\n * Applies aria-describedby attribute to action buttons that don't already have it.\n * Uses the first header's uniqueId as the reference.\n * @hidden\n */\n private _applyAriaDescribedBy(): void {\n const firstHeader = this.notificationHeader()[0];\n const headerId = firstHeader.uniqueId();\n\n this.notificationActions().forEach((actionsComponent) => {\n actionsComponent.buttons\n .toArray()\n .map((b) => b.elementRef.nativeElement)\n .filter((b) => !b.hasAttribute('aria-describedby'))\n .forEach((b) => this._renderer.setAttribute(b, 'aria-describedby', headerId));\n });\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { NotificationGroupBaseDirective } from '../notification-utils/notification-group-base';\n\n@Component({\n selector: 'fd-notification-body',\n template: `<ng-content></ng-content>`,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'fd-notification__body'\n }\n})\nexport class NotificationBodyComponent extends NotificationGroupBaseDirective {}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'fd-notification-content',\n template: `<ng-content></ng-content>`,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n host: {\n class: 'fd-notification__content'\n }\n})\nexport class NotificationContentComponent {}\n","import { ChangeDetectionStrategy, Component, computed, input, model, signal, ViewEncapsulation } from '@angular/core';\nimport { resolveTranslationSignal } from '@fundamental-ngx/i18n';\nimport { FD_NOTIFICATION_FOOTER } from '../token';\n\n@Component({\n selector: 'fd-notification-footer',\n template: `<ng-content></ng-content>\n @if (showTrigger()) {\n <a role=\"button\" class=\"fd-link fd-notification__link\" tabindex=\"0\" (click)=\"onTriggerClick()\">\n <span class=\"fd-link__content\">{{ triggerLabel }}</span>\n </a>\n } `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n host: {\n class: 'fd-notification__footer'\n },\n providers: [\n {\n provide: FD_NOTIFICATION_FOOTER,\n useExisting: NotificationFooterComponent\n }\n ]\n})\nexport class NotificationFooterComponent {\n /**\n * Manual control: Override to show/hide the expand/collapse button.\n * When set, takes precedence over automatic truncation detection.\n * Use this for dynamically created notifications where automatic detection doesn't work.\n */\n readonly manualShowTrigger = input<boolean | undefined>(undefined);\n\n /**\n * Manual control: Set expanded state externally.\n * When set, takes precedence over internal expanded state.\n * Use this for dynamically created notifications.\n * Supports two-way binding with [(manualExpanded)].\n */\n readonly manualExpanded = model<boolean | undefined>(undefined);\n\n /**\n * Custom label for the expand button.\n * Defaults to `'More'`.\n */\n readonly moreLabel = input<string>();\n\n /**\n * Custom label for the collapse button.\n * Defaults to `'Less'`.\n */\n readonly lessLabel = input<string>();\n\n /**\n * Internal signal for automatic truncation detection.\n * Used when manual controls are not provided.\n * @internal\n */\n readonly _autoShowTrigger = signal(false);\n\n /**\n * Internal signal for automatic expanded state.\n * Used when manual controls are not provided.\n * @internal\n */\n readonly _autoExpanded = signal(false);\n\n /**\n * Computed signal for expanded state.\n * Uses manual control if provided, otherwise uses automatic state.\n */\n readonly expanded = computed(() => {\n const manual = this.manualExpanded();\n return manual !== undefined ? manual : this._autoExpanded();\n });\n\n /**\n * Computed signal that determines if trigger should be shown.\n * Uses manual control if provided, otherwise uses automatic detection.\n */\n protected readonly showTrigger = computed(() => {\n const manual = this.manualShowTrigger();\n return manual !== undefined ? manual : this._autoShowTrigger();\n });\n\n private readonly _defaultMoreLabel = resolveTranslationSignal('coreNotification.triggerMoreLabel');\n\n private readonly _defaultLessLabel = resolveTranslationSignal('coreNotification.triggerLessLabel');\n\n /** @hidden */\n protected onTriggerClick(): void {\n const currentExpanded = this.expanded();\n const newExpanded = !currentExpanded;\n\n // If using manual mode, update the model\n if (this.manualExpanded() !== undefined) {\n this.manualExpanded.set(newExpanded);\n } else {\n // Otherwise update automatic state\n this._autoExpanded.set(newExpanded);\n }\n }\n\n /**\n * Label for the trigger button\n * @hidden\n **/\n protected get triggerLabel(): string {\n const moreLabel = this.moreLabel() || this._defaultMoreLabel();\n const lessLabel = this.lessLabel() || this._defaultLessLabel();\n return this.expanded() ? lessLabel : moreLabel;\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'fd-notification-group-growing-item',\n standalone: true,\n template: `<ng-content select=\"[fd-notification-group-growing-item-title]\"></ng-content> <ng-content></ng-content>`,\n host: {\n class: 'fd-notification-group__growing-item',\n role: 'button',\n '[tabindex]': '0'\n }\n})\nexport class NotificationGroupGrowingItemComponent {}\n","import { ENTER, SPACE } from '@angular/cdk/keycodes';\nimport { ChangeDetectionStrategy, Component, computed, effect, inject, signal, ViewEncapsulation } from '@angular/core';\nimport { KeyUtil, RtlService } from '@fundamental-ngx/cdk/utils';\nimport { IconComponent } from '@fundamental-ngx/core/icon';\nimport { FD_LANGUAGE_SIGNAL, TranslationResolver } from '@fundamental-ngx/i18n';\nimport { NotificationGroupBaseDirective } from '../notification-utils/notification-group-base';\nimport { FD_NOTIFICATION_GROUP_HEADER } from '../token';\n\n@Component({\n selector: 'fd-notification-group-header',\n template: `\n <span class=\"fd-notification-group__header-arrow\">\n <fd-icon [glyph]=\"_buttonIcon()\"></fd-icon>\n </span>\n <ng-content select=\"fd-notification-group-header-title\"></ng-content>\n <ng-content></ng-content>\n `,\n host: {\n class: 'fd-notification-group__header',\n role: 'button',\n '[tabindex]': '0',\n '[attr.title]': 'title()',\n '[attr.aria-controls]': 'ariaControls()',\n '[attr.aria-expanded]': 'expanded()',\n '(click)': 'toggleExpand()',\n '(keydown)': '_onKeydown($event)'\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [IconComponent],\n providers: [\n {\n provide: FD_NOTIFICATION_GROUP_HEADER,\n useExisting: NotificationGroupHeaderComponent\n }\n ]\n})\nexport class NotificationGroupHeaderComponent extends NotificationGroupBaseDirective {\n /**\n * Title for the group header.\n * Default value is set from i18n translations (\"Expand/Collapse\").\n */\n readonly title = signal<string | null>('');\n\n /**\n * ID of the list element that the group header controls.\n */\n readonly ariaControls = signal<string | null>('');\n\n /** @hidden */\n readonly expanded = signal(false);\n\n /** @hidden */\n protected readonly _buttonIcon = computed(() =>\n this.expanded() ? 'slim-arrow-down' : this._rtlService?.rtl() ? 'slim-arrow-left' : 'slim-arrow-right'\n );\n\n /** @hidden */\n private readonly _rtlService = inject(RtlService, { optional: true });\n\n /** @hidden */\n private readonly _langSignal = inject(FD_LANGUAGE_SIGNAL);\n\n /** @hidden */\n private readonly _translationResolver = new TranslationResolver();\n\n constructor() {\n super();\n\n // Set up translation for title - only sets default if title is empty\n effect(() => {\n const lang = this._langSignal();\n // Only set from i18n if title hasn't been set externally\n if (lang && !this.title()) {\n this.title.set(this._translationResolver.resolve(lang, 'coreNotification.groupHeaderTitle'));\n }\n });\n }\n\n /** Method that toggles the Notification list content */\n toggleExpand(): void {\n this.expanded.update((expanded) => !expanded);\n }\n\n /** @hidden */\n protected _onKeydown(event: KeyboardEvent): void {\n if (KeyUtil.isKeyCode(event, [ENTER, SPACE])) {\n this.toggleExpand();\n event.preventDefault();\n }\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n contentChildren,\n input\n} from '@angular/core';\nimport { NotificationComponent } from '../notification/notification.component';\nimport { FD_NOTIFICATION, FD_NOTIFICATION_GROUP_LIST } from '../token';\n\nlet notificationGroupListCounter = 0;\n\n@Component({\n selector: 'fd-notification-group-list',\n template: `<ng-content></ng-content>`,\n host: {\n class: 'fd-notification-group__list',\n role: 'list',\n '[attr.id]': 'id()'\n },\n providers: [\n {\n provide: FD_NOTIFICATION_GROUP_LIST,\n useExisting: NotificationGroupListComponent\n }\n ],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: []\n})\nexport class NotificationGroupListComponent implements AfterViewInit {\n /**\n * id of the element labelling the group list\n */\n ariaLabelledBy = input<string>();\n\n /**\n * id for the notification group list\n * if not set, a default value is provided\n */\n id = input('fd-notification-group-list-' + ++notificationGroupListCounter);\n\n /**\n * @hidden\n */\n notifications = contentChildren<NotificationComponent>(FD_NOTIFICATION);\n\n /**\n * @hidden\n */\n ngAfterViewInit(): void {\n this.notifications()?.forEach((notification) => {\n notification.role.set('listitem');\n notification.ariaLevel.set(2);\n });\n }\n}\n","import { AfterViewInit, Component, computed, contentChild, effect, inject, input, signal } from '@angular/core';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { FD_LANGUAGE_SIGNAL, TranslationResolver } from '@fundamental-ngx/i18n';\nimport { NotificationGroupHeaderTitleDirective } from '../directives/notification-group-header-title.directive';\nimport { NotificationGroupHeaderComponent } from '../notification-group-header/notification-group-header.component';\nimport { NotificationGroupListComponent } from '../notification-group-list/notification-group-list.component';\nimport { FD_NOTIFICATION_GROUP_HEADER, FD_NOTIFICATION_GROUP_HEADER_TITLE, FD_NOTIFICATION_GROUP_LIST } from '../token';\n\n@Component({\n selector: 'fd-notification-group',\n standalone: true,\n template: `<div class=\"fd-notification-group__wrapper\">\n <ng-content select=\"fd-notification-group-header\"></ng-content>\n @if (isExpanded()) {\n <ng-content select=\"fd-notification-group-list\"></ng-content>\n <ng-content select=\"fd-notification-group-growing-item\"></ng-content>\n }\n </div>`,\n host: {\n class: 'fd-notification-group',\n role: 'listitem',\n '[tabindex]': '-1',\n '[attr.aria-level]': '1',\n '[attr.aria-label]': 'ariaLabel()',\n '[attr.aria-labelledby]': 'ariaLabelledBy()',\n '[attr.aria-description]': 'ariaDescription()'\n }\n})\nexport class NotificationGroupComponent implements AfterViewInit {\n /**\n * Whether the group is expanded\n * default value is false\n */\n expanded = input(false);\n\n /**\n * input property to set aria-label\n * accepts a string value\n */\n ariaLabel = input<string>();\n\n /** @hidden */\n readonly ariaLabelledBy = computed(() => this.groupTitle()?.id());\n\n /** @hidden */\n readonly ariaDescription = computed(\n () =>\n `${this._descriptionString()} ${\n this.groupHeader()?.expanded() ? this._expandedString() : this._collapsedString()\n }`\n );\n\n /** @hidden */\n readonly isExpanded = computed(() => this.groupHeader()?.expanded());\n\n /** @hidden */\n readonly groupHeader = contentChild<NotificationGroupHeaderComponent>(FD_NOTIFICATION_GROUP_HEADER);\n\n /** @hidden */\n readonly groupTitle = contentChild<NotificationGroupHeaderTitleDirective>(FD_NOTIFICATION_GROUP_HEADER_TITLE);\n\n /** @hidden */\n readonly groupList = contentChild<NotificationGroupListComponent>(FD_NOTIFICATION_GROUP_LIST);\n\n /** @hidden */\n private _descriptionString = signal<Nullable<string>>('');\n\n /** @hidden */\n private _expandedString = signal<Nullable<string>>('');\n\n /** @hidden */\n private _collapsedString = signal<Nullable<string>>('');\n\n /** @hidden */\n private readonly _langSignal = inject(FD_LANGUAGE_SIGNAL);\n\n /** @hidden */\n private _translationResolver = new TranslationResolver();\n\n /** @hidden */\n constructor() {\n effect(() => {\n const lang = this._langSignal();\n this._expandedString.set(\n this._translationResolver.resolve(lang, 'coreNotification.groupAriaDescriptionExpanded')\n );\n\n this._collapsedString.set(\n this._translationResolver.resolve(lang, 'coreNotification.groupAriaDescriptionCollapsed')\n );\n\n this._descriptionString.set(\n this._translationResolver.resolve(lang, 'coreNotification.groupAriaDescription')\n );\n });\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this.groupHeader()?.ariaControls.set(this.groupList()?.id() ?? null);\n this.groupHeader()?.expanded.set(this.expanded());\n }\n}\n","import { Component, signal } from '@angular/core';\n\n@Component({\n selector: 'fd-notification-link',\n standalone: true,\n template: `<span class=\"fd-link__content\">{{ showMore() ? 'Less' : 'More' }}</span>`,\n host: {\n class: 'fd-link fd-notification__link',\n tabindex: '0',\n role: 'link',\n '(click)': 'toggleShowMore()'\n }\n})\nexport class NotificationLinkComponent {\n /**\n * signal to control the show more/less\n * default value is false\n */\n showMore = signal(false);\n\n /**\n * Method to toggle show more functionality\n */\n toggleShowMore(): void {\n this.showMore.update((value) => !value);\n }\n}\n","import { Nullable } from '@fundamental-ngx/cdk/utils';\n\n/**\n * Configuration for opening a notification with the NotificationService.\n */\nexport class NotificationConfig<T = any> {\n /** Id for the notification component. If omitted, a unique one is generated. */\n id?: string;\n\n /** aria-label attribute for the notification component element. */\n ariaLabel?: Nullable<string>;\n\n /** aria-labelledby attribute for the notification component element. */\n ariaLabelledBy?: Nullable<string>;\n\n /** aria-describedby attribute for the notification component element. */\n ariaDescribedBy?: Nullable<string>;\n\n /** The container that the notification is appended to. By default, it is appended to the body. */\n container?: HTMLElement | 'body' = 'body';\n\n /** Data to pass along to the content through the NotificationRef. */\n data?: T;\n\n /** Custom width of the notification. */\n width?: string;\n\n /**\n * Whether the notification should trap focus within itself.\n * @default true\n */\n shouldTrapFocus?: boolean = true;\n\n /** Whether to dismiss the notification on router navigation start. */\n closeOnNavigation?: boolean = true;\n}\n","import { Observable, Subject } from 'rxjs';\n\n/**\n * Reference to a notification component generated via the NotificationService.\n * It can be injected into the content component through the constructor.\n * For a template, it is declared as part of the implicit context, see examples.\n */\nexport class NotificationRef<T = any, P = any> {\n /**\n * Observable that is triggered when the notification is closed.\n * On close a *result* is passed back. On dismiss, an *error* is returned instead.\n */\n afterClosed: Observable<P | undefined>;\n\n /** Data passed from the calling component to the content.*/\n data: T;\n\n /** @hidden */\n protected readonly _afterClosed = new Subject<P | undefined>();\n\n /** @hidden */\n constructor() {\n this.afterClosed = this._afterClosed.asObservable();\n }\n\n /**\n * Closes the notification and passes the argument to the afterClosed observable.\n * @param result Value passed back to the observable as a result.\n */\n close(result?: P): void {\n this._afterClosed.next(result);\n this._afterClosed.complete();\n }\n\n /**\n * Dismisses the notification and passes the argument to the afterClosed observable as an error.\n * @param reason Value passed back to the observable as an error.\n */\n dismiss(reason?: P): void {\n this._afterClosed.error(reason);\n }\n}\n","import { ConfigurableFocusTrapFactory, FocusTrap } from '@angular/cdk/a11y';\nimport { Direction } from '@angular/cdk/bidi';\nimport { ESCAPE } from '@angular/cdk/keycodes';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentFactoryResolver,\n ComponentRef,\n DestroyRef,\n EmbeddedViewRef,\n OnDestroy,\n OnInit,\n TemplateRef,\n Type,\n ViewContainerRef,\n ViewEncapsulation,\n computed,\n contentChild,\n effect,\n inject,\n input,\n signal,\n viewChild\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { NavigationStart, Router } from '@angular/router';\nimport { AbstractFdNgxClass, KeyUtil, Nullable, RtlService } from '@fundamental-ngx/cdk/utils';\nimport { BehaviorSubject, fromEvent } from 'rxjs';\nimport { debounceTime, filter, take } from 'rxjs/operators';\nimport { NotificationParagraphDirective } from '../directives/notification-paragraph.directive';\nimport { NotificationTitleDirective } from '../directives/notification-title.directive';\nimport { NotificationFooterComponent } from '../notification-footer/notification-footer.component';\nimport { NotificationConfig } from '../notification-utils/notification-config';\nimport { NotificationRef } from '../notification-utils/notification-ref';\nimport { FD_NOTIFICATION, FD_NOTIFICATION_FOOTER, FD_NOTIFICATION_PARAGRAPH, FD_NOTIFICATION_TITLE } from '../token';\n\n@Component({\n selector: 'fd-notification',\n template: `\n <ng-content></ng-content>\n <ng-container #vc></ng-container>\n `,\n styleUrl: './notification.component.scss',\n encapsulation: ViewEncapsulation.None,\n host: {\n '[attr.aria-labelledby]': 'ariaLabelledBy()',\n '[attr.aria-label]': 'ariaLabel',\n '[attr.aria-level]': 'ariaLevel()',\n '[attr.role]': 'role()',\n '[attr.dir]': '_dir()',\n '[attr.id]': 'id',\n '[tabindex]': '0',\n '[style.width]': 'width',\n '(window:keyup)': '_closeNotificationEsc($event)'\n },\n providers: [\n {\n provide: FD_NOTIFICATION,\n useExisting: NotificationComponent\n }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NotificationComponent extends AbstractFdNgxClass implements OnInit, AfterViewInit, OnDestroy {\n /** @hidden */\n containerRef = viewChild('vc', { read: ViewContainerRef });\n\n /** User defined width for the notification */\n width = input<Nullable<string>>();\n\n /** Whether the notificatioon is in mobile mode */\n mobile = input(false);\n\n /** @hidden */\n _dir = computed<Direction>(() => (this._rtlService?.rtl() ? 'rtl' : 'ltr'));\n\n /** ID of the notification */\n id: string;\n\n /**\n * aria-level of the Notificaion\n * should be set to 2 in Notification Group\n * default value is undefined\n */\n ariaLevel = signal<Nullable<number>>(undefined);\n\n /**\n * role of the Notificaion\n * should be set to 'listitem' in Notification Group\n * default value is undefined\n */\n role = signal<Nullable<string>>(undefined);\n\n /**\n * whether the Notificaion is selected\n * default is set to false\n */\n selected = input(false);\n\n /** Whether the notification is dismissed with the ESC key */\n escKeyCloseable = false;\n\n /** Whether the notification should close with router change */\n closeOnNavigation = true;\n\n /** aria-labelledby attribute for the notification component element. */\n ariaLabelledBy = signal<Nullable<string>>(null);\n\n /** aria-label attribute for the notification component element. */\n ariaLabel: Nullable<string>;\n\n /** aria-describedby attribute for the notification component element. */\n ariaDescribedBy: Nullable<string>;\n\n /** Reference to the child content */\n childContent: TemplateRef<any> | Type<any> | undefined = undefined;\n\n /** Reference to the component or the embedded view */\n public componentRef: ComponentRef<any> | EmbeddedViewRef<any> | undefined;\n\n /** @hidden */\n private _notificationTitle = contentChild<NotificationTitleDirective>(FD_NOTIFICATION_TITLE);\n\n /** @hidden */\n private _notificationParagraph = contentChild<NotificationParagraphDirective>(FD_NOTIFICATION_PARAGRAPH);\n\n /** @hidden */\n private _notificationFooter = contentChild<NotificationFooterComponent>(FD_NOTIFICATION_FOOTER);\n\n /** @hidden */\n private readonly _destroyRef = inject(DestroyRef);\n\n /** @hidden */\n private readonly _afterViewInit$ = new BehaviorSubject(false);\n\n /** @hidden The class that traps and manages focus within the notification. */\n private _focusTrap: FocusTrap;\n\n /** @hidden */\n private _cdRef = inject(ChangeDetectorRef);\n\n /** @hidden */\n private _componentFactoryResolver = inject(ComponentFactoryResolver);\n\n /** @hidden */\n private _router = inject(Router);\n\n /** @hidden */\n private _focusTrapFactory = inject(ConfigurableFocusTrapFactory);\n\n /** @hidden */\n private _notificationConfig = inject(NotificationConfig, { optional: true });\n\n /** @hidden */\n private _notificationRef = inject(NotificationRef, { optional: true });\n\n /** @hidden */\n private _rtlService = inject(RtlService, { optional: true });\n\n /** @hidden */\n private _isTitleTruncated = signal(false);\n\n /** @hidden */\n private _isParagraphTruncated = signal(false);\n\n /** @hidden */\n private _hasTruncation = computed(() => this._isTitleTruncated() || this._isParagraphTruncated());\n\n /** @hidden */\n private _expanded = computed(() => this._notificationFooter()?.expanded() ?? false);\n\n /** @hidden */\n private _observer: ResizeObserver;\n\n /** @hidden */\n constructor() {\n super();\n if (this._notificationConfig) {\n this._setNotificationConfig(this._notificationConfig);\n }\n\n effect(() => {\n this._updateExpandedClass();\n });\n }\n\n /** @hidden Listen and close notification on Escape key */\n _closeNotificationEsc(event: KeyboardEvent): void {\n if (this.escKeyCloseable && KeyUtil.isKeyCode(event, ESCAPE) && this._notificationRef) {\n this._notificationRef.dismiss('escape');\n }\n }\n\n /** @hidden */\n ngOnInit(): void {\n this._listenAndCloseOnNavigation();\n this._setProperties();\n this._attachResizeListener();\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n if (this.childContent) {\n if (this.childContent instanceof Type) {\n this._loadFromComponent(this.childContent);\n }\n\n if (this.childContent instanceof TemplateRef) {\n this._loadFromTemplate(this.childContent);\n }\n }\n\n if (this._notificationTitle()) {\n this.ariaLabelledBy.set(this._notificationTitle()?.id());\n } else if (this._notificationParagraph()) {\n this.ariaLabelledBy.set(this._notificationParagraph()?.id());\n }\n\n this._checkTruncation();\n this._observeNotificationResize();\n this._afterViewInit$.next(true);\n this._cdRef.detectChanges();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._observer?.disconnect();\n }\n\n /**\n * Moves the focus inside the focus trap.\n * @returns\n * Returns a promise that resolves with a boolean, depending on whether focus was moved successfully.\n */\n async trapFocus(): Promise<boolean> {\n // waiting for afterViewInit hook to fire\n await this._afterViewInit$.pipe(filter(Boolean), take(1), takeUntilDestroyed(this._destroyRef)).toPromise();\n if (!this._focusTrap) {\n this._focusTrap = this._focusTrapFactory.create(this.elementRef.nativeElement);\n }\n return this._focusTrap.focusFirstTabbableElementWhenReady();\n }\n\n /** @hidden */\n _setProperties(): void {\n this._addClassToElement('fd-notification');\n }\n\n /** @hidden */\n private _observeNotificationResize(): void {\n const el = this.elementRef.nativeElement;\n\n if (typeof ResizeObserver !== 'undefined') {\n this._observer = new ResizeObserver(() => {\n this._checkTruncation();\n this._cdRef.markForCheck();\n });\n this._observer.observe(el);\n }\n }\n\n /** @hidden */\n private _updateExpandedClass(): void {\n const isExpanded = this._expanded();\n\n [this._notificationTitle(), this._notificationParagraph()].forEach((ref) => {\n ref?.elementRef.nativeElement.classList.toggle('is-expanded', isExpanded);\n });\n }\n\n /** @hidden */\n private _checkTruncation(): void {\n const titleEl = this._notificationTitle()?.elementRef.nativeElement;\n const paragraphEl = this._notificationParagraph()?.elementRef.nativeElement;\n const footer = this._notificationFooter();\n\n if (titleEl) {\n this._isTitleTruncated.set(titleEl.scrollHeight > titleEl.clientHeight);\n }\n\n if (paragraphEl) {\n this._isParagraphTruncated.set(paragraphEl.scrollHeight > paragraphEl.clientHeight);\n }\n\n if (footer) {\n footer._autoShowTrigger.set(this._hasTruncation() || this._expanded());\n }\n\n this._updateExpandedClass();\n }\n\n /** @hidden */\n private _attachResizeListener(): void {\n fromEvent(window, 'resize', { passive: true })\n .pipe(debounceTime(100), takeUntilDestroyed(this._destroyRef))\n .subscribe(() => this._onWindowResize());\n }\n\n /** @hidden */\n private _onWindowResize(): void {\n this._checkTruncation();\n this._cdRef.markForCheck();\n }\n\n /** @hidden Listen on NavigationStart event and dismiss the dialog */\n private _listenAndCloseOnNavigation(): void {\n if (this._router && this._notificationRef) {\n this._router.events\n .pipe(\n filter(\n (event) => event instanceof NavigationStart && !!this._notificationConfig?.closeOnNavigation\n ),\n takeUntilDestroyed(this._destroyRef)\n )\n .subscribe(() => this._notificationRef?.dismiss());\n }\n }\n\n /** @hidden */\n private _loadFromComponent(content: Type<any>): void {\n this.containerRef()?.clear();\n const componentFactory = this._componentFactoryResolver.resolveComponentFactory(content);\n this.componentRef = this.containerRef()?.createComponent(componentFactory);\n }\n\n /** @hidden */\n private _loadFromTemplate(content: TemplateRef<any>): void {\n this.containerRef()?.clear();\n const context = {\n $implicit: this._notificationRef\n };\n this.componentRef = this.containerRef()?.createEmbeddedView(content, context);\n }\n\n /** @hidden */\n private _setNotificationConfig(notificationConfig: NotificationConfig): void {\n Object.keys(notificationConfig || {})\n .filter((key) => key !== 'data' && key !== 'container')\n .forEach((key) => (this[key] = notificationConfig[key]));\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'fd-notification-container',\n template: ``,\n styles: [\n `\n .fd-notification-container {\n position: fixed;\n display: flex;\n flex-direction: column;\n z-index: 5000;\n align-items: flex-end;\n top: 2rem;\n right: 2rem;\n }\n `\n ],\n host: {\n class: 'fd-notification-container'\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class NotificationContainer {}\n","import { ComponentRef, DOCUMENT, Inject, Injectable, Injector, Optional, TemplateRef, Type } from '@angular/core';\nimport { DynamicComponentService, RtlService } from '@fundamental-ngx/cdk/utils';\nimport { NotificationConfig } from '../notification-utils/notification-config';\nimport { NotificationContainer } from '../notification-utils/notification-container';\nimport { NotificationRef } from '../notification-utils/notification-ref';\nimport { NotificationComponent } from '../notification/notification.component';\n\n@Injectable()\nexport class NotificationService {\n /** @hidden */\n public notifications: {\n notificationComponent: ComponentRef<NotificationComponent>;\n notificationConfig: Readonly<NotificationConfig>;\n }[] = [];\n\n /** @hidden */\n public containerRef: ComponentRef<NotificationContainer> | null;\n\n /**\n * @hidden\n * Element that was focused before the notification was opened. Being used to restore focus upon close.\n */\n private _elementFocusedBeforeNotificationWasOpened?: HTMLOrSVGElement;\n\n /**\n * @hidden\n */\n constructor(\n private _dynamicComponentService: DynamicComponentService,\n @Inject(DOCUMENT) private _document: Document,\n @Optional() private _rtlService: RtlService\n ) {}\n\n /**\n * Opens a notification component with a content of type TemplateRef or Component Type\n * @param content Content of the notification component.\n * @param notificationConfig Configuration of the notification component.\n */\n public open(\n content: TemplateRef<any> | Type<any>,\n notificationConfig: NotificationConfig = new NotificationConfig()\n ): NotificationRef {\n // Reassigning Object And Service\n const notificationService: NotificationRef = new NotificationRef();\n notificationConfig = Object.assign(new NotificationConfig(), notificationConfig);\n notificationService.data = notificationConfig.data;\n\n // Create Container if it doesn't exist\n if (!this.containerRef) {\n this.containerRef = this._dynamicComponentService.createDynamicComponent(\n content,\n NotificationContainer,\n notificationConfig\n );\n }\n\n // Pass Container reference to config\n notificationConfig.container = this.containerRef.location.nativeElement;\n\n const injector = Injector.create({\n providers: [\n { provide: NotificationConfig, useValue: notificationConfig },\n { provide: NotificationRef, useValue: notificationService },\n { provide: RtlService, useValue: this._rtlService }\n ]\n });\n\n // Create Notification Component\n const notificationComponentRef = this._dynamicComponentService.createDynamicComponent(\n content,\n NotificationComponent,\n notificationConfig,\n { injector }\n );\n\n if (notificationConfig.shouldTrapFocus) {\n const element = this._document.activeElement as HTMLElement | undefined;\n this._elementFocusedBeforeNotificationWasOpened =\n typeof element?.focus === 'function' ? element : undefined;\n notificationComponentRef.instance.trapFocus();\n }\n\n // Add To array\n this.notifications.push({\n notificationComponent: notificationComponentRef,\n notificationConfig\n });\n\n const defaultBehaviourOnClose = (): void => {\n this._destroyNotificationComponent(notificationComponentRef);\n refSub.unsubscribe();\n };\n\n const refSub = notificationService.afterClosed.subscribe({\n next: defaultBehaviourOnClose,\n error: defaultBehaviourOnClose\n });\n\n return notificationService;\n }\n\n /** Method to remove all of notifications from this service instance */\n public destroyAll(): void {\n this.notifications.forEach((notification) => {\n this._destroyNotificationComponent(notification.notificationComponent);\n });\n }\n\n /** Method that informs if there is any notification opened in this service instance */\n public isAnyOpened(): boolean {\n return this.notifications && this.notifications.length > 0;\n }\n\n /** @hidden Method that destroys the Notification component */\n private _destroyNotificationComponent(notification: ComponentRef<NotificationComponent>): void {\n this.notifications = this.notifications.filter((item) => item.notificationComponent !== notification);\n this._dynamicComponentService.destroyComponent(notification);\n\n // If there is no other notification Components, just remove container.\n if (this.notifications.length === 0 && this.containerRef) {\n this._dynamicComponentService.destroyComponent(this.containerRef);\n this.containerRef = null;\n this._restoreFocus();\n } else {\n // otherwise attempt to move focus to previous notification\n const last = this.notifications[this.notifications.length - 1];\n if (last.notificationConfig.shouldTrapFocus) {\n last.notificationComponent.instance.trapFocus();\n } else {\n this._restoreFocus();\n }\n }\n }\n\n /** @hidden attempts to focus previously selected element */\n private _restoreFocus(): void {\n if (typeof this._elementFocusedBeforeNotificationWasOpened?.focus === 'function') {\n this._elementFocusedBeforeNotificationWasOpened.focus();\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { DynamicComponentService } from '@fundamental-ngx/cdk/utils';\n\n// Directives\nimport { NotificationFooterContentDirective } from './directives/notification-footer-content.directive';\nimport { NotificationGroupGrowingItemTitleDirective } from './directives/notification-group-growing-item-title.directive';\nimport { NotificationGroupHeaderTitleDirective } from './directives/notification-group-header-title.directive';\nimport { NotificationListDirective } from './directives/notification-list.directive';\nimport { NotificationMessageStripContainerDirective } from './directives/notification-message-strip-container.directive';\nimport { NotificationMessageStripDirective } from './directives/notification-message-strip.directive';\nimport { NotificationParagraphDirective } from './directives/notification-paragraph.directive';\nimport { NotificationPopoverDirective } from './directives/notification-popover.directive';\nimport { NotificationSeparatorDirective } from './directives/notification-separator.directive';\nimport { NotificationTitleDirective } from './directives/notification-title.directive';\n\n// Components\nimport { NotificationActionsComponent } from './notification-actions/notification-actions.component';\nimport { NotificationBodyComponent } from './notification-body/notification-body.component';\nimport { NotificationContentComponent } from './notification-content/notification-content.component';\nimport { NotificationFooterComponent } from './notification-footer/notification-footer.component';\nimport { NotificationGroupGrowingItemComponent } from './notification-group-growing-item/notification-group-growing-item.component';\nimport { NotificationGroupHeaderComponent } from './notification-group-header/notification-group-header.component';\nimport { NotificationGroupListComponent } from './notification-group-list/notification-group-list.component';\nimport { NotificationGroupComponent } from './notification-group/notification-group.component';\nimport { NotificationHeaderComponent } from './notification-header/notification-header.component';\nimport { NotificationLinkComponent } from './notification-link/notification-link.component';\nimport { NotificationComponent } from './notification/notification.component';\n\n// Utils\nimport { NotificationService } from './notification-service/notification.service';\nimport { NotificationContainer } from './notification-utils/notification-container';\n\nconst components = [\n NotificationComponent,\n NotificationContainer,\n NotificationLinkComponent,\n NotificationBodyComponent,\n NotificationGroupComponent,\n NotificationHeaderComponent,\n NotificationFooterComponent,\n NotificationActionsComponent,\n NotificationContentComponent,\n NotificationGroupListComponent,\n NotificationGroupHeaderComponent,\n NotificationGroupGrowingItemComponent,\n NotificationListDirective,\n NotificationTitleDirective,\n NotificationPopoverDirective,\n NotificationSeparatorDirective,\n NotificationParagraphDirective,\n NotificationMessageStripDirective,\n NotificationFooterContentDirective,\n NotificationGroupHeaderTitleDirective,\n NotificationMessageStripContainerDirective,\n NotificationGroupGrowingItemTitleDirective\n];\n\n/**\n * @deprecated\n * Use direct imports of components and directives.\n */\n@NgModule({\n imports: [...components],\n exports: [...components],\n providers: [DynamicComponentService, NotificationService]\n})\nexport class NotificationModule {}\n","// Directives\nexport * from './directives/notification-footer-content.directive';\nexport * from './directives/notification-group-growing-item-title.directive';\nexport * from './directives/notification-group-header-title.directive';\nexport * from './directives/notification-list.directive';\nexport * from './directives/notification-message-strip-container.directive';\nexport * from './directives/notification-message-strip.directive';\nexport * from './directives/notification-paragraph.directive';\nexport * from './directives/notification-popover.directive';\nexport * from './directives/notification-separator.directive';\nexport * from './directives/notification-title.directive';\n\n// Components\nexport * from './notification-actions/notification-actions.component';\nexport * from './notification-body/notification-body.component';\nexport * from './notification-content/notification-content.component';\nexport * from './notification-footer/notification-footer.component';\nexport * from './notification-group-growing-item/notification-group-growing-item.component';\nexport * from './notification-group-header/notification-group-header.component';\nexport * from './notification-group-list/notification-group-list.component';\nexport * from './notification-group/notification-group.component';\nexport * from './notification-header/notification-header.component';\nexport * from './notification-link/notification-link.component';\nexport * from './notification/notification.component';\n\n// Service\nexport * from './notification-service/notification.service';\n\n// Utils\nexport * from './notification-utils/notification-config';\nexport * from './notification-utils/notification-container';\nexport * from './notification-utils/notification-group-base';\nexport * from './notification-utils/notification-ref';\n\n// Module\nexport * from './notification.module';\n\n// Token\nexport * from './token';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fundamental-ngx-core-notification.mjs","sources":["../../../../libs/core/notification/directives/notification-footer-content.directive.ts","../../../../libs/core/notification/directives/notification-group-growing-item-title.directive.ts","../../../../libs/core/notification/token.ts","../../../../libs/core/notification/directives/notification-group-header-title.directive.ts","../../../../libs/core/notification/directives/notification-list.directive.ts","../../../../libs/core/notification/directives/notification-message-strip-container.directive.ts","../../../../libs/core/notification/directives/notification-message-strip.directive.ts","../../../../libs/core/notification/directives/notification-paragraph.directive.ts","../../../../libs/core/notification/directives/notification-popover.directive.ts","../../../../libs/core/notification/directives/notification-separator.directive.ts","../../../../libs/core/notification/directives/notification-title.directive.ts","../../../../libs/core/notification/notification-actions/notification-actions.component.ts","../../../../libs/core/notification/notification-header/notification-header.component.ts","../../../../libs/core/notification/notification-utils/notification-group-base.ts","../../../../libs/core/notification/notification-body/notification-body.component.ts","../../../../libs/core/notification/notification-content/notification-content.component.ts","../../../../libs/core/notification/notification-footer/notification-footer.component.ts","../../../../libs/core/notification/notification-group-growing-item/notification-group-growing-item.component.ts","../../../../libs/core/notification/notification-group-header/notification-group-header.component.ts","../../../../libs/core/notification/notification-group-list/notification-group-list.component.ts","../../../../libs/core/notification/notification-group/notification-group.component.ts","../../../../libs/core/notification/notification-link/notification-link.component.ts","../../../../libs/core/notification/notification-utils/notification-config.ts","../../../../libs/core/notification/notification-utils/notification-ref.ts","../../../../libs/core/notification/notification/notification.component.ts","../../../../libs/core/notification/notification-utils/notification-container.ts","../../../../libs/core/notification/notification-service/notification.service.ts","../../../../libs/core/notification/notification.module.ts","../../../../libs/core/notification/index.ts","../../../../libs/core/notification/fundamental-ngx-core-notification.ts"],"sourcesContent":["import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[fdNotificationFooterContent], [fd-notification-footer-content]',\n standalone: true,\n host: {\n class: 'fd-notification__footer-content'\n }\n})\nexport class NotificationFooterContentDirective {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[fdNotificationGroupGrowingItemTitle], [fd-notification-group-growing-item-title]',\n standalone: true,\n host: {\n class: 'fd-notification-group__growing-item-title'\n }\n})\nexport class NotificationGroupGrowingItemTitleDirective {}\n","import { InjectionToken } from '@angular/core';\n\nexport const FD_NOTIFICATION = new InjectionToken('FdNotificationComponent');\nexport const FD_NOTIFICATION_TITLE = new InjectionToken('FdNotificationTitleDirective');\nexport const FD_NOTIFICATION_PARAGRAPH = new InjectionToken('FdNotificationParagraphDirective');\nexport const FD_NOTIFICATION_GROUP_HEADER = new InjectionToken('FdNotificationGroupHeaderComponent');\nexport const FD_NOTIFICATION_GROUP_HEADER_TITLE = new InjectionToken('FdNotificationGroupHeaderTitleDirective');\nexport const FD_NOTIFICATION_GROUP_LIST = new InjectionToken('FdNotificationGroupListComponent');\nexport const FD_NOTIFICATION_FOOTER = new InjectionToken('FdNotificationFooterComponent');\n","import { Directive, input } from '@angular/core';\nimport { FD_NOTIFICATION_GROUP_HEADER_TITLE } from '../token';\n\nlet notificationGroupHeaderTitleCounter = 0;\n\n@Directive({\n selector: '[fdNotificationGroupHeaderTitle], [fd-notification-group-header-title]',\n standalone: true,\n host: {\n class: 'fd-notification-group__header-title',\n role: 'heading',\n '[attr.aria-level]': 'ariaLevel()',\n '[attr.id]': 'id()'\n },\n providers: [\n {\n provide: FD_NOTIFICATION_GROUP_HEADER_TITLE,\n useExisting: NotificationGroupHeaderTitleDirective\n }\n ]\n})\nexport class NotificationGroupHeaderTitleDirective {\n /**\n * aria-level for the title\n * a numeric value from 1 to 6\n * default value is 3\n */\n ariaLevel = input<1 | 2 | 3 | 4 | 5 | 6>(3);\n\n /**\n * id for the notification group header title\n * if not set, a default value is provided\n */\n id = input('fd-notification-group-header-title-' + ++notificationGroupHeaderTitleCounter);\n}\n","import { Directive, input } from '@angular/core';\n\n@Directive({\n selector: '[fdNotificationList], [fd-notification-list]',\n standalone: true,\n host: {\n class: 'fd-notification-list',\n role: 'list',\n '[attr.aria-label]': 'ariaLabel()'\n }\n})\nexport class NotificationListDirective {\n /**\n * aria-label attribute for the element\n * Default is set to 'Notifications'\n */\n ariaLabel = input('Notifications');\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[fdNotificationMessageStripContainer], [fd-notification-message-strip-container]',\n standalone: true,\n host: {\n class: 'fd-notification__message-strip-container'\n }\n})\nexport class NotificationMessageStripContainerDirective {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[fdNotificationMessageStrip], [fd-notification-message-strip]',\n standalone: true,\n host: {\n class: 'fd-notification-message-strip'\n }\n})\nexport class NotificationMessageStripDirective {}\n","import { Directive, ElementRef, inject, input } from '@angular/core';\nimport { FD_NOTIFICATION_PARAGRAPH } from '../token';\n\nlet notificationParagraphCounter = 0;\n\n@Directive({\n selector: '[fdNotificationParagraph], [fd-notification-paragraph]',\n standalone: true,\n host: {\n class: 'fd-notification__paragraph',\n '[attr.id]': 'id()'\n },\n providers: [\n {\n provide: FD_NOTIFICATION_PARAGRAPH,\n useExisting: NotificationParagraphDirective\n }\n ]\n})\nexport class NotificationParagraphDirective {\n /**\n * id for the notification paragraph\n * if not set, a default value is provided\n */\n id = input('fd-notification-paragraph-' + ++notificationParagraphCounter);\n\n /** @hidden */\n elementRef = inject(ElementRef);\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[fdNotificationPopover], [fd-notification-popover]',\n standalone: true,\n host: {\n class: 'fd-notification-popover',\n role: 'dialog'\n }\n})\nexport class NotificationPopoverDirective {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[fdNotificationSeparator], [fd-notification-separator]',\n standalone: true,\n host: {\n class: 'fd-notification__separator'\n }\n})\nexport class NotificationSeparatorDirective {}\n","import { Directive, ElementRef, inject, input } from '@angular/core';\nimport { FD_NOTIFICATION_TITLE } from '../token';\n\nlet notificationTitleCounter = 0;\n\n@Directive({\n selector: '[fdNotificationTitle], [fd-notification-title]',\n standalone: true,\n host: {\n class: 'fd-notification__title',\n '[class.fd-notification__title--unread]': 'unread()',\n '[attr.id]': 'id()'\n },\n providers: [\n {\n provide: FD_NOTIFICATION_TITLE,\n useExisting: NotificationTitleDirective\n }\n ]\n})\nexport class NotificationTitleDirective {\n /**\n * Whether the notification title is unread.\n * default is false\n */\n unread = input(false);\n\n /**\n * id for the notification title\n * if not set, a default value is provided\n */\n id = input('fd-notification-title-' + ++notificationTitleCounter);\n\n /** @hidden */\n elementRef = inject(ElementRef);\n}\n","import { ChangeDetectionStrategy, Component, ContentChildren, QueryList, ViewEncapsulation } from '@angular/core';\nimport { ButtonComponent, FD_BUTTON_COMPONENT } from '@fundamental-ngx/core/button';\n\n@Component({\n selector: 'fd-notification-actions',\n template: `<ng-content></ng-content>`,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n host: {\n class: 'fd-notification__actions'\n }\n})\nexport class NotificationActionsComponent {\n /** @hidden */\n @ContentChildren(FD_BUTTON_COMPONENT)\n buttons: QueryList<ButtonComponent>;\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, input } from '@angular/core';\n\nlet notificationHeaderCounter = 0;\n\n@Component({\n selector: 'fd-notification-header',\n template: `<ng-content select=\"fd-icon\"></ng-content>\n <ng-content select=\"[fd-notification-title]\"></ng-content> `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n host: {\n class: 'fd-notification__header',\n '[attr.id]': 'uniqueId()'\n }\n})\nexport class NotificationHeaderComponent {\n /**\n * Unique id for the notification header\n * if not set, a default value is provided\n */\n uniqueId = input('fd-notification-header-' + ++notificationHeaderCounter);\n}\n","import { afterNextRender, contentChildren, DestroyRef, Directive, inject, Injector, Renderer2 } from '@angular/core';\nimport { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';\nimport { merge, NEVER, Observable } from 'rxjs';\nimport { auditTime, filter, startWith, switchMap } from 'rxjs/operators';\nimport { NotificationActionsComponent } from '../notification-actions/notification-actions.component';\nimport { NotificationHeaderComponent } from '../notification-header/notification-header.component';\n\n/**\n * @hidden\n * Base directive for notification components that need to set aria-describedby\n * on action buttons linking them to notification headers.\n */\n@Directive()\nexport abstract class NotificationGroupBaseDirective {\n /** @hidden */\n readonly notificationHeader = contentChildren(NotificationHeaderComponent, { descendants: true });\n\n /** @hidden */\n readonly notificationActions = contentChildren(NotificationActionsComponent);\n\n /** @hidden */\n protected readonly _destroyRef = inject(DestroyRef);\n\n /** @hidden */\n private readonly _renderer = inject(Renderer2);\n\n /** @hidden */\n private readonly _injector = inject(Injector);\n\n constructor() {\n // Use afterNextRender to ensure DOM is ready before setting up the observable chain\n afterNextRender(() => this._setupAriaDescribedBy(), { injector: this._injector });\n }\n\n /**\n * Sets up reactive subscription to update aria-describedby on action buttons.\n * @hidden\n */\n private _setupAriaDescribedBy(): void {\n const headersChanges$ = this._createHeadersObservable();\n const actionsChanges$ = this._createActionsObservable();\n\n merge(headersChanges$, actionsChanges$)\n .pipe(\n auditTime(0), // batch emissions within the same tick\n filter(() => this._hasRequiredContent()),\n takeUntilDestroyed(this._destroyRef)\n )\n .subscribe(() => this._applyAriaDescribedBy());\n }\n\n /**\n * Creates an observable that emits when notification headers change.\n * @hidden\n */\n private _createHeadersObservable(): Observable<readonly NotificationHeaderComponent[]> {\n return toObservable(this.notificationHeader, { injector: this._injector }).pipe(\n startWith(this.notificationHeader())\n );\n }\n\n /**\n * Creates an observable that emits when notification actions or their buttons change.\n * @hidden\n */\n private _createActionsObservable(): Observable<unknown> {\n return toObservable(this.notificationActions, { injector: this._injector }).pipe(\n startWith(this.notificationActions()),\n switchMap((actions) => {\n // Listen to button changes for each actions component\n // This ensures dynamically added buttons also get aria-describedby\n const buttonsChanges$ = actions.reduce(\n (acc, c) => acc.concat(c.buttons.changes),\n [] as Observable<unknown>[]\n );\n // Use NEVER to prevent completion when buttonsChanges$ is empty\n return merge(...buttonsChanges$, NEVER).pipe(startWith(0));\n })\n );\n }\n\n /**\n * Checks if required content (headers and buttons) exists.\n * @hidden\n */\n private _hasRequiredContent(): boolean {\n const headers = this.notificationHeader();\n const actions = this.notificationActions();\n\n if (headers.length === 0 || actions.length === 0) {\n return false;\n }\n return actions.some((a) => a.buttons.length > 0);\n }\n\n /**\n * Applies aria-describedby attribute to action buttons that don't already have it.\n * Uses the first header's uniqueId as the reference.\n * @hidden\n */\n private _applyAriaDescribedBy(): void {\n const firstHeader = this.notificationHeader()[0];\n const headerId = firstHeader.uniqueId();\n\n this.notificationActions().forEach((actionsComponent) => {\n actionsComponent.buttons\n .toArray()\n .map((b) => b.elementRef.nativeElement)\n .filter((b) => !b.hasAttribute('aria-describedby'))\n .forEach((b) => this._renderer.setAttribute(b, 'aria-describedby', headerId));\n });\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { NotificationGroupBaseDirective } from '../notification-utils/notification-group-base';\n\n@Component({\n selector: 'fd-notification-body',\n template: `<ng-content></ng-content>`,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'fd-notification__body'\n }\n})\nexport class NotificationBodyComponent extends NotificationGroupBaseDirective {}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'fd-notification-content',\n template: `<ng-content></ng-content>`,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n host: {\n class: 'fd-notification__content'\n }\n})\nexport class NotificationContentComponent {}\n","import { ChangeDetectionStrategy, Component, computed, input, model, signal, ViewEncapsulation } from '@angular/core';\nimport { resolveTranslationSignal } from '@fundamental-ngx/i18n';\nimport { FD_NOTIFICATION_FOOTER } from '../token';\n\n@Component({\n selector: 'fd-notification-footer',\n template: `<ng-content></ng-content>\n @if (showTrigger()) {\n <a role=\"button\" class=\"fd-link fd-notification__link\" tabindex=\"0\" (click)=\"onTriggerClick()\">\n <span class=\"fd-link__content\">{{ triggerLabel }}</span>\n </a>\n } `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n host: {\n class: 'fd-notification__footer'\n },\n providers: [\n {\n provide: FD_NOTIFICATION_FOOTER,\n useExisting: NotificationFooterComponent\n }\n ]\n})\nexport class NotificationFooterComponent {\n /**\n * Manual control: Override to show/hide the expand/collapse button.\n * When set, takes precedence over automatic truncation detection.\n * Use this for dynamically created notifications where automatic detection doesn't work.\n */\n readonly manualShowTrigger = input<boolean | undefined>(undefined);\n\n /**\n * Manual control: Set expanded state externally.\n * When set, takes precedence over internal expanded state.\n * Use this for dynamically created notifications.\n * Supports two-way binding with [(manualExpanded)].\n */\n readonly manualExpanded = model<boolean | undefined>(undefined);\n\n /**\n * Custom label for the expand button.\n * Defaults to `'More'`.\n */\n readonly moreLabel = input<string>();\n\n /**\n * Custom label for the collapse button.\n * Defaults to `'Less'`.\n */\n readonly lessLabel = input<string>();\n\n /**\n * Internal signal for automatic truncation detection.\n * Used when manual controls are not provided.\n * @internal\n */\n readonly _autoShowTrigger = signal(false);\n\n /**\n * Internal signal for automatic expanded state.\n * Used when manual controls are not provided.\n * @internal\n */\n readonly _autoExpanded = signal(false);\n\n /**\n * Computed signal for expanded state.\n * Uses manual control if provided, otherwise uses automatic state.\n */\n readonly expanded = computed(() => {\n const manual = this.manualExpanded();\n return manual !== undefined ? manual : this._autoExpanded();\n });\n\n /**\n * Computed signal that determines if trigger should be shown.\n * Uses manual control if provided, otherwise uses automatic detection.\n */\n protected readonly showTrigger = computed(() => {\n const manual = this.manualShowTrigger();\n return manual !== undefined ? manual : this._autoShowTrigger();\n });\n\n private readonly _defaultMoreLabel = resolveTranslationSignal('coreNotification.triggerMoreLabel');\n\n private readonly _defaultLessLabel = resolveTranslationSignal('coreNotification.triggerLessLabel');\n\n /** @hidden */\n protected onTriggerClick(): void {\n const currentExpanded = this.expanded();\n const newExpanded = !currentExpanded;\n\n // If using manual mode, update the model\n if (this.manualExpanded() !== undefined) {\n this.manualExpanded.set(newExpanded);\n } else {\n // Otherwise update automatic state\n this._autoExpanded.set(newExpanded);\n }\n }\n\n /**\n * Label for the trigger button\n * @hidden\n **/\n protected get triggerLabel(): string {\n const moreLabel = this.moreLabel() || this._defaultMoreLabel();\n const lessLabel = this.lessLabel() || this._defaultLessLabel();\n return this.expanded() ? lessLabel : moreLabel;\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'fd-notification-group-growing-item',\n standalone: true,\n template: `<ng-content select=\"[fd-notification-group-growing-item-title]\"></ng-content> <ng-content></ng-content>`,\n host: {\n class: 'fd-notification-group__growing-item',\n role: 'button',\n '[tabindex]': '0'\n }\n})\nexport class NotificationGroupGrowingItemComponent {}\n","import { ENTER, SPACE } from '@angular/cdk/keycodes';\nimport { ChangeDetectionStrategy, Component, computed, effect, inject, signal, ViewEncapsulation } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { KeyUtil, RtlService } from '@fundamental-ngx/cdk/utils';\nimport { IconComponent } from '@fundamental-ngx/core/icon';\nimport { FD_LANGUAGE, TranslationResolver } from '@fundamental-ngx/i18n';\nimport { NotificationGroupBaseDirective } from '../notification-utils/notification-group-base';\nimport { FD_NOTIFICATION_GROUP_HEADER } from '../token';\n\n@Component({\n selector: 'fd-notification-group-header',\n template: `\n <span class=\"fd-notification-group__header-arrow\">\n <fd-icon [glyph]=\"_buttonIcon()\"></fd-icon>\n </span>\n <ng-content select=\"fd-notification-group-header-title\"></ng-content>\n <ng-content></ng-content>\n `,\n host: {\n class: 'fd-notification-group__header',\n role: 'button',\n '[tabindex]': '0',\n '[attr.title]': 'title()',\n '[attr.aria-controls]': 'ariaControls()',\n '[attr.aria-expanded]': 'expanded()',\n '(click)': 'toggleExpand()',\n '(keydown)': '_onKeydown($event)'\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [IconComponent],\n providers: [\n {\n provide: FD_NOTIFICATION_GROUP_HEADER,\n useExisting: NotificationGroupHeaderComponent\n }\n ]\n})\nexport class NotificationGroupHeaderComponent extends NotificationGroupBaseDirective {\n /**\n * Title for the group header.\n * Default value is set from i18n translations (\"Expand/Collapse\").\n */\n readonly title = signal<string | null>('');\n\n /**\n * ID of the list element that the group header controls.\n */\n readonly ariaControls = signal<string | null>('');\n\n /** @hidden */\n readonly expanded = signal(false);\n\n /** @hidden */\n protected readonly _buttonIcon = computed(() =>\n this.expanded() ? 'slim-arrow-down' : this._rtlService?.rtl() ? 'slim-arrow-left' : 'slim-arrow-right'\n );\n\n /** @hidden */\n private readonly _rtlService = inject(RtlService, { optional: true });\n\n /** @hidden */\n private readonly _lang = toSignal(inject(FD_LANGUAGE));\n\n /** @hidden */\n private readonly _translationResolver = new TranslationResolver();\n\n constructor() {\n super();\n\n // Set up translation for title - only sets default if title is empty\n effect(() => {\n const lang = this._lang();\n // Only set from i18n if title hasn't been set externally\n if (lang && !this.title()) {\n this.title.set(this._translationResolver.resolve(lang, 'coreNotification.groupHeaderTitle'));\n }\n });\n }\n\n /** Method that toggles the Notification list content */\n toggleExpand(): void {\n this.expanded.update((expanded) => !expanded);\n }\n\n /** @hidden */\n protected _onKeydown(event: KeyboardEvent): void {\n if (KeyUtil.isKeyCode(event, [ENTER, SPACE])) {\n this.toggleExpand();\n event.preventDefault();\n }\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n contentChildren,\n input\n} from '@angular/core';\nimport { NotificationComponent } from '../notification/notification.component';\nimport { FD_NOTIFICATION, FD_NOTIFICATION_GROUP_LIST } from '../token';\n\nlet notificationGroupListCounter = 0;\n\n@Component({\n selector: 'fd-notification-group-list',\n template: `<ng-content></ng-content>`,\n host: {\n class: 'fd-notification-group__list',\n role: 'list',\n '[attr.id]': 'id()'\n },\n providers: [\n {\n provide: FD_NOTIFICATION_GROUP_LIST,\n useExisting: NotificationGroupListComponent\n }\n ],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: []\n})\nexport class NotificationGroupListComponent implements AfterViewInit {\n /**\n * id of the element labelling the group list\n */\n ariaLabelledBy = input<string>();\n\n /**\n * id for the notification group list\n * if not set, a default value is provided\n */\n id = input('fd-notification-group-list-' + ++notificationGroupListCounter);\n\n /**\n * @hidden\n */\n notifications = contentChildren<NotificationComponent>(FD_NOTIFICATION);\n\n /**\n * @hidden\n */\n ngAfterViewInit(): void {\n this.notifications()?.forEach((notification) => {\n notification.role.set('listitem');\n notification.ariaLevel.set(2);\n });\n }\n}\n","import {\n AfterViewInit,\n Component,\n DestroyRef,\n OnInit,\n computed,\n contentChild,\n inject,\n input,\n signal\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { FD_LANGUAGE, FdLanguage, TranslationResolver } from '@fundamental-ngx/i18n';\nimport { NotificationGroupHeaderTitleDirective } from '../directives/notification-group-header-title.directive';\nimport { NotificationGroupHeaderComponent } from '../notification-group-header/notification-group-header.component';\nimport { NotificationGroupListComponent } from '../notification-group-list/notification-group-list.component';\nimport { FD_NOTIFICATION_GROUP_HEADER, FD_NOTIFICATION_GROUP_HEADER_TITLE, FD_NOTIFICATION_GROUP_LIST } from '../token';\n\n@Component({\n selector: 'fd-notification-group',\n standalone: true,\n template: `<div class=\"fd-notification-group__wrapper\">\n <ng-content select=\"fd-notification-group-header\"></ng-content>\n @if (isExpanded()) {\n <ng-content select=\"fd-notification-group-list\"></ng-content>\n <ng-content select=\"fd-notification-group-growing-item\"></ng-content>\n }\n </div>`,\n host: {\n class: 'fd-notification-group',\n role: 'listitem',\n '[tabindex]': '-1',\n '[attr.aria-level]': '1',\n '[attr.aria-label]': 'ariaLabel()',\n '[attr.aria-labelledby]': 'ariaLabelledBy()',\n '[attr.aria-description]': 'ariaDescription()'\n }\n})\nexport class NotificationGroupComponent implements OnInit, AfterViewInit {\n /**\n * Whether the group is expanded\n * default value is false\n */\n expanded = input(false);\n\n /**\n * input property to set aria-label\n * accepts a string value\n */\n ariaLabel = input<string>();\n\n /** @hidden */\n readonly ariaLabelledBy = computed(() => this.groupTitle()?.id());\n\n /** @hidden */\n readonly ariaDescription = computed(\n () =>\n `${this._descriptionString()} ${\n this.groupHeader()?.expanded() ? this._expandedString() : this._collapsedString()\n }`\n );\n\n /** @hidden */\n readonly isExpanded = computed(() => this.groupHeader()?.expanded());\n\n /** @hidden */\n readonly groupHeader = contentChild<NotificationGroupHeaderComponent>(FD_NOTIFICATION_GROUP_HEADER);\n\n /** @hidden */\n readonly groupTitle = contentChild<NotificationGroupHeaderTitleDirective>(FD_NOTIFICATION_GROUP_HEADER_TITLE);\n\n /** @hidden */\n readonly groupList = contentChild<NotificationGroupListComponent>(FD_NOTIFICATION_GROUP_LIST);\n\n /** @hidden */\n private _descriptionString = signal<Nullable<string>>('');\n\n /** @hidden */\n private _expandedString = signal<Nullable<string>>('');\n\n /** @hidden */\n private _collapsedString = signal<Nullable<string>>('');\n\n /** @hidden */\n private readonly _destroyRef = inject(DestroyRef);\n\n /** @hidden */\n private readonly _lang$ = inject(FD_LANGUAGE);\n\n /** @hidden */\n private _translationResolver = new TranslationResolver();\n\n /** @hidden */\n ngAfterViewInit(): void {\n this.groupHeader()?.ariaControls.set(this.groupList()?.id() ?? null);\n this.groupHeader()?.expanded.set(this.expanded());\n }\n\n /** @hidden */\n ngOnInit(): void {\n this._lang$.pipe(takeUntilDestroyed(this._destroyRef)).subscribe((lang: FdLanguage) => {\n this._expandedString.set(\n this._translationResolver.resolve(lang, 'coreNotification.groupAriaDescriptionExpanded')\n );\n\n this._collapsedString.set(\n this._translationResolver.resolve(lang, 'coreNotification.groupAriaDescriptionCollapsed')\n );\n\n this._descriptionString.set(\n this._translationResolver.resolve(lang, 'coreNotification.groupAriaDescription')\n );\n });\n }\n}\n","import { Component, signal } from '@angular/core';\n\n@Component({\n selector: 'fd-notification-link',\n standalone: true,\n template: `<span class=\"fd-link__content\">{{ showMore() ? 'Less' : 'More' }}</span>`,\n host: {\n class: 'fd-link fd-notification__link',\n tabindex: '0',\n role: 'link',\n '(click)': 'toggleShowMore()'\n }\n})\nexport class NotificationLinkComponent {\n /**\n * signal to control the show more/less\n * default value is false\n */\n showMore = signal(false);\n\n /**\n * Method to toggle show more functionality\n */\n toggleShowMore(): void {\n this.showMore.update((value) => !value);\n }\n}\n","import { Nullable } from '@fundamental-ngx/cdk/utils';\n\n/**\n * Configuration for opening a notification with the NotificationService.\n */\nexport class NotificationConfig<T = any> {\n /** Id for the notification component. If omitted, a unique one is generated. */\n id?: string;\n\n /** aria-label attribute for the notification component element. */\n ariaLabel?: Nullable<string>;\n\n /** aria-labelledby attribute for the notification component element. */\n ariaLabelledBy?: Nullable<string>;\n\n /** aria-describedby attribute for the notification component element. */\n ariaDescribedBy?: Nullable<string>;\n\n /** The container that the notification is appended to. By default, it is appended to the body. */\n container?: HTMLElement | 'body' = 'body';\n\n /** Data to pass along to the content through the NotificationRef. */\n data?: T;\n\n /** Custom width of the notification. */\n width?: string;\n\n /**\n * Whether the notification should trap focus within itself.\n * @default true\n */\n shouldTrapFocus?: boolean = true;\n\n /** Whether to dismiss the notification on router navigation start. */\n closeOnNavigation?: boolean = true;\n}\n","import { Observable, Subject } from 'rxjs';\n\n/**\n * Reference to a notification component generated via the NotificationService.\n * It can be injected into the content component through the constructor.\n * For a template, it is declared as part of the implicit context, see examples.\n */\nexport class NotificationRef<T = any, P = any> {\n /**\n * Observable that is triggered when the notification is closed.\n * On close a *result* is passed back. On dismiss, an *error* is returned instead.\n */\n afterClosed: Observable<P | undefined>;\n\n /** Data passed from the calling component to the content.*/\n data: T;\n\n /** @hidden */\n protected readonly _afterClosed = new Subject<P | undefined>();\n\n /** @hidden */\n constructor() {\n this.afterClosed = this._afterClosed.asObservable();\n }\n\n /**\n * Closes the notification and passes the argument to the afterClosed observable.\n * @param result Value passed back to the observable as a result.\n */\n close(result?: P): void {\n this._afterClosed.next(result);\n this._afterClosed.complete();\n }\n\n /**\n * Dismisses the notification and passes the argument to the afterClosed observable as an error.\n * @param reason Value passed back to the observable as an error.\n */\n dismiss(reason?: P): void {\n this._afterClosed.error(reason);\n }\n}\n","import { ConfigurableFocusTrapFactory, FocusTrap } from '@angular/cdk/a11y';\nimport { Direction } from '@angular/cdk/bidi';\nimport { ESCAPE } from '@angular/cdk/keycodes';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentFactoryResolver,\n ComponentRef,\n DestroyRef,\n EmbeddedViewRef,\n OnDestroy,\n OnInit,\n TemplateRef,\n Type,\n ViewContainerRef,\n ViewEncapsulation,\n computed,\n contentChild,\n effect,\n inject,\n input,\n signal,\n viewChild\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { NavigationStart, Router } from '@angular/router';\nimport { AbstractFdNgxClass, KeyUtil, Nullable, RtlService } from '@fundamental-ngx/cdk/utils';\nimport { BehaviorSubject, fromEvent } from 'rxjs';\nimport { debounceTime, filter, take } from 'rxjs/operators';\nimport { NotificationParagraphDirective } from '../directives/notification-paragraph.directive';\nimport { NotificationTitleDirective } from '../directives/notification-title.directive';\nimport { NotificationFooterComponent } from '../notification-footer/notification-footer.component';\nimport { NotificationConfig } from '../notification-utils/notification-config';\nimport { NotificationRef } from '../notification-utils/notification-ref';\nimport { FD_NOTIFICATION, FD_NOTIFICATION_FOOTER, FD_NOTIFICATION_PARAGRAPH, FD_NOTIFICATION_TITLE } from '../token';\n\n@Component({\n selector: 'fd-notification',\n template: `\n <ng-content></ng-content>\n <ng-container #vc></ng-container>\n `,\n styleUrl: './notification.component.scss',\n encapsulation: ViewEncapsulation.None,\n host: {\n '[attr.aria-labelledby]': 'ariaLabelledBy()',\n '[attr.aria-label]': 'ariaLabel',\n '[attr.aria-level]': 'ariaLevel()',\n '[attr.role]': 'role()',\n '[attr.dir]': '_dir()',\n '[attr.id]': 'id',\n '[tabindex]': '0',\n '[style.width]': 'width',\n '(window:keyup)': '_closeNotificationEsc($event)'\n },\n providers: [\n {\n provide: FD_NOTIFICATION,\n useExisting: NotificationComponent\n }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NotificationComponent extends AbstractFdNgxClass implements OnInit, AfterViewInit, OnDestroy {\n /** @hidden */\n containerRef = viewChild('vc', { read: ViewContainerRef });\n\n /** User defined width for the notification */\n width = input<Nullable<string>>();\n\n /** Whether the notificatioon is in mobile mode */\n mobile = input(false);\n\n /** @hidden */\n _dir = computed<Direction>(() => (this._rtlService?.rtl() ? 'rtl' : 'ltr'));\n\n /** ID of the notification */\n id: string;\n\n /**\n * aria-level of the Notificaion\n * should be set to 2 in Notification Group\n * default value is undefined\n */\n ariaLevel = signal<Nullable<number>>(undefined);\n\n /**\n * role of the Notificaion\n * should be set to 'listitem' in Notification Group\n * default value is undefined\n */\n role = signal<Nullable<string>>(undefined);\n\n /**\n * whether the Notificaion is selected\n * default is set to false\n */\n selected = input(false);\n\n /** Whether the notification is dismissed with the ESC key */\n escKeyCloseable = false;\n\n /** Whether the notification should close with router change */\n closeOnNavigation = true;\n\n /** aria-labelledby attribute for the notification component element. */\n ariaLabelledBy = signal<Nullable<string>>(null);\n\n /** aria-label attribute for the notification component element. */\n ariaLabel: Nullable<string>;\n\n /** aria-describedby attribute for the notification component element. */\n ariaDescribedBy: Nullable<string>;\n\n /** Reference to the child content */\n childContent: TemplateRef<any> | Type<any> | undefined = undefined;\n\n /** Reference to the component or the embedded view */\n public componentRef: ComponentRef<any> | EmbeddedViewRef<any> | undefined;\n\n /** @hidden */\n private _notificationTitle = contentChild<NotificationTitleDirective>(FD_NOTIFICATION_TITLE);\n\n /** @hidden */\n private _notificationParagraph = contentChild<NotificationParagraphDirective>(FD_NOTIFICATION_PARAGRAPH);\n\n /** @hidden */\n private _notificationFooter = contentChild<NotificationFooterComponent>(FD_NOTIFICATION_FOOTER);\n\n /** @hidden */\n private readonly _destroyRef = inject(DestroyRef);\n\n /** @hidden */\n private readonly _afterViewInit$ = new BehaviorSubject(false);\n\n /** @hidden The class that traps and manages focus within the notification. */\n private _focusTrap: FocusTrap;\n\n /** @hidden */\n private _cdRef = inject(ChangeDetectorRef);\n\n /** @hidden */\n private _componentFactoryResolver = inject(ComponentFactoryResolver);\n\n /** @hidden */\n private _router = inject(Router);\n\n /** @hidden */\n private _focusTrapFactory = inject(ConfigurableFocusTrapFactory);\n\n /** @hidden */\n private _notificationConfig = inject(NotificationConfig, { optional: true });\n\n /** @hidden */\n private _notificationRef = inject(NotificationRef, { optional: true });\n\n /** @hidden */\n private _rtlService = inject(RtlService, { optional: true });\n\n /** @hidden */\n private _isTitleTruncated = signal(false);\n\n /** @hidden */\n private _isParagraphTruncated = signal(false);\n\n /** @hidden */\n private _hasTruncation = computed(() => this._isTitleTruncated() || this._isParagraphTruncated());\n\n /** @hidden */\n private _expanded = computed(() => this._notificationFooter()?.expanded() ?? false);\n\n /** @hidden */\n private _observer: ResizeObserver;\n\n /** @hidden */\n constructor() {\n super();\n if (this._notificationConfig) {\n this._setNotificationConfig(this._notificationConfig);\n }\n\n effect(() => {\n this._updateExpandedClass();\n });\n }\n\n /** @hidden Listen and close notification on Escape key */\n _closeNotificationEsc(event: KeyboardEvent): void {\n if (this.escKeyCloseable && KeyUtil.isKeyCode(event, ESCAPE) && this._notificationRef) {\n this._notificationRef.dismiss('escape');\n }\n }\n\n /** @hidden */\n ngOnInit(): void {\n this._listenAndCloseOnNavigation();\n this._setProperties();\n this._attachResizeListener();\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n if (this.childContent) {\n if (this.childContent instanceof Type) {\n this._loadFromComponent(this.childContent);\n }\n\n if (this.childContent instanceof TemplateRef) {\n this._loadFromTemplate(this.childContent);\n }\n }\n\n if (this._notificationTitle()) {\n this.ariaLabelledBy.set(this._notificationTitle()?.id());\n } else if (this._notificationParagraph()) {\n this.ariaLabelledBy.set(this._notificationParagraph()?.id());\n }\n\n this._checkTruncation();\n this._observeNotificationResize();\n this._afterViewInit$.next(true);\n this._cdRef.detectChanges();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._observer?.disconnect();\n }\n\n /**\n * Moves the focus inside the focus trap.\n * @returns\n * Returns a promise that resolves with a boolean, depending on whether focus was moved successfully.\n */\n async trapFocus(): Promise<boolean> {\n // waiting for afterViewInit hook to fire\n await this._afterViewInit$.pipe(filter(Boolean), take(1), takeUntilDestroyed(this._destroyRef)).toPromise();\n if (!this._focusTrap) {\n this._focusTrap = this._focusTrapFactory.create(this.elementRef.nativeElement);\n }\n return this._focusTrap.focusFirstTabbableElementWhenReady();\n }\n\n /** @hidden */\n _setProperties(): void {\n this._addClassToElement('fd-notification');\n }\n\n /** @hidden */\n private _observeNotificationResize(): void {\n const el = this.elementRef.nativeElement;\n\n if (typeof ResizeObserver !== 'undefined') {\n this._observer = new ResizeObserver(() => {\n this._checkTruncation();\n this._cdRef.markForCheck();\n });\n this._observer.observe(el);\n }\n }\n\n /** @hidden */\n private _updateExpandedClass(): void {\n const isExpanded = this._expanded();\n\n [this._notificationTitle(), this._notificationParagraph()].forEach((ref) => {\n ref?.elementRef.nativeElement.classList.toggle('is-expanded', isExpanded);\n });\n }\n\n /** @hidden */\n private _checkTruncation(): void {\n const titleEl = this._notificationTitle()?.elementRef.nativeElement;\n const paragraphEl = this._notificationParagraph()?.elementRef.nativeElement;\n const footer = this._notificationFooter();\n\n if (titleEl) {\n this._isTitleTruncated.set(titleEl.scrollHeight > titleEl.clientHeight);\n }\n\n if (paragraphEl) {\n this._isParagraphTruncated.set(paragraphEl.scrollHeight > paragraphEl.clientHeight);\n }\n\n if (footer) {\n footer._autoShowTrigger.set(this._hasTruncation() || this._expanded());\n }\n\n this._updateExpandedClass();\n }\n\n /** @hidden */\n private _attachResizeListener(): void {\n fromEvent(window, 'resize', { passive: true })\n .pipe(debounceTime(100), takeUntilDestroyed(this._destroyRef))\n .subscribe(() => this._onWindowResize());\n }\n\n /** @hidden */\n private _onWindowResize(): void {\n this._checkTruncation();\n this._cdRef.markForCheck();\n }\n\n /** @hidden Listen on NavigationStart event and dismiss the dialog */\n private _listenAndCloseOnNavigation(): void {\n if (this._router && this._notificationRef) {\n this._router.events\n .pipe(\n filter(\n (event) => event instanceof NavigationStart && !!this._notificationConfig?.closeOnNavigation\n ),\n takeUntilDestroyed(this._destroyRef)\n )\n .subscribe(() => this._notificationRef?.dismiss());\n }\n }\n\n /** @hidden */\n private _loadFromComponent(content: Type<any>): void {\n this.containerRef()?.clear();\n const componentFactory = this._componentFactoryResolver.resolveComponentFactory(content);\n this.componentRef = this.containerRef()?.createComponent(componentFactory);\n }\n\n /** @hidden */\n private _loadFromTemplate(content: TemplateRef<any>): void {\n this.containerRef()?.clear();\n const context = {\n $implicit: this._notificationRef\n };\n this.componentRef = this.containerRef()?.createEmbeddedView(content, context);\n }\n\n /** @hidden */\n private _setNotificationConfig(notificationConfig: NotificationConfig): void {\n Object.keys(notificationConfig || {})\n .filter((key) => key !== 'data' && key !== 'container')\n .forEach((key) => (this[key] = notificationConfig[key]));\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'fd-notification-container',\n template: ``,\n styles: [\n `\n .fd-notification-container {\n position: fixed;\n display: flex;\n flex-direction: column;\n z-index: 5000;\n align-items: flex-end;\n top: 2rem;\n right: 2rem;\n }\n `\n ],\n host: {\n class: 'fd-notification-container'\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class NotificationContainer {}\n","import { ComponentRef, DOCUMENT, Inject, Injectable, Injector, Optional, TemplateRef, Type } from '@angular/core';\nimport { DynamicComponentService, RtlService } from '@fundamental-ngx/cdk/utils';\nimport { NotificationConfig } from '../notification-utils/notification-config';\nimport { NotificationContainer } from '../notification-utils/notification-container';\nimport { NotificationRef } from '../notification-utils/notification-ref';\nimport { NotificationComponent } from '../notification/notification.component';\n\n@Injectable()\nexport class NotificationService {\n /** @hidden */\n public notifications: {\n notificationComponent: ComponentRef<NotificationComponent>;\n notificationConfig: Readonly<NotificationConfig>;\n }[] = [];\n\n /** @hidden */\n public containerRef: ComponentRef<NotificationContainer> | null;\n\n /**\n * @hidden\n * Element that was focused before the notification was opened. Being used to restore focus upon close.\n */\n private _elementFocusedBeforeNotificationWasOpened?: HTMLOrSVGElement;\n\n /**\n * @hidden\n */\n constructor(\n private _dynamicComponentService: DynamicComponentService,\n @Inject(DOCUMENT) private _document: Document,\n @Optional() private _rtlService: RtlService\n ) {}\n\n /**\n * Opens a notification component with a content of type TemplateRef or Component Type\n * @param content Content of the notification component.\n * @param notificationConfig Configuration of the notification component.\n */\n public open(\n content: TemplateRef<any> | Type<any>,\n notificationConfig: NotificationConfig = new NotificationConfig()\n ): NotificationRef {\n // Reassigning Object And Service\n const notificationService: NotificationRef = new NotificationRef();\n notificationConfig = Object.assign(new NotificationConfig(), notificationConfig);\n notificationService.data = notificationConfig.data;\n\n // Create Container if it doesn't exist\n if (!this.containerRef) {\n this.containerRef = this._dynamicComponentService.createDynamicComponent(\n content,\n NotificationContainer,\n notificationConfig\n );\n }\n\n // Pass Container reference to config\n notificationConfig.container = this.containerRef.location.nativeElement;\n\n const injector = Injector.create({\n providers: [\n { provide: NotificationConfig, useValue: notificationConfig },\n { provide: NotificationRef, useValue: notificationService },\n { provide: RtlService, useValue: this._rtlService }\n ]\n });\n\n // Create Notification Component\n const notificationComponentRef = this._dynamicComponentService.createDynamicComponent(\n content,\n NotificationComponent,\n notificationConfig,\n { injector }\n );\n\n if (notificationConfig.shouldTrapFocus) {\n const element = this._document.activeElement as HTMLElement | undefined;\n this._elementFocusedBeforeNotificationWasOpened =\n typeof element?.focus === 'function' ? element : undefined;\n notificationComponentRef.instance.trapFocus();\n }\n\n // Add To array\n this.notifications.push({\n notificationComponent: notificationComponentRef,\n notificationConfig\n });\n\n const defaultBehaviourOnClose = (): void => {\n this._destroyNotificationComponent(notificationComponentRef);\n refSub.unsubscribe();\n };\n\n const refSub = notificationService.afterClosed.subscribe({\n next: defaultBehaviourOnClose,\n error: defaultBehaviourOnClose\n });\n\n return notificationService;\n }\n\n /** Method to remove all of notifications from this service instance */\n public destroyAll(): void {\n this.notifications.forEach((notification) => {\n this._destroyNotificationComponent(notification.notificationComponent);\n });\n }\n\n /** Method that informs if there is any notification opened in this service instance */\n public isAnyOpened(): boolean {\n return this.notifications && this.notifications.length > 0;\n }\n\n /** @hidden Method that destroys the Notification component */\n private _destroyNotificationComponent(notification: ComponentRef<NotificationComponent>): void {\n this.notifications = this.notifications.filter((item) => item.notificationComponent !== notification);\n this._dynamicComponentService.destroyComponent(notification);\n\n // If there is no other notification Components, just remove container.\n if (this.notifications.length === 0 && this.containerRef) {\n this._dynamicComponentService.destroyComponent(this.containerRef);\n this.containerRef = null;\n this._restoreFocus();\n } else {\n // otherwise attempt to move focus to previous notification\n const last = this.notifications[this.notifications.length - 1];\n if (last.notificationConfig.shouldTrapFocus) {\n last.notificationComponent.instance.trapFocus();\n } else {\n this._restoreFocus();\n }\n }\n }\n\n /** @hidden attempts to focus previously selected element */\n private _restoreFocus(): void {\n if (typeof this._elementFocusedBeforeNotificationWasOpened?.focus === 'function') {\n this._elementFocusedBeforeNotificationWasOpened.focus();\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { DynamicComponentService } from '@fundamental-ngx/cdk/utils';\n\n// Directives\nimport { NotificationFooterContentDirective } from './directives/notification-footer-content.directive';\nimport { NotificationGroupGrowingItemTitleDirective } from './directives/notification-group-growing-item-title.directive';\nimport { NotificationGroupHeaderTitleDirective } from './directives/notification-group-header-title.directive';\nimport { NotificationListDirective } from './directives/notification-list.directive';\nimport { NotificationMessageStripContainerDirective } from './directives/notification-message-strip-container.directive';\nimport { NotificationMessageStripDirective } from './directives/notification-message-strip.directive';\nimport { NotificationParagraphDirective } from './directives/notification-paragraph.directive';\nimport { NotificationPopoverDirective } from './directives/notification-popover.directive';\nimport { NotificationSeparatorDirective } from './directives/notification-separator.directive';\nimport { NotificationTitleDirective } from './directives/notification-title.directive';\n\n// Components\nimport { NotificationActionsComponent } from './notification-actions/notification-actions.component';\nimport { NotificationBodyComponent } from './notification-body/notification-body.component';\nimport { NotificationContentComponent } from './notification-content/notification-content.component';\nimport { NotificationFooterComponent } from './notification-footer/notification-footer.component';\nimport { NotificationGroupGrowingItemComponent } from './notification-group-growing-item/notification-group-growing-item.component';\nimport { NotificationGroupHeaderComponent } from './notification-group-header/notification-group-header.component';\nimport { NotificationGroupListComponent } from './notification-group-list/notification-group-list.component';\nimport { NotificationGroupComponent } from './notification-group/notification-group.component';\nimport { NotificationHeaderComponent } from './notification-header/notification-header.component';\nimport { NotificationLinkComponent } from './notification-link/notification-link.component';\nimport { NotificationComponent } from './notification/notification.component';\n\n// Utils\nimport { NotificationService } from './notification-service/notification.service';\nimport { NotificationContainer } from './notification-utils/notification-container';\n\nconst components = [\n NotificationComponent,\n NotificationContainer,\n NotificationLinkComponent,\n NotificationBodyComponent,\n NotificationGroupComponent,\n NotificationHeaderComponent,\n NotificationFooterComponent,\n NotificationActionsComponent,\n NotificationContentComponent,\n NotificationGroupListComponent,\n NotificationGroupHeaderComponent,\n NotificationGroupGrowingItemComponent,\n NotificationListDirective,\n NotificationTitleDirective,\n NotificationPopoverDirective,\n NotificationSeparatorDirective,\n NotificationParagraphDirective,\n NotificationMessageStripDirective,\n NotificationFooterContentDirective,\n NotificationGroupHeaderTitleDirective,\n NotificationMessageStripContainerDirective,\n NotificationGroupGrowingItemTitleDirective\n];\n\n/**\n * @deprecated\n * Use direct imports of components and directives.\n */\n@NgModule({\n imports: [...components],\n exports: [...components],\n providers: [DynamicComponentService, NotificationService]\n})\nexport class NotificationModule {}\n","// Directives\nexport * from './directives/notification-footer-content.directive';\nexport * from './directives/notification-group-growing-item-title.directive';\nexport * from './directives/notification-group-header-title.directive';\nexport * from './directives/notification-list.directive';\nexport * from './directives/notification-message-strip-container.directive';\nexport * from './directives/notification-message-strip.directive';\nexport * from './directives/notification-paragraph.directive';\nexport * from './directives/notification-popover.directive';\nexport * from './directives/notification-separator.directive';\nexport * from './directives/notification-title.directive';\n\n// Components\nexport * from './notification-actions/notification-actions.component';\nexport * from './notification-body/notification-body.component';\nexport * from './notification-content/notification-content.component';\nexport * from './notification-footer/notification-footer.component';\nexport * from './notification-group-growing-item/notification-group-growing-item.component';\nexport * from './notification-group-header/notification-group-header.component';\nexport * from './notification-group-list/notification-group-list.component';\nexport * from './notification-group/notification-group.component';\nexport * from './notification-header/notification-header.component';\nexport * from './notification-link/notification-link.component';\nexport * from './notification/notification.component';\n\n// Service\nexport * from './notification-service/notification.service';\n\n// Utils\nexport * from './notification-utils/notification-config';\nexport * from './notification-utils/notification-container';\nexport * from './notification-utils/notification-group-base';\nexport * from './notification-utils/notification-ref';\n\n// Module\nexport * from './notification.module';\n\n// Token\nexport * from './token';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -71,7 +71,7 @@ class ObjectIdentifierComponent {
71
71
  [attr.id]="descriptionId()"
72
72
  [attr.aria-hidden]="hasLinks() ? 'true' : null"
73
73
  >
74
- {{ ariaLabel() || ('coreObjectIdentifier.srOnlyAriaLabel' | fdTranslate)() }}
74
+ {{ ariaLabel() || ('coreObjectIdentifier.srOnlyAriaLabel' | fdTranslate) }}
75
75
  </span>
76
76
  `, isInline: true, styles: [".fd-object-identifier .fd-object-identifier__link{font-size:inherit;font-weight:inherit}.fd-object-identifier__title{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapList_TextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-size:var(--sapFontLargeSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0}.fd-object-identifier__title:after,.fd-object-identifier__title:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-object-identifier__title--bold{font-weight:700}.fd-object-identifier__text{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapContent_LabelColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;margin-top:.5rem;padding-block:0;padding-inline:0}.fd-object-identifier__text:after,.fd-object-identifier__text:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-object-identifier--medium .fd-object-identifier__title{font-size:var(--sapFontSize)}.fd-object-identifier__sr-only{position:absolute;clip:rect(0 0 0 0);height:1px;width:1px;border:0;margin-inline:-1px;margin-block:-1px;padding-inline:0;padding-block:0;overflow:hidden;white-space:nowrap}\n/*! Bundled license information:\n\nfundamental-styles/dist/object-identifier.css:\n (*!\n * Fundamental Library Styles v0.40.1\n * Copyright (c) 2025 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n *)\n*/\n"], dependencies: [{ kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
77
77
  }
@@ -91,7 +91,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImpor
91
91
  [attr.id]="descriptionId()"
92
92
  [attr.aria-hidden]="hasLinks() ? 'true' : null"
93
93
  >
94
- {{ ariaLabel() || ('coreObjectIdentifier.srOnlyAriaLabel' | fdTranslate)() }}
94
+ {{ ariaLabel() || ('coreObjectIdentifier.srOnlyAriaLabel' | fdTranslate) }}
95
95
  </span>
96
96
  `, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [FdTranslatePipe], host: {
97
97
  class: 'fd-object-identifier',
@@ -1 +1 @@
1
- {"version":3,"file":"fundamental-ngx-core-object-identifier.mjs","sources":["../../../../libs/core/object-identifier/object-identifier.component.ts","../../../../libs/core/object-identifier/object-identifier.module.ts","../../../../libs/core/object-identifier/fundamental-ngx-core-object-identifier.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n contentChildren,\n effect,\n input\n} from '@angular/core';\nimport { FD_LINK_COMPONENT } from '@fundamental-ngx/core/link';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\n\nlet objectIdentifierId = 0;\n\n@Component({\n selector: 'fd-object-identifier',\n template: `\n <p class=\"fd-object-identifier__title\" [class.fd-object-identifier__title--bold]=\"bold()\" [attr.id]=\"titleId()\">\n <ng-content></ng-content>\n </p>\n @if (description()) {\n <p class=\"fd-object-identifier__text\" [attr.id]=\"textId()\">\n {{ description() }}\n </p>\n }\n <span\n class=\"fd-object-identifier__sr-only\"\n [attr.id]=\"descriptionId()\"\n [attr.aria-hidden]=\"hasLinks() ? 'true' : null\"\n >\n {{ ariaLabel() || ('coreObjectIdentifier.srOnlyAriaLabel' | fdTranslate)() }}\n </span>\n `,\n styleUrl: './object-identifier.component.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [FdTranslatePipe],\n host: {\n class: 'fd-object-identifier',\n '[attr.id]': 'id()',\n '[class.fd-object-identifier--medium]': 'medium()'\n }\n})\nexport class ObjectIdentifierComponent {\n /**\n * Object Identifier ID\n * If not set, a default value is provided\n */\n readonly id = input('fd-object-identifier-' + ++objectIdentifierId);\n\n /**\n * Optional description text to display below the title.\n * When provided, renders as a paragraph with the class `fd-object-identifier__text`.\n */\n readonly description = input<string>();\n\n /**\n * Accessible label for screen readers.\n * Used in the screen-reader-only span element to provide context for assistive technologies.\n */\n readonly ariaLabel = input<string>();\n\n /**\n * Whether to apply bold styling to the title.\n * When true, adds the `fd-object-identifier__title--bold` class to the title element.\n * @default false\n */\n readonly bold = input(false, { transform: booleanAttribute });\n\n /**\n * Whether to apply medium sizing to the component.\n * When true, adds the `fd-object-identifier--medium` class to the host element.\n * @default false\n */\n readonly medium = input(false, { transform: booleanAttribute });\n\n /** Computed ID for the description text element */\n protected readonly textId = computed(() => `${this.id()}-text`);\n\n /** Computed ID for the title element */\n protected readonly titleId = computed(() => `${this.id()}-title`);\n\n /** Computed ID for the screen-reader only description element */\n protected readonly descriptionId = computed(() => `${this.id()}-description`);\n\n /** Whether any link components are projected via content projection */\n protected readonly hasLinks = computed(() => this._linkComponents().length > 0);\n\n /** Query for all projected link components to apply identifier-specific styling and ARIA attributes */\n private readonly _linkComponents = contentChildren(FD_LINK_COMPONENT, { read: ElementRef });\n\n /** @hidden */\n constructor() {\n effect(() => {\n this._applyLinkAttributes();\n });\n }\n\n /** Applies identifier-specific CSS class and ARIA attributes to all link components */\n private _applyLinkAttributes(): void {\n const ariaLabelledBy = this.description() ? `${this.descriptionId()} ${this.textId()}` : this.descriptionId();\n\n this._linkComponents().forEach((link) => {\n link.nativeElement.classList.add('fd-object-identifier__link');\n link.nativeElement.setAttribute('aria-labelledby', ariaLabelledBy);\n });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { ObjectIdentifierComponent } from './object-identifier.component';\n\n/**\n * @deprecated\n * Use direct import of `ObjectIdentifierComponent`.\n */\n@NgModule({\n imports: [ObjectIdentifierComponent],\n exports: [ObjectIdentifierComponent]\n})\nexport class ObjectIdentifierModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;AAcA,IAAI,kBAAkB,GAAG,CAAC;MA+Bb,yBAAyB,CAAA;;AAiDlC,IAAA,WAAA,GAAA;AAhDA;;;AAGG;QACM,IAAA,CAAA,EAAE,GAAG,KAAK,CAAC,uBAAuB,GAAG,EAAE,kBAAkB,8CAAC;AAEnE;;;AAGG;QACM,IAAA,CAAA,WAAW,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,aAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAU;AAEtC;;;AAGG;QACM,IAAA,CAAA,SAAS,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAU;AAEpC;;;;AAIG;QACM,IAAA,CAAA,IAAI,GAAG,KAAK,CAAC,KAAK,iDAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAE7D;;;;AAIG;QACM,IAAA,CAAA,MAAM,GAAG,KAAK,CAAC,KAAK,mDAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;AAG5C,QAAA,IAAA,CAAA,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAA,EAAG,IAAI,CAAC,EAAE,EAAE,CAAA,KAAA,CAAO,kDAAC;;AAG5C,QAAA,IAAA,CAAA,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAA,EAAG,IAAI,CAAC,EAAE,EAAE,CAAA,MAAA,CAAQ,mDAAC;;AAG9C,QAAA,IAAA,CAAA,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAA,EAAG,IAAI,CAAC,EAAE,EAAE,CAAA,YAAA,CAAc,yDAAC;;AAG1D,QAAA,IAAA,CAAA,QAAQ,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC,MAAM,GAAG,CAAC,oDAAC;;QAG9D,IAAA,CAAA,eAAe,GAAG,eAAe,CAAC,iBAAiB,4DAAI,IAAI,EAAE,UAAU,EAAA,CAAG;QAIvF,MAAM,CAAC,MAAK;YACR,IAAI,CAAC,oBAAoB,EAAE;AAC/B,QAAA,CAAC,CAAC;IACN;;IAGQ,oBAAoB,GAAA;QACxB,MAAM,cAAc,GAAG,IAAI,CAAC,WAAW,EAAE,GAAG,CAAA,EAAG,IAAI,CAAC,aAAa,EAAE,CAAA,CAAA,EAAI,IAAI,CAAC,MAAM,EAAE,CAAA,CAAE,GAAG,IAAI,CAAC,aAAa,EAAE;QAE7G,IAAI,CAAC,eAAe,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;YACpC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,4BAA4B,CAAC;YAC9D,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,iBAAiB,EAAE,cAAc,CAAC;AACtE,QAAA,CAAC,CAAC;IACN;8GA/DS,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,EAAA,EAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,SAAA,EAAA,MAAA,EAAA,oCAAA,EAAA,UAAA,EAAA,EAAA,cAAA,EAAA,sBAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,SAAA,EA8CiB,iBAAiB,EAAA,IAAA,EAAU,UAAU,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAzE9E;;;;;;;;;;;;;;;;AAgBT,IAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,gsDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAIS,eAAe,EAAA,IAAA,EAAA,aAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAOhB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBA7BrC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,sBAAsB,EAAA,QAAA,EACtB;;;;;;;;;;;;;;;;KAgBT,EAAA,aAAA,EAEc,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,MAAM,EAAA,OAAA,EACtC,CAAC,eAAe,CAAC,EAAA,IAAA,EACpB;AACF,wBAAA,KAAK,EAAE,sBAAsB;AAC7B,wBAAA,WAAW,EAAE,MAAM;AACnB,wBAAA,sCAAsC,EAAE;AAC3C,qBAAA,EAAA,MAAA,EAAA,CAAA,gsDAAA,CAAA,EAAA;AAgDkD,SAAA,CAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,cAAA,EAAA,EAAA,EAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,IAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,aAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,SAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,WAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,QAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,UAAA,CAAA,MAAA,iBAAiB,CAAA,EAAA,EAAA,GAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;ACxF9F;;;AAGG;MAKU,sBAAsB,CAAA;8GAAtB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;+GAAtB,sBAAsB,EAAA,OAAA,EAAA,CAHrB,yBAAyB,CAAA,EAAA,OAAA,EAAA,CACzB,yBAAyB,CAAA,EAAA,CAAA,CAAA;+GAE1B,sBAAsB,EAAA,CAAA,CAAA;;2FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAJlC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,OAAO,EAAE,CAAC,yBAAyB,CAAC;oBACpC,OAAO,EAAE,CAAC,yBAAyB;AACtC,iBAAA;;;ACVD;;AAEG;;;;"}
1
+ {"version":3,"file":"fundamental-ngx-core-object-identifier.mjs","sources":["../../../../libs/core/object-identifier/object-identifier.component.ts","../../../../libs/core/object-identifier/object-identifier.module.ts","../../../../libs/core/object-identifier/fundamental-ngx-core-object-identifier.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n contentChildren,\n effect,\n input\n} from '@angular/core';\nimport { FD_LINK_COMPONENT } from '@fundamental-ngx/core/link';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\n\nlet objectIdentifierId = 0;\n\n@Component({\n selector: 'fd-object-identifier',\n template: `\n <p class=\"fd-object-identifier__title\" [class.fd-object-identifier__title--bold]=\"bold()\" [attr.id]=\"titleId()\">\n <ng-content></ng-content>\n </p>\n @if (description()) {\n <p class=\"fd-object-identifier__text\" [attr.id]=\"textId()\">\n {{ description() }}\n </p>\n }\n <span\n class=\"fd-object-identifier__sr-only\"\n [attr.id]=\"descriptionId()\"\n [attr.aria-hidden]=\"hasLinks() ? 'true' : null\"\n >\n {{ ariaLabel() || ('coreObjectIdentifier.srOnlyAriaLabel' | fdTranslate) }}\n </span>\n `,\n styleUrl: './object-identifier.component.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [FdTranslatePipe],\n host: {\n class: 'fd-object-identifier',\n '[attr.id]': 'id()',\n '[class.fd-object-identifier--medium]': 'medium()'\n }\n})\nexport class ObjectIdentifierComponent {\n /**\n * Object Identifier ID\n * If not set, a default value is provided\n */\n readonly id = input('fd-object-identifier-' + ++objectIdentifierId);\n\n /**\n * Optional description text to display below the title.\n * When provided, renders as a paragraph with the class `fd-object-identifier__text`.\n */\n readonly description = input<string>();\n\n /**\n * Accessible label for screen readers.\n * Used in the screen-reader-only span element to provide context for assistive technologies.\n */\n readonly ariaLabel = input<string>();\n\n /**\n * Whether to apply bold styling to the title.\n * When true, adds the `fd-object-identifier__title--bold` class to the title element.\n * @default false\n */\n readonly bold = input(false, { transform: booleanAttribute });\n\n /**\n * Whether to apply medium sizing to the component.\n * When true, adds the `fd-object-identifier--medium` class to the host element.\n * @default false\n */\n readonly medium = input(false, { transform: booleanAttribute });\n\n /** Computed ID for the description text element */\n protected readonly textId = computed(() => `${this.id()}-text`);\n\n /** Computed ID for the title element */\n protected readonly titleId = computed(() => `${this.id()}-title`);\n\n /** Computed ID for the screen-reader only description element */\n protected readonly descriptionId = computed(() => `${this.id()}-description`);\n\n /** Whether any link components are projected via content projection */\n protected readonly hasLinks = computed(() => this._linkComponents().length > 0);\n\n /** Query for all projected link components to apply identifier-specific styling and ARIA attributes */\n private readonly _linkComponents = contentChildren(FD_LINK_COMPONENT, { read: ElementRef });\n\n /** @hidden */\n constructor() {\n effect(() => {\n this._applyLinkAttributes();\n });\n }\n\n /** Applies identifier-specific CSS class and ARIA attributes to all link components */\n private _applyLinkAttributes(): void {\n const ariaLabelledBy = this.description() ? `${this.descriptionId()} ${this.textId()}` : this.descriptionId();\n\n this._linkComponents().forEach((link) => {\n link.nativeElement.classList.add('fd-object-identifier__link');\n link.nativeElement.setAttribute('aria-labelledby', ariaLabelledBy);\n });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { ObjectIdentifierComponent } from './object-identifier.component';\n\n/**\n * @deprecated\n * Use direct import of `ObjectIdentifierComponent`.\n */\n@NgModule({\n imports: [ObjectIdentifierComponent],\n exports: [ObjectIdentifierComponent]\n})\nexport class ObjectIdentifierModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;AAcA,IAAI,kBAAkB,GAAG,CAAC;MA+Bb,yBAAyB,CAAA;;AAiDlC,IAAA,WAAA,GAAA;AAhDA;;;AAGG;QACM,IAAA,CAAA,EAAE,GAAG,KAAK,CAAC,uBAAuB,GAAG,EAAE,kBAAkB,8CAAC;AAEnE;;;AAGG;QACM,IAAA,CAAA,WAAW,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,aAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAU;AAEtC;;;AAGG;QACM,IAAA,CAAA,SAAS,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAU;AAEpC;;;;AAIG;QACM,IAAA,CAAA,IAAI,GAAG,KAAK,CAAC,KAAK,iDAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAE7D;;;;AAIG;QACM,IAAA,CAAA,MAAM,GAAG,KAAK,CAAC,KAAK,mDAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;AAG5C,QAAA,IAAA,CAAA,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAA,EAAG,IAAI,CAAC,EAAE,EAAE,CAAA,KAAA,CAAO,kDAAC;;AAG5C,QAAA,IAAA,CAAA,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAA,EAAG,IAAI,CAAC,EAAE,EAAE,CAAA,MAAA,CAAQ,mDAAC;;AAG9C,QAAA,IAAA,CAAA,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAA,EAAG,IAAI,CAAC,EAAE,EAAE,CAAA,YAAA,CAAc,yDAAC;;AAG1D,QAAA,IAAA,CAAA,QAAQ,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC,MAAM,GAAG,CAAC,oDAAC;;QAG9D,IAAA,CAAA,eAAe,GAAG,eAAe,CAAC,iBAAiB,4DAAI,IAAI,EAAE,UAAU,EAAA,CAAG;QAIvF,MAAM,CAAC,MAAK;YACR,IAAI,CAAC,oBAAoB,EAAE;AAC/B,QAAA,CAAC,CAAC;IACN;;IAGQ,oBAAoB,GAAA;QACxB,MAAM,cAAc,GAAG,IAAI,CAAC,WAAW,EAAE,GAAG,CAAA,EAAG,IAAI,CAAC,aAAa,EAAE,CAAA,CAAA,EAAI,IAAI,CAAC,MAAM,EAAE,CAAA,CAAE,GAAG,IAAI,CAAC,aAAa,EAAE;QAE7G,IAAI,CAAC,eAAe,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;YACpC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,4BAA4B,CAAC;YAC9D,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,iBAAiB,EAAE,cAAc,CAAC;AACtE,QAAA,CAAC,CAAC;IACN;8GA/DS,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,EAAA,EAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,SAAA,EAAA,MAAA,EAAA,oCAAA,EAAA,UAAA,EAAA,EAAA,cAAA,EAAA,sBAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,SAAA,EA8CiB,iBAAiB,EAAA,IAAA,EAAU,UAAU,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAzE9E;;;;;;;;;;;;;;;;AAgBT,IAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,gsDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAIS,eAAe,EAAA,IAAA,EAAA,aAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAOhB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBA7BrC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,sBAAsB,EAAA,QAAA,EACtB;;;;;;;;;;;;;;;;KAgBT,EAAA,aAAA,EAEc,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,MAAM,EAAA,OAAA,EACtC,CAAC,eAAe,CAAC,EAAA,IAAA,EACpB;AACF,wBAAA,KAAK,EAAE,sBAAsB;AAC7B,wBAAA,WAAW,EAAE,MAAM;AACnB,wBAAA,sCAAsC,EAAE;AAC3C,qBAAA,EAAA,MAAA,EAAA,CAAA,gsDAAA,CAAA,EAAA;AAgDkD,SAAA,CAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,cAAA,EAAA,EAAA,EAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,IAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,aAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,SAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,WAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,QAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,UAAA,CAAA,MAAA,iBAAiB,CAAA,EAAA,EAAA,GAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;ACxF9F;;;AAGG;MAKU,sBAAsB,CAAA;8GAAtB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;+GAAtB,sBAAsB,EAAA,OAAA,EAAA,CAHrB,yBAAyB,CAAA,EAAA,OAAA,EAAA,CACzB,yBAAyB,CAAA,EAAA,CAAA,CAAA;+GAE1B,sBAAsB,EAAA,CAAA,CAAA;;2FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAJlC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,OAAO,EAAE,CAAC,yBAAyB,CAAC;oBACpC,OAAO,EAAE,CAAC,yBAAyB;AACtC,iBAAA;;;ACVD;;AAEG;;;;"}