@fundamental-ngx/core 0.61.3 → 0.61.5

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 (35) hide show
  1. package/fesm2022/fundamental-ngx-core-breadcrumb.mjs +1 -1
  2. package/fesm2022/fundamental-ngx-core-breadcrumb.mjs.map +1 -1
  3. package/fesm2022/fundamental-ngx-core-carousel.mjs +7 -8
  4. package/fesm2022/fundamental-ngx-core-carousel.mjs.map +1 -1
  5. package/fesm2022/fundamental-ngx-core-form.mjs +10 -16
  6. package/fesm2022/fundamental-ngx-core-form.mjs.map +1 -1
  7. package/fesm2022/fundamental-ngx-core-icon.mjs +2 -2
  8. package/fesm2022/fundamental-ngx-core-icon.mjs.map +1 -1
  9. package/fesm2022/fundamental-ngx-core-inline-help.mjs +34 -15
  10. package/fesm2022/fundamental-ngx-core-inline-help.mjs.map +1 -1
  11. package/fesm2022/fundamental-ngx-core-menu.mjs +40 -29
  12. package/fesm2022/fundamental-ngx-core-menu.mjs.map +1 -1
  13. package/fesm2022/fundamental-ngx-core-multi-combobox.mjs +75 -31
  14. package/fesm2022/fundamental-ngx-core-multi-combobox.mjs.map +1 -1
  15. package/fesm2022/fundamental-ngx-core-popover.mjs +152 -16
  16. package/fesm2022/fundamental-ngx-core-popover.mjs.map +1 -1
  17. package/fesm2022/fundamental-ngx-core-product-switch.mjs +23 -27
  18. package/fesm2022/fundamental-ngx-core-product-switch.mjs.map +1 -1
  19. package/fesm2022/fundamental-ngx-core-select.mjs +12 -3
  20. package/fesm2022/fundamental-ngx-core-select.mjs.map +1 -1
  21. package/fesm2022/fundamental-ngx-core-shellbar.mjs +2 -2
  22. package/fesm2022/fundamental-ngx-core-shellbar.mjs.map +1 -1
  23. package/fesm2022/fundamental-ngx-core-tabs.mjs +19 -25
  24. package/fesm2022/fundamental-ngx-core-tabs.mjs.map +1 -1
  25. package/package.json +3 -3
  26. package/types/fundamental-ngx-core-carousel.d.ts +2 -3
  27. package/types/fundamental-ngx-core-form.d.ts +7 -10
  28. package/types/fundamental-ngx-core-inline-help.d.ts +20 -15
  29. package/types/fundamental-ngx-core-menu.d.ts +17 -9
  30. package/types/fundamental-ngx-core-mobile-mode.d.ts +6 -2
  31. package/types/fundamental-ngx-core-multi-combobox.d.ts +18 -1
  32. package/types/fundamental-ngx-core-popover.d.ts +48 -3
  33. package/types/fundamental-ngx-core-product-switch.d.ts +20 -24
  34. package/types/fundamental-ngx-core-select.d.ts +5 -0
  35. package/types/fundamental-ngx-core-tabs.d.ts +5 -10
@@ -1 +1 @@
1
- {"version":3,"file":"fundamental-ngx-core-popover.mjs","sources":["../../../../libs/core/popover/base/base-popover.class.ts","../../../../libs/core/popover/popover-body.directive.ts","../../../../libs/core/popover/popover-body/popover-body-directives/popover-body-footer.directive.ts","../../../../libs/core/popover/popover-body/popover-body-directives/popover-body-header.directive.ts","../../../../libs/core/popover/popover-body/popover-body.component.ts","../../../../libs/core/popover/popover-body/popover-body.component.html","../../../../libs/core/popover/popover-container/popover-container.directive.ts","../../../../libs/core/popover/popover-control/popover-control.component.ts","../../../../libs/core/popover/popover.interface.ts","../../../../libs/core/popover/popover-mobile/popover-mobile.component.ts","../../../../libs/core/popover/popover-mobile/popover-mobile.component.html","../../../../libs/core/popover/popover-mobile/popover-mobile.module.ts","../../../../libs/core/popover/popover-service/popover.service.ts","../../../../libs/core/popover/popover-trigger.directive.ts","../../../../libs/core/popover/tokens.ts","../../../../libs/core/popover/popover.component.ts","../../../../libs/core/popover/popover.component.html","../../../../libs/core/popover/popover.module.ts","../../../../libs/core/popover/fundamental-ngx-core-popover.ts"],"sourcesContent":["import { ConnectedPosition, ScrollStrategy } from '@angular/cdk/overlay';\nimport { Directive, ElementRef, signal } from '@angular/core';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { Placement, PopoverFillMode } from '@fundamental-ngx/core/shared';\nimport { TriggerConfig } from './popover-config.interface';\n\n// Re-export for backward compatibility\nexport { TriggerConfig };\n\n/**\n * @deprecated Use the {@link PopoverConfig} interface instead of extending this class.\n * This class will be removed in a future major version.\n *\n * Migration guide:\n * - For components: Use regular `input()` signal properties and pass configuration to PopoverService\n * - For services: Use the PopoverConfig interface to define configuration objects\n * - See {@link PopoverComponent} and {@link MenuComponent} for modern implementation examples\n *\n * Configuration object for popover settings.\n * This is used by PopoverService and was extended by PopoverComponent and MenuComponent.\n *\n * **For Components:** Use signal inputs with the `input()` function to declare these properties.\n * Components should also define their own `isOpenChange = output<boolean>()` and `beforeOpen = output<void>()` outputs.\n *\n * **For Services:** Use regular signal instances to store these values.\n */\n@Directive({\n host: {\n '[class.fd-popover-custom--disabled]': 'disabled()'\n }\n})\nexport class BasePopoverClass {\n /** Whether to close the popover on router navigation start. */\n closeOnNavigation = signal(true);\n\n /** Whether the popover is disabled. */\n disabled = signal(false);\n\n /** Maximum width of popover body in px, prevents from overextending body by `fillControlMode` */\n maxWidth = signal<Nullable<number>>(null);\n\n /** Whether the popover should have an arrow. */\n noArrow = signal(true);\n\n /** Whether the popover container needs an extra class for styling. */\n additionalBodyClass = signal<string | null>(null);\n\n /** Classes that should be applied to fd-popover-body component directly. */\n additionalBodyComponentClasses = signal<string | null>(null);\n\n /** Whether the popover container needs an extra class for styling. */\n additionalTriggerClass = signal<string | null>(null);\n\n /** Whether the popover should close when the escape key is pressed. */\n closeOnEscapeKey = signal(true);\n\n /** Whether to wrap content with fd-scrollbar directive. */\n disableScrollbar = signal(false);\n\n /**\n * The placement of the popover.\n * It can be one of:\n * top, top-start, top-end, bottom, bottom-start, bottom-end,\n * right, right-start, right-end, left, left-start, left-end.\n */\n placement = signal<Placement | null>(null);\n\n /**\n * The trigger events that will open/close the popover.\n * Accepts any [HTML DOM Events](https://www.w3schools.com/jsref/dom_obj_event.asp) or a config object for the corresponding event.\n * Using the config object allows to specify whether an event should apply both for open and close actions or only some of them.\n *\n * If array of triggers consists only of one event, it will be treated at a toggle event (open and close)\n * If array of trigger consists of more than one event, each odd event will be treated as an open event for the popover,\n * and each even event will be treated as closing event for the popover.\n *\n * Consider the following value for `triggers`:\n * ```\n * [\n * 'click' // basically it's an alias for \"{ trigger: 'click', openAction: true, closeAction: true }\"\n * ]\n * ```\n * ```\n * [\n * 'mouseenter' // Shortcut for \"{ trigger: 'mouseenter', openAction: true, closeAction: false }\", and will only open the popover.\n * 'mouseleave' // Shortcut for \"{ trigger: 'mouseleave', openAction: false, closeAction: true }\" and will only close the popover.\n * ]\n * ```\n * ```\n * [\n * { trigger: 'mouseenter', openAction: true, closeAction: true }, // \"mouseenter\" will toggle the popover.\n * { trigger: 'mouseleave', openAction: true, closeAction: true } // \"mouseleave\" will toggle the popover.\n * ]\n * ```\n *\n * @default ['click']\n */\n triggers = signal<(string | TriggerConfig)[]>(['click']);\n\n /** Whether the popover is open. Can be used through two-way binding. */\n isOpen = signal(false);\n\n /** Whether the popover should close when a click is made outside its boundaries. */\n closeOnOutsideClick = signal(true);\n\n /** Wether to apply a background overlay */\n applyOverlay = signal(false);\n\n /** Whether the popover should be focusTrapped. */\n focusTrapped = signal(false);\n\n /**\n * Whether the popover should automatically move focus into the trapped region upon\n * initialization and return focus to the previous activeElement upon destruction.\n */\n focusAutoCapture = signal(false);\n\n /**\n * Whether to move the focus after popover is closed to the last focused element before popover was opened.\n */\n restoreFocusOnClose = signal(true);\n\n /**\n * Scroll strategy, there are 4 accepted\n * - CloseScrollStrategy\n * - NoopScrollStrategy\n * - BlockScrollStrategy\n * - RepositionScrollStrategy ( default )\n */\n scrollStrategy = signal<ScrollStrategy | null>(null);\n\n /**\n * List of positions options for overlay defined by angular CDK.\n * Positions will be taken in order, same like on array. If first position provided doesn't fit to window,\n * another will be used\n * More information can be found in https://material.angular.io/cdk/overlay/api\n */\n cdkPositions = signal<ConnectedPosition[] | null>(null);\n\n /**\n * Preset options for the popover body width.\n * * `at-least` will apply a minimum width to the body equivalent to the width of the control.\n * * `equal` will apply a width to the body equivalent to the width of the control.\n * * Leave blank for no effect.\n */\n fillControlMode = signal<Nullable<PopoverFillMode>>(null);\n\n /** The element to which the overlay is attached. By default it is body */\n appendTo = signal<Nullable<ElementRef | Element>>(null);\n\n /** Placement of the popover element. */\n placementContainer = signal<Nullable<ElementRef | Element>>(null);\n\n /** Whether position shouldn't change, when popover approach the corner of page */\n fixedPosition = signal(false);\n\n /** Whether the popover body is resizable. */\n resizable = signal(false);\n\n /** @hidden Aria role for the popover body. */\n protected _bodyRole: string | null = 'dialog';\n\n /** @hidden ID for the popover body. */\n protected readonly _bodyId = signal<string | null>(null);\n}\n","import { Directive, inject, TemplateRef } from '@angular/core';\n\n@Directive({\n selector: '[fdPopoverBody]',\n standalone: true\n})\nexport class PopoverBodyDirective {\n /**\n * The template to be used as the popover's body.\n **/\n readonly templateRef = inject<TemplateRef<void>>(TemplateRef);\n}\n","import { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n selector: '[fdPopoverBodyFooter], [fd-popover-body-footer]',\n standalone: true\n})\nexport class PopoverBodyFooterDirective {\n /** @hidden */\n @HostBinding('class.fd-popover__body-footer')\n fdPopoverBodyFooterClass = true;\n}\n","import { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n selector: '[fdPopoverBodyHeader], [fd-popover-body-header]',\n standalone: true\n})\nexport class PopoverBodyHeaderDirective {\n /** @hidden */\n @HostBinding('class.fd-popover__body-header')\n fdPopoverBodyHeaderClass = true;\n}\n","import {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n inject,\n input,\n output,\n Renderer2,\n signal,\n TemplateRef,\n viewChild,\n ViewEncapsulation\n} from '@angular/core';\n\nimport { A11yModule, CdkTrapFocus } from '@angular/cdk/a11y';\nimport { ESCAPE } from '@angular/cdk/keycodes';\nimport { CdkScrollable, ConnectionPositionPair } from '@angular/cdk/overlay';\n\nimport { NgTemplateOutlet } from '@angular/common';\nimport { KeyUtil, Nullable, ResizeDirective, ResizeHandleDirective } from '@fundamental-ngx/cdk/utils';\nimport { ContentDensityObserver, contentDensityObserverProviders } from '@fundamental-ngx/core/content-density';\nimport { ScrollbarDirective } from '@fundamental-ngx/core/scrollbar';\n\n/**\n * A component used to enforce a certain layout for the popover.\n * ```html\n * <fd-popover>\n * <fd-popover-control>Control Element</fd-popover-control>\n * <fd-popover-body>Popover Body</fd-popover-body>\n * </fd-popover>\n * ```\n */\n@Component({\n selector: 'fd-popover-body',\n templateUrl: './popover-body.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrl: './popover-body.component.scss',\n providers: [contentDensityObserverProviders({ alwaysAddModifiers: true })],\n imports: [A11yModule, CdkScrollable, ScrollbarDirective, NgTemplateOutlet, ResizeHandleDirective, ResizeDirective],\n standalone: true,\n host: {\n '(keydown)': 'bodyKeyupHandler($event)'\n }\n})\nexport class PopoverBodyComponent {\n /** Minimum width of the popover body element. */\n readonly minWidth = input<Nullable<string>>();\n\n /** Maximum width of the popover body element. */\n readonly maxWidth = input<Nullable<string>>();\n\n /** Minimum height of the popover body element. */\n readonly minHeight = input<Nullable<string>>();\n\n /** Maximum height of the popover body element. */\n readonly maxHeight = input<Nullable<string>>();\n\n /** @hidden */\n readonly _cdkTrapFocus = viewChild(CdkTrapFocus);\n\n /** @hidden */\n readonly _scrollbar = viewChild(ScrollbarDirective);\n\n /** @hidden Whether to wrap content with fd-scrollbar directive. */\n readonly _disableScrollbar = signal(false);\n\n /** @hidden Whether the popover should have an arrow. */\n readonly _noArrow = signal(true);\n\n /** @hidden Whether the popover container needs an extra class for styling. */\n readonly _additionalBodyClass = signal<Nullable<string>>(null);\n\n /** @hidden Whether the popover should be focusTrapped. */\n readonly _focusTrapped = signal(false);\n\n /**\n * @hidden\n * Whether the popover should automatically move focus into the trapped region upon\n * initialization and return focus to the previous activeElement upon destruction.\n */\n readonly _focusAutoCapture = signal(false);\n\n /** @hidden Property bind to popover's body. */\n readonly _popoverBodyWidth = signal<number | undefined>(undefined);\n\n /** @hidden Property bind to popover's body. */\n readonly _popoverBodyMinWidth = signal<number | undefined>(undefined);\n\n /** @hidden Property bind to popover's body. */\n readonly _maxWidth = signal<Nullable<number>>(null);\n\n /** @hidden Property bind to popover's body. */\n readonly _closeOnEscapeKey = signal(false);\n\n /** @hidden Aria role for the popover body. */\n readonly _bodyRole = signal<Nullable<string>>('dialog');\n\n /** @hidden ID for the popover body. */\n readonly _bodyId = signal<string | null>(null);\n\n /** @hidden Classes added to arrow element. */\n readonly _arrowClasses = signal('');\n\n /** @hidden text rendered inside popover's body. */\n readonly text = signal<Nullable<string>>(null);\n\n /** @hidden template rendered inside popover's body. */\n readonly _templateToDisplay = signal<TemplateRef<any> | undefined>(undefined);\n\n /** @hidden Whether the popover body is resizable. */\n readonly _resizable = signal(false);\n\n /** @hidden */\n readonly _resizeHandleLocation = signal<'top-right' | 'top-left' | 'bottom-right' | 'bottom-left'>('bottom-right');\n\n /** Event emitted when popover body requests to be closed (e.g., Escape key press) */\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n readonly onClose = output<void>();\n\n /** @hidden */\n readonly _elementRef = inject(ElementRef);\n\n /** @hidden */\n readonly _contentDensityObserver = inject(ContentDensityObserver);\n\n /** @hidden */\n private readonly _renderer = inject(Renderer2);\n\n /** @hidden */\n private _bodyComponentClasses: string | null = null;\n\n /** @hidden */\n constructor() {\n afterNextRender(() => {\n const scrollbar = this._scrollbar();\n if (scrollbar) {\n scrollbar._inPopover = true;\n }\n });\n }\n\n /** Handler escape keydown */\n bodyKeyupHandler(event: KeyboardEvent): void {\n if (KeyUtil.isKeyCode(event, ESCAPE) && this._closeOnEscapeKey()) {\n // In case if popover belongs to the element inside dialog\n event.stopPropagation();\n this.onClose.emit();\n }\n }\n\n /** @hidden */\n _setBodyComponentClasses(classes: string | null): void {\n this._bodyComponentClasses?.split(' ').forEach((klass) => {\n this._renderer.removeClass(this._elementRef.nativeElement, klass);\n });\n this._bodyComponentClasses = classes;\n if (!this._bodyComponentClasses) {\n return;\n }\n this._bodyComponentClasses.split(' ').forEach((klass) => {\n this._renderer.addClass(this._elementRef.nativeElement, klass);\n });\n }\n\n /** @hidden */\n _setArrowStyles(position: ConnectionPositionPair, rtl: 'rtl' | 'ltr'): void {\n this._resizeHandleLocation.set(\n `${position.overlayY === 'top' ? 'bottom' : 'top'}-${position.overlayX === 'start' ? 'right' : 'left'}`\n );\n if (this._noArrow()) {\n this._arrowClasses.set('');\n return;\n }\n\n let arrowClasses: string[] = [];\n\n if (\n position.overlayY !== position.originY &&\n position.originY !== 'center' &&\n position.overlayY !== 'center' &&\n position.overlayX === position.originX\n ) {\n arrowClasses = [\n `fd-popover__body--${position.overlayY === 'top' ? 'below' : 'above'}`,\n `fd-popover__body--${position.overlayX === 'start' ? 'left' : 'right'}`,\n `fd-popover__body--arrow-${position.overlayY}`,\n `fd-popover__body--arrow-x-${position.originX}`\n ];\n } else if (\n position.overlayX !== position.originX &&\n position.overlayX !== 'center' &&\n position.originX !== 'center' &&\n position.originY === position.overlayY\n ) {\n let overlayX = position.overlayX;\n if (rtl === 'rtl') {\n overlayX = position.overlayX === 'end' ? 'start' : 'end';\n }\n arrowClasses = [\n `fd-popover__body--${overlayX === 'start' ? 'after' : 'before'}`,\n `fd-popover__body--${overlayX === 'start' ? 'left' : 'right'}`,\n `fd-popover__body--${position.overlayY === 'center' ? 'middle' : position.overlayY}`,\n `fd-popover__body--arrow-${overlayX === 'start' ? 'left' : 'right'}`,\n `fd-popover__body--arrow-y-${position.originY} `\n ];\n } else {\n arrowClasses = ['fd-popover__body--no-arrow'];\n }\n\n this._arrowClasses.set(arrowClasses.join(' '));\n }\n\n /** @hidden */\n _focusFirstTabbableElement(forced = false): void {\n if (forced || this._focusAutoCapture()) {\n requestAnimationFrame(() => {\n this._cdkTrapFocus()?.focusTrap.focusFirstTabbableElement();\n });\n }\n }\n}\n","<div\n class=\"fd-popover__body fd-popover__body--static\"\n [class.fd-popover__body--no-arrow]=\"_noArrow()\"\n [class.fd-popover__body--resizable]=\"_resizable()\"\n [class]=\"_arrowClasses() + ' ' + (_additionalBodyClass() || '')\"\n [cdkTrapFocus]=\"_focusTrapped()\"\n [style.min-width]=\"_popoverBodyMinWidth() ? null : minWidth()\"\n [style.max-width]=\"_maxWidth() ? null : maxWidth()\"\n [style.min-height]=\"minHeight()\"\n [style.max-height]=\"maxHeight()\"\n [style.max-width.px]=\"_maxWidth()\"\n [style.min-width.px]=\"_popoverBodyMinWidth()\"\n [style.width.px]=\"_popoverBodyWidth()\"\n [attr.role]=\"_bodyRole()\"\n [attr.id]=\"_bodyId()\"\n fdkResize\n [fdkResizeDisabled]=\"!_resizable()\"\n [fdkResizeClass]=\"'fd-popover__body--disable-transitions'\"\n [fdkResizeHandleLocation]=\"_resizeHandleLocation()\"\n>\n @if (!_disableScrollbar()) {\n <div fd-scrollbar class=\"fd-popover__wrapper\">\n <ng-template [ngTemplateOutlet]=\"renderer\"></ng-template>\n </div>\n } @else {\n <ng-template [ngTemplateOutlet]=\"renderer\"></ng-template>\n }\n @if (_resizable()) {\n <span fdkResizeHandle class=\"fd-popover__resize-handle\" role=\"presentation\" aria-hidden=\"true\"></span>\n }\n</div>\n<ng-template #renderer>\n <ng-content select=\"[fd-popover-body-header]\"></ng-content>\n <ng-content select=\"[fd-popover-body-subheader]\"></ng-content>\n <ng-content></ng-content>\n {{ text() }}\n @if (_templateToDisplay()) {\n <ng-template [ngTemplateOutlet]=\"_templateToDisplay()!\"></ng-template>\n }\n <ng-content select=\"[fd-popover-body-footer]\"></ng-content>\n</ng-template>\n","import { DestroyRef, Directive, ElementRef, OnInit, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { resizeObservable } from '@fundamental-ngx/cdk/utils';\nimport { Subject } from 'rxjs';\n\n@Directive({\n selector: '[fdPopoverContainer]',\n standalone: true\n})\nexport class PopoverContainerDirective implements OnInit {\n /** Subject which emits when popover position refresh is required. */\n refreshPosition$ = new Subject<void>();\n\n /** @hidden */\n private readonly _destroyRef = inject(DestroyRef);\n\n /** @hidden */\n constructor(private _elmRef: ElementRef<HTMLElement>) {}\n\n /** @hidden */\n ngOnInit(): void {\n resizeObservable(this._elmRef.nativeElement)\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe(() => {\n this.refreshPosition$.next();\n });\n }\n}\n","import { AfterContentChecked, ChangeDetectionStrategy, Component, ElementRef, ViewEncapsulation } from '@angular/core';\n\n/**\n * A component used to enforce a certain layout for the popover.\n * ```html\n * <fd-popover>\n * <fd-popover-control>Control Element</fd-popover-control>\n * <fd-popover-body>Popover Body</fd-popover-body>\n * </fd-popover>\n * ```\n */\n@Component({\n selector: 'fd-popover-control, [fdPopoverControl]',\n template: `<ng-content></ng-content>`,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class PopoverControlComponent implements AfterContentChecked {\n /** @hidden */\n _tabbable = false;\n\n /** @hidden */\n constructor(public elRef: ElementRef) {}\n\n /** @hidden */\n ngAfterContentChecked(): void {\n if (this._tabbable) {\n this.makeTabbable();\n }\n }\n\n /** @hidden */\n makeTabbable(): void {\n const elemChild = this.elRef.nativeElement.children[0];\n if (elemChild && elemChild.getAttribute('tabindex') !== '-1') {\n elemChild.tabIndex = '0';\n }\n }\n}\n","import { EventEmitter, InjectionToken, ModelSignal } from '@angular/core';\nimport { DialogConfig } from '@fundamental-ngx/core/dialog';\nimport { MobileMode } from '@fundamental-ngx/core/mobile-mode';\n\nexport const POPOVER_COMPONENT = new InjectionToken<PopoverInterface>('PopoverInterface');\n\n/**\n * Popover Interface to have typing and avoid circular dependency between\n * PopoverComponent <==> PopoverMobileComponent\n */\nexport interface PopoverInterface extends MobileMode {\n dialogConfig: DialogConfig;\n isOpen: ModelSignal<boolean>;\n isOpenChange: EventEmitter<boolean>;\n\n close(): void;\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n effect,\n inject,\n OnDestroy,\n OnInit,\n TemplateRef,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\n\nimport { NgTemplateOutlet } from '@angular/common';\nimport { TemplateModule } from '@fundamental-ngx/cdk/utils';\nimport {\n DialogBodyComponent,\n DialogCloseButtonComponent,\n DialogComponent,\n DialogFooterComponent,\n DialogHeaderComponent\n} from '@fundamental-ngx/core/dialog';\nimport { MobileModeBase, MobileModeControl } from '@fundamental-ngx/core/mobile-mode';\nimport { TitleComponent } from '@fundamental-ngx/core/title';\nimport { PopoverChildContent } from '../popover-child-content.interface';\nimport { POPOVER_COMPONENT, PopoverInterface } from '../popover.interface';\n\nlet mobilePopoverUniqueId = 0;\n\n@Component({\n selector: 'fd-popover-mobile',\n templateUrl: './popover-mobile.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [\n TemplateModule,\n TitleComponent,\n NgTemplateOutlet,\n DialogComponent,\n DialogBodyComponent,\n DialogHeaderComponent,\n DialogFooterComponent,\n DialogCloseButtonComponent\n ]\n})\nexport class PopoverMobileComponent extends MobileModeBase<PopoverInterface> implements OnInit, OnDestroy {\n /** @hidden */\n @ViewChild('dialogTemplate')\n _dialogTemplate: TemplateRef<any>;\n\n /** @hidden Cannot use _ prefix due to mobile class build constraints. */\n childContent?: PopoverChildContent = undefined;\n\n /** Current popover title */\n title: string;\n /** Dialog body content */\n viewBody: TemplateRef<any> | null;\n\n /** Dialog footer content */\n viewFooter: TemplateRef<any> | null;\n\n /** @hidden */\n readonly id = 'fd-popover-mobile-' + mobilePopoverUniqueId++;\n\n /** @hidden */\n get titleId(): string {\n return this.id + '-title';\n }\n\n /** @hidden */\n constructor() {\n super(inject<PopoverInterface>(POPOVER_COMPONENT), MobileModeControl.POPOVER);\n\n // effect() automatically tracks _component.isOpen signal and cleans up on destroy\n effect(() => {\n if (this._component.isOpen()) {\n this._openDialog();\n } else {\n this.dialogRef?.hide(true);\n }\n });\n }\n\n /** @hidden */\n ngOnInit(): void {\n this.title = this.mobileConfig.title || '';\n this.viewBody = this.childContent?.popoverBodyContentTemplate ?? null;\n this.viewFooter = this.childContent?.popoverFooterContentTemplate ?? null;\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this.dialogRef?.close();\n }\n\n /** Closes the dialog and popover. */\n close(): void {\n this.dialogRef.close();\n this._component.close();\n }\n\n /** @hidden Opens the dialog. */\n private _openDialog(): void {\n this.dialogRef = this._dialogService.open(this._dialogTemplate, {\n verticalPadding: true,\n horizontalPadding: true,\n ...this.dialogConfig,\n mobile: true,\n focusTrapped: true,\n escKeyCloseable: false,\n backdropClickCloseable: false,\n container: this._elementRef.nativeElement,\n responsivePadding: true,\n ariaLabelledBy: this.titleId\n });\n }\n}\n","<ng-template [fdDialogTemplate] let-dialog let-dialogConfig=\"dialogConfig\" #dialogTemplate>\n <fd-dialog [dialogConfig]=\"dialogConfig\" [dialogRef]=\"dialog\" data-mobile-popover>\n <fd-dialog-header>\n <h1 fd-title [id]=\"titleId\">{{ title }}</h1>\n @if (this.mobileConfig.hasCloseButton) {\n <button fd-dialog-close-button [mobile]=\"true\" (click)=\"close()\"></button>\n }\n </fd-dialog-header>\n <fd-dialog-body>\n <ng-template [ngTemplateOutlet]=\"viewBody\"></ng-template>\n </fd-dialog-body>\n @if (viewFooter) {\n <fd-dialog-footer>\n <ng-template [ngTemplateOutlet]=\"viewFooter\"></ng-template>\n </fd-dialog-footer>\n }\n </fd-dialog>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { DynamicComponentService } from '@fundamental-ngx/cdk/utils';\nimport { ButtonComponent } from '@fundamental-ngx/core/button';\nimport { DialogModule } from '@fundamental-ngx/core/dialog';\nimport { PopoverMobileComponent } from './popover-mobile.component';\n\n/**\n * @deprecated\n * Use direct imports of components and directives.\n */\n@NgModule({\n imports: [DialogModule, ButtonComponent, PopoverMobileComponent],\n exports: [PopoverMobileComponent],\n providers: [DynamicComponentService]\n})\nexport class PopoverMobileModule {}\n","import {\n ConnectedOverlayPositionChange,\n ConnectedPosition,\n FlexibleConnectedPositionStrategy,\n Overlay,\n OverlayConfig,\n OverlayRef,\n ScrollStrategy,\n ViewportRuler\n} from '@angular/cdk/overlay';\nimport { ComponentPortal, TemplatePortal } from '@angular/cdk/portal';\nimport {\n DestroyRef,\n ElementRef,\n EventEmitter,\n Injectable,\n Injector,\n Renderer2,\n Signal,\n TemplateRef,\n ViewContainerRef,\n computed,\n effect,\n inject,\n isSignal,\n signal\n} from '@angular/core';\nimport { Observable, Subject, merge } from 'rxjs';\nimport { distinctUntilChanged, filter, startWith, takeUntil } from 'rxjs/operators';\n\nimport { Nullable, RtlService, destroyObservable, isOdd } from '@fundamental-ngx/cdk/utils';\nimport { GetDefaultPosition, Placement, PopoverFillMode, PopoverPosition } from '@fundamental-ngx/core/shared';\n\nimport { outputToObservable, takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { PopoverConfig, TriggerConfig } from '../base/popover-config.interface';\nimport { PopoverBodyComponent } from '../popover-body/popover-body.component';\nimport { PopoverContainerDirective } from '../popover-container/popover-container.directive';\n\nconst MAX_BODY_SIZE = 99999999;\n\nexport interface PopoverTemplate {\n container: ViewContainerRef;\n popoverBody: PopoverBodyComponent;\n template: TemplateRef<any>;\n}\n\n@Injectable()\nexport class PopoverService {\n /** Whether to close the popover on router navigation start. */\n readonly closeOnNavigation = signal(true);\n\n /** Whether the popover is disabled. */\n readonly disabled = signal(false);\n\n /** Maximum width of popover body in px */\n readonly maxWidth = signal<Nullable<number>>(null);\n\n /** Whether the popover should have an arrow. */\n readonly noArrow = signal(true);\n\n /** Whether the popover container needs an extra class for styling. */\n readonly additionalBodyClass = signal<string | null>(null);\n\n /** Classes that should be applied to fd-popover-body component directly. */\n readonly additionalBodyComponentClasses = signal<string | null>(null);\n\n /** Whether the popover container needs an extra class for styling. */\n readonly additionalTriggerClass = signal<string | null>(null);\n\n /** Whether the popover should close when the escape key is pressed. */\n readonly closeOnEscapeKey = signal(true);\n\n /** Whether to wrap content with fd-scrollbar directive. */\n readonly disableScrollbar = signal(false);\n\n /** The placement of the popover. */\n readonly placement = signal<Placement | null>(null);\n\n /** The trigger events that will open/close the popover. */\n readonly triggers = signal<(string | TriggerConfig)[]>(['click']);\n\n /** Whether the popover is open. */\n readonly isOpen = signal(false);\n\n /** Whether the popover should close when a click is made outside its boundaries. */\n readonly closeOnOutsideClick = signal(true);\n\n /** Whether to apply a background overlay */\n readonly applyOverlay = signal(false);\n\n /** Whether the popover should be focusTrapped. */\n readonly focusTrapped = signal(false);\n\n /** Whether to automatically move focus into the trapped region. */\n readonly focusAutoCapture = signal(false);\n\n /** Whether to move focus back after popover is closed. */\n readonly restoreFocusOnClose = signal(true);\n\n /** Scroll strategy */\n readonly scrollStrategy = signal<ScrollStrategy | null>(null);\n\n /** List of positions options for overlay. */\n readonly cdkPositions = signal<ConnectedPosition[] | null>(null);\n\n /** Preset options for the popover body width. */\n readonly fillControlMode = signal<Nullable<PopoverFillMode>>(null);\n\n /** The element to which the overlay is attached. */\n readonly appendTo = signal<Nullable<ElementRef | Element>>(null);\n\n /** Placement of the popover element. */\n readonly placementContainer = signal<Nullable<ElementRef | Element>>(null);\n\n /** Whether position shouldn't change when popover approach the corner of page */\n readonly fixedPosition = signal(false);\n\n /** Whether the popover body is resizable. */\n readonly resizable = signal(false);\n\n /** Emits when popover open state changes */\n readonly isOpenChange = new EventEmitter<boolean>();\n\n /** String content displayed inside popover body */\n stringContent: Nullable<string>;\n\n /** Template content displayed inside popover body */\n templateContent: Nullable<TemplateRef<any>>;\n\n /** @hidden */\n _onLoad = new Subject<ElementRef>();\n\n /** @hidden */\n _mobile = false;\n\n /** @hidden Aria role for the popover body. */\n protected _bodyRole: string | null = 'dialog';\n\n /** @hidden ID for the popover body. */\n protected readonly _bodyId = signal<string | null>(null);\n\n /** @hidden */\n private _eventRef: (() => void)[] = [];\n\n /** @hidden */\n private _overlayRef: OverlayRef;\n\n /** @hidden */\n private _refresh$: Observable<boolean | void>;\n\n /** @hidden */\n private _stopCloseListening$ = new Subject<void>();\n\n /** @hidden */\n private readonly _placementRefresh$ = new Subject<void>();\n\n /** @hidden */\n private _popoverBody: PopoverBodyComponent;\n\n /** @hidden */\n private _triggerElement: ElementRef<HTMLElement> | HTMLElement;\n\n /** @hidden */\n private _lastActiveElement: HTMLElement;\n\n /** @hidden */\n private _templateData: Nullable<PopoverTemplate>;\n\n /** @hidden */\n private _placementContainerValue: Nullable<ElementRef | Element>;\n\n /** @hidden */\n private _ignoreTriggers = false;\n\n /** @hidden */\n private _modalBodyClass = 'fd-overlay-active';\n\n /** @hidden */\n private _modalTriggerClass = 'fd-popover__modal';\n\n /** @hidden */\n private _isModal = false;\n\n /** An RxJS Subject that will kill the data stream upon component's destruction (for unsubscribing) */\n private readonly _destroyRef = inject(DestroyRef);\n\n /** @hidden */\n private readonly _rtlService = inject(RtlService, { optional: true });\n\n /** @hidden */\n private readonly _popoverContainer = inject(PopoverContainerDirective, { optional: true });\n\n /** @hidden */\n private readonly _overlay = inject(Overlay);\n\n /** @hidden */\n private readonly _renderer = inject(Renderer2);\n\n /** @hidden */\n private readonly _viewportRuler = inject(ViewportRuler);\n\n /** @hidden */\n private readonly _injector = inject(Injector);\n\n /** @hidden */\n private get _triggerHtmlElement(): HTMLElement {\n return this._triggerElement instanceof ElementRef ? this._triggerElement.nativeElement : this._triggerElement;\n }\n\n /** @hidden Flag to prevent infinite loop when programmatically opening/closing */\n private _programmaticChange = false;\n\n /** @hidden Computed signal for body-related config to track dependencies */\n private readonly _bodyConfig = computed(() => ({\n additionalBodyClass: this.additionalBodyClass(),\n focusTrapped: this.focusTrapped(),\n maxWidth: this.maxWidth(),\n noArrow: this.noArrow(),\n focusAutoCapture: this.focusAutoCapture(),\n disableScrollbar: this.disableScrollbar(),\n closeOnEscapeKey: this.closeOnEscapeKey(),\n additionalBodyComponentClasses: this.additionalBodyComponentClasses(),\n resizable: this.resizable()\n }));\n\n /** @hidden */\n constructor() {\n /** Merge observables - close or destroy */\n this._refresh$ = merge(this.isOpenChange, destroyObservable(this._destroyRef));\n\n // Emit isOpenChange when signal changes\n effect(() => {\n const openState = this.isOpen();\n this.isOpenChange.emit(openState);\n });\n\n // Automatically open/close popover when isOpen signal changes\n // This enables programmatic control via signal updates\n let previousOpen = this.isOpen();\n effect(() => {\n const currentOpen = this.isOpen();\n // Only act if state actually changed, we're initialized, and it's not from open/close methods\n if (currentOpen !== previousOpen && this._triggerElement && !this._programmaticChange) {\n if (currentOpen) {\n this.open();\n } else {\n this.close();\n }\n }\n previousOpen = currentOpen;\n });\n\n // Watch for changes to signals that affect the popover body and sync them\n // This ensures that when inputs change after the popover is open, the body component is updated\n effect(() => {\n // Read computed to track all body-related signal dependencies\n void this._bodyConfig();\n\n // Only sync if popover body exists and is open\n if (this._getPopoverBody() && this.isOpen()) {\n this._passVariablesToBody();\n }\n });\n\n this._destroyRef.onDestroy(() => {\n this._removeTriggerListeners();\n if (this._overlayRef) {\n this._overlayRef.detach();\n this._overlayRef.dispose();\n }\n\n if (this._isModal) {\n this._removeOverlay(this._modalBodyClass, this._modalTriggerClass);\n }\n });\n }\n\n /**\n * Method initialising the popover service - should be called, after view is initialised, params:\n * - triggerElement - element, which is equivalent for cdkOverlayOrigin, or fd-popover-control,\n * by default to this element the popover body will lbe appended and events on this element will trigger\n * popover's toggle\n * - config - configuration object using PopoverConfig interface\n * - templateData - in case of having already PopoverBodyComponent, there is way to pass container, template containing\n * PopoverComponent and PopoverComponent instance\n */\n initialise(\n triggerElement: ElementRef | HTMLElement,\n config?: PopoverConfig,\n templateData?: PopoverTemplate | TemplateRef<void> | null\n ): void {\n if (templateData instanceof TemplateRef) {\n this.templateContent = templateData;\n } else {\n this._templateData = templateData;\n }\n this._triggerElement = triggerElement;\n\n if (config) {\n this.refreshConfiguration(config);\n }\n\n this._refreshTriggerListeners();\n\n if (this.isOpen()) {\n this.open();\n }\n\n // If wrapper container height changes outside, refresh popover position.\n this._popoverContainer?.refreshPosition$.pipe(takeUntil(this._refresh$)).subscribe(() => {\n this.refreshPosition();\n });\n }\n\n /** Closes the popover. */\n close(focusActiveElement = true): void {\n if (this._overlayRef) {\n this._overlayRef.dispose();\n }\n\n this._programmaticChange = true;\n this.isOpen.set(false);\n this._programmaticChange = false;\n\n this.checkModalBackground();\n this._focusLastActiveElementBeforeOpen(focusActiveElement);\n }\n\n /** Opens the popover. */\n open(): void {\n if ((!this._overlayRef || !this._overlayRef.hasAttached()) && !this.disabled() && this._triggerElement) {\n const position = this._getPositionStrategy();\n this._overlayRef = this._overlay.create(this._getOverlayConfig(position));\n\n if (this._placementContainerValue) {\n const placementElement =\n this._placementContainerValue instanceof ElementRef\n ? this._placementContainerValue.nativeElement\n : this._placementContainerValue;\n\n placementElement.append(this._overlayRef.hostElement);\n }\n\n if (this._templateData) {\n this._attachTemplate();\n } else {\n this._attachBodyComponent();\n }\n\n this._stopCloseListening$.next();\n this._listenForPositionChange(position.positionChanges);\n\n if (this.fillControlMode()) {\n this._listenOnResize();\n }\n\n this._programmaticChange = true;\n this.isOpen.set(true);\n this._programmaticChange = false;\n\n this._listenOnClose();\n this._focusFirstTabbableElement();\n this._onLoad.next(this._getPopoverBody()._elementRef);\n\n // Update position - this will trigger the positionChanges observable\n this._overlayRef.updatePosition();\n }\n }\n\n /** method updating template or text inside rendered PopoverBody */\n updateContent(\n stringContent: Nullable<string> | Nullable<TemplateRef<any>>,\n templateContent: Nullable<TemplateRef<any>>\n ): void {\n templateContent = !templateContent\n ? typeof stringContent === 'string'\n ? null\n : stringContent\n : templateContent;\n stringContent = typeof stringContent === 'string' ? stringContent : null;\n this.stringContent = stringContent;\n this.templateContent = templateContent;\n if (this._getPopoverBody()) {\n this._passVariablesToBody();\n }\n }\n\n /** Changes background theming when modal */\n /** @hidden */\n checkModalBackground(): void {\n const isClosingConditions = (!this.closeOnOutsideClick() || !this.closeOnEscapeKey()) && this.applyOverlay();\n if (isClosingConditions && this.isOpen()) {\n this._addModalOverlay(this._modalBodyClass, this._modalTriggerClass);\n } else if (isClosingConditions && !this.isOpen()) {\n this._removeOverlay(this._modalBodyClass, this._modalTriggerClass);\n }\n }\n\n /** Toggles the popover open state */\n toggle(openAction = true, closeAction = true): void {\n if (this.isOpen()) {\n closeAction && this.close();\n } else {\n openAction && this.open();\n this.checkModalBackground();\n }\n }\n\n /**\n * Method called to change position of popover,\n * recommended to be used only when popover is opened, otherwise change position or cdkPlacement\n */\n applyNewPosition(positions: ConnectedPosition[]): void {\n const refPosition = this._getPositionStrategy(positions);\n this._listenForPositionChange(refPosition.positionChanges);\n this._overlayRef.updatePositionStrategy(refPosition);\n }\n\n /** Method called to refresh position of opened popover */\n refreshPosition(): void {\n this._overlayRef?.updatePosition();\n }\n\n /** Temporary sets the ignoring of the event triggers. */\n setIgnoreTriggers(ignore: boolean): void {\n this._ignoreTriggers = ignore;\n }\n\n /**\n * Method that sets configuration/options, it detects if there is something changed and overwrites them\n */\n refreshConfiguration(config: PopoverConfig): void {\n // Helper function to unwrap signal values\n const unwrap = <T>(val: T | Signal<T>): T => (isSignal(val) ? val() : val) as T;\n\n this._placementContainerValue = unwrap(config.placementContainer) ?? this._placementContainerValue;\n\n // Update signals if config values are provided\n if (config.closeOnNavigation !== undefined) {\n this.closeOnNavigation.set(unwrap(config.closeOnNavigation));\n }\n if (config.disabled !== undefined) {\n this.disabled.set(unwrap(config.disabled));\n }\n if (config.maxWidth !== undefined) {\n this.maxWidth.set(unwrap(config.maxWidth));\n }\n if (config.noArrow !== undefined) {\n this.noArrow.set(unwrap(config.noArrow));\n }\n if (config.additionalBodyClass !== undefined) {\n this.additionalBodyClass.set(unwrap(config.additionalBodyClass));\n }\n if (config.additionalBodyComponentClasses !== undefined) {\n this.additionalBodyComponentClasses.set(unwrap(config.additionalBodyComponentClasses));\n }\n if (config.additionalTriggerClass !== undefined) {\n this.additionalTriggerClass.set(unwrap(config.additionalTriggerClass));\n }\n if (config.closeOnEscapeKey !== undefined) {\n this.closeOnEscapeKey.set(unwrap(config.closeOnEscapeKey));\n }\n if (config.disableScrollbar !== undefined) {\n this.disableScrollbar.set(unwrap(config.disableScrollbar));\n }\n if (config.placement !== undefined) {\n this.placement.set(unwrap(config.placement));\n }\n if (config.closeOnOutsideClick !== undefined) {\n this.closeOnOutsideClick.set(unwrap(config.closeOnOutsideClick));\n }\n if (config.applyOverlay !== undefined) {\n this.applyOverlay.set(unwrap(config.applyOverlay));\n }\n if (config.focusTrapped !== undefined) {\n this.focusTrapped.set(unwrap(config.focusTrapped));\n }\n if (config.focusAutoCapture !== undefined) {\n this.focusAutoCapture.set(unwrap(config.focusAutoCapture));\n }\n if (config.restoreFocusOnClose !== undefined) {\n this.restoreFocusOnClose.set(unwrap(config.restoreFocusOnClose));\n }\n if (config.scrollStrategy !== undefined) {\n this.scrollStrategy.set(unwrap(config.scrollStrategy));\n }\n if (config.cdkPositions !== undefined) {\n this.cdkPositions.set(unwrap(config.cdkPositions));\n }\n if (config.fillControlMode !== undefined) {\n this.fillControlMode.set(unwrap(config.fillControlMode));\n }\n if (config.appendTo !== undefined) {\n this.appendTo.set(unwrap(config.appendTo));\n }\n if (config.placementContainer !== undefined) {\n this.placementContainer.set(unwrap(config.placementContainer));\n }\n if (config.fixedPosition !== undefined) {\n this.fixedPosition.set(unwrap(config.fixedPosition));\n }\n if (config.resizable !== undefined) {\n this.resizable.set(unwrap(config.resizable));\n }\n if (config.bodyRole !== undefined) {\n this._bodyRole = unwrap(config.bodyRole);\n }\n if (config.bodyId !== undefined) {\n this._bodyId.set(unwrap(config.bodyId));\n }\n\n if (config.isOpen !== undefined) {\n const isOpenValue = unwrap(config.isOpen);\n if (isOpenValue) {\n this.open();\n } else {\n this.close();\n }\n }\n\n if (config.triggers !== undefined) {\n this.triggers.set(unwrap(config.triggers));\n this._refreshTriggerListeners();\n }\n }\n\n /**\n * This method is intended to be called in order\n * to postpone the main functionality but be able\n * to enable it back in the future by initialise()\n */\n deactivate(): void {\n // Close the popover if it's open\n if (this.isOpen()) {\n this.close();\n }\n this._removeTriggerListeners();\n }\n\n /** Refresh listeners on trigger element events */\n _refreshTriggerListeners(): void {\n if (!this._triggerElement) {\n return;\n }\n\n this._removeTriggerListeners();\n\n if (this.triggers()?.length) {\n this._normalizeTriggers().forEach((trigger) => {\n this._eventRef.push(\n this._renderer.listen(this._triggerHtmlElement, trigger.trigger, (event: Event) => {\n if (this._ignoreTriggers || this.disabled()) {\n return;\n }\n const closeAction = !!trigger.closeAction;\n const openAction = !!trigger.openAction;\n this.toggle(openAction, closeAction);\n\n if (trigger.stopPropagation) {\n event.stopImmediatePropagation();\n }\n })\n );\n });\n }\n }\n\n /**\n * Updates trigger element and refreshes the listeners.\n * @param trigger Trigger element ref.\n */\n updateTriggerElement(trigger: ElementRef | HTMLElement): void {\n this._triggerElement = trigger;\n this._refreshTriggerListeners();\n }\n\n /** @hidden */\n private _normalizeTriggers(): TriggerConfig[] {\n return this.triggers().map((trigger, index) => {\n if (typeof trigger === 'object' && trigger.trigger) {\n return trigger;\n }\n\n const oddNumber = isOdd(index + 1);\n\n return {\n trigger,\n openAction: this.triggers().length === 1 || oddNumber,\n closeAction: this.triggers().length === 1 || !oddNumber,\n stopPropagation: false\n } as TriggerConfig;\n });\n }\n\n /** @hidden */\n private _getOverlayConfig(position: FlexibleConnectedPositionStrategy): OverlayConfig {\n const direction = this._getDirection();\n\n return new OverlayConfig({\n direction,\n disposeOnNavigation: this.closeOnNavigation(),\n positionStrategy: position,\n scrollStrategy: this.scrollStrategy() || this._overlay.scrollStrategies.reposition()\n });\n }\n\n /** @hidden */\n private _listenOnResize(): void {\n this._viewportRuler\n .change(15)\n .pipe(takeUntil(this._refresh$), startWith(1))\n .subscribe(() => this._applyWidthOverlay());\n }\n\n /** @hidden */\n private _getDirection(): 'rtl' | 'ltr' {\n return this._rtlService?.rtl() ? 'rtl' : 'ltr';\n }\n\n /** @hidden */\n private _getPositionStrategy(forcedPositions?: ConnectedPosition[]): FlexibleConnectedPositionStrategy {\n let resultPosition = forcedPositions ? forcedPositions : this._getPositions();\n\n if (!this.fixedPosition()) {\n resultPosition = resultPosition.concat(GetDefaultPosition(resultPosition));\n }\n\n return this._overlay\n .position()\n .flexibleConnectedTo(this.appendTo() || this._triggerElement)\n .withPositions(resultPosition)\n .withPush(false)\n .withGrowAfterOpen(true);\n }\n\n /** remove listeners from trigger element events */\n private _removeTriggerListeners(): void {\n this._eventRef.forEach((event) => event());\n this._eventRef = [];\n }\n\n private _addModalOverlay(bodyClass: string, triggerClass: string): void {\n this._renderer.addClass(document.body, bodyClass);\n this._renderer.addClass((this._triggerElement as ElementRef).nativeElement, triggerClass);\n this._isModal = true;\n }\n\n private _removeOverlay(bodyClass: string, triggerClass: string): void {\n this._renderer.removeClass(document.body, bodyClass);\n this._renderer.removeClass((this._triggerElement as ElementRef).nativeElement, triggerClass);\n this._isModal = false;\n }\n\n /** Attach template containing popover body to overlay */\n private _attachTemplate(): void {\n if (this._templateData) {\n this._overlayRef.attach(new TemplatePortal(this._templateData.template, this._templateData.container));\n }\n // Pass variables AFTER attaching to ensure CDK directives are properly initialized\n this._passVariablesToBody();\n }\n\n /** Create PopoverBodyComponent and attach it into overlay */\n private _attachBodyComponent(): void {\n const overlay = this._overlayRef.attach(new ComponentPortal(PopoverBodyComponent, null, this._injector));\n this._popoverBody = overlay.instance;\n this._passVariablesToBody();\n }\n\n /** @hidden */\n private _listenForPositionChange(positionChange: Observable<ConnectedOverlayPositionChange>): void {\n this._placementRefresh$.next();\n positionChange\n .pipe(\n filter(() => !this.noArrow() && !!this._getPopoverBody()),\n distinctUntilChanged((previous, current) => previous.connectionPair === current.connectionPair),\n takeUntil(this._placementRefresh$),\n takeUntilDestroyed(this._destroyRef)\n )\n .subscribe((event) => this._getPopoverBody()._setArrowStyles(event.connectionPair, this._getDirection()));\n }\n\n /** Subscribe to close events from CDK Overlay, to throw proper events, change values */\n private _listenOnClose(): void {\n const body = this._getPopoverBody();\n const closeEvents$ = merge(\n this._overlayRef.detachments(),\n outputToObservable(body.onClose),\n this._outsideClicks$()\n );\n // Only use _stopCloseListening$ to stop listening, not _refresh$\n // _refresh$ can emit due to signal effects and would complete the subscription prematurely\n closeEvents$.pipe(takeUntil(this._stopCloseListening$), takeUntilDestroyed(this._destroyRef)).subscribe(() => {\n this.close();\n });\n }\n\n /** Listener for click events */\n private _outsideClicks$(): Observable<MouseEvent> {\n return merge(this._overlayRef.backdropClick(), this._overlayRef._outsidePointerEvents).pipe(\n filter((event) => this._shouldClose(event))\n );\n }\n\n /** @hidden */\n private _shouldClose(event: MouseEvent): boolean {\n return (\n this.isOpen() &&\n this.closeOnOutsideClick() &&\n !this._triggerContainsTarget(event) &&\n !this._targetIsPopoverMobileDialog(event)\n );\n }\n\n /** @hidden */\n private _targetIsPopoverMobileDialog(event: MouseEvent): boolean {\n if (this._mobile) {\n let el = (event.target as HTMLElement).parentElement;\n while (el) {\n if (el.hasAttribute('data-mobile-popover')) {\n return true;\n } else {\n el = el.parentElement;\n }\n }\n }\n\n return false;\n }\n\n /** @hidden */\n private _getEventTarget(event: Event): EventTarget | null {\n return event.composedPath ? event.composedPath()[0] : event.target;\n }\n\n /** @hidden */\n private _triggerContainsTarget(event: Event): boolean {\n return this._triggerHtmlElement.contains(this._getEventTarget(event) as HTMLElement);\n }\n\n /** @hidden */\n private _getPositions(): ConnectedPosition[] {\n const positions = this.cdkPositions();\n if (positions) {\n return positions;\n }\n\n const currentPlacement = this.placement();\n if (currentPlacement) {\n return [PopoverPosition.getCdkPlacement(currentPlacement, this._getDirection())];\n }\n\n return [];\n }\n\n /** @hidden */\n private _applyWidthOverlay(): void {\n const maxWidthLimit = this.maxWidth() ?? MAX_BODY_SIZE;\n const width = Math.min(this._getTriggerWidth(), maxWidthLimit);\n const fillMode = this.fillControlMode();\n if (fillMode === 'at-least') {\n this._getPopoverBody()._popoverBodyMinWidth.set(width);\n } else if (fillMode === 'equal') {\n this._getPopoverBody()._popoverBodyWidth.set(width);\n }\n }\n\n /** @hidden */\n private _passVariablesToBody(): void {\n const body = this._getPopoverBody();\n body.text.set(this.stringContent);\n body._additionalBodyClass.set(this.additionalBodyClass());\n body._focusTrapped.set(this.focusTrapped());\n body._maxWidth.set(this.maxWidth());\n body._noArrow.set(this.noArrow());\n body._focusAutoCapture.set(this.focusAutoCapture());\n body._disableScrollbar.set(this.disableScrollbar());\n if (this.templateContent) {\n body._templateToDisplay.set(this.templateContent);\n }\n body._closeOnEscapeKey.set(this.closeOnEscapeKey());\n body._bodyRole.set(this._bodyRole);\n body._bodyId.set(this._bodyId());\n body._resizable.set(this.resizable());\n body._setBodyComponentClasses(this.additionalBodyComponentClasses());\n }\n\n /** @hidden */\n private _getTriggerWidth(): number {\n return this._triggerHtmlElement.offsetWidth;\n }\n\n /** @hidden */\n private _getPopoverBody(): PopoverBodyComponent {\n return this._templateData?.popoverBody || this._popoverBody;\n }\n\n /** @hidden */\n private _focusFirstTabbableElement(focusLastElement = true): void {\n if (focusLastElement && this.focusAutoCapture()) {\n this._lastActiveElement = <HTMLElement>document.activeElement;\n this._getPopoverBody()?._focusFirstTabbableElement();\n }\n }\n\n /** @hidden */\n private _focusLastActiveElementBeforeOpen(focusLastElement = true): void {\n if (focusLastElement && this.restoreFocusOnClose() && this.focusAutoCapture() && this._lastActiveElement) {\n this._lastActiveElement.focus();\n }\n }\n}\n","import { Directive, ElementRef, HostBinding, inject, Injector, Input, OnDestroy } from '@angular/core';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { Subscription } from 'rxjs';\nimport { PopoverComponent } from './popover.component';\n\n@Directive({\n selector: '[fdPopoverTrigger], [fd-popover-trigger]',\n standalone: true\n})\nexport class PopoverTriggerDirective implements OnDestroy {\n /** Set reference to Popover Component */\n @Input('fdPopoverTrigger')\n set popover(popover: Nullable<PopoverComponent>) {\n if (popover) {\n popover.trigger.set(this._elementRef);\n this._listenOnExpanded(popover);\n }\n this._setAriaAttributes(popover);\n }\n\n /** @hidden */\n @HostBinding('attr.aria-haspopup')\n ariaHasPopup: Nullable<boolean>;\n\n /** @hidden */\n @HostBinding('attr.aria-controls')\n ariaControls: Nullable<string>;\n\n /** @hidden */\n @HostBinding('attr.aria-expanded')\n ariaExpanded: Nullable<boolean>;\n\n /** @hidden */\n private _isExpandedSubscription: Subscription;\n\n /** @hidden */\n private readonly _injector = inject(Injector);\n\n /** @hidden */\n constructor(private _elementRef: ElementRef) {}\n\n /** @hidden */\n ngOnDestroy(): void {\n this._unsubscribeExpandedListener();\n }\n\n /** @hidden */\n private _listenOnExpanded(popover: PopoverComponent): void {\n this._unsubscribeExpandedListener();\n if (popover) {\n // Convert signal to observable for reactive updates\n const isOpen$ = toObservable(popover.isOpen, { injector: this._injector });\n this._isExpandedSubscription = isOpen$.subscribe((isOpen) => (this.ariaExpanded = isOpen));\n }\n }\n\n /** @hidden */\n private _setAriaAttributes(popover: Nullable<PopoverComponent>): void {\n this.ariaHasPopup = !!popover;\n this.ariaControls = popover ? popover.id() : null;\n }\n\n /** @hidden */\n private _unsubscribeExpandedListener(): void {\n if (this._isExpandedSubscription) {\n this._isExpandedSubscription.unsubscribe();\n }\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport const FD_POPOVER_COMPONENT = new InjectionToken('FdPopoverComponent');\n","import {\n AfterContentInit,\n afterNextRender,\n AfterViewInit,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n ComponentRef,\n computed,\n contentChild,\n DestroyRef,\n effect,\n ElementRef,\n inject,\n Injector,\n input,\n model,\n OnDestroy,\n output,\n Renderer2,\n TemplateRef,\n viewChild,\n ViewContainerRef,\n ViewEncapsulation\n} from '@angular/core';\n\nimport { DOWN_ARROW } from '@angular/cdk/keycodes';\nimport { CdkOverlayOrigin, ConnectedPosition } from '@angular/cdk/overlay';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { DynamicComponentService, KeyUtil } from '@fundamental-ngx/cdk/utils';\nimport { contentDensityObserverProviders } from '@fundamental-ngx/core/content-density';\nimport { MobileModeConfig } from '@fundamental-ngx/core/mobile-mode';\nimport { Placement, PopoverFillMode } from '@fundamental-ngx/core/shared';\nimport { PopoverConfig, TriggerConfig } from './base/popover-config.interface';\nimport { PopoverBodyDirective } from './popover-body.directive';\nimport { PopoverBodyComponent } from './popover-body/popover-body.component';\nimport { PopoverControlComponent } from './popover-control/popover-control.component';\nimport { PopoverMobileComponent } from './popover-mobile/popover-mobile.component';\nimport { PopoverService, PopoverTemplate } from './popover-service/popover.service';\nimport { POPOVER_COMPONENT } from './popover.interface';\nimport { FD_POPOVER_COMPONENT } from './tokens';\n\nexport const SELECT_CLASS_NAMES = {\n selectControl: 'fd-select__control'\n};\n\nlet cdkPopoverUniqueId = 0;\n\n/**\n * The popover is a wrapping component that accepts a *control* as well as a *body*.\n * The control is what will trigger the opening of the actual popover, which is called the body.\n * By default, popovers are triggered by click. This can be customized through the *triggers* input.\n */\n@Component({\n selector: 'fd-popover',\n templateUrl: './popover.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n providers: [\n PopoverService,\n {\n provide: FD_POPOVER_COMPONENT,\n useExisting: PopoverComponent\n },\n contentDensityObserverProviders()\n ],\n host: {\n class: 'fd-popover-custom',\n '[class.fd-popover-custom--mobile]': 'mobile()',\n '[class.fd-popover-custom--disabled]': 'disabled()',\n '[attr.id]': 'id()',\n '(keydown.escape)': '_onEscapeKey($event)',\n '(keydown.space)': '_onKeyDown($event)',\n '(keydown.enter)': '_onKeyDown($event)'\n },\n imports: [CdkOverlayOrigin, A11yModule]\n})\nexport class PopoverComponent implements AfterViewInit, AfterContentInit, OnDestroy {\n /**\n * Configuration object for popover settings.\n * When provided, these settings will be merged with individual input properties.\n * Individual inputs take precedence over config object values.\n */\n readonly config = input<PopoverConfig>({});\n\n /** Tooltip for popover */\n readonly title = input<string>('');\n\n /** Reference to popover trigger element */\n readonly trigger = model<ElementRef | HTMLElement | null>(null);\n\n /** Id of the popover. If none is provided, one will be generated. */\n readonly id = input<string>(`fd-popover-${cdkPopoverUniqueId++}`);\n\n /** Whether the popover component should be displayed in mobile mode. */\n readonly mobile = input(false, { transform: booleanAttribute });\n\n /** Config for the popover in mobile mode */\n readonly mobileConfig = input<MobileModeConfig>({ hasCloseButton: true });\n\n /**\n * Whether the popover should prevent page scrolling when space key is pressed.\n **/\n readonly preventSpaceKeyScroll = input(true, { transform: booleanAttribute });\n\n /** Popover placement */\n readonly placement = input<Placement>('bottom-start');\n\n /** Maximum width of popover body in px, prevents from overextending body by `fillControlMode` */\n readonly maxWidth = input<number | null>(null);\n\n /**\n * Preset options for the popover body width.\n * * `at-least` will apply a minimum width to the body equivalent to the width of the control.\n * * `equal` will apply a width to the body equivalent to the width of the control.\n * * Leave blank for no effect.\n */\n readonly fillControlMode = input<PopoverFillMode | null>(null);\n\n /** Whether clicking outside popover should close it */\n readonly closeOnOutsideClick = input(true, { transform: booleanAttribute });\n\n /** Whether escape key should close the popover */\n readonly closeOnEscapeKey = input(true, { transform: booleanAttribute });\n\n /** Whether the popover is disabled */\n readonly disabled = input(false, { transform: booleanAttribute });\n\n /** Popover trigger events configuration */\n readonly triggers = input<(string | TriggerConfig)[]>(['click']);\n\n /** Whether the popover should trap focus */\n readonly focusTrapped = input(true, { transform: booleanAttribute });\n\n /** Whether focus should be automatically captured when popover opens */\n readonly focusAutoCapture = input(true, { transform: booleanAttribute });\n\n /**\n * Whether to move the focus after popover is closed to the last focused element before popover was opened.\n */\n readonly restoreFocusOnClose = input(true, { transform: booleanAttribute });\n\n /** Whether the arrow should be hidden */\n readonly noArrow = input(true, { transform: booleanAttribute });\n\n /** Whether scrollbar should be disabled */\n readonly disableScrollbar = input(false, { transform: booleanAttribute });\n\n /** The element to which the overlay is attached. By default it is body */\n readonly appendTo = input<ElementRef | Element | null>(null);\n\n /** Placement of the popover element */\n readonly placementContainer = input<ElementRef | Element | null>(null);\n\n /** Scroll strategy for the overlay */\n readonly scrollStrategy = input<any>(null);\n\n /** List of position options for CDK overlay */\n readonly cdkPositions = input<ConnectedPosition[] | null>(null);\n\n /** Whether to apply a background overlay */\n readonly applyOverlay = input(false, { transform: booleanAttribute });\n\n /** Additional CSS class for the popover body container */\n readonly additionalBodyClass = input<string | null>(null);\n\n /** Additional CSS class for the popover trigger element */\n readonly additionalTriggerClass = input<string | null>(null);\n\n /** Whether to close the popover on router navigation start */\n readonly closeOnNavigation = input(true, { transform: booleanAttribute });\n\n /** Whether position shouldn't change when popover approaches the corner of page */\n readonly fixedPosition = input(false, { transform: booleanAttribute });\n\n /** Whether the popover body is resizable */\n readonly resizable = input(false, { transform: booleanAttribute });\n\n /** Two-way binding for popover open state */\n readonly isOpen = model(false);\n\n /** Event emitted when the state of the isOpen property changes. */\n readonly isOpenChange = output<boolean>();\n\n /** Event emitted right before the popover is being opened. */\n readonly beforeOpen = output<void>();\n\n /** @hidden */\n readonly templateRef = viewChild('templateRef', { read: TemplateRef<any> });\n\n /** @hidden */\n readonly container = viewChild('container', { read: ViewContainerRef });\n\n /** @hidden */\n readonly triggerOrigin = viewChild(CdkOverlayOrigin);\n\n /** @hidden */\n readonly popoverBody = contentChild(PopoverBodyComponent);\n\n /** @hidden */\n readonly popoverBodyDirective = contentChild(PopoverBodyDirective);\n\n /** @hidden */\n readonly popoverControl = contentChild(PopoverControlComponent);\n\n /** @hidden - template for Dialog body content */\n readonly popoverBodyContentTemplate = contentChild<TemplateRef<any>>('popoverBodyContent');\n\n /** @hidden - template for Dialog footer content */\n readonly popoverFooterContentTemplate = contentChild<TemplateRef<any>>('popoverFooterContent');\n\n /** @hidden */\n get _triggerElement(): HTMLElement | null {\n const trigger = this.trigger();\n if (!trigger) {\n return null;\n }\n return trigger instanceof ElementRef ? trigger.nativeElement : trigger;\n }\n\n /** @hidden */\n private readonly _popoverService = inject(PopoverService);\n\n /** @hidden */\n private readonly _renderer = inject(Renderer2);\n\n /** @hidden */\n private readonly _viewContainerRef = inject(ViewContainerRef);\n\n /** @hidden */\n private readonly _injector = inject(Injector);\n\n /** @hidden */\n private readonly _dynamicComponentService = inject(DynamicComponentService, { optional: true });\n\n /** @hidden */\n private readonly _destroyRef = inject(DestroyRef);\n\n /** @hidden */\n private _clickEventListener: (() => void) | null = null;\n\n /** @hidden */\n private _mobileModeComponentRef: ComponentRef<PopoverMobileComponent> | null = null;\n\n /** @hidden Flag to prevent circular sync between component and service */\n private _syncingIsOpen = false;\n\n /** @hidden Computed signal that merges config with individual inputs */\n private readonly _effectiveConfig = computed(() => {\n const cfg = this.config();\n return {\n placement: this.placement() ?? cfg.placement ?? 'bottom-start',\n maxWidth: this.maxWidth() ?? cfg.maxWidth ?? null,\n fillControlMode: this.fillControlMode() ?? cfg.fillControlMode ?? null,\n closeOnOutsideClick: this.closeOnOutsideClick() ?? cfg.closeOnOutsideClick ?? true,\n closeOnEscapeKey: this.closeOnEscapeKey() ?? cfg.closeOnEscapeKey ?? true,\n disabled: this.disabled() ?? cfg.disabled ?? false,\n triggers: this.triggers() ?? cfg.triggers ?? ['click'],\n focusTrapped: this.focusTrapped() ?? cfg.focusTrapped ?? true,\n focusAutoCapture: this.focusAutoCapture() ?? cfg.focusAutoCapture ?? true,\n restoreFocusOnClose: this.restoreFocusOnClose() ?? cfg.restoreFocusOnClose ?? true,\n noArrow: this.noArrow() ?? cfg.noArrow ?? true,\n disableScrollbar: this.disableScrollbar() ?? cfg.disableScrollbar ?? false,\n appendTo: this.appendTo() ?? cfg.appendTo ?? null,\n placementContainer: this.placementContainer() ?? cfg.placementContainer ?? null,\n scrollStrategy: this.scrollStrategy() ?? cfg.scrollStrategy ?? null,\n cdkPositions: this.cdkPositions() ?? cfg.cdkPositions ?? null,\n applyOverlay: this.applyOverlay() ?? cfg.applyOverlay ?? false,\n additionalBodyClass: this.additionalBodyClass() ?? cfg.additionalBodyClass ?? null,\n additionalTriggerClass: this.additionalTriggerClass() ?? cfg.additionalTriggerClass ?? null,\n closeOnNavigation: this.closeOnNavigation() ?? cfg.closeOnNavigation ?? true,\n fixedPosition: this.fixedPosition() ?? cfg.fixedPosition ?? false,\n resizable: this.resizable() ?? cfg.resizable ?? false\n };\n });\n\n /** @hidden */\n constructor() {\n // Sync component → service and emit events\n let previousIsOpen = false;\n effect(() => {\n const currentIsOpen = this.isOpen();\n\n // Emit beforeOpen when transitioning from closed to open\n if (currentIsOpen && !previousIsOpen) {\n this.beforeOpen.emit();\n }\n\n // Emit isOpenChange when state changes\n if (currentIsOpen !== previousIsOpen) {\n this.isOpenChange.emit(currentIsOpen);\n }\n\n // Sync to service only if not already syncing (prevents loop)\n if (!this._syncingIsOpen) {\n this._syncingIsOpen = true;\n this._popoverService.isOpen.set(currentIsOpen);\n this._syncingIsOpen = false;\n }\n previousIsOpen = currentIsOpen;\n });\n\n // Subscribe to service changes for bidirectional sync using afterNextRender\n // to ensure service is fully initialized\n afterNextRender(\n () => {\n // Service will emit when it closes/opens programmatically (escape key, close button, etc.)\n this._popoverService.isOpenChange\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe((serviceIsOpen) => {\n // Only update if different and not already syncing (prevents loop)\n if (!this._syncingIsOpen && this.isOpen() !== serviceIsOpen) {\n this._syncingIsOpen = true;\n this.isOpen.set(serviceIsOpen);\n this._syncingIsOpen = false;\n }\n });\n },\n { injector: this._injector }\n );\n\n // Watch effective config changes and sync to service\n // Using computed signal eliminates the need to read all signals individually\n effect(() => {\n const effectiveConfig = this._effectiveConfig();\n const triggerValue = this.trigger();\n\n // Always sync disabled state to service (for both trigger directive and control usage)\n this._popoverService.disabled.set(effectiveConfig.disabled);\n\n // Full sync only when trigger is set (for fdPopoverTrigger directive)\n if (triggerValue) {\n this._syncToService(effectiveConfig, triggerValue);\n }\n });\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._setupView();\n }\n\n /** @hidden */\n ngAfterContentInit(): void {\n const control = this.popoverControl();\n if (control && this.triggers().includes('click')) {\n control._tabbable = true;\n }\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._destroyMobileComponent();\n this._destroyEventListeners();\n }\n\n /** Toggles menu open/close state */\n toggle(): void {\n if (this.isOpen()) {\n this.close();\n } else {\n this.open();\n }\n }\n\n /** Opens the popover. */\n open(): void {\n this._popoverService.open();\n }\n\n /** Closes the popover. */\n close(focusActiveElement = true): void {\n this._popoverService.close(focusActiveElement);\n }\n\n /** Temporary sets the ignoring of the event triggers. */\n setIgnoreTriggers(ignore: boolean): void {\n this._popoverService.setIgnoreTriggers(ignore);\n }\n\n /**\n * Method called to change position of popover,\n * recommended to be used only when popover is opened, otherwise change position or cdkPlacement\n */\n applyNewPosition(positions: ConnectedPosition[]): void {\n this._popoverService.applyNewPosition(positions);\n }\n\n /** Method called to refresh position of opened popover */\n refreshPosition(): void {\n this._popoverService.refreshPosition();\n }\n\n /** Handler for alt + arrow down keydown */\n triggerKeyDownHandler(event: KeyboardEvent): void {\n if (KeyUtil.isKeyCode(event, DOWN_ARROW) && event.altKey && !this.disabled()) {\n this.open();\n event.preventDefault();\n event.stopPropagation();\n }\n }\n\n /** Handler escape keydown */\n protected _onEscapeKey(event: Event): void {\n if (this.closeOnEscapeKey() && this.isOpen()) {\n // In case if popover belongs to the element inside dialog\n event.preventDefault();\n event.stopImmediatePropagation();\n this.popoverBody()?.onClose.emit();\n }\n }\n\n /** @hidden */\n protected _onKeyDown(event: Event): void {\n if (!this.preventSpaceKeyScroll()) {\n return;\n }\n const activeElement = document.activeElement;\n if (\n // popoverControl will be undefined when popover is used from \"fdPopoverTrigger\"\n this.popoverControl()?.elRef.nativeElement.children[0] === activeElement &&\n activeElement?.tagName !== 'INPUT' &&\n activeElement?.tagName !== 'TEXTAREA' &&\n !activeElement?.classList.contains(SELECT_CLASS_NAMES.selectControl)\n ) {\n // prevent page scrolling on Space keydown\n event.preventDefault();\n this._popoverService.toggle();\n }\n }\n\n /** @hidden - Sync all input signals to the service */\n private _syncToService(\n effectiveConfig: ReturnType<typeof this._effectiveConfig>,\n triggerValue: ElementRef | HTMLElement\n ): void {\n this._popoverService.placement.set(effectiveConfig.placement);\n this._popoverService.maxWidth.set(effectiveConfig.maxWidth);\n this._popoverService.fillControlMode.set(effectiveConfig.fillControlMode);\n this._popoverService.closeOnOutsideClick.set(effectiveConfig.closeOnOutsideClick);\n this._popoverService.closeOnEscapeKey.set(effectiveConfig.closeOnEscapeKey);\n this._popoverService.disabled.set(effectiveConfig.disabled);\n this._popoverService.triggers.set(effectiveConfig.triggers);\n this._popoverService.focusTrapped.set(effectiveConfig.focusTrapped);\n this._popoverService.focusAutoCapture.set(effectiveConfig.focusAutoCapture);\n this._popoverService.restoreFocusOnClose.set(effectiveConfig.restoreFocusOnClose);\n this._popoverService.noArrow.set(effectiveConfig.noArrow);\n this._popoverService.disableScrollbar.set(effectiveConfig.disableScrollbar);\n this._popoverService.appendTo.set(effectiveConfig.appendTo);\n this._popoverService.placementContainer.set(effectiveConfig.placementContainer);\n this._popoverService.scrollStrategy.set(effectiveConfig.scrollStrategy);\n this._popoverService.cdkPositions.set(effectiveConfig.cdkPositions);\n this._popoverService.applyOverlay.set(effectiveConfig.applyOverlay);\n this._popoverService.additionalBodyClass.set(effectiveConfig.additionalBodyClass);\n this._popoverService.additionalTriggerClass.set(effectiveConfig.additionalTriggerClass);\n this._popoverService.closeOnNavigation.set(effectiveConfig.closeOnNavigation);\n this._popoverService.fixedPosition.set(effectiveConfig.fixedPosition);\n this._popoverService.resizable.set(effectiveConfig.resizable);\n this._popoverService.isOpen.set(this.isOpen());\n this._popoverService.updateTriggerElement(triggerValue);\n }\n\n /** @hidden Select and instantiate popover view mode */\n private _setupView(): void {\n if (!this.mobile()) {\n this._popoverService._mobile = false;\n if (!this.popoverBody()) {\n this._popoverService.templateContent = this.templateRef() || null;\n }\n const triggerOriginRef = this.triggerOrigin();\n const triggerElement = this._triggerElement || (triggerOriginRef ? triggerOriginRef.elementRef : null);\n if (triggerElement) {\n this._popoverService.initialise(\n triggerElement,\n this._effectiveConfig() as PopoverConfig,\n this._getPopoverBodyContent()\n );\n }\n } else {\n this._setupMobileMode();\n }\n }\n\n /**\n * Depending on a used popover body type, returns a popover body content\n **/\n private _getPopoverBodyContent(): PopoverTemplate | TemplateRef<void> | null {\n const body = this.popoverBody();\n const templateRef = this.templateRef();\n const container = this.container();\n\n if (body && templateRef && container) {\n return {\n template: templateRef,\n container,\n popoverBody: body\n };\n }\n const bodyDirective = this.popoverBodyDirective();\n if (bodyDirective) {\n return bodyDirective.templateRef;\n }\n return null;\n }\n\n /** @hidden Open Popover in mobile mode */\n private async _setupMobileMode(): Promise<void> {\n if (!this._dynamicComponentService) {\n return;\n }\n\n const injector = Injector.create({\n providers: [{ provide: POPOVER_COMPONENT, useValue: this }],\n parent: this._injector\n });\n\n this._popoverService._mobile = true;\n\n this._mobileModeComponentRef = this._dynamicComponentService.createDynamicComponent(\n {\n popoverBodyContentTemplate: this.popoverBodyContentTemplate(),\n popoverFooterContentTemplate: this.popoverFooterContentTemplate()\n },\n PopoverMobileComponent,\n {\n containerRef: this._viewContainerRef\n },\n { injector }\n );\n\n this._listenOnTriggerRefClicks();\n }\n\n /** @hidden - Listen on popover trigger ref clicks */\n private _listenOnTriggerRefClicks(): void {\n this._destroyEventListeners();\n\n const triggerElement = this.trigger();\n if (triggerElement && this.mobile()) {\n this._clickEventListener = this._renderer.listen(this._triggerElement, 'click', () => {\n if (!this.disabled()) {\n this.toggle();\n }\n });\n }\n }\n\n /**\n * @hidden\n * This is going to be removed in feature, on dialog and dynamic service component refactor\n */\n private _destroyEventListeners(): void {\n if (this._clickEventListener) {\n this._clickEventListener();\n this._clickEventListener = null;\n }\n }\n\n /** @hidden */\n private _destroyMobileComponent(): void {\n if (this._mobileModeComponentRef) {\n this._mobileModeComponentRef.destroy();\n }\n }\n}\n","@if (!trigger()) {\n <div\n cdkOverlayOrigin\n class=\"fd-popover__control\"\n [class]=\"additionalTriggerClass()\"\n (keydown)=\"triggerKeyDownHandler($event)\"\n >\n <ng-content select=\"fd-popover-control, [fdPopoverControl]\"></ng-content>\n </div>\n}\n<ng-template #templateRef>\n <ng-content select=\"fd-popover-body\"></ng-content>\n <ng-content></ng-content>\n</ng-template>\n<ng-container #container></ng-container>\n","import { NgModule } from '@angular/core';\n\nimport { PopoverBodyFooterDirective } from './popover-body/popover-body-directives/popover-body-footer.directive';\nimport { PopoverBodyHeaderDirective } from './popover-body/popover-body-directives/popover-body-header.directive';\nimport { PopoverBodyComponent } from './popover-body/popover-body.component';\nimport { PopoverControlComponent } from './popover-control/popover-control.component';\n\nimport { PopoverBodyDirective } from './popover-body.directive';\nimport { PopoverContainerDirective } from './popover-container/popover-container.directive';\nimport { PopoverTriggerDirective } from './popover-trigger.directive';\nimport { PopoverComponent } from './popover.component';\n\n/**\n * @deprecated\n * Use direct imports of components and directives.\n */\n@NgModule({\n imports: [\n PopoverControlComponent,\n PopoverBodyComponent,\n PopoverBodyHeaderDirective,\n PopoverBodyFooterDirective,\n PopoverComponent,\n PopoverTriggerDirective,\n PopoverContainerDirective,\n PopoverBodyDirective\n ],\n exports: [\n PopoverControlComponent,\n PopoverBodyComponent,\n PopoverBodyHeaderDirective,\n PopoverBodyFooterDirective,\n PopoverComponent,\n PopoverTriggerDirective,\n PopoverContainerDirective,\n PopoverBodyDirective\n ]\n})\nexport class PopoverModule {}\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-popover.mjs","sources":["../../../../libs/core/popover/base/base-popover.class.ts","../../../../libs/core/popover/popover-body.directive.ts","../../../../libs/core/popover/popover-body/popover-body-directives/popover-body-footer.directive.ts","../../../../libs/core/popover/popover-body/popover-body-directives/popover-body-header.directive.ts","../../../../libs/core/popover/popover-body/popover-body.component.ts","../../../../libs/core/popover/popover-body/popover-body.component.html","../../../../libs/core/popover/popover-container/popover-container.directive.ts","../../../../libs/core/popover/popover-control/popover-control.component.ts","../../../../libs/core/popover/popover.interface.ts","../../../../libs/core/popover/popover-mobile/popover-mobile.component.ts","../../../../libs/core/popover/popover-mobile/popover-mobile.component.html","../../../../libs/core/popover/popover-mobile/popover-mobile.module.ts","../../../../libs/core/popover/popover-service/popover.service.ts","../../../../libs/core/popover/popover-trigger.directive.ts","../../../../libs/core/popover/tokens.ts","../../../../libs/core/popover/popover.component.ts","../../../../libs/core/popover/popover.component.html","../../../../libs/core/popover/popover.module.ts","../../../../libs/core/popover/utils/build-popover-config.ts","../../../../libs/core/popover/fundamental-ngx-core-popover.ts"],"sourcesContent":["import { ConnectedPosition, ScrollStrategy } from '@angular/cdk/overlay';\nimport { Directive, ElementRef, signal } from '@angular/core';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { Placement, PopoverFillMode } from '@fundamental-ngx/core/shared';\nimport { TriggerConfig } from './popover-config.interface';\n\n// Re-export for backward compatibility\nexport { TriggerConfig };\n\n/**\n * @deprecated Use the {@link PopoverConfig} interface instead of extending this class.\n * This class will be removed in a future major version.\n *\n * Migration guide:\n * - For components: Use regular `input()` signal properties and pass configuration to PopoverService\n * - For services: Use the PopoverConfig interface to define configuration objects\n * - See {@link PopoverComponent} and {@link MenuComponent} for modern implementation examples\n *\n * Configuration object for popover settings.\n * This is used by PopoverService and was extended by PopoverComponent and MenuComponent.\n *\n * **For Components:** Use signal inputs with the `input()` function to declare these properties.\n * Components should also define their own `isOpenChange = output<boolean>()` and `beforeOpen = output<void>()` outputs.\n *\n * **For Services:** Use regular signal instances to store these values.\n */\n@Directive({\n host: {\n '[class.fd-popover-custom--disabled]': 'disabled()'\n }\n})\nexport class BasePopoverClass {\n /** Whether to close the popover on router navigation start. */\n closeOnNavigation = signal(true);\n\n /** Whether the popover is disabled. */\n disabled = signal(false);\n\n /** Maximum width of popover body in px, prevents from overextending body by `fillControlMode` */\n maxWidth = signal<Nullable<number>>(null);\n\n /** Whether the popover should have an arrow. */\n noArrow = signal(true);\n\n /** Whether the popover container needs an extra class for styling. */\n additionalBodyClass = signal<string | null>(null);\n\n /** Classes that should be applied to fd-popover-body component directly. */\n additionalBodyComponentClasses = signal<string | null>(null);\n\n /** Whether the popover container needs an extra class for styling. */\n additionalTriggerClass = signal<string | null>(null);\n\n /** Whether the popover should close when the escape key is pressed. */\n closeOnEscapeKey = signal(true);\n\n /** Whether to wrap content with fd-scrollbar directive. */\n disableScrollbar = signal(false);\n\n /**\n * The placement of the popover.\n * It can be one of:\n * top, top-start, top-end, bottom, bottom-start, bottom-end,\n * right, right-start, right-end, left, left-start, left-end.\n */\n placement = signal<Placement | null>(null);\n\n /**\n * The trigger events that will open/close the popover.\n * Accepts any [HTML DOM Events](https://www.w3schools.com/jsref/dom_obj_event.asp) or a config object for the corresponding event.\n * Using the config object allows to specify whether an event should apply both for open and close actions or only some of them.\n *\n * If array of triggers consists only of one event, it will be treated at a toggle event (open and close)\n * If array of trigger consists of more than one event, each odd event will be treated as an open event for the popover,\n * and each even event will be treated as closing event for the popover.\n *\n * Consider the following value for `triggers`:\n * ```\n * [\n * 'click' // basically it's an alias for \"{ trigger: 'click', openAction: true, closeAction: true }\"\n * ]\n * ```\n * ```\n * [\n * 'mouseenter' // Shortcut for \"{ trigger: 'mouseenter', openAction: true, closeAction: false }\", and will only open the popover.\n * 'mouseleave' // Shortcut for \"{ trigger: 'mouseleave', openAction: false, closeAction: true }\" and will only close the popover.\n * ]\n * ```\n * ```\n * [\n * { trigger: 'mouseenter', openAction: true, closeAction: true }, // \"mouseenter\" will toggle the popover.\n * { trigger: 'mouseleave', openAction: true, closeAction: true } // \"mouseleave\" will toggle the popover.\n * ]\n * ```\n *\n * @default ['click']\n */\n triggers = signal<(string | TriggerConfig)[]>(['click']);\n\n /** Whether the popover is open. Can be used through two-way binding. */\n isOpen = signal(false);\n\n /** Whether the popover should close when a click is made outside its boundaries. */\n closeOnOutsideClick = signal(true);\n\n /** Wether to apply a background overlay */\n applyOverlay = signal(false);\n\n /** Whether the popover should be focusTrapped. */\n focusTrapped = signal(false);\n\n /**\n * Whether the popover should automatically move focus into the trapped region upon\n * initialization and return focus to the previous activeElement upon destruction.\n */\n focusAutoCapture = signal(false);\n\n /**\n * Whether to move the focus after popover is closed to the last focused element before popover was opened.\n */\n restoreFocusOnClose = signal(true);\n\n /**\n * Scroll strategy, there are 4 accepted\n * - CloseScrollStrategy\n * - NoopScrollStrategy\n * - BlockScrollStrategy\n * - RepositionScrollStrategy ( default )\n */\n scrollStrategy = signal<ScrollStrategy | null>(null);\n\n /**\n * List of positions options for overlay defined by angular CDK.\n * Positions will be taken in order, same like on array. If first position provided doesn't fit to window,\n * another will be used\n * More information can be found in https://material.angular.io/cdk/overlay/api\n */\n cdkPositions = signal<ConnectedPosition[] | null>(null);\n\n /**\n * Preset options for the popover body width.\n * * `at-least` will apply a minimum width to the body equivalent to the width of the control.\n * * `equal` will apply a width to the body equivalent to the width of the control.\n * * Leave blank for no effect.\n */\n fillControlMode = signal<Nullable<PopoverFillMode>>(null);\n\n /** The element to which the overlay is attached. By default it is body */\n appendTo = signal<Nullable<ElementRef | Element>>(null);\n\n /** Placement of the popover element. */\n placementContainer = signal<Nullable<ElementRef | Element>>(null);\n\n /** Whether position shouldn't change, when popover approach the corner of page */\n fixedPosition = signal(false);\n\n /** Whether the popover body is resizable. */\n resizable = signal(false);\n\n /** @hidden Aria role for the popover body. */\n protected _bodyRole: string | null = 'dialog';\n\n /** @hidden ID for the popover body. */\n protected readonly _bodyId = signal<string | null>(null);\n}\n","import { Directive, inject, TemplateRef } from '@angular/core';\n\n@Directive({\n selector: '[fdPopoverBody]',\n standalone: true\n})\nexport class PopoverBodyDirective {\n /**\n * The template to be used as the popover's body.\n **/\n readonly templateRef = inject<TemplateRef<void>>(TemplateRef);\n}\n","import { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n selector: '[fdPopoverBodyFooter], [fd-popover-body-footer]',\n standalone: true\n})\nexport class PopoverBodyFooterDirective {\n /** @hidden */\n @HostBinding('class.fd-popover__body-footer')\n fdPopoverBodyFooterClass = true;\n}\n","import { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n selector: '[fdPopoverBodyHeader], [fd-popover-body-header]',\n standalone: true\n})\nexport class PopoverBodyHeaderDirective {\n /** @hidden */\n @HostBinding('class.fd-popover__body-header')\n fdPopoverBodyHeaderClass = true;\n}\n","import {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n inject,\n input,\n output,\n Renderer2,\n signal,\n TemplateRef,\n viewChild,\n ViewEncapsulation\n} from '@angular/core';\n\nimport { A11yModule, CdkTrapFocus } from '@angular/cdk/a11y';\nimport { ESCAPE } from '@angular/cdk/keycodes';\nimport { CdkScrollable, ConnectionPositionPair } from '@angular/cdk/overlay';\n\nimport { NgTemplateOutlet } from '@angular/common';\nimport { KeyUtil, Nullable, ResizeDirective, ResizeHandleDirective } from '@fundamental-ngx/cdk/utils';\nimport { ContentDensityObserver, contentDensityObserverProviders } from '@fundamental-ngx/core/content-density';\nimport { ScrollbarDirective } from '@fundamental-ngx/core/scrollbar';\n\n/**\n * A component used to enforce a certain layout for the popover.\n * ```html\n * <fd-popover>\n * <fd-popover-control>Control Element</fd-popover-control>\n * <fd-popover-body>Popover Body</fd-popover-body>\n * </fd-popover>\n * ```\n */\n@Component({\n selector: 'fd-popover-body',\n templateUrl: './popover-body.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrl: './popover-body.component.scss',\n providers: [contentDensityObserverProviders({ alwaysAddModifiers: true })],\n imports: [A11yModule, CdkScrollable, ScrollbarDirective, NgTemplateOutlet, ResizeHandleDirective, ResizeDirective],\n standalone: true,\n host: {\n '(keydown)': 'bodyKeyupHandler($event)'\n }\n})\nexport class PopoverBodyComponent {\n /** Minimum width of the popover body element. */\n readonly minWidth = input<Nullable<string>>();\n\n /** Maximum width of the popover body element. */\n readonly maxWidth = input<Nullable<string>>();\n\n /** Minimum height of the popover body element. */\n readonly minHeight = input<Nullable<string>>();\n\n /** Maximum height of the popover body element. */\n readonly maxHeight = input<Nullable<string>>();\n\n /** @hidden */\n readonly _cdkTrapFocus = viewChild(CdkTrapFocus);\n\n /** @hidden */\n readonly _scrollbar = viewChild(ScrollbarDirective);\n\n /** @hidden Whether to wrap content with fd-scrollbar directive. */\n readonly _disableScrollbar = signal(false);\n\n /** @hidden Whether the popover should have an arrow. */\n readonly _noArrow = signal(true);\n\n /** @hidden Whether the popover container needs an extra class for styling. */\n readonly _additionalBodyClass = signal<Nullable<string>>(null);\n\n /** @hidden Whether the popover should be focusTrapped. */\n readonly _focusTrapped = signal(false);\n\n /**\n * @hidden\n * Whether the popover should automatically move focus into the trapped region upon\n * initialization and return focus to the previous activeElement upon destruction.\n */\n readonly _focusAutoCapture = signal(false);\n\n /** @hidden Property bind to popover's body. */\n readonly _popoverBodyWidth = signal<number | undefined>(undefined);\n\n /** @hidden Property bind to popover's body. */\n readonly _popoverBodyMinWidth = signal<number | undefined>(undefined);\n\n /** @hidden Property bind to popover's body. */\n readonly _maxWidth = signal<Nullable<number>>(null);\n\n /** @hidden Property bind to popover's body. */\n readonly _closeOnEscapeKey = signal(false);\n\n /** @hidden Aria role for the popover body. */\n readonly _bodyRole = signal<Nullable<string>>('dialog');\n\n /** @hidden ID for the popover body. */\n readonly _bodyId = signal<string | null>(null);\n\n /** @hidden Classes added to arrow element. */\n readonly _arrowClasses = signal('');\n\n /** @hidden text rendered inside popover's body. */\n readonly text = signal<Nullable<string>>(null);\n\n /** @hidden template rendered inside popover's body. */\n readonly _templateToDisplay = signal<TemplateRef<any> | undefined>(undefined);\n\n /** @hidden Whether the popover body is resizable. */\n readonly _resizable = signal(false);\n\n /** @hidden */\n readonly _resizeHandleLocation = signal<'top-right' | 'top-left' | 'bottom-right' | 'bottom-left'>('bottom-right');\n\n /** Event emitted when popover body requests to be closed (e.g., Escape key press) */\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n readonly onClose = output<void>();\n\n /** @hidden */\n readonly _elementRef = inject(ElementRef);\n\n /** @hidden */\n readonly _contentDensityObserver = inject(ContentDensityObserver);\n\n /** @hidden */\n private readonly _renderer = inject(Renderer2);\n\n /** @hidden */\n private _bodyComponentClasses: string | null = null;\n\n /** @hidden */\n constructor() {\n afterNextRender(() => {\n const scrollbar = this._scrollbar();\n if (scrollbar) {\n scrollbar._inPopover = true;\n }\n });\n }\n\n /** Handler escape keydown */\n bodyKeyupHandler(event: KeyboardEvent): void {\n if (KeyUtil.isKeyCode(event, ESCAPE) && this._closeOnEscapeKey()) {\n // In case if popover belongs to the element inside dialog\n event.stopPropagation();\n this.onClose.emit();\n }\n }\n\n /** @hidden */\n _setBodyComponentClasses(classes: string | null): void {\n this._bodyComponentClasses?.split(' ').forEach((klass) => {\n this._renderer.removeClass(this._elementRef.nativeElement, klass);\n });\n this._bodyComponentClasses = classes;\n if (!this._bodyComponentClasses) {\n return;\n }\n this._bodyComponentClasses.split(' ').forEach((klass) => {\n this._renderer.addClass(this._elementRef.nativeElement, klass);\n });\n }\n\n /** @hidden */\n _setArrowStyles(position: ConnectionPositionPair, rtl: 'rtl' | 'ltr'): void {\n this._resizeHandleLocation.set(\n `${position.overlayY === 'top' ? 'bottom' : 'top'}-${position.overlayX === 'start' ? 'right' : 'left'}`\n );\n if (this._noArrow()) {\n this._arrowClasses.set('');\n return;\n }\n\n let arrowClasses: string[] = [];\n\n if (\n position.overlayY !== position.originY &&\n position.originY !== 'center' &&\n position.overlayY !== 'center' &&\n position.overlayX === position.originX\n ) {\n arrowClasses = [\n `fd-popover__body--${position.overlayY === 'top' ? 'below' : 'above'}`,\n `fd-popover__body--${position.overlayX === 'start' ? 'left' : 'right'}`,\n `fd-popover__body--arrow-${position.overlayY}`,\n `fd-popover__body--arrow-x-${position.originX}`\n ];\n } else if (\n position.overlayX !== position.originX &&\n position.overlayX !== 'center' &&\n position.originX !== 'center' &&\n position.originY === position.overlayY\n ) {\n let overlayX = position.overlayX;\n if (rtl === 'rtl') {\n overlayX = position.overlayX === 'end' ? 'start' : 'end';\n }\n arrowClasses = [\n `fd-popover__body--${overlayX === 'start' ? 'after' : 'before'}`,\n `fd-popover__body--${overlayX === 'start' ? 'left' : 'right'}`,\n `fd-popover__body--${position.overlayY === 'center' ? 'middle' : position.overlayY}`,\n `fd-popover__body--arrow-${overlayX === 'start' ? 'left' : 'right'}`,\n `fd-popover__body--arrow-y-${position.originY} `\n ];\n } else {\n arrowClasses = ['fd-popover__body--no-arrow'];\n }\n\n this._arrowClasses.set(arrowClasses.join(' '));\n }\n\n /** @hidden */\n _focusFirstTabbableElement(forced = false): void {\n if (forced || this._focusAutoCapture()) {\n requestAnimationFrame(() => {\n this._cdkTrapFocus()?.focusTrap.focusFirstTabbableElement();\n });\n }\n }\n}\n","<div\n class=\"fd-popover__body fd-popover__body--static\"\n [class.fd-popover__body--no-arrow]=\"_noArrow()\"\n [class.fd-popover__body--resizable]=\"_resizable()\"\n [class]=\"_arrowClasses() + ' ' + (_additionalBodyClass() || '')\"\n [cdkTrapFocus]=\"_focusTrapped()\"\n [style.min-width]=\"_popoverBodyMinWidth() ? null : minWidth()\"\n [style.max-width]=\"_maxWidth() ? null : maxWidth()\"\n [style.min-height]=\"minHeight()\"\n [style.max-height]=\"maxHeight()\"\n [style.max-width.px]=\"_maxWidth()\"\n [style.min-width.px]=\"_popoverBodyMinWidth()\"\n [style.width.px]=\"_popoverBodyWidth()\"\n [attr.role]=\"_bodyRole()\"\n [attr.id]=\"_bodyId()\"\n fdkResize\n [fdkResizeDisabled]=\"!_resizable()\"\n [fdkResizeClass]=\"'fd-popover__body--disable-transitions'\"\n [fdkResizeHandleLocation]=\"_resizeHandleLocation()\"\n>\n @if (!_disableScrollbar()) {\n <div fd-scrollbar class=\"fd-popover__wrapper\">\n <ng-template [ngTemplateOutlet]=\"renderer\"></ng-template>\n </div>\n } @else {\n <ng-template [ngTemplateOutlet]=\"renderer\"></ng-template>\n }\n @if (_resizable()) {\n <span fdkResizeHandle class=\"fd-popover__resize-handle\" role=\"presentation\" aria-hidden=\"true\"></span>\n }\n</div>\n<ng-template #renderer>\n <ng-content select=\"[fd-popover-body-header]\"></ng-content>\n <ng-content select=\"[fd-popover-body-subheader]\"></ng-content>\n <ng-content></ng-content>\n {{ text() }}\n @if (_templateToDisplay()) {\n <ng-template [ngTemplateOutlet]=\"_templateToDisplay()!\"></ng-template>\n }\n <ng-content select=\"[fd-popover-body-footer]\"></ng-content>\n</ng-template>\n","import { DestroyRef, Directive, ElementRef, OnInit, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { resizeObservable } from '@fundamental-ngx/cdk/utils';\nimport { Subject } from 'rxjs';\n\n@Directive({\n selector: '[fdPopoverContainer]',\n standalone: true\n})\nexport class PopoverContainerDirective implements OnInit {\n /** Subject which emits when popover position refresh is required. */\n refreshPosition$ = new Subject<void>();\n\n /** @hidden */\n private readonly _destroyRef = inject(DestroyRef);\n\n /** @hidden */\n constructor(private _elmRef: ElementRef<HTMLElement>) {}\n\n /** @hidden */\n ngOnInit(): void {\n resizeObservable(this._elmRef.nativeElement)\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe(() => {\n this.refreshPosition$.next();\n });\n }\n}\n","import { AfterContentChecked, ChangeDetectionStrategy, Component, ElementRef, ViewEncapsulation } from '@angular/core';\n\n/**\n * A component used to enforce a certain layout for the popover.\n * ```html\n * <fd-popover>\n * <fd-popover-control>Control Element</fd-popover-control>\n * <fd-popover-body>Popover Body</fd-popover-body>\n * </fd-popover>\n * ```\n */\n@Component({\n selector: 'fd-popover-control, [fdPopoverControl]',\n template: `<ng-content></ng-content>`,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class PopoverControlComponent implements AfterContentChecked {\n /** @hidden */\n _tabbable = false;\n\n /** @hidden */\n constructor(public elRef: ElementRef) {}\n\n /** @hidden */\n ngAfterContentChecked(): void {\n if (this._tabbable) {\n this.makeTabbable();\n }\n }\n\n /** @hidden */\n makeTabbable(): void {\n const elemChild = this.elRef.nativeElement.children[0];\n if (elemChild && elemChild.getAttribute('tabindex') !== '-1') {\n elemChild.tabIndex = '0';\n }\n }\n}\n","import { EventEmitter, InjectionToken, ModelSignal } from '@angular/core';\nimport { DialogConfig } from '@fundamental-ngx/core/dialog';\nimport { MobileMode } from '@fundamental-ngx/core/mobile-mode';\n\nexport const POPOVER_COMPONENT = new InjectionToken<PopoverInterface>('PopoverInterface');\n\n/**\n * Popover Interface to have typing and avoid circular dependency between\n * PopoverComponent <==> PopoverMobileComponent\n */\nexport interface PopoverInterface extends MobileMode {\n dialogConfig: DialogConfig;\n isOpen: ModelSignal<boolean>;\n isOpenChange: EventEmitter<boolean>;\n\n close(): void;\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n effect,\n inject,\n OnDestroy,\n OnInit,\n TemplateRef,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\n\nimport { NgTemplateOutlet } from '@angular/common';\nimport { TemplateModule } from '@fundamental-ngx/cdk/utils';\nimport {\n DialogBodyComponent,\n DialogCloseButtonComponent,\n DialogComponent,\n DialogFooterComponent,\n DialogHeaderComponent\n} from '@fundamental-ngx/core/dialog';\nimport { MobileModeBase, MobileModeControl } from '@fundamental-ngx/core/mobile-mode';\nimport { TitleComponent } from '@fundamental-ngx/core/title';\nimport { PopoverChildContent } from '../popover-child-content.interface';\nimport { POPOVER_COMPONENT, PopoverInterface } from '../popover.interface';\n\nlet mobilePopoverUniqueId = 0;\n\n@Component({\n selector: 'fd-popover-mobile',\n templateUrl: './popover-mobile.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [\n TemplateModule,\n TitleComponent,\n NgTemplateOutlet,\n DialogComponent,\n DialogBodyComponent,\n DialogHeaderComponent,\n DialogFooterComponent,\n DialogCloseButtonComponent\n ]\n})\nexport class PopoverMobileComponent extends MobileModeBase<PopoverInterface> implements OnInit, OnDestroy {\n /** @hidden */\n @ViewChild('dialogTemplate')\n _dialogTemplate: TemplateRef<any>;\n\n /** @hidden Cannot use _ prefix due to mobile class build constraints. */\n childContent?: PopoverChildContent = undefined;\n\n /** Current popover title */\n title: string;\n /** Dialog body content */\n viewBody: TemplateRef<any> | null;\n\n /** Dialog footer content */\n viewFooter: TemplateRef<any> | null;\n\n /** @hidden */\n readonly id = 'fd-popover-mobile-' + mobilePopoverUniqueId++;\n\n /** @hidden */\n get titleId(): string {\n return this.id + '-title';\n }\n\n /** @hidden */\n constructor() {\n super(inject<PopoverInterface>(POPOVER_COMPONENT), MobileModeControl.POPOVER);\n\n // effect() automatically tracks _component.isOpen signal and cleans up on destroy\n effect(() => {\n if (this._component.isOpen()) {\n this._openDialog();\n } else {\n this.dialogRef?.hide(true);\n }\n });\n }\n\n /** @hidden */\n ngOnInit(): void {\n this.title = this.mobileConfig.title || '';\n this.viewBody = this.childContent?.popoverBodyContentTemplate ?? null;\n this.viewFooter = this.childContent?.popoverFooterContentTemplate ?? null;\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this.dialogRef?.close();\n }\n\n /** Closes the dialog and popover. */\n close(): void {\n this.dialogRef.close();\n this._component.close();\n }\n\n /** @hidden Opens the dialog. */\n private _openDialog(): void {\n this.dialogRef = this._dialogService.open(this._dialogTemplate, {\n verticalPadding: true,\n horizontalPadding: true,\n ...this.dialogConfig,\n mobile: true,\n focusTrapped: true,\n escKeyCloseable: false,\n backdropClickCloseable: false,\n container: this._elementRef.nativeElement,\n responsivePadding: true,\n ariaLabelledBy: this.titleId\n });\n }\n}\n","<ng-template [fdDialogTemplate] let-dialog let-dialogConfig=\"dialogConfig\" #dialogTemplate>\n <fd-dialog [dialogConfig]=\"dialogConfig\" [dialogRef]=\"dialog\" data-mobile-popover>\n <fd-dialog-header>\n <h1 fd-title [id]=\"titleId\">{{ title }}</h1>\n @if (this.mobileConfig.hasCloseButton) {\n <button fd-dialog-close-button [mobile]=\"true\" (click)=\"close()\"></button>\n }\n </fd-dialog-header>\n <fd-dialog-body>\n <ng-template [ngTemplateOutlet]=\"viewBody\"></ng-template>\n </fd-dialog-body>\n @if (viewFooter) {\n <fd-dialog-footer>\n <ng-template [ngTemplateOutlet]=\"viewFooter\"></ng-template>\n </fd-dialog-footer>\n }\n </fd-dialog>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { DynamicComponentService } from '@fundamental-ngx/cdk/utils';\nimport { ButtonComponent } from '@fundamental-ngx/core/button';\nimport { DialogModule } from '@fundamental-ngx/core/dialog';\nimport { PopoverMobileComponent } from './popover-mobile.component';\n\n/**\n * @deprecated\n * Use direct imports of components and directives.\n */\n@NgModule({\n imports: [DialogModule, ButtonComponent, PopoverMobileComponent],\n exports: [PopoverMobileComponent],\n providers: [DynamicComponentService]\n})\nexport class PopoverMobileModule {}\n","import {\n ConnectedOverlayPositionChange,\n ConnectedPosition,\n FlexibleConnectedPositionStrategy,\n Overlay,\n OverlayConfig,\n OverlayRef,\n ScrollStrategy,\n ViewportRuler\n} from '@angular/cdk/overlay';\nimport { ComponentPortal, TemplatePortal } from '@angular/cdk/portal';\nimport {\n DestroyRef,\n ElementRef,\n EventEmitter,\n Injectable,\n Injector,\n Renderer2,\n Signal,\n TemplateRef,\n ViewContainerRef,\n computed,\n effect,\n inject,\n isSignal,\n signal\n} from '@angular/core';\nimport { Observable, Subject, merge } from 'rxjs';\nimport { distinctUntilChanged, filter, startWith, takeUntil } from 'rxjs/operators';\n\nimport { Nullable, RtlService, destroyObservable, isOdd } from '@fundamental-ngx/cdk/utils';\nimport { GetDefaultPosition, Placement, PopoverFillMode, PopoverPosition } from '@fundamental-ngx/core/shared';\n\nimport { outputToObservable, takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { PopoverConfig, TriggerConfig } from '../base/popover-config.interface';\nimport { PopoverBodyComponent } from '../popover-body/popover-body.component';\nimport { PopoverContainerDirective } from '../popover-container/popover-container.directive';\n\nconst MAX_BODY_SIZE = 99999999;\n\nexport interface PopoverTemplate {\n container: ViewContainerRef;\n popoverBody: PopoverBodyComponent;\n template: TemplateRef<any>;\n}\n\n@Injectable()\nexport class PopoverService {\n /** Whether to close the popover on router navigation start. */\n readonly closeOnNavigation = signal(true);\n\n /** Whether the popover is disabled. */\n readonly disabled = signal(false);\n\n /** Maximum width of popover body in px */\n readonly maxWidth = signal<Nullable<number>>(null);\n\n /** Whether the popover should have an arrow. */\n readonly noArrow = signal(true);\n\n /** Whether the popover container needs an extra class for styling. */\n readonly additionalBodyClass = signal<string | null>(null);\n\n /** Classes that should be applied to fd-popover-body component directly. */\n readonly additionalBodyComponentClasses = signal<string | null>(null);\n\n /** Whether the popover container needs an extra class for styling. */\n readonly additionalTriggerClass = signal<string | null>(null);\n\n /** Whether the popover should close when the escape key is pressed. */\n readonly closeOnEscapeKey = signal(true);\n\n /** Whether to wrap content with fd-scrollbar directive. */\n readonly disableScrollbar = signal(false);\n\n /** The placement of the popover. */\n readonly placement = signal<Placement | null>(null);\n\n /** The trigger events that will open/close the popover. */\n readonly triggers = signal<(string | TriggerConfig)[]>(['click']);\n\n /** Whether the popover is open. */\n readonly isOpen = signal(false);\n\n /** Whether the popover should close when a click is made outside its boundaries. */\n readonly closeOnOutsideClick = signal(true);\n\n /** Whether to apply a background overlay */\n readonly applyOverlay = signal(false);\n\n /** Whether the popover should be focusTrapped. */\n readonly focusTrapped = signal(false);\n\n /** Whether to automatically move focus into the trapped region. */\n readonly focusAutoCapture = signal(false);\n\n /** Whether to move focus back after popover is closed. */\n readonly restoreFocusOnClose = signal(true);\n\n /** Scroll strategy */\n readonly scrollStrategy = signal<ScrollStrategy | null>(null);\n\n /** List of positions options for overlay. */\n readonly cdkPositions = signal<ConnectedPosition[] | null>(null);\n\n /** Preset options for the popover body width. */\n readonly fillControlMode = signal<Nullable<PopoverFillMode>>(null);\n\n /** The element to which the overlay is attached. */\n readonly appendTo = signal<Nullable<ElementRef | Element>>(null);\n\n /** Placement of the popover element. */\n readonly placementContainer = signal<Nullable<ElementRef | Element>>(null);\n\n /** Whether position shouldn't change when popover approach the corner of page */\n readonly fixedPosition = signal(false);\n\n /** Whether the popover body is resizable. */\n readonly resizable = signal(false);\n\n /** Emits when popover open state changes */\n readonly isOpenChange = new EventEmitter<boolean>();\n\n /** String content displayed inside popover body */\n stringContent: Nullable<string>;\n\n /** Template content displayed inside popover body */\n templateContent: Nullable<TemplateRef<any>>;\n\n /** @hidden */\n _onLoad = new Subject<ElementRef>();\n\n /** @hidden */\n _mobile = false;\n\n /** @hidden Aria role for the popover body. */\n protected _bodyRole: string | null = 'dialog';\n\n /** @hidden ID for the popover body. */\n protected readonly _bodyId = signal<string | null>(null);\n\n /** @hidden */\n private _eventRef: (() => void)[] = [];\n\n /** @hidden */\n private _overlayRef: OverlayRef;\n\n /** @hidden */\n private _refresh$: Observable<boolean | void>;\n\n /** @hidden */\n private _stopCloseListening$ = new Subject<void>();\n\n /** @hidden */\n private readonly _placementRefresh$ = new Subject<void>();\n\n /** @hidden */\n private _popoverBody: PopoverBodyComponent;\n\n /** @hidden */\n private _triggerElement: ElementRef<HTMLElement> | HTMLElement;\n\n /** @hidden */\n private _lastActiveElement: HTMLElement;\n\n /** @hidden */\n private _templateData: Nullable<PopoverTemplate>;\n\n /** @hidden */\n private _placementContainerValue: Nullable<ElementRef | Element>;\n\n /** @hidden */\n private _ignoreTriggers = false;\n\n /** @hidden Timer for delayed hover close, allows mouse to travel from trigger to overlay body. */\n private _hoverCloseTimer: ReturnType<typeof setTimeout> | null = null;\n\n /** @hidden Listeners for mouseenter/mouseleave on the overlay element. */\n private _overlayHoverListeners: (() => void)[] = [];\n\n /** @hidden */\n private _modalBodyClass = 'fd-overlay-active';\n\n /** @hidden */\n private _modalTriggerClass = 'fd-popover__modal';\n\n /** @hidden */\n private _isModal = false;\n\n /** An RxJS Subject that will kill the data stream upon component's destruction (for unsubscribing) */\n private readonly _destroyRef = inject(DestroyRef);\n\n /** @hidden */\n private readonly _rtlService = inject(RtlService, { optional: true });\n\n /** @hidden */\n private readonly _popoverContainer = inject(PopoverContainerDirective, { optional: true });\n\n /** @hidden */\n private readonly _overlay = inject(Overlay);\n\n /** @hidden */\n private readonly _renderer = inject(Renderer2);\n\n /** @hidden */\n private readonly _viewportRuler = inject(ViewportRuler);\n\n /** @hidden */\n private readonly _injector = inject(Injector);\n\n /** @hidden */\n private get _triggerHtmlElement(): HTMLElement {\n return this._triggerElement instanceof ElementRef ? this._triggerElement.nativeElement : this._triggerElement;\n }\n\n /** @hidden Flag to prevent infinite loop when programmatically opening/closing */\n private _programmaticChange = false;\n\n /** @hidden Computed signal for body-related config to track dependencies */\n private readonly _bodyConfig = computed(() => ({\n additionalBodyClass: this.additionalBodyClass(),\n focusTrapped: this.focusTrapped(),\n maxWidth: this.maxWidth(),\n noArrow: this.noArrow(),\n focusAutoCapture: this.focusAutoCapture(),\n disableScrollbar: this.disableScrollbar(),\n closeOnEscapeKey: this.closeOnEscapeKey(),\n additionalBodyComponentClasses: this.additionalBodyComponentClasses(),\n resizable: this.resizable()\n }));\n\n /** @hidden */\n constructor() {\n /** Merge observables - close or destroy */\n this._refresh$ = merge(this.isOpenChange, destroyObservable(this._destroyRef));\n\n // Emit isOpenChange when signal changes\n effect(() => {\n const openState = this.isOpen();\n this.isOpenChange.emit(openState);\n });\n\n // Automatically open/close popover when isOpen signal changes\n // This enables programmatic control via signal updates\n let previousOpen = this.isOpen();\n effect(() => {\n const currentOpen = this.isOpen();\n // Only act if state actually changed, we're initialized, and it's not from open/close methods\n if (currentOpen !== previousOpen && this._triggerElement && !this._programmaticChange) {\n if (currentOpen) {\n this.open();\n } else {\n this.close();\n }\n }\n previousOpen = currentOpen;\n });\n\n // Watch for changes to signals that affect the popover body and sync them\n // This ensures that when inputs change after the popover is open, the body component is updated\n effect(() => {\n // Read computed to track all body-related signal dependencies\n void this._bodyConfig();\n\n // Only sync if popover body exists and is open\n if (this._getPopoverBody() && this.isOpen()) {\n this._passVariablesToBody();\n }\n });\n\n this._destroyRef.onDestroy(() => {\n this._clearHoverCloseTimer();\n this._removeOverlayHoverListeners();\n this._removeTriggerListeners();\n if (this._overlayRef) {\n this._overlayRef.detach();\n this._overlayRef.dispose();\n }\n\n if (this._isModal) {\n this._removeOverlay(this._modalBodyClass, this._modalTriggerClass);\n }\n });\n }\n\n /**\n * Method initialising the popover service - should be called, after view is initialised, params:\n * - triggerElement - element, which is equivalent for cdkOverlayOrigin, or fd-popover-control,\n * by default to this element the popover body will lbe appended and events on this element will trigger\n * popover's toggle\n * - config - configuration object using PopoverConfig interface\n * - templateData - in case of having already PopoverBodyComponent, there is way to pass container, template containing\n * PopoverComponent and PopoverComponent instance\n */\n initialise(\n triggerElement: ElementRef | HTMLElement,\n config?: PopoverConfig,\n templateData?: PopoverTemplate | TemplateRef<void> | null\n ): void {\n if (templateData instanceof TemplateRef) {\n this.templateContent = templateData;\n } else {\n this._templateData = templateData;\n }\n this._triggerElement = triggerElement;\n\n if (config) {\n this.refreshConfiguration(config);\n }\n\n this._refreshTriggerListeners();\n\n if (this.isOpen()) {\n this.open();\n }\n\n // If wrapper container height changes outside, refresh popover position.\n this._popoverContainer?.refreshPosition$.pipe(takeUntil(this._refresh$)).subscribe(() => {\n this.refreshPosition();\n });\n }\n\n /** Closes the popover. */\n close(focusActiveElement = true): void {\n this._clearHoverCloseTimer();\n this._removeOverlayHoverListeners();\n\n if (this._overlayRef) {\n this._overlayRef.dispose();\n }\n\n this._safeSetIsOpen(false);\n\n this.checkModalBackground();\n this._focusLastActiveElementBeforeOpen(focusActiveElement);\n }\n\n /** Opens the popover. */\n open(): void {\n if ((!this._overlayRef || !this._overlayRef.hasAttached()) && !this.disabled() && this._triggerElement) {\n const position = this._getPositionStrategy();\n this._overlayRef = this._overlay.create(this._getOverlayConfig(position));\n\n if (this._placementContainerValue) {\n const placementElement =\n this._placementContainerValue instanceof ElementRef\n ? this._placementContainerValue.nativeElement\n : this._placementContainerValue;\n\n placementElement.append(this._overlayRef.hostElement);\n }\n\n if (this._templateData) {\n this._attachTemplate();\n } else {\n this._attachBodyComponent();\n }\n\n this._stopCloseListening$.next();\n this._listenForPositionChange(position.positionChanges);\n\n if (this.fillControlMode()) {\n this._listenOnResize();\n }\n\n this._safeSetIsOpen(true);\n\n this._setupOverlayHoverListeners();\n this._listenOnClose();\n this._focusFirstTabbableElement();\n this._onLoad.next(this._getPopoverBody()._elementRef);\n\n // Update position - this will trigger the positionChanges observable\n this._overlayRef.updatePosition();\n }\n }\n\n /** method updating template or text inside rendered PopoverBody */\n updateContent(\n stringContent: Nullable<string> | Nullable<TemplateRef<any>>,\n templateContent: Nullable<TemplateRef<any>>\n ): void {\n templateContent = !templateContent\n ? typeof stringContent === 'string'\n ? null\n : stringContent\n : templateContent;\n stringContent = typeof stringContent === 'string' ? stringContent : null;\n this.stringContent = stringContent;\n this.templateContent = templateContent;\n if (this._getPopoverBody()) {\n this._passVariablesToBody();\n }\n }\n\n /** Changes background theming when modal */\n /** @hidden */\n checkModalBackground(): void {\n const isClosingConditions = (!this.closeOnOutsideClick() || !this.closeOnEscapeKey()) && this.applyOverlay();\n if (isClosingConditions && this.isOpen()) {\n this._addModalOverlay(this._modalBodyClass, this._modalTriggerClass);\n } else if (isClosingConditions && !this.isOpen()) {\n this._removeOverlay(this._modalBodyClass, this._modalTriggerClass);\n }\n }\n\n /** Toggles the popover open state */\n toggle(openAction = true, closeAction = true): void {\n if (this.isOpen()) {\n closeAction && this.close();\n } else {\n openAction && this.open();\n this.checkModalBackground();\n }\n }\n\n /**\n * Method called to change position of popover,\n * recommended to be used only when popover is opened, otherwise change position or cdkPlacement\n */\n applyNewPosition(positions: ConnectedPosition[]): void {\n const refPosition = this._getPositionStrategy(positions);\n this._listenForPositionChange(refPosition.positionChanges);\n this._overlayRef.updatePositionStrategy(refPosition);\n }\n\n /** Method called to refresh position of opened popover */\n refreshPosition(): void {\n this._overlayRef?.updatePosition();\n }\n\n /** Temporary sets the ignoring of the event triggers. */\n setIgnoreTriggers(ignore: boolean): void {\n this._ignoreTriggers = ignore;\n }\n\n /**\n * Method that sets configuration/options, it detects if there is something changed and overwrites them\n */\n refreshConfiguration(config: PopoverConfig): void {\n // Helper function to unwrap signal values\n const unwrap = <T>(val: T | Signal<T>): T => (isSignal(val) ? val() : val) as T;\n\n this._placementContainerValue = unwrap(config.placementContainer) ?? this._placementContainerValue;\n\n // Update signals if config values are provided\n if (config.closeOnNavigation !== undefined) {\n this.closeOnNavigation.set(unwrap(config.closeOnNavigation));\n }\n if (config.disabled !== undefined) {\n this.disabled.set(unwrap(config.disabled));\n }\n if (config.maxWidth !== undefined) {\n this.maxWidth.set(unwrap(config.maxWidth));\n }\n if (config.noArrow !== undefined) {\n this.noArrow.set(unwrap(config.noArrow));\n }\n if (config.additionalBodyClass !== undefined) {\n this.additionalBodyClass.set(unwrap(config.additionalBodyClass));\n }\n if (config.additionalBodyComponentClasses !== undefined) {\n this.additionalBodyComponentClasses.set(unwrap(config.additionalBodyComponentClasses));\n }\n if (config.additionalTriggerClass !== undefined) {\n this.additionalTriggerClass.set(unwrap(config.additionalTriggerClass));\n }\n if (config.closeOnEscapeKey !== undefined) {\n this.closeOnEscapeKey.set(unwrap(config.closeOnEscapeKey));\n }\n if (config.disableScrollbar !== undefined) {\n this.disableScrollbar.set(unwrap(config.disableScrollbar));\n }\n if (config.placement !== undefined) {\n this.placement.set(unwrap(config.placement));\n }\n if (config.closeOnOutsideClick !== undefined) {\n this.closeOnOutsideClick.set(unwrap(config.closeOnOutsideClick));\n }\n if (config.applyOverlay !== undefined) {\n this.applyOverlay.set(unwrap(config.applyOverlay));\n }\n if (config.focusTrapped !== undefined) {\n this.focusTrapped.set(unwrap(config.focusTrapped));\n }\n if (config.focusAutoCapture !== undefined) {\n this.focusAutoCapture.set(unwrap(config.focusAutoCapture));\n }\n if (config.restoreFocusOnClose !== undefined) {\n this.restoreFocusOnClose.set(unwrap(config.restoreFocusOnClose));\n }\n if (config.scrollStrategy !== undefined) {\n this.scrollStrategy.set(unwrap(config.scrollStrategy));\n }\n if (config.cdkPositions !== undefined) {\n this.cdkPositions.set(unwrap(config.cdkPositions));\n }\n if (config.fillControlMode !== undefined) {\n this.fillControlMode.set(unwrap(config.fillControlMode));\n }\n if (config.appendTo !== undefined) {\n this.appendTo.set(unwrap(config.appendTo));\n }\n if (config.placementContainer !== undefined) {\n this.placementContainer.set(unwrap(config.placementContainer));\n }\n if (config.fixedPosition !== undefined) {\n this.fixedPosition.set(unwrap(config.fixedPosition));\n }\n if (config.resizable !== undefined) {\n this.resizable.set(unwrap(config.resizable));\n }\n if (config.bodyRole !== undefined) {\n this._bodyRole = unwrap(config.bodyRole);\n }\n if (config.bodyId !== undefined) {\n this._bodyId.set(unwrap(config.bodyId));\n }\n\n if (config.isOpen !== undefined) {\n const isOpenValue = unwrap(config.isOpen);\n if (isOpenValue) {\n this.open();\n } else {\n this.close();\n }\n }\n\n if (config.triggers !== undefined) {\n this.triggers.set(unwrap(config.triggers));\n this._refreshTriggerListeners();\n }\n }\n\n /**\n * This method is intended to be called in order\n * to postpone the main functionality but be able\n * to enable it back in the future by initialise()\n */\n deactivate(): void {\n // Close the popover if it's open\n if (this.isOpen()) {\n this.close();\n }\n this._removeTriggerListeners();\n }\n\n /** Refresh listeners on trigger element events */\n _refreshTriggerListeners(): void {\n if (!this._triggerElement) {\n return;\n }\n\n this._removeTriggerListeners();\n\n if (this.triggers()?.length) {\n const hasHoverTrigger = this._hasHoverTriggers();\n\n this._normalizeTriggers().forEach((trigger) => {\n this._eventRef.push(\n this._renderer.listen(this._triggerHtmlElement, trigger.trigger, (event: Event) => {\n if (this._ignoreTriggers || this.disabled()) {\n return;\n }\n\n const closeAction = !!trigger.closeAction;\n const openAction = !!trigger.openAction;\n\n // For hover triggers, use delayed close to prevent flickering\n // when the mouse travels between the trigger and the popover body.\n if (hasHoverTrigger && trigger.trigger === 'mouseenter' && openAction) {\n this._clearHoverCloseTimer();\n if (!this.isOpen()) {\n this.toggle(openAction, closeAction);\n }\n } else if (hasHoverTrigger && trigger.trigger === 'mouseleave' && closeAction) {\n this._scheduleHoverClose();\n } else {\n this.toggle(openAction, closeAction);\n }\n\n if (trigger.stopPropagation) {\n event.stopImmediatePropagation();\n }\n })\n );\n });\n }\n }\n\n /**\n * Updates trigger element and refreshes the listeners.\n * @param trigger Trigger element ref.\n */\n updateTriggerElement(trigger: ElementRef | HTMLElement): void {\n this._triggerElement = trigger;\n this._refreshTriggerListeners();\n }\n\n /**\n * @hidden\n * Safely sets isOpen signal, deferring if called during Angular's render cycle.\n * This prevents NG0600 errors when focus events fire during template evaluation.\n */\n private _safeSetIsOpen(value: boolean): void {\n this._programmaticChange = true;\n try {\n this.isOpen.set(value);\n this._programmaticChange = false;\n } catch (e: unknown) {\n this._programmaticChange = false;\n // NG0600: Writing to signals during render - defer to next macrotask\n if (e instanceof Error && e.message?.includes('NG0600')) {\n setTimeout(() => {\n this._programmaticChange = true;\n this.isOpen.set(value);\n this._programmaticChange = false;\n });\n } else {\n throw e;\n }\n }\n }\n\n /** @hidden Whether the current triggers include mouseenter or mouseleave. */\n private _hasHoverTriggers(): boolean {\n return this.triggers().some((t) => {\n const name = typeof t === 'string' ? t : t.trigger;\n return name === 'mouseenter' || name === 'mouseleave';\n });\n }\n\n /** @hidden Clears any pending delayed hover close. */\n private _clearHoverCloseTimer(): void {\n if (this._hoverCloseTimer !== null) {\n clearTimeout(this._hoverCloseTimer);\n this._hoverCloseTimer = null;\n }\n }\n\n /** @hidden Schedules a delayed close to allow mouse to travel from trigger to overlay body. */\n private _scheduleHoverClose(): void {\n this._clearHoverCloseTimer();\n this._hoverCloseTimer = setTimeout(() => {\n this._hoverCloseTimer = null;\n this.close();\n }, 50);\n }\n\n /** @hidden Adds mouseenter/mouseleave listeners on the overlay element when hover triggers are active. */\n private _setupOverlayHoverListeners(): void {\n this._removeOverlayHoverListeners();\n\n if (!this._hasHoverTriggers() || !this._overlayRef) {\n return;\n }\n\n const overlayElement = this._overlayRef.overlayElement;\n\n this._overlayHoverListeners.push(\n this._renderer.listen(overlayElement, 'mouseenter', () => {\n this._clearHoverCloseTimer();\n })\n );\n\n this._overlayHoverListeners.push(\n this._renderer.listen(overlayElement, 'mouseleave', () => {\n this._scheduleHoverClose();\n })\n );\n }\n\n /** @hidden Removes overlay hover listeners. */\n private _removeOverlayHoverListeners(): void {\n this._overlayHoverListeners.forEach((fn) => fn());\n this._overlayHoverListeners = [];\n }\n\n /** @hidden */\n private _normalizeTriggers(): TriggerConfig[] {\n return this.triggers().map((trigger, index) => {\n if (typeof trigger === 'object' && trigger.trigger) {\n return trigger;\n }\n\n const oddNumber = isOdd(index + 1);\n\n return {\n trigger,\n openAction: this.triggers().length === 1 || oddNumber,\n closeAction: this.triggers().length === 1 || !oddNumber,\n stopPropagation: false\n } as TriggerConfig;\n });\n }\n\n /** @hidden */\n private _getOverlayConfig(position: FlexibleConnectedPositionStrategy): OverlayConfig {\n const direction = this._getDirection();\n\n return new OverlayConfig({\n direction,\n disposeOnNavigation: this.closeOnNavigation(),\n positionStrategy: position,\n scrollStrategy: this.scrollStrategy() || this._overlay.scrollStrategies.reposition()\n });\n }\n\n /** @hidden */\n private _listenOnResize(): void {\n this._viewportRuler\n .change(15)\n .pipe(takeUntil(this._refresh$), startWith(1))\n .subscribe(() => this._applyWidthOverlay());\n }\n\n /** @hidden */\n private _getDirection(): 'rtl' | 'ltr' {\n return this._rtlService?.rtl() ? 'rtl' : 'ltr';\n }\n\n /** @hidden */\n private _getPositionStrategy(forcedPositions?: ConnectedPosition[]): FlexibleConnectedPositionStrategy {\n let resultPosition = forcedPositions ? forcedPositions : this._getPositions();\n\n if (!this.fixedPosition()) {\n resultPosition = resultPosition.concat(GetDefaultPosition(resultPosition));\n }\n\n return this._overlay\n .position()\n .flexibleConnectedTo(this.appendTo() || this._triggerElement)\n .withPositions(resultPosition)\n .withPush(false)\n .withGrowAfterOpen(true);\n }\n\n /** remove listeners from trigger element events */\n private _removeTriggerListeners(): void {\n this._eventRef.forEach((event) => event());\n this._eventRef = [];\n }\n\n private _addModalOverlay(bodyClass: string, triggerClass: string): void {\n this._renderer.addClass(document.body, bodyClass);\n this._renderer.addClass((this._triggerElement as ElementRef).nativeElement, triggerClass);\n this._isModal = true;\n }\n\n private _removeOverlay(bodyClass: string, triggerClass: string): void {\n this._renderer.removeClass(document.body, bodyClass);\n this._renderer.removeClass((this._triggerElement as ElementRef).nativeElement, triggerClass);\n this._isModal = false;\n }\n\n /** Attach template containing popover body to overlay */\n private _attachTemplate(): void {\n if (this._templateData) {\n this._overlayRef.attach(new TemplatePortal(this._templateData.template, this._templateData.container));\n }\n // Pass variables AFTER attaching to ensure CDK directives are properly initialized\n this._passVariablesToBody();\n }\n\n /** Create PopoverBodyComponent and attach it into overlay */\n private _attachBodyComponent(): void {\n const overlay = this._overlayRef.attach(new ComponentPortal(PopoverBodyComponent, null, this._injector));\n this._popoverBody = overlay.instance;\n this._passVariablesToBody();\n }\n\n /** @hidden */\n private _listenForPositionChange(positionChange: Observable<ConnectedOverlayPositionChange>): void {\n this._placementRefresh$.next();\n positionChange\n .pipe(\n filter(() => !this.noArrow() && !!this._getPopoverBody()),\n distinctUntilChanged((previous, current) => previous.connectionPair === current.connectionPair),\n takeUntil(this._placementRefresh$),\n takeUntilDestroyed(this._destroyRef)\n )\n .subscribe((event) => this._getPopoverBody()._setArrowStyles(event.connectionPair, this._getDirection()));\n }\n\n /** Subscribe to close events from CDK Overlay, to throw proper events, change values */\n private _listenOnClose(): void {\n const body = this._getPopoverBody();\n const closeEvents$ = merge(\n this._overlayRef.detachments(),\n outputToObservable(body.onClose),\n this._outsideClicks$(),\n this._escapeKeydowns$()\n );\n // Only use _stopCloseListening$ to stop listening, not _refresh$\n // _refresh$ can emit due to signal effects and would complete the subscription prematurely\n closeEvents$.pipe(takeUntil(this._stopCloseListening$), takeUntilDestroyed(this._destroyRef)).subscribe(() => {\n this.close();\n });\n }\n\n /** Listener for click events */\n private _outsideClicks$(): Observable<MouseEvent> {\n return merge(this._overlayRef.backdropClick(), this._overlayRef._outsidePointerEvents).pipe(\n filter((event) => this._shouldClose(event))\n );\n }\n\n /** Listener for Escape keydown via CDK overlay's document-level keyboard dispatcher. */\n private _escapeKeydowns$(): Observable<KeyboardEvent> {\n return this._overlayRef\n .keydownEvents()\n .pipe(filter((event) => this.closeOnEscapeKey() && event.key === 'Escape'));\n }\n\n /** @hidden */\n private _shouldClose(event: MouseEvent): boolean {\n return (\n this.isOpen() &&\n this.closeOnOutsideClick() &&\n !this._triggerContainsTarget(event) &&\n !this._targetIsPopoverMobileDialog(event)\n );\n }\n\n /** @hidden */\n private _targetIsPopoverMobileDialog(event: MouseEvent): boolean {\n if (this._mobile) {\n let el = (event.target as HTMLElement).parentElement;\n while (el) {\n if (el.hasAttribute('data-mobile-popover')) {\n return true;\n } else {\n el = el.parentElement;\n }\n }\n }\n\n return false;\n }\n\n /** @hidden */\n private _getEventTarget(event: Event): EventTarget | null {\n return event.composedPath ? event.composedPath()[0] : event.target;\n }\n\n /** @hidden */\n private _triggerContainsTarget(event: Event): boolean {\n return this._triggerHtmlElement.contains(this._getEventTarget(event) as HTMLElement);\n }\n\n /** @hidden */\n private _getPositions(): ConnectedPosition[] {\n const positions = this.cdkPositions();\n if (positions) {\n return positions;\n }\n\n const currentPlacement = this.placement();\n if (currentPlacement) {\n return [PopoverPosition.getCdkPlacement(currentPlacement, this._getDirection())];\n }\n\n return [];\n }\n\n /** @hidden */\n private _applyWidthOverlay(): void {\n const maxWidthLimit = this.maxWidth() ?? MAX_BODY_SIZE;\n const width = Math.min(this._getTriggerWidth(), maxWidthLimit);\n const fillMode = this.fillControlMode();\n if (fillMode === 'at-least') {\n this._getPopoverBody()._popoverBodyMinWidth.set(width);\n } else if (fillMode === 'equal') {\n this._getPopoverBody()._popoverBodyWidth.set(width);\n }\n }\n\n /** @hidden */\n private _passVariablesToBody(): void {\n const body = this._getPopoverBody();\n body.text.set(this.stringContent);\n body._additionalBodyClass.set(this.additionalBodyClass());\n body._focusTrapped.set(this.focusTrapped());\n body._maxWidth.set(this.maxWidth());\n body._noArrow.set(this.noArrow());\n body._focusAutoCapture.set(this.focusAutoCapture());\n body._disableScrollbar.set(this.disableScrollbar());\n if (this.templateContent) {\n body._templateToDisplay.set(this.templateContent);\n }\n body._closeOnEscapeKey.set(this.closeOnEscapeKey());\n body._bodyRole.set(this._bodyRole);\n body._bodyId.set(this._bodyId());\n body._resizable.set(this.resizable());\n body._setBodyComponentClasses(this.additionalBodyComponentClasses());\n }\n\n /** @hidden */\n private _getTriggerWidth(): number {\n return this._triggerHtmlElement.offsetWidth;\n }\n\n /** @hidden */\n private _getPopoverBody(): PopoverBodyComponent {\n return this._templateData?.popoverBody || this._popoverBody;\n }\n\n /** @hidden */\n private _focusFirstTabbableElement(focusLastElement = true): void {\n if (focusLastElement && this.focusAutoCapture()) {\n this._lastActiveElement = <HTMLElement>document.activeElement;\n this._getPopoverBody()?._focusFirstTabbableElement();\n }\n }\n\n /** @hidden */\n private _focusLastActiveElementBeforeOpen(focusLastElement = true): void {\n if (focusLastElement && this.restoreFocusOnClose() && this.focusAutoCapture() && this._lastActiveElement) {\n this._lastActiveElement.focus();\n }\n }\n}\n","import { Directive, ElementRef, HostBinding, inject, Injector, Input, OnDestroy } from '@angular/core';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { Subscription } from 'rxjs';\nimport { PopoverComponent } from './popover.component';\n\n@Directive({\n selector: '[fdPopoverTrigger], [fd-popover-trigger]',\n standalone: true\n})\nexport class PopoverTriggerDirective implements OnDestroy {\n /** Set reference to Popover Component */\n @Input('fdPopoverTrigger')\n set popover(popover: Nullable<PopoverComponent>) {\n if (popover) {\n popover.trigger.set(this._elementRef);\n this._listenOnExpanded(popover);\n }\n this._setAriaAttributes(popover);\n }\n\n /** @hidden */\n @HostBinding('attr.aria-haspopup')\n ariaHasPopup: Nullable<boolean>;\n\n /** @hidden */\n @HostBinding('attr.aria-controls')\n ariaControls: Nullable<string>;\n\n /** @hidden */\n @HostBinding('attr.aria-expanded')\n ariaExpanded: Nullable<boolean>;\n\n /** @hidden */\n private _isExpandedSubscription: Subscription;\n\n /** @hidden */\n private readonly _injector = inject(Injector);\n\n /** @hidden */\n constructor(private _elementRef: ElementRef) {}\n\n /** @hidden */\n ngOnDestroy(): void {\n this._unsubscribeExpandedListener();\n }\n\n /** @hidden */\n private _listenOnExpanded(popover: PopoverComponent): void {\n this._unsubscribeExpandedListener();\n if (popover) {\n // Convert signal to observable for reactive updates\n const isOpen$ = toObservable(popover.isOpen, { injector: this._injector });\n this._isExpandedSubscription = isOpen$.subscribe((isOpen) => (this.ariaExpanded = isOpen));\n }\n }\n\n /** @hidden */\n private _setAriaAttributes(popover: Nullable<PopoverComponent>): void {\n this.ariaHasPopup = !!popover;\n this.ariaControls = popover ? popover.id() : null;\n }\n\n /** @hidden */\n private _unsubscribeExpandedListener(): void {\n if (this._isExpandedSubscription) {\n this._isExpandedSubscription.unsubscribe();\n }\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport const FD_POPOVER_COMPONENT = new InjectionToken('FdPopoverComponent');\n","import {\n AfterContentInit,\n afterNextRender,\n AfterViewInit,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n ComponentRef,\n computed,\n contentChild,\n DestroyRef,\n effect,\n ElementRef,\n inject,\n Injector,\n input,\n model,\n OnDestroy,\n output,\n Renderer2,\n TemplateRef,\n viewChild,\n ViewContainerRef,\n ViewEncapsulation\n} from '@angular/core';\n\nimport { DOWN_ARROW } from '@angular/cdk/keycodes';\nimport { CdkOverlayOrigin, ConnectedPosition } from '@angular/cdk/overlay';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { DynamicComponentService, KeyUtil } from '@fundamental-ngx/cdk/utils';\nimport { contentDensityObserverProviders } from '@fundamental-ngx/core/content-density';\nimport { MobileModeConfig } from '@fundamental-ngx/core/mobile-mode';\nimport { Placement, PopoverFillMode } from '@fundamental-ngx/core/shared';\nimport { PopoverConfig, TriggerConfig } from './base/popover-config.interface';\nimport { PopoverBodyDirective } from './popover-body.directive';\nimport { PopoverBodyComponent } from './popover-body/popover-body.component';\nimport { PopoverControlComponent } from './popover-control/popover-control.component';\nimport { PopoverMobileComponent } from './popover-mobile/popover-mobile.component';\nimport { PopoverService, PopoverTemplate } from './popover-service/popover.service';\nimport { POPOVER_COMPONENT } from './popover.interface';\nimport { FD_POPOVER_COMPONENT } from './tokens';\n\nexport const SELECT_CLASS_NAMES = {\n selectControl: 'fd-select__control'\n};\n\nlet cdkPopoverUniqueId = 0;\n\n/**\n * The popover is a wrapping component that accepts a *control* as well as a *body*.\n * The control is what will trigger the opening of the actual popover, which is called the body.\n * By default, popovers are triggered by click. This can be customized through the *triggers* input.\n */\n@Component({\n selector: 'fd-popover',\n templateUrl: './popover.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n providers: [\n PopoverService,\n {\n provide: FD_POPOVER_COMPONENT,\n useExisting: PopoverComponent\n },\n contentDensityObserverProviders()\n ],\n host: {\n class: 'fd-popover-custom',\n '[class.fd-popover-custom--mobile]': 'mobile()',\n '[class.fd-popover-custom--disabled]': 'disabled()',\n '[attr.id]': 'id()',\n '(keydown.escape)': '_onEscapeKey($event)',\n '(keydown.space)': '_onKeyDown($event)',\n '(keydown.enter)': '_onKeyDown($event)'\n },\n imports: [CdkOverlayOrigin, A11yModule]\n})\nexport class PopoverComponent implements AfterViewInit, AfterContentInit, OnDestroy {\n /**\n * Configuration object for popover settings.\n * When provided, these settings will be merged with individual input properties.\n * Individual inputs take precedence over config object values.\n */\n readonly config = input<PopoverConfig>({});\n\n /** Tooltip for popover */\n readonly title = input<string>('');\n\n /** Reference to popover trigger element */\n readonly trigger = model<ElementRef | HTMLElement | null>(null);\n\n /** Id of the popover. If none is provided, one will be generated. */\n readonly id = input<string>(`fd-popover-${cdkPopoverUniqueId++}`);\n\n /** Whether the popover component should be displayed in mobile mode. */\n readonly mobile = input(false, { transform: booleanAttribute });\n\n /** Config for the popover in mobile mode */\n readonly mobileConfig = input<MobileModeConfig>({ hasCloseButton: true });\n\n /**\n * Whether the popover should prevent page scrolling when space key is pressed.\n **/\n readonly preventSpaceKeyScroll = input(true, { transform: booleanAttribute });\n\n /** Popover placement */\n readonly placement = input<Placement>('bottom-start');\n\n /** Maximum width of popover body in px, prevents from overextending body by `fillControlMode` */\n readonly maxWidth = input<number | null>(null);\n\n /**\n * Preset options for the popover body width.\n * * `at-least` will apply a minimum width to the body equivalent to the width of the control.\n * * `equal` will apply a width to the body equivalent to the width of the control.\n * * Leave blank for no effect.\n */\n readonly fillControlMode = input<PopoverFillMode | null>(null);\n\n /** Whether clicking outside popover should close it */\n readonly closeOnOutsideClick = input(true, { transform: booleanAttribute });\n\n /** Whether escape key should close the popover */\n readonly closeOnEscapeKey = input(true, { transform: booleanAttribute });\n\n /** Whether the popover is disabled */\n readonly disabled = input(false, { transform: booleanAttribute });\n\n /** Popover trigger events configuration */\n readonly triggers = input<(string | TriggerConfig)[]>(['click']);\n\n /** Whether the popover should trap focus */\n readonly focusTrapped = input(true, { transform: booleanAttribute });\n\n /** Whether focus should be automatically captured when popover opens */\n readonly focusAutoCapture = input(true, { transform: booleanAttribute });\n\n /**\n * Whether to move the focus after popover is closed to the last focused element before popover was opened.\n */\n readonly restoreFocusOnClose = input(true, { transform: booleanAttribute });\n\n /** Whether the arrow should be hidden */\n readonly noArrow = input(true, { transform: booleanAttribute });\n\n /** Whether scrollbar should be disabled */\n readonly disableScrollbar = input(false, { transform: booleanAttribute });\n\n /** The element to which the overlay is attached. By default it is body */\n readonly appendTo = input<ElementRef | Element | null>(null);\n\n /** Placement of the popover element */\n readonly placementContainer = input<ElementRef | Element | null>(null);\n\n /** Scroll strategy for the overlay */\n readonly scrollStrategy = input<any>(null);\n\n /** List of position options for CDK overlay */\n readonly cdkPositions = input<ConnectedPosition[] | null>(null);\n\n /** Whether to apply a background overlay */\n readonly applyOverlay = input(false, { transform: booleanAttribute });\n\n /** Additional CSS class for the popover body container */\n readonly additionalBodyClass = input<string | null>(null);\n\n /** Additional CSS class for the popover trigger element */\n readonly additionalTriggerClass = input<string | null>(null);\n\n /** Whether to close the popover on router navigation start */\n readonly closeOnNavigation = input(true, { transform: booleanAttribute });\n\n /** Whether position shouldn't change when popover approaches the corner of page */\n readonly fixedPosition = input(false, { transform: booleanAttribute });\n\n /** Whether the popover body is resizable */\n readonly resizable = input(false, { transform: booleanAttribute });\n\n /** Two-way binding for popover open state */\n readonly isOpen = model(false);\n\n /** Event emitted when the state of the isOpen property changes. */\n readonly isOpenChange = output<boolean>();\n\n /** Event emitted right before the popover is being opened. */\n readonly beforeOpen = output<void>();\n\n /** @hidden */\n readonly templateRef = viewChild('templateRef', { read: TemplateRef<any> });\n\n /** @hidden */\n readonly container = viewChild('container', { read: ViewContainerRef });\n\n /** @hidden */\n readonly triggerOrigin = viewChild(CdkOverlayOrigin);\n\n /** @hidden */\n readonly popoverBody = contentChild(PopoverBodyComponent);\n\n /** @hidden */\n readonly popoverBodyDirective = contentChild(PopoverBodyDirective);\n\n /** @hidden */\n readonly popoverControl = contentChild(PopoverControlComponent);\n\n /** @hidden - template for Dialog body content */\n readonly popoverBodyContentTemplate = contentChild<TemplateRef<any>>('popoverBodyContent');\n\n /** @hidden - template for Dialog footer content */\n readonly popoverFooterContentTemplate = contentChild<TemplateRef<any>>('popoverFooterContent');\n\n /** @hidden */\n get _triggerElement(): HTMLElement | null {\n const trigger = this.trigger();\n if (!trigger) {\n return null;\n }\n return trigger instanceof ElementRef ? trigger.nativeElement : trigger;\n }\n\n /** @hidden */\n private readonly _popoverService = inject(PopoverService);\n\n /** @hidden */\n private readonly _renderer = inject(Renderer2);\n\n /** @hidden */\n private readonly _viewContainerRef = inject(ViewContainerRef);\n\n /** @hidden */\n private readonly _injector = inject(Injector);\n\n /** @hidden */\n private readonly _dynamicComponentService = inject(DynamicComponentService, { optional: true });\n\n /** @hidden */\n private readonly _destroyRef = inject(DestroyRef);\n\n /** @hidden */\n private _clickEventListener: (() => void) | null = null;\n\n /** @hidden */\n private _mobileModeComponentRef: ComponentRef<PopoverMobileComponent> | null = null;\n\n /** @hidden Flag to prevent circular sync between component and service */\n private _syncingIsOpen = false;\n\n /** @hidden Computed signal that merges config with individual inputs */\n private readonly _effectiveConfig = computed(() => {\n const cfg = this.config();\n return {\n placement: this.placement() ?? cfg.placement ?? 'bottom-start',\n maxWidth: this.maxWidth() ?? cfg.maxWidth ?? null,\n fillControlMode: this.fillControlMode() ?? cfg.fillControlMode ?? null,\n closeOnOutsideClick: this.closeOnOutsideClick() ?? cfg.closeOnOutsideClick ?? true,\n closeOnEscapeKey: this.closeOnEscapeKey() ?? cfg.closeOnEscapeKey ?? true,\n disabled: this.disabled() ?? cfg.disabled ?? false,\n triggers: this.triggers() ?? cfg.triggers ?? ['click'],\n focusTrapped: this.focusTrapped() ?? cfg.focusTrapped ?? true,\n focusAutoCapture: this.focusAutoCapture() ?? cfg.focusAutoCapture ?? true,\n restoreFocusOnClose: this.restoreFocusOnClose() ?? cfg.restoreFocusOnClose ?? true,\n noArrow: this.noArrow() ?? cfg.noArrow ?? true,\n disableScrollbar: this.disableScrollbar() ?? cfg.disableScrollbar ?? false,\n appendTo: this.appendTo() ?? cfg.appendTo ?? null,\n placementContainer: this.placementContainer() ?? cfg.placementContainer ?? null,\n scrollStrategy: this.scrollStrategy() ?? cfg.scrollStrategy ?? null,\n cdkPositions: this.cdkPositions() ?? cfg.cdkPositions ?? null,\n applyOverlay: this.applyOverlay() ?? cfg.applyOverlay ?? false,\n additionalBodyClass: this.additionalBodyClass() ?? cfg.additionalBodyClass ?? null,\n additionalTriggerClass: this.additionalTriggerClass() ?? cfg.additionalTriggerClass ?? null,\n closeOnNavigation: this.closeOnNavigation() ?? cfg.closeOnNavigation ?? true,\n fixedPosition: this.fixedPosition() ?? cfg.fixedPosition ?? false,\n resizable: this.resizable() ?? cfg.resizable ?? false\n };\n });\n\n /** @hidden */\n constructor() {\n // Sync component → service and emit events\n let previousIsOpen = false;\n effect(() => {\n const currentIsOpen = this.isOpen();\n\n // Emit beforeOpen when transitioning from closed to open\n if (currentIsOpen && !previousIsOpen) {\n this.beforeOpen.emit();\n }\n\n // Emit isOpenChange when state changes\n if (currentIsOpen !== previousIsOpen) {\n this.isOpenChange.emit(currentIsOpen);\n }\n\n // Sync to service only if not already syncing and not in mobile mode (prevents loop).\n // In mobile mode, the dialog handles open/close — the popover service should not be involved.\n if (!this._syncingIsOpen && !this.mobile()) {\n this._syncingIsOpen = true;\n this._popoverService.isOpen.set(currentIsOpen);\n this._syncingIsOpen = false;\n }\n previousIsOpen = currentIsOpen;\n });\n\n // Subscribe to service changes for bidirectional sync using afterNextRender\n // to ensure service is fully initialized\n afterNextRender(\n () => {\n // Service will emit when it closes/opens programmatically (escape key, close button, etc.)\n this._popoverService.isOpenChange\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe((serviceIsOpen) => {\n // In mobile mode, the dialog handles open/close — ignore service changes.\n if (this.mobile()) {\n return;\n }\n // Only update if different and not already syncing (prevents loop)\n if (!this._syncingIsOpen && this.isOpen() !== serviceIsOpen) {\n this._syncingIsOpen = true;\n this.isOpen.set(serviceIsOpen);\n this._syncingIsOpen = false;\n }\n });\n },\n { injector: this._injector }\n );\n\n // Watch effective config changes and sync to service\n // Using computed signal eliminates the need to read all signals individually\n effect(() => {\n const effectiveConfig = this._effectiveConfig();\n const triggerValue = this.trigger();\n\n // Always sync disabled state to service (for both trigger directive and control usage)\n this._popoverService.disabled.set(effectiveConfig.disabled);\n\n // Full sync only when trigger is set and not in mobile mode (for fdPopoverTrigger directive).\n // In mobile mode, the dialog handles open/close — the popover service should not be involved.\n if (triggerValue && !this.mobile()) {\n this._syncToService(effectiveConfig, triggerValue);\n }\n });\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._setupView();\n }\n\n /** @hidden */\n ngAfterContentInit(): void {\n const control = this.popoverControl();\n if (control && this.triggers().includes('click')) {\n control._tabbable = true;\n }\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._destroyMobileComponent();\n this._destroyEventListeners();\n }\n\n /** Toggles menu open/close state */\n toggle(): void {\n if (this.isOpen()) {\n this.close();\n } else {\n this.open();\n }\n }\n\n /** Opens the popover. */\n open(): void {\n // In mobile mode, just update the signal — the mobile component's effect handles the dialog.\n if (this.mobile()) {\n this.isOpen.set(true);\n } else {\n this._popoverService.open();\n }\n }\n\n /** Closes the popover. */\n close(focusActiveElement = true): void {\n // In mobile mode, just update the signal — the mobile component's effect handles the dialog.\n if (this.mobile()) {\n this.isOpen.set(false);\n } else {\n this._popoverService.close(focusActiveElement);\n }\n }\n\n /** Temporary sets the ignoring of the event triggers. */\n setIgnoreTriggers(ignore: boolean): void {\n this._popoverService.setIgnoreTriggers(ignore);\n }\n\n /**\n * Method called to change position of popover,\n * recommended to be used only when popover is opened, otherwise change position or cdkPlacement\n */\n applyNewPosition(positions: ConnectedPosition[]): void {\n this._popoverService.applyNewPosition(positions);\n }\n\n /** Method called to refresh position of opened popover */\n refreshPosition(): void {\n this._popoverService.refreshPosition();\n }\n\n /** Handler for alt + arrow down keydown */\n triggerKeyDownHandler(event: KeyboardEvent): void {\n if (KeyUtil.isKeyCode(event, DOWN_ARROW) && event.altKey && !this.disabled()) {\n this.open();\n event.preventDefault();\n event.stopPropagation();\n }\n }\n\n /** Handler escape keydown */\n protected _onEscapeKey(event: Event): void {\n if (this.closeOnEscapeKey() && this.isOpen()) {\n // In case if popover belongs to the element inside dialog\n event.preventDefault();\n event.stopImmediatePropagation();\n this.popoverBody()?.onClose.emit();\n }\n }\n\n /** @hidden */\n protected _onKeyDown(event: Event): void {\n if (!this.preventSpaceKeyScroll()) {\n return;\n }\n const activeElement = document.activeElement;\n if (\n // popoverControl will be undefined when popover is used from \"fdPopoverTrigger\"\n this.popoverControl()?.elRef.nativeElement.children[0] === activeElement &&\n activeElement?.tagName !== 'INPUT' &&\n activeElement?.tagName !== 'TEXTAREA' &&\n !activeElement?.classList.contains(SELECT_CLASS_NAMES.selectControl)\n ) {\n // prevent page scrolling on Space keydown\n event.preventDefault();\n this.toggle();\n }\n }\n\n /** @hidden - Sync all input signals to the service */\n private _syncToService(\n effectiveConfig: ReturnType<typeof this._effectiveConfig>,\n triggerValue: ElementRef | HTMLElement\n ): void {\n this._popoverService.placement.set(effectiveConfig.placement);\n this._popoverService.maxWidth.set(effectiveConfig.maxWidth);\n this._popoverService.fillControlMode.set(effectiveConfig.fillControlMode);\n this._popoverService.closeOnOutsideClick.set(effectiveConfig.closeOnOutsideClick);\n this._popoverService.closeOnEscapeKey.set(effectiveConfig.closeOnEscapeKey);\n this._popoverService.disabled.set(effectiveConfig.disabled);\n this._popoverService.triggers.set(effectiveConfig.triggers);\n this._popoverService.focusTrapped.set(effectiveConfig.focusTrapped);\n this._popoverService.focusAutoCapture.set(effectiveConfig.focusAutoCapture);\n this._popoverService.restoreFocusOnClose.set(effectiveConfig.restoreFocusOnClose);\n this._popoverService.noArrow.set(effectiveConfig.noArrow);\n this._popoverService.disableScrollbar.set(effectiveConfig.disableScrollbar);\n this._popoverService.appendTo.set(effectiveConfig.appendTo);\n this._popoverService.placementContainer.set(effectiveConfig.placementContainer);\n this._popoverService.scrollStrategy.set(effectiveConfig.scrollStrategy);\n this._popoverService.cdkPositions.set(effectiveConfig.cdkPositions);\n this._popoverService.applyOverlay.set(effectiveConfig.applyOverlay);\n this._popoverService.additionalBodyClass.set(effectiveConfig.additionalBodyClass);\n this._popoverService.additionalTriggerClass.set(effectiveConfig.additionalTriggerClass);\n this._popoverService.closeOnNavigation.set(effectiveConfig.closeOnNavigation);\n this._popoverService.fixedPosition.set(effectiveConfig.fixedPosition);\n this._popoverService.resizable.set(effectiveConfig.resizable);\n this._popoverService.isOpen.set(this.isOpen());\n this._popoverService.updateTriggerElement(triggerValue);\n }\n\n /** @hidden Select and instantiate popover view mode */\n private _setupView(): void {\n if (!this.mobile()) {\n this._popoverService._mobile = false;\n if (!this.popoverBody()) {\n this._popoverService.templateContent = this.templateRef() || null;\n }\n const triggerOriginRef = this.triggerOrigin();\n const triggerElement = this._triggerElement || (triggerOriginRef ? triggerOriginRef.elementRef : null);\n if (triggerElement) {\n this._popoverService.initialise(\n triggerElement,\n this._effectiveConfig() as PopoverConfig,\n this._getPopoverBodyContent()\n );\n }\n } else {\n this._setupMobileMode();\n }\n }\n\n /**\n * Depending on a used popover body type, returns a popover body content\n **/\n private _getPopoverBodyContent(): PopoverTemplate | TemplateRef<void> | null {\n const body = this.popoverBody();\n const templateRef = this.templateRef();\n const container = this.container();\n\n if (body && templateRef && container) {\n return {\n template: templateRef,\n container,\n popoverBody: body\n };\n }\n const bodyDirective = this.popoverBodyDirective();\n if (bodyDirective) {\n return bodyDirective.templateRef;\n }\n return null;\n }\n\n /** @hidden Open Popover in mobile mode */\n private async _setupMobileMode(): Promise<void> {\n if (!this._dynamicComponentService) {\n return;\n }\n\n const injector = Injector.create({\n providers: [{ provide: POPOVER_COMPONENT, useValue: this }],\n parent: this._injector\n });\n\n this._popoverService._mobile = true;\n\n this._mobileModeComponentRef = this._dynamicComponentService.createDynamicComponent(\n {\n popoverBodyContentTemplate: this.popoverBodyContentTemplate(),\n popoverFooterContentTemplate: this.popoverFooterContentTemplate()\n },\n PopoverMobileComponent,\n {\n containerRef: this._viewContainerRef\n },\n { injector }\n );\n\n this._listenOnTriggerRefClicks();\n }\n\n /** @hidden - Listen on popover trigger ref clicks */\n private _listenOnTriggerRefClicks(): void {\n this._destroyEventListeners();\n\n const triggerElement = this.trigger();\n if (triggerElement && this.mobile()) {\n this._clickEventListener = this._renderer.listen(this._triggerElement, 'click', () => {\n if (!this.disabled()) {\n this.toggle();\n }\n });\n }\n }\n\n /**\n * @hidden\n * This is going to be removed in feature, on dialog and dynamic service component refactor\n */\n private _destroyEventListeners(): void {\n if (this._clickEventListener) {\n this._clickEventListener();\n this._clickEventListener = null;\n }\n }\n\n /** @hidden */\n private _destroyMobileComponent(): void {\n if (this._mobileModeComponentRef) {\n this._mobileModeComponentRef.destroy();\n }\n }\n}\n","@if (!trigger()) {\n <div\n cdkOverlayOrigin\n class=\"fd-popover__control\"\n [class]=\"additionalTriggerClass()\"\n (keydown)=\"triggerKeyDownHandler($event)\"\n >\n <ng-content select=\"fd-popover-control, [fdPopoverControl]\"></ng-content>\n </div>\n}\n<ng-template #templateRef>\n <ng-content select=\"fd-popover-body\"></ng-content>\n <ng-content></ng-content>\n</ng-template>\n<ng-container #container></ng-container>\n","import { NgModule } from '@angular/core';\n\nimport { PopoverBodyFooterDirective } from './popover-body/popover-body-directives/popover-body-footer.directive';\nimport { PopoverBodyHeaderDirective } from './popover-body/popover-body-directives/popover-body-header.directive';\nimport { PopoverBodyComponent } from './popover-body/popover-body.component';\nimport { PopoverControlComponent } from './popover-control/popover-control.component';\n\nimport { PopoverBodyDirective } from './popover-body.directive';\nimport { PopoverContainerDirective } from './popover-container/popover-container.directive';\nimport { PopoverTriggerDirective } from './popover-trigger.directive';\nimport { PopoverComponent } from './popover.component';\n\n/**\n * @deprecated\n * Use direct imports of components and directives.\n */\n@NgModule({\n imports: [\n PopoverControlComponent,\n PopoverBodyComponent,\n PopoverBodyHeaderDirective,\n PopoverBodyFooterDirective,\n PopoverComponent,\n PopoverTriggerDirective,\n PopoverContainerDirective,\n PopoverBodyDirective\n ],\n exports: [\n PopoverControlComponent,\n PopoverBodyComponent,\n PopoverBodyHeaderDirective,\n PopoverBodyFooterDirective,\n PopoverComponent,\n PopoverTriggerDirective,\n PopoverContainerDirective,\n PopoverBodyDirective\n ]\n})\nexport class PopoverModule {}\n","import { computed, Signal } from '@angular/core';\nimport { PopoverConfig } from '../base/popover-config.interface';\n\n/**\n * Maps each PopoverConfig property to a signal accessor.\n * Components pass their input signals (or inline lambdas for fixed values).\n * All properties are optional — components only provide what they declare.\n */\nexport type PopoverConfigSignals = {\n [K in keyof PopoverConfig]?: () => PopoverConfig[K];\n};\n\n/**\n * Builds a computed PopoverConfig from individual signal accessors.\n * Reads all provided accessors reactively and assembles a config object.\n *\n * @example\n * ```typescript\n * readonly popoverConfig = buildPopoverConfig({\n * placement: () => this.placement() ?? 'bottom',\n * triggers: this.triggers,\n * disabled: this.disabled,\n * });\n * ```\n */\nexport function buildPopoverConfig(signals: PopoverConfigSignals): Signal<PopoverConfig> {\n return computed(() => {\n const config: PopoverConfig = {};\n for (const key of Object.keys(signals) as (keyof PopoverConfig)[]) {\n const accessor = signals[key];\n if (accessor) {\n (config as any)[key] = accessor();\n }\n }\n return config;\n });\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}