@fundamental-ngx/core 0.61.3 → 0.61.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/fesm2022/fundamental-ngx-core-breadcrumb.mjs +1 -1
  2. package/fesm2022/fundamental-ngx-core-breadcrumb.mjs.map +1 -1
  3. package/fesm2022/fundamental-ngx-core-carousel.mjs +7 -8
  4. package/fesm2022/fundamental-ngx-core-carousel.mjs.map +1 -1
  5. package/fesm2022/fundamental-ngx-core-form.mjs +10 -16
  6. package/fesm2022/fundamental-ngx-core-form.mjs.map +1 -1
  7. package/fesm2022/fundamental-ngx-core-icon.mjs +2 -2
  8. package/fesm2022/fundamental-ngx-core-icon.mjs.map +1 -1
  9. package/fesm2022/fundamental-ngx-core-inline-help.mjs +34 -15
  10. package/fesm2022/fundamental-ngx-core-inline-help.mjs.map +1 -1
  11. package/fesm2022/fundamental-ngx-core-menu.mjs +40 -29
  12. package/fesm2022/fundamental-ngx-core-menu.mjs.map +1 -1
  13. package/fesm2022/fundamental-ngx-core-multi-combobox.mjs +75 -31
  14. package/fesm2022/fundamental-ngx-core-multi-combobox.mjs.map +1 -1
  15. package/fesm2022/fundamental-ngx-core-popover.mjs +152 -16
  16. package/fesm2022/fundamental-ngx-core-popover.mjs.map +1 -1
  17. package/fesm2022/fundamental-ngx-core-product-switch.mjs +23 -27
  18. package/fesm2022/fundamental-ngx-core-product-switch.mjs.map +1 -1
  19. package/fesm2022/fundamental-ngx-core-select.mjs +12 -3
  20. package/fesm2022/fundamental-ngx-core-select.mjs.map +1 -1
  21. package/fesm2022/fundamental-ngx-core-shellbar.mjs +2 -2
  22. package/fesm2022/fundamental-ngx-core-shellbar.mjs.map +1 -1
  23. package/fesm2022/fundamental-ngx-core-tabs.mjs +19 -25
  24. package/fesm2022/fundamental-ngx-core-tabs.mjs.map +1 -1
  25. package/package.json +3 -3
  26. package/types/fundamental-ngx-core-carousel.d.ts +2 -3
  27. package/types/fundamental-ngx-core-form.d.ts +7 -10
  28. package/types/fundamental-ngx-core-inline-help.d.ts +20 -15
  29. package/types/fundamental-ngx-core-menu.d.ts +17 -9
  30. package/types/fundamental-ngx-core-mobile-mode.d.ts +6 -2
  31. package/types/fundamental-ngx-core-multi-combobox.d.ts +18 -1
  32. package/types/fundamental-ngx-core-popover.d.ts +48 -3
  33. package/types/fundamental-ngx-core-product-switch.d.ts +20 -24
  34. package/types/fundamental-ngx-core-select.d.ts +5 -0
  35. package/types/fundamental-ngx-core-tabs.d.ts +5 -10
@@ -1 +1 @@
1
- {"version":3,"file":"fundamental-ngx-core-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":"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"}
@@ -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 {
@@ -1219,7 +1213,6 @@ class DefaultMenuItem {
1219
1213
 
1220
1214
  const MENU_COMPONENT = new InjectionToken('MenuInterface');
1221
1215
 
1222
- // @ts-expect-error - MenuInterface has InputSignal properties which don't perfectly match MobileMode base
1223
1216
  class MenuMobileComponent extends MobileModeBase {
1224
1217
  /** @hidden */
1225
1218
  set _watch(_dialogBody) {
@@ -1412,20 +1405,20 @@ class MenuComponent {
1412
1405
  title: '',
1413
1406
  hasCloseButton: true
1414
1407
  }, ...(ngDevMode ? [{ debugName: "mobileConfig" }] : []));
1415
- /** Popover placement */
1408
+ /** Menu placement */
1416
1409
  this.placement = input('bottom-start', ...(ngDevMode ? [{ debugName: "placement" }] : []));
1417
- /** Whether to close popover on escape key */
1410
+ /** Whether to close menu on escape key */
1418
1411
  this.closeOnEscapeKey = input(true, { ...(ngDevMode ? { debugName: "closeOnEscapeKey" } : {}), transform: booleanAttribute });
1419
1412
  /** Whether to auto-capture focus when opened */
1420
1413
  this.focusAutoCapture = input(true, { ...(ngDevMode ? { debugName: "focusAutoCapture" } : {}), transform: booleanAttribute });
1421
- /** Whether the menu/popover is disabled */
1414
+ /** Whether the menu is disabled */
1422
1415
  this.disabled = input(false, { ...(ngDevMode ? { debugName: "disabled" } : {}), transform: booleanAttribute });
1423
1416
  /** Whether to disable scrollbar */
1424
1417
  this.disableScrollbar = input(false, { ...(ngDevMode ? { debugName: "disableScrollbar" } : {}), transform: booleanAttribute });
1425
1418
  /** Trigger events for opening/closing */
1426
1419
  this.triggers = input(['click'], ...(ngDevMode ? [{ debugName: "triggers" }] : []));
1427
1420
  /**
1428
- * Preset options for the popover body width.
1421
+ * Preset options for the menu body width.
1429
1422
  * * `at-least` will apply a minimum width to the body equivalent to the width of the control.
1430
1423
  * * `equal` will apply a width to the body equivalent to the width of the control.
1431
1424
  * * Leave blank for no effect.
@@ -1435,17 +1428,25 @@ class MenuComponent {
1435
1428
  this.closeOnOutsideClick = input(true, { ...(ngDevMode ? { debugName: "closeOnOutsideClick" } : {}), transform: booleanAttribute });
1436
1429
  /** Whether to hide the arrow */
1437
1430
  this.noArrow = input(true, { ...(ngDevMode ? { debugName: "noArrow" } : {}), transform: booleanAttribute });
1438
- /** Whether the popover should trap focus within its boundaries */
1431
+ /** Whether the menu should trap focus within its boundaries */
1439
1432
  this.focusTrapped = input(true, { ...(ngDevMode ? { debugName: "focusTrapped" } : {}), transform: booleanAttribute });
1440
- /** Additional CSS classes for the popover body container */
1433
+ /** Additional CSS classes for the menu body container */
1441
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 });
1442
1443
  /** Two-way binding for menu open state */
1443
1444
  this.isOpen = model(false, ...(ngDevMode ? [{ debugName: "isOpen" }] : []));
1444
1445
  /** Emits when menu open state changes - required for MenuInterface compatibility */
1445
1446
  this.isOpenChange = output();
1446
1447
  /** Emits array of active menu items */
1447
1448
  this.activePath = output();
1448
- /** Event emitted right before the popover is being opened. */
1449
+ /** Event emitted right before the menu is being opened. */
1449
1450
  this.beforeOpen = output();
1450
1451
  /** @hidden Injected dependencies using inject() function */
1451
1452
  this.elementRef = inject(ElementRef);
@@ -1493,8 +1494,9 @@ class MenuComponent {
1493
1494
  }
1494
1495
  // Emit isOpenChange for MenuMobileComponent and other consumers
1495
1496
  this.isOpenChange.emit(openState);
1496
- // Sync to service only if not already syncing (prevents loop)
1497
- 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()) {
1498
1500
  this._syncingIsOpen = true;
1499
1501
  this._popoverService.isOpen.set(openState);
1500
1502
  this._syncingIsOpen = false;
@@ -1518,6 +1520,10 @@ class MenuComponent {
1518
1520
  this._popoverService.fillControlMode.set(this.fillControlMode() ?? cfg.fillControlMode ?? null);
1519
1521
  this._popoverService.closeOnOutsideClick.set(this.closeOnOutsideClick() ?? cfg.closeOnOutsideClick ?? true);
1520
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);
1521
1527
  const bodyClass = this.additionalBodyClass() ?? cfg.additionalBodyClass ?? '';
1522
1528
  this._popoverService.additionalBodyClass.set(bodyClass + ' fd-popover--menu');
1523
1529
  });
@@ -1659,7 +1665,7 @@ class MenuComponent {
1659
1665
  /** @hidden */
1660
1666
  set trigger(trigger) {
1661
1667
  this._externalTrigger = trigger;
1662
- if (trigger) {
1668
+ if (trigger && !this.mobile()) {
1663
1669
  this._popoverService.initialise(trigger);
1664
1670
  }
1665
1671
  this._destroyEventListeners();
@@ -1672,7 +1678,8 @@ class MenuComponent {
1672
1678
  open() {
1673
1679
  // Always update component state for consistency
1674
1680
  this.isOpen.set(true);
1675
- // 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.
1676
1683
  if (!this.mobile()) {
1677
1684
  this._popoverService.open();
1678
1685
  }
@@ -1692,7 +1699,7 @@ class MenuComponent {
1692
1699
  toggle() {
1693
1700
  this.isOpen() ? this.close() : this.open();
1694
1701
  }
1695
- /** Method called to refresh position of opened popover */
1702
+ /** Method called to refresh position of opened menu */
1696
1703
  refreshPosition() {
1697
1704
  this._popoverService.refreshPosition();
1698
1705
  }
@@ -1732,6 +1739,10 @@ class MenuComponent {
1732
1739
  fillControlMode: this.fillControlMode() ?? cfg.fillControlMode,
1733
1740
  closeOnOutsideClick: this.closeOnOutsideClick() ?? cfg.closeOnOutsideClick,
1734
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,
1735
1746
  additionalBodyClass: ((this.additionalBodyClass() ?? cfg.additionalBodyClass ?? '') + ' fd-popover--menu').trim()
1736
1747
  };
1737
1748
  this._popoverService.initialise(this._externalTrigger, configToPass);
@@ -1788,7 +1799,7 @@ class MenuComponent {
1788
1799
  }
1789
1800
  }
1790
1801
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: MenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1791
- 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: [
1792
1803
  MenuService,
1793
1804
  PopoverService,
1794
1805
  DynamicComponentService,
@@ -1813,7 +1824,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImpor
1813
1824
  ], host: {
1814
1825
  '[class.fd-popover-custom--disabled]': 'disabled()'
1815
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"] }]
1816
- }], 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 }] }] } });
1817
1828
 
1818
1829
  /**
1819
1830
  * @deprecated