@fundamental-ngx/core 0.55.8 → 0.55.9
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.
|
@@ -563,7 +563,7 @@ class ComboboxComponent {
|
|
|
563
563
|
this.inputText = this._value ? this.inputText : '';
|
|
564
564
|
if (this.tabOutStrategy === 'closeAndSelect') {
|
|
565
565
|
const focusedItem = this.listComponent.getActiveItem();
|
|
566
|
-
if (focusedItem) {
|
|
566
|
+
if (focusedItem && !this.inputText) {
|
|
567
567
|
this._handleClickActions(focusedItem.value);
|
|
568
568
|
return;
|
|
569
569
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fundamental-ngx-core-combobox.mjs","sources":["../../../../libs/core/combobox/combobox-item.directive.ts","../../../../libs/core/combobox/combobox.interface.ts","../../../../libs/core/combobox/combobox-mobile/combobox-mobile.component.ts","../../../../libs/core/combobox/combobox-mobile/combobox-mobile.component.html","../../../../libs/core/combobox/list-group.pipe.ts","../../../../libs/core/combobox/tokens.ts","../../../../libs/core/combobox/combobox.component.ts","../../../../libs/core/combobox/combobox.component.html","../../../../libs/core/combobox/combobox.module.ts","../../../../libs/core/combobox/fundamental-ngx-core-combobox.ts"],"sourcesContent":["import { Directive, Input, TemplateRef, inject } from '@angular/core';\nimport { ComboboxItemDirectiveContext } from './combobox.interface';\n\n@Directive({\n selector: '[fdComboboxItem]',\n standalone: true\n})\nexport class ComboboxItemDirective<T = unknown> {\n /**\n * @hidden\n * Used for type support.\n */\n @Input()\n fdComboboxItemUse: T;\n\n /** Template reference. */\n templateRef = inject(TemplateRef<ComboboxItemDirectiveContext<T>>);\n\n /** @hidden */\n static ngTemplateContextGuard<T>(\n dir: ComboboxItemDirective<T>,\n ctx: ComboboxItemDirectiveContext<T>\n ): ctx is ComboboxItemDirectiveContext<T> {\n return true;\n }\n}\n","import { EventEmitter, InjectionToken } from '@angular/core';\nimport { MobileMode } from '@fundamental-ngx/core/mobile-mode';\n\nexport const COMBOBOX_COMPONENT = new InjectionToken<string[]>('ComboboxInterface');\n\n/**\n * Combobox Interface to have typing and avoid circular dependency between\n * ComboboxComponent <==> ComboboxMobileComponent\n */\nexport interface ComboboxInterface extends MobileMode {\n inputText: string;\n openChange: EventEmitter<boolean>;\n inShellbar: boolean;\n\n getValue(): any;\n dialogApprove(): void;\n dialogDismiss(backup: string): void;\n}\n\nexport interface ComboboxItemDirectiveContext<T = unknown> {\n $implicit: T;\n inputText: string;\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n Inject,\n isDevMode,\n OnInit,\n TemplateRef,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { observeOn } from 'rxjs/operators';\n\nimport { MobileModeBase, MobileModeControl } from '@fundamental-ngx/core/mobile-mode';\n\nimport { NgTemplateOutlet } from '@angular/common';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { InitialFocusDirective, TemplateDirective } from '@fundamental-ngx/cdk/utils';\nimport { BarElementDirective, BarMiddleDirective, ButtonBarComponent } from '@fundamental-ngx/core/bar';\n\nimport {\n DialogBodyComponent,\n DialogCloseButtonComponent,\n DialogComponent,\n DialogFooterComponent,\n DialogHeaderComponent\n} from '@fundamental-ngx/core/dialog';\nimport { TitleComponent } from '@fundamental-ngx/core/title';\nimport { asyncScheduler } from 'rxjs';\nimport { COMBOBOX_COMPONENT, ComboboxInterface } from '../combobox.interface';\n\n@Component({\n selector: 'fd-combobox-mobile',\n templateUrl: './combobox-mobile.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [\n TemplateDirective,\n BarMiddleDirective,\n BarElementDirective,\n ButtonBarComponent,\n DialogHeaderComponent,\n DialogCloseButtonComponent,\n DialogComponent,\n DialogBodyComponent,\n DialogFooterComponent,\n TitleComponent,\n TitleComponent,\n TemplateDirective,\n NgTemplateOutlet,\n InitialFocusDirective\n ]\n})\nexport class ComboboxMobileComponent extends MobileModeBase<ComboboxInterface> implements OnInit {\n /** @hidden */\n @ViewChild('dialogTemplate') dialogTemplate: TemplateRef<any>;\n\n /**\n * @hidden\n * For internal usage\n * Control element, which will be rendered inside dialog.\n * List element, which will be rendered inside dialog.\n */\n childContent: { listTemplate: TemplateRef<any>; controlTemplate: TemplateRef<any> } | null = null;\n\n /** @hidden */\n private _selectedBackup: string;\n\n /** @hidden */\n constructor(@Inject(COMBOBOX_COMPONENT) comboboxComponent: ComboboxInterface) {\n super(comboboxComponent, MobileModeControl.COMBOBOX);\n }\n\n /** @hidden */\n ngOnInit(): void {\n this._listenOnMultiInputOpenChange();\n }\n\n /** @hidden */\n handleDismiss(): void {\n this.dialogRef.dismiss();\n this._component.dialogDismiss(this._selectedBackup);\n }\n\n /** @hidden */\n handleApprove(): void {\n this.dialogRef.close();\n this._component.dialogApprove();\n }\n\n /** @hidden */\n private _toggleDialog(open: boolean): void {\n if (open) {\n this._selectedBackup = this._component.getValue();\n if (!this._dialogService.hasOpenDialogs()) {\n this._open();\n }\n }\n }\n\n /** @hidden */\n private _listenOnMultiInputOpenChange(): void {\n this._component.openChange\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe((isOpen) => this._toggleDialog(isOpen));\n }\n\n /** @hidden */\n private _open(): void {\n this.dialogRef = this._dialogService.open(this.dialogTemplate, {\n mobile: true,\n ...this.dialogConfig,\n backdropClickCloseable: false,\n container: this._elementRef.nativeElement,\n disablePaddings: true\n });\n\n this._focusInputElementOnceOpened();\n\n const refSub = this.dialogRef.afterClosed.subscribe({\n error: (type) => {\n if (type === 'escape') {\n this._component.dialogDismiss(this._selectedBackup);\n refSub.unsubscribe();\n }\n }\n });\n }\n\n /** @hidden */\n private _focusInputElementOnceOpened(): void {\n this.dialogRef.afterLoaded\n .pipe(\n observeOn(asyncScheduler), // making the listener async\n takeUntilDestroyed(this._destroyRef)\n )\n .subscribe(() => {\n try {\n const input = this._elementRef.nativeElement.querySelector('fd-input-group input[role=\"combobox\"]');\n input.focus();\n } catch (error) {\n if (isDevMode()) {\n console.error('Failed to focus combobox search input', error);\n }\n }\n });\n }\n}\n","<ng-template [fdDialogTemplate] let-dialog let-dialogConfig=\"dialogConfig\" #dialogTemplate>\n <fd-dialog [dialogConfig]=\"dialogConfig\" [dialogRef]=\"dialog\">\n <fd-dialog-header>\n @if (mobileConfig.title) {\n <h1 fd-title>{{ mobileConfig.title }}</h1>\n }\n @if (mobileConfig.hasCloseButton) {\n <button title=\"Close\" fd-dialog-close-button [mobile]=\"true\" (click)=\"handleDismiss()\"></button>\n }\n <ng-template fdkTemplate=\"subheader\">\n <div fd-bar-middle>\n <fd-bar-element [fullWidth]=\"true\">\n <ng-template [ngTemplateOutlet]=\"childContent?.controlTemplate || null\"></ng-template>\n </fd-bar-element>\n </div>\n </ng-template>\n </fd-dialog-header>\n <fd-dialog-body>\n <ng-template [ngTemplateOutlet]=\"childContent?.listTemplate || null\"></ng-template>\n </fd-dialog-body>\n <fd-dialog-footer>\n @if (mobileConfig.approveButtonText) {\n <fd-button-bar fdType=\"emphasized\" [label]=\"mobileConfig.approveButtonText!\" (click)=\"handleApprove()\">\n </fd-button-bar>\n }\n @if (mobileConfig.cancelButtonText) {\n <fd-button-bar fdkInitialFocus [label]=\"mobileConfig.cancelButtonText!\" (click)=\"handleDismiss()\">\n </fd-button-bar>\n }\n </fd-dialog-footer>\n </fd-dialog>\n</ng-template>\n","import { KeyValue } from '@angular/common';\nimport { Pipe, PipeTransform } from '@angular/core';\n\nexport type GroupFunction<T = any> = (items: T[]) => { [key: string]: T[] };\n\n@Pipe({\n name: 'listGroupPipe',\n standalone: true\n})\nexport class ListGroupPipe<T = any> implements PipeTransform {\n /** Group items */\n transform(items: any[], group: GroupFunction<T>): KeyValue<string, T[]>[] {\n return Object.entries(group(items)).map(([key, value]) => ({ key, value }));\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { ComboboxInterface } from './combobox.interface';\n\nexport const FD_COMBOBOX_COMPONENT = new InjectionToken<ComboboxInterface>('FdComboboxComponent');\n","import {\n BACKSPACE,\n CONTROL,\n DOWN_ARROW,\n ENTER,\n ESCAPE,\n LEFT_ARROW,\n RIGHT_ARROW,\n SHIFT,\n SPACE,\n TAB,\n UP_ARROW\n} from '@angular/cdk/keycodes';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n ElementRef,\n EventEmitter,\n Injector,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n QueryList,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewContainerRef,\n ViewEncapsulation,\n forwardRef\n} from '@angular/core';\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Subscription } from 'rxjs';\n\nimport {\n AutoCompleteEvent,\n DynamicComponentService,\n FocusEscapeDirection,\n KeyUtil,\n Nullable,\n TruncatedTitleDirective\n} from '@fundamental-ngx/cdk/utils';\nimport { FormItemControl, registerFormItemControl } from '@fundamental-ngx/core/form';\nimport { MenuKeyboardService } from '@fundamental-ngx/core/menu';\nimport { MobileModeConfig } from '@fundamental-ngx/core/mobile-mode';\nimport { PopoverComponent } from '@fundamental-ngx/core/popover';\nimport { PopoverFillMode } from '@fundamental-ngx/core/shared';\n\nimport { Overlay, RepositionScrollStrategy } from '@angular/cdk/overlay';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { FormStates, SingleDropdownValueControl } from '@fundamental-ngx/cdk/forms';\nimport { AutoCompleteDirective, DisplayFnPipe, SearchHighlightPipe } from '@fundamental-ngx/cdk/utils';\nimport { ButtonComponent } from '@fundamental-ngx/core/button';\nimport {\n ContentDensityModule,\n ContentDensityObserver,\n contentDensityObserverProviders\n} from '@fundamental-ngx/core/content-density';\nimport { FD_DEFAULT_ICON_FONT_FAMILY, IconComponent, IconFont } from '@fundamental-ngx/core/icon';\nimport { InputGroupComponent, InputGroupInputDirective } from '@fundamental-ngx/core/input-group';\nimport {\n FD_LIST_MESSAGE_DIRECTIVE,\n ListComponent,\n ListGroupHeaderDirective,\n ListItemComponent,\n ListMessageDirective,\n ListTitleDirective\n} from '@fundamental-ngx/core/list';\nimport { PopoverBodyComponent, PopoverControlComponent } from '@fundamental-ngx/core/popover';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\nimport { ComboboxItem } from './combobox-item';\nimport { ComboboxItemDirective } from './combobox-item.directive';\nimport { ComboboxMobileComponent } from './combobox-mobile/combobox-mobile.component';\nimport { COMBOBOX_COMPONENT, ComboboxInterface, ComboboxItemDirectiveContext } from './combobox.interface';\nimport { GroupFunction, ListGroupPipe } from './list-group.pipe';\nimport { FD_COMBOBOX_COMPONENT } from './tokens';\n\nlet comboboxUniqueId = 0;\n\n/**\n * Allows users to filter through results and select a value.\n *\n * Supports Angular Forms.\n * ```html\n * <fd-combobox\n * [(ngModel)]=\"searchTerm\"\n * [dropdownValues]=\"dropdownValues\"\n * placeholder=\"Type some text...\">\n * </fd-combobox>\n * ```\n */\n@Component({\n selector: 'fd-combobox',\n templateUrl: './combobox.component.html',\n styleUrl: './combobox.component.scss',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ComboboxComponent),\n multi: true\n },\n registerFormItemControl(ComboboxComponent),\n MenuKeyboardService,\n DynamicComponentService,\n contentDensityObserverProviders(),\n {\n provide: FD_COMBOBOX_COMPONENT,\n useExisting: ComboboxComponent\n }\n ],\n host: {\n '[class.fd-combobox-custom-class]': 'true',\n '[class.fd-combobox-input]': 'true',\n '[class.fd-combobox-custom-class--mobile]': 'mobile',\n '[style.width]': 'width'\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n NgTemplateOutlet,\n PopoverComponent,\n PopoverControlComponent,\n PopoverBodyComponent,\n ListComponent,\n ListItemComponent,\n ListTitleDirective,\n ListGroupHeaderDirective,\n InputGroupComponent,\n InputGroupInputDirective,\n FormsModule,\n AutoCompleteDirective,\n ButtonComponent,\n IconComponent,\n ContentDensityModule,\n DisplayFnPipe,\n SearchHighlightPipe,\n FdTranslatePipe,\n ListGroupPipe,\n TruncatedTitleDirective\n ]\n})\nexport class ComboboxComponent<T = any>\n implements\n ComboboxInterface,\n SingleDropdownValueControl,\n ControlValueAccessor,\n OnInit,\n OnChanges,\n AfterViewInit,\n OnDestroy,\n FormItemControl\n{\n /** Id for the Combobox. */\n @Input()\n comboboxId = `fd-combobox-${comboboxUniqueId++}`;\n\n /** Id attribute for input element inside Combobox component */\n @Input()\n inputId = '';\n\n /** Aria-label for Combobox. */\n @Input()\n ariaLabel: Nullable<string>;\n\n /** Aria-Labelledby for element describing Combobox. */\n @Input()\n ariaLabelledBy: Nullable<string>;\n\n /** If it is mandatory field */\n @Input()\n required = false;\n\n /** Values to be filtered in the search input. */\n @Input()\n dropdownValues: T[] = [];\n\n /** Filter function. Accepts an array of objects and a search term as arguments\n * and returns a string. See search input examples for details. */\n @Input()\n filterFn = this._defaultFilter;\n\n /** Whether the search input is disabled. **/\n @Input()\n disabled: boolean;\n\n /** Placeholder of the search input. **/\n @Input()\n placeholder: string;\n\n /**\n * Whether the Combobox is a Search Field\n */\n @Input()\n isSearch = false;\n\n /** Icon to display in the right-side button. */\n @Input()\n glyph = 'navigation-down-arrow';\n\n /** Glyph font family */\n @Input()\n glyphFont: IconFont = FD_DEFAULT_ICON_FONT_FAMILY;\n\n /**\n * Whether to show the clear search term button\n */\n @Input()\n showClearButton = false;\n\n /**\n * The trigger events that will open/close the options popover.\n * Accepts any [HTML DOM Events](https://www.w3schools.com/jsref/dom_obj_event.asp).\n */\n @Input()\n triggers: string[] = [];\n\n /** Whether the combobox should close, when a click is performed outside its boundaries. True by default */\n @Input()\n closeOnOutsideClick = true;\n\n /**\n * Whether the combobox should open, when any key is pressed in input (except Escape, Space, Enter). True by default\n */\n @Input()\n openOnKeyboardEvent = true;\n\n /**\n * The state of the form control - applies css classes.\n * Can be `success`, `error`, `warning`, `information` or blank for default.\n */\n @Input()\n state?: FormStates;\n\n /**\n * The template with which to display the individual listed items.\n * Use it by passing an ng-template with implicit content. See examples for more info.\n */\n @Input()\n itemTemplate: TemplateRef<ComboboxItemDirectiveContext<T>>;\n\n /**\n * Function used to handle grouping of items.\n */\n @Input()\n groupFn: Nullable<GroupFunction>;\n\n /** Max height of the popover. Any overflowing elements will be accessible through scrolling. */\n @Input()\n maxHeight = '50vh';\n\n /** Custom width of the control. */\n @Input()\n width: Nullable<string>;\n\n /** Search function to execute when the Enter key is pressed on the main input. */\n @Input()\n searchFn: () => void;\n\n /** Whether the matching string should be highlighted during filtration. */\n @Input()\n highlighting = true;\n\n /** Whether the popover should close when a user selects a result. */\n @Input()\n closeOnSelect = true;\n\n /** Whether the input field should be populated with the result picked by the user. */\n @Input()\n fillOnSelect = true;\n\n /** Whether the autocomplete should be enabled; Enabled by default */\n @Input()\n autoComplete = true;\n\n /**\n * Preset options for the Select body width, whatever is chosen, the body has a 600px limit.\n * * `at-least` will apply a minimum width to the body equivalent to the width of the control. - Default\n * * `equal` will apply a width to the body equivalent to the width of the control.\n * * 'fit-content' will apply width needed to properly display items inside, independent of control.\n */\n @Input()\n fillControlMode: PopoverFillMode = 'at-least';\n\n /** Defines if combobox should behave same as dropdown. When it's enabled writing inside text input won't\n * trigger onChange function, until it matches one of displayed dropdown values. Also communicating with combobox\n * can be achieved only by objects with same type as dropdownValue */\n @Input()\n communicateByObject = false;\n\n /** Display function. Accepts an object of the same type as the\n * items passed to dropdownValues as argument, and outputs a string.\n * An arrow function can be used to access the *this* keyword in the calling component.\n * See search input examples for details. */\n @Input()\n displayFn = this._defaultDisplay;\n\n /**\n * Whether AddOn Button should be focusable\n * @default false\n */\n @Input()\n buttonFocusable = false;\n\n /**\n * Whether clear button should be focusable.\n * @default true\n */\n @Input()\n clearButtonFocusable = true;\n\n /** Whether the combobox is readonly. */\n @Input()\n readOnly = false;\n\n /** Whether the combobox should be built on mobile mode */\n @Input()\n mobile = false;\n\n /** Multi Input Mobile Configuration, it's applied only, when mobile is enabled */\n @Input()\n mobileConfig: MobileModeConfig;\n\n /** Whether to display the addon button. */\n @Input()\n showDropdownButton = true;\n\n /**\n * Whether to return results where the input matches the entire string. By default, only results that start\n * with the input search term will be returned.\n */\n @Input()\n includes = false;\n\n /**\n * The tooltip for the multi-input icon.\n */\n @Input()\n title: string;\n\n /** Whether list item options should be rendered as byline. */\n @Input()\n byline = false;\n\n /**\n * Action to perform when user shifts focus from the dropdown.\n * - `close` will close the dropdown preserving previously selected value.\n * - `closeAndSelect` will close the dropdown and select last focused dropdown item.\n */\n @Input()\n tabOutStrategy: 'close' | 'closeAndSelect' = 'closeAndSelect';\n\n /** Event emitted when an item is clicked. Use *$event* to retrieve it. */\n @Output()\n readonly itemClicked: EventEmitter<ComboboxItem> = new EventEmitter<ComboboxItem>();\n\n /** Event emitted, when the combobox's popover body is opened or closed */\n @Output()\n readonly openChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n /** Event emitted when the input text changes. */\n @Output()\n inputTextChange: EventEmitter<string> = new EventEmitter<string>();\n\n /** @hidden */\n @ViewChild(ListComponent)\n listComponent: ListComponent;\n\n /** @hidden */\n @ViewChild('searchInputElement')\n searchInputElement: ElementRef<HTMLInputElement>;\n\n /** @hidden */\n @ViewChild(PopoverComponent)\n popoverComponent: PopoverComponent;\n\n /** @hidden */\n @ViewChild(InputGroupComponent)\n inputGroup: InputGroupComponent;\n\n /** @hidden */\n @ContentChildren(FD_LIST_MESSAGE_DIRECTIVE)\n listMessages: QueryList<ListMessageDirective>;\n\n /** @hidden */\n @ViewChild('controlTemplate')\n controlTemplate: TemplateRef<HTMLElement>;\n\n /** @hidden */\n @ViewChild('listTemplate')\n listTemplate: TemplateRef<HTMLElement>;\n\n /** @hidden */\n @ContentChild(ComboboxItemDirective)\n private readonly _comboboxItemRenderer: ComboboxItemDirective;\n\n /** Whether the matching string should be highlighted after combobox value is selected. */\n filterHighlight = true;\n\n /** Keys, that won't trigger the popover's open state, when dispatched on search input */\n readonly nonOpeningKeys: number[] = [\n ESCAPE,\n ENTER,\n LEFT_ARROW,\n RIGHT_ARROW,\n DOWN_ARROW,\n UP_ARROW,\n CONTROL,\n TAB,\n SHIFT\n ];\n\n /** @hidden */\n readonly _repositionScrollStrategy: RepositionScrollStrategy;\n\n /** @hidden */\n readonly _defaultFontFamily = FD_DEFAULT_ICON_FONT_FAMILY;\n\n /** Whether the combobox is opened. */\n open = false;\n\n /**\n * Whether or not the input coup is in the shellbar. Only for internal use by combobox component\n * @hidden\n */\n inShellbar = false;\n\n /** @hidden */\n displayedValues: any[] = [];\n\n /** @hidden */\n inputTextValue = '';\n\n /** @hidden */\n clearInputBtnFocused = false;\n\n /** @hidden */\n get _customRenderer(): Nullable<TemplateRef<ComboboxItemDirectiveContext<T>>> {\n return this._comboboxItemRenderer?.templateRef || this.itemTemplate;\n }\n\n /** @hidden */\n private _subscriptions = new Subscription();\n\n /** @hidden */\n private _value: any;\n\n /** @hidden */\n constructor(\n private readonly _overlay: Overlay,\n private readonly _cdRef: ChangeDetectorRef,\n private readonly _injector: Injector,\n private readonly _viewContainerRef: ViewContainerRef,\n private readonly _dynamicComponentService: DynamicComponentService,\n readonly _contentDensityObserver: ContentDensityObserver\n ) {\n this._repositionScrollStrategy = this._overlay.scrollStrategies.reposition({ autoClose: true });\n }\n\n /** @hidden */\n onChange: (value: any) => void = () => {};\n\n /** @hidden */\n onTouched = (): void => {};\n\n /** @hidden */\n ngOnInit(): void {\n if (this.readOnly) {\n this.showDropdownButton = false;\n }\n this._refreshDisplayedValues();\n }\n\n /** @hidden */\n ngOnChanges(changes: SimpleChanges): void {\n if (this.dropdownValues && (changes.dropdownValues || changes.searchTerm)) {\n this._refreshDisplayedValues();\n }\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._addShellbarClass();\n\n if (this.mobile) {\n this._setUpMobileMode();\n }\n }\n\n /** @hidden */\n onInputKeydownHandler(event: KeyboardEvent | string): void {\n if (this.readOnly) {\n return;\n }\n\n if (typeof event === 'string') {\n if (event === 'fromPaste') {\n this.isOpenChangeHandle(true);\n }\n } else {\n if (KeyUtil.isKeyCode(event, TAB) && this.open) {\n this._close();\n return;\n }\n\n if (KeyUtil.isKeyCode(event, ENTER)) {\n if (this.searchFn) {\n this.searchFn();\n }\n } else if (KeyUtil.isKeyCode(event, DOWN_ARROW)) {\n if (event.altKey) {\n this._resetDisplayedValues();\n this.isOpenChangeHandle(true);\n }\n if (this.open && this.listComponent) {\n this.listComponent.setItemActive(0);\n } else if (!this.open) {\n this._chooseOtherItem(1);\n }\n event.preventDefault();\n } else if (KeyUtil.isKeyCode(event, UP_ARROW)) {\n this._chooseOtherItem(-1);\n event.preventDefault();\n } else if (\n this.openOnKeyboardEvent &&\n !event.ctrlKey &&\n !event.altKey &&\n !KeyUtil.isKeyCode(event, this.nonOpeningKeys)\n ) {\n this.isOpenChangeHandle(true);\n if (this.isEmptyValue && KeyUtil.isKeyType(event, 'control') && !KeyUtil.isKeyCode(event, BACKSPACE)) {\n this.listComponent.setItemActive(0);\n }\n }\n }\n }\n\n /** @hidden */\n onItemKeyDownHandler(event: KeyboardEvent, value: any): void {\n if (KeyUtil.isKeyCode(event, ENTER) || KeyUtil.isKeyCode(event, SPACE)) {\n event.preventDefault();\n this.onMenuClickHandler(value);\n }\n }\n\n /** @hidden */\n onMenuClickHandler(value: any): void {\n if (value || value === 0) {\n const index: number = this.dropdownValues.findIndex((_value) => _value === value);\n this._handleClickActions(value);\n this.filterHighlight = false;\n this.itemClicked.emit({ item: value, index });\n }\n }\n\n /** Handle dialog dismissing, closes popover and sets backup data. */\n dialogDismiss(term: any): void {\n this.inputText = this.displayFn(term);\n this.setValue(term);\n this.isOpenChangeHandle(false);\n }\n\n /** Handle dialog approval, closes popover and propagates data changes. */\n dialogApprove(): void {\n this._propagateChange();\n this.isOpenChangeHandle(false);\n }\n\n /** If true value empty */\n get isEmptyValue(): boolean {\n return !this.inputText || this.inputText?.trim().length === 0;\n }\n\n /** Input text of the input. */\n set inputText(value: string) {\n this.inputTextValue = value;\n if (!this.communicateByObject) {\n this._value = value;\n }\n this.inputTextChange.emit(value);\n if (!this.mobile) {\n this._propagateChange();\n }\n }\n get inputText(): string {\n return this.inputTextValue;\n }\n\n /** Get the glyph value based on whether the combobox is used as a search field or not. */\n get glyphValue(): string {\n return this.isSearch ? 'search' : this.glyph;\n }\n\n /** @hidden */\n _handleClearSearchTerm(): void {\n this.inputTextValue = '';\n this.inputTextChange.emit('');\n this.displayedValues = this.dropdownValues || [];\n this.searchInputElement.nativeElement.focus();\n if (!this.mobile) {\n this._propagateChange();\n }\n this._cdRef.detectChanges();\n }\n\n /** @hidden */\n writeValue(value: any): void {\n this.inputTextValue = this.displayFn(value);\n this.setValue(value);\n this._cdRef.markForCheck();\n }\n\n /** @hidden */\n registerOnChange(fn: (value: any) => void): void {\n this.onChange = fn;\n }\n\n /** @hidden */\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n /** Method passed to list component */\n handleListFocusEscape(direction: FocusEscapeDirection): void {\n if (direction === 'up') {\n this.searchInputElement.nativeElement.focus();\n }\n }\n\n /** @hidden */\n handleSearchTermChange(): void {\n this.displayedValues = this.filterFn(this.dropdownValues, this.inputText);\n this.popoverComponent?.refreshPosition();\n }\n\n /** @hidden */\n onPrimaryButtonClick(): void {\n // Prevent primary button click behaviour on mobiles\n if (this.mobile) {\n return;\n }\n\n if (this.searchFn) {\n this.searchFn();\n }\n this._resetDisplayedValues();\n this.isOpenChangeHandle(!this.open);\n this.searchInputElement.nativeElement.focus();\n this.filterHighlight = false;\n if (this.open) {\n this.searchInputElement?.nativeElement.focus();\n }\n }\n\n /** @hidden */\n isOpenChangeHandle(isOpen: boolean): void {\n /** Reset displayed values on every mobile open */\n if (this.mobile && !this.open) {\n this._resetDisplayedValues();\n }\n if (this.open !== isOpen) {\n this.open = isOpen;\n this.openChange.emit(isOpen);\n }\n\n if (!this.open && !this.mobile) {\n this.handleBlur();\n this.searchInputElement.nativeElement.focus({ preventScroll: true });\n }\n\n this._cdRef.detectChanges();\n }\n\n /** @hidden */\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n this._cdRef.detectChanges();\n }\n\n /** Method that handles complete event from auto complete directive, setting the new value, and closing popover */\n handleAutoComplete(event: AutoCompleteEvent): void {\n if (this.inputText !== event.term) {\n this.inputText = event.term;\n this.handleSearchTermChange();\n }\n if (event.forceClose && this.inputText) {\n this.isOpenChangeHandle(false);\n }\n }\n\n /** @hidden */\n handleBlur(): void {\n if (!this.open) {\n this.onTouched();\n this.handleAutoComplete({\n term: this.searchInputElement.nativeElement.value,\n forceClose: false\n });\n }\n }\n\n /** @hidden */\n clearInputBtnFocus(): void {\n this.clearInputBtnFocused = true;\n }\n\n /** @hidden */\n clearInputBtnBlur(): void {\n this.clearInputBtnFocused = false;\n }\n\n /** Current select value */\n getValue(): any {\n return this._value;\n }\n\n /** @hidden */\n _close(): void {\n this.inputText = this._value ? this.inputText : '';\n if (this.tabOutStrategy === 'closeAndSelect') {\n const focusedItem = this.listComponent.getActiveItem();\n if (focusedItem) {\n this._handleClickActions(focusedItem.value);\n return;\n }\n }\n this.isOpenChangeHandle(false);\n this.searchInputElement.nativeElement.focus();\n }\n\n /** @hidden */\n isSelected(term: any): boolean {\n const termValue = this.communicateByObject ? term : this.displayFn(term);\n return this.getValue() === termValue;\n }\n\n /** Method that picks other value moved from current one by offset, called only when combobox is closed */\n private _chooseOtherItem(offset: number): void {\n const activeValue: any = this._getOptionObjectByDisplayedValue(this.inputTextValue)[0];\n const index: number = this.dropdownValues.findIndex((value) => value === activeValue);\n if (this.dropdownValues[index + offset]) {\n this.onMenuClickHandler(this.dropdownValues[index + offset]);\n }\n }\n\n /** Method that reset filtering for displayed values. It overrides displayed values by all possible dropdown values */\n private _resetDisplayedValues(): void {\n this.displayedValues = this.dropdownValues || [];\n }\n\n /** @hidden */\n private _addShellbarClass(): void {\n if (this.inShellbar) {\n this.searchInputElement.nativeElement.classList.add('fd-shellbar__input-group-input');\n if (this.inputGroup) {\n this.inputGroup.setInShellbar(true);\n }\n }\n }\n\n /** @hidden */\n private _defaultDisplay(str: any): string {\n return `${str}`;\n }\n\n /** @hidden */\n private _defaultFilter(contentArray: any[], searchTerm: any): any[] {\n this.filterHighlight = true;\n if (typeof searchTerm === 'string') {\n const searchLower = searchTerm.toLocaleLowerCase();\n return contentArray.filter((item) => {\n if (item) {\n const term = this.displayFn(item).toLocaleLowerCase();\n return this.includes ? term.includes(searchLower) : term.startsWith(searchLower);\n }\n });\n } else if (typeof searchTerm === 'object') {\n return contentArray.filter((item) => item === searchTerm);\n }\n return contentArray || [];\n }\n\n /** @hidden */\n private _handleClickActions(term: any): void {\n if (this.closeOnSelect) {\n this.isOpenChangeHandle(false);\n }\n if (this.fillOnSelect) {\n this.inputText = this.displayFn(term);\n this.setValue(term);\n this.searchInputElement.nativeElement.value = this.inputText;\n this._cdRef.detectChanges();\n\n if (this.mobile) {\n this._propagateChange();\n }\n }\n this.handleSearchTermChange();\n }\n\n /** @hidden */\n private _getOptionObjectByDisplayedValue(displayValue: string): any {\n return this.dropdownValues.filter((value) => this.displayFn(value) === displayValue);\n }\n\n /** @hidden */\n private _refreshDisplayedValues(): void {\n if (this.inputText) {\n this.displayedValues = this.filterFn(this.dropdownValues, this.inputText);\n } else {\n this.displayedValues = this.dropdownValues || [];\n }\n }\n\n /** @hidden */\n private _propagateChange(): void {\n if (this.communicateByObject) {\n const values = this._getOptionObjectByDisplayedValue(this.inputText);\n // Do not set new value if theres multiple items that have same label.\n if (values.length === 1 && this.displayFn(values[0]) !== this.displayFn(this.getValue())) {\n this.setValue(values[0]);\n } else if (values.length === 0) {\n this.setValue(this.inputText);\n }\n const thisValue = this.getValue();\n if (typeof thisValue === 'object') {\n this.onChange(thisValue);\n }\n } else {\n this.onChange(this.inputText);\n }\n }\n\n /** @hidden */\n private setValue(value: any): void {\n if (this.communicateByObject) {\n this._value = value;\n } else {\n this._value = this.displayFn(value);\n }\n }\n\n /** @hidden */\n private _setUpMobileMode(): void {\n const injector = Injector.create({\n providers: [{ provide: COMBOBOX_COMPONENT, useValue: this }],\n parent: this._injector\n });\n\n this._dynamicComponentService.createDynamicComponent(\n { listTemplate: this.listTemplate, controlTemplate: this.controlTemplate },\n ComboboxMobileComponent,\n {\n containerRef: this._viewContainerRef\n },\n {\n injector\n }\n );\n }\n}\n","<ng-template [ngTemplateOutlet]=\"mobile ? mobileTemplate : desktopTemplate\"></ng-template>\n<ng-template #desktopTemplate>\n <fd-popover\n additionalBodyClass=\"fd-popover-custom-list\"\n [class.fd-combobox-full-width]=\"isSearch || showClearButton\"\n [isOpen]=\"open && displayedValues && displayedValues.length > 0\"\n (isOpenChange)=\"isOpenChangeHandle($event)\"\n [fillControlMode]=\"fillControlMode\"\n [scrollStrategy]=\"_repositionScrollStrategy\"\n [focusTrapped]=\"true\"\n [triggers]=\"triggers\"\n [disabled]=\"disabled || readOnly\"\n [maxWidth]=\"640\"\n [style.width]=\"width && '100%'\"\n [closeOnOutsideClick]=\"closeOnOutsideClick\"\n >\n <fd-popover-control>\n <ng-template [ngTemplateOutlet]=\"controlTemplate\"></ng-template>\n </fd-popover-control>\n <fd-popover-body [hidden]=\"!displayedValues.length\">\n <ng-template [ngTemplateOutlet]=\"listTemplate\"></ng-template>\n <ng-content></ng-content>\n </fd-popover-body>\n </fd-popover>\n</ng-template>\n<ng-template let-term=\"term\" #itemSource>\n @if (!_customRenderer) {\n <span\n fd-list-title\n fdTruncatedTitle\n [innerHTML]=\"term | displayFnPipe: displayFn | highlight: inputText : highlighting && filterHighlight\"\n >\n </span>\n } @else {\n <ng-template\n [ngTemplateOutlet]=\"_customRenderer\"\n [ngTemplateOutletContext]=\"{ $implicit: term, inputText: inputText }\"\n ></ng-template>\n }\n</ng-template>\n<ng-template #mobileTemplate>\n <ng-template [ngTemplateOutlet]=\"controlTemplate\"></ng-template>\n</ng-template>\n<ng-template #controlTemplate>\n <fd-input-group\n [button]=\"showDropdownButton\"\n [glyph]=\"showDropdownButton ? glyphValue : null\"\n [glyphFont]=\"isSearch ? _defaultFontFamily : glyphFont\"\n [state]=\"state\"\n [buttonFocusable]=\"buttonFocusable\"\n [disabled]=\"disabled\"\n [readonly]=\"readOnly\"\n [isControl]=\"true\"\n [isExpanded]=\"!mobile && open && displayedValues.length > 0\"\n [showFocus]=\"!clearInputBtnFocused\"\n [glyphAriaLabel]=\"ariaLabel || ('platformMultiCombobox.inputGlyphAriaLabel' | fdTranslate)\"\n [iconTitle]=\"title || ('platformMultiCombobox.inputGlyphAriaLabel' | fdTranslate)\"\n (addOnButtonClicked)=\"onPrimaryButtonClick()\"\n (click)=\"mobile && isOpenChangeHandle(true)\"\n >\n <input\n #searchInputElement\n fdkAutoComplete\n fd-input-group-input\n type=\"text\"\n role=\"combobox\"\n autocomplete=\"off\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-describedby]=\"comboboxId + '-list-results'\"\n [attr.aria-autocomplete]=\"autoComplete && !mobile ? 'list' : null\"\n [attr.aria-owns]=\"autoComplete && !mobile ? comboboxId + '-result' : null\"\n [attr.aria-haspopup]=\"autoComplete && !mobile\"\n [attr.aria-expanded]=\"!mobile && open && displayedValues.length\"\n [attr.aria-required]=\"required\"\n [attr.tabindex]=\"readOnly || disabled ? -1 : null\"\n [enable]=\"autoComplete && !mobile\"\n [displayFn]=\"displayFn\"\n [options]=\"dropdownValues\"\n [inputText]=\"inputText\"\n [disabled]=\"disabled\"\n [readonly]=\"readOnly\"\n [attr.aria-readonly]=\"readOnly\"\n [placeholder]=\"placeholder\"\n [id]=\"inputId\"\n [(ngModel)]=\"inputText\"\n (onComplete)=\"handleAutoComplete($event)\"\n (keydown)=\"onInputKeydownHandler($event)\"\n (paste)=\"onInputKeydownHandler('fromPaste')\"\n (ngModelChange)=\"handleSearchTermChange()\"\n (blur)=\"handleBlur()\"\n />\n @if ((isSearch || showClearButton) && inputText && inputText.length > 0) {\n <span\n class=\"fd-input-group__addon fd-input-group__addon--button\"\n [class.fd-shellbar__input-group-addon]=\"inShellbar\"\n >\n <button\n fd-button\n class=\"fd-input-group__button\"\n type=\"button\"\n [fdType]=\"inShellbar ? 'standard' : 'transparent'\"\n title=\"Clear input\"\n [class.fd-shellbar__button]=\"inShellbar\"\n [attr.tabindex]=\"clearButtonFocusable ? 0 : -1\"\n (focus)=\"clearInputBtnFocus()\"\n (blur)=\"clearInputBtnBlur()\"\n (click)=\"_handleClearSearchTerm()\"\n >\n <fd-icon glyph=\"decline\"></fd-icon>\n </button>\n </span>\n }\n </fd-input-group>\n <div [id]=\"comboboxId + '-list-results'\" class=\"fd-combobox-count-list-results\">\n {{ displayedValues.length || 0 }} result list items\n </div>\n</ng-template>\n<ng-template #listTemplate>\n <ul\n fd-list\n class=\"fd-combobox-custom-list\"\n [dropdownMode]=\"true\"\n [id]=\"comboboxId + '-result'\"\n role=\"listbox\"\n [attr.aria-labelledby]=\"comboboxId + '-search'\"\n [style.maxHeight]=\"!mobile && maxHeight\"\n [hasMessage]=\"listMessages && listMessages.length > 0\"\n [byline]=\"byline\"\n (keydown.tab)=\"_close()\"\n (keydown.shift.tab)=\"_close()\"\n (focusEscapeList)=\"handleListFocusEscape($event)\"\n >\n <ng-content></ng-content>\n @if (groupFn) {\n @for (group of displayedValues | listGroupPipe: groupFn; track group.key) {\n <li role=\"group\" fd-list-group-header [tabindex]=\"0\">\n <span fd-list-title>{{ group.key }}</span>\n </li>\n @for (term of group.value; track term) {\n <li\n role=\"option\"\n fd-list-item\n [attr.aria-placeholder]=\"group.key\"\n [tabindex]=\"0\"\n class=\"fd-combobox-list-item\"\n [selected]=\"isSelected(term)\"\n [value]=\"term\"\n (keydown)=\"onItemKeyDownHandler($event, term)\"\n (click)=\"onMenuClickHandler(term)\"\n >\n <ng-template\n [ngTemplateOutlet]=\"itemSource\"\n [ngTemplateOutletContext]=\"{ term: term }\"\n ></ng-template>\n </li>\n }\n }\n } @else {\n @for (term of displayedValues; track term) {\n <li\n fd-list-item\n role=\"option\"\n [tabindex]=\"0\"\n class=\"fd-combobox-list-item\"\n [selected]=\"isSelected(term)\"\n (keydown)=\"onItemKeyDownHandler($event, term)\"\n (click)=\"onMenuClickHandler(term)\"\n [value]=\"term\"\n >\n <ng-template\n [ngTemplateOutlet]=\"itemSource\"\n [ngTemplateOutletContext]=\"{ term: term }\"\n ></ng-template>\n </li>\n }\n }\n </ul>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { ComboboxItemDirective } from './combobox-item.directive';\nimport { ComboboxComponent } from './combobox.component';\nimport { ListGroupPipe } from './list-group.pipe';\n\n/**\n * @deprecated\n * Use `ComboboxComponent` import instead.\n */\n@NgModule({\n imports: [ComboboxComponent, ComboboxItemDirective, ListGroupPipe],\n exports: [ComboboxComponent, ComboboxItemDirective, ListGroupPipe]\n})\nexport class ComboboxModule {}\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-combobox.mjs","sources":["../../../../libs/core/combobox/combobox-item.directive.ts","../../../../libs/core/combobox/combobox.interface.ts","../../../../libs/core/combobox/combobox-mobile/combobox-mobile.component.ts","../../../../libs/core/combobox/combobox-mobile/combobox-mobile.component.html","../../../../libs/core/combobox/list-group.pipe.ts","../../../../libs/core/combobox/tokens.ts","../../../../libs/core/combobox/combobox.component.ts","../../../../libs/core/combobox/combobox.component.html","../../../../libs/core/combobox/combobox.module.ts","../../../../libs/core/combobox/fundamental-ngx-core-combobox.ts"],"sourcesContent":["import { Directive, Input, TemplateRef, inject } from '@angular/core';\nimport { ComboboxItemDirectiveContext } from './combobox.interface';\n\n@Directive({\n selector: '[fdComboboxItem]',\n standalone: true\n})\nexport class ComboboxItemDirective<T = unknown> {\n /**\n * @hidden\n * Used for type support.\n */\n @Input()\n fdComboboxItemUse: T;\n\n /** Template reference. */\n templateRef = inject(TemplateRef<ComboboxItemDirectiveContext<T>>);\n\n /** @hidden */\n static ngTemplateContextGuard<T>(\n dir: ComboboxItemDirective<T>,\n ctx: ComboboxItemDirectiveContext<T>\n ): ctx is ComboboxItemDirectiveContext<T> {\n return true;\n }\n}\n","import { EventEmitter, InjectionToken } from '@angular/core';\nimport { MobileMode } from '@fundamental-ngx/core/mobile-mode';\n\nexport const COMBOBOX_COMPONENT = new InjectionToken<string[]>('ComboboxInterface');\n\n/**\n * Combobox Interface to have typing and avoid circular dependency between\n * ComboboxComponent <==> ComboboxMobileComponent\n */\nexport interface ComboboxInterface extends MobileMode {\n inputText: string;\n openChange: EventEmitter<boolean>;\n inShellbar: boolean;\n\n getValue(): any;\n dialogApprove(): void;\n dialogDismiss(backup: string): void;\n}\n\nexport interface ComboboxItemDirectiveContext<T = unknown> {\n $implicit: T;\n inputText: string;\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n Inject,\n isDevMode,\n OnInit,\n TemplateRef,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { observeOn } from 'rxjs/operators';\n\nimport { MobileModeBase, MobileModeControl } from '@fundamental-ngx/core/mobile-mode';\n\nimport { NgTemplateOutlet } from '@angular/common';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { InitialFocusDirective, TemplateDirective } from '@fundamental-ngx/cdk/utils';\nimport { BarElementDirective, BarMiddleDirective, ButtonBarComponent } from '@fundamental-ngx/core/bar';\n\nimport {\n DialogBodyComponent,\n DialogCloseButtonComponent,\n DialogComponent,\n DialogFooterComponent,\n DialogHeaderComponent\n} from '@fundamental-ngx/core/dialog';\nimport { TitleComponent } from '@fundamental-ngx/core/title';\nimport { asyncScheduler } from 'rxjs';\nimport { COMBOBOX_COMPONENT, ComboboxInterface } from '../combobox.interface';\n\n@Component({\n selector: 'fd-combobox-mobile',\n templateUrl: './combobox-mobile.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [\n TemplateDirective,\n BarMiddleDirective,\n BarElementDirective,\n ButtonBarComponent,\n DialogHeaderComponent,\n DialogCloseButtonComponent,\n DialogComponent,\n DialogBodyComponent,\n DialogFooterComponent,\n TitleComponent,\n TitleComponent,\n TemplateDirective,\n NgTemplateOutlet,\n InitialFocusDirective\n ]\n})\nexport class ComboboxMobileComponent extends MobileModeBase<ComboboxInterface> implements OnInit {\n /** @hidden */\n @ViewChild('dialogTemplate') dialogTemplate: TemplateRef<any>;\n\n /**\n * @hidden\n * For internal usage\n * Control element, which will be rendered inside dialog.\n * List element, which will be rendered inside dialog.\n */\n childContent: { listTemplate: TemplateRef<any>; controlTemplate: TemplateRef<any> } | null = null;\n\n /** @hidden */\n private _selectedBackup: string;\n\n /** @hidden */\n constructor(@Inject(COMBOBOX_COMPONENT) comboboxComponent: ComboboxInterface) {\n super(comboboxComponent, MobileModeControl.COMBOBOX);\n }\n\n /** @hidden */\n ngOnInit(): void {\n this._listenOnMultiInputOpenChange();\n }\n\n /** @hidden */\n handleDismiss(): void {\n this.dialogRef.dismiss();\n this._component.dialogDismiss(this._selectedBackup);\n }\n\n /** @hidden */\n handleApprove(): void {\n this.dialogRef.close();\n this._component.dialogApprove();\n }\n\n /** @hidden */\n private _toggleDialog(open: boolean): void {\n if (open) {\n this._selectedBackup = this._component.getValue();\n if (!this._dialogService.hasOpenDialogs()) {\n this._open();\n }\n }\n }\n\n /** @hidden */\n private _listenOnMultiInputOpenChange(): void {\n this._component.openChange\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe((isOpen) => this._toggleDialog(isOpen));\n }\n\n /** @hidden */\n private _open(): void {\n this.dialogRef = this._dialogService.open(this.dialogTemplate, {\n mobile: true,\n ...this.dialogConfig,\n backdropClickCloseable: false,\n container: this._elementRef.nativeElement,\n disablePaddings: true\n });\n\n this._focusInputElementOnceOpened();\n\n const refSub = this.dialogRef.afterClosed.subscribe({\n error: (type) => {\n if (type === 'escape') {\n this._component.dialogDismiss(this._selectedBackup);\n refSub.unsubscribe();\n }\n }\n });\n }\n\n /** @hidden */\n private _focusInputElementOnceOpened(): void {\n this.dialogRef.afterLoaded\n .pipe(\n observeOn(asyncScheduler), // making the listener async\n takeUntilDestroyed(this._destroyRef)\n )\n .subscribe(() => {\n try {\n const input = this._elementRef.nativeElement.querySelector('fd-input-group input[role=\"combobox\"]');\n input.focus();\n } catch (error) {\n if (isDevMode()) {\n console.error('Failed to focus combobox search input', error);\n }\n }\n });\n }\n}\n","<ng-template [fdDialogTemplate] let-dialog let-dialogConfig=\"dialogConfig\" #dialogTemplate>\n <fd-dialog [dialogConfig]=\"dialogConfig\" [dialogRef]=\"dialog\">\n <fd-dialog-header>\n @if (mobileConfig.title) {\n <h1 fd-title>{{ mobileConfig.title }}</h1>\n }\n @if (mobileConfig.hasCloseButton) {\n <button title=\"Close\" fd-dialog-close-button [mobile]=\"true\" (click)=\"handleDismiss()\"></button>\n }\n <ng-template fdkTemplate=\"subheader\">\n <div fd-bar-middle>\n <fd-bar-element [fullWidth]=\"true\">\n <ng-template [ngTemplateOutlet]=\"childContent?.controlTemplate || null\"></ng-template>\n </fd-bar-element>\n </div>\n </ng-template>\n </fd-dialog-header>\n <fd-dialog-body>\n <ng-template [ngTemplateOutlet]=\"childContent?.listTemplate || null\"></ng-template>\n </fd-dialog-body>\n <fd-dialog-footer>\n @if (mobileConfig.approveButtonText) {\n <fd-button-bar fdType=\"emphasized\" [label]=\"mobileConfig.approveButtonText!\" (click)=\"handleApprove()\">\n </fd-button-bar>\n }\n @if (mobileConfig.cancelButtonText) {\n <fd-button-bar fdkInitialFocus [label]=\"mobileConfig.cancelButtonText!\" (click)=\"handleDismiss()\">\n </fd-button-bar>\n }\n </fd-dialog-footer>\n </fd-dialog>\n</ng-template>\n","import { KeyValue } from '@angular/common';\nimport { Pipe, PipeTransform } from '@angular/core';\n\nexport type GroupFunction<T = any> = (items: T[]) => { [key: string]: T[] };\n\n@Pipe({\n name: 'listGroupPipe',\n standalone: true\n})\nexport class ListGroupPipe<T = any> implements PipeTransform {\n /** Group items */\n transform(items: any[], group: GroupFunction<T>): KeyValue<string, T[]>[] {\n return Object.entries(group(items)).map(([key, value]) => ({ key, value }));\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { ComboboxInterface } from './combobox.interface';\n\nexport const FD_COMBOBOX_COMPONENT = new InjectionToken<ComboboxInterface>('FdComboboxComponent');\n","import {\n BACKSPACE,\n CONTROL,\n DOWN_ARROW,\n ENTER,\n ESCAPE,\n LEFT_ARROW,\n RIGHT_ARROW,\n SHIFT,\n SPACE,\n TAB,\n UP_ARROW\n} from '@angular/cdk/keycodes';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n ElementRef,\n EventEmitter,\n Injector,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n QueryList,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewContainerRef,\n ViewEncapsulation,\n forwardRef\n} from '@angular/core';\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Subscription } from 'rxjs';\n\nimport {\n AutoCompleteEvent,\n DynamicComponentService,\n FocusEscapeDirection,\n KeyUtil,\n Nullable,\n TruncatedTitleDirective\n} from '@fundamental-ngx/cdk/utils';\nimport { FormItemControl, registerFormItemControl } from '@fundamental-ngx/core/form';\nimport { MenuKeyboardService } from '@fundamental-ngx/core/menu';\nimport { MobileModeConfig } from '@fundamental-ngx/core/mobile-mode';\nimport { PopoverComponent } from '@fundamental-ngx/core/popover';\nimport { PopoverFillMode } from '@fundamental-ngx/core/shared';\n\nimport { Overlay, RepositionScrollStrategy } from '@angular/cdk/overlay';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { FormStates, SingleDropdownValueControl } from '@fundamental-ngx/cdk/forms';\nimport { AutoCompleteDirective, DisplayFnPipe, SearchHighlightPipe } from '@fundamental-ngx/cdk/utils';\nimport { ButtonComponent } from '@fundamental-ngx/core/button';\nimport {\n ContentDensityModule,\n ContentDensityObserver,\n contentDensityObserverProviders\n} from '@fundamental-ngx/core/content-density';\nimport { FD_DEFAULT_ICON_FONT_FAMILY, IconComponent, IconFont } from '@fundamental-ngx/core/icon';\nimport { InputGroupComponent, InputGroupInputDirective } from '@fundamental-ngx/core/input-group';\nimport {\n FD_LIST_MESSAGE_DIRECTIVE,\n ListComponent,\n ListGroupHeaderDirective,\n ListItemComponent,\n ListMessageDirective,\n ListTitleDirective\n} from '@fundamental-ngx/core/list';\nimport { PopoverBodyComponent, PopoverControlComponent } from '@fundamental-ngx/core/popover';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\nimport { ComboboxItem } from './combobox-item';\nimport { ComboboxItemDirective } from './combobox-item.directive';\nimport { ComboboxMobileComponent } from './combobox-mobile/combobox-mobile.component';\nimport { COMBOBOX_COMPONENT, ComboboxInterface, ComboboxItemDirectiveContext } from './combobox.interface';\nimport { GroupFunction, ListGroupPipe } from './list-group.pipe';\nimport { FD_COMBOBOX_COMPONENT } from './tokens';\n\nlet comboboxUniqueId = 0;\n\n/**\n * Allows users to filter through results and select a value.\n *\n * Supports Angular Forms.\n * ```html\n * <fd-combobox\n * [(ngModel)]=\"searchTerm\"\n * [dropdownValues]=\"dropdownValues\"\n * placeholder=\"Type some text...\">\n * </fd-combobox>\n * ```\n */\n@Component({\n selector: 'fd-combobox',\n templateUrl: './combobox.component.html',\n styleUrl: './combobox.component.scss',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ComboboxComponent),\n multi: true\n },\n registerFormItemControl(ComboboxComponent),\n MenuKeyboardService,\n DynamicComponentService,\n contentDensityObserverProviders(),\n {\n provide: FD_COMBOBOX_COMPONENT,\n useExisting: ComboboxComponent\n }\n ],\n host: {\n '[class.fd-combobox-custom-class]': 'true',\n '[class.fd-combobox-input]': 'true',\n '[class.fd-combobox-custom-class--mobile]': 'mobile',\n '[style.width]': 'width'\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n NgTemplateOutlet,\n PopoverComponent,\n PopoverControlComponent,\n PopoverBodyComponent,\n ListComponent,\n ListItemComponent,\n ListTitleDirective,\n ListGroupHeaderDirective,\n InputGroupComponent,\n InputGroupInputDirective,\n FormsModule,\n AutoCompleteDirective,\n ButtonComponent,\n IconComponent,\n ContentDensityModule,\n DisplayFnPipe,\n SearchHighlightPipe,\n FdTranslatePipe,\n ListGroupPipe,\n TruncatedTitleDirective\n ]\n})\nexport class ComboboxComponent<T = any>\n implements\n ComboboxInterface,\n SingleDropdownValueControl,\n ControlValueAccessor,\n OnInit,\n OnChanges,\n AfterViewInit,\n OnDestroy,\n FormItemControl\n{\n /** Id for the Combobox. */\n @Input()\n comboboxId = `fd-combobox-${comboboxUniqueId++}`;\n\n /** Id attribute for input element inside Combobox component */\n @Input()\n inputId = '';\n\n /** Aria-label for Combobox. */\n @Input()\n ariaLabel: Nullable<string>;\n\n /** Aria-Labelledby for element describing Combobox. */\n @Input()\n ariaLabelledBy: Nullable<string>;\n\n /** If it is mandatory field */\n @Input()\n required = false;\n\n /** Values to be filtered in the search input. */\n @Input()\n dropdownValues: T[] = [];\n\n /** Filter function. Accepts an array of objects and a search term as arguments\n * and returns a string. See search input examples for details. */\n @Input()\n filterFn = this._defaultFilter;\n\n /** Whether the search input is disabled. **/\n @Input()\n disabled: boolean;\n\n /** Placeholder of the search input. **/\n @Input()\n placeholder: string;\n\n /**\n * Whether the Combobox is a Search Field\n */\n @Input()\n isSearch = false;\n\n /** Icon to display in the right-side button. */\n @Input()\n glyph = 'navigation-down-arrow';\n\n /** Glyph font family */\n @Input()\n glyphFont: IconFont = FD_DEFAULT_ICON_FONT_FAMILY;\n\n /**\n * Whether to show the clear search term button\n */\n @Input()\n showClearButton = false;\n\n /**\n * The trigger events that will open/close the options popover.\n * Accepts any [HTML DOM Events](https://www.w3schools.com/jsref/dom_obj_event.asp).\n */\n @Input()\n triggers: string[] = [];\n\n /** Whether the combobox should close, when a click is performed outside its boundaries. True by default */\n @Input()\n closeOnOutsideClick = true;\n\n /**\n * Whether the combobox should open, when any key is pressed in input (except Escape, Space, Enter). True by default\n */\n @Input()\n openOnKeyboardEvent = true;\n\n /**\n * The state of the form control - applies css classes.\n * Can be `success`, `error`, `warning`, `information` or blank for default.\n */\n @Input()\n state?: FormStates;\n\n /**\n * The template with which to display the individual listed items.\n * Use it by passing an ng-template with implicit content. See examples for more info.\n */\n @Input()\n itemTemplate: TemplateRef<ComboboxItemDirectiveContext<T>>;\n\n /**\n * Function used to handle grouping of items.\n */\n @Input()\n groupFn: Nullable<GroupFunction>;\n\n /** Max height of the popover. Any overflowing elements will be accessible through scrolling. */\n @Input()\n maxHeight = '50vh';\n\n /** Custom width of the control. */\n @Input()\n width: Nullable<string>;\n\n /** Search function to execute when the Enter key is pressed on the main input. */\n @Input()\n searchFn: () => void;\n\n /** Whether the matching string should be highlighted during filtration. */\n @Input()\n highlighting = true;\n\n /** Whether the popover should close when a user selects a result. */\n @Input()\n closeOnSelect = true;\n\n /** Whether the input field should be populated with the result picked by the user. */\n @Input()\n fillOnSelect = true;\n\n /** Whether the autocomplete should be enabled; Enabled by default */\n @Input()\n autoComplete = true;\n\n /**\n * Preset options for the Select body width, whatever is chosen, the body has a 600px limit.\n * * `at-least` will apply a minimum width to the body equivalent to the width of the control. - Default\n * * `equal` will apply a width to the body equivalent to the width of the control.\n * * 'fit-content' will apply width needed to properly display items inside, independent of control.\n */\n @Input()\n fillControlMode: PopoverFillMode = 'at-least';\n\n /** Defines if combobox should behave same as dropdown. When it's enabled writing inside text input won't\n * trigger onChange function, until it matches one of displayed dropdown values. Also communicating with combobox\n * can be achieved only by objects with same type as dropdownValue */\n @Input()\n communicateByObject = false;\n\n /** Display function. Accepts an object of the same type as the\n * items passed to dropdownValues as argument, and outputs a string.\n * An arrow function can be used to access the *this* keyword in the calling component.\n * See search input examples for details. */\n @Input()\n displayFn = this._defaultDisplay;\n\n /**\n * Whether AddOn Button should be focusable\n * @default false\n */\n @Input()\n buttonFocusable = false;\n\n /**\n * Whether clear button should be focusable.\n * @default true\n */\n @Input()\n clearButtonFocusable = true;\n\n /** Whether the combobox is readonly. */\n @Input()\n readOnly = false;\n\n /** Whether the combobox should be built on mobile mode */\n @Input()\n mobile = false;\n\n /** Multi Input Mobile Configuration, it's applied only, when mobile is enabled */\n @Input()\n mobileConfig: MobileModeConfig;\n\n /** Whether to display the addon button. */\n @Input()\n showDropdownButton = true;\n\n /**\n * Whether to return results where the input matches the entire string. By default, only results that start\n * with the input search term will be returned.\n */\n @Input()\n includes = false;\n\n /**\n * The tooltip for the multi-input icon.\n */\n @Input()\n title: string;\n\n /** Whether list item options should be rendered as byline. */\n @Input()\n byline = false;\n\n /**\n * Action to perform when user shifts focus from the dropdown.\n * - `close` will close the dropdown preserving previously selected value.\n * - `closeAndSelect` will close the dropdown and select last focused dropdown item.\n */\n @Input()\n tabOutStrategy: 'close' | 'closeAndSelect' = 'closeAndSelect';\n\n /** Event emitted when an item is clicked. Use *$event* to retrieve it. */\n @Output()\n readonly itemClicked: EventEmitter<ComboboxItem> = new EventEmitter<ComboboxItem>();\n\n /** Event emitted, when the combobox's popover body is opened or closed */\n @Output()\n readonly openChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n /** Event emitted when the input text changes. */\n @Output()\n inputTextChange: EventEmitter<string> = new EventEmitter<string>();\n\n /** @hidden */\n @ViewChild(ListComponent)\n listComponent: ListComponent;\n\n /** @hidden */\n @ViewChild('searchInputElement')\n searchInputElement: ElementRef<HTMLInputElement>;\n\n /** @hidden */\n @ViewChild(PopoverComponent)\n popoverComponent: PopoverComponent;\n\n /** @hidden */\n @ViewChild(InputGroupComponent)\n inputGroup: InputGroupComponent;\n\n /** @hidden */\n @ContentChildren(FD_LIST_MESSAGE_DIRECTIVE)\n listMessages: QueryList<ListMessageDirective>;\n\n /** @hidden */\n @ViewChild('controlTemplate')\n controlTemplate: TemplateRef<HTMLElement>;\n\n /** @hidden */\n @ViewChild('listTemplate')\n listTemplate: TemplateRef<HTMLElement>;\n\n /** @hidden */\n @ContentChild(ComboboxItemDirective)\n private readonly _comboboxItemRenderer: ComboboxItemDirective;\n\n /** Whether the matching string should be highlighted after combobox value is selected. */\n filterHighlight = true;\n\n /** Keys, that won't trigger the popover's open state, when dispatched on search input */\n readonly nonOpeningKeys: number[] = [\n ESCAPE,\n ENTER,\n LEFT_ARROW,\n RIGHT_ARROW,\n DOWN_ARROW,\n UP_ARROW,\n CONTROL,\n TAB,\n SHIFT\n ];\n\n /** @hidden */\n readonly _repositionScrollStrategy: RepositionScrollStrategy;\n\n /** @hidden */\n readonly _defaultFontFamily = FD_DEFAULT_ICON_FONT_FAMILY;\n\n /** Whether the combobox is opened. */\n open = false;\n\n /**\n * Whether or not the input coup is in the shellbar. Only for internal use by combobox component\n * @hidden\n */\n inShellbar = false;\n\n /** @hidden */\n displayedValues: any[] = [];\n\n /** @hidden */\n inputTextValue = '';\n\n /** @hidden */\n clearInputBtnFocused = false;\n\n /** @hidden */\n get _customRenderer(): Nullable<TemplateRef<ComboboxItemDirectiveContext<T>>> {\n return this._comboboxItemRenderer?.templateRef || this.itemTemplate;\n }\n\n /** @hidden */\n private _subscriptions = new Subscription();\n\n /** @hidden */\n private _value: any;\n\n /** @hidden */\n constructor(\n private readonly _overlay: Overlay,\n private readonly _cdRef: ChangeDetectorRef,\n private readonly _injector: Injector,\n private readonly _viewContainerRef: ViewContainerRef,\n private readonly _dynamicComponentService: DynamicComponentService,\n readonly _contentDensityObserver: ContentDensityObserver\n ) {\n this._repositionScrollStrategy = this._overlay.scrollStrategies.reposition({ autoClose: true });\n }\n\n /** @hidden */\n onChange: (value: any) => void = () => {};\n\n /** @hidden */\n onTouched = (): void => {};\n\n /** @hidden */\n ngOnInit(): void {\n if (this.readOnly) {\n this.showDropdownButton = false;\n }\n this._refreshDisplayedValues();\n }\n\n /** @hidden */\n ngOnChanges(changes: SimpleChanges): void {\n if (this.dropdownValues && (changes.dropdownValues || changes.searchTerm)) {\n this._refreshDisplayedValues();\n }\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._addShellbarClass();\n\n if (this.mobile) {\n this._setUpMobileMode();\n }\n }\n\n /** @hidden */\n onInputKeydownHandler(event: KeyboardEvent | string): void {\n if (this.readOnly) {\n return;\n }\n\n if (typeof event === 'string') {\n if (event === 'fromPaste') {\n this.isOpenChangeHandle(true);\n }\n } else {\n if (KeyUtil.isKeyCode(event, TAB) && this.open) {\n this._close();\n return;\n }\n\n if (KeyUtil.isKeyCode(event, ENTER)) {\n if (this.searchFn) {\n this.searchFn();\n }\n } else if (KeyUtil.isKeyCode(event, DOWN_ARROW)) {\n if (event.altKey) {\n this._resetDisplayedValues();\n this.isOpenChangeHandle(true);\n }\n if (this.open && this.listComponent) {\n this.listComponent.setItemActive(0);\n } else if (!this.open) {\n this._chooseOtherItem(1);\n }\n event.preventDefault();\n } else if (KeyUtil.isKeyCode(event, UP_ARROW)) {\n this._chooseOtherItem(-1);\n event.preventDefault();\n } else if (\n this.openOnKeyboardEvent &&\n !event.ctrlKey &&\n !event.altKey &&\n !KeyUtil.isKeyCode(event, this.nonOpeningKeys)\n ) {\n this.isOpenChangeHandle(true);\n if (this.isEmptyValue && KeyUtil.isKeyType(event, 'control') && !KeyUtil.isKeyCode(event, BACKSPACE)) {\n this.listComponent.setItemActive(0);\n }\n }\n }\n }\n\n /** @hidden */\n onItemKeyDownHandler(event: KeyboardEvent, value: any): void {\n if (KeyUtil.isKeyCode(event, ENTER) || KeyUtil.isKeyCode(event, SPACE)) {\n event.preventDefault();\n this.onMenuClickHandler(value);\n }\n }\n\n /** @hidden */\n onMenuClickHandler(value: any): void {\n if (value || value === 0) {\n const index: number = this.dropdownValues.findIndex((_value) => _value === value);\n this._handleClickActions(value);\n this.filterHighlight = false;\n this.itemClicked.emit({ item: value, index });\n }\n }\n\n /** Handle dialog dismissing, closes popover and sets backup data. */\n dialogDismiss(term: any): void {\n this.inputText = this.displayFn(term);\n this.setValue(term);\n this.isOpenChangeHandle(false);\n }\n\n /** Handle dialog approval, closes popover and propagates data changes. */\n dialogApprove(): void {\n this._propagateChange();\n this.isOpenChangeHandle(false);\n }\n\n /** If true value empty */\n get isEmptyValue(): boolean {\n return !this.inputText || this.inputText?.trim().length === 0;\n }\n\n /** Input text of the input. */\n set inputText(value: string) {\n this.inputTextValue = value;\n if (!this.communicateByObject) {\n this._value = value;\n }\n this.inputTextChange.emit(value);\n if (!this.mobile) {\n this._propagateChange();\n }\n }\n get inputText(): string {\n return this.inputTextValue;\n }\n\n /** Get the glyph value based on whether the combobox is used as a search field or not. */\n get glyphValue(): string {\n return this.isSearch ? 'search' : this.glyph;\n }\n\n /** @hidden */\n _handleClearSearchTerm(): void {\n this.inputTextValue = '';\n this.inputTextChange.emit('');\n this.displayedValues = this.dropdownValues || [];\n this.searchInputElement.nativeElement.focus();\n if (!this.mobile) {\n this._propagateChange();\n }\n this._cdRef.detectChanges();\n }\n\n /** @hidden */\n writeValue(value: any): void {\n this.inputTextValue = this.displayFn(value);\n this.setValue(value);\n this._cdRef.markForCheck();\n }\n\n /** @hidden */\n registerOnChange(fn: (value: any) => void): void {\n this.onChange = fn;\n }\n\n /** @hidden */\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n /** Method passed to list component */\n handleListFocusEscape(direction: FocusEscapeDirection): void {\n if (direction === 'up') {\n this.searchInputElement.nativeElement.focus();\n }\n }\n\n /** @hidden */\n handleSearchTermChange(): void {\n this.displayedValues = this.filterFn(this.dropdownValues, this.inputText);\n this.popoverComponent?.refreshPosition();\n }\n\n /** @hidden */\n onPrimaryButtonClick(): void {\n // Prevent primary button click behaviour on mobiles\n if (this.mobile) {\n return;\n }\n\n if (this.searchFn) {\n this.searchFn();\n }\n this._resetDisplayedValues();\n this.isOpenChangeHandle(!this.open);\n this.searchInputElement.nativeElement.focus();\n this.filterHighlight = false;\n if (this.open) {\n this.searchInputElement?.nativeElement.focus();\n }\n }\n\n /** @hidden */\n isOpenChangeHandle(isOpen: boolean): void {\n /** Reset displayed values on every mobile open */\n if (this.mobile && !this.open) {\n this._resetDisplayedValues();\n }\n if (this.open !== isOpen) {\n this.open = isOpen;\n this.openChange.emit(isOpen);\n }\n\n if (!this.open && !this.mobile) {\n this.handleBlur();\n this.searchInputElement.nativeElement.focus({ preventScroll: true });\n }\n\n this._cdRef.detectChanges();\n }\n\n /** @hidden */\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n this._cdRef.detectChanges();\n }\n\n /** Method that handles complete event from auto complete directive, setting the new value, and closing popover */\n handleAutoComplete(event: AutoCompleteEvent): void {\n if (this.inputText !== event.term) {\n this.inputText = event.term;\n this.handleSearchTermChange();\n }\n if (event.forceClose && this.inputText) {\n this.isOpenChangeHandle(false);\n }\n }\n\n /** @hidden */\n handleBlur(): void {\n if (!this.open) {\n this.onTouched();\n this.handleAutoComplete({\n term: this.searchInputElement.nativeElement.value,\n forceClose: false\n });\n }\n }\n\n /** @hidden */\n clearInputBtnFocus(): void {\n this.clearInputBtnFocused = true;\n }\n\n /** @hidden */\n clearInputBtnBlur(): void {\n this.clearInputBtnFocused = false;\n }\n\n /** Current select value */\n getValue(): any {\n return this._value;\n }\n\n /** @hidden */\n _close(): void {\n this.inputText = this._value ? this.inputText : '';\n if (this.tabOutStrategy === 'closeAndSelect') {\n const focusedItem = this.listComponent.getActiveItem();\n if (focusedItem && !this.inputText) {\n this._handleClickActions(focusedItem.value);\n return;\n }\n }\n this.isOpenChangeHandle(false);\n this.searchInputElement.nativeElement.focus();\n }\n\n /** @hidden */\n isSelected(term: any): boolean {\n const termValue = this.communicateByObject ? term : this.displayFn(term);\n return this.getValue() === termValue;\n }\n\n /** Method that picks other value moved from current one by offset, called only when combobox is closed */\n private _chooseOtherItem(offset: number): void {\n const activeValue: any = this._getOptionObjectByDisplayedValue(this.inputTextValue)[0];\n const index: number = this.dropdownValues.findIndex((value) => value === activeValue);\n if (this.dropdownValues[index + offset]) {\n this.onMenuClickHandler(this.dropdownValues[index + offset]);\n }\n }\n\n /** Method that reset filtering for displayed values. It overrides displayed values by all possible dropdown values */\n private _resetDisplayedValues(): void {\n this.displayedValues = this.dropdownValues || [];\n }\n\n /** @hidden */\n private _addShellbarClass(): void {\n if (this.inShellbar) {\n this.searchInputElement.nativeElement.classList.add('fd-shellbar__input-group-input');\n if (this.inputGroup) {\n this.inputGroup.setInShellbar(true);\n }\n }\n }\n\n /** @hidden */\n private _defaultDisplay(str: any): string {\n return `${str}`;\n }\n\n /** @hidden */\n private _defaultFilter(contentArray: any[], searchTerm: any): any[] {\n this.filterHighlight = true;\n if (typeof searchTerm === 'string') {\n const searchLower = searchTerm.toLocaleLowerCase();\n return contentArray.filter((item) => {\n if (item) {\n const term = this.displayFn(item).toLocaleLowerCase();\n return this.includes ? term.includes(searchLower) : term.startsWith(searchLower);\n }\n });\n } else if (typeof searchTerm === 'object') {\n return contentArray.filter((item) => item === searchTerm);\n }\n return contentArray || [];\n }\n\n /** @hidden */\n private _handleClickActions(term: any): void {\n if (this.closeOnSelect) {\n this.isOpenChangeHandle(false);\n }\n if (this.fillOnSelect) {\n this.inputText = this.displayFn(term);\n this.setValue(term);\n this.searchInputElement.nativeElement.value = this.inputText;\n this._cdRef.detectChanges();\n\n if (this.mobile) {\n this._propagateChange();\n }\n }\n this.handleSearchTermChange();\n }\n\n /** @hidden */\n private _getOptionObjectByDisplayedValue(displayValue: string): any {\n return this.dropdownValues.filter((value) => this.displayFn(value) === displayValue);\n }\n\n /** @hidden */\n private _refreshDisplayedValues(): void {\n if (this.inputText) {\n this.displayedValues = this.filterFn(this.dropdownValues, this.inputText);\n } else {\n this.displayedValues = this.dropdownValues || [];\n }\n }\n\n /** @hidden */\n private _propagateChange(): void {\n if (this.communicateByObject) {\n const values = this._getOptionObjectByDisplayedValue(this.inputText);\n // Do not set new value if theres multiple items that have same label.\n if (values.length === 1 && this.displayFn(values[0]) !== this.displayFn(this.getValue())) {\n this.setValue(values[0]);\n } else if (values.length === 0) {\n this.setValue(this.inputText);\n }\n const thisValue = this.getValue();\n if (typeof thisValue === 'object') {\n this.onChange(thisValue);\n }\n } else {\n this.onChange(this.inputText);\n }\n }\n\n /** @hidden */\n private setValue(value: any): void {\n if (this.communicateByObject) {\n this._value = value;\n } else {\n this._value = this.displayFn(value);\n }\n }\n\n /** @hidden */\n private _setUpMobileMode(): void {\n const injector = Injector.create({\n providers: [{ provide: COMBOBOX_COMPONENT, useValue: this }],\n parent: this._injector\n });\n\n this._dynamicComponentService.createDynamicComponent(\n { listTemplate: this.listTemplate, controlTemplate: this.controlTemplate },\n ComboboxMobileComponent,\n {\n containerRef: this._viewContainerRef\n },\n {\n injector\n }\n );\n }\n}\n","<ng-template [ngTemplateOutlet]=\"mobile ? mobileTemplate : desktopTemplate\"></ng-template>\n<ng-template #desktopTemplate>\n <fd-popover\n additionalBodyClass=\"fd-popover-custom-list\"\n [class.fd-combobox-full-width]=\"isSearch || showClearButton\"\n [isOpen]=\"open && displayedValues && displayedValues.length > 0\"\n (isOpenChange)=\"isOpenChangeHandle($event)\"\n [fillControlMode]=\"fillControlMode\"\n [scrollStrategy]=\"_repositionScrollStrategy\"\n [focusTrapped]=\"true\"\n [triggers]=\"triggers\"\n [disabled]=\"disabled || readOnly\"\n [maxWidth]=\"640\"\n [style.width]=\"width && '100%'\"\n [closeOnOutsideClick]=\"closeOnOutsideClick\"\n >\n <fd-popover-control>\n <ng-template [ngTemplateOutlet]=\"controlTemplate\"></ng-template>\n </fd-popover-control>\n <fd-popover-body [hidden]=\"!displayedValues.length\">\n <ng-template [ngTemplateOutlet]=\"listTemplate\"></ng-template>\n <ng-content></ng-content>\n </fd-popover-body>\n </fd-popover>\n</ng-template>\n<ng-template let-term=\"term\" #itemSource>\n @if (!_customRenderer) {\n <span\n fd-list-title\n fdTruncatedTitle\n [innerHTML]=\"term | displayFnPipe: displayFn | highlight: inputText : highlighting && filterHighlight\"\n >\n </span>\n } @else {\n <ng-template\n [ngTemplateOutlet]=\"_customRenderer\"\n [ngTemplateOutletContext]=\"{ $implicit: term, inputText: inputText }\"\n ></ng-template>\n }\n</ng-template>\n<ng-template #mobileTemplate>\n <ng-template [ngTemplateOutlet]=\"controlTemplate\"></ng-template>\n</ng-template>\n<ng-template #controlTemplate>\n <fd-input-group\n [button]=\"showDropdownButton\"\n [glyph]=\"showDropdownButton ? glyphValue : null\"\n [glyphFont]=\"isSearch ? _defaultFontFamily : glyphFont\"\n [state]=\"state\"\n [buttonFocusable]=\"buttonFocusable\"\n [disabled]=\"disabled\"\n [readonly]=\"readOnly\"\n [isControl]=\"true\"\n [isExpanded]=\"!mobile && open && displayedValues.length > 0\"\n [showFocus]=\"!clearInputBtnFocused\"\n [glyphAriaLabel]=\"ariaLabel || ('platformMultiCombobox.inputGlyphAriaLabel' | fdTranslate)\"\n [iconTitle]=\"title || ('platformMultiCombobox.inputGlyphAriaLabel' | fdTranslate)\"\n (addOnButtonClicked)=\"onPrimaryButtonClick()\"\n (click)=\"mobile && isOpenChangeHandle(true)\"\n >\n <input\n #searchInputElement\n fdkAutoComplete\n fd-input-group-input\n type=\"text\"\n role=\"combobox\"\n autocomplete=\"off\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-describedby]=\"comboboxId + '-list-results'\"\n [attr.aria-autocomplete]=\"autoComplete && !mobile ? 'list' : null\"\n [attr.aria-owns]=\"autoComplete && !mobile ? comboboxId + '-result' : null\"\n [attr.aria-haspopup]=\"autoComplete && !mobile\"\n [attr.aria-expanded]=\"!mobile && open && displayedValues.length\"\n [attr.aria-required]=\"required\"\n [attr.tabindex]=\"readOnly || disabled ? -1 : null\"\n [enable]=\"autoComplete && !mobile\"\n [displayFn]=\"displayFn\"\n [options]=\"dropdownValues\"\n [inputText]=\"inputText\"\n [disabled]=\"disabled\"\n [readonly]=\"readOnly\"\n [attr.aria-readonly]=\"readOnly\"\n [placeholder]=\"placeholder\"\n [id]=\"inputId\"\n [(ngModel)]=\"inputText\"\n (onComplete)=\"handleAutoComplete($event)\"\n (keydown)=\"onInputKeydownHandler($event)\"\n (paste)=\"onInputKeydownHandler('fromPaste')\"\n (ngModelChange)=\"handleSearchTermChange()\"\n (blur)=\"handleBlur()\"\n />\n @if ((isSearch || showClearButton) && inputText && inputText.length > 0) {\n <span\n class=\"fd-input-group__addon fd-input-group__addon--button\"\n [class.fd-shellbar__input-group-addon]=\"inShellbar\"\n >\n <button\n fd-button\n class=\"fd-input-group__button\"\n type=\"button\"\n [fdType]=\"inShellbar ? 'standard' : 'transparent'\"\n title=\"Clear input\"\n [class.fd-shellbar__button]=\"inShellbar\"\n [attr.tabindex]=\"clearButtonFocusable ? 0 : -1\"\n (focus)=\"clearInputBtnFocus()\"\n (blur)=\"clearInputBtnBlur()\"\n (click)=\"_handleClearSearchTerm()\"\n >\n <fd-icon glyph=\"decline\"></fd-icon>\n </button>\n </span>\n }\n </fd-input-group>\n <div [id]=\"comboboxId + '-list-results'\" class=\"fd-combobox-count-list-results\">\n {{ displayedValues.length || 0 }} result list items\n </div>\n</ng-template>\n<ng-template #listTemplate>\n <ul\n fd-list\n class=\"fd-combobox-custom-list\"\n [dropdownMode]=\"true\"\n [id]=\"comboboxId + '-result'\"\n role=\"listbox\"\n [attr.aria-labelledby]=\"comboboxId + '-search'\"\n [style.maxHeight]=\"!mobile && maxHeight\"\n [hasMessage]=\"listMessages && listMessages.length > 0\"\n [byline]=\"byline\"\n (keydown.tab)=\"_close()\"\n (keydown.shift.tab)=\"_close()\"\n (focusEscapeList)=\"handleListFocusEscape($event)\"\n >\n <ng-content></ng-content>\n @if (groupFn) {\n @for (group of displayedValues | listGroupPipe: groupFn; track group.key) {\n <li role=\"group\" fd-list-group-header [tabindex]=\"0\">\n <span fd-list-title>{{ group.key }}</span>\n </li>\n @for (term of group.value; track term) {\n <li\n role=\"option\"\n fd-list-item\n [attr.aria-placeholder]=\"group.key\"\n [tabindex]=\"0\"\n class=\"fd-combobox-list-item\"\n [selected]=\"isSelected(term)\"\n [value]=\"term\"\n (keydown)=\"onItemKeyDownHandler($event, term)\"\n (click)=\"onMenuClickHandler(term)\"\n >\n <ng-template\n [ngTemplateOutlet]=\"itemSource\"\n [ngTemplateOutletContext]=\"{ term: term }\"\n ></ng-template>\n </li>\n }\n }\n } @else {\n @for (term of displayedValues; track term) {\n <li\n fd-list-item\n role=\"option\"\n [tabindex]=\"0\"\n class=\"fd-combobox-list-item\"\n [selected]=\"isSelected(term)\"\n (keydown)=\"onItemKeyDownHandler($event, term)\"\n (click)=\"onMenuClickHandler(term)\"\n [value]=\"term\"\n >\n <ng-template\n [ngTemplateOutlet]=\"itemSource\"\n [ngTemplateOutletContext]=\"{ term: term }\"\n ></ng-template>\n </li>\n }\n }\n </ul>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { ComboboxItemDirective } from './combobox-item.directive';\nimport { ComboboxComponent } from './combobox.component';\nimport { ListGroupPipe } from './list-group.pipe';\n\n/**\n * @deprecated\n * Use `ComboboxComponent` import instead.\n */\n@NgModule({\n imports: [ComboboxComponent, ComboboxItemDirective, ListGroupPipe],\n exports: [ComboboxComponent, ComboboxItemDirective, ListGroupPipe]\n})\nexport class ComboboxModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -380,7 +380,7 @@ class PopoverBodyComponent {
|
|
|
380
380
|
}
|
|
381
381
|
}
|
|
382
382
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: PopoverBodyComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }, { token: i1.ContentDensityObserver }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
383
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.3", type: PopoverBodyComponent, isStandalone: true, selector: "fd-popover-body", inputs: { minWidth: "minWidth", maxWidth: "maxWidth", minHeight: "minHeight", maxHeight: "maxHeight" }, host: { listeners: { "keyup": "bodyKeyupHandler($event)" } }, providers: [contentDensityObserverProviders({ alwaysAddModifiers: true })], viewQueries: [{ propertyName: "_cdkTrapFocus", first: true, predicate: CdkTrapFocus, descendants: true }, { propertyName: "_scrollbar", first: true, predicate: ScrollbarDirective, descendants: true }], ngImport: i0, template: "<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\"></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 <ng-template [ngTemplateOutlet]=\"_templateToDisplay\"></ng-template>\n <ng-content select=\"[fd-popover-body-footer]\"></ng-content>\n</ng-template>\n", styles: ["body.fd-overlay-active:before{background:var(--fdModal_BackgroundColor);content:\"\";height:100vh;left:0;pointer-events:all;position:fixed;top:0;width:100vw;z-index:999}.fd-popover{--fdPopover_Display:inline-block;border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:var(--fdPopover_Display);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;max-width:100%;padding-block:0;padding-inline:0;position:relative}.fd-popover:after,.fd-popover:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-popover__modal{position:relative;z-index:1000}.fd-popover__control{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);cursor:pointer;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;position:relative}.fd-popover__control:after,.fd-popover__control:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-popover__control:focus-visible{outline:var(--sapContent_FocusWidth) var(--sapContent_FocusStyle) var(--sapContent_FocusColor)}.fd-popover__control.is-expanded>*,.fd-popover__control[aria-expanded=true]>*{-webkit-margin-after:0;margin-block-end:0}.fd-popover__control.is-expanded+.fd-popover__body--input-message-group,.fd-popover__control[aria-expanded=true]+.fd-popover__body--input-message-group{margin-top:0}.fd-popover__control.is-disabled,.fd-popover__control:disabled,.fd-popover__control[aria-disabled=true]{pointer-events:none}.fd-popover__wrapper{border-radius:var(--fdPopover_Body_Border_Radius);overflow:auto;position:relative;scrollbar-color:var(--fdScrollbar_Thumb_Color) var(--fdScrollbar_Track_Color)}.fd-popover__wrapper.is-focus,.fd-popover__wrapper:focus{outline:none;z-index:5}.fd-popover__wrapper::-webkit-scrollbar{height:var(--fdScrollbar_Dimension);width:var(--fdScrollbar_Dimension)}.fd-popover__wrapper::-webkit-scrollbar-corner,.fd-popover__wrapper::-webkit-scrollbar-track{background-color:var(--fdScrollbar_Track_Color)}.fd-popover__wrapper::-webkit-scrollbar-thumb{background-color:transparent;border:var(--fdScrollbar_Thumb_Offset) solid transparent;border-radius:calc(var(--fdScrollbar_Thumb_Border_Radius) - var(--fdScrollbar_Thumb_Offset));-webkit-box-shadow:inset 0 0 0 var(--fdScrollbar_Dimension) var(--fdScrollbar_Thumb_Color);box-shadow:inset 0 0 0 var(--fdScrollbar_Dimension) var(--fdScrollbar_Thumb_Color)}.fd-popover__wrapper::-webkit-scrollbar-thumb:active,.fd-popover__wrapper::-webkit-scrollbar-thumb:hover{-webkit-box-shadow:inset 0 0 0 var(--fdScrollbar_Dimension) var(--fdScrollbar_Thumb_Hover_Color);box-shadow:inset 0 0 0 var(--fdScrollbar_Dimension) var(--fdScrollbar_Thumb_Hover_Color)}.fd-popover__wrapper::-webkit-scrollbar-corner,.fd-popover__wrapper::-webkit-scrollbar-track{border-radius:0 var(--fdScrollbar_Border_Radius) var(--fdScrollbar_Border_Radius) 0}.fd-popover__wrapper[dir=rtl]::-webkit-scrollbar-corner,.fd-popover__wrapper[dir=rtl]::-webkit-scrollbar-track,[dir=rtl] .fd-popover__wrapper::-webkit-scrollbar-corner,[dir=rtl] .fd-popover__wrapper::-webkit-scrollbar-track{border-radius:var(--fdScrollbar_Border_Radius) 0 0 var(--fdScrollbar_Border_Radius)}.fd-popover__wrapper--visible{overflow:visible!important}.fd-popover__body{--fdPopover_Offset:100%;--fdPopover_Center_Offset:50%;--fdPopover_Arrow_Size:.5rem;--fdPopover_Body_Border_Radius:var(--fdPopover_Border_Radius);--fdPopover_Body_Box_Shadow:var(--sapContent_Shadow2);--fdPopover_Body_Box_Shadow_No_Arrow:var(--sapContent_Shadow1);--fdIcon_Button_Height:2.25rem;--fdIcon_Button_Width:2.25rem;--fdPopover_Resize_Handle_Position_Top:auto;--fdPopover_Resize_Handle_Position_Right:0;--fdPopover_Resize_Handle_Position_Bottom:0;--fdPopover_Resize_Handle_Position_Left:auto;--fdPopover_Resize_Handle_Rotate_Angle:0;--fdPopover_Resize_Handle_Cursor:se-resize;--fdPopover_Resize_Handle_Justify:flex-end;--fdPopover_Resize_Handle_Transform_Scale:1;background:var(--sapGroup_ContentBackground);border:0;border-radius:var(--fdPopover_Body_Border_Radius);-webkit-box-shadow:var(--fdPopover_Body_Box_Shadow);box-shadow:var(--fdPopover_Body_Box_Shadow);-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;opacity:1;padding-block:0;padding-inline:0;position:absolute;top:calc(var(--fdPopover_Offset) + var(--fdPopover_Arrow_Size));-webkit-transition:all .125s;transition:all .125s;visibility:visible;white-space:nowrap;z-index:1000}.fd-popover__body:after,.fd-popover__body:before{-webkit-box-sizing:inherit;box-sizing:inherit;content:\"\";font-size:inherit;position:absolute}.fd-popover__body:before{border-bottom:calc(var(--fdPopover_Arrow_Size) - var(--fdPopover_Border_Width)) solid var(--sapGroup_ContentBackground);border-left:calc(var(--fdPopover_Arrow_Size) - var(--fdPopover_Border_Width)) solid transparent;border-right:calc(var(--fdPopover_Arrow_Size) - var(--fdPopover_Border_Width)) solid transparent;top:calc(var(--fdPopover_Arrow_Size) * -1 + var(--fdPopover_Border_Width));z-index:1002}.fd-popover__body:after,.fd-popover__body:before{border-top:none;display:inline-block;height:0;width:0}.fd-popover__body:after{border-bottom:var(--fdPopover_Arrow_Size) solid var(--fdPopover_Border_Color);border-left:var(--fdPopover_Arrow_Size) solid transparent;border-right:var(--fdPopover_Arrow_Size) solid transparent;top:calc(var(--fdPopover_Arrow_Size) * -1);z-index:1001}.fd-popover__body>:not(.fd-popover__wrapper){overflow:hidden}.fd-popover__body-header>:first-child,.fd-popover__body>:first-child{border-top-left-radius:var(--fdPopover_Border_Radius);border-top-right-radius:var(--fdPopover_Border_Radius)}.fd-popover__body-footer>:last-child,.fd-popover__body>:last-child{border-bottom-left-radius:var(--fdPopover_Border_Radius);border-bottom-right-radius:var(--fdPopover_Border_Radius)}.fd-popover__body .fd-menu{width:100%}.fd-popover__body[class*=-compact],.fd-popover__body[class*=-condensed],[class*=-compact] .fd-popover__body:not([class*=-cozy]),[class*=-condensed] .fd-popover__body:not([class*=-cozy]){--fdIcon_Button_Height:1.625rem;--fdIcon_Button_Width:2rem}.fd-popover__body--no-arrow{-webkit-box-shadow:var(--fdPopover_Body_Box_Shadow_No_Arrow);box-shadow:var(--fdPopover_Body_Box_Shadow_No_Arrow);top:var(--fdPopover_Offset)}.fd-popover__body--no-arrow:after,.fd-popover__body--no-arrow:before{display:none}.fd-popover__body,.fd-popover__body--left{left:0}.fd-popover__body--left[dir=rtl],.fd-popover__body[dir=rtl],[dir=rtl] .fd-popover__body,[dir=rtl] .fd-popover__body--left{left:auto;right:0}.fd-popover__body--left:before,.fd-popover__body:before{left:calc(var(--fdIcon_Button_Width) * .5 - var(--fdPopover_Arrow_Size) - var(--fdPopover_Border_Width) + var(--fdPopover_Border_Width))}.fd-popover__body--left:after,.fd-popover__body:after{left:calc(var(--fdIcon_Button_Width) * .5 - var(--fdPopover_Arrow_Size) - var(--fdPopover_Border_Width))}.fd-popover__body--left[dir=rtl]:before,.fd-popover__body[dir=rtl]:before,[dir=rtl] .fd-popover__body--left:before,[dir=rtl] .fd-popover__body:before{left:auto;right:calc(var(--fdIcon_Button_Width) * .5 - var(--fdPopover_Arrow_Size) - var(--fdPopover_Border_Width) + var(--fdPopover_Border_Width))}.fd-popover__body--left[dir=rtl]:after,.fd-popover__body[dir=rtl]:after,[dir=rtl] .fd-popover__body--left:after,[dir=rtl] .fd-popover__body:after{left:auto;right:calc(var(--fdIcon_Button_Width) * .5 - var(--fdPopover_Arrow_Size) - var(--fdPopover_Border_Width))}.fd-popover__body--center{left:var(--fdPopover_Center_Offset);-webkit-transform:translateX(calc(var(--fdPopover_Center_Offset) * -1));transform:translate(calc(var(--fdPopover_Center_Offset) * -1))}.fd-popover__body--center[dir=rtl],[dir=rtl] .fd-popover__body--center{left:auto;right:var(--fdPopover_Center_Offset);-webkit-transform:translateX(var(--fdPopover_Center_Offset));transform:translate(var(--fdPopover_Center_Offset))}.fd-popover__body--right{left:auto;right:0}.fd-popover__body--right[dir=rtl],[dir=rtl] .fd-popover__body--right{left:0;right:auto}.fd-popover__body--right:before{left:auto;right:calc(var(--fdIcon_Button_Width) * .5 - var(--fdPopover_Arrow_Size) - var(--fdPopover_Border_Width) + var(--fdPopover_Border_Width))}.fd-popover__body--right:after{left:auto;right:calc(var(--fdIcon_Button_Width) * .5 - var(--fdPopover_Arrow_Size) - var(--fdPopover_Border_Width))}.fd-popover__body--right[dir=rtl]:before,[dir=rtl] .fd-popover__body--right:before{left:calc(var(--fdIcon_Button_Width) * .5 - var(--fdPopover_Arrow_Size) - var(--fdPopover_Border_Width) + var(--fdPopover_Border_Width));right:auto}.fd-popover__body--right[dir=rtl]:after,[dir=rtl] .fd-popover__body--right:after{left:calc(var(--fdIcon_Button_Width) * .5 - var(--fdPopover_Arrow_Size) - var(--fdPopover_Border_Width));right:auto}.fd-popover__body--before{left:auto!important;right:var(--fdPopover_Offset)!important;top:0}.fd-popover__body--after{left:var(--fdPopover_Offset)!important;right:auto!important;top:0}.fd-popover__body--middle{top:var(--fdPopover_Center_Offset);-webkit-transform:translateY(calc(var(--fdPopover_Center_Offset) * -1));transform:translateY(calc(var(--fdPopover_Center_Offset) * -1))}.fd-popover__body--bottom{bottom:0;top:auto}.fd-popover__body--above{bottom:var(--fdPopover_Offset);top:auto}.fd-popover__body--arrow-bottom{bottom:calc(var(--fdPopover_Offset) + var(--fdPopover_Arrow_Size))!important}.fd-popover__body--arrow-bottom:before{border-bottom:none;border-left:calc(var(--fdPopover_Arrow_Size) - var(--fdPopover_Border_Width)) solid transparent;border-right:calc(var(--fdPopover_Arrow_Size) - var(--fdPopover_Border_Width)) solid transparent;border-top:calc(var(--fdPopover_Arrow_Size) - var(--fdPopover_Border_Width)) solid var(--sapGroup_ContentBackground);display:inline-block;height:0;top:100%;width:0}.fd-popover__body--arrow-bottom:after{border-bottom:none;border-left:var(--fdPopover_Arrow_Size) solid transparent;border-right:var(--fdPopover_Arrow_Size) solid transparent;border-top:var(--fdPopover_Arrow_Size) solid var(--fdPopover_Border_Color);display:inline-block;height:0;top:100%;width:0}.fd-popover__body--arrow-left{left:calc(var(--fdPopover_Offset) + var(--fdPopover_Arrow_Size))!important}.fd-popover__body--arrow-left:before{border-bottom:calc(var(--fdPopover_Arrow_Size) - var(--fdPopover_Border_Width)) solid transparent;border-right:calc(var(--fdPopover_Arrow_Size) - var(--fdPopover_Border_Width)) solid var(--sapGroup_ContentBackground);border-top:calc(var(--fdPopover_Arrow_Size) - var(--fdPopover_Border_Width)) solid transparent;top:calc(var(--fdIcon_Button_Height) * .5 - var(--fdPopover_Arrow_Size) - var(--fdPopover_Border_Width) + var(--fdPopover_Border_Width))}.fd-popover__body--arrow-left:after,.fd-popover__body--arrow-left:before{border-left:none;display:inline-block;height:0;left:auto!important;right:100%!important;width:0}.fd-popover__body--arrow-left:after{border-bottom:var(--fdPopover_Arrow_Size) solid transparent;border-right:var(--fdPopover_Arrow_Size) solid var(--fdPopover_Border_Color);border-top:var(--fdPopover_Arrow_Size) solid transparent;top:calc(var(--fdIcon_Button_Height) * .5 - var(--fdPopover_Arrow_Size) - var(--fdPopover_Border_Width))}.fd-popover__body--arrow-right{right:calc(var(--fdPopover_Offset) + var(--fdPopover_Arrow_Size))!important}.fd-popover__body--arrow-right:before{border-bottom:calc(var(--fdPopover_Arrow_Size) - var(--fdPopover_Border_Width)) solid transparent;border-left:calc(var(--fdPopover_Arrow_Size) - var(--fdPopover_Border_Width)) solid var(--sapGroup_ContentBackground);border-top:calc(var(--fdPopover_Arrow_Size) - var(--fdPopover_Border_Width)) solid transparent;top:calc(var(--fdIcon_Button_Height) * .5 - var(--fdPopover_Arrow_Size) - var(--fdPopover_Border_Width) + var(--fdPopover_Border_Width))}.fd-popover__body--arrow-right:after,.fd-popover__body--arrow-right:before{border-right:none;display:inline-block;height:0;left:100%!important;right:auto!important;width:0}.fd-popover__body--arrow-right:after{border-bottom:var(--fdPopover_Arrow_Size) solid transparent;border-left:var(--fdPopover_Arrow_Size) solid var(--fdPopover_Border_Color);border-top:var(--fdPopover_Arrow_Size) solid transparent;top:calc(var(--fdIcon_Button_Height) * .5 - var(--fdPopover_Arrow_Size) - var(--fdPopover_Border_Width))}.fd-popover__body--arrow-x-center:after,.fd-popover__body--arrow-x-center:before{left:50%;-webkit-transform:translateX(-50%);transform:translate(-50%)}.fd-popover__body--arrow-x-center[dir=rtl]:after,.fd-popover__body--arrow-x-center[dir=rtl]:before,[dir=rtl] .fd-popover__body--arrow-x-center:after,[dir=rtl] .fd-popover__body--arrow-x-center:before{left:auto;right:50%;-webkit-transform:translateX(50%);transform:translate(50%)}.fd-popover__body--arrow-x-end:before{left:auto;right:calc(var(--fdIcon_Button_Width) * .5 - var(--fdPopover_Arrow_Size) - var(--fdPopover_Border_Width) + var(--fdPopover_Border_Width))}.fd-popover__body--arrow-x-end:after{left:auto;right:calc(var(--fdIcon_Button_Width) * .5 - var(--fdPopover_Arrow_Size) - var(--fdPopover_Border_Width))}.fd-popover__body--arrow-x-end[dir=rtl]:before,[dir=rtl] .fd-popover__body--arrow-x-end:before{left:calc(var(--fdIcon_Button_Width) * .5 - var(--fdPopover_Arrow_Size) - var(--fdPopover_Border_Width) + var(--fdPopover_Border_Width));right:auto}.fd-popover__body--arrow-x-end[dir=rtl]:after,[dir=rtl] .fd-popover__body--arrow-x-end:after{left:calc(var(--fdIcon_Button_Width) * .5 - var(--fdPopover_Arrow_Size) - var(--fdPopover_Border_Width));right:auto}.fd-popover__body--arrow-y-center:after,.fd-popover__body--arrow-y-center:before{top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.fd-popover__body--arrow-y-bottom:before,.fd-popover__body--arrow-y-end:before{bottom:calc(var(--fdIcon_Button_Height) * .5 - var(--fdPopover_Arrow_Size) - var(--fdPopover_Border_Width) + var(--fdPopover_Border_Width));top:auto}.fd-popover__body--arrow-y-bottom:after,.fd-popover__body--arrow-y-end:after{bottom:calc(var(--fdIcon_Button_Height) * .5 - var(--fdPopover_Arrow_Size) - var(--fdPopover_Border_Width));top:auto}.fd-popover__body--dropdown{width:-webkit-max-content;width:-moz-max-content;width:max-content}.fd-popover__body--dropdown-fill{display:block;max-width:40rem;width:calc(100% - var(--sapGroup_BorderWidth) * 2)}.fd-popover__body--static{position:relative;--fdPopover_Offset:0%;--fdPopover_Center_Offset:0%}.fd-popover__body.is-hidden,.fd-popover__body[aria-hidden=true]{opacity:0;visibility:hidden;z-index:-1}.fd-popover__body .fd-popover__body--hidden{display:none}.fd-popover__body--input-message-group{border:none;-webkit-box-shadow:none;box-shadow:none}.fd-popover__body--inline-help{font-size:var(--sapFontSmallSize);padding-block:.75rem;padding-inline:.75rem}.fd-popover__body--inline-help-icon{--fdIcon_Button_Height:1.375rem;--fdIcon_Button_Width:1.375rem}.fd-popover__body.fd-popover__body--resizable[dir=rtl],[dir=rtl] .fd-popover__body.fd-popover__body--resizable{--fdPopover_Resize_Handle_Position_Right:auto;--fdPopover_Resize_Handle_Position_Left:0;--fdPopover_Resize_Handle_Cursor:sw-resize;--fdPopover_Resize_Handle_Transform_Scale:-1;--fdPopover_Resize_Handle_Justify:flex-start}.fd-popover__body.fd-popover__body--resizable.fd-popover__body--right{--fdPopover_Resize_Handle_Position_Left:0;--fdPopover_Resize_Handle_Position_Right:auto;--fdPopover_Resize_Handle_Cursor:sw-resize;--fdPopover_Resize_Handle_Transform_Scale:-1}.fd-popover__body.fd-popover__body--resizable.fd-popover__body--right[dir=rtl],[dir=rtl] .fd-popover__body.fd-popover__body--resizable.fd-popover__body--right{--fdPopover_Resize_Handle_Position_Right:0;--fdPopover_Resize_Handle_Position_Left:auto;--fdPopover_Resize_Handle_Cursor:se-resize;--fdPopover_Resize_Handle_Transform_Scale:1}.fd-popover__body.fd-popover__body--resizable.fd-popover__body--above{--fdPopover_Resize_Handle_Position_Top:0;--fdPopover_Resize_Handle_Position_Bottom:auto;--fdPopover_Resize_Handle_Position_Right:0;--fdPopover_Resize_Handle_Position_Left:auto;--fdPopover_Resize_Handle_Cursor:ne-resize;--fdPopover_Resize_Handle_Rotate_Angle:-90deg;--fdPopover_Resize_Handle_Transform_Scale:1}.fd-popover__body.fd-popover__body--resizable.fd-popover__body--above[dir=rtl],[dir=rtl] .fd-popover__body.fd-popover__body--resizable.fd-popover__body--above{--fdPopover_Resize_Handle_Position_Right:auto;--fdPopover_Resize_Handle_Position_Left:0;--fdPopover_Resize_Handle_Cursor:nw-resize;--fdPopover_Resize_Handle_Transform_Scale:1;--fdPopover_Resize_Handle_Rotate_Angle:180deg}.fd-popover__body.fd-popover__body--resizable.fd-popover__body--above.fd-popover__body--right{--fdPopover_Resize_Handle_Position_Right:auto;--fdPopover_Resize_Handle_Position_Left:0;--fdPopover_Resize_Handle_Rotate_Angle:180deg;--fdPopover_Resize_Handle_Cursor:nw-resize;--fdPopover_Resize_Handle_Transform_Scale:1}.fd-popover__body.fd-popover__body--resizable.fd-popover__body--above.fd-popover__body--right[dir=rtl],[dir=rtl] .fd-popover__body.fd-popover__body--resizable.fd-popover__body--above.fd-popover__body--right{--fdPopover_Resize_Handle_Position_Right:0;--fdPopover_Resize_Handle_Position_Left:auto;--fdPopover_Resize_Handle_Rotate_Angle:-90deg;--fdPopover_Resize_Handle_Cursor:ne-resize}.fd-popover__body.fd-popover__body--resizable.fd-popover__body--after{--fdPopover_Resize_Handle_Position_Top:auto;--fdPopover_Resize_Handle_Position_Bottom:0;--fdPopover_Resize_Handle_Position_Right:0;--fdPopover_Resize_Handle_Position_Left:auto;--fdPopover_Resize_Handle_Cursor:se-resize}.fd-popover__body.fd-popover__body--resizable.fd-popover__body--after[dir=rtl],[dir=rtl] .fd-popover__body.fd-popover__body--resizable.fd-popover__body--after{--fdPopover_Resize_Handle_Rotate_Angle:-90deg}.fd-popover__body.fd-popover__body--resizable.fd-popover__body--after.fd-popover__body--bottom{--fdPopover_Resize_Handle_Position_Top:0;--fdPopover_Resize_Handle_Position_Bottom:auto;--fdPopover_Resize_Handle_Position_Right:0;--fdPopover_Resize_Handle_Position_Left:auto;--fdPopover_Resize_Handle_Cursor:ne-resize;--fdPopover_Resize_Handle_Rotate_Angle:-90deg;--fdPopover_Resize_Handle_Transform_Scale:1}.fd-popover__body.fd-popover__body--resizable.fd-popover__body--before{--fdPopover_Resize_Handle_Position_Top:auto;--fdPopover_Resize_Handle_Position_Bottom:0;--fdPopover_Resize_Handle_Position_Right:auto;--fdPopover_Resize_Handle_Position_Left:0;--fdPopover_Resize_Handle_Cursor:sw-resize;--fdPopover_Resize_Handle_Rotate_Angle:0;--fdPopover_Resize_Handle_Transform_Scale:-1}.fd-popover__body.fd-popover__body--resizable.fd-popover__body--before.fd-popover__body--bottom,.fd-popover__body.fd-popover__body--resizable.fd-popover__body--before.fd-popover__body--middle{--fdPopover_Resize_Handle_Position_Top:0;--fdPopover_Resize_Handle_Position_Bottom:auto;--fdPopover_Resize_Handle_Rotate_Angle:90deg;--fdPopover_Resize_Handle_Cursor:nw-resize}.fd-popover__resize-handle{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:end;-ms-flex-pack:end;color:var(--sapButton_Lite_TextColor);cursor:var(--fdPopover_Resize_Handle_Cursor);font-size:1rem;inset:var(--fdPopover_Resize_Handle_Position_Top) var(--fdPopover_Resize_Handle_Position_Right) var(--fdPopover_Resize_Handle_Position_Bottom) var(--fdPopover_Resize_Handle_Position_Left);justify-content:flex-end;line-height:1rem;overflow:hidden;padding-block:.125rem;padding-inline:.125rem;position:absolute;-webkit-transform:rotate(var(--fdPopover_Resize_Handle_Rotate_Angle));transform:rotate(var(--fdPopover_Resize_Handle_Rotate_Angle))}.fd-popover__resize-handle:after,.fd-popover__resize-handle:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-popover__resize-handle:after{content:\"\\e24f\";display:-webkit-box;display:-ms-flexbox;display:flex;font-family:SAP-icons;height:1rem;max-height:1rem;max-width:1rem;min-height:1rem;min-width:1rem;text-align:center;text-decoration:inherit;text-rendering:optimizeLegibility;text-transform:none;width:1rem;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:var(--fdPopover_Resize_Handle_Justify);-ms-flex-pack:var(--fdPopover_Resize_Handle_Justify);color:inherit;justify-content:var(--fdPopover_Resize_Handle_Justify);-webkit-transform:scaleX(var(--fdPopover_Resize_Handle_Transform_Scale));transform:scaleX(var(--fdPopover_Resize_Handle_Transform_Scale))}.fd-popover--slider{--fdPopover_Display:block}.fd-popover--input-message-group .fd-popover__body,.fd-popover--input-message-group .fd-popover__body--no-arrow{border:none;-webkit-box-shadow:none;box-shadow:none}.fd-popover--full-width{width:100%}.fd-popover--btp .fd-popover__body{--fdPopover_Arrow_Size:.375rem;--fdPopover_Body_Border_Radius:.75rem;--fdPopover_Body_Box_Shadow:var(--sapMenu_Shadow2);border:none;top:calc(var(--fdPopover_Offset) + var(--fdPopover_Arrow_Size) - .1875rem)}.fd-popover--btp .fd-popover__body--padding{padding-block:.75rem;padding-inline:.75rem}.fd-popover--btp .fd-popover__body-header{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0}.fd-popover--btp .fd-popover__body-header:after,.fd-popover--btp .fd-popover__body-header:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-popover--btp .fd-popover__body-content{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-block:.75rem;margin-inline:0;padding-block:0;padding-inline:0}.fd-popover--btp .fd-popover__body-content:after,.fd-popover--btp .fd-popover__body-content:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-popover--btp .fd-popover__body-content:only-child{margin-block:0;margin-inline:0}.fd-popover--btp .fd-popover__body-footer{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:.1875rem;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;padding-block:.375rem;padding-inline:0}.fd-popover--btp .fd-popover__body-footer:after,.fd-popover--btp .fd-popover__body-footer:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-popover--btp .fd-popover__body-footer--center{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed;z-index:1000}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;display:flex;max-width:100%;max-height:100%;z-index:1000}.cdk-overlay-backdrop{position:absolute;inset:0;pointer-events:auto;-webkit-tap-highlight-color:rgba(0,0,0,0);opacity:0;z-index:1000;transition:opacity .4s cubic-bezier(.25,.8,.25,1)}.cdk-overlay-backdrop-showing{opacity:1}@media (forced-colors: active){.cdk-overlay-backdrop-showing{opacity:.6}}.cdk-overlay-dark-backdrop{background:#00000052}.cdk-overlay-transparent-backdrop{transition:visibility 1ms linear,opacity 1ms linear;visibility:hidden;opacity:1}.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing,.cdk-high-contrast-active .cdk-overlay-transparent-backdrop{opacity:0;visibility:visible}.cdk-overlay-backdrop-noop-animation{transition:none}.cdk-overlay-connected-position-bounding-box{position:absolute;display:flex;flex-direction:column;min-width:1px;min-height:1px;z-index:1000}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}fd-popover-body{max-width:100%;max-height:100%}.fd-popover-custom{display:inline-block;max-width:100%}.fd-popover-custom--disabled .fd-popover__control{cursor:auto}.fd-popover__body{max-height:100%;max-width:100%;display:flex}.fd-popover__body .fd-popover__body-footer,.fd-popover__body .fd-popover__body-header{position:sticky;z-index:6}.fd-popover__body .fd-popover__body-footer{bottom:0}.fd-popover__body--hidden{display:none!important}.fd-popover__body--disable-transitions{transition:none!important;-webkit-transition:none!important}.fd-popover__body--inline-help.fd-inline-help__content{white-space:initial}.fd-popover__body.fd-form-message:before{width:auto;height:auto;position:relative;inset:0;border:none}.fd-popover__body>.fd-scrollbar{max-height:100%;max-width:100%;width:100%;border-radius:inherit}.fd-popover__body .fd-list{border-radius:var(--fdPopover_Border_Radius)}.fd-popover__body .fd-list__item:first-child,.fd-popover__body .fd-list__item:first-of-type{border-top-right-radius:var(--fdPopover_Border_Radius);border-top-left-radius:var(--fdPopover_Border_Radius)}.fd-popover__body .fd-list__item:last-child,.fd-popover__body .fd-list__item:last-of-type{border-bottom-right-radius:var(--fdPopover_Border_Radius);border-bottom-left-radius:var(--fdPopover_Border_Radius)}.fd-popover__body .fd-nested-list{border-bottom:none}.fd-popover__body .fd-nested-list__item:first-child .fd-nested-list__content{border-top-right-radius:var(--fdPopover_Border_Radius);border-top-left-radius:var(--fdPopover_Border_Radius)}.fd-popover__body .fd-nested-list__item:last-child .fd-nested-list__item:last-child .fd-nested-list__link{border-bottom-right-radius:var(--fdPopover_Border_Radius);border-bottom-left-radius:var(--fdPopover_Border_Radius)}.fd-popover__body .fd-nested-list__item:last-child .fd-nested-list__content{border-bottom-right-radius:var(--fdPopover_Border_Radius);border-bottom-left-radius:var(--fdPopover_Border_Radius)}.fd-popover__body .fd-nested-list__item:last-child .fd-nested-list__content.is-selected{border-bottom-right-radius:0;border-bottom-left-radius:0}.fd-popover__body .fd-side-nav,.fd-popover__body .fd-nested-list__item{border-right:none}.fd-popover__body .fd-side-nav:first-child,.fd-popover__body .fd-nested-list__item:first-child{border-top-right-radius:var(--fdPopover_Border_Radius);border-top-left-radius:var(--fdPopover_Border_Radius)}.fd-popover__body .fd-side-nav:last-child,.fd-popover__body .fd-nested-list__item:last-child{border-bottom-right-radius:var(--fdPopover_Border_Radius);border-bottom-left-radius:var(--fdPopover_Border_Radius)}.fd-popover__resize-handle{-webkit-user-select:none;user-select:none}.cdk-overlay-container{z-index:1002}.cdk-overlay-pane{max-width:100%;max-height:100%}\n/*!\n * Fundamental Library Styles v0.39.2\n * Copyright (c) 2025 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n */\n"], dependencies: [{ kind: "ngmodule", type: A11yModule }, { kind: "directive", type: i2.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "directive", type: ScrollbarDirective, selector: "[fdScrollbar], [fd-scrollbar]", inputs: ["noHorizontalScroll", "noVerticalScroll", "alwaysVisible"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: ResizeHandleDirective, selector: "[fdkResizeHandle]" }, { kind: "directive", type: ResizeDirective, selector: "[fdkResize]", inputs: ["fdkResizeBoundary", "fdkResizeDisabled", "fdkResizeClass", "fdkResizeHandleLocation", "fdkResizeResizeHandleRef"], outputs: ["onResizeStart", "onResizeEnd"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
383
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.3", type: PopoverBodyComponent, isStandalone: true, selector: "fd-popover-body", inputs: { minWidth: "minWidth", maxWidth: "maxWidth", minHeight: "minHeight", maxHeight: "maxHeight" }, host: { listeners: { "keydown": "bodyKeyupHandler($event)" } }, providers: [contentDensityObserverProviders({ alwaysAddModifiers: true })], viewQueries: [{ propertyName: "_cdkTrapFocus", first: true, predicate: CdkTrapFocus, descendants: true }, { propertyName: "_scrollbar", first: true, predicate: ScrollbarDirective, descendants: true }], ngImport: i0, template: "<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\"></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 <ng-template [ngTemplateOutlet]=\"_templateToDisplay\"></ng-template>\n <ng-content select=\"[fd-popover-body-footer]\"></ng-content>\n</ng-template>\n", styles: ["body.fd-overlay-active:before{background:var(--fdModal_BackgroundColor);content:\"\";height:100vh;left:0;pointer-events:all;position:fixed;top:0;width:100vw;z-index:999}.fd-popover{--fdPopover_Display:inline-block;border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:var(--fdPopover_Display);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;max-width:100%;padding-block:0;padding-inline:0;position:relative}.fd-popover:after,.fd-popover:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-popover__modal{position:relative;z-index:1000}.fd-popover__control{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);cursor:pointer;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;position:relative}.fd-popover__control:after,.fd-popover__control:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-popover__control:focus-visible{outline:var(--sapContent_FocusWidth) var(--sapContent_FocusStyle) var(--sapContent_FocusColor)}.fd-popover__control.is-expanded>*,.fd-popover__control[aria-expanded=true]>*{-webkit-margin-after:0;margin-block-end:0}.fd-popover__control.is-expanded+.fd-popover__body--input-message-group,.fd-popover__control[aria-expanded=true]+.fd-popover__body--input-message-group{margin-top:0}.fd-popover__control.is-disabled,.fd-popover__control:disabled,.fd-popover__control[aria-disabled=true]{pointer-events:none}.fd-popover__wrapper{border-radius:var(--fdPopover_Body_Border_Radius);overflow:auto;position:relative;scrollbar-color:var(--fdScrollbar_Thumb_Color) var(--fdScrollbar_Track_Color)}.fd-popover__wrapper.is-focus,.fd-popover__wrapper:focus{outline:none;z-index:5}.fd-popover__wrapper::-webkit-scrollbar{height:var(--fdScrollbar_Dimension);width:var(--fdScrollbar_Dimension)}.fd-popover__wrapper::-webkit-scrollbar-corner,.fd-popover__wrapper::-webkit-scrollbar-track{background-color:var(--fdScrollbar_Track_Color)}.fd-popover__wrapper::-webkit-scrollbar-thumb{background-color:transparent;border:var(--fdScrollbar_Thumb_Offset) solid transparent;border-radius:calc(var(--fdScrollbar_Thumb_Border_Radius) - var(--fdScrollbar_Thumb_Offset));-webkit-box-shadow:inset 0 0 0 var(--fdScrollbar_Dimension) var(--fdScrollbar_Thumb_Color);box-shadow:inset 0 0 0 var(--fdScrollbar_Dimension) var(--fdScrollbar_Thumb_Color)}.fd-popover__wrapper::-webkit-scrollbar-thumb:active,.fd-popover__wrapper::-webkit-scrollbar-thumb:hover{-webkit-box-shadow:inset 0 0 0 var(--fdScrollbar_Dimension) var(--fdScrollbar_Thumb_Hover_Color);box-shadow:inset 0 0 0 var(--fdScrollbar_Dimension) var(--fdScrollbar_Thumb_Hover_Color)}.fd-popover__wrapper::-webkit-scrollbar-corner,.fd-popover__wrapper::-webkit-scrollbar-track{border-radius:0 var(--fdScrollbar_Border_Radius) var(--fdScrollbar_Border_Radius) 0}.fd-popover__wrapper[dir=rtl]::-webkit-scrollbar-corner,.fd-popover__wrapper[dir=rtl]::-webkit-scrollbar-track,[dir=rtl] .fd-popover__wrapper::-webkit-scrollbar-corner,[dir=rtl] .fd-popover__wrapper::-webkit-scrollbar-track{border-radius:var(--fdScrollbar_Border_Radius) 0 0 var(--fdScrollbar_Border_Radius)}.fd-popover__wrapper--visible{overflow:visible!important}.fd-popover__body{--fdPopover_Offset:100%;--fdPopover_Center_Offset:50%;--fdPopover_Arrow_Size:.5rem;--fdPopover_Body_Border_Radius:var(--fdPopover_Border_Radius);--fdPopover_Body_Box_Shadow:var(--sapContent_Shadow2);--fdPopover_Body_Box_Shadow_No_Arrow:var(--sapContent_Shadow1);--fdIcon_Button_Height:2.25rem;--fdIcon_Button_Width:2.25rem;--fdPopover_Resize_Handle_Position_Top:auto;--fdPopover_Resize_Handle_Position_Right:0;--fdPopover_Resize_Handle_Position_Bottom:0;--fdPopover_Resize_Handle_Position_Left:auto;--fdPopover_Resize_Handle_Rotate_Angle:0;--fdPopover_Resize_Handle_Cursor:se-resize;--fdPopover_Resize_Handle_Justify:flex-end;--fdPopover_Resize_Handle_Transform_Scale:1;background:var(--sapGroup_ContentBackground);border:0;border-radius:var(--fdPopover_Body_Border_Radius);-webkit-box-shadow:var(--fdPopover_Body_Box_Shadow);box-shadow:var(--fdPopover_Body_Box_Shadow);-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;opacity:1;padding-block:0;padding-inline:0;position:absolute;top:calc(var(--fdPopover_Offset) + var(--fdPopover_Arrow_Size));-webkit-transition:all .125s;transition:all .125s;visibility:visible;white-space:nowrap;z-index:1000}.fd-popover__body:after,.fd-popover__body:before{-webkit-box-sizing:inherit;box-sizing:inherit;content:\"\";font-size:inherit;position:absolute}.fd-popover__body:before{border-bottom:calc(var(--fdPopover_Arrow_Size) - var(--fdPopover_Border_Width)) solid var(--sapGroup_ContentBackground);border-left:calc(var(--fdPopover_Arrow_Size) - var(--fdPopover_Border_Width)) solid transparent;border-right:calc(var(--fdPopover_Arrow_Size) - var(--fdPopover_Border_Width)) solid transparent;top:calc(var(--fdPopover_Arrow_Size) * -1 + var(--fdPopover_Border_Width));z-index:1002}.fd-popover__body:after,.fd-popover__body:before{border-top:none;display:inline-block;height:0;width:0}.fd-popover__body:after{border-bottom:var(--fdPopover_Arrow_Size) solid var(--fdPopover_Border_Color);border-left:var(--fdPopover_Arrow_Size) solid transparent;border-right:var(--fdPopover_Arrow_Size) solid transparent;top:calc(var(--fdPopover_Arrow_Size) * -1);z-index:1001}.fd-popover__body>:not(.fd-popover__wrapper){overflow:hidden}.fd-popover__body-header>:first-child,.fd-popover__body>:first-child{border-top-left-radius:var(--fdPopover_Border_Radius);border-top-right-radius:var(--fdPopover_Border_Radius)}.fd-popover__body-footer>:last-child,.fd-popover__body>:last-child{border-bottom-left-radius:var(--fdPopover_Border_Radius);border-bottom-right-radius:var(--fdPopover_Border_Radius)}.fd-popover__body .fd-menu{width:100%}.fd-popover__body[class*=-compact],.fd-popover__body[class*=-condensed],[class*=-compact] .fd-popover__body:not([class*=-cozy]),[class*=-condensed] .fd-popover__body:not([class*=-cozy]){--fdIcon_Button_Height:1.625rem;--fdIcon_Button_Width:2rem}.fd-popover__body--no-arrow{-webkit-box-shadow:var(--fdPopover_Body_Box_Shadow_No_Arrow);box-shadow:var(--fdPopover_Body_Box_Shadow_No_Arrow);top:var(--fdPopover_Offset)}.fd-popover__body--no-arrow:after,.fd-popover__body--no-arrow:before{display:none}.fd-popover__body,.fd-popover__body--left{left:0}.fd-popover__body--left[dir=rtl],.fd-popover__body[dir=rtl],[dir=rtl] .fd-popover__body,[dir=rtl] .fd-popover__body--left{left:auto;right:0}.fd-popover__body--left:before,.fd-popover__body:before{left:calc(var(--fdIcon_Button_Width) * .5 - var(--fdPopover_Arrow_Size) - var(--fdPopover_Border_Width) + var(--fdPopover_Border_Width))}.fd-popover__body--left:after,.fd-popover__body:after{left:calc(var(--fdIcon_Button_Width) * .5 - var(--fdPopover_Arrow_Size) - var(--fdPopover_Border_Width))}.fd-popover__body--left[dir=rtl]:before,.fd-popover__body[dir=rtl]:before,[dir=rtl] .fd-popover__body--left:before,[dir=rtl] .fd-popover__body:before{left:auto;right:calc(var(--fdIcon_Button_Width) * .5 - var(--fdPopover_Arrow_Size) - var(--fdPopover_Border_Width) + var(--fdPopover_Border_Width))}.fd-popover__body--left[dir=rtl]:after,.fd-popover__body[dir=rtl]:after,[dir=rtl] .fd-popover__body--left:after,[dir=rtl] .fd-popover__body:after{left:auto;right:calc(var(--fdIcon_Button_Width) * .5 - var(--fdPopover_Arrow_Size) - var(--fdPopover_Border_Width))}.fd-popover__body--center{left:var(--fdPopover_Center_Offset);-webkit-transform:translateX(calc(var(--fdPopover_Center_Offset) * -1));transform:translate(calc(var(--fdPopover_Center_Offset) * -1))}.fd-popover__body--center[dir=rtl],[dir=rtl] .fd-popover__body--center{left:auto;right:var(--fdPopover_Center_Offset);-webkit-transform:translateX(var(--fdPopover_Center_Offset));transform:translate(var(--fdPopover_Center_Offset))}.fd-popover__body--right{left:auto;right:0}.fd-popover__body--right[dir=rtl],[dir=rtl] .fd-popover__body--right{left:0;right:auto}.fd-popover__body--right:before{left:auto;right:calc(var(--fdIcon_Button_Width) * .5 - var(--fdPopover_Arrow_Size) - var(--fdPopover_Border_Width) + var(--fdPopover_Border_Width))}.fd-popover__body--right:after{left:auto;right:calc(var(--fdIcon_Button_Width) * .5 - var(--fdPopover_Arrow_Size) - var(--fdPopover_Border_Width))}.fd-popover__body--right[dir=rtl]:before,[dir=rtl] .fd-popover__body--right:before{left:calc(var(--fdIcon_Button_Width) * .5 - var(--fdPopover_Arrow_Size) - var(--fdPopover_Border_Width) + var(--fdPopover_Border_Width));right:auto}.fd-popover__body--right[dir=rtl]:after,[dir=rtl] .fd-popover__body--right:after{left:calc(var(--fdIcon_Button_Width) * .5 - var(--fdPopover_Arrow_Size) - var(--fdPopover_Border_Width));right:auto}.fd-popover__body--before{left:auto!important;right:var(--fdPopover_Offset)!important;top:0}.fd-popover__body--after{left:var(--fdPopover_Offset)!important;right:auto!important;top:0}.fd-popover__body--middle{top:var(--fdPopover_Center_Offset);-webkit-transform:translateY(calc(var(--fdPopover_Center_Offset) * -1));transform:translateY(calc(var(--fdPopover_Center_Offset) * -1))}.fd-popover__body--bottom{bottom:0;top:auto}.fd-popover__body--above{bottom:var(--fdPopover_Offset);top:auto}.fd-popover__body--arrow-bottom{bottom:calc(var(--fdPopover_Offset) + var(--fdPopover_Arrow_Size))!important}.fd-popover__body--arrow-bottom:before{border-bottom:none;border-left:calc(var(--fdPopover_Arrow_Size) - var(--fdPopover_Border_Width)) solid transparent;border-right:calc(var(--fdPopover_Arrow_Size) - var(--fdPopover_Border_Width)) solid transparent;border-top:calc(var(--fdPopover_Arrow_Size) - var(--fdPopover_Border_Width)) solid var(--sapGroup_ContentBackground);display:inline-block;height:0;top:100%;width:0}.fd-popover__body--arrow-bottom:after{border-bottom:none;border-left:var(--fdPopover_Arrow_Size) solid transparent;border-right:var(--fdPopover_Arrow_Size) solid transparent;border-top:var(--fdPopover_Arrow_Size) solid var(--fdPopover_Border_Color);display:inline-block;height:0;top:100%;width:0}.fd-popover__body--arrow-left{left:calc(var(--fdPopover_Offset) + var(--fdPopover_Arrow_Size))!important}.fd-popover__body--arrow-left:before{border-bottom:calc(var(--fdPopover_Arrow_Size) - var(--fdPopover_Border_Width)) solid transparent;border-right:calc(var(--fdPopover_Arrow_Size) - var(--fdPopover_Border_Width)) solid var(--sapGroup_ContentBackground);border-top:calc(var(--fdPopover_Arrow_Size) - var(--fdPopover_Border_Width)) solid transparent;top:calc(var(--fdIcon_Button_Height) * .5 - var(--fdPopover_Arrow_Size) - var(--fdPopover_Border_Width) + var(--fdPopover_Border_Width))}.fd-popover__body--arrow-left:after,.fd-popover__body--arrow-left:before{border-left:none;display:inline-block;height:0;left:auto!important;right:100%!important;width:0}.fd-popover__body--arrow-left:after{border-bottom:var(--fdPopover_Arrow_Size) solid transparent;border-right:var(--fdPopover_Arrow_Size) solid var(--fdPopover_Border_Color);border-top:var(--fdPopover_Arrow_Size) solid transparent;top:calc(var(--fdIcon_Button_Height) * .5 - var(--fdPopover_Arrow_Size) - var(--fdPopover_Border_Width))}.fd-popover__body--arrow-right{right:calc(var(--fdPopover_Offset) + var(--fdPopover_Arrow_Size))!important}.fd-popover__body--arrow-right:before{border-bottom:calc(var(--fdPopover_Arrow_Size) - var(--fdPopover_Border_Width)) solid transparent;border-left:calc(var(--fdPopover_Arrow_Size) - var(--fdPopover_Border_Width)) solid var(--sapGroup_ContentBackground);border-top:calc(var(--fdPopover_Arrow_Size) - var(--fdPopover_Border_Width)) solid transparent;top:calc(var(--fdIcon_Button_Height) * .5 - var(--fdPopover_Arrow_Size) - var(--fdPopover_Border_Width) + var(--fdPopover_Border_Width))}.fd-popover__body--arrow-right:after,.fd-popover__body--arrow-right:before{border-right:none;display:inline-block;height:0;left:100%!important;right:auto!important;width:0}.fd-popover__body--arrow-right:after{border-bottom:var(--fdPopover_Arrow_Size) solid transparent;border-left:var(--fdPopover_Arrow_Size) solid var(--fdPopover_Border_Color);border-top:var(--fdPopover_Arrow_Size) solid transparent;top:calc(var(--fdIcon_Button_Height) * .5 - var(--fdPopover_Arrow_Size) - var(--fdPopover_Border_Width))}.fd-popover__body--arrow-x-center:after,.fd-popover__body--arrow-x-center:before{left:50%;-webkit-transform:translateX(-50%);transform:translate(-50%)}.fd-popover__body--arrow-x-center[dir=rtl]:after,.fd-popover__body--arrow-x-center[dir=rtl]:before,[dir=rtl] .fd-popover__body--arrow-x-center:after,[dir=rtl] .fd-popover__body--arrow-x-center:before{left:auto;right:50%;-webkit-transform:translateX(50%);transform:translate(50%)}.fd-popover__body--arrow-x-end:before{left:auto;right:calc(var(--fdIcon_Button_Width) * .5 - var(--fdPopover_Arrow_Size) - var(--fdPopover_Border_Width) + var(--fdPopover_Border_Width))}.fd-popover__body--arrow-x-end:after{left:auto;right:calc(var(--fdIcon_Button_Width) * .5 - var(--fdPopover_Arrow_Size) - var(--fdPopover_Border_Width))}.fd-popover__body--arrow-x-end[dir=rtl]:before,[dir=rtl] .fd-popover__body--arrow-x-end:before{left:calc(var(--fdIcon_Button_Width) * .5 - var(--fdPopover_Arrow_Size) - var(--fdPopover_Border_Width) + var(--fdPopover_Border_Width));right:auto}.fd-popover__body--arrow-x-end[dir=rtl]:after,[dir=rtl] .fd-popover__body--arrow-x-end:after{left:calc(var(--fdIcon_Button_Width) * .5 - var(--fdPopover_Arrow_Size) - var(--fdPopover_Border_Width));right:auto}.fd-popover__body--arrow-y-center:after,.fd-popover__body--arrow-y-center:before{top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.fd-popover__body--arrow-y-bottom:before,.fd-popover__body--arrow-y-end:before{bottom:calc(var(--fdIcon_Button_Height) * .5 - var(--fdPopover_Arrow_Size) - var(--fdPopover_Border_Width) + var(--fdPopover_Border_Width));top:auto}.fd-popover__body--arrow-y-bottom:after,.fd-popover__body--arrow-y-end:after{bottom:calc(var(--fdIcon_Button_Height) * .5 - var(--fdPopover_Arrow_Size) - var(--fdPopover_Border_Width));top:auto}.fd-popover__body--dropdown{width:-webkit-max-content;width:-moz-max-content;width:max-content}.fd-popover__body--dropdown-fill{display:block;max-width:40rem;width:calc(100% - var(--sapGroup_BorderWidth) * 2)}.fd-popover__body--static{position:relative;--fdPopover_Offset:0%;--fdPopover_Center_Offset:0%}.fd-popover__body.is-hidden,.fd-popover__body[aria-hidden=true]{opacity:0;visibility:hidden;z-index:-1}.fd-popover__body .fd-popover__body--hidden{display:none}.fd-popover__body--input-message-group{border:none;-webkit-box-shadow:none;box-shadow:none}.fd-popover__body--inline-help{font-size:var(--sapFontSmallSize);padding-block:.75rem;padding-inline:.75rem}.fd-popover__body--inline-help-icon{--fdIcon_Button_Height:1.375rem;--fdIcon_Button_Width:1.375rem}.fd-popover__body.fd-popover__body--resizable[dir=rtl],[dir=rtl] .fd-popover__body.fd-popover__body--resizable{--fdPopover_Resize_Handle_Position_Right:auto;--fdPopover_Resize_Handle_Position_Left:0;--fdPopover_Resize_Handle_Cursor:sw-resize;--fdPopover_Resize_Handle_Transform_Scale:-1;--fdPopover_Resize_Handle_Justify:flex-start}.fd-popover__body.fd-popover__body--resizable.fd-popover__body--right{--fdPopover_Resize_Handle_Position_Left:0;--fdPopover_Resize_Handle_Position_Right:auto;--fdPopover_Resize_Handle_Cursor:sw-resize;--fdPopover_Resize_Handle_Transform_Scale:-1}.fd-popover__body.fd-popover__body--resizable.fd-popover__body--right[dir=rtl],[dir=rtl] .fd-popover__body.fd-popover__body--resizable.fd-popover__body--right{--fdPopover_Resize_Handle_Position_Right:0;--fdPopover_Resize_Handle_Position_Left:auto;--fdPopover_Resize_Handle_Cursor:se-resize;--fdPopover_Resize_Handle_Transform_Scale:1}.fd-popover__body.fd-popover__body--resizable.fd-popover__body--above{--fdPopover_Resize_Handle_Position_Top:0;--fdPopover_Resize_Handle_Position_Bottom:auto;--fdPopover_Resize_Handle_Position_Right:0;--fdPopover_Resize_Handle_Position_Left:auto;--fdPopover_Resize_Handle_Cursor:ne-resize;--fdPopover_Resize_Handle_Rotate_Angle:-90deg;--fdPopover_Resize_Handle_Transform_Scale:1}.fd-popover__body.fd-popover__body--resizable.fd-popover__body--above[dir=rtl],[dir=rtl] .fd-popover__body.fd-popover__body--resizable.fd-popover__body--above{--fdPopover_Resize_Handle_Position_Right:auto;--fdPopover_Resize_Handle_Position_Left:0;--fdPopover_Resize_Handle_Cursor:nw-resize;--fdPopover_Resize_Handle_Transform_Scale:1;--fdPopover_Resize_Handle_Rotate_Angle:180deg}.fd-popover__body.fd-popover__body--resizable.fd-popover__body--above.fd-popover__body--right{--fdPopover_Resize_Handle_Position_Right:auto;--fdPopover_Resize_Handle_Position_Left:0;--fdPopover_Resize_Handle_Rotate_Angle:180deg;--fdPopover_Resize_Handle_Cursor:nw-resize;--fdPopover_Resize_Handle_Transform_Scale:1}.fd-popover__body.fd-popover__body--resizable.fd-popover__body--above.fd-popover__body--right[dir=rtl],[dir=rtl] .fd-popover__body.fd-popover__body--resizable.fd-popover__body--above.fd-popover__body--right{--fdPopover_Resize_Handle_Position_Right:0;--fdPopover_Resize_Handle_Position_Left:auto;--fdPopover_Resize_Handle_Rotate_Angle:-90deg;--fdPopover_Resize_Handle_Cursor:ne-resize}.fd-popover__body.fd-popover__body--resizable.fd-popover__body--after{--fdPopover_Resize_Handle_Position_Top:auto;--fdPopover_Resize_Handle_Position_Bottom:0;--fdPopover_Resize_Handle_Position_Right:0;--fdPopover_Resize_Handle_Position_Left:auto;--fdPopover_Resize_Handle_Cursor:se-resize}.fd-popover__body.fd-popover__body--resizable.fd-popover__body--after[dir=rtl],[dir=rtl] .fd-popover__body.fd-popover__body--resizable.fd-popover__body--after{--fdPopover_Resize_Handle_Rotate_Angle:-90deg}.fd-popover__body.fd-popover__body--resizable.fd-popover__body--after.fd-popover__body--bottom{--fdPopover_Resize_Handle_Position_Top:0;--fdPopover_Resize_Handle_Position_Bottom:auto;--fdPopover_Resize_Handle_Position_Right:0;--fdPopover_Resize_Handle_Position_Left:auto;--fdPopover_Resize_Handle_Cursor:ne-resize;--fdPopover_Resize_Handle_Rotate_Angle:-90deg;--fdPopover_Resize_Handle_Transform_Scale:1}.fd-popover__body.fd-popover__body--resizable.fd-popover__body--before{--fdPopover_Resize_Handle_Position_Top:auto;--fdPopover_Resize_Handle_Position_Bottom:0;--fdPopover_Resize_Handle_Position_Right:auto;--fdPopover_Resize_Handle_Position_Left:0;--fdPopover_Resize_Handle_Cursor:sw-resize;--fdPopover_Resize_Handle_Rotate_Angle:0;--fdPopover_Resize_Handle_Transform_Scale:-1}.fd-popover__body.fd-popover__body--resizable.fd-popover__body--before.fd-popover__body--bottom,.fd-popover__body.fd-popover__body--resizable.fd-popover__body--before.fd-popover__body--middle{--fdPopover_Resize_Handle_Position_Top:0;--fdPopover_Resize_Handle_Position_Bottom:auto;--fdPopover_Resize_Handle_Rotate_Angle:90deg;--fdPopover_Resize_Handle_Cursor:nw-resize}.fd-popover__resize-handle{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:end;-ms-flex-pack:end;color:var(--sapButton_Lite_TextColor);cursor:var(--fdPopover_Resize_Handle_Cursor);font-size:1rem;inset:var(--fdPopover_Resize_Handle_Position_Top) var(--fdPopover_Resize_Handle_Position_Right) var(--fdPopover_Resize_Handle_Position_Bottom) var(--fdPopover_Resize_Handle_Position_Left);justify-content:flex-end;line-height:1rem;overflow:hidden;padding-block:.125rem;padding-inline:.125rem;position:absolute;-webkit-transform:rotate(var(--fdPopover_Resize_Handle_Rotate_Angle));transform:rotate(var(--fdPopover_Resize_Handle_Rotate_Angle))}.fd-popover__resize-handle:after,.fd-popover__resize-handle:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-popover__resize-handle:after{content:\"\\e24f\";display:-webkit-box;display:-ms-flexbox;display:flex;font-family:SAP-icons;height:1rem;max-height:1rem;max-width:1rem;min-height:1rem;min-width:1rem;text-align:center;text-decoration:inherit;text-rendering:optimizeLegibility;text-transform:none;width:1rem;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:var(--fdPopover_Resize_Handle_Justify);-ms-flex-pack:var(--fdPopover_Resize_Handle_Justify);color:inherit;justify-content:var(--fdPopover_Resize_Handle_Justify);-webkit-transform:scaleX(var(--fdPopover_Resize_Handle_Transform_Scale));transform:scaleX(var(--fdPopover_Resize_Handle_Transform_Scale))}.fd-popover--slider{--fdPopover_Display:block}.fd-popover--input-message-group .fd-popover__body,.fd-popover--input-message-group .fd-popover__body--no-arrow{border:none;-webkit-box-shadow:none;box-shadow:none}.fd-popover--full-width{width:100%}.fd-popover--btp .fd-popover__body{--fdPopover_Arrow_Size:.375rem;--fdPopover_Body_Border_Radius:.75rem;--fdPopover_Body_Box_Shadow:var(--sapMenu_Shadow2);border:none;top:calc(var(--fdPopover_Offset) + var(--fdPopover_Arrow_Size) - .1875rem)}.fd-popover--btp .fd-popover__body--padding{padding-block:.75rem;padding-inline:.75rem}.fd-popover--btp .fd-popover__body-header{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0}.fd-popover--btp .fd-popover__body-header:after,.fd-popover--btp .fd-popover__body-header:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-popover--btp .fd-popover__body-content{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-block:.75rem;margin-inline:0;padding-block:0;padding-inline:0}.fd-popover--btp .fd-popover__body-content:after,.fd-popover--btp .fd-popover__body-content:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-popover--btp .fd-popover__body-content:only-child{margin-block:0;margin-inline:0}.fd-popover--btp .fd-popover__body-footer{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:.1875rem;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;padding-block:.375rem;padding-inline:0}.fd-popover--btp .fd-popover__body-footer:after,.fd-popover--btp .fd-popover__body-footer:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-popover--btp .fd-popover__body-footer--center{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed;z-index:1000}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;display:flex;max-width:100%;max-height:100%;z-index:1000}.cdk-overlay-backdrop{position:absolute;inset:0;pointer-events:auto;-webkit-tap-highlight-color:rgba(0,0,0,0);opacity:0;z-index:1000;transition:opacity .4s cubic-bezier(.25,.8,.25,1)}.cdk-overlay-backdrop-showing{opacity:1}@media (forced-colors: active){.cdk-overlay-backdrop-showing{opacity:.6}}.cdk-overlay-dark-backdrop{background:#00000052}.cdk-overlay-transparent-backdrop{transition:visibility 1ms linear,opacity 1ms linear;visibility:hidden;opacity:1}.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing,.cdk-high-contrast-active .cdk-overlay-transparent-backdrop{opacity:0;visibility:visible}.cdk-overlay-backdrop-noop-animation{transition:none}.cdk-overlay-connected-position-bounding-box{position:absolute;display:flex;flex-direction:column;min-width:1px;min-height:1px;z-index:1000}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}fd-popover-body{max-width:100%;max-height:100%}.fd-popover-custom{display:inline-block;max-width:100%}.fd-popover-custom--disabled .fd-popover__control{cursor:auto}.fd-popover__body{max-height:100%;max-width:100%;display:flex}.fd-popover__body .fd-popover__body-footer,.fd-popover__body .fd-popover__body-header{position:sticky;z-index:6}.fd-popover__body .fd-popover__body-footer{bottom:0}.fd-popover__body--hidden{display:none!important}.fd-popover__body--disable-transitions{transition:none!important;-webkit-transition:none!important}.fd-popover__body--inline-help.fd-inline-help__content{white-space:initial}.fd-popover__body.fd-form-message:before{width:auto;height:auto;position:relative;inset:0;border:none}.fd-popover__body>.fd-scrollbar{max-height:100%;max-width:100%;width:100%;border-radius:inherit}.fd-popover__body .fd-list{border-radius:var(--fdPopover_Border_Radius)}.fd-popover__body .fd-list__item:first-child,.fd-popover__body .fd-list__item:first-of-type{border-top-right-radius:var(--fdPopover_Border_Radius);border-top-left-radius:var(--fdPopover_Border_Radius)}.fd-popover__body .fd-list__item:last-child,.fd-popover__body .fd-list__item:last-of-type{border-bottom-right-radius:var(--fdPopover_Border_Radius);border-bottom-left-radius:var(--fdPopover_Border_Radius)}.fd-popover__body .fd-nested-list{border-bottom:none}.fd-popover__body .fd-nested-list__item:first-child .fd-nested-list__content{border-top-right-radius:var(--fdPopover_Border_Radius);border-top-left-radius:var(--fdPopover_Border_Radius)}.fd-popover__body .fd-nested-list__item:last-child .fd-nested-list__item:last-child .fd-nested-list__link{border-bottom-right-radius:var(--fdPopover_Border_Radius);border-bottom-left-radius:var(--fdPopover_Border_Radius)}.fd-popover__body .fd-nested-list__item:last-child .fd-nested-list__content{border-bottom-right-radius:var(--fdPopover_Border_Radius);border-bottom-left-radius:var(--fdPopover_Border_Radius)}.fd-popover__body .fd-nested-list__item:last-child .fd-nested-list__content.is-selected{border-bottom-right-radius:0;border-bottom-left-radius:0}.fd-popover__body .fd-side-nav,.fd-popover__body .fd-nested-list__item{border-right:none}.fd-popover__body .fd-side-nav:first-child,.fd-popover__body .fd-nested-list__item:first-child{border-top-right-radius:var(--fdPopover_Border_Radius);border-top-left-radius:var(--fdPopover_Border_Radius)}.fd-popover__body .fd-side-nav:last-child,.fd-popover__body .fd-nested-list__item:last-child{border-bottom-right-radius:var(--fdPopover_Border_Radius);border-bottom-left-radius:var(--fdPopover_Border_Radius)}.fd-popover__resize-handle{-webkit-user-select:none;user-select:none}.cdk-overlay-container{z-index:1002}.cdk-overlay-pane{max-width:100%;max-height:100%}\n/*!\n * Fundamental Library Styles v0.39.2\n * Copyright (c) 2025 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n */\n"], dependencies: [{ kind: "ngmodule", type: A11yModule }, { kind: "directive", type: i2.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "directive", type: ScrollbarDirective, selector: "[fdScrollbar], [fd-scrollbar]", inputs: ["noHorizontalScroll", "noVerticalScroll", "alwaysVisible"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: ResizeHandleDirective, selector: "[fdkResizeHandle]" }, { kind: "directive", type: ResizeDirective, selector: "[fdkResize]", inputs: ["fdkResizeBoundary", "fdkResizeDisabled", "fdkResizeClass", "fdkResizeHandleLocation", "fdkResizeResizeHandleRef"], outputs: ["onResizeStart", "onResizeEnd"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
384
384
|
}
|
|
385
385
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: PopoverBodyComponent, decorators: [{
|
|
386
386
|
type: Component,
|
|
@@ -401,7 +401,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.3", ngImpor
|
|
|
401
401
|
args: [ScrollbarDirective]
|
|
402
402
|
}], bodyKeyupHandler: [{
|
|
403
403
|
type: HostListener,
|
|
404
|
-
args: ['
|
|
404
|
+
args: ['keydown', ['$event']]
|
|
405
405
|
}] } });
|
|
406
406
|
|
|
407
407
|
class PopoverContainerDirective {
|
|
@@ -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, EventEmitter, HostBinding, Input, Output } from '@angular/core';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { Placement, PopoverFillMode } from '@fundamental-ngx/core/shared';\n\n@Directive()\nexport class BasePopoverClass {\n /** Whether to close the popover on router navigation start. */\n @Input()\n closeOnNavigation = true;\n\n /** Whether the popover is disabled. */\n @Input()\n @HostBinding('class.fd-popover-custom--disabled')\n disabled = false;\n\n /** Maximum width of popover body in px, prevents from overextending body by `fillControlMode` */\n @Input()\n maxWidth: Nullable<number> = null;\n\n /** Whether the popover should have an arrow. */\n @Input()\n noArrow = true;\n\n /** Whether the popover container needs an extra class for styling. */\n @Input()\n additionalBodyClass: string | null = null;\n\n /** Classes that should be applied to fd-popover-body component directly. */\n @Input()\n additionalBodyComponentClasses: string | null = null;\n\n /** Whether the popover container needs an extra class for styling. */\n @Input()\n additionalTriggerClass: string | null = null;\n\n /** Whether the popover should close when the escape key is pressed. */\n @Input()\n closeOnEscapeKey = true;\n\n /** Whether to wrap content with fd-scrollbar directive. */\n @Input()\n disableScrollbar = 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 @Input()\n placement: 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 @Input()\n triggers: (string | TriggerConfig)[] = ['click'];\n\n /** Whether the popover is open. Can be used through two-way binding. */\n @Input()\n isOpen = false;\n\n /** Whether the popover should close when a click is made outside its boundaries. */\n @Input()\n closeOnOutsideClick = true;\n\n /** Wether to apply a background overlay */\n @Input()\n applyOverlay = false;\n\n /** Whether the popover should be focusTrapped. */\n @Input()\n focusTrapped = 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 @Input()\n focusAutoCapture = false;\n\n /**\n * Whether to move the focus after popover is closed to the last focused element before popover was opened.\n */\n @Input()\n restoreFocusOnClose = true;\n\n /**\n * Scroll strategy, there are 4 accepted\n * - CloseScrollStrategy\n * - NoopScrollStrategy\n * - BlockScrollStrategy\n * - RepositionScrollStrategy ( default )\n */\n @Input()\n scrollStrategy: 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 @Input()\n cdkPositions: 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 @Input()\n fillControlMode: Nullable<PopoverFillMode> = null;\n\n /** The element to which the overlay is attached. By default it is body */\n @Input()\n appendTo: Nullable<ElementRef | Element> = null;\n\n /** Placement of the popover element. */\n @Input()\n placementContainer: Nullable<ElementRef | Element>;\n\n /** Whether position shouldn't change, when popover approach the corner of page */\n @Input()\n fixedPosition = false;\n\n /** Whether the popover body is resizable. */\n @Input()\n resizable = false;\n\n /** Event emitted when the state of the isOpen property changes. */\n @Output()\n isOpenChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n /** Event emitted right before the popover is being opened.\n * Useful for cases when component inside popover body needs to be initialized right BEFORE the opening of the popover. */\n @Output()\n beforeOpen = new EventEmitter();\n\n /** @hidden Aria role for the popover body. */\n _bodyRole: string | null = 'dialog';\n\n /** @hidden ID for the popover body. */\n _bodyId: string | null = null;\n}\n\n/**\n * Config for the trigger event, which allows to specify\n * whether an event should apply both for open and close actions or only some of them\n */\nexport interface TriggerConfig {\n trigger: string;\n openAction: boolean;\n closeAction: boolean;\n stopPropagation?: boolean;\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 AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n HostListener,\n Input,\n Renderer2,\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 { Subject } from 'rxjs';\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})\nexport class PopoverBodyComponent implements AfterViewInit {\n /** Minimum width of the popover body element. */\n @Input()\n minWidth: Nullable<string>;\n\n /** Maximum width of the popover body element. */\n @Input()\n maxWidth: Nullable<string>;\n\n /** Minimum height of the popover body element. */\n @Input()\n minHeight: Nullable<string>;\n\n /** Maximum height of the popover body element. */\n @Input()\n maxHeight: Nullable<string>;\n\n /** @hidden */\n @ViewChild(CdkTrapFocus)\n _cdkTrapFocus: CdkTrapFocus;\n\n /** @hidden */\n @ViewChild(ScrollbarDirective)\n _scrollbar: ScrollbarDirective;\n\n /** Whether to wrap content with fd-scrollbar directive. */\n _disableScrollbar = false;\n\n /** Whether the popover should have an arrow. */\n _noArrow = true;\n\n /** Whether the popover container needs an extra class for styling. */\n _additionalBodyClass: Nullable<string>;\n\n /** Whether the popover should be focusTrapped. */\n _focusTrapped = 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 = false;\n\n /** @hidden Property bind to popover's body. */\n _popoverBodyWidth: number;\n\n /** @hidden Property bind to popover's body. */\n _popoverBodyMinWidth: number;\n\n /** @hidden Property bind to popover's body. */\n _maxWidth: Nullable<number>;\n\n /** @hidden Property bind to popover's body. */\n _closeOnEscapeKey = false;\n\n /** @hidden Aria role for the popover body. */\n _bodyRole: Nullable<string> = 'dialog';\n\n /** @hidden Aria role for the popover body. */\n _bodyId: Nullable<string> = null;\n\n /** Classes added to arrow element. */\n _arrowClasses = '';\n\n /** @hidden text rendered inside popover's body. */\n text: Nullable<string> = null;\n\n /** @hidden template rendered inside popover's body. */\n _templateToDisplay: TemplateRef<any>;\n\n /** @hidden Whether the popover body is resizable. */\n _resizable = false;\n\n /** @hidden */\n _resizeHandleLocation: 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left' = 'bottom-right';\n\n /** Close event from popover body */\n onClose = new Subject<void>();\n\n /** @hidden */\n private _bodyComponentClasses: string | null = null;\n\n /** @hidden */\n constructor(\n readonly _elementRef: ElementRef,\n private _changeDetectorRef: ChangeDetectorRef,\n private readonly _renderer: Renderer2,\n readonly _contentDensityObserver: ContentDensityObserver\n ) {}\n\n /** Handler escape keydown */\n @HostListener('keyup', ['$event'])\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.next();\n }\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n if (this._scrollbar) {\n this._scrollbar._inPopover = true;\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 = `${position.overlayY === 'top' ? 'bottom' : 'top'}-${\n position.overlayX === 'start' ? 'right' : 'left'\n }`;\n if (this._noArrow) {\n this._arrowClasses = '';\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 = arrowClasses.join(' ');\n\n this.detectChanges();\n }\n\n /** @hidden */\n detectChanges(): void {\n if (!this._changeDetectorRef['destroyed']) {\n this._changeDetectorRef.detectChanges();\n }\n }\n\n /** @hidden */\n _focusFirstTabbableElement(forced = false): void {\n if (forced || this._focusAutoCapture) {\n this._cdkTrapFocus.focusTrap.focusFirstTabbableElement();\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\"></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 <ng-template [ngTemplateOutlet]=\"_templateToDisplay\"></ng-template>\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 } 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 isOpenChange: EventEmitter<boolean>;\n\n close(): void;\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Inject,\n OnDestroy,\n OnInit,\n TemplateRef,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\n\nimport { Subscription } from 'rxjs';\n\nimport { NgTemplateOutlet } from '@angular/common';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { TemplateModule } from '@fundamental-ngx/cdk/utils';\nimport {\n DialogBodyComponent,\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 TitleComponent,\n NgTemplateOutlet,\n DialogComponent,\n DialogBodyComponent,\n DialogHeaderComponent,\n DialogFooterComponent\n ]\n})\nexport class PopoverMobileComponent extends MobileModeBase<PopoverInterface> implements OnInit, OnDestroy {\n /** @hidden */\n @ViewChild('dialogTemplate')\n _dialogTemplate: TemplateRef<any>;\n\n /** @hidden\n * from mobile class can not prefix _,\n * to avoid build issues\n */\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 private _subscriptions = new Subscription();\n\n /** @hidden */\n get titleId(): string {\n return this.id + '-title';\n }\n\n /** @hidden */\n constructor(\n private _changeDetectorref: ChangeDetectorRef,\n @Inject(POPOVER_COMPONENT) _popoverComponent: PopoverInterface\n ) {\n super(_popoverComponent, MobileModeControl.POPOVER);\n }\n\n /** @hidden */\n ngOnInit(): void {\n this._listenOnPopoverOpenChange();\n\n this.title = this.mobileConfig.title || '';\n this.viewBody = this.childContent?.popoverBodyContentTemplate ?? null;\n this.viewFooter = this.childContent?.popoverFooterContentTemplate ?? null;\n\n this._changeDetectorref.markForCheck();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this.dialogRef?.close();\n this._subscriptions.unsubscribe();\n }\n\n /** Closes the Dialog and Popover component */\n close(): void {\n this.dialogRef.close();\n this._component.close();\n }\n\n /** @hidden Opens/closes the Dialog based on Popover isOpenChange events */\n private _listenOnPopoverOpenChange(): void {\n this._subscriptions.add(\n this._component.isOpenChange.pipe(takeUntilDestroyed(this._destroyRef)).subscribe((isOpen) => {\n if (isOpen) {\n this._openDialog();\n } else {\n this.dialogRef.hide(true);\n }\n })\n );\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 (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@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 ViewportRuler\n} from '@angular/cdk/overlay';\nimport { ComponentPortal, TemplatePortal } from '@angular/cdk/portal';\nimport {\n DestroyRef,\n ElementRef,\n Injectable,\n Injector,\n Optional,\n Renderer2,\n TemplateRef,\n ViewContainerRef,\n inject\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, PopoverPosition } from '@fundamental-ngx/core/shared';\n\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { BasePopoverClass, TriggerConfig } from '../base/base-popover.class';\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 extends BasePopoverClass {\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 */\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 _placementContainer: BasePopoverClass['placementContainer'];\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 get _triggerHtmlElement(): HTMLElement {\n return this._triggerElement instanceof ElementRef ? this._triggerElement.nativeElement : this._triggerElement;\n }\n\n /** @hidden */\n constructor(\n private _overlay: Overlay,\n private _renderer: Renderer2,\n private _viewportRuler: ViewportRuler,\n private _injector: Injector,\n @Optional() private _rtlService: RtlService,\n @Optional() private readonly _popoverContainer: PopoverContainerDirective\n ) {\n super();\n\n /** Merge observables - close or destroy */\n this._refresh$ = merge(this.isOpenChange, destroyObservable(this._destroyRef));\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 - in this case the intention is to use inheritance of BasePopoverClass in component\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?: BasePopoverClass,\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 const prevState = this.isOpen;\n this.isOpen = false;\n if (prevState !== this.isOpen) {\n this.isOpenChange.emit(this.isOpen);\n }\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 this.beforeOpen.emit();\n const position = this._getPositionStrategy();\n this._overlayRef = this._overlay.create(this._getOverlayConfig(position));\n\n if (this._placementContainer) {\n const placementElement =\n this._placementContainer instanceof ElementRef\n ? this._placementContainer.nativeElement\n : this._placementContainer;\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 const prevState = this.isOpen;\n this.isOpen = true;\n if (prevState !== this.isOpen) {\n this.isOpenChange.emit(this.isOpen);\n }\n\n this._detectChanges();\n\n this._listenOnClose();\n this._focusFirstTabbableElement();\n this._onLoad.next(this._getPopoverBody()._elementRef);\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: BasePopoverClass): void {\n this._placementContainer = config.placementContainer;\n const onlyChanged = Object.keys(new BasePopoverClass()).filter((key) => this[key] !== config[key]);\n\n if (onlyChanged.includes('isOpen')) {\n if (config.isOpen) {\n this.open();\n } else {\n this.close();\n }\n }\n\n if (onlyChanged.includes('placementContainer')) {\n this._placementContainer = config.placementContainer;\n }\n\n /** TODO\n * This overriding is dangerous thing and leads to unexpected behavior\n * We have to avoid this.\n */\n onlyChanged.forEach((key) => (this[key] = config[key]));\n\n if (onlyChanged.includes('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 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) {\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 if (!this._rtlService) {\n return 'ltr';\n }\n\n return this._rtlService.rtl.getValue() ? '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 this._passVariablesToBody();\n if (this._templateData) {\n this._overlayRef.attach(new TemplatePortal(this._templateData.template, this._templateData.container));\n }\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 closeEvents$ = merge(\n this._overlayRef.detachments(),\n this._getPopoverBody().onClose,\n this._outsideClicks$()\n );\n const finalizer$ = merge(this._stopCloseListening$, this._refresh$);\n closeEvents$.pipe(takeUntil(finalizer$)).subscribe(() => this.close());\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 if (this.cdkPositions) {\n return this.cdkPositions;\n }\n\n if (this.placement) {\n return [PopoverPosition.getCdkPlacement(this.placement, this._getDirection())];\n }\n\n return [];\n }\n\n /** @hidden */\n private _applyWidthOverlay(): void {\n const maxWidthLimit = this.maxWidth ? this.maxWidth : MAX_BODY_SIZE;\n const width = Math.min(this._getTriggerWidth(), maxWidthLimit);\n if (this.fillControlMode === 'at-least') {\n this._getPopoverBody()._popoverBodyMinWidth = width;\n } else if (this.fillControlMode === 'equal') {\n this._getPopoverBody()._popoverBodyWidth = width;\n }\n this._detectChanges();\n }\n\n /** @hidden */\n private _passVariablesToBody(): void {\n const body = this._getPopoverBody();\n body.text = this.stringContent;\n body._additionalBodyClass = this.additionalBodyClass;\n body._focusTrapped = this.focusTrapped;\n body._maxWidth = this.maxWidth;\n body._noArrow = this.noArrow;\n body._focusAutoCapture = this.focusAutoCapture;\n body._disableScrollbar = this.disableScrollbar;\n body._templateToDisplay = this.templateContent!;\n body._closeOnEscapeKey = this.closeOnEscapeKey;\n body._bodyRole = this._bodyRole;\n body._bodyId = this._bodyId;\n body._resizable = this.resizable;\n body._setBodyComponentClasses(this.additionalBodyComponentClasses);\n this._detectChanges();\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 _detectChanges(): void {\n if (this._getPopoverBody()) {\n this._getPopoverBody().detectChanges();\n }\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, Input, OnDestroy } from '@angular/core';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { Subscription } from 'rxjs';\nimport { startWith } from 'rxjs/operators';\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 = 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 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 this._isExpandedSubscription = popover.isOpenChange\n .pipe(startWith(popover.isOpen))\n .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 AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentRef,\n ContentChild,\n ElementRef,\n HostListener,\n Injector,\n Input,\n OnChanges,\n OnDestroy,\n Optional,\n Renderer2,\n SimpleChanges,\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';\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 equal from 'fast-deep-equal';\nimport { BasePopoverClass } from './base/base-popover.class';\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 '[attr.id]': 'id'\n },\n imports: [CdkOverlayOrigin, A11yModule]\n})\nexport class PopoverComponent\n extends BasePopoverClass\n implements AfterViewInit, AfterContentInit, OnDestroy, OnChanges\n{\n /** Tooltip for popover */\n @Input()\n title: string;\n\n /** Reference to popover trigger element */\n @Input()\n set trigger(trigger: ElementRef | HTMLElement) {\n if (equal(trigger, this._trigger)) {\n return;\n }\n this._trigger = trigger;\n this._popoverService.updateTriggerElement(this._trigger);\n }\n\n get trigger(): ElementRef | HTMLElement {\n return this._trigger;\n }\n\n /** Whether position shouldn't change, when popover approach the corner of page */\n @Input()\n fixedPosition = false;\n\n /** Id of the popover. If none is provided, one will be generated. */\n @Input()\n id: string = 'fd-popover-' + cdkPopoverUniqueId++;\n\n /** Whether the popover component should be displayed in mobile mode. */\n @Input()\n mobile = false;\n\n /** Config for the popover in mobile mode */\n @Input()\n mobileConfig: MobileModeConfig = { hasCloseButton: true };\n\n /**\n * Whether the popover should prevent page scrolling when space key is pressed.\n **/\n @Input()\n preventSpaceKeyScroll = true;\n\n /** @hidden */\n @ViewChild('templateRef', { read: TemplateRef })\n templateRef: TemplateRef<any>;\n\n /** @hidden */\n @ViewChild('container', { read: ViewContainerRef })\n container: ViewContainerRef;\n\n /** @hidden */\n @ViewChild(CdkOverlayOrigin)\n triggerOrigin: CdkOverlayOrigin;\n\n /** @hidden */\n @ContentChild(PopoverBodyComponent)\n popoverBody: PopoverBodyComponent;\n\n /** @hidden */\n @ContentChild(PopoverBodyDirective)\n popoverBodyDirective: PopoverBodyDirective;\n\n /** @hidden */\n @ContentChild(PopoverControlComponent)\n popoverControl: PopoverControlComponent;\n\n /** @hidden - template for Dialog body content */\n @ContentChild('popoverBodyContent')\n popoverBodyContentTemplate: TemplateRef<any>;\n\n /** @hidden - template for Dialog footer content */\n @ContentChild('popoverFooterContent')\n popoverFooterContentTemplate: TemplateRef<any>;\n\n /** @hidden */\n private get _triggerElement(): HTMLElement {\n return this._trigger instanceof ElementRef ? this._trigger.nativeElement : this._trigger;\n }\n\n /** @hidden */\n private _trigger: ElementRef | HTMLElement;\n\n /** @hidden */\n private _clickEventListener: null | (() => void);\n\n /** @hidden */\n private _mobileModeComponentRef: ComponentRef<PopoverMobileComponent>;\n\n /** @hidden */\n constructor(\n private readonly _popoverService: PopoverService,\n private readonly _cdr: ChangeDetectorRef,\n private readonly _rendered: Renderer2,\n private readonly _viewContainerRef: ViewContainerRef,\n private readonly _injector: Injector,\n @Optional() private readonly _dynamicComponentService: DynamicComponentService\n ) {\n super();\n }\n\n /** Handler escape keydown */\n @HostListener('keydown.escape', ['$event'])\n escapeKeydownHandler(event: KeyboardEvent): 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.next();\n }\n }\n\n /** @hidden */\n @HostListener('keydown.space', ['$event'])\n @HostListener('keydown.enter', ['$event'])\n onKeyDown(event: KeyboardEvent): 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 */\n ngAfterViewInit(): void {\n this._setupView();\n }\n\n /** @hidden */\n ngAfterContentInit(): void {\n if (this.popoverControl && this.triggers.includes('click')) {\n this.popoverControl._tabbable = true;\n }\n }\n\n /** @hidden */\n ngOnChanges(changes: SimpleChanges): void {\n this._popoverService.refreshConfiguration(this);\n\n if (changes.disableScrollbar && this.popoverBody && this.popoverBody._scrollbar) {\n this.popoverBody._scrollbar._inPopover = changes.disableScrollbar.currentValue;\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 this._cdr.markForCheck();\n }\n\n /** Closes the popover. */\n close(focusActiveElement = true): void {\n this._popoverService.close(focusActiveElement);\n this._cdr.markForCheck();\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 /** @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;\n }\n this._popoverService.initialise(\n this._triggerElement || this.triggerOrigin.elementRef,\n this,\n this._getPopoverBodyContent()\n );\n } else {\n this._setupMobileMode();\n }\n\n this._cdr.detectChanges();\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 if (this.popoverBody) {\n return {\n template: this.templateRef,\n container: this.container,\n popoverBody: this.popoverBody\n };\n }\n if (this.popoverBodyDirective) {\n return this.popoverBodyDirective.templateRef;\n }\n return null;\n }\n\n /** @hidden Open Popover in mobile mode */\n private async _setupMobileMode(): Promise<void> {\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 if (this.trigger && this.mobile) {\n this._clickEventListener = this._rendered.listen(this._triggerElement, 'click', () => this.toggle());\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@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":["i1","i2","i3.PopoverContainerDirective","i1.PopoverService"],"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/fundamental-ngx-core-popover.ts"],"sourcesContent":["import { ConnectedPosition, ScrollStrategy } from '@angular/cdk/overlay';\nimport { Directive, ElementRef, EventEmitter, HostBinding, Input, Output } from '@angular/core';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { Placement, PopoverFillMode } from '@fundamental-ngx/core/shared';\n\n@Directive()\nexport class BasePopoverClass {\n /** Whether to close the popover on router navigation start. */\n @Input()\n closeOnNavigation = true;\n\n /** Whether the popover is disabled. */\n @Input()\n @HostBinding('class.fd-popover-custom--disabled')\n disabled = false;\n\n /** Maximum width of popover body in px, prevents from overextending body by `fillControlMode` */\n @Input()\n maxWidth: Nullable<number> = null;\n\n /** Whether the popover should have an arrow. */\n @Input()\n noArrow = true;\n\n /** Whether the popover container needs an extra class for styling. */\n @Input()\n additionalBodyClass: string | null = null;\n\n /** Classes that should be applied to fd-popover-body component directly. */\n @Input()\n additionalBodyComponentClasses: string | null = null;\n\n /** Whether the popover container needs an extra class for styling. */\n @Input()\n additionalTriggerClass: string | null = null;\n\n /** Whether the popover should close when the escape key is pressed. */\n @Input()\n closeOnEscapeKey = true;\n\n /** Whether to wrap content with fd-scrollbar directive. */\n @Input()\n disableScrollbar = 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 @Input()\n placement: 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 @Input()\n triggers: (string | TriggerConfig)[] = ['click'];\n\n /** Whether the popover is open. Can be used through two-way binding. */\n @Input()\n isOpen = false;\n\n /** Whether the popover should close when a click is made outside its boundaries. */\n @Input()\n closeOnOutsideClick = true;\n\n /** Wether to apply a background overlay */\n @Input()\n applyOverlay = false;\n\n /** Whether the popover should be focusTrapped. */\n @Input()\n focusTrapped = 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 @Input()\n focusAutoCapture = false;\n\n /**\n * Whether to move the focus after popover is closed to the last focused element before popover was opened.\n */\n @Input()\n restoreFocusOnClose = true;\n\n /**\n * Scroll strategy, there are 4 accepted\n * - CloseScrollStrategy\n * - NoopScrollStrategy\n * - BlockScrollStrategy\n * - RepositionScrollStrategy ( default )\n */\n @Input()\n scrollStrategy: 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 @Input()\n cdkPositions: 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 @Input()\n fillControlMode: Nullable<PopoverFillMode> = null;\n\n /** The element to which the overlay is attached. By default it is body */\n @Input()\n appendTo: Nullable<ElementRef | Element> = null;\n\n /** Placement of the popover element. */\n @Input()\n placementContainer: Nullable<ElementRef | Element>;\n\n /** Whether position shouldn't change, when popover approach the corner of page */\n @Input()\n fixedPosition = false;\n\n /** Whether the popover body is resizable. */\n @Input()\n resizable = false;\n\n /** Event emitted when the state of the isOpen property changes. */\n @Output()\n isOpenChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n /** Event emitted right before the popover is being opened.\n * Useful for cases when component inside popover body needs to be initialized right BEFORE the opening of the popover. */\n @Output()\n beforeOpen = new EventEmitter();\n\n /** @hidden Aria role for the popover body. */\n _bodyRole: string | null = 'dialog';\n\n /** @hidden ID for the popover body. */\n _bodyId: string | null = null;\n}\n\n/**\n * Config for the trigger event, which allows to specify\n * whether an event should apply both for open and close actions or only some of them\n */\nexport interface TriggerConfig {\n trigger: string;\n openAction: boolean;\n closeAction: boolean;\n stopPropagation?: boolean;\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 AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n HostListener,\n Input,\n Renderer2,\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 { Subject } from 'rxjs';\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})\nexport class PopoverBodyComponent implements AfterViewInit {\n /** Minimum width of the popover body element. */\n @Input()\n minWidth: Nullable<string>;\n\n /** Maximum width of the popover body element. */\n @Input()\n maxWidth: Nullable<string>;\n\n /** Minimum height of the popover body element. */\n @Input()\n minHeight: Nullable<string>;\n\n /** Maximum height of the popover body element. */\n @Input()\n maxHeight: Nullable<string>;\n\n /** @hidden */\n @ViewChild(CdkTrapFocus)\n _cdkTrapFocus: CdkTrapFocus;\n\n /** @hidden */\n @ViewChild(ScrollbarDirective)\n _scrollbar: ScrollbarDirective;\n\n /** Whether to wrap content with fd-scrollbar directive. */\n _disableScrollbar = false;\n\n /** Whether the popover should have an arrow. */\n _noArrow = true;\n\n /** Whether the popover container needs an extra class for styling. */\n _additionalBodyClass: Nullable<string>;\n\n /** Whether the popover should be focusTrapped. */\n _focusTrapped = 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 = false;\n\n /** @hidden Property bind to popover's body. */\n _popoverBodyWidth: number;\n\n /** @hidden Property bind to popover's body. */\n _popoverBodyMinWidth: number;\n\n /** @hidden Property bind to popover's body. */\n _maxWidth: Nullable<number>;\n\n /** @hidden Property bind to popover's body. */\n _closeOnEscapeKey = false;\n\n /** @hidden Aria role for the popover body. */\n _bodyRole: Nullable<string> = 'dialog';\n\n /** @hidden Aria role for the popover body. */\n _bodyId: Nullable<string> = null;\n\n /** Classes added to arrow element. */\n _arrowClasses = '';\n\n /** @hidden text rendered inside popover's body. */\n text: Nullable<string> = null;\n\n /** @hidden template rendered inside popover's body. */\n _templateToDisplay: TemplateRef<any>;\n\n /** @hidden Whether the popover body is resizable. */\n _resizable = false;\n\n /** @hidden */\n _resizeHandleLocation: 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left' = 'bottom-right';\n\n /** Close event from popover body */\n onClose = new Subject<void>();\n\n /** @hidden */\n private _bodyComponentClasses: string | null = null;\n\n /** @hidden */\n constructor(\n readonly _elementRef: ElementRef,\n private _changeDetectorRef: ChangeDetectorRef,\n private readonly _renderer: Renderer2,\n readonly _contentDensityObserver: ContentDensityObserver\n ) {}\n\n /** Handler escape keydown */\n @HostListener('keydown', ['$event'])\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.next();\n }\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n if (this._scrollbar) {\n this._scrollbar._inPopover = true;\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 = `${position.overlayY === 'top' ? 'bottom' : 'top'}-${\n position.overlayX === 'start' ? 'right' : 'left'\n }`;\n if (this._noArrow) {\n this._arrowClasses = '';\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 = arrowClasses.join(' ');\n\n this.detectChanges();\n }\n\n /** @hidden */\n detectChanges(): void {\n if (!this._changeDetectorRef['destroyed']) {\n this._changeDetectorRef.detectChanges();\n }\n }\n\n /** @hidden */\n _focusFirstTabbableElement(forced = false): void {\n if (forced || this._focusAutoCapture) {\n this._cdkTrapFocus.focusTrap.focusFirstTabbableElement();\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\"></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 <ng-template [ngTemplateOutlet]=\"_templateToDisplay\"></ng-template>\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 } 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 isOpenChange: EventEmitter<boolean>;\n\n close(): void;\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Inject,\n OnDestroy,\n OnInit,\n TemplateRef,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\n\nimport { Subscription } from 'rxjs';\n\nimport { NgTemplateOutlet } from '@angular/common';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { TemplateModule } from '@fundamental-ngx/cdk/utils';\nimport {\n DialogBodyComponent,\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 TitleComponent,\n NgTemplateOutlet,\n DialogComponent,\n DialogBodyComponent,\n DialogHeaderComponent,\n DialogFooterComponent\n ]\n})\nexport class PopoverMobileComponent extends MobileModeBase<PopoverInterface> implements OnInit, OnDestroy {\n /** @hidden */\n @ViewChild('dialogTemplate')\n _dialogTemplate: TemplateRef<any>;\n\n /** @hidden\n * from mobile class can not prefix _,\n * to avoid build issues\n */\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 private _subscriptions = new Subscription();\n\n /** @hidden */\n get titleId(): string {\n return this.id + '-title';\n }\n\n /** @hidden */\n constructor(\n private _changeDetectorref: ChangeDetectorRef,\n @Inject(POPOVER_COMPONENT) _popoverComponent: PopoverInterface\n ) {\n super(_popoverComponent, MobileModeControl.POPOVER);\n }\n\n /** @hidden */\n ngOnInit(): void {\n this._listenOnPopoverOpenChange();\n\n this.title = this.mobileConfig.title || '';\n this.viewBody = this.childContent?.popoverBodyContentTemplate ?? null;\n this.viewFooter = this.childContent?.popoverFooterContentTemplate ?? null;\n\n this._changeDetectorref.markForCheck();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this.dialogRef?.close();\n this._subscriptions.unsubscribe();\n }\n\n /** Closes the Dialog and Popover component */\n close(): void {\n this.dialogRef.close();\n this._component.close();\n }\n\n /** @hidden Opens/closes the Dialog based on Popover isOpenChange events */\n private _listenOnPopoverOpenChange(): void {\n this._subscriptions.add(\n this._component.isOpenChange.pipe(takeUntilDestroyed(this._destroyRef)).subscribe((isOpen) => {\n if (isOpen) {\n this._openDialog();\n } else {\n this.dialogRef.hide(true);\n }\n })\n );\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 (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@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 ViewportRuler\n} from '@angular/cdk/overlay';\nimport { ComponentPortal, TemplatePortal } from '@angular/cdk/portal';\nimport {\n DestroyRef,\n ElementRef,\n Injectable,\n Injector,\n Optional,\n Renderer2,\n TemplateRef,\n ViewContainerRef,\n inject\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, PopoverPosition } from '@fundamental-ngx/core/shared';\n\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { BasePopoverClass, TriggerConfig } from '../base/base-popover.class';\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 extends BasePopoverClass {\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 */\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 _placementContainer: BasePopoverClass['placementContainer'];\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 get _triggerHtmlElement(): HTMLElement {\n return this._triggerElement instanceof ElementRef ? this._triggerElement.nativeElement : this._triggerElement;\n }\n\n /** @hidden */\n constructor(\n private _overlay: Overlay,\n private _renderer: Renderer2,\n private _viewportRuler: ViewportRuler,\n private _injector: Injector,\n @Optional() private _rtlService: RtlService,\n @Optional() private readonly _popoverContainer: PopoverContainerDirective\n ) {\n super();\n\n /** Merge observables - close or destroy */\n this._refresh$ = merge(this.isOpenChange, destroyObservable(this._destroyRef));\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 - in this case the intention is to use inheritance of BasePopoverClass in component\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?: BasePopoverClass,\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 const prevState = this.isOpen;\n this.isOpen = false;\n if (prevState !== this.isOpen) {\n this.isOpenChange.emit(this.isOpen);\n }\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 this.beforeOpen.emit();\n const position = this._getPositionStrategy();\n this._overlayRef = this._overlay.create(this._getOverlayConfig(position));\n\n if (this._placementContainer) {\n const placementElement =\n this._placementContainer instanceof ElementRef\n ? this._placementContainer.nativeElement\n : this._placementContainer;\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 const prevState = this.isOpen;\n this.isOpen = true;\n if (prevState !== this.isOpen) {\n this.isOpenChange.emit(this.isOpen);\n }\n\n this._detectChanges();\n\n this._listenOnClose();\n this._focusFirstTabbableElement();\n this._onLoad.next(this._getPopoverBody()._elementRef);\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: BasePopoverClass): void {\n this._placementContainer = config.placementContainer;\n const onlyChanged = Object.keys(new BasePopoverClass()).filter((key) => this[key] !== config[key]);\n\n if (onlyChanged.includes('isOpen')) {\n if (config.isOpen) {\n this.open();\n } else {\n this.close();\n }\n }\n\n if (onlyChanged.includes('placementContainer')) {\n this._placementContainer = config.placementContainer;\n }\n\n /** TODO\n * This overriding is dangerous thing and leads to unexpected behavior\n * We have to avoid this.\n */\n onlyChanged.forEach((key) => (this[key] = config[key]));\n\n if (onlyChanged.includes('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 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) {\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 if (!this._rtlService) {\n return 'ltr';\n }\n\n return this._rtlService.rtl.getValue() ? '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 this._passVariablesToBody();\n if (this._templateData) {\n this._overlayRef.attach(new TemplatePortal(this._templateData.template, this._templateData.container));\n }\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 closeEvents$ = merge(\n this._overlayRef.detachments(),\n this._getPopoverBody().onClose,\n this._outsideClicks$()\n );\n const finalizer$ = merge(this._stopCloseListening$, this._refresh$);\n closeEvents$.pipe(takeUntil(finalizer$)).subscribe(() => this.close());\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 if (this.cdkPositions) {\n return this.cdkPositions;\n }\n\n if (this.placement) {\n return [PopoverPosition.getCdkPlacement(this.placement, this._getDirection())];\n }\n\n return [];\n }\n\n /** @hidden */\n private _applyWidthOverlay(): void {\n const maxWidthLimit = this.maxWidth ? this.maxWidth : MAX_BODY_SIZE;\n const width = Math.min(this._getTriggerWidth(), maxWidthLimit);\n if (this.fillControlMode === 'at-least') {\n this._getPopoverBody()._popoverBodyMinWidth = width;\n } else if (this.fillControlMode === 'equal') {\n this._getPopoverBody()._popoverBodyWidth = width;\n }\n this._detectChanges();\n }\n\n /** @hidden */\n private _passVariablesToBody(): void {\n const body = this._getPopoverBody();\n body.text = this.stringContent;\n body._additionalBodyClass = this.additionalBodyClass;\n body._focusTrapped = this.focusTrapped;\n body._maxWidth = this.maxWidth;\n body._noArrow = this.noArrow;\n body._focusAutoCapture = this.focusAutoCapture;\n body._disableScrollbar = this.disableScrollbar;\n body._templateToDisplay = this.templateContent!;\n body._closeOnEscapeKey = this.closeOnEscapeKey;\n body._bodyRole = this._bodyRole;\n body._bodyId = this._bodyId;\n body._resizable = this.resizable;\n body._setBodyComponentClasses(this.additionalBodyComponentClasses);\n this._detectChanges();\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 _detectChanges(): void {\n if (this._getPopoverBody()) {\n this._getPopoverBody().detectChanges();\n }\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, Input, OnDestroy } from '@angular/core';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { Subscription } from 'rxjs';\nimport { startWith } from 'rxjs/operators';\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 = 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 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 this._isExpandedSubscription = popover.isOpenChange\n .pipe(startWith(popover.isOpen))\n .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 AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentRef,\n ContentChild,\n ElementRef,\n HostListener,\n Injector,\n Input,\n OnChanges,\n OnDestroy,\n Optional,\n Renderer2,\n SimpleChanges,\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';\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 equal from 'fast-deep-equal';\nimport { BasePopoverClass } from './base/base-popover.class';\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 '[attr.id]': 'id'\n },\n imports: [CdkOverlayOrigin, A11yModule]\n})\nexport class PopoverComponent\n extends BasePopoverClass\n implements AfterViewInit, AfterContentInit, OnDestroy, OnChanges\n{\n /** Tooltip for popover */\n @Input()\n title: string;\n\n /** Reference to popover trigger element */\n @Input()\n set trigger(trigger: ElementRef | HTMLElement) {\n if (equal(trigger, this._trigger)) {\n return;\n }\n this._trigger = trigger;\n this._popoverService.updateTriggerElement(this._trigger);\n }\n\n get trigger(): ElementRef | HTMLElement {\n return this._trigger;\n }\n\n /** Whether position shouldn't change, when popover approach the corner of page */\n @Input()\n fixedPosition = false;\n\n /** Id of the popover. If none is provided, one will be generated. */\n @Input()\n id: string = 'fd-popover-' + cdkPopoverUniqueId++;\n\n /** Whether the popover component should be displayed in mobile mode. */\n @Input()\n mobile = false;\n\n /** Config for the popover in mobile mode */\n @Input()\n mobileConfig: MobileModeConfig = { hasCloseButton: true };\n\n /**\n * Whether the popover should prevent page scrolling when space key is pressed.\n **/\n @Input()\n preventSpaceKeyScroll = true;\n\n /** @hidden */\n @ViewChild('templateRef', { read: TemplateRef })\n templateRef: TemplateRef<any>;\n\n /** @hidden */\n @ViewChild('container', { read: ViewContainerRef })\n container: ViewContainerRef;\n\n /** @hidden */\n @ViewChild(CdkOverlayOrigin)\n triggerOrigin: CdkOverlayOrigin;\n\n /** @hidden */\n @ContentChild(PopoverBodyComponent)\n popoverBody: PopoverBodyComponent;\n\n /** @hidden */\n @ContentChild(PopoverBodyDirective)\n popoverBodyDirective: PopoverBodyDirective;\n\n /** @hidden */\n @ContentChild(PopoverControlComponent)\n popoverControl: PopoverControlComponent;\n\n /** @hidden - template for Dialog body content */\n @ContentChild('popoverBodyContent')\n popoverBodyContentTemplate: TemplateRef<any>;\n\n /** @hidden - template for Dialog footer content */\n @ContentChild('popoverFooterContent')\n popoverFooterContentTemplate: TemplateRef<any>;\n\n /** @hidden */\n private get _triggerElement(): HTMLElement {\n return this._trigger instanceof ElementRef ? this._trigger.nativeElement : this._trigger;\n }\n\n /** @hidden */\n private _trigger: ElementRef | HTMLElement;\n\n /** @hidden */\n private _clickEventListener: null | (() => void);\n\n /** @hidden */\n private _mobileModeComponentRef: ComponentRef<PopoverMobileComponent>;\n\n /** @hidden */\n constructor(\n private readonly _popoverService: PopoverService,\n private readonly _cdr: ChangeDetectorRef,\n private readonly _rendered: Renderer2,\n private readonly _viewContainerRef: ViewContainerRef,\n private readonly _injector: Injector,\n @Optional() private readonly _dynamicComponentService: DynamicComponentService\n ) {\n super();\n }\n\n /** Handler escape keydown */\n @HostListener('keydown.escape', ['$event'])\n escapeKeydownHandler(event: KeyboardEvent): 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.next();\n }\n }\n\n /** @hidden */\n @HostListener('keydown.space', ['$event'])\n @HostListener('keydown.enter', ['$event'])\n onKeyDown(event: KeyboardEvent): 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 */\n ngAfterViewInit(): void {\n this._setupView();\n }\n\n /** @hidden */\n ngAfterContentInit(): void {\n if (this.popoverControl && this.triggers.includes('click')) {\n this.popoverControl._tabbable = true;\n }\n }\n\n /** @hidden */\n ngOnChanges(changes: SimpleChanges): void {\n this._popoverService.refreshConfiguration(this);\n\n if (changes.disableScrollbar && this.popoverBody && this.popoverBody._scrollbar) {\n this.popoverBody._scrollbar._inPopover = changes.disableScrollbar.currentValue;\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 this._cdr.markForCheck();\n }\n\n /** Closes the popover. */\n close(focusActiveElement = true): void {\n this._popoverService.close(focusActiveElement);\n this._cdr.markForCheck();\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 /** @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;\n }\n this._popoverService.initialise(\n this._triggerElement || this.triggerOrigin.elementRef,\n this,\n this._getPopoverBodyContent()\n );\n } else {\n this._setupMobileMode();\n }\n\n this._cdr.detectChanges();\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 if (this.popoverBody) {\n return {\n template: this.templateRef,\n container: this.container,\n popoverBody: this.popoverBody\n };\n }\n if (this.popoverBodyDirective) {\n return this.popoverBodyDirective.templateRef;\n }\n return null;\n }\n\n /** @hidden Open Popover in mobile mode */\n private async _setupMobileMode(): Promise<void> {\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 if (this.trigger && this.mobile) {\n this._clickEventListener = this._rendered.listen(this._triggerElement, 'click', () => this.toggle());\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@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":["i1","i2","i3.PopoverContainerDirective","i1.PopoverService"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fundamental-ngx/core",
|
|
3
|
-
"version": "0.55.
|
|
3
|
+
"version": "0.55.9",
|
|
4
4
|
"schematics": "./schematics/collection.json",
|
|
5
5
|
"ng-update": {
|
|
6
6
|
"migrations": "./schematics/migrations.json"
|
|
@@ -23,8 +23,8 @@
|
|
|
23
23
|
"@angular/forms": "^19.0.0",
|
|
24
24
|
"@angular/platform-browser": "^19.0.0",
|
|
25
25
|
"@angular/router": "^19.0.0",
|
|
26
|
-
"@fundamental-ngx/cdk": "0.55.
|
|
27
|
-
"@fundamental-ngx/i18n": "0.55.
|
|
26
|
+
"@fundamental-ngx/cdk": "0.55.9",
|
|
27
|
+
"@fundamental-ngx/i18n": "0.55.9",
|
|
28
28
|
"@sap-theming/theming-base-content": "^11.28.0",
|
|
29
29
|
"fundamental-styles": "0.39.2",
|
|
30
30
|
"rxjs": "^7.8.0"
|
|
@@ -147,14 +147,14 @@
|
|
|
147
147
|
"types": "./file-uploader/index.d.ts",
|
|
148
148
|
"default": "./fesm2022/fundamental-ngx-core-file-uploader.mjs"
|
|
149
149
|
},
|
|
150
|
-
"./flexible-column-layout": {
|
|
151
|
-
"types": "./flexible-column-layout/index.d.ts",
|
|
152
|
-
"default": "./fesm2022/fundamental-ngx-core-flexible-column-layout.mjs"
|
|
153
|
-
},
|
|
154
150
|
"./fixed-card-layout": {
|
|
155
151
|
"types": "./fixed-card-layout/index.d.ts",
|
|
156
152
|
"default": "./fesm2022/fundamental-ngx-core-fixed-card-layout.mjs"
|
|
157
153
|
},
|
|
154
|
+
"./flexible-column-layout": {
|
|
155
|
+
"types": "./flexible-column-layout/index.d.ts",
|
|
156
|
+
"default": "./fesm2022/fundamental-ngx-core-flexible-column-layout.mjs"
|
|
157
|
+
},
|
|
158
158
|
"./form": {
|
|
159
159
|
"types": "./form/index.d.ts",
|
|
160
160
|
"default": "./fesm2022/fundamental-ngx-core-form.mjs"
|
|
@@ -175,22 +175,22 @@
|
|
|
175
175
|
"types": "./icon/index.d.ts",
|
|
176
176
|
"default": "./fesm2022/fundamental-ngx-core-icon.mjs"
|
|
177
177
|
},
|
|
178
|
-
"./
|
|
179
|
-
"types": "./
|
|
180
|
-
"default": "./fesm2022/fundamental-ngx-core-
|
|
178
|
+
"./illustrated-message": {
|
|
179
|
+
"types": "./illustrated-message/index.d.ts",
|
|
180
|
+
"default": "./fesm2022/fundamental-ngx-core-illustrated-message.mjs"
|
|
181
181
|
},
|
|
182
182
|
"./infinite-scroll": {
|
|
183
183
|
"types": "./infinite-scroll/index.d.ts",
|
|
184
184
|
"default": "./fesm2022/fundamental-ngx-core-infinite-scroll.mjs"
|
|
185
185
|
},
|
|
186
|
+
"./info-label": {
|
|
187
|
+
"types": "./info-label/index.d.ts",
|
|
188
|
+
"default": "./fesm2022/fundamental-ngx-core-info-label.mjs"
|
|
189
|
+
},
|
|
186
190
|
"./inline-help": {
|
|
187
191
|
"types": "./inline-help/index.d.ts",
|
|
188
192
|
"default": "./fesm2022/fundamental-ngx-core-inline-help.mjs"
|
|
189
193
|
},
|
|
190
|
-
"./illustrated-message": {
|
|
191
|
-
"types": "./illustrated-message/index.d.ts",
|
|
192
|
-
"default": "./fesm2022/fundamental-ngx-core-illustrated-message.mjs"
|
|
193
|
-
},
|
|
194
194
|
"./input-group": {
|
|
195
195
|
"types": "./input-group/index.d.ts",
|
|
196
196
|
"default": "./fesm2022/fundamental-ngx-core-input-group.mjs"
|
|
@@ -235,6 +235,10 @@
|
|
|
235
235
|
"types": "./micro-process-flow/index.d.ts",
|
|
236
236
|
"default": "./fesm2022/fundamental-ngx-core-micro-process-flow.mjs"
|
|
237
237
|
},
|
|
238
|
+
"./mobile-mode": {
|
|
239
|
+
"types": "./mobile-mode/index.d.ts",
|
|
240
|
+
"default": "./fesm2022/fundamental-ngx-core-mobile-mode.mjs"
|
|
241
|
+
},
|
|
238
242
|
"./multi-combobox": {
|
|
239
243
|
"types": "./multi-combobox/index.d.ts",
|
|
240
244
|
"default": "./fesm2022/fundamental-ngx-core-multi-combobox.mjs"
|
|
@@ -243,10 +247,6 @@
|
|
|
243
247
|
"types": "./multi-input/index.d.ts",
|
|
244
248
|
"default": "./fesm2022/fundamental-ngx-core-multi-input.mjs"
|
|
245
249
|
},
|
|
246
|
-
"./mobile-mode": {
|
|
247
|
-
"types": "./mobile-mode/index.d.ts",
|
|
248
|
-
"default": "./fesm2022/fundamental-ngx-core-mobile-mode.mjs"
|
|
249
|
-
},
|
|
250
250
|
"./nested-list": {
|
|
251
251
|
"types": "./nested-list/index.d.ts",
|
|
252
252
|
"default": "./fesm2022/fundamental-ngx-core-nested-list.mjs"
|