@fundamental-ngx/core 0.61.4 → 0.61.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. package/fesm2022/fundamental-ngx-core-breadcrumb.mjs +1 -1
  2. package/fesm2022/fundamental-ngx-core-breadcrumb.mjs.map +1 -1
  3. package/fesm2022/fundamental-ngx-core-carousel.mjs +7 -8
  4. package/fesm2022/fundamental-ngx-core-carousel.mjs.map +1 -1
  5. package/fesm2022/fundamental-ngx-core-form.mjs +10 -16
  6. package/fesm2022/fundamental-ngx-core-form.mjs.map +1 -1
  7. package/fesm2022/fundamental-ngx-core-icon.mjs +2 -2
  8. package/fesm2022/fundamental-ngx-core-icon.mjs.map +1 -1
  9. package/fesm2022/fundamental-ngx-core-inline-help.mjs +34 -15
  10. package/fesm2022/fundamental-ngx-core-inline-help.mjs.map +1 -1
  11. package/fesm2022/fundamental-ngx-core-menu.mjs +40 -28
  12. package/fesm2022/fundamental-ngx-core-menu.mjs.map +1 -1
  13. package/fesm2022/fundamental-ngx-core-multi-combobox.mjs +75 -31
  14. package/fesm2022/fundamental-ngx-core-multi-combobox.mjs.map +1 -1
  15. package/fesm2022/fundamental-ngx-core-popover.mjs +152 -16
  16. package/fesm2022/fundamental-ngx-core-popover.mjs.map +1 -1
  17. package/fesm2022/fundamental-ngx-core-product-switch.mjs +23 -27
  18. package/fesm2022/fundamental-ngx-core-product-switch.mjs.map +1 -1
  19. package/fesm2022/fundamental-ngx-core-shellbar.mjs +2 -2
  20. package/fesm2022/fundamental-ngx-core-shellbar.mjs.map +1 -1
  21. package/fesm2022/fundamental-ngx-core-tabs.mjs +19 -25
  22. package/fesm2022/fundamental-ngx-core-tabs.mjs.map +1 -1
  23. package/package.json +3 -3
  24. package/types/fundamental-ngx-core-carousel.d.ts +2 -3
  25. package/types/fundamental-ngx-core-form.d.ts +7 -10
  26. package/types/fundamental-ngx-core-inline-help.d.ts +20 -15
  27. package/types/fundamental-ngx-core-menu.d.ts +17 -9
  28. package/types/fundamental-ngx-core-multi-combobox.d.ts +18 -1
  29. package/types/fundamental-ngx-core-popover.d.ts +48 -3
  30. package/types/fundamental-ngx-core-product-switch.d.ts +20 -24
  31. package/types/fundamental-ngx-core-tabs.d.ts +5 -10
@@ -1 +1 @@
1
- {"version":3,"file":"fundamental-ngx-core-icon.mjs","sources":["../../../../libs/core/icon/tokens.ts","../../../../libs/core/icon/icon.component.ts","../../../../libs/core/icon/icon.module.ts","../../../../libs/core/icon/fundamental-ngx-core-icon.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nexport const FD_ICON_COMPONENT = new InjectionToken('FdIconComponent');\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n ViewEncapsulation,\n computed,\n inject,\n input,\n model,\n signal\n} from '@angular/core';\nimport { HasElementRef, Nullable } from '@fundamental-ngx/cdk/utils';\nimport { FD_ICON_COMPONENT } from './tokens';\n\nexport type IconFont = 'SAP-icons' | 'BusinessSuiteInAppSymbols' | 'SAP-icons-TNT';\n\nexport const FD_DEFAULT_ICON_FONT_FAMILY = 'SAP-icons';\n\nexport type IconColor =\n | 'default'\n | 'contrast'\n | 'non-interactive'\n | 'tile'\n | 'marker'\n | 'critical'\n | 'negative'\n | 'neutral'\n | 'positive'\n | 'information';\n\nconst SAP_ICONS_PREFIX = 'sap-icon';\n\nexport const FD_ICON_FONT_FAMILY: Record<IconFont, string> = {\n 'SAP-icons': SAP_ICONS_PREFIX,\n BusinessSuiteInAppSymbols: `${SAP_ICONS_PREFIX}-businessSuiteInAppSymbols`,\n 'SAP-icons-TNT': `${SAP_ICONS_PREFIX}-TNT`\n};\n\n/**\n * Helper function to build icon css class.\n * @param font Font family\n * @param glyph Icon\n * @param color Icon color\n * @param background Icon background color\n * @returns Computed css class string.\n */\nexport function fdBuildIconClass(\n font: IconFont,\n glyph: any,\n color?: IconColor | null,\n background?: IconColor | null\n): string {\n const fontFamily = FD_ICON_FONT_FAMILY[font];\n\n const returnIconClass = [`${fontFamily}--${glyph}`];\n\n if (color) {\n returnIconClass.push(`${fontFamily}--color-${color}`);\n }\n\n if (background) {\n returnIconClass.push(`${fontFamily}--background-${background}`);\n }\n\n return returnIconClass.join(' ');\n}\n\n/**\n * The component that represents an icon.\n *\n * ```html\n * <fd-icon font=\"SAP-icons-TNT\" glyph=\"exceptions\"></fd-icon>\n * ```\n */\n@Component({\n selector: 'fd-icon',\n template: ``,\n styleUrl: './icon.component.scss',\n providers: [\n {\n provide: FD_ICON_COMPONENT,\n useExisting: IconComponent\n }\n ],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.aria-label]': 'ariaLabel()',\n '[attr.aria-hidden]': 'ariaHidden()',\n '[class.fd-list__navigation-item-icon]': '_navigationItemIcon()',\n '[class]': '_cssClasses()'\n }\n})\nexport class IconComponent implements HasElementRef {\n /** The icon name to display. See the icon page for the list of icons\n * here: https://sap.github.io/fundamental-ngx/icon\n * */\n readonly glyph = input<any>();\n\n /**\n * The icon font\n * Options include: 'SAP-icons', 'BusinessSuiteInAppSymbols' and 'SAP-icons-TNT'\n */\n readonly font = input<IconFont>(FD_DEFAULT_ICON_FONT_FAMILY);\n\n /** Icon color */\n readonly color = input<IconColor | null>(null);\n\n /** Icon color */\n readonly background = input<IconColor | null>(null);\n\n /** user's custom classes */\n readonly class = input<string>();\n\n /** Aria-label for Icon. */\n readonly ariaLabel = input<Nullable<string>>();\n\n /** Aria-hidden attribute for Icon element. */\n readonly ariaHidden = model<Nullable<boolean>>();\n\n /** @hidden */\n readonly elementRef = inject(ElementRef<HTMLElement>);\n\n /** Whether or not this icon is for a list navigation item. */\n readonly _navigationItemIcon = signal(false);\n\n /** @hidden Computed CSS classes */\n protected readonly _cssClasses = computed<string>(() => {\n const returnClass = [this.class()];\n\n if (!this.glyph()) {\n return this.class() || '';\n }\n\n returnClass.push(this._fontIconClass());\n\n return returnClass.join(' ');\n });\n\n /** @hidden */\n private readonly _fontIconClass = computed<string>(() =>\n fdBuildIconClass(this.font(), this.glyph(), this.color(), this.background())\n );\n}\n","import { NgModule } from '@angular/core';\n\nimport { IconComponent } from './icon.component';\n\n/**\n * @deprecated\n * Use direct import of `IconComponent`\n */\n@NgModule({\n imports: [IconComponent],\n exports: [IconComponent]\n})\nexport class IconModule {}\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-icon.mjs","sources":["../../../../libs/core/icon/tokens.ts","../../../../libs/core/icon/icon.component.ts","../../../../libs/core/icon/icon.module.ts","../../../../libs/core/icon/fundamental-ngx-core-icon.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nexport const FD_ICON_COMPONENT = new InjectionToken('FdIconComponent');\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n ViewEncapsulation,\n computed,\n inject,\n input,\n model,\n signal\n} from '@angular/core';\nimport { HasElementRef, Nullable } from '@fundamental-ngx/cdk/utils';\nimport { FD_ICON_COMPONENT } from './tokens';\n\nexport type IconFont = 'SAP-icons' | 'BusinessSuiteInAppSymbols' | 'SAP-icons-TNT';\n\nexport const FD_DEFAULT_ICON_FONT_FAMILY = 'SAP-icons';\n\nexport type IconColor =\n | 'default'\n | 'contrast'\n | 'non-interactive'\n | 'tile'\n | 'marker'\n | 'critical'\n | 'negative'\n | 'neutral'\n | 'positive'\n | 'information';\n\nconst SAP_ICONS_PREFIX = 'sap-icon';\n\nexport const FD_ICON_FONT_FAMILY: Record<IconFont, string> = {\n 'SAP-icons': SAP_ICONS_PREFIX,\n BusinessSuiteInAppSymbols: `${SAP_ICONS_PREFIX}-businessSuiteInAppSymbols`,\n 'SAP-icons-TNT': `${SAP_ICONS_PREFIX}-TNT`\n};\n\n/**\n * Helper function to build icon css class.\n * @param font Font family\n * @param glyph Icon\n * @param color Icon color\n * @param background Icon background color\n * @returns Computed css class string.\n */\nexport function fdBuildIconClass(\n font: IconFont,\n glyph: any,\n color?: IconColor | null,\n background?: IconColor | null\n): string {\n const fontFamily = FD_ICON_FONT_FAMILY[font];\n\n const returnIconClass = [`${fontFamily}--${glyph}`];\n\n if (color) {\n returnIconClass.push(`${fontFamily}--color-${color}`);\n }\n\n if (background) {\n returnIconClass.push(`${fontFamily}--background-${background}`);\n }\n\n return returnIconClass.join(' ');\n}\n\n/**\n * The component that represents an icon.\n *\n * ```html\n * <fd-icon font=\"SAP-icons-TNT\" glyph=\"exceptions\"></fd-icon>\n * ```\n */\n@Component({\n selector: 'fd-icon',\n template: ``,\n styleUrl: './icon.component.scss',\n providers: [\n {\n provide: FD_ICON_COMPONENT,\n useExisting: IconComponent\n }\n ],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.aria-label]': 'ariaLabel()',\n '[attr.aria-hidden]': 'ariaHidden()',\n '[class.fd-list__navigation-item-icon]': '_navigationItemIcon()',\n '[class]': '_cssClasses()'\n }\n})\nexport class IconComponent implements HasElementRef {\n /** The icon name to display. See the icon page for the list of icons\n * here: https://sap.github.io/fundamental-ngx/icon\n * */\n readonly glyph = input<any>();\n\n /**\n * The icon font\n * Options include: 'SAP-icons', 'BusinessSuiteInAppSymbols' and 'SAP-icons-TNT'\n */\n readonly font = input<IconFont>(FD_DEFAULT_ICON_FONT_FAMILY);\n\n /** Icon color */\n readonly color = input<IconColor | null>(null);\n\n /** Icon color */\n readonly background = input<IconColor | null>(null);\n\n /** user's custom classes */\n readonly class = input<string>();\n\n /** Aria-label for Icon. */\n readonly ariaLabel = input<Nullable<string>>();\n\n /** Aria-hidden attribute for Icon element. */\n readonly ariaHidden = model<Nullable<boolean>>();\n\n /** @hidden */\n readonly elementRef = inject(ElementRef<HTMLElement>);\n\n /** Whether or not this icon is for a list navigation item. */\n readonly _navigationItemIcon = signal(false);\n\n /** @hidden Computed CSS classes */\n protected readonly _cssClasses = computed<string>(() => {\n const returnClass = [this.class()];\n\n if (!this.glyph()) {\n return this.class() || '';\n }\n\n returnClass.push(this._fontIconClass());\n\n return returnClass.join(' ');\n });\n\n /** @hidden */\n private readonly _fontIconClass = computed<string>(() =>\n fdBuildIconClass(this.font(), this.glyph(), this.color(), this.background())\n );\n}\n","import { NgModule } from '@angular/core';\n\nimport { IconComponent } from './icon.component';\n\n/**\n * @deprecated\n * Use direct import of `IconComponent`\n */\n@NgModule({\n imports: [IconComponent],\n exports: [IconComponent]\n})\nexport class IconModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { input, booleanAttribute, computed, inject, ElementRef, Renderer2, ViewContainerRef, effect, TemplateRef, Directive, NgModule } from '@angular/core';
3
3
  import { FD_ICON_COMPONENT } from '@fundamental-ngx/core/icon';
4
- import { PopoverService } from '@fundamental-ngx/core/popover';
4
+ import { buildPopoverConfig, PopoverService } from '@fundamental-ngx/core/popover';
5
5
 
6
6
  const INLINE_HELP_CLASS = 'fd-popover__body--inline-help fd-inline-help__content';
7
7
  const INLINE_HELP_ICON_CLASS = 'fd-popover__body--inline-help-with-icon';
@@ -31,7 +31,7 @@ class InlineHelpDirective {
31
31
  */
32
32
  this.triggers = input(DEFAULT_TRIGGERS, ...(ngDevMode ? [{ debugName: "triggers" }] : []));
33
33
  /** Whether the popover should close when a click is made outside its boundaries. */
34
- this.closeOnOutsideClick = input(false, ...(ngDevMode ? [{ debugName: "closeOnOutsideClick" }] : []));
34
+ this.closeOnOutsideClick = input(false, { ...(ngDevMode ? { debugName: "closeOnOutsideClick" } : {}), transform: booleanAttribute });
35
35
  /** Additional CSS class(es) to apply to the popover body. */
36
36
  this.additionalBodyClass = input(null, ...(ngDevMode ? [{ debugName: "additionalBodyClass" }] : []));
37
37
  /** Whether the inline help is disabled. */
@@ -40,6 +40,20 @@ class InlineHelpDirective {
40
40
  this.bodyId = input(`fd-inline-help-${inlineHelpId++}`, ...(ngDevMode ? [{ debugName: "bodyId" }] : []));
41
41
  /** aria-role for the Inline Help Popover body */
42
42
  this.bodyRole = input('tooltip', ...(ngDevMode ? [{ debugName: "bodyRole" }] : []));
43
+ /** Whether the popover should have an arrow. */
44
+ this.noArrow = input(false, { ...(ngDevMode ? { debugName: "noArrow" } : {}), transform: booleanAttribute });
45
+ /** Whether the popover should close when the escape key is pressed. */
46
+ this.closeOnEscapeKey = input(false, { ...(ngDevMode ? { debugName: "closeOnEscapeKey" } : {}), transform: booleanAttribute });
47
+ /** Whether to close the popover on router navigation start. */
48
+ this.closeOnNavigation = input(true, { ...(ngDevMode ? { debugName: "closeOnNavigation" } : {}), transform: booleanAttribute });
49
+ /** Whether to restore focus to the previously focused element when the popover closes. */
50
+ this.restoreFocusOnClose = input(true, { ...(ngDevMode ? { debugName: "restoreFocusOnClose" } : {}), transform: booleanAttribute });
51
+ /** The element to which the overlay is attached. By default it is body. */
52
+ this.appendTo = input(null, ...(ngDevMode ? [{ debugName: "appendTo" }] : []));
53
+ /** Whether position should remain fixed when approaching page corners. */
54
+ this.fixedPosition = input(false, { ...(ngDevMode ? { debugName: "fixedPosition" } : {}), transform: booleanAttribute });
55
+ /** Maximum width of popover body in px. */
56
+ this.maxWidth = input(null, ...(ngDevMode ? [{ debugName: "maxWidth" }] : []));
43
57
  /** @hidden Combined internal + user-provided body classes. */
44
58
  this.combinedBodyClass = computed(() => {
45
59
  const parts = [this._additionalBodyClass];
@@ -50,17 +64,22 @@ class InlineHelpDirective {
50
64
  return parts.join(' ');
51
65
  }, ...(ngDevMode ? [{ debugName: "combinedBodyClass" }] : []));
52
66
  /** @hidden Popover configuration computed from all inputs. */
53
- this.popoverConfig = computed(() => ({
54
- placement: this.placement() ?? 'bottom',
55
- triggers: this.triggers(),
56
- noArrow: false,
57
- closeOnEscapeKey: false,
58
- closeOnOutsideClick: this.closeOnOutsideClick(),
59
- additionalBodyClass: this.combinedBodyClass(),
60
- disabled: this.disabled(),
61
- bodyRole: this.bodyRole(),
62
- bodyId: this.bodyId()
63
- }), ...(ngDevMode ? [{ debugName: "popoverConfig" }] : []));
67
+ this.popoverConfig = buildPopoverConfig({
68
+ placement: () => this.placement() ?? 'bottom',
69
+ triggers: this.triggers,
70
+ noArrow: this.noArrow,
71
+ closeOnEscapeKey: this.closeOnEscapeKey,
72
+ closeOnOutsideClick: this.closeOnOutsideClick,
73
+ closeOnNavigation: this.closeOnNavigation,
74
+ restoreFocusOnClose: this.restoreFocusOnClose,
75
+ appendTo: this.appendTo,
76
+ fixedPosition: this.fixedPosition,
77
+ maxWidth: this.maxWidth,
78
+ additionalBodyClass: this.combinedBodyClass,
79
+ disabled: this.disabled,
80
+ bodyRole: this.bodyRole,
81
+ bodyId: this.bodyId
82
+ });
64
83
  /** @hidden */
65
84
  this._popoverService = inject(PopoverService);
66
85
  /** @hidden */
@@ -135,7 +154,7 @@ class InlineHelpDirective {
135
154
  this._renderer.appendChild(this._elementRef.nativeElement, srElement);
136
155
  }
137
156
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: InlineHelpDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
138
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.1.0", type: InlineHelpDirective, isStandalone: true, selector: "[fd-inline-help]:not([fd-inline-help-template]), [fd-inline-help-template]:not([fd-inline-help])", inputs: { inlineHelpContent: { classPropertyName: "inlineHelpContent", publicName: "fd-inline-help", isSignal: true, isRequired: false, transformFunction: null }, placement: { classPropertyName: "placement", publicName: "placement", isSignal: true, isRequired: false, transformFunction: null }, triggers: { classPropertyName: "triggers", publicName: "triggers", isSignal: true, isRequired: false, transformFunction: null }, closeOnOutsideClick: { classPropertyName: "closeOnOutsideClick", publicName: "closeOnOutsideClick", isSignal: true, isRequired: false, transformFunction: null }, additionalBodyClass: { classPropertyName: "additionalBodyClass", publicName: "additionalBodyClass", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, bodyId: { classPropertyName: "bodyId", publicName: "bodyId", isSignal: true, isRequired: false, transformFunction: null }, bodyRole: { classPropertyName: "bodyRole", publicName: "bodyRole", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.fd-inline-help__trigger": "true", "attr.aria-describedby": "bodyId()" } }, providers: [PopoverService], ngImport: i0 }); }
157
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.1.0", type: InlineHelpDirective, isStandalone: true, selector: "[fd-inline-help]:not([fd-inline-help-template]), [fd-inline-help-template]:not([fd-inline-help])", inputs: { inlineHelpContent: { classPropertyName: "inlineHelpContent", publicName: "fd-inline-help", isSignal: true, isRequired: false, transformFunction: null }, placement: { classPropertyName: "placement", publicName: "placement", isSignal: true, isRequired: false, transformFunction: null }, triggers: { classPropertyName: "triggers", publicName: "triggers", isSignal: true, isRequired: false, transformFunction: null }, closeOnOutsideClick: { classPropertyName: "closeOnOutsideClick", publicName: "closeOnOutsideClick", isSignal: true, isRequired: false, transformFunction: null }, additionalBodyClass: { classPropertyName: "additionalBodyClass", publicName: "additionalBodyClass", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, bodyId: { classPropertyName: "bodyId", publicName: "bodyId", isSignal: true, isRequired: false, transformFunction: null }, bodyRole: { classPropertyName: "bodyRole", publicName: "bodyRole", isSignal: true, isRequired: false, transformFunction: null }, noArrow: { classPropertyName: "noArrow", publicName: "noArrow", isSignal: true, isRequired: false, transformFunction: null }, closeOnEscapeKey: { classPropertyName: "closeOnEscapeKey", publicName: "closeOnEscapeKey", isSignal: true, isRequired: false, transformFunction: null }, closeOnNavigation: { classPropertyName: "closeOnNavigation", publicName: "closeOnNavigation", isSignal: true, isRequired: false, transformFunction: null }, restoreFocusOnClose: { classPropertyName: "restoreFocusOnClose", publicName: "restoreFocusOnClose", isSignal: true, isRequired: false, transformFunction: null }, appendTo: { classPropertyName: "appendTo", publicName: "appendTo", isSignal: true, isRequired: false, transformFunction: null }, fixedPosition: { classPropertyName: "fixedPosition", publicName: "fixedPosition", isSignal: true, isRequired: false, transformFunction: null }, maxWidth: { classPropertyName: "maxWidth", publicName: "maxWidth", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.fd-inline-help__trigger": "true", "attr.aria-describedby": "bodyId()" } }, providers: [PopoverService], ngImport: i0 }); }
139
158
  }
140
159
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: InlineHelpDirective, decorators: [{
141
160
  type: Directive,
@@ -148,7 +167,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImpor
148
167
  '[attr.aria-describedby]': 'bodyId()'
149
168
  }
150
169
  }]
151
- }], ctorParameters: () => [], propDecorators: { inlineHelpContent: [{ type: i0.Input, args: [{ isSignal: true, alias: "fd-inline-help", required: false }] }], placement: [{ type: i0.Input, args: [{ isSignal: true, alias: "placement", required: false }] }], triggers: [{ type: i0.Input, args: [{ isSignal: true, alias: "triggers", required: false }] }], closeOnOutsideClick: [{ type: i0.Input, args: [{ isSignal: true, alias: "closeOnOutsideClick", required: false }] }], additionalBodyClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "additionalBodyClass", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], bodyId: [{ type: i0.Input, args: [{ isSignal: true, alias: "bodyId", required: false }] }], bodyRole: [{ type: i0.Input, args: [{ isSignal: true, alias: "bodyRole", required: false }] }] } });
170
+ }], ctorParameters: () => [], propDecorators: { inlineHelpContent: [{ type: i0.Input, args: [{ isSignal: true, alias: "fd-inline-help", required: false }] }], placement: [{ type: i0.Input, args: [{ isSignal: true, alias: "placement", required: false }] }], triggers: [{ type: i0.Input, args: [{ isSignal: true, alias: "triggers", required: false }] }], closeOnOutsideClick: [{ type: i0.Input, args: [{ isSignal: true, alias: "closeOnOutsideClick", required: false }] }], additionalBodyClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "additionalBodyClass", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], bodyId: [{ type: i0.Input, args: [{ isSignal: true, alias: "bodyId", required: false }] }], bodyRole: [{ type: i0.Input, args: [{ isSignal: true, alias: "bodyRole", required: false }] }], noArrow: [{ type: i0.Input, args: [{ isSignal: true, alias: "noArrow", required: false }] }], closeOnEscapeKey: [{ type: i0.Input, args: [{ isSignal: true, alias: "closeOnEscapeKey", required: false }] }], closeOnNavigation: [{ type: i0.Input, args: [{ isSignal: true, alias: "closeOnNavigation", required: false }] }], restoreFocusOnClose: [{ type: i0.Input, args: [{ isSignal: true, alias: "restoreFocusOnClose", required: false }] }], appendTo: [{ type: i0.Input, args: [{ isSignal: true, alias: "appendTo", required: false }] }], fixedPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "fixedPosition", required: false }] }], maxWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxWidth", required: false }] }] } });
152
171
 
153
172
  /**
154
173
  * @deprecated
@@ -1 +1 @@
1
- {"version":3,"file":"fundamental-ngx-core-inline-help.mjs","sources":["../../../../libs/core/inline-help/inline-help.directive.ts","../../../../libs/core/inline-help/inline-help.module.ts","../../../../libs/core/inline-help/fundamental-ngx-core-inline-help.ts"],"sourcesContent":["import {\n booleanAttribute,\n computed,\n Directive,\n effect,\n ElementRef,\n EmbeddedViewRef,\n inject,\n input,\n Renderer2,\n TemplateRef,\n ViewContainerRef\n} from '@angular/core';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { FD_ICON_COMPONENT } from '@fundamental-ngx/core/icon';\nimport { PopoverService, TriggerConfig } from '@fundamental-ngx/core/popover';\nimport { Placement } from '@fundamental-ngx/core/shared';\n\nconst INLINE_HELP_CLASS = 'fd-popover__body--inline-help fd-inline-help__content';\nconst INLINE_HELP_ICON_CLASS = 'fd-popover__body--inline-help-with-icon';\n\n/** Default trigger configuration for inline help */\nconst DEFAULT_TRIGGERS: TriggerConfig[] = [\n { trigger: 'mouseenter', openAction: true, closeAction: false },\n { trigger: 'mouseleave', openAction: false, closeAction: true },\n { trigger: 'focusin', openAction: true, closeAction: false },\n { trigger: 'focusout', openAction: false, closeAction: true }\n];\n\nlet inlineHelpId = 0;\n\n/**\n * The component that represents an inline-help.\n * Inline help is used to display help text in a popover, often inline with headers, body text and form labels.\n */\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-inline-help]:not([fd-inline-help-template]), [fd-inline-help-template]:not([fd-inline-help])',\n providers: [PopoverService],\n host: {\n '[class.fd-inline-help__trigger]': 'true',\n '[attr.aria-describedby]': 'bodyId()'\n }\n})\nexport class InlineHelpDirective {\n /** Inline help text to display inside generated popover */\n readonly inlineHelpContent = input<string | TemplateRef<any>>('', { alias: 'fd-inline-help' });\n\n /** Popover placement */\n readonly placement = input<Placement | null>(null);\n\n /**\n * The trigger events that will open/close the inline help component.\n * Accepts any HTML DOM Events or TriggerConfig objects.\n * @default mouseenter/mouseleave and focusin/focusout\n */\n readonly triggers = input<(string | TriggerConfig)[]>(DEFAULT_TRIGGERS);\n\n /** Whether the popover should close when a click is made outside its boundaries. */\n readonly closeOnOutsideClick = input(false);\n\n /** Additional CSS class(es) to apply to the popover body. */\n readonly additionalBodyClass = input<string | null>(null);\n\n /** Whether the inline help is disabled. */\n readonly disabled = input(false, { transform: booleanAttribute });\n\n /** ID for the Inline Help Popover body */\n readonly bodyId = input(`fd-inline-help-${inlineHelpId++}`);\n\n /** aria-role for the Inline Help Popover body */\n readonly bodyRole = input('tooltip');\n\n /** @hidden Combined internal + user-provided body classes. */\n readonly combinedBodyClass = computed(() => {\n const parts = [this._additionalBodyClass];\n const userClass = this.additionalBodyClass();\n if (userClass) {\n parts.push(userClass);\n }\n return parts.join(' ');\n });\n\n /** @hidden Popover configuration computed from all inputs. */\n readonly popoverConfig = computed(() => ({\n placement: this.placement() ?? 'bottom',\n triggers: this.triggers(),\n noArrow: false,\n closeOnEscapeKey: false,\n closeOnOutsideClick: this.closeOnOutsideClick(),\n additionalBodyClass: this.combinedBodyClass(),\n disabled: this.disabled(),\n bodyRole: this.bodyRole(),\n bodyId: this.bodyId()\n }));\n\n /** @hidden */\n private readonly _popoverService = inject(PopoverService);\n\n /** @hidden */\n private readonly _elementRef = inject(ElementRef);\n\n /** @hidden */\n private readonly _renderer = inject(Renderer2);\n\n /** @hidden */\n private readonly _viewContainerRef = inject(ViewContainerRef);\n\n /** @hidden */\n private readonly _icon = inject(FD_ICON_COMPONENT, { optional: true, self: true });\n\n /** @hidden */\n private _additionalBodyClass = '';\n\n /** @hidden */\n private _srViewRef: EmbeddedViewRef<any> | null = null;\n\n /** @hidden */\n private _initialised = false;\n\n /** @hidden */\n constructor() {\n this._applyAdditionalInlineHelpClass();\n\n // Effect to initialise and reactively update the popover config\n effect(() => {\n const config = this.popoverConfig();\n if (!this._initialised) {\n this._popoverService.initialise(this._elementRef, config);\n this._initialised = true;\n } else {\n this._popoverService.refreshConfiguration(config);\n }\n });\n\n // Effect to watch for content changes\n effect(() => {\n const content = this.inlineHelpContent();\n const text = typeof content === 'string' ? content : null;\n const template = content instanceof TemplateRef ? content : null;\n\n this._popoverService.updateContent(text, template);\n this._setupScreenreaderElement(content);\n });\n }\n\n /** @hidden */\n private _applyAdditionalInlineHelpClass(): void {\n let classes = INLINE_HELP_CLASS;\n\n // If connected to the icon, but not button, then apply additional class\n // That will change the arrow's position a bit\n if (this._icon) {\n classes += ' ' + INLINE_HELP_ICON_CLASS;\n }\n\n this._additionalBodyClass = classes;\n }\n\n /** @hidden */\n private _setupScreenreaderElement(content: string | Nullable<TemplateRef<any>>): void {\n this._viewContainerRef.clear();\n\n // Destroy previous embedded view if any\n if (this._srViewRef) {\n this._srViewRef.destroy();\n this._srViewRef = null;\n }\n\n let srElement = this._renderer.createElement('span');\n if (typeof content === 'string') {\n srElement.innerText = content;\n } else if (content) {\n this._srViewRef = content.createEmbeddedView(null);\n if (this._srViewRef.rootNodes[0] instanceof Text) {\n srElement.innerText = this._srViewRef.rootNodes[0].textContent;\n } else {\n srElement = this._srViewRef.rootNodes[0];\n }\n }\n\n if (srElement.style) {\n srElement.style.cssText = `position: absolute !important; height: 1px; width: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px);`;\n }\n this._renderer.appendChild(this._elementRef.nativeElement, srElement);\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { InlineHelpDirective } from './inline-help.directive';\n\n/**\n * @deprecated\n * Use direct imports of components and directives.\n */\n@NgModule({\n imports: [InlineHelpDirective],\n exports: [InlineHelpDirective]\n})\nexport class InlineHelpModule {}\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-inline-help.mjs","sources":["../../../../libs/core/inline-help/inline-help.directive.ts","../../../../libs/core/inline-help/inline-help.module.ts","../../../../libs/core/inline-help/fundamental-ngx-core-inline-help.ts"],"sourcesContent":["import {\n booleanAttribute,\n computed,\n Directive,\n effect,\n ElementRef,\n EmbeddedViewRef,\n inject,\n input,\n Renderer2,\n TemplateRef,\n ViewContainerRef\n} from '@angular/core';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { FD_ICON_COMPONENT } from '@fundamental-ngx/core/icon';\nimport { buildPopoverConfig, PopoverService, TriggerConfig } from '@fundamental-ngx/core/popover';\nimport { Placement } from '@fundamental-ngx/core/shared';\n\nconst INLINE_HELP_CLASS = 'fd-popover__body--inline-help fd-inline-help__content';\nconst INLINE_HELP_ICON_CLASS = 'fd-popover__body--inline-help-with-icon';\n\n/** Default trigger configuration for inline help */\nconst DEFAULT_TRIGGERS: TriggerConfig[] = [\n { trigger: 'mouseenter', openAction: true, closeAction: false },\n { trigger: 'mouseleave', openAction: false, closeAction: true },\n { trigger: 'focusin', openAction: true, closeAction: false },\n { trigger: 'focusout', openAction: false, closeAction: true }\n];\n\nlet inlineHelpId = 0;\n\n/**\n * The component that represents an inline-help.\n * Inline help is used to display help text in a popover, often inline with headers, body text and form labels.\n */\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-inline-help]:not([fd-inline-help-template]), [fd-inline-help-template]:not([fd-inline-help])',\n providers: [PopoverService],\n host: {\n '[class.fd-inline-help__trigger]': 'true',\n '[attr.aria-describedby]': 'bodyId()'\n }\n})\nexport class InlineHelpDirective {\n /** Inline help text to display inside generated popover */\n readonly inlineHelpContent = input<string | TemplateRef<any>>('', { alias: 'fd-inline-help' });\n\n /** Popover placement */\n readonly placement = input<Placement | null>(null);\n\n /**\n * The trigger events that will open/close the inline help component.\n * Accepts any HTML DOM Events or TriggerConfig objects.\n * @default mouseenter/mouseleave and focusin/focusout\n */\n readonly triggers = input<(string | TriggerConfig)[]>(DEFAULT_TRIGGERS);\n\n /** Whether the popover should close when a click is made outside its boundaries. */\n readonly closeOnOutsideClick = input(false, { transform: booleanAttribute });\n\n /** Additional CSS class(es) to apply to the popover body. */\n readonly additionalBodyClass = input<string | null>(null);\n\n /** Whether the inline help is disabled. */\n readonly disabled = input(false, { transform: booleanAttribute });\n\n /** ID for the Inline Help Popover body */\n readonly bodyId = input(`fd-inline-help-${inlineHelpId++}`);\n\n /** aria-role for the Inline Help Popover body */\n readonly bodyRole = input('tooltip');\n\n /** Whether the popover should have an arrow. */\n readonly noArrow = input(false, { transform: booleanAttribute });\n\n /** Whether the popover should close when the escape key is pressed. */\n readonly closeOnEscapeKey = input(false, { transform: booleanAttribute });\n\n /** Whether to close the popover on router navigation start. */\n readonly closeOnNavigation = input(true, { transform: booleanAttribute });\n\n /** Whether to restore focus to the previously focused element when the popover closes. */\n readonly restoreFocusOnClose = input(true, { transform: booleanAttribute });\n\n /** The element to which the overlay is attached. By default it is body. */\n readonly appendTo = input<ElementRef | Element | null | undefined>(null);\n\n /** Whether position should remain fixed when approaching page corners. */\n readonly fixedPosition = input(false, { transform: booleanAttribute });\n\n /** Maximum width of popover body in px. */\n readonly maxWidth = input<number | null | undefined>(null);\n\n /** @hidden Combined internal + user-provided body classes. */\n readonly combinedBodyClass = computed(() => {\n const parts = [this._additionalBodyClass];\n const userClass = this.additionalBodyClass();\n if (userClass) {\n parts.push(userClass);\n }\n return parts.join(' ');\n });\n\n /** @hidden Popover configuration computed from all inputs. */\n readonly popoverConfig = buildPopoverConfig({\n placement: () => this.placement() ?? 'bottom',\n triggers: this.triggers,\n noArrow: this.noArrow,\n closeOnEscapeKey: this.closeOnEscapeKey,\n closeOnOutsideClick: this.closeOnOutsideClick,\n closeOnNavigation: this.closeOnNavigation,\n restoreFocusOnClose: this.restoreFocusOnClose,\n appendTo: this.appendTo,\n fixedPosition: this.fixedPosition,\n maxWidth: this.maxWidth,\n additionalBodyClass: this.combinedBodyClass,\n disabled: this.disabled,\n bodyRole: this.bodyRole,\n bodyId: this.bodyId\n });\n\n /** @hidden */\n private readonly _popoverService = inject(PopoverService);\n\n /** @hidden */\n private readonly _elementRef = inject(ElementRef);\n\n /** @hidden */\n private readonly _renderer = inject(Renderer2);\n\n /** @hidden */\n private readonly _viewContainerRef = inject(ViewContainerRef);\n\n /** @hidden */\n private readonly _icon = inject(FD_ICON_COMPONENT, { optional: true, self: true });\n\n /** @hidden */\n private _additionalBodyClass = '';\n\n /** @hidden */\n private _srViewRef: EmbeddedViewRef<any> | null = null;\n\n /** @hidden */\n private _initialised = false;\n\n /** @hidden */\n constructor() {\n this._applyAdditionalInlineHelpClass();\n\n // Effect to initialise and reactively update the popover config\n effect(() => {\n const config = this.popoverConfig();\n if (!this._initialised) {\n this._popoverService.initialise(this._elementRef, config);\n this._initialised = true;\n } else {\n this._popoverService.refreshConfiguration(config);\n }\n });\n\n // Effect to watch for content changes\n effect(() => {\n const content = this.inlineHelpContent();\n const text = typeof content === 'string' ? content : null;\n const template = content instanceof TemplateRef ? content : null;\n\n this._popoverService.updateContent(text, template);\n this._setupScreenreaderElement(content);\n });\n }\n\n /** @hidden */\n private _applyAdditionalInlineHelpClass(): void {\n let classes = INLINE_HELP_CLASS;\n\n // If connected to the icon, but not button, then apply additional class\n // That will change the arrow's position a bit\n if (this._icon) {\n classes += ' ' + INLINE_HELP_ICON_CLASS;\n }\n\n this._additionalBodyClass = classes;\n }\n\n /** @hidden */\n private _setupScreenreaderElement(content: string | Nullable<TemplateRef<any>>): void {\n this._viewContainerRef.clear();\n\n // Destroy previous embedded view if any\n if (this._srViewRef) {\n this._srViewRef.destroy();\n this._srViewRef = null;\n }\n\n let srElement = this._renderer.createElement('span');\n if (typeof content === 'string') {\n srElement.innerText = content;\n } else if (content) {\n this._srViewRef = content.createEmbeddedView(null);\n if (this._srViewRef.rootNodes[0] instanceof Text) {\n srElement.innerText = this._srViewRef.rootNodes[0].textContent;\n } else {\n srElement = this._srViewRef.rootNodes[0];\n }\n }\n\n if (srElement.style) {\n srElement.style.cssText = `position: absolute !important; height: 1px; width: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px);`;\n }\n this._renderer.appendChild(this._elementRef.nativeElement, srElement);\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { InlineHelpDirective } from './inline-help.directive';\n\n/**\n * @deprecated\n * Use direct imports of components and directives.\n */\n@NgModule({\n imports: [InlineHelpDirective],\n exports: [InlineHelpDirective]\n})\nexport class InlineHelpModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;AAkBA,MAAM,iBAAiB,GAAG,uDAAuD;AACjF,MAAM,sBAAsB,GAAG,yCAAyC;AAExE;AACA,MAAM,gBAAgB,GAAoB;IACtC,EAAE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE;IAC/D,EAAE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE;IAC/D,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE;IAC5D,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI;CAC9D;AAED,IAAI,YAAY,GAAG,CAAC;AAEpB;;;AAGG;MAUU,mBAAmB,CAAA;;AAuG5B,IAAA,WAAA,GAAA;;QArGS,IAAA,CAAA,iBAAiB,GAAG,KAAK,CAA4B,EAAE,8DAAI,KAAK,EAAE,gBAAgB,EAAA,CAAG;;AAGrF,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK,CAAmB,IAAI,qDAAC;AAElD;;;;AAIG;AACM,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAA6B,gBAAgB,oDAAC;;QAG9D,IAAA,CAAA,mBAAmB,GAAG,KAAK,CAAC,KAAK,gEAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;AAGnE,QAAA,IAAA,CAAA,mBAAmB,GAAG,KAAK,CAAgB,IAAI,+DAAC;;QAGhD,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,qDAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;QAGxD,IAAA,CAAA,MAAM,GAAG,KAAK,CAAC,CAAA,eAAA,EAAkB,YAAY,EAAE,CAAA,CAAE,kDAAC;;AAGlD,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC,SAAS,oDAAC;;QAG3B,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,KAAK,oDAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;QAGvD,IAAA,CAAA,gBAAgB,GAAG,KAAK,CAAC,KAAK,6DAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;QAGhE,IAAA,CAAA,iBAAiB,GAAG,KAAK,CAAC,IAAI,8DAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;QAGhE,IAAA,CAAA,mBAAmB,GAAG,KAAK,CAAC,IAAI,gEAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;AAGlE,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAA0C,IAAI,oDAAC;;QAG/D,IAAA,CAAA,aAAa,GAAG,KAAK,CAAC,KAAK,0DAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;AAG7D,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAA4B,IAAI,oDAAC;;AAGjD,QAAA,IAAA,CAAA,iBAAiB,GAAG,QAAQ,CAAC,MAAK;AACvC,YAAA,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC;AACzC,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,mBAAmB,EAAE;YAC5C,IAAI,SAAS,EAAE;AACX,gBAAA,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;YACzB;AACA,YAAA,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;AAC1B,QAAA,CAAC,6DAAC;;QAGO,IAAA,CAAA,aAAa,GAAG,kBAAkB,CAAC;YACxC,SAAS,EAAE,MAAM,IAAI,CAAC,SAAS,EAAE,IAAI,QAAQ;YAC7C,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;YAC7C,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;YACzC,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;YAC7C,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,mBAAmB,EAAE,IAAI,CAAC,iBAAiB;YAC3C,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,MAAM,EAAE,IAAI,CAAC;AAChB,SAAA,CAAC;;AAGe,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAC,cAAc,CAAC;;AAGxC,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;;AAGhC,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;;AAG7B,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAC,gBAAgB,CAAC;;AAG5C,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,iBAAiB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;;QAG1E,IAAA,CAAA,oBAAoB,GAAG,EAAE;;QAGzB,IAAA,CAAA,UAAU,GAAgC,IAAI;;QAG9C,IAAA,CAAA,YAAY,GAAG,KAAK;QAIxB,IAAI,CAAC,+BAA+B,EAAE;;QAGtC,MAAM,CAAC,MAAK;AACR,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE;AACnC,YAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;gBACpB,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC;AACzD,gBAAA,IAAI,CAAC,YAAY,GAAG,IAAI;YAC5B;iBAAO;AACH,gBAAA,IAAI,CAAC,eAAe,CAAC,oBAAoB,CAAC,MAAM,CAAC;YACrD;AACJ,QAAA,CAAC,CAAC;;QAGF,MAAM,CAAC,MAAK;AACR,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,EAAE;AACxC,YAAA,MAAM,IAAI,GAAG,OAAO,OAAO,KAAK,QAAQ,GAAG,OAAO,GAAG,IAAI;AACzD,YAAA,MAAM,QAAQ,GAAG,OAAO,YAAY,WAAW,GAAG,OAAO,GAAG,IAAI;YAEhE,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,IAAI,EAAE,QAAQ,CAAC;AAClD,YAAA,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC;AAC3C,QAAA,CAAC,CAAC;IACN;;IAGQ,+BAA+B,GAAA;QACnC,IAAI,OAAO,GAAG,iBAAiB;;;AAI/B,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;AACZ,YAAA,OAAO,IAAI,GAAG,GAAG,sBAAsB;QAC3C;AAEA,QAAA,IAAI,CAAC,oBAAoB,GAAG,OAAO;IACvC;;AAGQ,IAAA,yBAAyB,CAAC,OAA4C,EAAA;AAC1E,QAAA,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE;;AAG9B,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACjB,YAAA,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE;AACzB,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI;QAC1B;QAEA,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,MAAM,CAAC;AACpD,QAAA,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;AAC7B,YAAA,SAAS,CAAC,SAAS,GAAG,OAAO;QACjC;aAAO,IAAI,OAAO,EAAE;YAChB,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC;YAClD,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,IAAI,EAAE;AAC9C,gBAAA,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW;YAClE;iBAAO;gBACH,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;YAC5C;QACJ;AAEA,QAAA,IAAI,SAAS,CAAC,KAAK,EAAE;AACjB,YAAA,SAAS,CAAC,KAAK,CAAC,OAAO,GAAG,2GAA2G;QACzI;AACA,QAAA,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,SAAS,CAAC;IACzE;8GAvKS,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kGAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,mBAAA,EAAA,EAAA,iBAAA,EAAA,qBAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,mBAAA,EAAA,EAAA,iBAAA,EAAA,qBAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,mBAAA,EAAA,EAAA,iBAAA,EAAA,qBAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,+BAAA,EAAA,MAAA,EAAA,uBAAA,EAAA,UAAA,EAAA,EAAA,EAAA,SAAA,EANjB,CAAC,cAAc,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAMlB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAT/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;;AAEP,oBAAA,QAAQ,EAAE,kGAAkG;oBAC5G,SAAS,EAAE,CAAC,cAAc,CAAC;AAC3B,oBAAA,IAAI,EAAE;AACF,wBAAA,iCAAiC,EAAE,MAAM;AACzC,wBAAA,yBAAyB,EAAE;AAC9B;AACJ,iBAAA;;;ACvCD;;;AAGG;MAKU,gBAAgB,CAAA;8GAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;+GAAhB,gBAAgB,EAAA,OAAA,EAAA,CAHf,mBAAmB,CAAA,EAAA,OAAA,EAAA,CACnB,mBAAmB,CAAA,EAAA,CAAA,CAAA;+GAEpB,gBAAgB,EAAA,CAAA,CAAA;;2FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAJ5B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,OAAO,EAAE,CAAC,mBAAmB,CAAC;oBAC9B,OAAO,EAAE,CAAC,mBAAmB;AAChC,iBAAA;;;ACXD;;AAEG;;;;"}
@@ -1,10 +1,10 @@
1
1
  import * as i2 from '@angular/cdk/portal';
2
2
  import { ComponentPortal, PortalModule, CdkPortalOutlet, DomPortal } from '@angular/cdk/portal';
3
3
  import * as i0 from '@angular/core';
4
- import { InjectionToken, inject, DestroyRef, Input, Directive, ElementRef, ViewChild, HostBinding, Component, HostListener, input, booleanAttribute, ContentChild, Renderer2, Injectable, EventEmitter, ChangeDetectorRef, forwardRef, Output, ViewEncapsulation, ChangeDetectionStrategy, TemplateRef, ContentChildren, NgZone, signal, computed, Injector, effect, untracked, runInInjectionContext, afterNextRender, model, output, viewChild, contentChildren, ViewContainerRef, NgModule } from '@angular/core';
4
+ import { InjectionToken, inject, DestroyRef, Input, Directive, ElementRef, ViewChild, HostBinding, Component, HostListener, input, booleanAttribute, ContentChild, Renderer2, Injectable, EventEmitter, ChangeDetectorRef, forwardRef, Output, ViewEncapsulation, ChangeDetectionStrategy, TemplateRef, ContentChildren, signal, computed, Injector, effect, untracked, runInInjectionContext, afterNextRender, model, output, viewChild, contentChildren, ViewContainerRef, NgModule } from '@angular/core';
5
5
  import { takeUntilDestroyed, outputToObservable } from '@angular/core/rxjs-interop';
6
6
  import { IconComponent } from '@fundamental-ngx/core/icon';
7
- import { Subject, combineLatest, tap, first, map, Subscription, fromEvent, defer, timer, BehaviorSubject, of, switchMap as switchMap$1, merge, delayWhen } from 'rxjs';
7
+ import { Subject, combineLatest, tap, first, map, Subscription, fromEvent, defer, timer, BehaviorSubject, of, switchMap as switchMap$1, merge, delay } from 'rxjs';
8
8
  import { distinctUntilChanged, takeUntil, filter, switchMap, startWith } from 'rxjs/operators';
9
9
  import { NgTemplateOutlet } from '@angular/common';
10
10
  import { RIGHT_ARROW, LEFT_ARROW, DOWN_ARROW, UP_ARROW, SPACE, ENTER, ESCAPE } from '@angular/cdk/keycodes';
@@ -1068,8 +1068,7 @@ class SegmentedButtonOptionDirective {
1068
1068
  /** @hidden */
1069
1069
  this._selected$ = new BehaviorSubject(false);
1070
1070
  this.clicked = this._clicked.asObservable();
1071
- const ngZone = inject(NgZone);
1072
- combineLatest([this._viewInit$.pipe(delayWhen(() => ngZone.onStable.asObservable())), this._selected$])
1071
+ combineLatest([this._viewInit$.pipe(delay(0)), this._selected$])
1073
1072
  .pipe(tap(() => {
1074
1073
  if (!this._dotElement) {
1075
1074
  this._createDot();
@@ -1120,19 +1119,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImpor
1120
1119
  type: Directive,
1121
1120
  args: [{
1122
1121
  selector: 'li[fd-menu-item][fdMenuSegmentedButtonOption]',
1123
- standalone: true
1122
+ host: {
1123
+ '(click)': '_onClick($event)',
1124
+ '(keydown.enter)': '_onClick($event)',
1125
+ '(keydown.space)': '_onClick($event)'
1126
+ }
1124
1127
  }]
1125
1128
  }], ctorParameters: () => [], propDecorators: { value: [{
1126
1129
  type: Input
1127
- }], _onClick: [{
1128
- type: HostListener,
1129
- args: ['click', ['$event']]
1130
- }, {
1131
- type: HostListener,
1132
- args: ['keydown.enter', ['$event']]
1133
- }, {
1134
- type: HostListener,
1135
- args: ['keydown.space', ['$event']]
1136
1130
  }] } });
1137
1131
 
1138
1132
  class ToggleButtonDirective {
@@ -1411,20 +1405,20 @@ class MenuComponent {
1411
1405
  title: '',
1412
1406
  hasCloseButton: true
1413
1407
  }, ...(ngDevMode ? [{ debugName: "mobileConfig" }] : []));
1414
- /** Popover placement */
1408
+ /** Menu placement */
1415
1409
  this.placement = input('bottom-start', ...(ngDevMode ? [{ debugName: "placement" }] : []));
1416
- /** Whether to close popover on escape key */
1410
+ /** Whether to close menu on escape key */
1417
1411
  this.closeOnEscapeKey = input(true, { ...(ngDevMode ? { debugName: "closeOnEscapeKey" } : {}), transform: booleanAttribute });
1418
1412
  /** Whether to auto-capture focus when opened */
1419
1413
  this.focusAutoCapture = input(true, { ...(ngDevMode ? { debugName: "focusAutoCapture" } : {}), transform: booleanAttribute });
1420
- /** Whether the menu/popover is disabled */
1414
+ /** Whether the menu is disabled */
1421
1415
  this.disabled = input(false, { ...(ngDevMode ? { debugName: "disabled" } : {}), transform: booleanAttribute });
1422
1416
  /** Whether to disable scrollbar */
1423
1417
  this.disableScrollbar = input(false, { ...(ngDevMode ? { debugName: "disableScrollbar" } : {}), transform: booleanAttribute });
1424
1418
  /** Trigger events for opening/closing */
1425
1419
  this.triggers = input(['click'], ...(ngDevMode ? [{ debugName: "triggers" }] : []));
1426
1420
  /**
1427
- * Preset options for the popover body width.
1421
+ * Preset options for the menu body width.
1428
1422
  * * `at-least` will apply a minimum width to the body equivalent to the width of the control.
1429
1423
  * * `equal` will apply a width to the body equivalent to the width of the control.
1430
1424
  * * Leave blank for no effect.
@@ -1434,17 +1428,25 @@ class MenuComponent {
1434
1428
  this.closeOnOutsideClick = input(true, { ...(ngDevMode ? { debugName: "closeOnOutsideClick" } : {}), transform: booleanAttribute });
1435
1429
  /** Whether to hide the arrow */
1436
1430
  this.noArrow = input(true, { ...(ngDevMode ? { debugName: "noArrow" } : {}), transform: booleanAttribute });
1437
- /** Whether the popover should trap focus within its boundaries */
1431
+ /** Whether the menu should trap focus within its boundaries */
1438
1432
  this.focusTrapped = input(true, { ...(ngDevMode ? { debugName: "focusTrapped" } : {}), transform: booleanAttribute });
1439
- /** Additional CSS classes for the popover body container */
1433
+ /** Additional CSS classes for the menu body container */
1440
1434
  this.additionalBodyClass = input(null, ...(ngDevMode ? [{ debugName: "additionalBodyClass" }] : []));
1435
+ /** Whether to close the menu on router navigation start */
1436
+ this.closeOnNavigation = input(true, { ...(ngDevMode ? { debugName: "closeOnNavigation" } : {}), transform: booleanAttribute });
1437
+ /** Whether to move focus back to the trigger after the menu is closed */
1438
+ this.restoreFocusOnClose = input(true, { ...(ngDevMode ? { debugName: "restoreFocusOnClose" } : {}), transform: booleanAttribute });
1439
+ /** The element to which the menu overlay is attached */
1440
+ this.appendTo = input(null, ...(ngDevMode ? [{ debugName: "appendTo" }] : []));
1441
+ /** Whether position shouldn't change when the menu approaches the corner of the page */
1442
+ this.fixedPosition = input(false, { ...(ngDevMode ? { debugName: "fixedPosition" } : {}), transform: booleanAttribute });
1441
1443
  /** Two-way binding for menu open state */
1442
1444
  this.isOpen = model(false, ...(ngDevMode ? [{ debugName: "isOpen" }] : []));
1443
1445
  /** Emits when menu open state changes - required for MenuInterface compatibility */
1444
1446
  this.isOpenChange = output();
1445
1447
  /** Emits array of active menu items */
1446
1448
  this.activePath = output();
1447
- /** Event emitted right before the popover is being opened. */
1449
+ /** Event emitted right before the menu is being opened. */
1448
1450
  this.beforeOpen = output();
1449
1451
  /** @hidden Injected dependencies using inject() function */
1450
1452
  this.elementRef = inject(ElementRef);
@@ -1492,8 +1494,9 @@ class MenuComponent {
1492
1494
  }
1493
1495
  // Emit isOpenChange for MenuMobileComponent and other consumers
1494
1496
  this.isOpenChange.emit(openState);
1495
- // Sync to service only if not already syncing (prevents loop)
1496
- if (!this._syncingIsOpen) {
1497
+ // Sync to service only if not already syncing and not in mobile mode (prevents loop).
1498
+ // In mobile mode, the dialog handles open/close — the popover service should not be involved.
1499
+ if (!this._syncingIsOpen && !this.mobile()) {
1497
1500
  this._syncingIsOpen = true;
1498
1501
  this._popoverService.isOpen.set(openState);
1499
1502
  this._syncingIsOpen = false;
@@ -1517,6 +1520,10 @@ class MenuComponent {
1517
1520
  this._popoverService.fillControlMode.set(this.fillControlMode() ?? cfg.fillControlMode ?? null);
1518
1521
  this._popoverService.closeOnOutsideClick.set(this.closeOnOutsideClick() ?? cfg.closeOnOutsideClick ?? true);
1519
1522
  this._popoverService.noArrow.set(this.noArrow() ?? cfg.noArrow ?? true);
1523
+ this._popoverService.closeOnNavigation.set(this.closeOnNavigation() ?? cfg.closeOnNavigation ?? true);
1524
+ this._popoverService.restoreFocusOnClose.set(this.restoreFocusOnClose() ?? cfg.restoreFocusOnClose ?? true);
1525
+ this._popoverService.appendTo.set(this.appendTo() ?? cfg.appendTo ?? null);
1526
+ this._popoverService.fixedPosition.set(this.fixedPosition() ?? cfg.fixedPosition ?? false);
1520
1527
  const bodyClass = this.additionalBodyClass() ?? cfg.additionalBodyClass ?? '';
1521
1528
  this._popoverService.additionalBodyClass.set(bodyClass + ' fd-popover--menu');
1522
1529
  });
@@ -1658,7 +1665,7 @@ class MenuComponent {
1658
1665
  /** @hidden */
1659
1666
  set trigger(trigger) {
1660
1667
  this._externalTrigger = trigger;
1661
- if (trigger) {
1668
+ if (trigger && !this.mobile()) {
1662
1669
  this._popoverService.initialise(trigger);
1663
1670
  }
1664
1671
  this._destroyEventListeners();
@@ -1671,7 +1678,8 @@ class MenuComponent {
1671
1678
  open() {
1672
1679
  // Always update component state for consistency
1673
1680
  this.isOpen.set(true);
1674
- // In desktop mode, also explicitly open the popover service
1681
+ // In desktop mode, also explicitly open the popover service.
1682
+ // In mobile mode the dialog handles open/close via the isOpen signal.
1675
1683
  if (!this.mobile()) {
1676
1684
  this._popoverService.open();
1677
1685
  }
@@ -1691,7 +1699,7 @@ class MenuComponent {
1691
1699
  toggle() {
1692
1700
  this.isOpen() ? this.close() : this.open();
1693
1701
  }
1694
- /** Method called to refresh position of opened popover */
1702
+ /** Method called to refresh position of opened menu */
1695
1703
  refreshPosition() {
1696
1704
  this._popoverService.refreshPosition();
1697
1705
  }
@@ -1731,6 +1739,10 @@ class MenuComponent {
1731
1739
  fillControlMode: this.fillControlMode() ?? cfg.fillControlMode,
1732
1740
  closeOnOutsideClick: this.closeOnOutsideClick() ?? cfg.closeOnOutsideClick,
1733
1741
  noArrow: this.noArrow() ?? cfg.noArrow,
1742
+ closeOnNavigation: this.closeOnNavigation() ?? cfg.closeOnNavigation,
1743
+ restoreFocusOnClose: this.restoreFocusOnClose() ?? cfg.restoreFocusOnClose,
1744
+ appendTo: this.appendTo() ?? cfg.appendTo,
1745
+ fixedPosition: this.fixedPosition() ?? cfg.fixedPosition,
1734
1746
  additionalBodyClass: ((this.additionalBodyClass() ?? cfg.additionalBodyClass ?? '') + ' fd-popover--menu').trim()
1735
1747
  };
1736
1748
  this._popoverService.initialise(this._externalTrigger, configToPass);
@@ -1787,7 +1799,7 @@ class MenuComponent {
1787
1799
  }
1788
1800
  }
1789
1801
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: MenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1790
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.1.0", type: MenuComponent, isStandalone: true, selector: "fd-menu", inputs: { openOnHoverTime: { classPropertyName: "openOnHoverTime", publicName: "openOnHoverTime", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, ariaLabelledby: { classPropertyName: "ariaLabelledby", publicName: "ariaLabelledby", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null }, mobile: { classPropertyName: "mobile", publicName: "mobile", isSignal: true, isRequired: false, transformFunction: null }, mobileConfig: { classPropertyName: "mobileConfig", publicName: "mobileConfig", isSignal: true, isRequired: false, transformFunction: null }, placement: { classPropertyName: "placement", publicName: "placement", isSignal: true, isRequired: false, transformFunction: null }, closeOnEscapeKey: { classPropertyName: "closeOnEscapeKey", publicName: "closeOnEscapeKey", isSignal: true, isRequired: false, transformFunction: null }, focusAutoCapture: { classPropertyName: "focusAutoCapture", publicName: "focusAutoCapture", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, disableScrollbar: { classPropertyName: "disableScrollbar", publicName: "disableScrollbar", isSignal: true, isRequired: false, transformFunction: null }, triggers: { classPropertyName: "triggers", publicName: "triggers", isSignal: true, isRequired: false, transformFunction: null }, fillControlMode: { classPropertyName: "fillControlMode", publicName: "fillControlMode", isSignal: true, isRequired: false, transformFunction: null }, closeOnOutsideClick: { classPropertyName: "closeOnOutsideClick", publicName: "closeOnOutsideClick", isSignal: true, isRequired: false, transformFunction: null }, noArrow: { classPropertyName: "noArrow", publicName: "noArrow", isSignal: true, isRequired: false, transformFunction: null }, focusTrapped: { classPropertyName: "focusTrapped", publicName: "focusTrapped", isSignal: true, isRequired: false, transformFunction: null }, additionalBodyClass: { classPropertyName: "additionalBodyClass", publicName: "additionalBodyClass", isSignal: true, isRequired: false, transformFunction: null }, isOpen: { classPropertyName: "isOpen", publicName: "isOpen", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { isOpen: "isOpenChange", isOpenChange: "isOpenChange", activePath: "activePath", beforeOpen: "beforeOpen" }, host: { properties: { "class.fd-popover-custom--disabled": "disabled()" } }, providers: [
1802
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.1.0", type: MenuComponent, isStandalone: true, selector: "fd-menu", inputs: { openOnHoverTime: { classPropertyName: "openOnHoverTime", publicName: "openOnHoverTime", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, ariaLabelledby: { classPropertyName: "ariaLabelledby", publicName: "ariaLabelledby", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null }, mobile: { classPropertyName: "mobile", publicName: "mobile", isSignal: true, isRequired: false, transformFunction: null }, mobileConfig: { classPropertyName: "mobileConfig", publicName: "mobileConfig", isSignal: true, isRequired: false, transformFunction: null }, placement: { classPropertyName: "placement", publicName: "placement", isSignal: true, isRequired: false, transformFunction: null }, closeOnEscapeKey: { classPropertyName: "closeOnEscapeKey", publicName: "closeOnEscapeKey", isSignal: true, isRequired: false, transformFunction: null }, focusAutoCapture: { classPropertyName: "focusAutoCapture", publicName: "focusAutoCapture", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, disableScrollbar: { classPropertyName: "disableScrollbar", publicName: "disableScrollbar", isSignal: true, isRequired: false, transformFunction: null }, triggers: { classPropertyName: "triggers", publicName: "triggers", isSignal: true, isRequired: false, transformFunction: null }, fillControlMode: { classPropertyName: "fillControlMode", publicName: "fillControlMode", isSignal: true, isRequired: false, transformFunction: null }, closeOnOutsideClick: { classPropertyName: "closeOnOutsideClick", publicName: "closeOnOutsideClick", isSignal: true, isRequired: false, transformFunction: null }, noArrow: { classPropertyName: "noArrow", publicName: "noArrow", isSignal: true, isRequired: false, transformFunction: null }, focusTrapped: { classPropertyName: "focusTrapped", publicName: "focusTrapped", isSignal: true, isRequired: false, transformFunction: null }, additionalBodyClass: { classPropertyName: "additionalBodyClass", publicName: "additionalBodyClass", isSignal: true, isRequired: false, transformFunction: null }, closeOnNavigation: { classPropertyName: "closeOnNavigation", publicName: "closeOnNavigation", isSignal: true, isRequired: false, transformFunction: null }, restoreFocusOnClose: { classPropertyName: "restoreFocusOnClose", publicName: "restoreFocusOnClose", isSignal: true, isRequired: false, transformFunction: null }, appendTo: { classPropertyName: "appendTo", publicName: "appendTo", isSignal: true, isRequired: false, transformFunction: null }, fixedPosition: { classPropertyName: "fixedPosition", publicName: "fixedPosition", isSignal: true, isRequired: false, transformFunction: null }, isOpen: { classPropertyName: "isOpen", publicName: "isOpen", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { isOpen: "isOpenChange", isOpenChange: "isOpenChange", activePath: "activePath", beforeOpen: "beforeOpen" }, host: { properties: { "class.fd-popover-custom--disabled": "disabled()" } }, providers: [
1791
1803
  MenuService,
1792
1804
  PopoverService,
1793
1805
  DynamicComponentService,
@@ -1812,7 +1824,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImpor
1812
1824
  ], host: {
1813
1825
  '[class.fd-popover-custom--disabled]': 'disabled()'
1814
1826
  }, template: "<ng-container #viewContainer></ng-container>\n\n<ng-template #menuRootTemplate>\n <div class=\"fd-popover__wrapper--visible\">\n <nav\n class=\"fd-menu\"\n [id]=\"id()\"\n [attr.aria-labelledby]=\"ariaLabelledby()\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.role]=\"_navContainerRole\"\n [class.fd-menu--mobile]=\"mobile()\"\n [class.fd-menu--icons]=\"hasAddons\"\n >\n <ul\n [attr.role]=\"_menuListContainerRole\"\n class=\"fd-menu__list fd-menu__list--no-shadow\"\n [class.fd-menu--full-width]=\"mobile() || false\"\n >\n <ng-content></ng-content>\n </ul>\n </nav>\n </div>\n</ng-template>\n", styles: [".fd-dialog__body{--fdButton_Menu_Border_Radius: 0}.fd-menu{--fdMenu_Icon_Width: 2.25rem;--fdMenu_Link_Height: 2.75rem;--fdMenu_Item_Spacing_Left: .75rem;--fdMenu_Item_Spacing_Right: .75rem;--fdMenu_Item_Border_Bottom_Color: transparent;--fdMenu_Shortcut_Padding_Left: 1rem;--fdMenu_Shortcut_Padding_Right: .75rem;--fdMenu_Text_Spacing_Right: .75rem;--fdMenu_Icon_Color: var(--sapContent_NonInteractiveIconColor);--fdMenu_Shortcut_Color: var(--fdMenu_Shortcut_Color_Regular);--fdMenu_Text_Color: var(--sapList_TextColor);--fdMenu_Item_Background_Color: var(--sapList_Background);--fdMenu_Active_Dot_Size: .75rem;font-size:var(--sapFontSize);line-height:normal;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;-webkit-box-sizing:border-box;box-sizing:border-box;forced-color-adjust:none;padding-inline:0;padding-block:0;margin-inline:0;margin-block:0;border:0;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.fd-menu:before,.fd-menu:after{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-menu__list,.fd-menu__sublist{font-size:var(--sapFontSize);line-height:normal;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;-webkit-box-sizing:border-box;box-sizing:border-box;forced-color-adjust:none;padding-inline:0;padding-block:0;margin-inline:0;margin-block:0;border:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-ms-flex-wrap:wrap;flex-wrap:wrap;max-width:20rem;list-style:none;-webkit-box-shadow:var(--sapContent_Shadow1);box-shadow:var(--sapContent_Shadow1);border-radius:var(--fdButton_Menu_Border_Radius)}.fd-menu__list:before,.fd-menu__list:after,.fd-menu__sublist:before,.fd-menu__sublist:after{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-menu__list--no-shadow,.fd-menu__sublist--no-shadow{-webkit-box-shadow:none;box-shadow:none}.fd-menu__sublist{font-size:var(--sapFontSize);line-height:normal;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;-webkit-box-sizing:border-box;box-sizing:border-box;forced-color-adjust:none;padding-inline:0;padding-block:0;margin-inline:0;margin-block:0;border:0;position:absolute;top:0;left:100%;z-index:2;margin-block:.25rem 0;margin-inline:-.25rem 0;min-width:100%}.fd-menu__sublist:before,.fd-menu__sublist:after{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}[dir=rtl] .fd-menu__sublist,.fd-menu__sublist[dir=rtl]{right:100%;left:initial}.fd-menu__sublist[aria-hidden=true]{display:none}.fd-menu__list>.fd-menu__item{width:100%;position:relative}.fd-menu__list--overflow{overflow-y:scroll;-ms-flex-wrap:nowrap;flex-wrap:nowrap;scrollbar-color:var(--fdScrollbar_Thumb_Color) var(--fdScrollbar_Track_Color)}.fd-menu__list--overflow:focus,.fd-menu__list--overflow.is-focus{z-index:5;outline:none}.fd-menu__list--overflow::-webkit-scrollbar{width:var(--fdScrollbar_Dimension);height:var(--fdScrollbar_Dimension)}.fd-menu__list--overflow::-webkit-scrollbar-track,.fd-menu__list--overflow::-webkit-scrollbar-corner{background-color:var(--fdScrollbar_Track_Color)}.fd-menu__list--overflow::-webkit-scrollbar-thumb{background-color:transparent;-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);border:var(--fdScrollbar_Thumb_Offset) solid transparent;border-radius:calc(var(--fdScrollbar_Thumb_Border_Radius) - var(--fdScrollbar_Thumb_Offset))}.fd-menu__list--overflow::-webkit-scrollbar-thumb:hover,.fd-menu__list--overflow::-webkit-scrollbar-thumb:active{-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-menu__list--overflow::-webkit-scrollbar-track,.fd-menu__list--overflow::-webkit-scrollbar-corner{border-radius:0 var(--fdScrollbar_Border_Radius) var(--fdScrollbar_Border_Radius) 0}[dir=rtl] .fd-menu__list--overflow::-webkit-scrollbar-track,[dir=rtl] .fd-menu__list--overflow::-webkit-scrollbar-corner,.fd-menu__list--overflow[dir=rtl]::-webkit-scrollbar-track,.fd-menu__list--overflow[dir=rtl]::-webkit-scrollbar-corner{border-radius:var(--fdScrollbar_Border_Radius) 0 0 var(--fdScrollbar_Border_Radius)}.fd-menu__separator{font-size:var(--sapFontSize);line-height:normal;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;-webkit-box-sizing:border-box;box-sizing:border-box;forced-color-adjust:none;padding-inline:0;padding-block:0;margin-inline:0;margin-block:0;border:0;width:100%;height:.0625rem;background-color:var(--sapGroup_ContentBorderColor)}.fd-menu__separator:before,.fd-menu__separator:after{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-menu__item{font-size:var(--sapFontSize);line-height:normal;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;-webkit-box-sizing:border-box;box-sizing:border-box;forced-color-adjust:none;padding-inline:0;padding-block:0;margin-inline:0;margin-block:0;border:0;max-width:100%;position:relative;border-radius:0;background-color:var(--sapList_Background)}.fd-menu__item:before,.fd-menu__item:after{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-menu__item:first-child,.fd-menu__item:first-child .fd-menu__link:after{border-top-right-radius:var(--fdButton_Menu_Border_Radius);border-top-left-radius:var(--fdButton_Menu_Border_Radius)}.fd-menu__item:last-of-type,.fd-menu__item:last-of-type .fd-menu__link:after{border-bottom-right-radius:var(--fdButton_Menu_Border_Radius);border-bottom-left-radius:var(--fdButton_Menu_Border_Radius)}.fd-menu__item.has-separator{border-bottom:.0625rem solid var(--sapGroup_ContentBorderColor)}.fd-menu__link{font-size:var(--sapFontSize);line-height:normal;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;-webkit-box-sizing:border-box;box-sizing:border-box;forced-color-adjust:none;padding-inline:0;padding-block:0;margin-inline:0;margin-block:0;border:0;cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-inline:var(--fdMenu_Item_Spacing_Left) var(--fdMenu_Item_Spacing_Right);width:100%;outline:none;text-decoration:none;border-radius:inherit;min-height:var(--fdMenu_Link_Height);background:var(--fdMenu_Item_Background_Color);border-bottom:.0625rem solid var(--fdMenu_Item_Border_Bottom_Color)}.fd-menu__link:before,.fd-menu__link:after{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-menu__link:focus:after,.fd-menu__link.is-focus:after{border-width:var(--sapContent_FocusWidth);border-color:var(--sapContent_FocusColor);border-style:var(--sapContent_FocusStyle);content:\"\";position:absolute;pointer-events:none;inset:.125rem;border-radius:0!important}.fd-menu__link:hover,.fd-menu__link.is-hover{--fdMenu_Item_Background_Color: var(--sapList_Hover_Background)}.fd-menu__link[aria-selected=true],.fd-menu__link.is-selected{--fdMenu_Item_Background_Color: var(--sapList_SelectionBackgroundColor);--fdMenu_Icon_Color: var(--sapContent_NonInteractiveIconColor);--fdMenu_Shortcut_Color: var(--fdMenu_Shortcut_Color_Selected);--fdMenu_Text_Color: var(--sapList_TextColor);--fdMenu_Item_Border_Bottom_Color: var(--sapList_SelectionBorderColor)}.fd-menu__link[aria-selected=true]:hover:not(:active,.is-active),.fd-menu__link[aria-selected=true].is-hover:not(:active,.is-active),.fd-menu__link.is-selected:hover:not(:active,.is-active),.fd-menu__link.is-selected.is-hover:not(:active,.is-active){--fdMenu_Item_Background_Color: var(--sapList_Hover_SelectionBackground);--fdMenu_Shortcut_Color: var(--fdMenu_Shortcut_Color_Selected_Hover)}.fd-menu__link[aria-selected=true]:focus,.fd-menu__link[aria-selected=true].is-focus,.fd-menu__link.is-selected:focus,.fd-menu__link.is-selected.is-focus{z-index:5}.fd-menu__link[aria-selected=true]:focus:after,.fd-menu__link[aria-selected=true].is-focus:after,.fd-menu__link.is-selected:focus:after,.fd-menu__link.is-selected.is-focus:after{bottom:.125rem}.fd-menu__link:active,.fd-menu__link.is-active{--fdMenu_Item_Background_Color: var(--sapList_Active_Background);--fdMenu_Icon_Color: var(--sapList_Active_TextColor);--fdMenu_Shortcut_Color: var(--fdMenu_Shortcut_Color_Active);--fdMenu_Text_Color: var(--fdMenu_Text_Color_Active)}.fd-menu__link:active:after,.fd-menu__link.is-active:after{display:none}.fd-menu__link:active:focus,.fd-menu__link:active.is-focus,.fd-menu__link.is-active:focus,.fd-menu__link.is-active.is-focus{z-index:5;outline-color:var(--fdMenu_Active_State_Focus)}.fd-menu__link[aria-disabled=true],.fd-menu__link.is-disabled,.fd-menu__link:disabled{pointer-events:none;opacity:var(--sapContent_DisabledOpacity)}.fd-menu__link[aria-disabled=true]:focus,.fd-menu__link[aria-disabled=true].is-focus,.fd-menu__link.is-disabled:focus,.fd-menu__link.is-disabled.is-focus,.fd-menu__link:disabled:focus,.fd-menu__link:disabled.is-focus{z-index:5}.fd-menu__link[aria-disabled=true]:focus:after,.fd-menu__link[aria-disabled=true].is-focus:after,.fd-menu__link.is-disabled:focus:after,.fd-menu__link.is-disabled.is-focus:after,.fd-menu__link:disabled:focus:after,.fd-menu__link:disabled.is-focus:after{display:none}.fd-menu__link.has-child{--fdMenu_Item_Spacing_Right: 0}.fd-menu__link.has-child[aria-expanded=true]:not(:active,.is-active),.fd-menu__link.has-child.is-expanded:not(:active,.is-active){--fdMenu_Item_Background_Color: var(--sapList_SelectionBackgroundColor);--fdMenu_Icon_Color: var(--sapContent_NonInteractiveIconColor);--fdMenu_Shortcut_Color: var(--fdMenu_Shortcut_Color_Selected);--fdMenu_Text_Color: var(--sapList_TextColor);--fdMenu_Item_Border_Bottom_Color: var(--sapList_SelectionBorderColor)}.fd-menu__link.has-child[aria-expanded=true]:not(:active,.is-active):hover:not(:active,.is-active),.fd-menu__link.has-child[aria-expanded=true]:not(:active,.is-active).is-hover:not(:active,.is-active),.fd-menu__link.has-child.is-expanded:not(:active,.is-active):hover:not(:active,.is-active),.fd-menu__link.has-child.is-expanded:not(:active,.is-active).is-hover:not(:active,.is-active){--fdMenu_Item_Background_Color: var(--sapList_Hover_SelectionBackground);--fdMenu_Shortcut_Color: var(--fdMenu_Shortcut_Color_Selected_Hover)}.fd-menu__link.has-child[aria-expanded=true]:not(:active,.is-active):focus,.fd-menu__link.has-child[aria-expanded=true]:not(:active,.is-active).is-focus,.fd-menu__link.has-child.is-expanded:not(:active,.is-active):focus,.fd-menu__link.has-child.is-expanded:not(:active,.is-active).is-focus{z-index:5}.fd-menu__link.has-child[aria-expanded=true]:not(:active,.is-active):focus:after,.fd-menu__link.has-child[aria-expanded=true]:not(:active,.is-active).is-focus:after,.fd-menu__link.has-child.is-expanded:not(:active,.is-active):focus:after,.fd-menu__link.has-child.is-expanded:not(:active,.is-active).is-focus:after{bottom:.125rem}.fd-menu__title{line-height:normal;color:var(--sapTextColor);font-weight:400;-webkit-box-sizing:border-box;box-sizing:border-box;forced-color-adjust:none;padding-inline:0;padding-block:0;margin-inline:0;margin-block:0;border:0;width:100%;text-align:start;margin-block:.25rem;font-size:var(--sapFontSize);color:var(--fdMenu_Text_Color);font-family:var(--sapFontFamily);text-shadow:var(--fdMenu_Text_Shadow)}.fd-menu__title:before,.fd-menu__title:after{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-menu__title:has(+.fd-menu__input){width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content}.fd-menu__title--truncate{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fd-menu__subtitle{line-height:normal;color:var(--sapTextColor);font-weight:400;-webkit-box-sizing:border-box;box-sizing:border-box;forced-color-adjust:none;padding-inline:0;padding-block:0;margin-inline:0;margin-block:0;border:0;width:100%;text-align:start;-webkit-margin-after:.25rem;margin-block-end:.25rem;font-size:var(--sapFontSize);color:var(--sapContent_LabelColor);font-family:var(--sapFontFamily);text-shadow:var(--fdMenu_Text_Shadow)}.fd-menu__subtitle:before,.fd-menu__subtitle:after{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-menu__subtitle--truncate{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fd-menu__content{font-size:var(--sapFontSize);line-height:normal;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;-webkit-box-sizing:border-box;box-sizing:border-box;forced-color-adjust:none;padding-inline:0;padding-block:0;margin-inline:0;margin-block:0;border:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-flex:1;-ms-flex:1;flex:1;overflow:hidden}.fd-menu__content:before,.fd-menu__content:after{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-menu__addon-before,.fd-menu__addon-after{font-size:var(--sapFontSize);line-height:normal;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;-webkit-box-sizing:border-box;box-sizing:border-box;forced-color-adjust:none;padding-inline:0;padding-block:0;margin-inline:0;margin-block:0;border:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:var(--fdMenu_Icon_Width);min-width:var(--fdMenu_Icon_Width);max-width:var(--fdMenu_Icon_Width);height:100%;color:var(--fdMenu_Icon_Color);background-color:transparent;font-size:var(--sapFontLargeSize);text-shadow:var(--fdMenu_Text_Shadow)}.fd-menu__addon-before:before,.fd-menu__addon-before:after,.fd-menu__addon-after:before,.fd-menu__addon-after:after{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-menu__addon-before [class*=sap-icon],.fd-menu__addon-before[class*=sap-icon],.fd-menu__addon-after [class*=sap-icon],.fd-menu__addon-after[class*=sap-icon]{color:inherit;background:inherit;font-size:inherit;border-radius:inherit;line-height:1}.fd-menu__addon-before--active,.fd-menu__addon-after--active{--fdMenu_Icon_Color: var(--sapContent_Selected_ForegroundColor)}.fd-menu__addon-after--submenu{font-size:var(--fdMenu_Affordance_Arrow_Size)}.fd-menu__addon-after--submenu:before{font-family:SAP-icons;text-align:center;text-decoration:inherit;text-transform:none;text-rendering:optimizeLegibility}.fd-menu__addon-after--submenu:before{content:\"\\e066\"}[dir=rtl] .fd-menu__addon-after--submenu:before,.fd-menu__addon-after--submenu[dir=rtl]:before{font-family:SAP-icons;text-align:center;text-decoration:inherit;text-transform:none;text-rendering:optimizeLegibility}[dir=rtl] .fd-menu__addon-after--submenu:before,.fd-menu__addon-after--submenu[dir=rtl]:before{content:\"\\e067\"}.fd-menu__active-dot{font-size:var(--sapFontSize);line-height:normal;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;-webkit-box-sizing:border-box;box-sizing:border-box;forced-color-adjust:none;padding-inline:0;padding-block:0;margin-inline:0;margin-block:0;border:0;height:var(--fdMenu_Active_Dot_Size);width:var(--fdMenu_Active_Dot_Size);min-width:var(--fdMenu_Active_Dot_Size);border-radius:100%;background:var(--sapContent_Selected_ForegroundColor)}.fd-menu__active-dot:before,.fd-menu__active-dot:after{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-menu__checkmark [class*=sap-icon],.fd-menu__checkmark[class*=sap-icon]{color:inherit;background:inherit;font-size:inherit;border-radius:inherit;line-height:1;font-size:1rem;color:var(--sapContent_Selected_ForegroundColor)}.fd-menu__shortcut{line-height:normal;color:var(--sapTextColor);-webkit-box-sizing:border-box;box-sizing:border-box;forced-color-adjust:none;padding-inline:0;padding-block:0;margin-inline:0;margin-block:0;border:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-negative:0;flex-shrink:0;font-weight:400;font-size:var(--sapFontSize);font-family:var(--sapFontFamily);color:var(--fdMenu_Shortcut_Color);-webkit-padding-start:var(--fdMenu_Shortcut_Padding_Left);padding-inline-start:var(--fdMenu_Shortcut_Padding_Left)}.fd-menu__shortcut:before,.fd-menu__shortcut:after{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-menu__shortcut:last-child{padding-inline:var(--fdMenu_Shortcut_Padding_Left) var(--fdMenu_Shortcut_Padding_Right)}.fd-menu--overflow{scrollbar-color:var(--fdScrollbar_Thumb_Color) var(--fdScrollbar_Track_Color);overflow-y:scroll;-webkit-box-shadow:var(--sapContent_Shadow1);box-shadow:var(--sapContent_Shadow1);border-radius:var(--fdButton_Menu_Border_Radius)}.fd-menu--overflow:focus,.fd-menu--overflow.is-focus{z-index:5;outline:none}.fd-menu--overflow::-webkit-scrollbar{width:var(--fdScrollbar_Dimension);height:var(--fdScrollbar_Dimension)}.fd-menu--overflow::-webkit-scrollbar-track,.fd-menu--overflow::-webkit-scrollbar-corner{background-color:var(--fdScrollbar_Track_Color)}.fd-menu--overflow::-webkit-scrollbar-thumb{background-color:transparent;-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);border:var(--fdScrollbar_Thumb_Offset) solid transparent;border-radius:calc(var(--fdScrollbar_Thumb_Border_Radius) - var(--fdScrollbar_Thumb_Offset))}.fd-menu--overflow::-webkit-scrollbar-thumb:hover,.fd-menu--overflow::-webkit-scrollbar-thumb:active{-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-menu--overflow::-webkit-scrollbar-track,.fd-menu--overflow::-webkit-scrollbar-corner{border-radius:0 var(--fdScrollbar_Border_Radius) var(--fdScrollbar_Border_Radius) 0}[dir=rtl] .fd-menu--overflow::-webkit-scrollbar-track,[dir=rtl] .fd-menu--overflow::-webkit-scrollbar-corner,.fd-menu--overflow[dir=rtl]::-webkit-scrollbar-track,.fd-menu--overflow[dir=rtl]::-webkit-scrollbar-corner{border-radius:var(--fdScrollbar_Border_Radius) 0 0 var(--fdScrollbar_Border_Radius)}.fd-menu--overflow .fd-menu__list{-webkit-box-shadow:none;box-shadow:none}.fd-menu--overflow .fd-menu__item:first-child{border-top-right-radius:0}[dir=rtl] .fd-menu--overflow .fd-menu__item:first-child,.fd-menu--overflow .fd-menu__item:first-child[dir=rtl]{border-top-right-radius:var(--fdButton_Menu_Border_Radius);border-top-left-radius:0}.fd-menu--overflow .fd-menu__item:last-of-type{border-bottom-right-radius:0}[dir=rtl] .fd-menu--overflow .fd-menu__item:last-of-type,.fd-menu--overflow .fd-menu__item:last-of-type[dir=rtl]{border-bottom-right-radius:var(--fdButton_Menu_Border_Radius);border-bottom-left-radius:0}.fd-menu--full-width{max-width:100%}.fd-menu--icons{--fdMenu_Item_Spacing_Left: 0;--fdMenu_Item_Spacing_Right: 0}.fd-menu--icons .fd-menu__content:not(.fd-menu__sublist:not(.fd-menu__sublist--icons) .fd-menu__content):first-child,.fd-menu--icons .fd-menu__title:not(.fd-menu__content>.fd-menu__title):not(.fd-menu__sublist:not(.fd-menu__sublist--icons) .fd-menu__title):first-child{-webkit-margin-start:var(--fdMenu_Icon_Width);margin-inline-start:var(--fdMenu_Icon_Width)}.fd-menu--icons .fd-menu__content:not(.fd-menu__sublist:not(.fd-menu__sublist--icons) .fd-menu__content):last-child,.fd-menu--icons .fd-menu__title:not(.fd-menu__content>.fd-menu__title):not(.fd-menu__sublist:not(.fd-menu__sublist--icons) .fd-menu__title):last-child{-webkit-margin-end:var(--fdMenu_Text_Spacing_Right);margin-inline-end:var(--fdMenu_Text_Spacing_Right)}.fd-menu--icons .fd-menu__content:not(.fd-menu__sublist:not(.fd-menu__sublist--icons) .fd-menu__content):only-child,.fd-menu--icons .fd-menu__title:not(.fd-menu__content>.fd-menu__title):not(.fd-menu__sublist:not(.fd-menu__sublist--icons) .fd-menu__title):only-child{margin-inline:var(--fdMenu_Icon_Width) var(--fdMenu_Text_Spacing_Right)}.fd-menu--icons .fd-menu__sublist{--fdMenu_Item_Spacing_Left: 1rem;--fdMenu_Item_Spacing_Right: 1rem}.fd-menu--icons .fd-menu__sublist .fd-menu__title:first-child{-webkit-margin-start:0;margin-inline-start:0}.fd-menu--icons .fd-menu__sublist .fd-menu__title:last-child{-webkit-margin-end:0;margin-inline-end:0}.fd-menu--icons .fd-menu__sublist .fd-menu__title:only-child{margin-inline:0}.fd-menu--icons .fd-menu__sublist.fd-menu__sublist--icons{--fdMenu_Item_Spacing_Left: 0;--fdMenu_Item_Spacing_Right: 0}.fd-menu--icons .fd-menu__sublist.fd-menu__sublist--icons .fd-menu__title:first-child{-webkit-margin-start:var(--fdMenu_Icon_Width);margin-inline-start:var(--fdMenu_Icon_Width)}.fd-menu--icons .fd-menu__sublist.fd-menu__sublist--icons .fd-menu__title:last-child{-webkit-margin-end:var(--fdMenu_Text_Spacing_Right);margin-inline-end:var(--fdMenu_Text_Spacing_Right)}.fd-menu--icons .fd-menu__sublist.fd-menu__sublist--icons .fd-menu__title:only-child{margin-inline:var(--fdMenu_Icon_Width) var(--fdMenu_Text_Spacing_Right)}.fd-menu--icons input,.fd-menu--icons .fd-menu__input{margin-inline:var(--fdMenu_Text_Spacing_Right) var(--fdMenu_Text_Spacing_Right)}.fd-menu--mobile{max-width:100%;width:100%;--fdMenu_Icon_Width: 2.75rem;--fdMenu_Item_Spacing_Left: 1rem;--fdMenu_Item_Spacing_Right: 1rem;--fdMenu_Shortcut_Padding_Right: 1rem;--fdMenu_Text_Spacing_Right: 1rem}.fd-menu--mobile .fd-menu__list,.fd-menu--mobile .fd-menu__sublist{border-radius:0;-webkit-box-shadow:none;box-shadow:none;position:static;margin-inline:0;margin-block:0}.fd-menu--mobile .fd-menu__list .fd-menu__item,.fd-menu--mobile .fd-menu__sublist .fd-menu__item{border-radius:0}.fd-menu--mobile.fd-menu--icons{--fdMenu_Item_Spacing_Left: 0;--fdMenu_Item_Spacing_Right: 0}.fd-menu--mobile.fd-menu--icons input,.fd-menu--mobile.fd-menu--icons .fd-menu__input{margin-inline:1rem}[class*=-condensed] .fd-menu:not([class*=-cozy]),[class*=-compact] .fd-menu:not([class*=-cozy]),.fd-menu[class*=-condensed],.fd-menu[class*=-compact]{--fdMenu_Icon_Width: 2rem;--fdMenu_Link_Height: 2rem;--fdMenu_Item_Spacing_Left: .5rem;--fdMenu_Item_Spacing_Right: .5rem;--fdMenu_Shortcut_Padding_Right: .5rem;--fdMenu_Text_Spacing_Right: .5rem}[class*=-condensed] .fd-menu:not([class*=-cozy]).fd-menu--icons,[class*=-compact] .fd-menu:not([class*=-cozy]).fd-menu--icons,.fd-menu[class*=-condensed].fd-menu--icons,.fd-menu[class*=-compact].fd-menu--icons{--fdMenu_Item_Spacing_Left: 0;--fdMenu_Item_Spacing_Right: 0}[class*=-condensed] .fd-menu:not([class*=-cozy]).fd-menu--icons input,[class*=-condensed] .fd-menu:not([class*=-cozy]).fd-menu--icons .fd-menu__input,[class*=-compact] .fd-menu:not([class*=-cozy]).fd-menu--icons input,[class*=-compact] .fd-menu:not([class*=-cozy]).fd-menu--icons .fd-menu__input,.fd-menu[class*=-condensed].fd-menu--icons input,.fd-menu[class*=-condensed].fd-menu--icons .fd-menu__input,.fd-menu[class*=-compact].fd-menu--icons input,.fd-menu[class*=-compact].fd-menu--icons .fd-menu__input{margin-inline:.5rem}[class*=-condensed] .fd-menu:not([class*=-cozy]).fd-menu--icons .fd-menu__sublist,[class*=-compact] .fd-menu:not([class*=-cozy]).fd-menu--icons .fd-menu__sublist,.fd-menu[class*=-condensed].fd-menu--icons .fd-menu__sublist,.fd-menu[class*=-compact].fd-menu--icons .fd-menu__sublist{--fdMenu_Item_Spacing_Left: .5rem;--fdMenu_Item_Spacing_Right: .5rem}[class*=-condensed] .fd-menu:not([class*=-cozy]).fd-menu--icons .fd-menu__sublist.fd-menu__sublist--icons,[class*=-compact] .fd-menu:not([class*=-cozy]).fd-menu--icons .fd-menu__sublist.fd-menu__sublist--icons,.fd-menu[class*=-condensed].fd-menu--icons .fd-menu__sublist.fd-menu__sublist--icons,.fd-menu[class*=-compact].fd-menu--icons .fd-menu__sublist.fd-menu__sublist--icons{--fdMenu_Item_Spacing_Left: 0;--fdMenu_Item_Spacing_Right: 0}:host{display:inline}fd-menu .fd-menu__list,fd-menu .fd-menu__sublist{flex-wrap:nowrap}.fd-menu__title:not(.fd-menu__title--truncate),.fd-menu__subtitle:not(.fd-menu__subtitle--truncate){white-space:normal}\n"] }]
1815
- }], ctorParameters: () => [], propDecorators: { openOnHoverTime: [{ type: i0.Input, args: [{ isSignal: true, alias: "openOnHoverTime", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], ariaLabelledby: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabelledby", required: false }] }], id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], config: [{ type: i0.Input, args: [{ isSignal: true, alias: "config", required: false }] }], mobile: [{ type: i0.Input, args: [{ isSignal: true, alias: "mobile", required: false }] }], mobileConfig: [{ type: i0.Input, args: [{ isSignal: true, alias: "mobileConfig", required: false }] }], placement: [{ type: i0.Input, args: [{ isSignal: true, alias: "placement", required: false }] }], closeOnEscapeKey: [{ type: i0.Input, args: [{ isSignal: true, alias: "closeOnEscapeKey", required: false }] }], focusAutoCapture: [{ type: i0.Input, args: [{ isSignal: true, alias: "focusAutoCapture", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], disableScrollbar: [{ type: i0.Input, args: [{ isSignal: true, alias: "disableScrollbar", required: false }] }], triggers: [{ type: i0.Input, args: [{ isSignal: true, alias: "triggers", required: false }] }], fillControlMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "fillControlMode", required: false }] }], closeOnOutsideClick: [{ type: i0.Input, args: [{ isSignal: true, alias: "closeOnOutsideClick", required: false }] }], noArrow: [{ type: i0.Input, args: [{ isSignal: true, alias: "noArrow", required: false }] }], focusTrapped: [{ type: i0.Input, args: [{ isSignal: true, alias: "focusTrapped", required: false }] }], additionalBodyClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "additionalBodyClass", required: false }] }], isOpen: [{ type: i0.Input, args: [{ isSignal: true, alias: "isOpen", required: false }] }, { type: i0.Output, args: ["isOpenChange"] }], isOpenChange: [{ type: i0.Output, args: ["isOpenChange"] }], activePath: [{ type: i0.Output, args: ["activePath"] }], beforeOpen: [{ type: i0.Output, args: ["beforeOpen"] }], _menuRootTemplate: [{ type: i0.ViewChild, args: ['menuRootTemplate', { isSignal: true }] }], _menuItems: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => FD_MENU_ITEM_COMPONENT), { isSignal: true }] }], _segmentedButtonHeaderItems: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => SegmentedButtonHeaderDirective), { isSignal: true }] }], _segmentedButtonOptions: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => SegmentedButtonOptionDirective), { isSignal: true }] }] } });
1827
+ }], ctorParameters: () => [], propDecorators: { openOnHoverTime: [{ type: i0.Input, args: [{ isSignal: true, alias: "openOnHoverTime", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], ariaLabelledby: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabelledby", required: false }] }], id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], config: [{ type: i0.Input, args: [{ isSignal: true, alias: "config", required: false }] }], mobile: [{ type: i0.Input, args: [{ isSignal: true, alias: "mobile", required: false }] }], mobileConfig: [{ type: i0.Input, args: [{ isSignal: true, alias: "mobileConfig", required: false }] }], placement: [{ type: i0.Input, args: [{ isSignal: true, alias: "placement", required: false }] }], closeOnEscapeKey: [{ type: i0.Input, args: [{ isSignal: true, alias: "closeOnEscapeKey", required: false }] }], focusAutoCapture: [{ type: i0.Input, args: [{ isSignal: true, alias: "focusAutoCapture", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], disableScrollbar: [{ type: i0.Input, args: [{ isSignal: true, alias: "disableScrollbar", required: false }] }], triggers: [{ type: i0.Input, args: [{ isSignal: true, alias: "triggers", required: false }] }], fillControlMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "fillControlMode", required: false }] }], closeOnOutsideClick: [{ type: i0.Input, args: [{ isSignal: true, alias: "closeOnOutsideClick", required: false }] }], noArrow: [{ type: i0.Input, args: [{ isSignal: true, alias: "noArrow", required: false }] }], focusTrapped: [{ type: i0.Input, args: [{ isSignal: true, alias: "focusTrapped", required: false }] }], additionalBodyClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "additionalBodyClass", required: false }] }], closeOnNavigation: [{ type: i0.Input, args: [{ isSignal: true, alias: "closeOnNavigation", required: false }] }], restoreFocusOnClose: [{ type: i0.Input, args: [{ isSignal: true, alias: "restoreFocusOnClose", required: false }] }], appendTo: [{ type: i0.Input, args: [{ isSignal: true, alias: "appendTo", required: false }] }], fixedPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "fixedPosition", required: false }] }], isOpen: [{ type: i0.Input, args: [{ isSignal: true, alias: "isOpen", required: false }] }, { type: i0.Output, args: ["isOpenChange"] }], isOpenChange: [{ type: i0.Output, args: ["isOpenChange"] }], activePath: [{ type: i0.Output, args: ["activePath"] }], beforeOpen: [{ type: i0.Output, args: ["beforeOpen"] }], _menuRootTemplate: [{ type: i0.ViewChild, args: ['menuRootTemplate', { isSignal: true }] }], _menuItems: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => FD_MENU_ITEM_COMPONENT), { isSignal: true }] }], _segmentedButtonHeaderItems: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => SegmentedButtonHeaderDirective), { isSignal: true }] }], _segmentedButtonOptions: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => SegmentedButtonOptionDirective), { isSignal: true }] }] } });
1816
1828
 
1817
1829
  /**
1818
1830
  * @deprecated