@sebgroup/green-angular 6.2.1 → 6.3.0
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/esm2022/src/v-angular/dropdown/dropdown-list/dropdown-list.component.mjs +34 -20
- package/esm2022/src/v-angular/dropdown/dropdown.component.mjs +126 -25
- package/esm2022/src/v-angular/dropdown/typeahead/typeahead-dropdown-list/typeahead-dropdown-list.component.mjs +3 -3
- package/esm2022/v-angular/dropdown/dropdown-list/dropdown-list.component.mjs +34 -20
- package/esm2022/v-angular/dropdown/dropdown.component.mjs +126 -25
- package/esm2022/v-angular/dropdown/typeahead/typeahead-dropdown-list/typeahead-dropdown-list.component.mjs +3 -3
- package/fesm2022/sebgroup-green-angular-src-v-angular-dropdown.mjs +155 -41
- package/fesm2022/sebgroup-green-angular-src-v-angular-dropdown.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-v-angular.mjs +153 -39
- package/fesm2022/sebgroup-green-angular-v-angular.mjs.map +1 -1
- package/package.json +20 -20
- package/src/v-angular/dropdown/dropdown-list/dropdown-list.component.d.ts +24 -5
- package/src/v-angular/dropdown/dropdown.component.d.ts +40 -5
- package/v-angular/dropdown/dropdown-list/dropdown-list.component.d.ts +24 -5
- package/v-angular/dropdown/dropdown.component.d.ts +40 -5
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sebgroup/green-angular",
|
|
3
|
-
"version": "6.
|
|
3
|
+
"version": "6.3.0",
|
|
4
4
|
"peerDependencies": {
|
|
5
5
|
"@angular/cdk": ">=18",
|
|
6
6
|
"@angular/common": ">=18",
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"scroll-into-view-if-needed": "^2.2.31"
|
|
18
18
|
},
|
|
19
19
|
"dependencies": {
|
|
20
|
-
"@sebgroup/green-core": "^2.
|
|
20
|
+
"@sebgroup/green-core": "^2.5.2",
|
|
21
21
|
"@sebgroup/chlorophyll": "^3.6.20",
|
|
22
22
|
"@sebgroup/extract": "^3.0.2",
|
|
23
23
|
"tslib": "^2.3.1"
|
|
@@ -111,12 +111,6 @@
|
|
|
111
111
|
"esm": "./esm2022/src/lib/modal/sebgroup-green-angular-src-lib-modal.mjs",
|
|
112
112
|
"default": "./fesm2022/sebgroup-green-angular-src-lib-modal.mjs"
|
|
113
113
|
},
|
|
114
|
-
"./src/lib/pagination": {
|
|
115
|
-
"types": "./src/lib/pagination/index.d.ts",
|
|
116
|
-
"esm2022": "./esm2022/src/lib/pagination/sebgroup-green-angular-src-lib-pagination.mjs",
|
|
117
|
-
"esm": "./esm2022/src/lib/pagination/sebgroup-green-angular-src-lib-pagination.mjs",
|
|
118
|
-
"default": "./fesm2022/sebgroup-green-angular-src-lib-pagination.mjs"
|
|
119
|
-
},
|
|
120
114
|
"./src/lib/progress-circle": {
|
|
121
115
|
"types": "./src/lib/progress-circle/index.d.ts",
|
|
122
116
|
"esm2022": "./esm2022/src/lib/progress-circle/sebgroup-green-angular-src-lib-progress-circle.mjs",
|
|
@@ -135,6 +129,12 @@
|
|
|
135
129
|
"esm": "./esm2022/src/lib/shared/sebgroup-green-angular-src-lib-shared.mjs",
|
|
136
130
|
"default": "./fesm2022/sebgroup-green-angular-src-lib-shared.mjs"
|
|
137
131
|
},
|
|
132
|
+
"./src/lib/pagination": {
|
|
133
|
+
"types": "./src/lib/pagination/index.d.ts",
|
|
134
|
+
"esm2022": "./esm2022/src/lib/pagination/sebgroup-green-angular-src-lib-pagination.mjs",
|
|
135
|
+
"esm": "./esm2022/src/lib/pagination/sebgroup-green-angular-src-lib-pagination.mjs",
|
|
136
|
+
"default": "./fesm2022/sebgroup-green-angular-src-lib-pagination.mjs"
|
|
137
|
+
},
|
|
138
138
|
"./src/lib/slider": {
|
|
139
139
|
"types": "./src/lib/slider/index.d.ts",
|
|
140
140
|
"esm2022": "./esm2022/src/lib/slider/sebgroup-green-angular-src-lib-slider.mjs",
|
|
@@ -177,12 +177,6 @@
|
|
|
177
177
|
"esm": "./esm2022/src/v-angular/button/sebgroup-green-angular-src-v-angular-button.mjs",
|
|
178
178
|
"default": "./fesm2022/sebgroup-green-angular-src-v-angular-button.mjs"
|
|
179
179
|
},
|
|
180
|
-
"./src/v-angular/card": {
|
|
181
|
-
"types": "./src/v-angular/card/index.d.ts",
|
|
182
|
-
"esm2022": "./esm2022/src/v-angular/card/sebgroup-green-angular-src-v-angular-card.mjs",
|
|
183
|
-
"esm": "./esm2022/src/v-angular/card/sebgroup-green-angular-src-v-angular-card.mjs",
|
|
184
|
-
"default": "./fesm2022/sebgroup-green-angular-src-v-angular-card.mjs"
|
|
185
|
-
},
|
|
186
180
|
"./src/v-angular/character-countdown": {
|
|
187
181
|
"types": "./src/v-angular/character-countdown/index.d.ts",
|
|
188
182
|
"esm2022": "./esm2022/src/v-angular/character-countdown/sebgroup-green-angular-src-v-angular-character-countdown.mjs",
|
|
@@ -195,6 +189,12 @@
|
|
|
195
189
|
"esm": "./esm2022/src/v-angular/checkbox/sebgroup-green-angular-src-v-angular-checkbox.mjs",
|
|
196
190
|
"default": "./fesm2022/sebgroup-green-angular-src-v-angular-checkbox.mjs"
|
|
197
191
|
},
|
|
192
|
+
"./src/v-angular/card": {
|
|
193
|
+
"types": "./src/v-angular/card/index.d.ts",
|
|
194
|
+
"esm2022": "./esm2022/src/v-angular/card/sebgroup-green-angular-src-v-angular-card.mjs",
|
|
195
|
+
"esm": "./esm2022/src/v-angular/card/sebgroup-green-angular-src-v-angular-card.mjs",
|
|
196
|
+
"default": "./fesm2022/sebgroup-green-angular-src-v-angular-card.mjs"
|
|
197
|
+
},
|
|
198
198
|
"./src/v-angular/core": {
|
|
199
199
|
"types": "./src/v-angular/core/index.d.ts",
|
|
200
200
|
"esm2022": "./esm2022/src/v-angular/core/sebgroup-green-angular-src-v-angular-core.mjs",
|
|
@@ -207,18 +207,18 @@
|
|
|
207
207
|
"esm": "./esm2022/src/v-angular/datepicker/sebgroup-green-angular-src-v-angular-datepicker.mjs",
|
|
208
208
|
"default": "./fesm2022/sebgroup-green-angular-src-v-angular-datepicker.mjs"
|
|
209
209
|
},
|
|
210
|
-
"./src/v-angular/dropdown": {
|
|
211
|
-
"types": "./src/v-angular/dropdown/index.d.ts",
|
|
212
|
-
"esm2022": "./esm2022/src/v-angular/dropdown/sebgroup-green-angular-src-v-angular-dropdown.mjs",
|
|
213
|
-
"esm": "./esm2022/src/v-angular/dropdown/sebgroup-green-angular-src-v-angular-dropdown.mjs",
|
|
214
|
-
"default": "./fesm2022/sebgroup-green-angular-src-v-angular-dropdown.mjs"
|
|
215
|
-
},
|
|
216
210
|
"./src/v-angular/drag-drop": {
|
|
217
211
|
"types": "./src/v-angular/drag-drop/index.d.ts",
|
|
218
212
|
"esm2022": "./esm2022/src/v-angular/drag-drop/sebgroup-green-angular-src-v-angular-drag-drop.mjs",
|
|
219
213
|
"esm": "./esm2022/src/v-angular/drag-drop/sebgroup-green-angular-src-v-angular-drag-drop.mjs",
|
|
220
214
|
"default": "./fesm2022/sebgroup-green-angular-src-v-angular-drag-drop.mjs"
|
|
221
215
|
},
|
|
216
|
+
"./src/v-angular/dropdown": {
|
|
217
|
+
"types": "./src/v-angular/dropdown/index.d.ts",
|
|
218
|
+
"esm2022": "./esm2022/src/v-angular/dropdown/sebgroup-green-angular-src-v-angular-dropdown.mjs",
|
|
219
|
+
"esm": "./esm2022/src/v-angular/dropdown/sebgroup-green-angular-src-v-angular-dropdown.mjs",
|
|
220
|
+
"default": "./fesm2022/sebgroup-green-angular-src-v-angular-dropdown.mjs"
|
|
221
|
+
},
|
|
222
222
|
"./src/v-angular/external-link": {
|
|
223
223
|
"types": "./src/v-angular/external-link/index.d.ts",
|
|
224
224
|
"esm2022": "./esm2022/src/v-angular/external-link/sebgroup-green-angular-src-v-angular-external-link.mjs",
|
|
@@ -20,6 +20,10 @@ export declare class NggvDropdownListComponent implements OnInit, OnChanges {
|
|
|
20
20
|
id: any;
|
|
21
21
|
/** Special property used for selecting DOM elements during automated UI testing. */
|
|
22
22
|
thook: string | null | undefined;
|
|
23
|
+
/**
|
|
24
|
+
* @deprecated This attribute is no longer used. The dropdown position is now handled by Angular CDK Overlay.
|
|
25
|
+
* Will be removed in a future release.
|
|
26
|
+
*/
|
|
23
27
|
get positionAttr(): "bottom" | "top";
|
|
24
28
|
options: any[];
|
|
25
29
|
textToHighlight?: string;
|
|
@@ -36,15 +40,31 @@ export declare class NggvDropdownListComponent implements OnInit, OnChanges {
|
|
|
36
40
|
*/
|
|
37
41
|
selectWithSpace: boolean;
|
|
38
42
|
/**
|
|
39
|
-
*
|
|
40
|
-
*
|
|
43
|
+
* @deprecated This input is no longer used. The dropdown now always chooses position dynamically.
|
|
44
|
+
* Will be removed in a future release.
|
|
41
45
|
*/
|
|
42
46
|
dynamicPosition: boolean;
|
|
47
|
+
/**
|
|
48
|
+
* Stores the bounding rectangle of the dropdown trigger element,
|
|
49
|
+
* used for positioning the dropdown list overlay.
|
|
50
|
+
*/
|
|
51
|
+
triggerRect?: DOMRect;
|
|
52
|
+
/**
|
|
53
|
+
* Controls whether the dropdown list should have a vertical margin.
|
|
54
|
+
* Set to false when the dropdown list is rendered in a CDK overlay and spacing is handled by overlay offset.
|
|
55
|
+
* Set to true when the dropdown list is used standalone or in other micro frontends, so it maintains visual spacing.
|
|
56
|
+
* Defaults to true.
|
|
57
|
+
*/
|
|
58
|
+
useMargin: boolean;
|
|
43
59
|
selectedValueChanged: EventEmitter<any>;
|
|
44
60
|
closed: EventEmitter<void>;
|
|
45
61
|
/** The current active option based on numeric index. */
|
|
46
62
|
activeIndex: number;
|
|
47
63
|
scope: string | undefined;
|
|
64
|
+
/**
|
|
65
|
+
* @deprecated This attribute is no longer used. The dropdown position is now handled by Angular CDK Overlay.
|
|
66
|
+
* Will be removed in a future release.
|
|
67
|
+
*/
|
|
48
68
|
dropdownPosition: 'bottom' | 'top';
|
|
49
69
|
private dropdownUtils;
|
|
50
70
|
private _expanded;
|
|
@@ -117,10 +137,9 @@ export declare class NggvDropdownListComponent implements OnInit, OnChanges {
|
|
|
117
137
|
scrollToResult(option: any, focusElement?: boolean): void;
|
|
118
138
|
/**
|
|
119
139
|
* Calculates available space above and below the dropdown input,
|
|
120
|
-
* sets dropdownPosition ('top' or 'bottom') accordingly,
|
|
121
140
|
* and dynamically sets the max-height of the dropdown list to fit the viewport.
|
|
122
141
|
*/
|
|
123
|
-
|
|
142
|
+
setDropdownHeight(): void;
|
|
124
143
|
static ɵfac: i0.ɵɵFactoryDeclaration<NggvDropdownListComponent, [{ optional: true; }, null, null]>;
|
|
125
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<NggvDropdownListComponent, "nggv-dropdown-list", never, { "expanded": { "alias": "expanded"; "required": false; }; "state": { "alias": "state"; "required": false; }; "scrollOffset": { "alias": "scrollOffset"; "required": false; }; "optionContentTpl": { "alias": "optionContentTpl"; "required": false; }; "groupLabelTpl": { "alias": "groupLabelTpl"; "required": false; }; "id": { "alias": "id"; "required": false; }; "thook": { "alias": "thook"; "required": false; }; "options": { "alias": "options"; "required": false; }; "textToHighlight": { "alias": "textToHighlight"; "required": false; }; "onlyEmitDistinctChanges": { "alias": "onlyEmitDistinctChanges"; "required": false; }; "selectWithSpace": { "alias": "selectWithSpace"; "required": false; }; "dynamicPosition": { "alias": "dynamicPosition"; "required": false; }; }, { "selectedValueChanged": "selectedValueChanged"; "closed": "closed"; }, never, never, false, never>;
|
|
144
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NggvDropdownListComponent, "nggv-dropdown-list", never, { "expanded": { "alias": "expanded"; "required": false; }; "state": { "alias": "state"; "required": false; }; "scrollOffset": { "alias": "scrollOffset"; "required": false; }; "optionContentTpl": { "alias": "optionContentTpl"; "required": false; }; "groupLabelTpl": { "alias": "groupLabelTpl"; "required": false; }; "id": { "alias": "id"; "required": false; }; "thook": { "alias": "thook"; "required": false; }; "options": { "alias": "options"; "required": false; }; "textToHighlight": { "alias": "textToHighlight"; "required": false; }; "onlyEmitDistinctChanges": { "alias": "onlyEmitDistinctChanges"; "required": false; }; "selectWithSpace": { "alias": "selectWithSpace"; "required": false; }; "dynamicPosition": { "alias": "dynamicPosition"; "required": false; }; "triggerRect": { "alias": "triggerRect"; "required": false; }; "useMargin": { "alias": "useMargin"; "required": false; }; }, { "selectedValueChanged": "selectedValueChanged"; "closed": "closed"; }, never, never, false, never>;
|
|
126
145
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import '@sebgroup/green-core/components/icon/icons/triangle-exclamation.js';
|
|
2
|
-
import {
|
|
2
|
+
import { ConnectedPosition, Overlay, ScrollStrategy } from '@angular/cdk/overlay';
|
|
3
|
+
import { ChangeDetectorRef, ElementRef, EventEmitter, OnChanges, OnDestroy, SimpleChanges, TemplateRef, ViewContainerRef } from '@angular/core';
|
|
3
4
|
import { NgControl } from '@angular/forms';
|
|
4
5
|
import { TranslocoScope } from '@jsverse/transloco';
|
|
5
6
|
import { NggvBaseControlValueAccessorComponent } from '@sebgroup/green-angular/src/v-angular/base-control-value-accessor';
|
|
@@ -15,6 +16,8 @@ export declare class NggvDropdownComponent<K = string | null | undefined, V = st
|
|
|
15
16
|
protected translocoScope: TranslocoScope;
|
|
16
17
|
protected cdr: ChangeDetectorRef;
|
|
17
18
|
protected dropdownUtils: DropdownUtils<K, V, T>;
|
|
19
|
+
protected overlay: Overlay;
|
|
20
|
+
protected vcr: ViewContainerRef;
|
|
18
21
|
/** Custom template for displaying options and groups. */
|
|
19
22
|
selectedContentTpl: TemplateRef<OptionBase<T>> | undefined;
|
|
20
23
|
optionContentTpl: TemplateRef<OptionBase<any>> | undefined;
|
|
@@ -25,6 +28,9 @@ export declare class NggvDropdownComponent<K = string | null | undefined, V = st
|
|
|
25
28
|
thook: string | null | undefined;
|
|
26
29
|
get isSmall(): boolean;
|
|
27
30
|
get isLarge(): boolean;
|
|
31
|
+
/** Reference to the dropdown list template used for rendering the dropdown in an overlay. */
|
|
32
|
+
dropdownTemplate: TemplateRef<any>;
|
|
33
|
+
toggleButton: ElementRef;
|
|
28
34
|
/**
|
|
29
35
|
* Sets the displayed size of the dropdown.
|
|
30
36
|
*/
|
|
@@ -65,6 +71,11 @@ export declare class NggvDropdownComponent<K = string | null | undefined, V = st
|
|
|
65
71
|
* Defaults to true.
|
|
66
72
|
*/
|
|
67
73
|
onlyHandleDistinctChanges: boolean;
|
|
74
|
+
/**
|
|
75
|
+
* If true (default), the dropdown list will close when any scrollable ancestor is scrolled.
|
|
76
|
+
* If false, the dropdown list will reposition itself instead of closing.
|
|
77
|
+
*/
|
|
78
|
+
closeDropdownListOnScroll: boolean;
|
|
68
79
|
/**
|
|
69
80
|
* Emits changes of the expanded state of the dropdown
|
|
70
81
|
*/
|
|
@@ -75,13 +86,24 @@ export declare class NggvDropdownComponent<K = string | null | undefined, V = st
|
|
|
75
86
|
expanded: boolean;
|
|
76
87
|
/** The current option selected based on numeric index. */
|
|
77
88
|
activeIndex: number;
|
|
89
|
+
/**
|
|
90
|
+
* Stores the bounding rectangle of the dropdown trigger element,
|
|
91
|
+
* used for positioning the dropdown list overlay.
|
|
92
|
+
*/
|
|
93
|
+
triggerRect: DOMRect | undefined;
|
|
78
94
|
/** Subscribe if dropdown expanded to listen to click outside to close dropdown. */
|
|
79
95
|
private onClickSubscription;
|
|
80
96
|
/** Subscribe if dropdown expanded to listen to scroll outside to close dropdown. */
|
|
81
97
|
private onScrollSubscription;
|
|
98
|
+
/** Subscribe to get dropdown width size changes for a dropdown list width to match. */
|
|
99
|
+
private resizeSubscription;
|
|
100
|
+
/** Subscription to dropdown list overlay detachments. */
|
|
101
|
+
private overlayDetachSubscription;
|
|
82
102
|
keyEvent: KeyboardEvent;
|
|
83
103
|
private _options;
|
|
84
|
-
|
|
104
|
+
/** Reference to the currently attached dropdown list overlay. Used for opening/closing and positioning. */
|
|
105
|
+
private overlayRef?;
|
|
106
|
+
constructor(ngControl: NgControl, translocoScope: TranslocoScope, cdr: ChangeDetectorRef, dropdownUtils: DropdownUtils<K, V, T>, overlay: Overlay, vcr: ViewContainerRef);
|
|
85
107
|
ngOnChanges(changes: SimpleChanges): void;
|
|
86
108
|
ngOnDestroy(): void;
|
|
87
109
|
/** @internal override to correctly set state from form value */
|
|
@@ -93,7 +115,6 @@ export declare class NggvDropdownComponent<K = string | null | undefined, V = st
|
|
|
93
115
|
* Closes the dropdown on click outside.
|
|
94
116
|
*/
|
|
95
117
|
subscribeToOutsideClickEvent(): void;
|
|
96
|
-
subscribeToOutsideScrollEvent(): void;
|
|
97
118
|
/**
|
|
98
119
|
* Set the dropdown value to given option.
|
|
99
120
|
* @param value the dropdown option to select.
|
|
@@ -107,6 +128,20 @@ export declare class NggvDropdownComponent<K = string | null | undefined, V = st
|
|
|
107
128
|
* @param state the expanded state which to set.
|
|
108
129
|
*/
|
|
109
130
|
setExpanded(state?: boolean): void;
|
|
131
|
+
/**
|
|
132
|
+
* Opens the dropdown overlay by detaching any existing overlay reference,
|
|
133
|
+
* attaching a new overlay, updating its width, and setting up listeners for overlay detachments.
|
|
134
|
+
* This method ensures the dropdown overlay is properly initialized and displayed.
|
|
135
|
+
*/
|
|
136
|
+
openDropdownOverlay(): void;
|
|
137
|
+
detachOldOverlayRef(): void;
|
|
138
|
+
attachNewOverlayRef(): void;
|
|
139
|
+
updateOverlayWidth(): void;
|
|
140
|
+
listenOverlayDetachments(): void;
|
|
141
|
+
getDropdownListPositionsArray(): ConnectedPosition[];
|
|
142
|
+
getScrollStrategy(): ScrollStrategy;
|
|
143
|
+
setOverlayWidth(): void;
|
|
144
|
+
closeDropdownOverlay(): void;
|
|
110
145
|
/**
|
|
111
146
|
* Typecast anything to an {@link Option}.
|
|
112
147
|
* @param option the object to typecast.
|
|
@@ -122,6 +157,6 @@ export declare class NggvDropdownComponent<K = string | null | undefined, V = st
|
|
|
122
157
|
* @param option the object to check.
|
|
123
158
|
*/
|
|
124
159
|
isOption(option: OptionBase<T>): option is OptionGroup<T>;
|
|
125
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<NggvDropdownComponent<any, any, any>, [{ optional: true; self: true; }, { optional: true; }, null, null]>;
|
|
126
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<NggvDropdownComponent<any, any, any>, "nggv-dropdown", never, { "thook": { "alias": "thook"; "required": false; }; "size": { "alias": "size"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "options": { "alias": "options"; "required": false; }; "scrollOffset": { "alias": "scrollOffset"; "required": false; }; "allowControlNullishOption": { "alias": "allowControlNullishOption"; "required": false; }; "textToHighlight": { "alias": "textToHighlight"; "required": false; }; "selectOnSingleOption": { "alias": "selectOnSingleOption"; "required": false; }; "selectWithSpace": { "alias": "selectWithSpace"; "required": false; }; "onlyHandleDistinctChanges": { "alias": "onlyHandleDistinctChanges"; "required": false; }; }, { "expandedChange": "expandedChange"; }, ["selectedContentTpl", "optionContentTpl", "groupLabelTpl"], ["*"], false, never>;
|
|
160
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NggvDropdownComponent<any, any, any>, [{ optional: true; self: true; }, { optional: true; }, null, null, null, null]>;
|
|
161
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NggvDropdownComponent<any, any, any>, "nggv-dropdown", never, { "thook": { "alias": "thook"; "required": false; }; "size": { "alias": "size"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "options": { "alias": "options"; "required": false; }; "scrollOffset": { "alias": "scrollOffset"; "required": false; }; "allowControlNullishOption": { "alias": "allowControlNullishOption"; "required": false; }; "textToHighlight": { "alias": "textToHighlight"; "required": false; }; "selectOnSingleOption": { "alias": "selectOnSingleOption"; "required": false; }; "selectWithSpace": { "alias": "selectWithSpace"; "required": false; }; "onlyHandleDistinctChanges": { "alias": "onlyHandleDistinctChanges"; "required": false; }; "closeDropdownListOnScroll": { "alias": "closeDropdownListOnScroll"; "required": false; }; }, { "expandedChange": "expandedChange"; }, ["selectedContentTpl", "optionContentTpl", "groupLabelTpl"], ["*"], false, never>;
|
|
127
162
|
}
|
|
@@ -20,6 +20,10 @@ export declare class NggvDropdownListComponent implements OnInit, OnChanges {
|
|
|
20
20
|
id: any;
|
|
21
21
|
/** Special property used for selecting DOM elements during automated UI testing. */
|
|
22
22
|
thook: string | null | undefined;
|
|
23
|
+
/**
|
|
24
|
+
* @deprecated This attribute is no longer used. The dropdown position is now handled by Angular CDK Overlay.
|
|
25
|
+
* Will be removed in a future release.
|
|
26
|
+
*/
|
|
23
27
|
get positionAttr(): "bottom" | "top";
|
|
24
28
|
options: any[];
|
|
25
29
|
textToHighlight?: string;
|
|
@@ -36,15 +40,31 @@ export declare class NggvDropdownListComponent implements OnInit, OnChanges {
|
|
|
36
40
|
*/
|
|
37
41
|
selectWithSpace: boolean;
|
|
38
42
|
/**
|
|
39
|
-
*
|
|
40
|
-
*
|
|
43
|
+
* @deprecated This input is no longer used. The dropdown now always chooses position dynamically.
|
|
44
|
+
* Will be removed in a future release.
|
|
41
45
|
*/
|
|
42
46
|
dynamicPosition: boolean;
|
|
47
|
+
/**
|
|
48
|
+
* Stores the bounding rectangle of the dropdown trigger element,
|
|
49
|
+
* used for positioning the dropdown list overlay.
|
|
50
|
+
*/
|
|
51
|
+
triggerRect?: DOMRect;
|
|
52
|
+
/**
|
|
53
|
+
* Controls whether the dropdown list should have a vertical margin.
|
|
54
|
+
* Set to false when the dropdown list is rendered in a CDK overlay and spacing is handled by overlay offset.
|
|
55
|
+
* Set to true when the dropdown list is used standalone or in other micro frontends, so it maintains visual spacing.
|
|
56
|
+
* Defaults to true.
|
|
57
|
+
*/
|
|
58
|
+
useMargin: boolean;
|
|
43
59
|
selectedValueChanged: EventEmitter<any>;
|
|
44
60
|
closed: EventEmitter<void>;
|
|
45
61
|
/** The current active option based on numeric index. */
|
|
46
62
|
activeIndex: number;
|
|
47
63
|
scope: string | undefined;
|
|
64
|
+
/**
|
|
65
|
+
* @deprecated This attribute is no longer used. The dropdown position is now handled by Angular CDK Overlay.
|
|
66
|
+
* Will be removed in a future release.
|
|
67
|
+
*/
|
|
48
68
|
dropdownPosition: 'bottom' | 'top';
|
|
49
69
|
private dropdownUtils;
|
|
50
70
|
private _expanded;
|
|
@@ -117,10 +137,9 @@ export declare class NggvDropdownListComponent implements OnInit, OnChanges {
|
|
|
117
137
|
scrollToResult(option: any, focusElement?: boolean): void;
|
|
118
138
|
/**
|
|
119
139
|
* Calculates available space above and below the dropdown input,
|
|
120
|
-
* sets dropdownPosition ('top' or 'bottom') accordingly,
|
|
121
140
|
* and dynamically sets the max-height of the dropdown list to fit the viewport.
|
|
122
141
|
*/
|
|
123
|
-
|
|
142
|
+
setDropdownHeight(): void;
|
|
124
143
|
static ɵfac: i0.ɵɵFactoryDeclaration<NggvDropdownListComponent, [{ optional: true; }, null, null]>;
|
|
125
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<NggvDropdownListComponent, "nggv-dropdown-list", never, { "expanded": { "alias": "expanded"; "required": false; }; "state": { "alias": "state"; "required": false; }; "scrollOffset": { "alias": "scrollOffset"; "required": false; }; "optionContentTpl": { "alias": "optionContentTpl"; "required": false; }; "groupLabelTpl": { "alias": "groupLabelTpl"; "required": false; }; "id": { "alias": "id"; "required": false; }; "thook": { "alias": "thook"; "required": false; }; "options": { "alias": "options"; "required": false; }; "textToHighlight": { "alias": "textToHighlight"; "required": false; }; "onlyEmitDistinctChanges": { "alias": "onlyEmitDistinctChanges"; "required": false; }; "selectWithSpace": { "alias": "selectWithSpace"; "required": false; }; "dynamicPosition": { "alias": "dynamicPosition"; "required": false; }; }, { "selectedValueChanged": "selectedValueChanged"; "closed": "closed"; }, never, never, false, never>;
|
|
144
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NggvDropdownListComponent, "nggv-dropdown-list", never, { "expanded": { "alias": "expanded"; "required": false; }; "state": { "alias": "state"; "required": false; }; "scrollOffset": { "alias": "scrollOffset"; "required": false; }; "optionContentTpl": { "alias": "optionContentTpl"; "required": false; }; "groupLabelTpl": { "alias": "groupLabelTpl"; "required": false; }; "id": { "alias": "id"; "required": false; }; "thook": { "alias": "thook"; "required": false; }; "options": { "alias": "options"; "required": false; }; "textToHighlight": { "alias": "textToHighlight"; "required": false; }; "onlyEmitDistinctChanges": { "alias": "onlyEmitDistinctChanges"; "required": false; }; "selectWithSpace": { "alias": "selectWithSpace"; "required": false; }; "dynamicPosition": { "alias": "dynamicPosition"; "required": false; }; "triggerRect": { "alias": "triggerRect"; "required": false; }; "useMargin": { "alias": "useMargin"; "required": false; }; }, { "selectedValueChanged": "selectedValueChanged"; "closed": "closed"; }, never, never, false, never>;
|
|
126
145
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import '@sebgroup/green-core/components/icon/icons/triangle-exclamation.js';
|
|
2
|
-
import {
|
|
2
|
+
import { ConnectedPosition, Overlay, ScrollStrategy } from '@angular/cdk/overlay';
|
|
3
|
+
import { ChangeDetectorRef, ElementRef, EventEmitter, OnChanges, OnDestroy, SimpleChanges, TemplateRef, ViewContainerRef } from '@angular/core';
|
|
3
4
|
import { NgControl } from '@angular/forms';
|
|
4
5
|
import { TranslocoScope } from '@jsverse/transloco';
|
|
5
6
|
import { NggvBaseControlValueAccessorComponent } from '@sebgroup/green-angular/src/v-angular/base-control-value-accessor';
|
|
@@ -15,6 +16,8 @@ export declare class NggvDropdownComponent<K = string | null | undefined, V = st
|
|
|
15
16
|
protected translocoScope: TranslocoScope;
|
|
16
17
|
protected cdr: ChangeDetectorRef;
|
|
17
18
|
protected dropdownUtils: DropdownUtils<K, V, T>;
|
|
19
|
+
protected overlay: Overlay;
|
|
20
|
+
protected vcr: ViewContainerRef;
|
|
18
21
|
/** Custom template for displaying options and groups. */
|
|
19
22
|
selectedContentTpl: TemplateRef<OptionBase<T>> | undefined;
|
|
20
23
|
optionContentTpl: TemplateRef<OptionBase<any>> | undefined;
|
|
@@ -25,6 +28,9 @@ export declare class NggvDropdownComponent<K = string | null | undefined, V = st
|
|
|
25
28
|
thook: string | null | undefined;
|
|
26
29
|
get isSmall(): boolean;
|
|
27
30
|
get isLarge(): boolean;
|
|
31
|
+
/** Reference to the dropdown list template used for rendering the dropdown in an overlay. */
|
|
32
|
+
dropdownTemplate: TemplateRef<any>;
|
|
33
|
+
toggleButton: ElementRef;
|
|
28
34
|
/**
|
|
29
35
|
* Sets the displayed size of the dropdown.
|
|
30
36
|
*/
|
|
@@ -65,6 +71,11 @@ export declare class NggvDropdownComponent<K = string | null | undefined, V = st
|
|
|
65
71
|
* Defaults to true.
|
|
66
72
|
*/
|
|
67
73
|
onlyHandleDistinctChanges: boolean;
|
|
74
|
+
/**
|
|
75
|
+
* If true (default), the dropdown list will close when any scrollable ancestor is scrolled.
|
|
76
|
+
* If false, the dropdown list will reposition itself instead of closing.
|
|
77
|
+
*/
|
|
78
|
+
closeDropdownListOnScroll: boolean;
|
|
68
79
|
/**
|
|
69
80
|
* Emits changes of the expanded state of the dropdown
|
|
70
81
|
*/
|
|
@@ -75,13 +86,24 @@ export declare class NggvDropdownComponent<K = string | null | undefined, V = st
|
|
|
75
86
|
expanded: boolean;
|
|
76
87
|
/** The current option selected based on numeric index. */
|
|
77
88
|
activeIndex: number;
|
|
89
|
+
/**
|
|
90
|
+
* Stores the bounding rectangle of the dropdown trigger element,
|
|
91
|
+
* used for positioning the dropdown list overlay.
|
|
92
|
+
*/
|
|
93
|
+
triggerRect: DOMRect | undefined;
|
|
78
94
|
/** Subscribe if dropdown expanded to listen to click outside to close dropdown. */
|
|
79
95
|
private onClickSubscription;
|
|
80
96
|
/** Subscribe if dropdown expanded to listen to scroll outside to close dropdown. */
|
|
81
97
|
private onScrollSubscription;
|
|
98
|
+
/** Subscribe to get dropdown width size changes for a dropdown list width to match. */
|
|
99
|
+
private resizeSubscription;
|
|
100
|
+
/** Subscription to dropdown list overlay detachments. */
|
|
101
|
+
private overlayDetachSubscription;
|
|
82
102
|
keyEvent: KeyboardEvent;
|
|
83
103
|
private _options;
|
|
84
|
-
|
|
104
|
+
/** Reference to the currently attached dropdown list overlay. Used for opening/closing and positioning. */
|
|
105
|
+
private overlayRef?;
|
|
106
|
+
constructor(ngControl: NgControl, translocoScope: TranslocoScope, cdr: ChangeDetectorRef, dropdownUtils: DropdownUtils<K, V, T>, overlay: Overlay, vcr: ViewContainerRef);
|
|
85
107
|
ngOnChanges(changes: SimpleChanges): void;
|
|
86
108
|
ngOnDestroy(): void;
|
|
87
109
|
/** @internal override to correctly set state from form value */
|
|
@@ -93,7 +115,6 @@ export declare class NggvDropdownComponent<K = string | null | undefined, V = st
|
|
|
93
115
|
* Closes the dropdown on click outside.
|
|
94
116
|
*/
|
|
95
117
|
subscribeToOutsideClickEvent(): void;
|
|
96
|
-
subscribeToOutsideScrollEvent(): void;
|
|
97
118
|
/**
|
|
98
119
|
* Set the dropdown value to given option.
|
|
99
120
|
* @param value the dropdown option to select.
|
|
@@ -107,6 +128,20 @@ export declare class NggvDropdownComponent<K = string | null | undefined, V = st
|
|
|
107
128
|
* @param state the expanded state which to set.
|
|
108
129
|
*/
|
|
109
130
|
setExpanded(state?: boolean): void;
|
|
131
|
+
/**
|
|
132
|
+
* Opens the dropdown overlay by detaching any existing overlay reference,
|
|
133
|
+
* attaching a new overlay, updating its width, and setting up listeners for overlay detachments.
|
|
134
|
+
* This method ensures the dropdown overlay is properly initialized and displayed.
|
|
135
|
+
*/
|
|
136
|
+
openDropdownOverlay(): void;
|
|
137
|
+
detachOldOverlayRef(): void;
|
|
138
|
+
attachNewOverlayRef(): void;
|
|
139
|
+
updateOverlayWidth(): void;
|
|
140
|
+
listenOverlayDetachments(): void;
|
|
141
|
+
getDropdownListPositionsArray(): ConnectedPosition[];
|
|
142
|
+
getScrollStrategy(): ScrollStrategy;
|
|
143
|
+
setOverlayWidth(): void;
|
|
144
|
+
closeDropdownOverlay(): void;
|
|
110
145
|
/**
|
|
111
146
|
* Typecast anything to an {@link Option}.
|
|
112
147
|
* @param option the object to typecast.
|
|
@@ -122,6 +157,6 @@ export declare class NggvDropdownComponent<K = string | null | undefined, V = st
|
|
|
122
157
|
* @param option the object to check.
|
|
123
158
|
*/
|
|
124
159
|
isOption(option: OptionBase<T>): option is OptionGroup<T>;
|
|
125
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<NggvDropdownComponent<any, any, any>, [{ optional: true; self: true; }, { optional: true; }, null, null]>;
|
|
126
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<NggvDropdownComponent<any, any, any>, "nggv-dropdown", never, { "thook": { "alias": "thook"; "required": false; }; "size": { "alias": "size"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "options": { "alias": "options"; "required": false; }; "scrollOffset": { "alias": "scrollOffset"; "required": false; }; "allowControlNullishOption": { "alias": "allowControlNullishOption"; "required": false; }; "textToHighlight": { "alias": "textToHighlight"; "required": false; }; "selectOnSingleOption": { "alias": "selectOnSingleOption"; "required": false; }; "selectWithSpace": { "alias": "selectWithSpace"; "required": false; }; "onlyHandleDistinctChanges": { "alias": "onlyHandleDistinctChanges"; "required": false; }; }, { "expandedChange": "expandedChange"; }, ["selectedContentTpl", "optionContentTpl", "groupLabelTpl"], ["*"], false, never>;
|
|
160
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NggvDropdownComponent<any, any, any>, [{ optional: true; self: true; }, { optional: true; }, null, null, null, null]>;
|
|
161
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NggvDropdownComponent<any, any, any>, "nggv-dropdown", never, { "thook": { "alias": "thook"; "required": false; }; "size": { "alias": "size"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "options": { "alias": "options"; "required": false; }; "scrollOffset": { "alias": "scrollOffset"; "required": false; }; "allowControlNullishOption": { "alias": "allowControlNullishOption"; "required": false; }; "textToHighlight": { "alias": "textToHighlight"; "required": false; }; "selectOnSingleOption": { "alias": "selectOnSingleOption"; "required": false; }; "selectWithSpace": { "alias": "selectWithSpace"; "required": false; }; "onlyHandleDistinctChanges": { "alias": "onlyHandleDistinctChanges"; "required": false; }; "closeDropdownListOnScroll": { "alias": "closeDropdownListOnScroll"; "required": false; }; }, { "expandedChange": "expandedChange"; }, ["selectedContentTpl", "optionContentTpl", "groupLabelTpl"], ["*"], false, never>;
|
|
127
162
|
}
|