@fundamental-ngx/core 0.63.0-rc.2 → 0.63.0-rc.21
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.
- package/fesm2022/fundamental-ngx-core-action-bar.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-action-sheet.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-action-sheet.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-avatar-group.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-avatar-group.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-avatar.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-bar.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-bar.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-breadcrumb.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-busy-indicator.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-button.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-calendar.mjs +52 -47
- package/fesm2022/fundamental-ngx-core-calendar.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-card.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-card.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-carousel.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-checkbox.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-combobox.mjs +1 -1
- package/fesm2022/fundamental-ngx-core-combobox.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-date-picker.mjs +7 -6
- package/fesm2022/fundamental-ngx-core-date-picker.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-datetime-picker.mjs +14 -13
- package/fesm2022/fundamental-ngx-core-datetime-picker.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-datetime.mjs +295 -100
- package/fesm2022/fundamental-ngx-core-datetime.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-dialog.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-dynamic-page.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-dynamic-side-content.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-facets.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-feed-input.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-feed-list-item.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-file-uploader.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-fixed-card-layout.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-flexible-column-layout.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-form.mjs +19 -16
- package/fesm2022/fundamental-ngx-core-form.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-generic-tag.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-grid-list.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-icon.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-info-label.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-input-group.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-layout-grid.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-layout-panel.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-link.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-list.mjs +4 -4
- package/fesm2022/fundamental-ngx-core-message-box.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-message-page.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-message-strip.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-message-strip.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-message-toast.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-micro-process-flow.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-multi-combobox.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-multi-combobox.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-multi-input.mjs +1 -1
- package/fesm2022/fundamental-ngx-core-multi-input.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-nested-list.mjs +1 -1
- package/fesm2022/fundamental-ngx-core-nested-list.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-notification.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-object-attribute.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-object-identifier.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-object-marker.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-object-status.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-overflow-layout.mjs +1 -1
- package/fesm2022/fundamental-ngx-core-overflow-layout.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-pagination.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-panel.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-popover.mjs +110 -6
- package/fesm2022/fundamental-ngx-core-popover.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-product-switch.mjs +3 -3
- package/fesm2022/fundamental-ngx-core-product-switch.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-progress-indicator.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-progress-indicator.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-quick-view.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-radio.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-rating-indicator.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-rating-indicator.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-resizable-card-layout.mjs +4 -4
- package/fesm2022/fundamental-ngx-core-segmented-button.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-select.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-select.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-settings.mjs +4 -4
- package/fesm2022/fundamental-ngx-core-shellbar.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-shellbar.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-side-navigation.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-skeleton.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-slider.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-slider.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-split-button.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-status-indicator.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-step-input.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-switch.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-table.mjs +4 -4
- package/fesm2022/fundamental-ngx-core-tabs.mjs +4 -4
- package/fesm2022/fundamental-ngx-core-text.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-tile.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-time-picker.mjs +8 -17
- package/fesm2022/fundamental-ngx-core-time-picker.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-time.mjs +8 -16
- package/fesm2022/fundamental-ngx-core-time.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-title.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-token.mjs +4 -4
- package/fesm2022/fundamental-ngx-core-token.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-toolbar.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-toolbar.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-tree.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-upload-collection.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-user-menu.mjs +25 -4
- package/fesm2022/fundamental-ngx-core-user-menu.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-vertical-navigation.mjs +4 -4
- package/fesm2022/fundamental-ngx-core-wizard.mjs +2 -2
- package/package.json +4 -4
- package/types/fundamental-ngx-core-calendar.d.ts +5 -12
- package/types/fundamental-ngx-core-datetime-picker.d.ts +0 -2
- package/types/fundamental-ngx-core-datetime.d.ts +109 -68
- package/types/fundamental-ngx-core-form.d.ts +2 -0
- package/types/fundamental-ngx-core-popover.d.ts +378 -319
- package/types/fundamental-ngx-core-time-picker.d.ts +2 -8
- package/types/fundamental-ngx-core-time.d.ts +1 -7
- package/types/fundamental-ngx-core-user-menu.d.ts +7 -2
|
@@ -1,17 +1,345 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { TemplateRef, ElementRef, AfterContentChecked, AfterViewInit, AfterContentInit, OnDestroy, ViewContainerRef, OnInit, InjectionToken, ModelSignal, EventEmitter, Signal } from '@angular/core';
|
|
3
|
+
import { ConnectionPositionPair, ConnectedPosition, CdkOverlayOrigin, ScrollStrategy } from '@angular/cdk/overlay';
|
|
4
4
|
import { Nullable } from '@fundamental-ngx/cdk/utils';
|
|
5
5
|
import { Placement, PopoverFillMode } from '@fundamental-ngx/core/shared';
|
|
6
|
+
import { MobileModeConfig, MobileMode, MobileModeBase } from '@fundamental-ngx/core/mobile-mode';
|
|
6
7
|
import { CdkTrapFocus } from '@angular/cdk/a11y';
|
|
7
8
|
import { ContentDensityObserver } from '@fundamental-ngx/core/content-density';
|
|
8
9
|
import { ScrollbarDirective } from '@fundamental-ngx/core/scrollbar';
|
|
9
10
|
import { Subject } from 'rxjs';
|
|
10
|
-
import { MobileMode, MobileModeBase, MobileModeConfig } from '@fundamental-ngx/core/mobile-mode';
|
|
11
11
|
import * as i1 from '@fundamental-ngx/core/dialog';
|
|
12
12
|
import { DialogConfig } from '@fundamental-ngx/core/dialog';
|
|
13
13
|
import * as i2 from '@fundamental-ngx/core/button';
|
|
14
14
|
|
|
15
|
+
declare class PopoverBodyDirective {
|
|
16
|
+
/**
|
|
17
|
+
* The template to be used as the popover's body.
|
|
18
|
+
**/
|
|
19
|
+
readonly templateRef: TemplateRef<void>;
|
|
20
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<PopoverBodyDirective, never>;
|
|
21
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<PopoverBodyDirective, "[fdPopoverBody]", never, {}, {}, never, never, true, never>;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* A component used to enforce a certain layout for the popover.
|
|
26
|
+
* ```html
|
|
27
|
+
* <fd-popover>
|
|
28
|
+
* <fd-popover-control>Control Element</fd-popover-control>
|
|
29
|
+
* <fd-popover-body>Popover Body</fd-popover-body>
|
|
30
|
+
* </fd-popover>
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
declare class PopoverBodyComponent {
|
|
34
|
+
/** Minimum width of the popover body element. */
|
|
35
|
+
readonly minWidth: _angular_core.InputSignal<Nullable<string>>;
|
|
36
|
+
/** Maximum width of the popover body element. */
|
|
37
|
+
readonly maxWidth: _angular_core.InputSignal<Nullable<string>>;
|
|
38
|
+
/** Minimum height of the popover body element. */
|
|
39
|
+
readonly minHeight: _angular_core.InputSignal<Nullable<string>>;
|
|
40
|
+
/** Maximum height of the popover body element. */
|
|
41
|
+
readonly maxHeight: _angular_core.InputSignal<Nullable<string>>;
|
|
42
|
+
/** @hidden */
|
|
43
|
+
readonly _cdkTrapFocus: _angular_core.Signal<CdkTrapFocus | undefined>;
|
|
44
|
+
/** @hidden */
|
|
45
|
+
readonly _scrollbar: _angular_core.Signal<ScrollbarDirective | undefined>;
|
|
46
|
+
/** @hidden Whether to wrap content with fd-scrollbar directive. */
|
|
47
|
+
readonly _disableScrollbar: _angular_core.WritableSignal<boolean>;
|
|
48
|
+
/** @hidden Whether the popover should have an arrow. */
|
|
49
|
+
readonly _noArrow: _angular_core.WritableSignal<boolean>;
|
|
50
|
+
/** @hidden Whether the popover container needs an extra class for styling. */
|
|
51
|
+
readonly _additionalBodyClass: _angular_core.WritableSignal<Nullable<string>>;
|
|
52
|
+
/** @hidden Whether the popover should be focusTrapped. */
|
|
53
|
+
readonly _focusTrapped: _angular_core.WritableSignal<boolean>;
|
|
54
|
+
/**
|
|
55
|
+
* @hidden
|
|
56
|
+
* Whether the popover should automatically move focus into the trapped region upon
|
|
57
|
+
* initialization and return focus to the previous activeElement upon destruction.
|
|
58
|
+
*/
|
|
59
|
+
readonly _focusAutoCapture: _angular_core.WritableSignal<boolean>;
|
|
60
|
+
/** @hidden Property bind to popover's body. */
|
|
61
|
+
readonly _popoverBodyWidth: _angular_core.WritableSignal<number | undefined>;
|
|
62
|
+
/** @hidden Property bind to popover's body. */
|
|
63
|
+
readonly _popoverBodyMinWidth: _angular_core.WritableSignal<number | undefined>;
|
|
64
|
+
/** @hidden Property bind to popover's body. */
|
|
65
|
+
readonly _maxWidth: _angular_core.WritableSignal<Nullable<number>>;
|
|
66
|
+
/** @hidden Property bind to popover's body. */
|
|
67
|
+
readonly _closeOnEscapeKey: _angular_core.WritableSignal<boolean>;
|
|
68
|
+
/** @hidden Aria role for the popover body. */
|
|
69
|
+
readonly _bodyRole: _angular_core.WritableSignal<Nullable<string>>;
|
|
70
|
+
/** @hidden Aria label for the popover body. */
|
|
71
|
+
readonly _bodyAriaLabel: _angular_core.WritableSignal<Nullable<string>>;
|
|
72
|
+
/** @hidden ID of the element that labels the popover body. */
|
|
73
|
+
readonly _bodyAriaLabelledBy: _angular_core.WritableSignal<string | null>;
|
|
74
|
+
/** @hidden ID for the popover body. */
|
|
75
|
+
readonly _bodyId: _angular_core.WritableSignal<string | null>;
|
|
76
|
+
/** @hidden Classes added to arrow element. */
|
|
77
|
+
readonly _arrowClasses: _angular_core.WritableSignal<string>;
|
|
78
|
+
/** @hidden text rendered inside popover's body. */
|
|
79
|
+
readonly text: _angular_core.WritableSignal<Nullable<string>>;
|
|
80
|
+
/** @hidden template rendered inside popover's body. */
|
|
81
|
+
readonly _templateToDisplay: _angular_core.WritableSignal<TemplateRef<any> | undefined>;
|
|
82
|
+
/** @hidden Whether the popover body is resizable. */
|
|
83
|
+
readonly _resizable: _angular_core.WritableSignal<boolean>;
|
|
84
|
+
/** @hidden */
|
|
85
|
+
readonly _resizeHandleLocation: _angular_core.WritableSignal<"top-right" | "top-left" | "bottom-right" | "bottom-left">;
|
|
86
|
+
/** Event emitted when popover body requests to be closed (e.g., Escape key press) */
|
|
87
|
+
readonly onClose: _angular_core.OutputEmitterRef<void>;
|
|
88
|
+
/** @hidden */
|
|
89
|
+
readonly _elementRef: ElementRef<any>;
|
|
90
|
+
/** @hidden */
|
|
91
|
+
readonly _contentDensityObserver: ContentDensityObserver;
|
|
92
|
+
/** @hidden */
|
|
93
|
+
private readonly _renderer;
|
|
94
|
+
/** @hidden */
|
|
95
|
+
private _bodyComponentClasses;
|
|
96
|
+
/** @hidden */
|
|
97
|
+
constructor();
|
|
98
|
+
/** Handler escape keydown */
|
|
99
|
+
bodyKeyupHandler(event: KeyboardEvent): void;
|
|
100
|
+
/** @hidden */
|
|
101
|
+
_setBodyComponentClasses(classes: string | null): void;
|
|
102
|
+
/** @hidden */
|
|
103
|
+
_setArrowStyles(position: ConnectionPositionPair, rtl: 'rtl' | 'ltr'): void;
|
|
104
|
+
/** @hidden */
|
|
105
|
+
_focusFirstTabbableElement(forced?: boolean): void;
|
|
106
|
+
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>;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* A component used to enforce a certain layout for the popover.
|
|
112
|
+
* ```html
|
|
113
|
+
* <fd-popover>
|
|
114
|
+
* <fd-popover-control>Control Element</fd-popover-control>
|
|
115
|
+
* <fd-popover-body>Popover Body</fd-popover-body>
|
|
116
|
+
* </fd-popover>
|
|
117
|
+
* ```
|
|
118
|
+
*/
|
|
119
|
+
declare class PopoverControlComponent implements AfterContentChecked {
|
|
120
|
+
elRef: ElementRef;
|
|
121
|
+
/** @hidden */
|
|
122
|
+
_tabbable: boolean;
|
|
123
|
+
/** @hidden */
|
|
124
|
+
constructor(elRef: ElementRef);
|
|
125
|
+
/** @hidden */
|
|
126
|
+
ngAfterContentChecked(): void;
|
|
127
|
+
/** @hidden */
|
|
128
|
+
makeTabbable(): void;
|
|
129
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<PopoverControlComponent, never>;
|
|
130
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<PopoverControlComponent, "fd-popover-control, [fdPopoverControl]", never, {}, {}, never, ["*"], true, never>;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
* ARIA role values commonly used for popover bodies. Provides autocomplete for
|
|
135
|
+
* the most frequent cases while allowing any valid ARIA role via the string escape hatch.
|
|
136
|
+
*/
|
|
137
|
+
type PopoverBodyRole = 'dialog' | 'region' | 'menu' | 'listbox' | 'tooltip' | 'alertdialog';
|
|
138
|
+
declare const SELECT_CLASS_NAMES: {
|
|
139
|
+
selectControl: string;
|
|
140
|
+
};
|
|
141
|
+
/**
|
|
142
|
+
* The popover is a wrapping component that accepts a *control* as well as a *body*.
|
|
143
|
+
* The control is what will trigger the opening of the actual popover, which is called the body.
|
|
144
|
+
* By default, popovers are triggered by click. This can be customized through the *triggers* input.
|
|
145
|
+
*/
|
|
146
|
+
declare class PopoverComponent implements AfterViewInit, AfterContentInit, OnDestroy {
|
|
147
|
+
/**
|
|
148
|
+
* Configuration object for popover settings.
|
|
149
|
+
* When provided, these settings will be merged with individual input properties.
|
|
150
|
+
* Individual inputs take precedence over config object values.
|
|
151
|
+
*/
|
|
152
|
+
readonly config: _angular_core.InputSignal<PopoverConfig>;
|
|
153
|
+
/** Tooltip for popover */
|
|
154
|
+
readonly title: _angular_core.InputSignal<string>;
|
|
155
|
+
/** Reference to popover trigger element */
|
|
156
|
+
readonly trigger: _angular_core.ModelSignal<ElementRef<any> | HTMLElement | null>;
|
|
157
|
+
/** Id of the popover. If none is provided, one will be generated. */
|
|
158
|
+
readonly id: _angular_core.InputSignal<string>;
|
|
159
|
+
/** Whether the popover component should be displayed in mobile mode. */
|
|
160
|
+
readonly mobile: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
161
|
+
/** Config for the popover in mobile mode */
|
|
162
|
+
readonly mobileConfig: _angular_core.InputSignal<MobileModeConfig>;
|
|
163
|
+
/**
|
|
164
|
+
* Whether the popover should prevent page scrolling when space key is pressed.
|
|
165
|
+
**/
|
|
166
|
+
readonly preventSpaceKeyScroll: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
167
|
+
/** Popover placement */
|
|
168
|
+
readonly placement: _angular_core.InputSignal<Placement>;
|
|
169
|
+
/** Maximum width of popover body in px, prevents from overextending body by `fillControlMode` */
|
|
170
|
+
readonly maxWidth: _angular_core.InputSignal<number | null>;
|
|
171
|
+
/**
|
|
172
|
+
* Preset options for the popover body width.
|
|
173
|
+
* * `at-least` will apply a minimum width to the body equivalent to the width of the control.
|
|
174
|
+
* * `equal` will apply a width to the body equivalent to the width of the control.
|
|
175
|
+
* * Leave blank for no effect.
|
|
176
|
+
*/
|
|
177
|
+
readonly fillControlMode: _angular_core.InputSignal<PopoverFillMode | null>;
|
|
178
|
+
/** Whether clicking outside popover should close it */
|
|
179
|
+
readonly closeOnOutsideClick: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
180
|
+
/** Whether escape key should close the popover */
|
|
181
|
+
readonly closeOnEscapeKey: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
182
|
+
/** Whether the popover is disabled */
|
|
183
|
+
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
184
|
+
/** Popover trigger events configuration */
|
|
185
|
+
readonly triggers: _angular_core.InputSignal<(string | TriggerConfig)[]>;
|
|
186
|
+
/** Whether the popover should trap focus */
|
|
187
|
+
readonly focusTrapped: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
188
|
+
/** Whether focus should be automatically captured when popover opens */
|
|
189
|
+
readonly focusAutoCapture: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
190
|
+
/**
|
|
191
|
+
* Whether to move the focus after popover is closed to the last focused element before popover was opened.
|
|
192
|
+
*/
|
|
193
|
+
readonly restoreFocusOnClose: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
194
|
+
/** Whether the arrow should be hidden */
|
|
195
|
+
readonly noArrow: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
196
|
+
/** Whether scrollbar should be disabled */
|
|
197
|
+
readonly disableScrollbar: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
198
|
+
/** The element to which the overlay is attached. By default it is body */
|
|
199
|
+
readonly appendTo: _angular_core.InputSignal<ElementRef<any> | Element | null>;
|
|
200
|
+
/** Placement of the popover element */
|
|
201
|
+
readonly placementContainer: _angular_core.InputSignal<ElementRef<any> | Element | null>;
|
|
202
|
+
/** Scroll strategy for the overlay */
|
|
203
|
+
readonly scrollStrategy: _angular_core.InputSignal<any>;
|
|
204
|
+
/** List of position options for CDK overlay */
|
|
205
|
+
readonly cdkPositions: _angular_core.InputSignal<ConnectedPosition[] | null>;
|
|
206
|
+
/** Whether to apply a background overlay */
|
|
207
|
+
readonly applyOverlay: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
208
|
+
/** Additional CSS class for the popover body container */
|
|
209
|
+
readonly additionalBodyClass: _angular_core.InputSignal<string | null>;
|
|
210
|
+
/** Additional CSS class for the popover trigger element */
|
|
211
|
+
readonly additionalTriggerClass: _angular_core.InputSignal<string | null>;
|
|
212
|
+
/** Whether to close the popover on router navigation start */
|
|
213
|
+
readonly closeOnNavigation: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
214
|
+
/** Whether position shouldn't change when popover approaches the corner of page */
|
|
215
|
+
readonly fixedPosition: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
216
|
+
/** Whether the popover body is resizable */
|
|
217
|
+
readonly resizable: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
218
|
+
/** ARIA label for the popover body */
|
|
219
|
+
readonly bodyAriaLabel: _angular_core.InputSignal<string | null>;
|
|
220
|
+
/**
|
|
221
|
+
* ARIA role for the popover body. Default: 'dialog' (back-compat).
|
|
222
|
+
*
|
|
223
|
+
* When 'dialog', WCAG requires an accessible name — provide one via
|
|
224
|
+
* [bodyAriaLabel] or [bodyAriaLabelledBy]. Without a name, axe-core
|
|
225
|
+
* raises aria-dialog-name violations.
|
|
226
|
+
*
|
|
227
|
+
* Set to null when the popover is a non-modal disclosure widget and
|
|
228
|
+
* the trigger's aria-haspopup already carries the relationship (no role
|
|
229
|
+
* attribute is rendered). Other valid values: 'region', 'menu', 'listbox',
|
|
230
|
+
* 'tooltip', 'alertdialog' — match the role to the popover's actual semantics.
|
|
231
|
+
* Any valid ARIA role is accepted; the type provides autocomplete for common cases.
|
|
232
|
+
*
|
|
233
|
+
* @remarks When set via this input (including when unbound — defaults to 'dialog'),
|
|
234
|
+
* the PopoverConfig object's `bodyRole` field is ignored. Config-only usage
|
|
235
|
+
* is not supported for `bodyRole` because the input has a concrete default.
|
|
236
|
+
* To override, bind the input explicitly: `[bodyRole]="'region'"` or `[bodyRole]="null"`.
|
|
237
|
+
*
|
|
238
|
+
* See https://www.w3.org/WAI/ARIA/apg/patterns/dialog-modal/ for guidance.
|
|
239
|
+
*/
|
|
240
|
+
readonly bodyRole: _angular_core.InputSignal<PopoverBodyRole | (string & {}) | null>;
|
|
241
|
+
/**
|
|
242
|
+
* ID of the element that labels the popover body. Alternative to
|
|
243
|
+
* [bodyAriaLabel] when the label already exists in the DOM (e.g. the
|
|
244
|
+
* trigger's text). Sets aria-labelledby on the popover body.
|
|
245
|
+
*/
|
|
246
|
+
readonly bodyAriaLabelledBy: _angular_core.InputSignal<string | null>;
|
|
247
|
+
/** Two-way binding for popover open state */
|
|
248
|
+
readonly isOpen: _angular_core.ModelSignal<boolean>;
|
|
249
|
+
/** Event emitted when the state of the isOpen property changes. */
|
|
250
|
+
readonly isOpenChange: _angular_core.OutputEmitterRef<boolean>;
|
|
251
|
+
/** Event emitted right before the popover is being opened. */
|
|
252
|
+
readonly beforeOpen: _angular_core.OutputEmitterRef<void>;
|
|
253
|
+
/** @hidden */
|
|
254
|
+
readonly templateRef: _angular_core.Signal<TemplateRef<any> | undefined>;
|
|
255
|
+
/** @hidden */
|
|
256
|
+
readonly container: _angular_core.Signal<ViewContainerRef | undefined>;
|
|
257
|
+
/** @hidden */
|
|
258
|
+
readonly triggerOrigin: _angular_core.Signal<CdkOverlayOrigin | undefined>;
|
|
259
|
+
/** @hidden */
|
|
260
|
+
readonly popoverBody: _angular_core.Signal<PopoverBodyComponent | undefined>;
|
|
261
|
+
/** @hidden */
|
|
262
|
+
readonly popoverBodyDirective: _angular_core.Signal<PopoverBodyDirective | undefined>;
|
|
263
|
+
/** @hidden */
|
|
264
|
+
readonly popoverControl: _angular_core.Signal<PopoverControlComponent | undefined>;
|
|
265
|
+
/** @hidden - template for Dialog body content */
|
|
266
|
+
readonly popoverBodyContentTemplate: _angular_core.Signal<TemplateRef<any> | undefined>;
|
|
267
|
+
/** @hidden - template for Dialog footer content */
|
|
268
|
+
readonly popoverFooterContentTemplate: _angular_core.Signal<TemplateRef<any> | undefined>;
|
|
269
|
+
/** @hidden */
|
|
270
|
+
get _triggerElement(): HTMLElement | null;
|
|
271
|
+
/** @hidden */
|
|
272
|
+
private readonly _popoverService;
|
|
273
|
+
/** @hidden */
|
|
274
|
+
private readonly _renderer;
|
|
275
|
+
/** @hidden */
|
|
276
|
+
private readonly _viewContainerRef;
|
|
277
|
+
/** @hidden */
|
|
278
|
+
private readonly _injector;
|
|
279
|
+
/** @hidden */
|
|
280
|
+
private readonly _dynamicComponentService;
|
|
281
|
+
/** @hidden */
|
|
282
|
+
private readonly _destroyRef;
|
|
283
|
+
/** @hidden */
|
|
284
|
+
private _clickEventListener;
|
|
285
|
+
/** @hidden */
|
|
286
|
+
private _mobileModeComponentRef;
|
|
287
|
+
/** @hidden Flag to prevent circular sync between component and service */
|
|
288
|
+
private _syncingIsOpen;
|
|
289
|
+
/** @hidden Computed signal that merges config with individual inputs */
|
|
290
|
+
private readonly _effectiveConfig;
|
|
291
|
+
/** @hidden */
|
|
292
|
+
constructor();
|
|
293
|
+
/** @hidden */
|
|
294
|
+
ngAfterViewInit(): void;
|
|
295
|
+
/** @hidden */
|
|
296
|
+
ngAfterContentInit(): void;
|
|
297
|
+
/** @hidden */
|
|
298
|
+
ngOnDestroy(): void;
|
|
299
|
+
/** Toggles menu open/close state */
|
|
300
|
+
toggle(): void;
|
|
301
|
+
/** Opens the popover. */
|
|
302
|
+
open(): void;
|
|
303
|
+
/** Closes the popover. */
|
|
304
|
+
close(focusActiveElement?: boolean): void;
|
|
305
|
+
/** Temporary sets the ignoring of the event triggers. */
|
|
306
|
+
setIgnoreTriggers(ignore: boolean): void;
|
|
307
|
+
/**
|
|
308
|
+
* Method called to change position of popover,
|
|
309
|
+
* recommended to be used only when popover is opened, otherwise change position or cdkPlacement
|
|
310
|
+
*/
|
|
311
|
+
applyNewPosition(positions: ConnectedPosition[]): void;
|
|
312
|
+
/** Method called to refresh position of opened popover */
|
|
313
|
+
refreshPosition(): void;
|
|
314
|
+
/** Handler for alt + arrow down keydown */
|
|
315
|
+
triggerKeyDownHandler(event: KeyboardEvent): void;
|
|
316
|
+
/** Handler escape keydown */
|
|
317
|
+
protected _onEscapeKey(event: Event): void;
|
|
318
|
+
/** @hidden */
|
|
319
|
+
protected _onKeyDown(event: Event): void;
|
|
320
|
+
/** @hidden - Sync all input signals to the service */
|
|
321
|
+
private _syncToService;
|
|
322
|
+
/** @hidden Select and instantiate popover view mode */
|
|
323
|
+
private _setupView;
|
|
324
|
+
/**
|
|
325
|
+
* Depending on a used popover body type, returns a popover body content
|
|
326
|
+
**/
|
|
327
|
+
private _getPopoverBodyContent;
|
|
328
|
+
/** @hidden Open Popover in mobile mode */
|
|
329
|
+
private _setupMobileMode;
|
|
330
|
+
/** @hidden - Listen on popover trigger ref clicks */
|
|
331
|
+
private _listenOnTriggerRefClicks;
|
|
332
|
+
/**
|
|
333
|
+
* @hidden
|
|
334
|
+
* This is going to be removed in feature, on dialog and dynamic service component refactor
|
|
335
|
+
*/
|
|
336
|
+
private _destroyEventListeners;
|
|
337
|
+
/** @hidden */
|
|
338
|
+
private _destroyMobileComponent;
|
|
339
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<PopoverComponent, never>;
|
|
340
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<PopoverComponent, "fd-popover", never, { "config": { "alias": "config"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "trigger": { "alias": "trigger"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "mobile": { "alias": "mobile"; "required": false; "isSignal": true; }; "mobileConfig": { "alias": "mobileConfig"; "required": false; "isSignal": true; }; "preventSpaceKeyScroll": { "alias": "preventSpaceKeyScroll"; "required": false; "isSignal": true; }; "placement": { "alias": "placement"; "required": false; "isSignal": true; }; "maxWidth": { "alias": "maxWidth"; "required": false; "isSignal": true; }; "fillControlMode": { "alias": "fillControlMode"; "required": false; "isSignal": true; }; "closeOnOutsideClick": { "alias": "closeOnOutsideClick"; "required": false; "isSignal": true; }; "closeOnEscapeKey": { "alias": "closeOnEscapeKey"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "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; }; "restoreFocusOnClose": { "alias": "restoreFocusOnClose"; "required": false; "isSignal": true; }; "noArrow": { "alias": "noArrow"; "required": false; "isSignal": true; }; "disableScrollbar": { "alias": "disableScrollbar"; "required": false; "isSignal": true; }; "appendTo": { "alias": "appendTo"; "required": false; "isSignal": true; }; "placementContainer": { "alias": "placementContainer"; "required": false; "isSignal": true; }; "scrollStrategy": { "alias": "scrollStrategy"; "required": false; "isSignal": true; }; "cdkPositions": { "alias": "cdkPositions"; "required": false; "isSignal": true; }; "applyOverlay": { "alias": "applyOverlay"; "required": false; "isSignal": true; }; "additionalBodyClass": { "alias": "additionalBodyClass"; "required": false; "isSignal": true; }; "additionalTriggerClass": { "alias": "additionalTriggerClass"; "required": false; "isSignal": true; }; "closeOnNavigation": { "alias": "closeOnNavigation"; "required": false; "isSignal": true; }; "fixedPosition": { "alias": "fixedPosition"; "required": false; "isSignal": true; }; "resizable": { "alias": "resizable"; "required": false; "isSignal": true; }; "bodyAriaLabel": { "alias": "bodyAriaLabel"; "required": false; "isSignal": true; }; "bodyRole": { "alias": "bodyRole"; "required": false; "isSignal": true; }; "bodyAriaLabelledBy": { "alias": "bodyAriaLabelledBy"; "required": false; "isSignal": true; }; "isOpen": { "alias": "isOpen"; "required": false; "isSignal": true; }; }, { "trigger": "triggerChange"; "isOpen": "isOpenChange"; "isOpenChange": "isOpenChange"; "beforeOpen": "beforeOpen"; }, ["popoverBody", "popoverBodyDirective", "popoverControl", "popoverBodyContentTemplate", "popoverFooterContentTemplate"], ["fd-popover-control, [fdPopoverControl]", "fd-popover-body", "*"], true, never>;
|
|
341
|
+
}
|
|
342
|
+
|
|
15
343
|
/**
|
|
16
344
|
* Configuration object for popover trigger events.
|
|
17
345
|
* Allows specifying whether an event should apply for open and/or close actions.
|
|
@@ -121,10 +449,12 @@ interface PopoverConfig {
|
|
|
121
449
|
fixedPosition?: boolean;
|
|
122
450
|
/** Whether the popover body is resizable. */
|
|
123
451
|
resizable?: boolean;
|
|
124
|
-
/** ARIA role for the popover body. */
|
|
125
|
-
bodyRole?: string | null;
|
|
452
|
+
/** ARIA role for the popover body. Common values: 'dialog', 'region', 'menu', 'listbox', 'tooltip', 'alertdialog'. */
|
|
453
|
+
bodyRole?: PopoverBodyRole | (string & {}) | null;
|
|
126
454
|
/** ARIA label for the popover body. */
|
|
127
455
|
bodyAriaLabel?: string | null;
|
|
456
|
+
/** ID of the element that labels the popover body. */
|
|
457
|
+
bodyAriaLabelledBy?: string | null;
|
|
128
458
|
/** ID for the popover body. */
|
|
129
459
|
bodyId?: string | null;
|
|
130
460
|
}
|
|
@@ -244,125 +574,32 @@ declare class BasePopoverClass {
|
|
|
244
574
|
fillControlMode: _angular_core.WritableSignal<Nullable<PopoverFillMode>>;
|
|
245
575
|
/** The element to which the overlay is attached. By default it is body */
|
|
246
576
|
appendTo: _angular_core.WritableSignal<Nullable<ElementRef<any> | Element>>;
|
|
247
|
-
/** Placement of the popover element. */
|
|
248
|
-
placementContainer: _angular_core.WritableSignal<Nullable<ElementRef<any> | Element>>;
|
|
249
|
-
/** Whether position shouldn't change, when popover approach the corner of page */
|
|
250
|
-
fixedPosition: _angular_core.WritableSignal<boolean>;
|
|
251
|
-
/** Whether the popover body is resizable. */
|
|
252
|
-
resizable: _angular_core.WritableSignal<boolean>;
|
|
253
|
-
/** @hidden Aria role for the popover body. */
|
|
254
|
-
protected _bodyRole: string | null;
|
|
255
|
-
/** @hidden ID for the popover body. */
|
|
256
|
-
protected readonly _bodyId: _angular_core.WritableSignal<string | null>;
|
|
257
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<BasePopoverClass, never>;
|
|
258
|
-
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<BasePopoverClass, never, never, {}, {}, never, never, true, never>;
|
|
259
|
-
}
|
|
260
|
-
|
|
261
|
-
declare class PopoverBodyDirective {
|
|
262
|
-
/**
|
|
263
|
-
* The template to be used as the popover's body.
|
|
264
|
-
**/
|
|
265
|
-
readonly templateRef: TemplateRef<void>;
|
|
266
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<PopoverBodyDirective, never>;
|
|
267
|
-
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<PopoverBodyDirective, "[fdPopoverBody]", never, {}, {}, never, never, true, never>;
|
|
268
|
-
}
|
|
269
|
-
|
|
270
|
-
declare class PopoverBodyFooterDirective {
|
|
271
|
-
/** @hidden */
|
|
272
|
-
fdPopoverBodyFooterClass: boolean;
|
|
273
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<PopoverBodyFooterDirective, never>;
|
|
274
|
-
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<PopoverBodyFooterDirective, "[fdPopoverBodyFooter], [fd-popover-body-footer]", never, {}, {}, never, never, true, never>;
|
|
275
|
-
}
|
|
276
|
-
|
|
277
|
-
declare class PopoverBodyHeaderDirective {
|
|
278
|
-
/** @hidden */
|
|
279
|
-
fdPopoverBodyHeaderClass: boolean;
|
|
280
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<PopoverBodyHeaderDirective, never>;
|
|
281
|
-
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<PopoverBodyHeaderDirective, "[fdPopoverBodyHeader], [fd-popover-body-header]", never, {}, {}, never, never, true, never>;
|
|
282
|
-
}
|
|
283
|
-
|
|
284
|
-
/**
|
|
285
|
-
* A component used to enforce a certain layout for the popover.
|
|
286
|
-
* ```html
|
|
287
|
-
* <fd-popover>
|
|
288
|
-
* <fd-popover-control>Control Element</fd-popover-control>
|
|
289
|
-
* <fd-popover-body>Popover Body</fd-popover-body>
|
|
290
|
-
* </fd-popover>
|
|
291
|
-
* ```
|
|
292
|
-
*/
|
|
293
|
-
declare class PopoverBodyComponent {
|
|
294
|
-
/** Minimum width of the popover body element. */
|
|
295
|
-
readonly minWidth: _angular_core.InputSignal<Nullable<string>>;
|
|
296
|
-
/** Maximum width of the popover body element. */
|
|
297
|
-
readonly maxWidth: _angular_core.InputSignal<Nullable<string>>;
|
|
298
|
-
/** Minimum height of the popover body element. */
|
|
299
|
-
readonly minHeight: _angular_core.InputSignal<Nullable<string>>;
|
|
300
|
-
/** Maximum height of the popover body element. */
|
|
301
|
-
readonly maxHeight: _angular_core.InputSignal<Nullable<string>>;
|
|
302
|
-
/** @hidden */
|
|
303
|
-
readonly _cdkTrapFocus: _angular_core.Signal<CdkTrapFocus | undefined>;
|
|
304
|
-
/** @hidden */
|
|
305
|
-
readonly _scrollbar: _angular_core.Signal<ScrollbarDirective | undefined>;
|
|
306
|
-
/** @hidden Whether to wrap content with fd-scrollbar directive. */
|
|
307
|
-
readonly _disableScrollbar: _angular_core.WritableSignal<boolean>;
|
|
308
|
-
/** @hidden Whether the popover should have an arrow. */
|
|
309
|
-
readonly _noArrow: _angular_core.WritableSignal<boolean>;
|
|
310
|
-
/** @hidden Whether the popover container needs an extra class for styling. */
|
|
311
|
-
readonly _additionalBodyClass: _angular_core.WritableSignal<Nullable<string>>;
|
|
312
|
-
/** @hidden Whether the popover should be focusTrapped. */
|
|
313
|
-
readonly _focusTrapped: _angular_core.WritableSignal<boolean>;
|
|
314
|
-
/**
|
|
315
|
-
* @hidden
|
|
316
|
-
* Whether the popover should automatically move focus into the trapped region upon
|
|
317
|
-
* initialization and return focus to the previous activeElement upon destruction.
|
|
318
|
-
*/
|
|
319
|
-
readonly _focusAutoCapture: _angular_core.WritableSignal<boolean>;
|
|
320
|
-
/** @hidden Property bind to popover's body. */
|
|
321
|
-
readonly _popoverBodyWidth: _angular_core.WritableSignal<number | undefined>;
|
|
322
|
-
/** @hidden Property bind to popover's body. */
|
|
323
|
-
readonly _popoverBodyMinWidth: _angular_core.WritableSignal<number | undefined>;
|
|
324
|
-
/** @hidden Property bind to popover's body. */
|
|
325
|
-
readonly _maxWidth: _angular_core.WritableSignal<Nullable<number>>;
|
|
326
|
-
/** @hidden Property bind to popover's body. */
|
|
327
|
-
readonly _closeOnEscapeKey: _angular_core.WritableSignal<boolean>;
|
|
577
|
+
/** Placement of the popover element. */
|
|
578
|
+
placementContainer: _angular_core.WritableSignal<Nullable<ElementRef<any> | Element>>;
|
|
579
|
+
/** Whether position shouldn't change, when popover approach the corner of page */
|
|
580
|
+
fixedPosition: _angular_core.WritableSignal<boolean>;
|
|
581
|
+
/** Whether the popover body is resizable. */
|
|
582
|
+
resizable: _angular_core.WritableSignal<boolean>;
|
|
328
583
|
/** @hidden Aria role for the popover body. */
|
|
329
|
-
|
|
330
|
-
/** @hidden Aria label for the popover body. */
|
|
331
|
-
readonly _bodyAriaLabel: _angular_core.WritableSignal<Nullable<string>>;
|
|
584
|
+
protected _bodyRole: string | null;
|
|
332
585
|
/** @hidden ID for the popover body. */
|
|
333
|
-
readonly _bodyId: _angular_core.WritableSignal<string | null>;
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
readonly _templateToDisplay: _angular_core.WritableSignal<TemplateRef<any> | undefined>;
|
|
340
|
-
/** @hidden Whether the popover body is resizable. */
|
|
341
|
-
readonly _resizable: _angular_core.WritableSignal<boolean>;
|
|
342
|
-
/** @hidden */
|
|
343
|
-
readonly _resizeHandleLocation: _angular_core.WritableSignal<"top-right" | "top-left" | "bottom-right" | "bottom-left">;
|
|
344
|
-
/** Event emitted when popover body requests to be closed (e.g., Escape key press) */
|
|
345
|
-
readonly onClose: _angular_core.OutputEmitterRef<void>;
|
|
346
|
-
/** @hidden */
|
|
347
|
-
readonly _elementRef: ElementRef<any>;
|
|
348
|
-
/** @hidden */
|
|
349
|
-
readonly _contentDensityObserver: ContentDensityObserver;
|
|
350
|
-
/** @hidden */
|
|
351
|
-
private readonly _renderer;
|
|
352
|
-
/** @hidden */
|
|
353
|
-
private _bodyComponentClasses;
|
|
354
|
-
/** @hidden */
|
|
355
|
-
constructor();
|
|
356
|
-
/** Handler escape keydown */
|
|
357
|
-
bodyKeyupHandler(event: KeyboardEvent): void;
|
|
358
|
-
/** @hidden */
|
|
359
|
-
_setBodyComponentClasses(classes: string | null): void;
|
|
586
|
+
protected readonly _bodyId: _angular_core.WritableSignal<string | null>;
|
|
587
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<BasePopoverClass, never>;
|
|
588
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<BasePopoverClass, never, never, {}, {}, never, never, true, never>;
|
|
589
|
+
}
|
|
590
|
+
|
|
591
|
+
declare class PopoverBodyFooterDirective {
|
|
360
592
|
/** @hidden */
|
|
361
|
-
|
|
593
|
+
fdPopoverBodyFooterClass: boolean;
|
|
594
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<PopoverBodyFooterDirective, never>;
|
|
595
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<PopoverBodyFooterDirective, "[fdPopoverBodyFooter], [fd-popover-body-footer]", never, {}, {}, never, never, true, never>;
|
|
596
|
+
}
|
|
597
|
+
|
|
598
|
+
declare class PopoverBodyHeaderDirective {
|
|
362
599
|
/** @hidden */
|
|
363
|
-
|
|
364
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<
|
|
365
|
-
static
|
|
600
|
+
fdPopoverBodyHeaderClass: boolean;
|
|
601
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<PopoverBodyHeaderDirective, never>;
|
|
602
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<PopoverBodyHeaderDirective, "[fdPopoverBodyHeader], [fd-popover-body-header]", never, {}, {}, never, never, true, never>;
|
|
366
603
|
}
|
|
367
604
|
|
|
368
605
|
interface PopoverChildContent {
|
|
@@ -384,29 +621,6 @@ declare class PopoverContainerDirective implements OnInit {
|
|
|
384
621
|
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<PopoverContainerDirective, "[fdPopoverContainer]", never, {}, {}, never, never, true, never>;
|
|
385
622
|
}
|
|
386
623
|
|
|
387
|
-
/**
|
|
388
|
-
* A component used to enforce a certain layout for the popover.
|
|
389
|
-
* ```html
|
|
390
|
-
* <fd-popover>
|
|
391
|
-
* <fd-popover-control>Control Element</fd-popover-control>
|
|
392
|
-
* <fd-popover-body>Popover Body</fd-popover-body>
|
|
393
|
-
* </fd-popover>
|
|
394
|
-
* ```
|
|
395
|
-
*/
|
|
396
|
-
declare class PopoverControlComponent implements AfterContentChecked {
|
|
397
|
-
elRef: ElementRef;
|
|
398
|
-
/** @hidden */
|
|
399
|
-
_tabbable: boolean;
|
|
400
|
-
/** @hidden */
|
|
401
|
-
constructor(elRef: ElementRef);
|
|
402
|
-
/** @hidden */
|
|
403
|
-
ngAfterContentChecked(): void;
|
|
404
|
-
/** @hidden */
|
|
405
|
-
makeTabbable(): void;
|
|
406
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<PopoverControlComponent, never>;
|
|
407
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<PopoverControlComponent, "fd-popover-control, [fdPopoverControl]", never, {}, {}, never, ["*"], true, never>;
|
|
408
|
-
}
|
|
409
|
-
|
|
410
624
|
declare const POPOVER_COMPONENT: InjectionToken<PopoverInterface>;
|
|
411
625
|
/**
|
|
412
626
|
* Popover Interface to have typing and avoid circular dependency between
|
|
@@ -526,6 +740,8 @@ declare class PopoverService {
|
|
|
526
740
|
protected _bodyRole: string | null;
|
|
527
741
|
/** @hidden Aria label for the popover body. */
|
|
528
742
|
protected _bodyAriaLabel: string | null;
|
|
743
|
+
/** @hidden ID of the element that labels the popover body. */
|
|
744
|
+
protected _bodyAriaLabelledBy: string | null;
|
|
529
745
|
/** @hidden ID for the popover body. */
|
|
530
746
|
protected readonly _bodyId: _angular_core.WritableSignal<string | null>;
|
|
531
747
|
/** @hidden */
|
|
@@ -574,6 +790,8 @@ declare class PopoverService {
|
|
|
574
790
|
private readonly _viewportRuler;
|
|
575
791
|
/** @hidden */
|
|
576
792
|
private readonly _injector;
|
|
793
|
+
/** @hidden Watches DOM mutations within the scroll container when the popover is open to reposition after layout shifts (e.g. display:none on siblings). */
|
|
794
|
+
private _ancestorMutationObserver;
|
|
577
795
|
/** @hidden */
|
|
578
796
|
private get _triggerHtmlElement();
|
|
579
797
|
/** @hidden Flag to prevent infinite loop when programmatically opening/closing */
|
|
@@ -693,186 +911,27 @@ declare class PopoverService {
|
|
|
693
911
|
private _focusFirstTabbableElement;
|
|
694
912
|
/** @hidden */
|
|
695
913
|
private _focusLastActiveElementBeforeOpen;
|
|
696
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<PopoverService, never>;
|
|
697
|
-
static ɵprov: _angular_core.ɵɵInjectableDeclaration<PopoverService>;
|
|
698
|
-
}
|
|
699
|
-
|
|
700
|
-
declare const SELECT_CLASS_NAMES: {
|
|
701
|
-
selectControl: string;
|
|
702
|
-
};
|
|
703
|
-
/**
|
|
704
|
-
* The popover is a wrapping component that accepts a *control* as well as a *body*.
|
|
705
|
-
* The control is what will trigger the opening of the actual popover, which is called the body.
|
|
706
|
-
* By default, popovers are triggered by click. This can be customized through the *triggers* input.
|
|
707
|
-
*/
|
|
708
|
-
declare class PopoverComponent implements AfterViewInit, AfterContentInit, OnDestroy {
|
|
709
|
-
/**
|
|
710
|
-
* Configuration object for popover settings.
|
|
711
|
-
* When provided, these settings will be merged with individual input properties.
|
|
712
|
-
* Individual inputs take precedence over config object values.
|
|
713
|
-
*/
|
|
714
|
-
readonly config: _angular_core.InputSignal<PopoverConfig>;
|
|
715
|
-
/** Tooltip for popover */
|
|
716
|
-
readonly title: _angular_core.InputSignal<string>;
|
|
717
|
-
/** Reference to popover trigger element */
|
|
718
|
-
readonly trigger: _angular_core.ModelSignal<ElementRef<any> | HTMLElement | null>;
|
|
719
|
-
/** Id of the popover. If none is provided, one will be generated. */
|
|
720
|
-
readonly id: _angular_core.InputSignal<string>;
|
|
721
|
-
/** Whether the popover component should be displayed in mobile mode. */
|
|
722
|
-
readonly mobile: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
723
|
-
/** Config for the popover in mobile mode */
|
|
724
|
-
readonly mobileConfig: _angular_core.InputSignal<MobileModeConfig>;
|
|
725
|
-
/**
|
|
726
|
-
* Whether the popover should prevent page scrolling when space key is pressed.
|
|
727
|
-
**/
|
|
728
|
-
readonly preventSpaceKeyScroll: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
729
|
-
/** Popover placement */
|
|
730
|
-
readonly placement: _angular_core.InputSignal<Placement>;
|
|
731
|
-
/** Maximum width of popover body in px, prevents from overextending body by `fillControlMode` */
|
|
732
|
-
readonly maxWidth: _angular_core.InputSignal<number | null>;
|
|
733
|
-
/**
|
|
734
|
-
* Preset options for the popover body width.
|
|
735
|
-
* * `at-least` will apply a minimum width to the body equivalent to the width of the control.
|
|
736
|
-
* * `equal` will apply a width to the body equivalent to the width of the control.
|
|
737
|
-
* * Leave blank for no effect.
|
|
738
|
-
*/
|
|
739
|
-
readonly fillControlMode: _angular_core.InputSignal<PopoverFillMode | null>;
|
|
740
|
-
/** Whether clicking outside popover should close it */
|
|
741
|
-
readonly closeOnOutsideClick: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
742
|
-
/** Whether escape key should close the popover */
|
|
743
|
-
readonly closeOnEscapeKey: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
744
|
-
/** Whether the popover is disabled */
|
|
745
|
-
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
746
|
-
/** Popover trigger events configuration */
|
|
747
|
-
readonly triggers: _angular_core.InputSignal<(string | TriggerConfig)[]>;
|
|
748
|
-
/** Whether the popover should trap focus */
|
|
749
|
-
readonly focusTrapped: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
750
|
-
/** Whether focus should be automatically captured when popover opens */
|
|
751
|
-
readonly focusAutoCapture: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
752
|
-
/**
|
|
753
|
-
* Whether to move the focus after popover is closed to the last focused element before popover was opened.
|
|
754
|
-
*/
|
|
755
|
-
readonly restoreFocusOnClose: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
756
|
-
/** Whether the arrow should be hidden */
|
|
757
|
-
readonly noArrow: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
758
|
-
/** Whether scrollbar should be disabled */
|
|
759
|
-
readonly disableScrollbar: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
760
|
-
/** The element to which the overlay is attached. By default it is body */
|
|
761
|
-
readonly appendTo: _angular_core.InputSignal<ElementRef<any> | Element | null>;
|
|
762
|
-
/** Placement of the popover element */
|
|
763
|
-
readonly placementContainer: _angular_core.InputSignal<ElementRef<any> | Element | null>;
|
|
764
|
-
/** Scroll strategy for the overlay */
|
|
765
|
-
readonly scrollStrategy: _angular_core.InputSignal<any>;
|
|
766
|
-
/** List of position options for CDK overlay */
|
|
767
|
-
readonly cdkPositions: _angular_core.InputSignal<ConnectedPosition[] | null>;
|
|
768
|
-
/** Whether to apply a background overlay */
|
|
769
|
-
readonly applyOverlay: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
770
|
-
/** Additional CSS class for the popover body container */
|
|
771
|
-
readonly additionalBodyClass: _angular_core.InputSignal<string | null>;
|
|
772
|
-
/** Additional CSS class for the popover trigger element */
|
|
773
|
-
readonly additionalTriggerClass: _angular_core.InputSignal<string | null>;
|
|
774
|
-
/** Whether to close the popover on router navigation start */
|
|
775
|
-
readonly closeOnNavigation: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
776
|
-
/** Whether position shouldn't change when popover approaches the corner of page */
|
|
777
|
-
readonly fixedPosition: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
778
|
-
/** Whether the popover body is resizable */
|
|
779
|
-
readonly resizable: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
780
|
-
/** ARIA label for the popover body */
|
|
781
|
-
readonly bodyAriaLabel: _angular_core.InputSignal<string | null>;
|
|
782
|
-
/** Two-way binding for popover open state */
|
|
783
|
-
readonly isOpen: _angular_core.ModelSignal<boolean>;
|
|
784
|
-
/** Event emitted when the state of the isOpen property changes. */
|
|
785
|
-
readonly isOpenChange: _angular_core.OutputEmitterRef<boolean>;
|
|
786
|
-
/** Event emitted right before the popover is being opened. */
|
|
787
|
-
readonly beforeOpen: _angular_core.OutputEmitterRef<void>;
|
|
788
|
-
/** @hidden */
|
|
789
|
-
readonly templateRef: _angular_core.Signal<TemplateRef<any> | undefined>;
|
|
790
|
-
/** @hidden */
|
|
791
|
-
readonly container: _angular_core.Signal<ViewContainerRef | undefined>;
|
|
792
|
-
/** @hidden */
|
|
793
|
-
readonly triggerOrigin: _angular_core.Signal<CdkOverlayOrigin | undefined>;
|
|
794
|
-
/** @hidden */
|
|
795
|
-
readonly popoverBody: _angular_core.Signal<PopoverBodyComponent | undefined>;
|
|
796
|
-
/** @hidden */
|
|
797
|
-
readonly popoverBodyDirective: _angular_core.Signal<PopoverBodyDirective | undefined>;
|
|
798
|
-
/** @hidden */
|
|
799
|
-
readonly popoverControl: _angular_core.Signal<PopoverControlComponent | undefined>;
|
|
800
|
-
/** @hidden - template for Dialog body content */
|
|
801
|
-
readonly popoverBodyContentTemplate: _angular_core.Signal<TemplateRef<any> | undefined>;
|
|
802
|
-
/** @hidden - template for Dialog footer content */
|
|
803
|
-
readonly popoverFooterContentTemplate: _angular_core.Signal<TemplateRef<any> | undefined>;
|
|
804
|
-
/** @hidden */
|
|
805
|
-
get _triggerElement(): HTMLElement | null;
|
|
806
|
-
/** @hidden */
|
|
807
|
-
private readonly _popoverService;
|
|
808
|
-
/** @hidden */
|
|
809
|
-
private readonly _renderer;
|
|
810
|
-
/** @hidden */
|
|
811
|
-
private readonly _viewContainerRef;
|
|
812
|
-
/** @hidden */
|
|
813
|
-
private readonly _injector;
|
|
814
|
-
/** @hidden */
|
|
815
|
-
private readonly _dynamicComponentService;
|
|
816
|
-
/** @hidden */
|
|
817
|
-
private readonly _destroyRef;
|
|
818
|
-
/** @hidden */
|
|
819
|
-
private _clickEventListener;
|
|
820
|
-
/** @hidden */
|
|
821
|
-
private _mobileModeComponentRef;
|
|
822
|
-
/** @hidden Flag to prevent circular sync between component and service */
|
|
823
|
-
private _syncingIsOpen;
|
|
824
|
-
/** @hidden Computed signal that merges config with individual inputs */
|
|
825
|
-
private readonly _effectiveConfig;
|
|
826
|
-
/** @hidden */
|
|
827
|
-
constructor();
|
|
828
|
-
/** @hidden */
|
|
829
|
-
ngAfterViewInit(): void;
|
|
830
|
-
/** @hidden */
|
|
831
|
-
ngAfterContentInit(): void;
|
|
832
|
-
/** @hidden */
|
|
833
|
-
ngOnDestroy(): void;
|
|
834
|
-
/** Toggles menu open/close state */
|
|
835
|
-
toggle(): void;
|
|
836
|
-
/** Opens the popover. */
|
|
837
|
-
open(): void;
|
|
838
|
-
/** Closes the popover. */
|
|
839
|
-
close(focusActiveElement?: boolean): void;
|
|
840
|
-
/** Temporary sets the ignoring of the event triggers. */
|
|
841
|
-
setIgnoreTriggers(ignore: boolean): void;
|
|
842
914
|
/**
|
|
843
|
-
*
|
|
844
|
-
*
|
|
915
|
+
* @hidden
|
|
916
|
+
* Starts a MutationObserver on the nearest scrollable ancestor of the trigger element (falling
|
|
917
|
+
* back to document.body) to detect layout shifts that would invalidate the overlay position.
|
|
918
|
+
* Two mutation types are observed within the subtree:
|
|
919
|
+
* - `childList`: catches elements being added to or removed from the DOM (e.g. a banner/toast
|
|
920
|
+
* that is fully removed after its timer expires).
|
|
921
|
+
* - `attributes` with `attributeFilter: ['style', 'class']`: catches visibility toggling via
|
|
922
|
+
* CSS (e.g. `display: none` applied inline or through a utility class, as the
|
|
923
|
+
* `fd-message-strip` autoDismiss directive does).
|
|
924
|
+
* The callback is debounced through `requestAnimationFrame` so that rapid batched mutations
|
|
925
|
+
* (Angular rendering a whole subtree at once) only trigger a single `updatePosition()` call.
|
|
845
926
|
*/
|
|
846
|
-
|
|
847
|
-
/** Method called to refresh position of opened popover */
|
|
848
|
-
refreshPosition(): void;
|
|
849
|
-
/** Handler for alt + arrow down keydown */
|
|
850
|
-
triggerKeyDownHandler(event: KeyboardEvent): void;
|
|
851
|
-
/** Handler escape keydown */
|
|
852
|
-
protected _onEscapeKey(event: Event): void;
|
|
853
|
-
/** @hidden */
|
|
854
|
-
protected _onKeyDown(event: Event): void;
|
|
855
|
-
/** @hidden - Sync all input signals to the service */
|
|
856
|
-
private _syncToService;
|
|
857
|
-
/** @hidden Select and instantiate popover view mode */
|
|
858
|
-
private _setupView;
|
|
859
|
-
/**
|
|
860
|
-
* Depending on a used popover body type, returns a popover body content
|
|
861
|
-
**/
|
|
862
|
-
private _getPopoverBodyContent;
|
|
863
|
-
/** @hidden Open Popover in mobile mode */
|
|
864
|
-
private _setupMobileMode;
|
|
865
|
-
/** @hidden - Listen on popover trigger ref clicks */
|
|
866
|
-
private _listenOnTriggerRefClicks;
|
|
927
|
+
private _startAncestorResizeObserver;
|
|
867
928
|
/**
|
|
868
929
|
* @hidden
|
|
869
|
-
*
|
|
930
|
+
* Returns the nearest scrollable ancestor, or document.body when none is found.
|
|
870
931
|
*/
|
|
871
|
-
private
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<PopoverComponent, never>;
|
|
875
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<PopoverComponent, "fd-popover", never, { "config": { "alias": "config"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "trigger": { "alias": "trigger"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "mobile": { "alias": "mobile"; "required": false; "isSignal": true; }; "mobileConfig": { "alias": "mobileConfig"; "required": false; "isSignal": true; }; "preventSpaceKeyScroll": { "alias": "preventSpaceKeyScroll"; "required": false; "isSignal": true; }; "placement": { "alias": "placement"; "required": false; "isSignal": true; }; "maxWidth": { "alias": "maxWidth"; "required": false; "isSignal": true; }; "fillControlMode": { "alias": "fillControlMode"; "required": false; "isSignal": true; }; "closeOnOutsideClick": { "alias": "closeOnOutsideClick"; "required": false; "isSignal": true; }; "closeOnEscapeKey": { "alias": "closeOnEscapeKey"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "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; }; "restoreFocusOnClose": { "alias": "restoreFocusOnClose"; "required": false; "isSignal": true; }; "noArrow": { "alias": "noArrow"; "required": false; "isSignal": true; }; "disableScrollbar": { "alias": "disableScrollbar"; "required": false; "isSignal": true; }; "appendTo": { "alias": "appendTo"; "required": false; "isSignal": true; }; "placementContainer": { "alias": "placementContainer"; "required": false; "isSignal": true; }; "scrollStrategy": { "alias": "scrollStrategy"; "required": false; "isSignal": true; }; "cdkPositions": { "alias": "cdkPositions"; "required": false; "isSignal": true; }; "applyOverlay": { "alias": "applyOverlay"; "required": false; "isSignal": true; }; "additionalBodyClass": { "alias": "additionalBodyClass"; "required": false; "isSignal": true; }; "additionalTriggerClass": { "alias": "additionalTriggerClass"; "required": false; "isSignal": true; }; "closeOnNavigation": { "alias": "closeOnNavigation"; "required": false; "isSignal": true; }; "fixedPosition": { "alias": "fixedPosition"; "required": false; "isSignal": true; }; "resizable": { "alias": "resizable"; "required": false; "isSignal": true; }; "bodyAriaLabel": { "alias": "bodyAriaLabel"; "required": false; "isSignal": true; }; "isOpen": { "alias": "isOpen"; "required": false; "isSignal": true; }; }, { "trigger": "triggerChange"; "isOpen": "isOpenChange"; "isOpenChange": "isOpenChange"; "beforeOpen": "beforeOpen"; }, ["popoverBody", "popoverBodyDirective", "popoverControl", "popoverBodyContentTemplate", "popoverFooterContentTemplate"], ["fd-popover-control, [fdPopoverControl]", "fd-popover-body", "*"], true, never>;
|
|
932
|
+
private _findScrollableAncestor;
|
|
933
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<PopoverService, never>;
|
|
934
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<PopoverService>;
|
|
876
935
|
}
|
|
877
936
|
|
|
878
937
|
declare class PopoverTriggerDirective implements OnDestroy {
|
|
@@ -939,4 +998,4 @@ type PopoverConfigSignals = {
|
|
|
939
998
|
declare function buildPopoverConfig(signals: PopoverConfigSignals): Signal<PopoverConfig>;
|
|
940
999
|
|
|
941
1000
|
export { BasePopoverClass, FD_POPOVER_COMPONENT, POPOVER_COMPONENT, PopoverBodyComponent, PopoverBodyDirective, PopoverBodyFooterDirective, PopoverBodyHeaderDirective, PopoverComponent, PopoverContainerDirective, PopoverControlComponent, PopoverMobileComponent, PopoverMobileModule, PopoverModule, PopoverService, PopoverTriggerDirective, SELECT_CLASS_NAMES, buildPopoverConfig };
|
|
942
|
-
export type { PopoverChildContent, PopoverConfig, PopoverConfigSignals, PopoverInterface, PopoverTemplate, TriggerConfig };
|
|
1001
|
+
export type { PopoverBodyRole, PopoverChildContent, PopoverConfig, PopoverConfigSignals, PopoverInterface, PopoverTemplate, TriggerConfig };
|