@fundamental-ngx/core 0.64.1-rc.8 → 0.64.1

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 (38) hide show
  1. package/fesm2022/fundamental-ngx-core-action-sheet.mjs +1 -1
  2. package/fesm2022/fundamental-ngx-core-action-sheet.mjs.map +1 -1
  3. package/fesm2022/fundamental-ngx-core-card.mjs +2 -2
  4. package/fesm2022/fundamental-ngx-core-card.mjs.map +1 -1
  5. package/fesm2022/fundamental-ngx-core-combobox.mjs +1 -1
  6. package/fesm2022/fundamental-ngx-core-combobox.mjs.map +1 -1
  7. package/fesm2022/fundamental-ngx-core-date-picker.mjs +1 -1
  8. package/fesm2022/fundamental-ngx-core-date-picker.mjs.map +1 -1
  9. package/fesm2022/fundamental-ngx-core-datetime-picker.mjs +1 -1
  10. package/fesm2022/fundamental-ngx-core-datetime-picker.mjs.map +1 -1
  11. package/fesm2022/fundamental-ngx-core-form.mjs +1 -1
  12. package/fesm2022/fundamental-ngx-core-form.mjs.map +1 -1
  13. package/fesm2022/fundamental-ngx-core-multi-combobox.mjs +1 -1
  14. package/fesm2022/fundamental-ngx-core-multi-combobox.mjs.map +1 -1
  15. package/fesm2022/fundamental-ngx-core-multi-input.mjs +1 -1
  16. package/fesm2022/fundamental-ngx-core-multi-input.mjs.map +1 -1
  17. package/fesm2022/fundamental-ngx-core-nested-list.mjs +1 -1
  18. package/fesm2022/fundamental-ngx-core-nested-list.mjs.map +1 -1
  19. package/fesm2022/fundamental-ngx-core-popover.mjs +16 -4
  20. package/fesm2022/fundamental-ngx-core-popover.mjs.map +1 -1
  21. package/fesm2022/fundamental-ngx-core-product-switch.mjs +87 -10
  22. package/fesm2022/fundamental-ngx-core-product-switch.mjs.map +1 -1
  23. package/fesm2022/fundamental-ngx-core-progress-indicator.mjs +1 -1
  24. package/fesm2022/fundamental-ngx-core-progress-indicator.mjs.map +1 -1
  25. package/fesm2022/fundamental-ngx-core-select.mjs +1 -1
  26. package/fesm2022/fundamental-ngx-core-select.mjs.map +1 -1
  27. package/fesm2022/fundamental-ngx-core-time-picker.mjs +1 -1
  28. package/fesm2022/fundamental-ngx-core-time-picker.mjs.map +1 -1
  29. package/fesm2022/fundamental-ngx-core-token.mjs +1 -1
  30. package/fesm2022/fundamental-ngx-core-token.mjs.map +1 -1
  31. package/fesm2022/fundamental-ngx-core-toolbar.mjs +1 -1
  32. package/fesm2022/fundamental-ngx-core-toolbar.mjs.map +1 -1
  33. package/fesm2022/fundamental-ngx-core-user-menu.mjs +2 -2
  34. package/fesm2022/fundamental-ngx-core-user-menu.mjs.map +1 -1
  35. package/package.json +3 -3
  36. package/schematics/package.json +1 -1
  37. package/types/fundamental-ngx-core-popover.d.ts +9 -1
  38. package/types/fundamental-ngx-core-product-switch.d.ts +34 -3
@@ -39,6 +39,8 @@ declare class PopoverBodyComponent {
39
39
  readonly minHeight: _angular_core.InputSignal<Nullable<string>>;
40
40
  /** Maximum height of the popover body element. */
41
41
  readonly maxHeight: _angular_core.InputSignal<Nullable<string>>;
42
+ /** aria-modal value for the popover body. Set to false for non-modal dialogs (e.g. product switch). */
43
+ readonly ariaModal: _angular_core.InputSignal<boolean | null>;
42
44
  /** @hidden */
43
45
  readonly _cdkTrapFocus: _angular_core.Signal<CdkTrapFocus | undefined>;
44
46
  /** @hidden */
@@ -73,6 +75,8 @@ declare class PopoverBodyComponent {
73
75
  readonly _bodyAriaLabelledBy: _angular_core.WritableSignal<string | null>;
74
76
  /** @hidden ID for the popover body. */
75
77
  readonly _bodyId: _angular_core.WritableSignal<string | null>;
78
+ /** @hidden aria-modal value for the popover body. */
79
+ readonly _bodyAriaModal: _angular_core.WritableSignal<boolean | null>;
76
80
  /** @hidden Classes added to arrow element. */
77
81
  readonly _arrowClasses: _angular_core.WritableSignal<string>;
78
82
  /** @hidden text rendered inside popover's body. */
@@ -104,7 +108,7 @@ declare class PopoverBodyComponent {
104
108
  /** @hidden */
105
109
  _focusFirstTabbableElement(forced?: boolean): void;
106
110
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<PopoverBodyComponent, never>;
107
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<PopoverBodyComponent, "fd-popover-body", never, { "minWidth": { "alias": "minWidth"; "required": false; "isSignal": true; }; "maxWidth": { "alias": "maxWidth"; "required": false; "isSignal": true; }; "minHeight": { "alias": "minHeight"; "required": false; "isSignal": true; }; "maxHeight": { "alias": "maxHeight"; "required": false; "isSignal": true; }; }, { "onClose": "onClose"; }, never, ["[fd-popover-body-header]", "[fd-popover-body-subheader]", "*", "[fd-popover-body-footer]"], true, never>;
111
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<PopoverBodyComponent, "fd-popover-body", never, { "minWidth": { "alias": "minWidth"; "required": false; "isSignal": true; }; "maxWidth": { "alias": "maxWidth"; "required": false; "isSignal": true; }; "minHeight": { "alias": "minHeight"; "required": false; "isSignal": true; }; "maxHeight": { "alias": "maxHeight"; "required": false; "isSignal": true; }; "ariaModal": { "alias": "ariaModal"; "required": false; "isSignal": true; }; }, { "onClose": "onClose"; }, never, ["[fd-popover-body-header]", "[fd-popover-body-subheader]", "*", "[fd-popover-body-footer]"], true, never>;
108
112
  }
109
113
 
110
114
  /**
@@ -455,6 +459,8 @@ interface PopoverConfig {
455
459
  bodyAriaLabel?: string | null;
456
460
  /** ID of the element that labels the popover body. */
457
461
  bodyAriaLabelledBy?: string | null;
462
+ /** aria-modal value for the popover body. */
463
+ bodyAriaModal?: boolean | null;
458
464
  /** ID for the popover body. */
459
465
  bodyId?: string | null;
460
466
  }
@@ -744,6 +750,8 @@ declare class PopoverService {
744
750
  protected _bodyAriaLabel: string | null;
745
751
  /** @hidden ID of the element that labels the popover body. */
746
752
  protected _bodyAriaLabelledBy: string | null;
753
+ /** @hidden aria-modal value for the popover body. */
754
+ protected _bodyAriaModal: boolean | null;
747
755
  /** @hidden ID for the popover body. */
748
756
  protected readonly _bodyId: _angular_core.WritableSignal<string | null>;
749
757
  /** @hidden */
@@ -1,6 +1,6 @@
1
- import { ViewportRuler } from '@angular/cdk/scrolling';
2
1
  import * as _angular_core from '@angular/core';
3
2
  import { OnInit, OnDestroy, EventEmitter, ChangeDetectorRef, TemplateRef, InjectionToken } from '@angular/core';
3
+ import { ViewportRuler } from '@angular/cdk/scrolling';
4
4
  import { ColorAccent, FdDropEvent } from '@fundamental-ngx/cdk/utils';
5
5
  import { IndicationColor } from '@fundamental-ngx/core/avatar';
6
6
  import { IconFont } from '@fundamental-ngx/core/icon';
@@ -16,6 +16,8 @@ interface ProductSwitchItem {
16
16
  subtitle?: string;
17
17
  /** Callback function that will be called on selecting this product from dropdown */
18
18
  callback?: (event: MouseEvent) => void;
19
+ /** URL to navigate to when the product item is clicked */
20
+ url?: string;
19
21
  /** Icon of product item */
20
22
  icon?: string;
21
23
  /** Avatar representing the product item */
@@ -43,6 +45,8 @@ interface ProductSwitchItem {
43
45
  disabledDragAndDrop?: boolean;
44
46
  /** Whether this element should stick in one place, without changing position */
45
47
  stickToPosition?: boolean;
48
+ /** Navigation target for the product item link (_self, _blank, _parent, _top) */
49
+ target?: '_self' | '_blank' | '_parent' | '_top';
46
50
  }
47
51
 
48
52
  declare class ProductSwitchBodyComponent implements OnInit, OnDestroy {
@@ -58,8 +62,19 @@ declare class ProductSwitchBodyComponent implements OnInit, OnDestroy {
58
62
  readonly productsChange: EventEmitter<any[]>;
59
63
  /** Event emitted on product click */
60
64
  readonly itemClicked: EventEmitter<void>;
65
+ /** Whether the product switch body is open. When set to true, focuses the first item. */
66
+ readonly isOpen: _angular_core.ModelSignal<boolean>;
61
67
  /** @hidden */
62
68
  protected readonly FD_DEFAULT_ICON_FONT_FAMILY = "SAP-icons";
69
+ /** @hidden Returns the accessible label for a product item. */
70
+ protected readonly _itemAriaLabel: _angular_core.Signal<(item: ProductSwitchItem) => string>;
71
+ /** @hidden Resolves all target i18n strings once per change detection cycle. */
72
+ private readonly _targetLabels;
73
+ /** @hidden */
74
+ private readonly _translate;
75
+ private readonly _targetBlank;
76
+ private readonly _targetParent;
77
+ private readonly _targetTop;
63
78
  /** @hidden */
64
79
  private _listMode;
65
80
  /** @hidden */
@@ -67,6 +82,14 @@ declare class ProductSwitchBodyComponent implements OnInit, OnDestroy {
67
82
  /** @hidden */
68
83
  private _rtlService;
69
84
  /** @hidden */
85
+ private readonly _elementRef;
86
+ /** @hidden */
87
+ private readonly _destroyRef;
88
+ /** @hidden */
89
+ private _triggerElement;
90
+ /** @hidden */
91
+ private _lastFocusedIndex;
92
+ /** @hidden */
70
93
  constructor(_viewportRuler: ViewportRuler, _cdr: ChangeDetectorRef);
71
94
  /** @hidden */
72
95
  ngOnInit(): void;
@@ -82,6 +105,12 @@ declare class ProductSwitchBodyComponent implements OnInit, OnDestroy {
82
105
  _isSmallMode(): boolean;
83
106
  /** @hidden */
84
107
  _isListMode(): boolean;
108
+ /** @hidden Focuses the appropriate item on open, or returns focus to the trigger on close. */
109
+ private _syncFocusWithOpenState;
110
+ /** @hidden Focuses the item at the given index within the list. */
111
+ private _focusItemAtIndex;
112
+ /** @hidden Records the index of the last focused product item so it can be restored on reopen. */
113
+ private _trackFocusedItem;
85
114
  /** @hidden */
86
115
  private _checkSize;
87
116
  /** @hidden */
@@ -93,7 +122,7 @@ declare class ProductSwitchBodyComponent implements OnInit, OnDestroy {
93
122
  /** @hidden */
94
123
  private _handleListArrowUpDown;
95
124
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ProductSwitchBodyComponent, never>;
96
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<ProductSwitchBodyComponent, "fd-product-switch-body", never, { "dragAndDropEnabled": { "alias": "dragAndDropEnabled"; "required": false; }; "products": { "alias": "products"; "required": false; }; "forceListMode": { "alias": "forceListMode"; "required": false; }; }, { "productsChange": "productsChange"; "itemClicked": "itemClicked"; }, never, never, true, never>;
125
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ProductSwitchBodyComponent, "fd-product-switch-body", never, { "dragAndDropEnabled": { "alias": "dragAndDropEnabled"; "required": false; }; "products": { "alias": "products"; "required": false; }; "forceListMode": { "alias": "forceListMode"; "required": false; }; "isOpen": { "alias": "isOpen"; "required": false; "isSignal": true; }; }, { "productsChange": "productsChange"; "itemClicked": "itemClicked"; "isOpen": "isOpenChange"; }, never, never, true, never>;
97
126
  }
98
127
 
99
128
  declare class ProductSwitchButtonDirective {
@@ -134,9 +163,11 @@ declare class ProductSwitchComponent {
134
163
  /** @hidden */
135
164
  protected readonly customProductSwitchButton: _angular_core.Signal<ProductSwitchButtonDirective | undefined>;
136
165
  /** @hidden */
166
+ private readonly _productSwitchBody;
167
+ /** @hidden */
137
168
  constructor();
138
169
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ProductSwitchComponent, never>;
139
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<ProductSwitchComponent, "fd-product-switch", never, { "placement": { "alias": "placement"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "closeOnEscapeKey": { "alias": "closeOnEscapeKey"; "required": false; "isSignal": true; }; "closeOnOutsideClick": { "alias": "closeOnOutsideClick"; "required": false; "isSignal": true; }; "noArrow": { "alias": "noArrow"; "required": false; "isSignal": true; }; "disableScrollbar": { "alias": "disableScrollbar"; "required": false; "isSignal": true; }; "triggers": { "alias": "triggers"; "required": false; "isSignal": true; }; "focusTrapped": { "alias": "focusTrapped"; "required": false; "isSignal": true; }; "focusAutoCapture": { "alias": "focusAutoCapture"; "required": false; "isSignal": true; }; "isOpen": { "alias": "isOpen"; "required": false; "isSignal": true; }; }, { "isOpen": "isOpenChange"; "beforeOpen": "beforeOpen"; }, ["customProductSwitchButton"], ["*"], true, never>;
170
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ProductSwitchComponent, "fd-product-switch", never, { "placement": { "alias": "placement"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "closeOnEscapeKey": { "alias": "closeOnEscapeKey"; "required": false; "isSignal": true; }; "closeOnOutsideClick": { "alias": "closeOnOutsideClick"; "required": false; "isSignal": true; }; "noArrow": { "alias": "noArrow"; "required": false; "isSignal": true; }; "disableScrollbar": { "alias": "disableScrollbar"; "required": false; "isSignal": true; }; "triggers": { "alias": "triggers"; "required": false; "isSignal": true; }; "focusTrapped": { "alias": "focusTrapped"; "required": false; "isSignal": true; }; "focusAutoCapture": { "alias": "focusAutoCapture"; "required": false; "isSignal": true; }; "isOpen": { "alias": "isOpen"; "required": false; "isSignal": true; }; }, { "isOpen": "isOpenChange"; "beforeOpen": "beforeOpen"; }, ["customProductSwitchButton", "_productSwitchBody"], ["*"], true, never>;
140
171
  }
141
172
 
142
173
  /**