@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-message-strip.mjs","sources":["../../../../libs/core/message-strip/alert/message-strip-alert.ref.ts","../../../../libs/core/message-strip/alert/default-config.ts","../../../../libs/core/message-strip/alert/tokens.ts","../../../../libs/core/message-strip/alert/message-strip-alert-container-footer/message-strip-alert-container-footer.component.ts","../../../../libs/core/message-strip/alert/message-strip-alert-container/message-strip-alert-container.component.ts","../../../../libs/core/message-strip/message-strip-icon.directive.ts","../../../../libs/core/message-strip/message-strip.enum.ts","../../../../libs/core/message-strip/message-strip.component.ts","../../../../libs/core/message-strip/message-strip.component.html","../../../../libs/core/message-strip/auto-dismiss-message-strip.directive.ts","../../../../libs/core/message-strip/alert/message-strip-alert/message-strip-alert.component.ts","../../../../libs/core/message-strip/alert/message-strip-alert/message-strip-alert.component.html","../../../../libs/core/message-strip/alert/message-strip-alert.service.ts","../../../../libs/core/message-strip/message-strip-indication-color.ts","../../../../libs/core/message-strip/message-strip.module.ts","../../../../libs/core/message-strip/fundamental-ngx-core-message-strip.ts"],"sourcesContent":["import { ComponentPortal } from '@angular/cdk/portal';\nimport { Observable } from 'rxjs';\nimport { MessageStripAlert } from './message-strip-alert/message-strip-alert.interface';\n\nexport abstract class MessageStripAlertRef {\n /** Message strip alert component portal which is rendered in the container */\n abstract portal: ComponentPortal<MessageStripAlert>;\n /**\n * Function, which dismisses the alert, it calls the user-provided function\n * after dismissing the actual alert\n */\n abstract dismiss: () => void;\n /** Observable that emits when the alert is dismissed */\n abstract onDismiss$: Observable<void>;\n}\n","import { OpenMessageStripAlertConfig } from './open-message-strip-alert.config';\n\nconst defaultConfig: Required<Omit<OpenMessageStripAlertConfig, 'content'>> = {\n position: 'top-middle',\n messageStrip: {},\n closeOnNavigation: false\n};\n\n/**\n * Applies default config to the given config\n */\nexport function applyDefaultConfig<ComponentType = unknown>(\n config: OpenMessageStripAlertConfig<ComponentType>\n): Required<OpenMessageStripAlertConfig<ComponentType>> {\n return { ...defaultConfig, ...config };\n}\n","import { InjectionToken, TemplateRef, Type } from '@angular/core';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { Observable } from 'rxjs';\nimport { MessageStripAlertPosition } from './message-strip-alert.position';\nimport { MessageStripAlertRef } from './message-strip-alert.ref';\nimport { MessageStripConfiguration } from './message-strip-configuration-type';\n\n/**\n * Injection token for getting the position of the message strip alert container.\n * Is available in any of the message strip alert components and in footer component.\n */\nexport const MessageStripAlertContainerPosition = new InjectionToken<MessageStripAlertPosition>(\n 'MessageStripAlertContainerPosition'\n);\n/**\n * Injection token for getting the list of the message strip alert refs\n * in the given container. Is available in the footer component injection\n * context.\n */\nexport const MessageStripAlertContainerAlertRefs = new InjectionToken<Observable<Nullable<MessageStripAlertRef[]>>>(\n 'MessageStripAlertContainerAlertRefs'\n);\n\nexport const MessageStripAlertComponentData = new InjectionToken<{\n content: string | TemplateRef<any> | Type<any>;\n closeOnNavigation: boolean;\n messageStripConfig: MessageStripConfiguration;\n}>('MessageStripAlertComponentData');\n","import { ComponentPortal, PortalModule } from '@angular/cdk/portal';\nimport { Component, DestroyRef, effect, inject, Injector, input, signal } from '@angular/core';\nimport { takeUntilDestroyed, toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { Observable } from 'rxjs';\nimport { MessageStripAlertRef } from '../message-strip-alert.ref';\nimport { MessageStripAlertService } from '../message-strip-alert.service';\nimport { MessageStripAlertContainerAlertRefs, MessageStripAlertContainerPosition } from '../tokens';\n\n/**\n * The component that represents the footer of the message strip alert container.\n * if user has provided the footer component through service, then this component\n * will render it inside itself.\n * Bear in mind that this component is always created, just sometimes if there is nothing to render\n * it will be empty.\n */\n@Component({\n selector: 'fd-message-strip-alert-container-footer',\n template: ` <ng-template [cdkPortalOutlet]=\"_footerComponentPortal()\"></ng-template> `,\n styles: [\n `\n :host {\n display: block;\n }\n `\n ],\n imports: [PortalModule]\n})\nexport class MessageStripAlertContainerFooterComponent {\n /** @hidden */\n readonly alertRefs = input<Nullable<MessageStripAlertRef[]>>([]);\n\n /**\n * Reference to the user provided component's portal.\n * @hidden\n */\n protected readonly _footerComponentPortal = signal<ComponentPortal<any> | undefined>(undefined);\n\n /**\n * Position of the overlay in which this component is rendered.\n */\n private readonly _position = inject(MessageStripAlertContainerPosition);\n\n /** @hidden */\n private readonly _destroyRef = inject(DestroyRef);\n\n /** @hidden */\n private readonly _messageStripAlertService = inject(MessageStripAlertService);\n\n /**\n * Observable representation of the alertRefs input for use in injected components.\n */\n private readonly _alertRefs$: Observable<Nullable<MessageStripAlertRef[]>>;\n\n /**\n * Footer component from service as signal.\n */\n private readonly _footerComponent = toSignal(this._messageStripAlertService.footerComponents$, {\n initialValue: {}\n });\n\n /** @hidden */\n constructor() {\n // Convert alertRefs signal to observable in injection context\n this._alertRefs$ = toObservable(this.alertRefs).pipe(takeUntilDestroyed(this._destroyRef));\n\n effect(() => {\n const footerComponent = this._footerComponent()[this._position];\n\n if (footerComponent) {\n this._footerComponentPortal.set(\n new ComponentPortal(\n footerComponent,\n null,\n Injector.create({\n providers: [\n {\n provide: MessageStripAlertContainerAlertRefs,\n useValue: this._alertRefs$\n }\n ]\n })\n )\n );\n } else {\n this._footerComponentPortal.set(undefined);\n }\n });\n }\n}\n","import { CdkPortalOutlet, ComponentPortal, PortalModule } from '@angular/cdk/portal';\nimport { Component, ComponentRef, computed, signal, viewChildren, ViewEncapsulation } from '@angular/core';\nimport { ScrollbarDirective } from '@fundamental-ngx/core/scrollbar';\nimport { MessageStripAlertContainerFooterComponent } from '../message-strip-alert-container-footer/message-strip-alert-container-footer.component';\nimport { MessageStripAlertComponent } from '../message-strip-alert/message-strip-alert.component';\n\nimport { MessageStripAlertRef } from '../message-strip-alert.ref';\nimport { MessageStripAlert } from '../message-strip-alert/message-strip-alert.interface';\n\n/**\n * This will be rendered in the overlay. It is responsible for rendering the alerts and the footer.\n */\n@Component({\n selector: 'fd-message-strip-alert-container',\n template: `\n <div fdScrollbar>\n @for (portal of attachedElements(); track portal) {\n <ng-template [cdkPortalOutlet]=\"portal\"></ng-template>\n }\n </div>\n <fd-message-strip-alert-container-footer [alertRefs]=\"_alertRefs()\"></fd-message-strip-alert-container-footer>\n `,\n styleUrl: './message-strip-alert-container.component.scss',\n encapsulation: ViewEncapsulation.None,\n imports: [PortalModule, ScrollbarDirective, MessageStripAlertContainerFooterComponent]\n})\nexport class MessageStripAlertContainerComponent {\n /**\n * The list of the elements that are attached to the container.\n */\n readonly attachedElements = signal<ComponentPortal<MessageStripAlert>[]>([]);\n\n /**\n * List of the rendered message strip alerts. It is used in the footer and is injected into the\n * user-provided footer component portal. This way, user has full control over the container alerts.\n * @hidden\n */\n protected readonly _alertRefs = computed(() =>\n this._portalOutlets()\n .map((outlet) => {\n const componentRef = outlet.attachedRef as ComponentRef<MessageStripAlertComponent> | null;\n return componentRef?.instance?.alertRef;\n })\n .filter((ref): ref is MessageStripAlertRef => !!ref)\n );\n\n /** @hidden */\n private readonly _portalOutlets = viewChildren(CdkPortalOutlet);\n}\n","import { Directive, TemplateRef, inject } from '@angular/core';\n\n@Directive({\n selector: '[fdMessageStripIcon]'\n})\nexport class MessageStripIconDirective {\n readonly templateRef = inject(TemplateRef);\n}\n","export const enum MessageStripTypeEnum {\n INFORMATION = 'information',\n WARNING = 'warning',\n SUCCESS = 'success',\n ERROR = 'error'\n}\n\nexport const enum MessageStringIconEnum {\n ALERT = 'alert',\n SUCCESS = 'sys-enter-2',\n ERROR = 'error',\n INFORMATION = 'information'\n}\n\nexport const enum MessageStripAnnouncement {\n INFORMATION = 'coreMessageStrip.announcementInfo',\n WARNING = 'coreMessageStrip.announcementWarning',\n SUCCESS = 'coreMessageStrip.announcementSuccess',\n ERROR = 'coreMessageStrip.announcementError'\n}\n\nexport type MessageStripAnnouncementType = `${MessageStripAnnouncement}`;\n\nexport const MESSAGE_STRIP_CLOSABLE = 'coreMessageStrip.closable';\n\nexport const MESSAGE_STRIP_DEFAULT_DISMISS_BUTTON_TEXT = 'coreMessageStrip.dismissLabel';\n\nexport const DEFAULT_HIDDEN_TEXT = 'coreMessageStrip.defaultHiddenText';\n\nexport const DEFAULT_DISMISS_BUTTON_TEXT = 'coreMessageStrip.defaultDismissButtonText';\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport { AsyncPipe, NgTemplateOutlet } from '@angular/common';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n DestroyRef,\n ElementRef,\n inject,\n input,\n output,\n ViewEncapsulation\n} from '@angular/core';\nimport { ButtonComponent } from '@fundamental-ngx/core/button';\nimport { ContentDensityDirective } from '@fundamental-ngx/core/content-density';\nimport { IconComponent } from '@fundamental-ngx/core/icon';\nimport { FD_LANGUAGE_SIGNAL, TranslationResolver } from '@fundamental-ngx/i18n';\nimport { MessageStripIconDirective } from './message-strip-icon.directive';\nimport { MessageStripIndicationColor } from './message-strip-indication-color';\nimport { MessageStripType } from './message-strip-type';\nimport {\n DEFAULT_DISMISS_BUTTON_TEXT,\n DEFAULT_HIDDEN_TEXT,\n MESSAGE_STRIP_CLOSABLE,\n MESSAGE_STRIP_DEFAULT_DISMISS_BUTTON_TEXT,\n MessageStringIconEnum,\n MessageStripAnnouncement,\n MessageStripAnnouncementType,\n MessageStripTypeEnum\n} from './message-strip.enum';\n\nlet messageStripUniqueId = 0;\n\n/**\n * The component that represents a message-strip. It can only be used inline.\n */\n@Component({\n selector: 'fd-message-strip',\n templateUrl: './message-strip.component.html',\n styleUrl: './message-strip.component.scss',\n host: {\n '[attr.aria-label]': 'ariaLabel()',\n '[attr.aria-labelledby]': 'hostAriaLabelledBy()',\n '[attr.id]': 'id()',\n '[style.width]': 'width()',\n '[style.min-width]': 'minWidth()',\n '[style.margin-bottom]': 'marginBottom()',\n '[class]': 'cssClass()',\n role: 'note'\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [ButtonComponent, ContentDensityDirective, NgTemplateOutlet, IconComponent, AsyncPipe]\n})\nexport class MessageStripComponent {\n /** Whether the message strip is dismissible. */\n readonly dismissible = input<boolean, BooleanInput>(true, { transform: booleanAttribute });\n\n /** Id of the element that labels the message-strip. */\n readonly ariaLabelledBy = input<string | undefined | null>(null);\n\n /** Title for dismiss button */\n readonly dismissBtnTitle = input('');\n\n /** The default message strip does not have an icon.\n * The other types (warning, success, information and error) have icons by default.\n * To remove the icon set the property to true.\n */\n readonly noIcon = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /** The type of the message strip.\n * Can be one of *warning*, *success*, *information*, *error* or null.\n */\n readonly type = input<MessageStripType>();\n\n /** Id for the message-strip component. If omitted, a unique one is generated. */\n readonly id = input('', { transform: (value: string) => value || `fd-message-strip-${++messageStripUniqueId}` });\n\n /** Aria label for the message-strip component element. */\n readonly ariaLabel = input<string | undefined | null>(null);\n\n /** Width of the message-strip. */\n readonly width = input('');\n\n /** Minimum width of the message-strip. */\n readonly minWidth = input('');\n\n /** Margin bottom of the message-strip. */\n readonly marginBottom = input('');\n\n /** indication color of the message-strip. */\n readonly indicationColor = input<MessageStripIndicationColor>();\n\n /** Event fired when the message-strip is dismissed. */\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n readonly onDismiss = output<void>();\n\n /** Custom icon component */\n readonly icon = contentChild(MessageStripIconDirective);\n\n /** @hidden */\n readonly elementRef = inject(ElementRef);\n\n /**\n * Computed aria-labelledby attribute.\n * @hidden\n */\n protected readonly hostAriaLabelledBy = computed(() => {\n const labelledBy = this.ariaLabelledBy();\n\n if (labelledBy) {\n return labelledBy;\n }\n\n const currentId = this.id();\n\n return `${currentId}-hidden-text ${currentId}-content-text`;\n });\n\n /**\n * Computed CSS class string for the component.\n * @hidden\n */\n protected readonly cssClass = computed(() => {\n const classes = ['fd-message-strip'];\n const currentType = this.type();\n const currentIndicationColor = this.indicationColor();\n\n if (currentType) {\n classes.push(`fd-message-strip--${currentType}`);\n }\n if (this.dismissible()) {\n classes.push('fd-message-strip--dismissible');\n }\n if (this.noIcon()) {\n classes.push('fd-message-strip--no-icon');\n }\n if (currentIndicationColor) {\n classes.push(`fd-message-strip--indication-color-${currentIndicationColor}`);\n }\n\n return classes.join(' ');\n });\n\n /**\n * Whether icon container should be shown.\n * @hidden\n */\n protected readonly shouldShowIcon = computed(() => {\n if (this.noIcon()) {\n return false;\n }\n return !!this.icon() || !!this.type();\n });\n\n /**\n * Type-specific icon name.\n * @hidden\n */\n protected readonly typeSpecificIconName = computed(() => {\n const currentType = this.type();\n switch (currentType) {\n case MessageStripTypeEnum.WARNING:\n return MessageStringIconEnum.ALERT;\n case MessageStripTypeEnum.SUCCESS:\n return MessageStringIconEnum.SUCCESS;\n case MessageStripTypeEnum.ERROR:\n return MessageStringIconEnum.ERROR;\n case MessageStripTypeEnum.INFORMATION:\n return MessageStringIconEnum.INFORMATION;\n default:\n return '';\n }\n });\n\n /** message strip information read by screen readers */\n protected messageStripHiddenText = computed(() => {\n const currentType = this.type();\n const lang = this._langSignal();\n\n if (!currentType) {\n return this._translationResolver.resolve(lang, DEFAULT_HIDDEN_TEXT);\n }\n\n const announcementMap: Record<MessageStripTypeEnum, MessageStripAnnouncementType> = {\n [MessageStripTypeEnum.WARNING]: MessageStripAnnouncement.WARNING,\n [MessageStripTypeEnum.SUCCESS]: MessageStripAnnouncement.SUCCESS,\n [MessageStripTypeEnum.ERROR]: MessageStripAnnouncement.ERROR,\n [MessageStripTypeEnum.INFORMATION]: MessageStripAnnouncement.INFORMATION\n };\n\n const announcementType = announcementMap[currentType];\n if (!announcementType) {\n return this._translationResolver.resolve(lang, DEFAULT_HIDDEN_TEXT);\n }\n\n const announcement = this._translationResolver.resolve(lang, announcementType);\n const closable = this.dismissible() ? this._translationResolver.resolve(lang, MESSAGE_STRIP_CLOSABLE) : '';\n return `${announcement} ${closable}`;\n });\n\n /** default dismiss button text read by screen readers */\n protected defaultDismissButtonText = computed(() => {\n const currentType = this.type();\n const lang = this._langSignal();\n\n if (!currentType) {\n return this._translationResolver.resolve(lang, DEFAULT_DISMISS_BUTTON_TEXT);\n }\n\n const announcementMap: Record<MessageStripTypeEnum, MessageStripAnnouncementType> = {\n [MessageStripTypeEnum.WARNING]: MessageStripAnnouncement.WARNING,\n [MessageStripTypeEnum.SUCCESS]: MessageStripAnnouncement.SUCCESS,\n [MessageStripTypeEnum.ERROR]: MessageStripAnnouncement.ERROR,\n [MessageStripTypeEnum.INFORMATION]: MessageStripAnnouncement.INFORMATION\n };\n\n const announcementType = announcementMap[currentType];\n if (!announcementType) {\n return this._translationResolver.resolve(lang, DEFAULT_DISMISS_BUTTON_TEXT);\n }\n\n const announcement = this._translationResolver.resolve(lang, announcementType);\n const closeButtonText = this._translationResolver.resolve(lang, MESSAGE_STRIP_DEFAULT_DISMISS_BUTTON_TEXT);\n return `${announcement} ${closeButtonText}`;\n });\n\n /** @hidden */\n private readonly _destroyRef = inject(DestroyRef);\n\n /** @hidden */\n private readonly _langSignal = inject(FD_LANGUAGE_SIGNAL);\n\n /** @hidden */\n private readonly _translationResolver = inject(TranslationResolver);\n\n /**\n * Dismisses the message-strip.\n */\n dismiss(): void {\n this.elementRef.nativeElement.classList.add('fd-has-display-none');\n this.elementRef.nativeElement.classList.remove('fd-has-display-block');\n this.onDismiss.emit();\n }\n}\n","@if (shouldShowIcon()) {\n <div class=\"fd-message-strip__icon-container\" aria-hidden=\"true\">\n @if (icon()) {\n <ng-template [ngTemplateOutlet]=\"icon()!.templateRef\"></ng-template>\n } @else {\n <fd-icon [glyph]=\"typeSpecificIconName()\" role=\"presentation\" aria-hidden=\"true\"></fd-icon>\n <span class=\"fd-message-strip__sr-only\" id=\"{{ id() }}-hidden-text\">{{ messageStripHiddenText() }}</span>\n }\n </div>\n}\n<p class=\"fd-message-strip__text\" id=\"{{ id() }}-content-text\">\n <ng-content></ng-content>\n</p>\n@if (dismissible()) {\n <button\n class=\"fd-message-strip__close\"\n fd-button\n glyph=\"decline\"\n fdType=\"transparent\"\n fdCompact\n (click)=\"dismiss()\"\n [attr.aria-controls]=\"id()\"\n [ariaLabel]=\"dismissBtnTitle() || defaultDismissButtonText()\"\n [attr.title]=\"dismissBtnTitle() || defaultDismissButtonText()\"\n ></button>\n}\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport { booleanAttribute, DestroyRef, Directive, ElementRef, inject, input, isDevMode, signal } from '@angular/core';\nimport { outputToObservable } from '@angular/core/rxjs-interop';\nimport { destroyObservable } from '@fundamental-ngx/cdk/utils';\nimport { fromEvent, map, merge, Observable, of, startWith, takeUntil } from 'rxjs';\nimport { switchMap } from 'rxjs/operators';\nimport { MessageStripComponent } from './message-strip.component';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'fd-message-strip[mousePersist], fd-message-strip[duration], fd-message-strip[autoDismiss]',\n exportAs: 'fdAutoDismissMessageStrip',\n standalone: true,\n host: {\n '[style.display]': '!_opened() ? \"none\" : null'\n }\n})\nexport class AutoDismissMessageStripDirective {\n /** Whether the message strip is dismissible */\n readonly dismissible = input<boolean, BooleanInput>(true, { transform: booleanAttribute });\n\n /** Whether the alert should be automatically dismissed. */\n readonly autoDismiss = input<boolean, BooleanInput>(true, { transform: booleanAttribute });\n\n /** Duration of time *in milliseconds* that the alert will be visible. Set to -1 for indefinite. */\n readonly duration = input(10000);\n\n /** Whether the alert should stay open if the mouse is hovering over it. */\n readonly mousePersist = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /**\n * Whether the message strip is currently opened.\n * @hidden\n */\n protected readonly _opened = signal(false);\n\n /** @hidden */\n private readonly _messageStripComponent = inject(MessageStripComponent, { optional: false, host: true });\n\n /** @hidden */\n private readonly _onDismiss$ = outputToObservable(this._messageStripComponent.onDismiss);\n\n /** @hidden */\n private readonly _elementRef = inject(ElementRef);\n\n /** @hidden */\n private readonly _destroyRef = inject(DestroyRef);\n\n /** @hidden */\n private _autoDismissTimeout?: ReturnType<typeof setTimeout>;\n\n /** @hidden */\n private _mouseIn$?: Observable<boolean>;\n\n /**\n * Gets observable tracking mouse hover state.\n * Lazily initialized to ensure ElementRef is available.\n * @hidden\n */\n private get _mouseIn(): Observable<boolean> {\n if (!this._mouseIn$) {\n this._mouseIn$ = merge(\n fromEvent(this._elementRef.nativeElement, 'mouseenter').pipe(map(() => true)),\n fromEvent(this._elementRef.nativeElement, 'mouseleave').pipe(map(() => false))\n ).pipe(startWith(false));\n }\n return this._mouseIn$;\n }\n\n /**\n * Opens the message strip and starts auto-dismiss timer if configured.\n * This method is part of the public API via exportAs.\n */\n open(): void {\n this._opened.set(true);\n this._elementRef.nativeElement.classList.remove('fd-has-display-block');\n this._elementRef.nativeElement.classList.remove('fd-has-display-none');\n this._stopAutoDismiss();\n if (this.autoDismiss() && !this.dismissible() && isDevMode()) {\n console.warn(\n 'Auto dismiss is enabled but the message strip is not dismissible. Please set the dismissible input to true.'\n );\n }\n if (this.autoDismiss() && this.dismissible()) {\n this._startAutoDismiss();\n }\n }\n\n /** @hidden */\n private _stopAutoDismiss(): void {\n if (this._autoDismissTimeout) {\n clearTimeout(this._autoDismissTimeout);\n this._autoDismissTimeout = undefined;\n }\n }\n\n /** @hidden */\n private _startAutoDismiss(): void {\n const startAutoDismissTimer$ = new Observable((res) => {\n this._autoDismissTimeout = setTimeout(() => {\n this._dismiss();\n res.next(null);\n }, this.duration());\n return () => this._stopAutoDismiss();\n });\n if (this.duration() > -1) {\n const source$ = this.mousePersist()\n ? this._mouseIn.pipe(\n switchMap((mouseIn) => {\n if (mouseIn) {\n return of(null);\n }\n return startAutoDismissTimer$;\n })\n )\n : startAutoDismissTimer$;\n source$.pipe(takeUntil(merge(destroyObservable(this._destroyRef), this._onDismiss$))).subscribe();\n }\n }\n\n /** @hidden */\n private _dismiss(): void {\n this._messageStripComponent.dismiss();\n }\n}\n","import { ComponentPortal, DomPortal, Portal, PortalModule, TemplatePortal } from '@angular/cdk/portal';\nimport {\n afterNextRender,\n Component,\n DestroyRef,\n inject,\n Renderer2,\n TemplateRef,\n Type,\n viewChild,\n ViewContainerRef\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { NavigationStart, Router } from '@angular/router';\nimport { filter } from 'rxjs';\nimport { AutoDismissMessageStripDirective } from '../../auto-dismiss-message-strip.directive';\nimport { MessageStripComponent } from '../../message-strip.component';\nimport { MessageStripAlertRef } from '../message-strip-alert.ref';\nimport { MessageStripConfiguration } from '../message-strip-configuration-type';\nimport { MessageStripAlertComponentData } from '../tokens';\nimport { MessageStripAlert } from './message-strip-alert.interface';\n\nexport type MessageStripAlertPortalType<ComponentType> =\n | DomPortal\n | TemplatePortal<{\n $implicit: MessageStripAlertRef;\n }>\n | ComponentPortal<ComponentType>;\n\n/**\n * The wrapper component, which is wrapping the Message Strip and passes\n * configuration to it, also generates the content which will appear in it.\n */\n@Component({\n templateUrl: `./message-strip-alert.component.html`,\n imports: [MessageStripComponent, PortalModule, AutoDismissMessageStripDirective]\n})\nexport class MessageStripAlertComponent<ComponentType = unknown> implements MessageStripAlert {\n /** @hidden */\n readonly autoDismissMessageStripDirective = viewChild.required(AutoDismissMessageStripDirective);\n\n /** User provided data. Full of it */\n readonly data = inject(MessageStripAlertComponentData);\n\n /** Configuration for the message strip appearance */\n readonly messageStripConfig: MessageStripConfiguration;\n\n /** Portal, which is responsible for correctly rendering user provided content. It can be any type of the portal */\n readonly contentPortal: Portal<unknown>;\n\n /**\n * Reference to the message strip alert, which is used to close it from the outside, or access the data and/or the component instance\n * */\n readonly alertRef = inject(MessageStripAlertRef);\n\n /** @hidden */\n private readonly _viewContainerRef = inject(ViewContainerRef);\n\n /** @hidden */\n private readonly _renderer2 = inject(Renderer2);\n\n /** @hidden */\n private readonly _destroyRef = inject(DestroyRef);\n\n /**\n * Timeout, which is responsible for auto-dismissing the message strip.\n * It should be properly cleared on component destroy.\n */\n private _autoDismissTimeout?: ReturnType<typeof setTimeout>;\n\n /** @hidden */\n constructor() {\n this.messageStripConfig = this.data.messageStripConfig;\n this.contentPortal = this._getPortal(this.data.content);\n\n if (this.data.closeOnNavigation) {\n inject(Router, { optional: true })\n ?.events.pipe(\n filter((event) => event instanceof NavigationStart),\n takeUntilDestroyed(this._destroyRef)\n )\n .subscribe(() => this.onDismissHandler());\n }\n\n // Open message strip after view initialization\n afterNextRender(() => {\n this.autoDismissMessageStripDirective().open();\n });\n\n // Cleanup timeout on destroy\n this._destroyRef.onDestroy(() => {\n if (this._autoDismissTimeout) {\n clearTimeout(this._autoDismissTimeout);\n }\n });\n }\n\n /**\n * Handler for the dismiss button click.\n * */\n onDismissHandler(): void {\n this.messageStripConfig.onDismiss();\n }\n\n /**\n * Method, which is responsible for generating the portal, which will be rendered inside the message strip.\n * It can be any type of the portal, depending on the user provided content.\n * */\n private _getPortal(\n content:\n | string\n | TemplateRef<{\n $implicit: MessageStripAlertRef;\n }>\n | Type<ComponentType>\n ): MessageStripAlertPortalType<ComponentType> {\n if (typeof content === 'string') {\n const textEl = this._renderer2.createText(content);\n this._renderer2.appendChild(this._viewContainerRef.element.nativeElement, textEl);\n return new DomPortal(textEl);\n }\n if (content instanceof TemplateRef) {\n return new TemplatePortal(content, this._viewContainerRef, { $implicit: this.alertRef });\n }\n return new ComponentPortal(content);\n }\n}\n","<fd-message-strip\n [class]=\"messageStripConfig.class\"\n [dismissible]=\"messageStripConfig.dismissible\"\n [autoDismiss]=\"messageStripConfig.duration > 0\"\n [mousePersist]=\"messageStripConfig.mousePersist\"\n [duration]=\"messageStripConfig.duration\"\n [noIcon]=\"messageStripConfig.noIcon\"\n [type]=\"messageStripConfig.type\"\n [id]=\"messageStripConfig.id\"\n [ariaLabelledBy]=\"messageStripConfig.ariaLabelledBy\"\n [ariaLabel]=\"messageStripConfig.ariaLabel\"\n (onDismiss)=\"onDismissHandler()\"\n>\n <ng-template [cdkPortalOutlet]=\"contentPortal\"></ng-template>\n</fd-message-strip>\n","import { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { ComponentRef, Injectable, Injector, Type, inject, signal } from '@angular/core';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport { ResponsiveBreakpoints, ViewportSizeObservable } from '@fundamental-ngx/cdk/utils';\nimport { patchLanguage } from '@fundamental-ngx/i18n';\nimport { Observable, Subject, combineLatest, map, tap } from 'rxjs';\nimport { applyDefaultConfig } from './default-config';\nimport { MessageStripAlertContainerComponent } from './message-strip-alert-container/message-strip-alert-container.component';\nimport { MessageStripAlertPosition } from './message-strip-alert.position';\nimport { MessageStripAlertRef } from './message-strip-alert.ref';\nimport { MessageStripAlertComponent } from './message-strip-alert/message-strip-alert.component';\nimport { MessageStripAlert } from './message-strip-alert/message-strip-alert.interface';\nimport { OpenMessageStripAlertConfig } from './open-message-strip-alert.config';\nimport { MessageStripAlertComponentData, MessageStripAlertContainerPosition } from './tokens';\n\n/**\n * Service that is responsible for opening and closing message strip alerts.\n * This should be only created once in entire application.\n * Service is responsible for creating and managing the overlays for the\n * message strip alerts. This also manages the footer components for any\n * given position.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class MessageStripAlertService {\n /** @hidden */\n footerComponents$: Observable<Partial<Record<MessageStripAlertPosition, Type<any>>>>;\n\n /** @hidden */\n private readonly _injector = inject(Injector);\n\n /** @hidden */\n private readonly _overlay = inject(Overlay);\n\n /** @hidden */\n private readonly _viewportSize$ = inject(ViewportSizeObservable);\n\n /** @hidden */\n private readonly _messageStripAlertService = inject(MessageStripAlertService, { optional: true, skipSelf: true });\n\n /**\n * Signal holding all message alerts\n * @hidden\n */\n private readonly _messageAlerts = signal<\n Array<\n Required<OpenMessageStripAlertConfig> & {\n portal: ComponentPortal<MessageStripAlert>;\n }\n >\n >([]);\n\n /** @hidden */\n private _overlayRefs: Partial<\n Record<\n MessageStripAlertPosition,\n {\n ref: OverlayRef;\n containerRef: ComponentRef<MessageStripAlertContainerComponent>;\n }\n >\n > = {};\n\n /**\n * Signal holding footer components\n * @hidden\n */\n private readonly _messageStripAlertContainerFooters = signal<Partial<Record<MessageStripAlertPosition, Type<any>>>>(\n {}\n );\n /** @hidden */\n constructor() {\n if (this._messageStripAlertService) {\n throw new Error('MessageStripAlertService is already provided');\n }\n this.footerComponents$ = toObservable(this._messageStripAlertContainerFooters);\n this._listenToItemsChanges();\n }\n\n /**\n * Set the footer component for a given position.\n * @param position - The position where the footer should be displayed\n * @param component - The component type to be rendered as footer\n */\n setFooterComponent(position: MessageStripAlertPosition, component: Type<any>): void {\n this._messageStripAlertContainerFooters.update((footers) => ({\n ...footers,\n [position]: component\n }));\n }\n\n /**\n * Open a message strip alert with given configuration.\n * @param c - Configuration for the message strip alert\n * @returns Reference to the opened alert for programmatic control\n */\n open<ComponentType = unknown>(c: OpenMessageStripAlertConfig<ComponentType>): MessageStripAlertRef {\n const config = applyDefaultConfig<ComponentType>(c);\n const alertRef = this._getMessageStripAlertRef(config);\n this._messageAlerts.update((alerts) => [{ ...config, portal: alertRef.portal }, ...alerts]);\n return alertRef;\n }\n\n /** @hidden */\n private _getMessageStripAlertRef<ComponentType = unknown>(\n config: Required<OpenMessageStripAlertConfig<ComponentType>>\n ): MessageStripAlertRef {\n const onDismiss$ = new Subject<void>();\n const alertRef = {\n portal: new ComponentPortal(\n MessageStripAlertComponent<ComponentType>,\n null,\n Injector.create({\n providers: [\n {\n provide: MessageStripAlertComponentData,\n useValue: {\n content: config.content,\n closeOnNavigation: config.closeOnNavigation,\n messageStripConfig: {\n ...config.messageStrip,\n onDismiss: () => {\n this._messageAlerts.update((alerts) =>\n alerts.filter((item) => item.portal !== alertRef.portal)\n );\n config.messageStrip &&\n config.messageStrip.onDismiss &&\n config.messageStrip.onDismiss();\n onDismiss$.next();\n onDismiss$.complete();\n }\n }\n }\n },\n {\n provide: MessageStripAlertRef,\n useFactory: () => alertRef\n },\n patchLanguage((lang) => ({\n coreMessageStrip: {\n dismissLabel: config.messageStrip.dismissLabel || lang.coreMessageStrip.dismissLabel\n }\n }))\n ],\n parent: this._injector\n })\n ),\n dismiss: () => {\n this._messageAlerts.update((alerts) => alerts.filter((item) => item.portal !== alertRef.portal));\n config.messageStrip && config.messageStrip.onDismiss && config.messageStrip.onDismiss();\n onDismiss$.next();\n onDismiss$.complete();\n },\n onDismiss$: onDismiss$.asObservable()\n };\n return alertRef;\n }\n\n /** @hidden */\n private _listenToItemsChanges(): void {\n combineLatest([this._viewportSize$, toObservable(this._messageAlerts)])\n .pipe(\n map(\n ([viewportSize, messageAlerts]): Record<\n MessageStripAlertPosition,\n Array<ComponentPortal<MessageStripAlert>>\n > => {\n if (viewportSize < ResponsiveBreakpoints.M) {\n return messageAlerts.reduce(\n (acc, next) => {\n const position = next.position?.startsWith('top') ? 'top-middle' : 'bottom-middle';\n acc[position] = [...(acc[position] || []), next.portal];\n return acc;\n },\n {} as Record<MessageStripAlertPosition, Array<ComponentPortal<MessageStripAlert>>>\n );\n }\n return messageAlerts.reduce(\n (acc, next) => {\n acc[next.position] = [...(acc[next.position] || []), next.portal];\n return acc;\n },\n {} as Record<MessageStripAlertPosition, Array<ComponentPortal<MessageStripAlert>>>\n );\n }\n ),\n tap(\n (\n messageAlertsByPosition: Partial<\n Record<MessageStripAlertPosition, Array<ComponentPortal<MessageStripAlert>>>\n >\n ) => {\n let topSectionIsOpened = false;\n let bottomSectionIsOpened = false;\n (\n Object.entries(messageAlertsByPosition) as Array<\n [MessageStripAlertPosition, ComponentPortal<MessageStripAlert>[]]\n >\n ).forEach(([position, portals]) => {\n topSectionIsOpened = topSectionIsOpened || position.startsWith('top');\n bottomSectionIsOpened = bottomSectionIsOpened || position.startsWith('bottom');\n const { containerRef } = this._getOverlayRef(position);\n containerRef.instance.attachedElements.set(portals);\n });\n this._syncExistingOverlays(messageAlertsByPosition, bottomSectionIsOpened, topSectionIsOpened);\n }\n )\n )\n .subscribe();\n }\n\n /**\n * Synchronizes existing overlay states based on current message alerts.\n * @hidden\n */\n private _syncExistingOverlays(\n messageAlertsByPosition: Partial<Record<MessageStripAlertPosition, ComponentPortal<MessageStripAlert>[]>>,\n bottomSectionIsOpened: boolean,\n topSectionIsOpened: boolean\n ): void {\n (Object.keys(this._overlayRefs) as MessageStripAlertPosition[]).forEach((position) => {\n const overlayRef = this._overlayRefs[position];\n if (!overlayRef) {\n return;\n }\n if (!messageAlertsByPosition[position]) {\n overlayRef.ref.dispose();\n delete this._overlayRefs[position];\n } else {\n const ref = overlayRef.ref;\n if (position.startsWith('top')) {\n if (bottomSectionIsOpened) {\n ref.overlayElement.classList.add('fd-message-strip-alert-overlay--bottom-opened');\n } else {\n ref.overlayElement.classList.remove('fd-message-strip-alert-overlay--bottom-opened');\n }\n }\n if (position.startsWith('bottom')) {\n if (topSectionIsOpened) {\n ref.overlayElement.classList.add('fd-message-strip-alert-overlay--top-opened');\n } else {\n ref.overlayElement.classList.remove('fd-message-strip-alert-overlay--top-opened');\n }\n }\n }\n });\n }\n\n /**\n * Gets or creates an overlay reference for the specified position.\n * @hidden\n */\n private _getOverlayRef(position: MessageStripAlertPosition): {\n ref: OverlayRef;\n containerRef: ComponentRef<MessageStripAlertContainerComponent>;\n } {\n if (!this._overlayRefs[position]) {\n const [verticalPosition, horizontalPosition] = position.split('-');\n const overlayRef = this._createOverlay(verticalPosition, horizontalPosition);\n const containerRef = overlayRef.attach(\n new ComponentPortal(\n MessageStripAlertContainerComponent,\n null,\n Injector.create({\n parent: this._injector,\n providers: [\n {\n provide: MessageStripAlertContainerPosition,\n useValue: position\n }\n ]\n })\n )\n );\n this._overlayRefs[position] = { ref: overlayRef, containerRef };\n }\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return this._overlayRefs[position]!;\n }\n\n /**\n * Creates an overlay for message strip alerts at the specified position.\n * @hidden\n */\n private _createOverlay(verticalPosition: string, horizontalPosition: string): OverlayRef {\n return this._overlay.create({\n panelClass: [\n 'fd-message-strip-alert-overlay',\n `fd-message-strip-alert-overlay--${verticalPosition}`,\n `fd-message-strip-alert-overlay--${horizontalPosition}`\n ],\n hasBackdrop: false\n });\n }\n}\n","const messageStripIndicationColors = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10'] as const;\n\nexport type MessageStripIndicationColor =\n | `${(typeof messageStripIndicationColors)[number]}`\n | `${(typeof messageStripIndicationColors)[number]}b`;\n\nexport const _messageStripIndicationColors = messageStripIndicationColors.reduce(\n (acc: MessageStripIndicationColor[], item) => {\n acc.push(item);\n acc.push(`${item}b`);\n return acc;\n },\n []\n) as MessageStripIndicationColor[];\n","import { NgModule } from '@angular/core';\n\nimport { AutoDismissMessageStripDirective } from './auto-dismiss-message-strip.directive';\nimport { MessageStripIconDirective } from './message-strip-icon.directive';\nimport { MessageStripComponent } from './message-strip.component';\n\n/**\n * @deprecated\n * Use direct imports of components and directives.\n */\n@NgModule({\n imports: [MessageStripComponent, AutoDismissMessageStripDirective, MessageStripIconDirective],\n exports: [MessageStripComponent, AutoDismissMessageStripDirective, MessageStripIconDirective]\n})\nexport class MessageStripModule {}\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-message-strip.mjs","sources":["../../../../libs/core/message-strip/alert/message-strip-alert.ref.ts","../../../../libs/core/message-strip/alert/default-config.ts","../../../../libs/core/message-strip/alert/tokens.ts","../../../../libs/core/message-strip/alert/message-strip-alert-container-footer/message-strip-alert-container-footer.component.ts","../../../../libs/core/message-strip/alert/message-strip-alert-container/message-strip-alert-container.component.ts","../../../../libs/core/message-strip/message-strip-icon.directive.ts","../../../../libs/core/message-strip/message-strip.enum.ts","../../../../libs/core/message-strip/message-strip.component.ts","../../../../libs/core/message-strip/message-strip.component.html","../../../../libs/core/message-strip/auto-dismiss-message-strip.directive.ts","../../../../libs/core/message-strip/alert/message-strip-alert/message-strip-alert.component.ts","../../../../libs/core/message-strip/alert/message-strip-alert/message-strip-alert.component.html","../../../../libs/core/message-strip/alert/message-strip-alert.service.ts","../../../../libs/core/message-strip/message-strip-indication-color.ts","../../../../libs/core/message-strip/message-strip.module.ts","../../../../libs/core/message-strip/fundamental-ngx-core-message-strip.ts"],"sourcesContent":["import { ComponentPortal } from '@angular/cdk/portal';\nimport { Observable } from 'rxjs';\nimport { MessageStripAlert } from './message-strip-alert/message-strip-alert.interface';\n\nexport abstract class MessageStripAlertRef {\n /** Message strip alert component portal which is rendered in the container */\n abstract portal: ComponentPortal<MessageStripAlert>;\n /**\n * Function, which dismisses the alert, it calls the user-provided function\n * after dismissing the actual alert\n */\n abstract dismiss: () => void;\n /** Observable that emits when the alert is dismissed */\n abstract onDismiss$: Observable<void>;\n}\n","import { OpenMessageStripAlertConfig } from './open-message-strip-alert.config';\n\nconst defaultConfig: Required<Omit<OpenMessageStripAlertConfig, 'content'>> = {\n position: 'top-middle',\n messageStrip: {},\n closeOnNavigation: false\n};\n\n/**\n * Applies default config to the given config\n */\nexport function applyDefaultConfig<ComponentType = unknown>(\n config: OpenMessageStripAlertConfig<ComponentType>\n): Required<OpenMessageStripAlertConfig<ComponentType>> {\n return { ...defaultConfig, ...config };\n}\n","import { InjectionToken, TemplateRef, Type } from '@angular/core';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { Observable } from 'rxjs';\nimport { MessageStripAlertPosition } from './message-strip-alert.position';\nimport { MessageStripAlertRef } from './message-strip-alert.ref';\nimport { MessageStripConfiguration } from './message-strip-configuration-type';\n\n/**\n * Injection token for getting the position of the message strip alert container.\n * Is available in any of the message strip alert components and in footer component.\n */\nexport const MessageStripAlertContainerPosition = new InjectionToken<MessageStripAlertPosition>(\n 'MessageStripAlertContainerPosition'\n);\n/**\n * Injection token for getting the list of the message strip alert refs\n * in the given container. Is available in the footer component injection\n * context.\n */\nexport const MessageStripAlertContainerAlertRefs = new InjectionToken<Observable<Nullable<MessageStripAlertRef[]>>>(\n 'MessageStripAlertContainerAlertRefs'\n);\n\nexport const MessageStripAlertComponentData = new InjectionToken<{\n content: string | TemplateRef<any> | Type<any>;\n closeOnNavigation: boolean;\n messageStripConfig: MessageStripConfiguration;\n}>('MessageStripAlertComponentData');\n","import { ComponentPortal, PortalModule } from '@angular/cdk/portal';\nimport { Component, DestroyRef, effect, inject, Injector, input, signal } from '@angular/core';\nimport { takeUntilDestroyed, toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { Observable } from 'rxjs';\nimport { MessageStripAlertRef } from '../message-strip-alert.ref';\nimport { MessageStripAlertService } from '../message-strip-alert.service';\nimport { MessageStripAlertContainerAlertRefs, MessageStripAlertContainerPosition } from '../tokens';\n\n/**\n * The component that represents the footer of the message strip alert container.\n * if user has provided the footer component through service, then this component\n * will render it inside itself.\n * Bear in mind that this component is always created, just sometimes if there is nothing to render\n * it will be empty.\n */\n@Component({\n selector: 'fd-message-strip-alert-container-footer',\n template: ` <ng-template [cdkPortalOutlet]=\"_footerComponentPortal()\"></ng-template> `,\n styles: [\n `\n :host {\n display: block;\n }\n `\n ],\n imports: [PortalModule]\n})\nexport class MessageStripAlertContainerFooterComponent {\n /** @hidden */\n readonly alertRefs = input<Nullable<MessageStripAlertRef[]>>([]);\n\n /**\n * Reference to the user provided component's portal.\n * @hidden\n */\n protected readonly _footerComponentPortal = signal<ComponentPortal<any> | undefined>(undefined);\n\n /**\n * Position of the overlay in which this component is rendered.\n */\n private readonly _position = inject(MessageStripAlertContainerPosition);\n\n /** @hidden */\n private readonly _destroyRef = inject(DestroyRef);\n\n /** @hidden */\n private readonly _messageStripAlertService = inject(MessageStripAlertService);\n\n /**\n * Observable representation of the alertRefs input for use in injected components.\n */\n private readonly _alertRefs$: Observable<Nullable<MessageStripAlertRef[]>>;\n\n /**\n * Footer component from service as signal.\n */\n private readonly _footerComponent = toSignal(this._messageStripAlertService.footerComponents$, {\n initialValue: {}\n });\n\n /** @hidden */\n constructor() {\n // Convert alertRefs signal to observable in injection context\n this._alertRefs$ = toObservable(this.alertRefs).pipe(takeUntilDestroyed(this._destroyRef));\n\n effect(() => {\n const footerComponent = this._footerComponent()[this._position];\n\n if (footerComponent) {\n this._footerComponentPortal.set(\n new ComponentPortal(\n footerComponent,\n null,\n Injector.create({\n providers: [\n {\n provide: MessageStripAlertContainerAlertRefs,\n useValue: this._alertRefs$\n }\n ]\n })\n )\n );\n } else {\n this._footerComponentPortal.set(undefined);\n }\n });\n }\n}\n","import { CdkPortalOutlet, ComponentPortal, PortalModule } from '@angular/cdk/portal';\nimport { Component, ComponentRef, computed, signal, viewChildren, ViewEncapsulation } from '@angular/core';\nimport { ScrollbarDirective } from '@fundamental-ngx/core/scrollbar';\nimport { MessageStripAlertContainerFooterComponent } from '../message-strip-alert-container-footer/message-strip-alert-container-footer.component';\nimport { MessageStripAlertComponent } from '../message-strip-alert/message-strip-alert.component';\n\nimport { MessageStripAlertRef } from '../message-strip-alert.ref';\nimport { MessageStripAlert } from '../message-strip-alert/message-strip-alert.interface';\n\n/**\n * This will be rendered in the overlay. It is responsible for rendering the alerts and the footer.\n */\n@Component({\n selector: 'fd-message-strip-alert-container',\n template: `\n <div fdScrollbar>\n @for (portal of attachedElements(); track portal) {\n <ng-template [cdkPortalOutlet]=\"portal\"></ng-template>\n }\n </div>\n <fd-message-strip-alert-container-footer [alertRefs]=\"_alertRefs()\"></fd-message-strip-alert-container-footer>\n `,\n styleUrl: './message-strip-alert-container.component.scss',\n encapsulation: ViewEncapsulation.None,\n imports: [PortalModule, ScrollbarDirective, MessageStripAlertContainerFooterComponent]\n})\nexport class MessageStripAlertContainerComponent {\n /**\n * The list of the elements that are attached to the container.\n */\n readonly attachedElements = signal<ComponentPortal<MessageStripAlert>[]>([]);\n\n /**\n * List of the rendered message strip alerts. It is used in the footer and is injected into the\n * user-provided footer component portal. This way, user has full control over the container alerts.\n * @hidden\n */\n protected readonly _alertRefs = computed(() =>\n this._portalOutlets()\n .map((outlet) => {\n const componentRef = outlet.attachedRef as ComponentRef<MessageStripAlertComponent> | null;\n return componentRef?.instance?.alertRef;\n })\n .filter((ref): ref is MessageStripAlertRef => !!ref)\n );\n\n /** @hidden */\n private readonly _portalOutlets = viewChildren(CdkPortalOutlet);\n}\n","import { Directive, TemplateRef, inject } from '@angular/core';\n\n@Directive({\n selector: '[fdMessageStripIcon]'\n})\nexport class MessageStripIconDirective {\n readonly templateRef = inject(TemplateRef);\n}\n","export const enum MessageStripTypeEnum {\n INFORMATION = 'information',\n WARNING = 'warning',\n SUCCESS = 'success',\n ERROR = 'error'\n}\n\nexport const enum MessageStringIconEnum {\n ALERT = 'alert',\n SUCCESS = 'sys-enter-2',\n ERROR = 'error',\n INFORMATION = 'information'\n}\n\nexport const enum MessageStripAnnouncement {\n INFORMATION = 'coreMessageStrip.announcementInfo',\n WARNING = 'coreMessageStrip.announcementWarning',\n SUCCESS = 'coreMessageStrip.announcementSuccess',\n ERROR = 'coreMessageStrip.announcementError'\n}\n\nexport type MessageStripAnnouncementType = `${MessageStripAnnouncement}`;\n\nexport const MESSAGE_STRIP_CLOSABLE = 'coreMessageStrip.closable';\n\nexport const MESSAGE_STRIP_DEFAULT_DISMISS_BUTTON_TEXT = 'coreMessageStrip.dismissLabel';\n\nexport const DEFAULT_HIDDEN_TEXT = 'Message strip';\n\nexport const DEFAULT_DISMISS_BUTTON_TEXT = 'Close';\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport { AsyncPipe, NgTemplateOutlet } from '@angular/common';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n DestroyRef,\n effect,\n ElementRef,\n inject,\n input,\n output,\n ViewEncapsulation\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ButtonComponent } from '@fundamental-ngx/core/button';\nimport { ContentDensityDirective } from '@fundamental-ngx/core/content-density';\nimport { IconComponent } from '@fundamental-ngx/core/icon';\nimport { FD_LANGUAGE, FdLanguage, I18nModule, TranslationResolver } from '@fundamental-ngx/i18n';\nimport { map, of, withLatestFrom } from 'rxjs';\nimport { Observable } from 'rxjs/internal/Observable';\nimport { MessageStripIconDirective } from './message-strip-icon.directive';\nimport { MessageStripIndicationColor } from './message-strip-indication-color';\nimport { MessageStripType } from './message-strip-type';\nimport {\n DEFAULT_DISMISS_BUTTON_TEXT,\n DEFAULT_HIDDEN_TEXT,\n MESSAGE_STRIP_CLOSABLE,\n MESSAGE_STRIP_DEFAULT_DISMISS_BUTTON_TEXT,\n MessageStringIconEnum,\n MessageStripAnnouncement,\n MessageStripAnnouncementType,\n MessageStripTypeEnum\n} from './message-strip.enum';\n\nlet messageStripUniqueId = 0;\n\n/**\n * The component that represents a message-strip. It can only be used inline.\n */\n@Component({\n selector: 'fd-message-strip',\n templateUrl: './message-strip.component.html',\n styleUrl: './message-strip.component.scss',\n host: {\n '[attr.aria-label]': 'ariaLabel()',\n '[attr.aria-labelledby]': 'hostAriaLabelledBy()',\n '[attr.id]': 'id()',\n '[style.width]': 'width()',\n '[style.min-width]': 'minWidth()',\n '[style.margin-bottom]': 'marginBottom()',\n '[class]': 'cssClass()',\n role: 'note'\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [ButtonComponent, ContentDensityDirective, I18nModule, NgTemplateOutlet, IconComponent, AsyncPipe]\n})\nexport class MessageStripComponent {\n /** Whether the message strip is dismissible. */\n readonly dismissible = input<boolean, BooleanInput>(true, { transform: booleanAttribute });\n\n /** Id of the element that labels the message-strip. */\n readonly ariaLabelledBy = input<string | undefined | null>(null);\n\n /** Title for dismiss button */\n readonly dismissBtnTitle = input('');\n\n /** The default message strip does not have an icon.\n * The other types (warning, success, information and error) have icons by default.\n * To remove the icon set the property to true.\n */\n readonly noIcon = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /** The type of the message strip.\n * Can be one of *warning*, *success*, *information*, *error* or null.\n */\n readonly type = input<MessageStripType>();\n\n /** Id for the message-strip component. If omitted, a unique one is generated. */\n readonly id = input('', { transform: (value: string) => value || `fd-message-strip-${++messageStripUniqueId}` });\n\n /** Aria label for the message-strip component element. */\n readonly ariaLabel = input<string | undefined | null>(null);\n\n /** Width of the message-strip. */\n readonly width = input('');\n\n /** Minimum width of the message-strip. */\n readonly minWidth = input('');\n\n /** Margin bottom of the message-strip. */\n readonly marginBottom = input('');\n\n /** indication color of the message-strip. */\n readonly indicationColor = input<MessageStripIndicationColor>();\n\n /** Event fired when the message-strip is dismissed. */\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n readonly onDismiss = output<void>();\n\n /** Custom icon component */\n readonly icon = contentChild(MessageStripIconDirective);\n\n /** @hidden */\n readonly elementRef = inject(ElementRef);\n\n /**\n * Computed aria-labelledby attribute.\n * @hidden\n */\n protected readonly hostAriaLabelledBy = computed(() => {\n const labelledBy = this.ariaLabelledBy();\n\n if (labelledBy) {\n return labelledBy;\n }\n\n const currentId = this.id();\n\n return `${currentId}-hidden-text ${currentId}-content-text`;\n });\n\n /**\n * Computed CSS class string for the component.\n * @hidden\n */\n protected readonly cssClass = computed(() => {\n const classes = ['fd-message-strip'];\n const currentType = this.type();\n const currentIndicationColor = this.indicationColor();\n\n if (currentType) {\n classes.push(`fd-message-strip--${currentType}`);\n }\n if (this.dismissible()) {\n classes.push('fd-message-strip--dismissible');\n }\n if (this.noIcon()) {\n classes.push('fd-message-strip--no-icon');\n }\n if (currentIndicationColor) {\n classes.push(`fd-message-strip--indication-color-${currentIndicationColor}`);\n }\n\n return classes.join(' ');\n });\n\n /**\n * Whether icon container should be shown.\n * @hidden\n */\n protected readonly shouldShowIcon = computed(() => {\n if (this.noIcon()) {\n return false;\n }\n return !!this.icon() || !!this.type();\n });\n\n /**\n * Type-specific icon name.\n * @hidden\n */\n protected readonly typeSpecificIconName = computed(() => {\n const currentType = this.type();\n switch (currentType) {\n case MessageStripTypeEnum.WARNING:\n return MessageStringIconEnum.ALERT;\n case MessageStripTypeEnum.SUCCESS:\n return MessageStringIconEnum.SUCCESS;\n case MessageStripTypeEnum.ERROR:\n return MessageStringIconEnum.ERROR;\n case MessageStripTypeEnum.INFORMATION:\n return MessageStringIconEnum.INFORMATION;\n default:\n return '';\n }\n });\n\n /** message strip information read by screen readers */\n protected messageStripHiddenText$: Observable<string>;\n\n /** default dismiss button text read by screen readers */\n protected defaultDismissButtonText$: Observable<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 readonly _translationResolver = inject(TranslationResolver);\n\n /** @hidden */\n constructor() {\n // Initialize with defaults\n this.messageStripHiddenText$ = of(DEFAULT_HIDDEN_TEXT);\n this.defaultDismissButtonText$ = of(DEFAULT_DISMISS_BUTTON_TEXT);\n\n // Update when type changes\n effect(() => {\n const currentType = this.type();\n if (!currentType) {\n this.messageStripHiddenText$ = of(DEFAULT_HIDDEN_TEXT);\n this.defaultDismissButtonText$ = of(DEFAULT_DISMISS_BUTTON_TEXT);\n return;\n }\n\n const announcementMap: Record<MessageStripTypeEnum, MessageStripAnnouncementType> = {\n [MessageStripTypeEnum.WARNING]: MessageStripAnnouncement.WARNING,\n [MessageStripTypeEnum.SUCCESS]: MessageStripAnnouncement.SUCCESS,\n [MessageStripTypeEnum.ERROR]: MessageStripAnnouncement.ERROR,\n [MessageStripTypeEnum.INFORMATION]: MessageStripAnnouncement.INFORMATION\n };\n\n const announcementType = announcementMap[currentType];\n\n if (announcementType) {\n const announcement$ = this._translateAnnouncement(announcementType);\n this.messageStripHiddenText$ = this._buildMessageStripHiddenText(announcement$);\n this.defaultDismissButtonText$ = this._getHiddenButtonText(announcement$);\n } else {\n this.messageStripHiddenText$ = of(DEFAULT_HIDDEN_TEXT);\n this.defaultDismissButtonText$ = of(DEFAULT_DISMISS_BUTTON_TEXT);\n }\n });\n }\n\n /**\n * Dismisses the message-strip.\n */\n dismiss(): void {\n this.elementRef.nativeElement.classList.add('fd-has-display-none');\n this.elementRef.nativeElement.classList.remove('fd-has-display-block');\n this.onDismiss.emit();\n }\n\n /** @hidden */\n private _translateAnnouncement(announcementType: MessageStripAnnouncementType): Observable<string> {\n return this._lang$.pipe(\n takeUntilDestroyed(this._destroyRef),\n map((lang: FdLanguage) => this._translationResolver.resolve(lang, announcementType))\n );\n }\n\n /** @hidden */\n private _buildMessageStripHiddenText(announcement$: Observable<string>): Observable<string> {\n return this._lang$.pipe(\n takeUntilDestroyed(this._destroyRef),\n withLatestFrom(announcement$),\n map(([lang, announcement]: [FdLanguage, string]) => {\n const closable = this._translationResolver.resolve(lang, MESSAGE_STRIP_CLOSABLE);\n return `${announcement} ${this.dismissible() ? closable : ''}`;\n })\n );\n }\n\n /** @hidden **/\n private _getHiddenButtonText(announcement$: Observable<string>): Observable<string> {\n return this._lang$.pipe(\n takeUntilDestroyed(this._destroyRef),\n withLatestFrom(announcement$),\n map(([lang, announcement]: [FdLanguage, string]) => {\n const closeButtonText = this._translationResolver.resolve(\n lang,\n MESSAGE_STRIP_DEFAULT_DISMISS_BUTTON_TEXT\n );\n return `${announcement} ${closeButtonText}`;\n })\n );\n }\n}\n","@if (shouldShowIcon()) {\n <div class=\"fd-message-strip__icon-container\" aria-hidden=\"true\">\n @if (icon()) {\n <ng-template [ngTemplateOutlet]=\"icon()!.templateRef\"></ng-template>\n } @else {\n <fd-icon [glyph]=\"typeSpecificIconName()\" role=\"presentation\" aria-hidden=\"true\"></fd-icon>\n <span class=\"fd-message-strip__sr-only\" id=\"{{ id() }}-hidden-text\">{{\n messageStripHiddenText$ | async\n }}</span>\n }\n </div>\n}\n<p class=\"fd-message-strip__text\" id=\"{{ id() }}-content-text\">\n <ng-content></ng-content>\n</p>\n@if (dismissible()) {\n <button\n class=\"fd-message-strip__close\"\n fd-button\n glyph=\"decline\"\n fdType=\"transparent\"\n fdCompact\n (click)=\"dismiss()\"\n [attr.aria-controls]=\"id()\"\n [attr.aria-label]=\"dismissBtnTitle() || (defaultDismissButtonText$ | async)\"\n [attr.title]=\"dismissBtnTitle() || (defaultDismissButtonText$ | async)\"\n ></button>\n}\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport { booleanAttribute, DestroyRef, Directive, ElementRef, inject, input, isDevMode, signal } from '@angular/core';\nimport { outputToObservable } from '@angular/core/rxjs-interop';\nimport { destroyObservable } from '@fundamental-ngx/cdk/utils';\nimport { fromEvent, map, merge, Observable, of, startWith, takeUntil } from 'rxjs';\nimport { switchMap } from 'rxjs/operators';\nimport { MessageStripComponent } from './message-strip.component';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'fd-message-strip[mousePersist], fd-message-strip[duration], fd-message-strip[autoDismiss]',\n exportAs: 'fdAutoDismissMessageStrip',\n standalone: true,\n host: {\n '[style.display]': '!_opened() ? \"none\" : null'\n }\n})\nexport class AutoDismissMessageStripDirective {\n /** Whether the message strip is dismissible */\n readonly dismissible = input<boolean, BooleanInput>(true, { transform: booleanAttribute });\n\n /** Whether the alert should be automatically dismissed. */\n readonly autoDismiss = input<boolean, BooleanInput>(true, { transform: booleanAttribute });\n\n /** Duration of time *in milliseconds* that the alert will be visible. Set to -1 for indefinite. */\n readonly duration = input(10000);\n\n /** Whether the alert should stay open if the mouse is hovering over it. */\n readonly mousePersist = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /**\n * Whether the message strip is currently opened.\n * @hidden\n */\n protected readonly _opened = signal(false);\n\n /** @hidden */\n private readonly _messageStripComponent = inject(MessageStripComponent, { optional: false, host: true });\n\n /** @hidden */\n private readonly _onDismiss$ = outputToObservable(this._messageStripComponent.onDismiss);\n\n /** @hidden */\n private readonly _elementRef = inject(ElementRef);\n\n /** @hidden */\n private readonly _destroyRef = inject(DestroyRef);\n\n /** @hidden */\n private _autoDismissTimeout?: ReturnType<typeof setTimeout>;\n\n /** @hidden */\n private _mouseIn$?: Observable<boolean>;\n\n /**\n * Gets observable tracking mouse hover state.\n * Lazily initialized to ensure ElementRef is available.\n * @hidden\n */\n private get _mouseIn(): Observable<boolean> {\n if (!this._mouseIn$) {\n this._mouseIn$ = merge(\n fromEvent(this._elementRef.nativeElement, 'mouseenter').pipe(map(() => true)),\n fromEvent(this._elementRef.nativeElement, 'mouseleave').pipe(map(() => false))\n ).pipe(startWith(false));\n }\n return this._mouseIn$;\n }\n\n /**\n * Opens the message strip and starts auto-dismiss timer if configured.\n * This method is part of the public API via exportAs.\n */\n open(): void {\n this._opened.set(true);\n this._elementRef.nativeElement.classList.remove('fd-has-display-block');\n this._elementRef.nativeElement.classList.remove('fd-has-display-none');\n this._stopAutoDismiss();\n if (this.autoDismiss() && !this.dismissible() && isDevMode()) {\n console.warn(\n 'Auto dismiss is enabled but the message strip is not dismissible. Please set the dismissible input to true.'\n );\n }\n if (this.autoDismiss() && this.dismissible()) {\n this._startAutoDismiss();\n }\n }\n\n /** @hidden */\n private _stopAutoDismiss(): void {\n if (this._autoDismissTimeout) {\n clearTimeout(this._autoDismissTimeout);\n this._autoDismissTimeout = undefined;\n }\n }\n\n /** @hidden */\n private _startAutoDismiss(): void {\n const startAutoDismissTimer$ = new Observable((res) => {\n this._autoDismissTimeout = setTimeout(() => {\n this._dismiss();\n res.next(null);\n }, this.duration());\n return () => this._stopAutoDismiss();\n });\n if (this.duration() > -1) {\n const source$ = this.mousePersist()\n ? this._mouseIn.pipe(\n switchMap((mouseIn) => {\n if (mouseIn) {\n return of(null);\n }\n return startAutoDismissTimer$;\n })\n )\n : startAutoDismissTimer$;\n source$.pipe(takeUntil(merge(destroyObservable(this._destroyRef), this._onDismiss$))).subscribe();\n }\n }\n\n /** @hidden */\n private _dismiss(): void {\n this._messageStripComponent.dismiss();\n }\n}\n","import { ComponentPortal, DomPortal, Portal, PortalModule, TemplatePortal } from '@angular/cdk/portal';\nimport {\n afterNextRender,\n Component,\n DestroyRef,\n inject,\n Renderer2,\n TemplateRef,\n Type,\n viewChild,\n ViewContainerRef\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { NavigationStart, Router } from '@angular/router';\nimport { filter } from 'rxjs';\nimport { AutoDismissMessageStripDirective } from '../../auto-dismiss-message-strip.directive';\nimport { MessageStripComponent } from '../../message-strip.component';\nimport { MessageStripAlertRef } from '../message-strip-alert.ref';\nimport { MessageStripConfiguration } from '../message-strip-configuration-type';\nimport { MessageStripAlertComponentData } from '../tokens';\nimport { MessageStripAlert } from './message-strip-alert.interface';\n\nexport type MessageStripAlertPortalType<ComponentType> =\n | DomPortal\n | TemplatePortal<{\n $implicit: MessageStripAlertRef;\n }>\n | ComponentPortal<ComponentType>;\n\n/**\n * The wrapper component, which is wrapping the Message Strip and passes\n * configuration to it, also generates the content which will appear in it.\n */\n@Component({\n templateUrl: `./message-strip-alert.component.html`,\n imports: [MessageStripComponent, PortalModule, AutoDismissMessageStripDirective]\n})\nexport class MessageStripAlertComponent<ComponentType = unknown> implements MessageStripAlert {\n /** @hidden */\n readonly autoDismissMessageStripDirective = viewChild.required(AutoDismissMessageStripDirective);\n\n /** User provided data. Full of it */\n readonly data = inject(MessageStripAlertComponentData);\n\n /** Configuration for the message strip appearance */\n readonly messageStripConfig: MessageStripConfiguration;\n\n /** Portal, which is responsible for correctly rendering user provided content. It can be any type of the portal */\n readonly contentPortal: Portal<unknown>;\n\n /**\n * Reference to the message strip alert, which is used to close it from the outside, or access the data and/or the component instance\n * */\n readonly alertRef = inject(MessageStripAlertRef);\n\n /** @hidden */\n private readonly _viewContainerRef = inject(ViewContainerRef);\n\n /** @hidden */\n private readonly _renderer2 = inject(Renderer2);\n\n /** @hidden */\n private readonly _destroyRef = inject(DestroyRef);\n\n /**\n * Timeout, which is responsible for auto-dismissing the message strip.\n * It should be properly cleared on component destroy.\n */\n private _autoDismissTimeout?: ReturnType<typeof setTimeout>;\n\n /** @hidden */\n constructor() {\n this.messageStripConfig = this.data.messageStripConfig;\n this.contentPortal = this._getPortal(this.data.content);\n\n if (this.data.closeOnNavigation) {\n inject(Router, { optional: true })\n ?.events.pipe(\n filter((event) => event instanceof NavigationStart),\n takeUntilDestroyed()\n )\n .subscribe(() => this.onDismissHandler());\n }\n\n // Open message strip after view initialization\n afterNextRender(() => {\n this.autoDismissMessageStripDirective().open();\n });\n\n // Cleanup timeout on destroy\n this._destroyRef.onDestroy(() => {\n if (this._autoDismissTimeout) {\n clearTimeout(this._autoDismissTimeout);\n }\n });\n }\n\n /**\n * Handler for the dismiss button click.\n * */\n onDismissHandler(): void {\n this.messageStripConfig.onDismiss();\n }\n\n /**\n * Method, which is responsible for generating the portal, which will be rendered inside the message strip.\n * It can be any type of the portal, depending on the user provided content.\n * */\n private _getPortal(\n content:\n | string\n | TemplateRef<{\n $implicit: MessageStripAlertRef;\n }>\n | Type<ComponentType>\n ): MessageStripAlertPortalType<ComponentType> {\n if (typeof content === 'string') {\n const textEl = this._renderer2.createText(content);\n this._renderer2.appendChild(this._viewContainerRef.element.nativeElement, textEl);\n return new DomPortal(textEl);\n }\n if (content instanceof TemplateRef) {\n return new TemplatePortal(content, this._viewContainerRef, { $implicit: this.alertRef });\n }\n return new ComponentPortal(content);\n }\n}\n","<fd-message-strip\n [class]=\"messageStripConfig.class\"\n [dismissible]=\"messageStripConfig.dismissible\"\n [autoDismiss]=\"messageStripConfig.duration > 0\"\n [mousePersist]=\"messageStripConfig.mousePersist\"\n [duration]=\"messageStripConfig.duration\"\n [noIcon]=\"messageStripConfig.noIcon\"\n [type]=\"messageStripConfig.type\"\n [id]=\"messageStripConfig.id\"\n [ariaLabelledBy]=\"messageStripConfig.ariaLabelledBy\"\n [ariaLabel]=\"messageStripConfig.ariaLabel\"\n (onDismiss)=\"onDismissHandler()\"\n>\n <ng-template [cdkPortalOutlet]=\"contentPortal\"></ng-template>\n</fd-message-strip>\n","import { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { ComponentRef, Injectable, Injector, Type, inject, signal } from '@angular/core';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport { ResponsiveBreakpoints, ViewportSizeObservable } from '@fundamental-ngx/cdk/utils';\nimport { patchLanguage } from '@fundamental-ngx/i18n';\nimport { Observable, Subject, combineLatest, map, tap } from 'rxjs';\nimport { applyDefaultConfig } from './default-config';\nimport { MessageStripAlertContainerComponent } from './message-strip-alert-container/message-strip-alert-container.component';\nimport { MessageStripAlertPosition } from './message-strip-alert.position';\nimport { MessageStripAlertRef } from './message-strip-alert.ref';\nimport { MessageStripAlertComponent } from './message-strip-alert/message-strip-alert.component';\nimport { MessageStripAlert } from './message-strip-alert/message-strip-alert.interface';\nimport { OpenMessageStripAlertConfig } from './open-message-strip-alert.config';\nimport { MessageStripAlertComponentData, MessageStripAlertContainerPosition } from './tokens';\n\n/**\n * Service that is responsible for opening and closing message strip alerts.\n * This should be only created once in entire application.\n * Service is responsible for creating and managing the overlays for the\n * message strip alerts. This also manages the footer components for any\n * given position.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class MessageStripAlertService {\n /** @hidden */\n footerComponents$: Observable<Partial<Record<MessageStripAlertPosition, Type<any>>>>;\n\n /** @hidden */\n private readonly _injector = inject(Injector);\n\n /** @hidden */\n private readonly _overlay = inject(Overlay);\n\n /** @hidden */\n private readonly _viewportSize$ = inject(ViewportSizeObservable);\n\n /** @hidden */\n private readonly _messageStripAlertService = inject(MessageStripAlertService, { optional: true, skipSelf: true });\n\n /**\n * Signal holding all message alerts\n * @hidden\n */\n private readonly _messageAlerts = signal<\n Array<\n Required<OpenMessageStripAlertConfig> & {\n portal: ComponentPortal<MessageStripAlert>;\n }\n >\n >([]);\n\n /** @hidden */\n private _overlayRefs: Partial<\n Record<\n MessageStripAlertPosition,\n {\n ref: OverlayRef;\n containerRef: ComponentRef<MessageStripAlertContainerComponent>;\n }\n >\n > = {};\n\n /**\n * Signal holding footer components\n * @hidden\n */\n private readonly _messageStripAlertContainerFooters = signal<Partial<Record<MessageStripAlertPosition, Type<any>>>>(\n {}\n );\n /** @hidden */\n constructor() {\n if (this._messageStripAlertService) {\n throw new Error('MessageStripAlertService is already provided');\n }\n this.footerComponents$ = toObservable(this._messageStripAlertContainerFooters);\n this._listenToItemsChanges();\n }\n\n /**\n * Set the footer component for a given position.\n * @param position - The position where the footer should be displayed\n * @param component - The component type to be rendered as footer\n */\n setFooterComponent(position: MessageStripAlertPosition, component: Type<any>): void {\n this._messageStripAlertContainerFooters.update((footers) => ({\n ...footers,\n [position]: component\n }));\n }\n\n /**\n * Open a message strip alert with given configuration.\n * @param c - Configuration for the message strip alert\n * @returns Reference to the opened alert for programmatic control\n */\n open<ComponentType = unknown>(c: OpenMessageStripAlertConfig<ComponentType>): MessageStripAlertRef {\n const config = applyDefaultConfig<ComponentType>(c);\n const alertRef = this._getMessageStripAlertRef(config);\n this._messageAlerts.update((alerts) => [{ ...config, portal: alertRef.portal }, ...alerts]);\n return alertRef;\n }\n\n /** @hidden */\n private _getMessageStripAlertRef<ComponentType = unknown>(\n config: Required<OpenMessageStripAlertConfig<ComponentType>>\n ): MessageStripAlertRef {\n const onDismiss$ = new Subject<void>();\n const alertRef = {\n portal: new ComponentPortal(\n MessageStripAlertComponent<ComponentType>,\n null,\n Injector.create({\n providers: [\n {\n provide: MessageStripAlertComponentData,\n useValue: {\n content: config.content,\n closeOnNavigation: config.closeOnNavigation,\n messageStripConfig: {\n ...config.messageStrip,\n onDismiss: () => {\n this._messageAlerts.update((alerts) =>\n alerts.filter((item) => item.portal !== alertRef.portal)\n );\n config.messageStrip &&\n config.messageStrip.onDismiss &&\n config.messageStrip.onDismiss();\n onDismiss$.next();\n onDismiss$.complete();\n }\n }\n }\n },\n {\n provide: MessageStripAlertRef,\n useFactory: () => alertRef\n },\n patchLanguage((lang) => ({\n coreMessageStrip: {\n dismissLabel: config.messageStrip.dismissLabel || lang.coreMessageStrip.dismissLabel\n }\n }))\n ],\n parent: this._injector\n })\n ),\n dismiss: () => {\n this._messageAlerts.update((alerts) => alerts.filter((item) => item.portal !== alertRef.portal));\n config.messageStrip && config.messageStrip.onDismiss && config.messageStrip.onDismiss();\n onDismiss$.next();\n onDismiss$.complete();\n },\n onDismiss$: onDismiss$.asObservable()\n };\n return alertRef;\n }\n\n /** @hidden */\n private _listenToItemsChanges(): void {\n combineLatest([this._viewportSize$, toObservable(this._messageAlerts)])\n .pipe(\n map(\n ([viewportSize, messageAlerts]): Record<\n MessageStripAlertPosition,\n Array<ComponentPortal<MessageStripAlert>>\n > => {\n if (viewportSize < ResponsiveBreakpoints.M) {\n return messageAlerts.reduce(\n (acc, next) => {\n const position = next.position?.startsWith('top') ? 'top-middle' : 'bottom-middle';\n acc[position] = [...(acc[position] || []), next.portal];\n return acc;\n },\n {} as Record<MessageStripAlertPosition, Array<ComponentPortal<MessageStripAlert>>>\n );\n }\n return messageAlerts.reduce(\n (acc, next) => {\n acc[next.position] = [...(acc[next.position] || []), next.portal];\n return acc;\n },\n {} as Record<MessageStripAlertPosition, Array<ComponentPortal<MessageStripAlert>>>\n );\n }\n ),\n tap(\n (\n messageAlertsByPosition: Partial<\n Record<MessageStripAlertPosition, Array<ComponentPortal<MessageStripAlert>>>\n >\n ) => {\n let topSectionIsOpened = false;\n let bottomSectionIsOpened = false;\n (\n Object.entries(messageAlertsByPosition) as Array<\n [MessageStripAlertPosition, ComponentPortal<MessageStripAlert>[]]\n >\n ).forEach(([position, portals]) => {\n topSectionIsOpened = topSectionIsOpened || position.startsWith('top');\n bottomSectionIsOpened = bottomSectionIsOpened || position.startsWith('bottom');\n const { containerRef } = this._getOverlayRef(position);\n containerRef.instance.attachedElements.set(portals);\n });\n this._syncExistingOverlays(messageAlertsByPosition, bottomSectionIsOpened, topSectionIsOpened);\n }\n )\n )\n .subscribe();\n }\n\n /**\n * Synchronizes existing overlay states based on current message alerts.\n * @hidden\n */\n private _syncExistingOverlays(\n messageAlertsByPosition: Partial<Record<MessageStripAlertPosition, ComponentPortal<MessageStripAlert>[]>>,\n bottomSectionIsOpened: boolean,\n topSectionIsOpened: boolean\n ): void {\n (Object.keys(this._overlayRefs) as MessageStripAlertPosition[]).forEach((position) => {\n const overlayRef = this._overlayRefs[position];\n if (!overlayRef) {\n return;\n }\n if (!messageAlertsByPosition[position]) {\n overlayRef.ref.dispose();\n delete this._overlayRefs[position];\n } else {\n const ref = overlayRef.ref;\n if (position.startsWith('top')) {\n if (bottomSectionIsOpened) {\n ref.overlayElement.classList.add('fd-message-strip-alert-overlay--bottom-opened');\n } else {\n ref.overlayElement.classList.remove('fd-message-strip-alert-overlay--bottom-opened');\n }\n }\n if (position.startsWith('bottom')) {\n if (topSectionIsOpened) {\n ref.overlayElement.classList.add('fd-message-strip-alert-overlay--top-opened');\n } else {\n ref.overlayElement.classList.remove('fd-message-strip-alert-overlay--top-opened');\n }\n }\n }\n });\n }\n\n /**\n * Gets or creates an overlay reference for the specified position.\n * @hidden\n */\n private _getOverlayRef(position: MessageStripAlertPosition): {\n ref: OverlayRef;\n containerRef: ComponentRef<MessageStripAlertContainerComponent>;\n } {\n if (!this._overlayRefs[position]) {\n const [verticalPosition, horizontalPosition] = position.split('-');\n const overlayRef = this._createOverlay(verticalPosition, horizontalPosition);\n const containerRef = overlayRef.attach(\n new ComponentPortal(\n MessageStripAlertContainerComponent,\n null,\n Injector.create({\n parent: this._injector,\n providers: [\n {\n provide: MessageStripAlertContainerPosition,\n useValue: position\n }\n ]\n })\n )\n );\n this._overlayRefs[position] = { ref: overlayRef, containerRef };\n }\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return this._overlayRefs[position]!;\n }\n\n /**\n * Creates an overlay for message strip alerts at the specified position.\n * @hidden\n */\n private _createOverlay(verticalPosition: string, horizontalPosition: string): OverlayRef {\n return this._overlay.create({\n panelClass: [\n 'fd-message-strip-alert-overlay',\n `fd-message-strip-alert-overlay--${verticalPosition}`,\n `fd-message-strip-alert-overlay--${horizontalPosition}`\n ],\n hasBackdrop: false\n });\n }\n}\n","const messageStripIndicationColors = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10'] as const;\n\nexport type MessageStripIndicationColor =\n | `${(typeof messageStripIndicationColors)[number]}`\n | `${(typeof messageStripIndicationColors)[number]}b`;\n\nexport const _messageStripIndicationColors = messageStripIndicationColors.reduce(\n (acc: MessageStripIndicationColor[], item) => {\n acc.push(item);\n acc.push(`${item}b`);\n return acc;\n },\n []\n) as MessageStripIndicationColor[];\n","import { NgModule } from '@angular/core';\n\nimport { AutoDismissMessageStripDirective } from './auto-dismiss-message-strip.directive';\nimport { MessageStripIconDirective } from './message-strip-icon.directive';\nimport { MessageStripComponent } from './message-strip.component';\n\n/**\n * @deprecated\n * Use direct imports of components and directives.\n */\n@NgModule({\n imports: [MessageStripComponent, AutoDismissMessageStripDirective, MessageStripIconDirective],\n exports: [MessageStripComponent, AutoDismissMessageStripDirective, MessageStripIconDirective]\n})\nexport class MessageStripModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}