@agorapulse/ui-components 20.4.10 → 20.4.12
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/agorapulse-ui-components-20.4.12.tgz +0 -0
- package/fesm2022/agorapulse-ui-components-filter-dropdown.mjs +219 -6
- package/fesm2022/agorapulse-ui-components-filter-dropdown.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-labels-selector.mjs +1 -1
- package/fesm2022/agorapulse-ui-components-labels-selector.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-nav-selector.mjs +2 -2
- package/fesm2022/agorapulse-ui-components-nav-selector.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-select.mjs +198 -147
- package/fesm2022/agorapulse-ui-components-select.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components.mjs.map +1 -1
- package/filter-dropdown/index.d.ts +96 -29
- package/index.d.ts +1 -1
- package/package.json +1 -1
- package/select/index.d.ts +9 -1
- package/agorapulse-ui-components-20.4.10.tgz +0 -0
|
@@ -1,34 +1,32 @@
|
|
|
1
1
|
import { AvatarNetwork } from '@agorapulse/ui-components/avatar';
|
|
2
2
|
import { Period } from '@agorapulse/ui-components/datepicker';
|
|
3
3
|
import dayjs from 'dayjs';
|
|
4
|
+
import { SelectLabelSingleDisplayType } from '@agorapulse/ui-components/select';
|
|
4
5
|
import * as _angular_core from '@angular/core';
|
|
5
6
|
import { TemplateRef } from '@angular/core';
|
|
6
7
|
import { DropdownOverlay } from '@agorapulse/ui-components/dropdown-base';
|
|
7
8
|
|
|
8
|
-
type
|
|
9
|
-
interface
|
|
9
|
+
type FilterDropdownType = 'checkbox' | 'radio' | 'toggle' | 'select' | 'date-range';
|
|
10
|
+
interface FilterDropdownItemCheckbox {
|
|
10
11
|
label: string;
|
|
11
12
|
name: string;
|
|
12
13
|
checked?: boolean;
|
|
13
14
|
disabled?: boolean;
|
|
14
15
|
indeterminate?: boolean;
|
|
15
16
|
}
|
|
16
|
-
interface
|
|
17
|
+
interface FilterDropdownItemRadio {
|
|
17
18
|
label: string;
|
|
18
19
|
radioId: string;
|
|
19
20
|
value: unknown;
|
|
20
21
|
disabled?: boolean;
|
|
21
22
|
}
|
|
22
|
-
interface
|
|
23
|
+
interface FilterDropdownItemToggle {
|
|
23
24
|
label: string;
|
|
24
25
|
name: string;
|
|
25
26
|
checked?: boolean;
|
|
26
27
|
disabled?: boolean;
|
|
27
|
-
confirm?: boolean;
|
|
28
|
-
confirmMessage?: string;
|
|
29
|
-
confirmTitle?: string;
|
|
30
28
|
}
|
|
31
|
-
interface
|
|
29
|
+
interface FilterDropdownItemSelect {
|
|
32
30
|
text: string;
|
|
33
31
|
caption?: string;
|
|
34
32
|
avatarUrl?: string;
|
|
@@ -38,7 +36,34 @@ interface FilterItemSelect {
|
|
|
38
36
|
network?: AvatarNetwork;
|
|
39
37
|
dividerEnabled?: boolean;
|
|
40
38
|
}
|
|
41
|
-
interface
|
|
39
|
+
interface FilterDropdownValueCheckbox {
|
|
40
|
+
filterType: 'checkbox';
|
|
41
|
+
/** Names of the checked items */
|
|
42
|
+
selected: string[];
|
|
43
|
+
}
|
|
44
|
+
interface FilterDropdownValueRadio {
|
|
45
|
+
filterType: 'radio';
|
|
46
|
+
selected: unknown;
|
|
47
|
+
}
|
|
48
|
+
interface FilterDropdownValueToggle {
|
|
49
|
+
filterType: 'toggle';
|
|
50
|
+
checked: boolean;
|
|
51
|
+
}
|
|
52
|
+
interface FilterDropdownValueSelect {
|
|
53
|
+
filterType: 'select';
|
|
54
|
+
/** Indices of selected items */
|
|
55
|
+
selected: number[];
|
|
56
|
+
}
|
|
57
|
+
interface FilterDropdownValueDateRange {
|
|
58
|
+
filterType: 'date-range';
|
|
59
|
+
selectedPeriod?: Period;
|
|
60
|
+
}
|
|
61
|
+
type FilterDropdownValue = FilterDropdownValueCheckbox | FilterDropdownValueRadio | FilterDropdownValueToggle | FilterDropdownValueSelect | FilterDropdownValueDateRange;
|
|
62
|
+
/** The output emitted by filter-dropdown on apply: a map of filter key → value */
|
|
63
|
+
type FilterDropdownOutput = Record<string, FilterDropdownValue>;
|
|
64
|
+
interface FilterDropdownGroupBase {
|
|
65
|
+
/** Unique key to identify this filter in the output */
|
|
66
|
+
key: string;
|
|
42
67
|
/** The title of the filter group to display in the UI */
|
|
43
68
|
title: string;
|
|
44
69
|
/** Whether the filter group is expanded (open) or collapsed by default. Only applicable if `closable` is true. */
|
|
@@ -50,46 +75,84 @@ interface FilterGroupBase {
|
|
|
50
75
|
/** */
|
|
51
76
|
placeholder?: string;
|
|
52
77
|
}
|
|
53
|
-
interface
|
|
54
|
-
/** The type of the
|
|
78
|
+
interface FilterDropdownGroupCheckbox extends FilterDropdownGroupBase {
|
|
79
|
+
/** The type of the FilterDropdownGroupBase */
|
|
55
80
|
filterType: 'checkbox';
|
|
56
|
-
items:
|
|
81
|
+
items: FilterDropdownItemCheckbox[];
|
|
82
|
+
defaultSelected?: string[];
|
|
57
83
|
}
|
|
58
|
-
interface
|
|
59
|
-
/** The type of the
|
|
84
|
+
interface FilterDropdownGroupRadio extends FilterDropdownGroupBase {
|
|
85
|
+
/** The type of the FilterDropdownGroupBase */
|
|
60
86
|
filterType: 'radio';
|
|
61
|
-
items:
|
|
87
|
+
items: FilterDropdownItemRadio[];
|
|
88
|
+
defaultSelected?: unknown;
|
|
62
89
|
}
|
|
63
|
-
interface
|
|
64
|
-
/** The type of the
|
|
90
|
+
interface FilterDropdownGroupToggle extends FilterDropdownGroupBase {
|
|
91
|
+
/** The type of the FilterDropdownGroupBase */
|
|
65
92
|
filterType: 'toggle';
|
|
66
|
-
|
|
93
|
+
item: FilterDropdownItemToggle;
|
|
94
|
+
defaultSelected?: boolean;
|
|
67
95
|
}
|
|
68
|
-
interface
|
|
96
|
+
interface FilterDropdownGroupSelect extends FilterDropdownGroupBase {
|
|
69
97
|
/** An optional label to display next to each filter item (e.g. "and", "or"). Only applicable for checkbox, radio and toggle filter groups. */
|
|
70
98
|
inlineLabel?: string;
|
|
71
|
-
/** The type of the
|
|
99
|
+
/** The type of the FilterDropdownGroupBase */
|
|
72
100
|
filterType: 'select';
|
|
73
101
|
/** Whether the select allows single or multiple selection */
|
|
74
102
|
selectionType: 'single' | 'multiple';
|
|
75
103
|
/** An optional type to determine the icon/avatar/symbol to display for each item. Only applicable for select filter groups. */
|
|
76
|
-
|
|
77
|
-
items:
|
|
104
|
+
displayType: SelectLabelSingleDisplayType;
|
|
105
|
+
items: FilterDropdownItemSelect[];
|
|
106
|
+
defaultSelected?: number[];
|
|
78
107
|
}
|
|
79
|
-
interface
|
|
80
|
-
/** The type of the
|
|
108
|
+
interface FilterDropdownGroupDateRange extends FilterDropdownGroupBase {
|
|
109
|
+
/** The type of the FilterDropdownGroupBase */
|
|
81
110
|
filterType: 'date-range';
|
|
82
111
|
minDate?: dayjs.Dayjs;
|
|
83
112
|
maxDate?: dayjs.Dayjs;
|
|
84
113
|
selectedPeriod?: Period;
|
|
85
114
|
}
|
|
86
|
-
type
|
|
115
|
+
type FilterDropdownGroup = FilterDropdownGroupCheckbox | FilterDropdownGroupRadio | FilterDropdownGroupToggle | FilterDropdownGroupSelect | FilterDropdownGroupDateRange;
|
|
116
|
+
|
|
117
|
+
declare class FilterState {
|
|
118
|
+
private readonly _groups;
|
|
119
|
+
private readonly _draft;
|
|
120
|
+
readonly groups: _angular_core.Signal<FilterDropdownGroup[]>;
|
|
121
|
+
readonly draft: _angular_core.Signal<FilterDropdownOutput>;
|
|
122
|
+
/** Initialize groups and seed draft from config defaults */
|
|
123
|
+
initialize(groups: FilterDropdownGroup[]): void;
|
|
124
|
+
collapseHeader(key: string): void;
|
|
125
|
+
/** Get the draft value for a specific filter key */
|
|
126
|
+
getValue(key: string): FilterDropdownValue | undefined;
|
|
127
|
+
/** Update a single filter's draft value */
|
|
128
|
+
updateValue(key: string, value: FilterDropdownValue): void;
|
|
129
|
+
/** Toggle a checkbox item in a checkbox filter */
|
|
130
|
+
toggleCheckbox(key: string, name: string, checked: boolean): void;
|
|
131
|
+
/** Set the selected radio value */
|
|
132
|
+
setRadioValue(key: string, value: unknown): void;
|
|
133
|
+
/** Set the toggle checked state */
|
|
134
|
+
setToggleValue(key: string, checked: boolean): void;
|
|
135
|
+
/** Set selected indices for a select filter */
|
|
136
|
+
setSelectValue(key: string, selected: number[]): void;
|
|
137
|
+
/** Return the current draft snapshot (used on Apply) */
|
|
138
|
+
getSnapshot(): FilterDropdownOutput;
|
|
139
|
+
/** Reset draft to initial values from the current config */
|
|
140
|
+
reset(): void;
|
|
141
|
+
/** Clear all draft values to empty/default states */
|
|
142
|
+
clear(): void;
|
|
143
|
+
private buildInitialValue;
|
|
144
|
+
private buildEmptyValue;
|
|
145
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<FilterState, never>;
|
|
146
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<FilterState>;
|
|
147
|
+
}
|
|
87
148
|
|
|
88
149
|
declare class FilterDropdownComponent implements DropdownOverlay {
|
|
89
150
|
private readonly overlay;
|
|
151
|
+
readonly state: FilterState;
|
|
152
|
+
initGroups: _angular_core.EffectRef;
|
|
90
153
|
filterGroupTemplate: _angular_core.Signal<TemplateRef<unknown> | undefined>;
|
|
91
154
|
/** The filter groups to display in the dropdown */
|
|
92
|
-
items: _angular_core.InputSignal<
|
|
155
|
+
items: _angular_core.InputSignal<FilterDropdownGroup[] | undefined>;
|
|
93
156
|
/** Whether the filter needs the apply button to be clicked for applyFilters to emit */
|
|
94
157
|
needApplyButton: _angular_core.InputSignal<boolean>;
|
|
95
158
|
/** Whether the filter group can be closed (collapsed) by the user. If false, the group will always be expanded and the user won't see a toggle button. */
|
|
@@ -111,9 +174,9 @@ declare class FilterDropdownComponent implements DropdownOverlay {
|
|
|
111
174
|
/** Emits when the dropdown menu is closed */
|
|
112
175
|
closed: _angular_core.OutputEmitterRef<void>;
|
|
113
176
|
/** Emits when save presets is clicked */
|
|
114
|
-
savePresets: _angular_core.OutputEmitterRef<
|
|
177
|
+
savePresets: _angular_core.OutputEmitterRef<FilterDropdownOutput>;
|
|
115
178
|
/** Emits when filters are applied */
|
|
116
|
-
applyFilters: _angular_core.OutputEmitterRef<
|
|
179
|
+
applyFilters: _angular_core.OutputEmitterRef<FilterDropdownOutput>;
|
|
117
180
|
/** Emits when user clicks on clear filter */
|
|
118
181
|
clearFilters: _angular_core.OutputEmitterRef<void>;
|
|
119
182
|
/** Emits when user clicks on reset filter */
|
|
@@ -125,9 +188,13 @@ declare class FilterDropdownComponent implements DropdownOverlay {
|
|
|
125
188
|
close(): void;
|
|
126
189
|
/** Toggles the dropdown menu open or closed state */
|
|
127
190
|
toggle(triggerElement?: HTMLElement): void;
|
|
191
|
+
onApplyFilters(): void;
|
|
192
|
+
onClearFilters(): void;
|
|
193
|
+
onResetFilters(): void;
|
|
194
|
+
onSavePresets(): void;
|
|
128
195
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<FilterDropdownComponent, never>;
|
|
129
196
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<FilterDropdownComponent, "ap-filter-dropdown", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "needApplyButton": { "alias": "needApplyButton"; "required": false; "isSignal": true; }; "closable": { "alias": "closable"; "required": false; "isSignal": true; }; "savePresetsMode": { "alias": "savePresetsMode"; "required": false; "isSignal": true; }; "showBackdrop": { "alias": "showBackdrop"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "defaultPosition": { "alias": "defaultPosition"; "required": false; "isSignal": true; }; "savePresetsText": { "alias": "savePresetsText"; "required": false; "isSignal": true; }; "resetFilterText": { "alias": "resetFilterText"; "required": false; "isSignal": true; }; "applyFiltersText": { "alias": "applyFiltersText"; "required": false; "isSignal": true; }; "clearFilterText": { "alias": "clearFilterText"; "required": false; "isSignal": true; }; }, { "opened": "opened"; "closed": "closed"; "savePresets": "savePresets"; "applyFilters": "applyFilters"; "clearFilters": "clearFilters"; "resetFilters": "resetFilters"; }, never, never, true, never>;
|
|
130
197
|
}
|
|
131
198
|
|
|
132
199
|
export { FilterDropdownComponent };
|
|
133
|
-
export type {
|
|
200
|
+
export type { FilterDropdownGroup, FilterDropdownGroupCheckbox, FilterDropdownGroupDateRange, FilterDropdownGroupRadio, FilterDropdownGroupSelect, FilterDropdownGroupToggle, FilterDropdownItemCheckbox, FilterDropdownItemRadio, FilterDropdownItemSelect, FilterDropdownItemToggle, FilterDropdownOutput, FilterDropdownType, FilterDropdownValue, FilterDropdownValueCheckbox, FilterDropdownValueDateRange, FilterDropdownValueRadio, FilterDropdownValueSelect, FilterDropdownValueToggle };
|
package/index.d.ts
CHANGED
|
@@ -46,7 +46,7 @@ export { BadgeComponent } from '@agorapulse/ui-components/badge';
|
|
|
46
46
|
export { ButtonComponent } from '@agorapulse/ui-components/button';
|
|
47
47
|
export { CheckboxComponent } from '@agorapulse/ui-components/checkbox';
|
|
48
48
|
export { CounterComponent } from '@agorapulse/ui-components/counter';
|
|
49
|
-
export { FilterDropdownComponent,
|
|
49
|
+
export { FilterDropdownComponent, FilterDropdownGroup, FilterDropdownItemCheckbox, FilterDropdownItemRadio, FilterDropdownItemSelect, FilterDropdownItemToggle } from '@agorapulse/ui-components/filter-dropdown';
|
|
50
50
|
export { IconButtonComponent } from '@agorapulse/ui-components/icon-button';
|
|
51
51
|
export { InputComponent } from '@agorapulse/ui-components/legacy/input';
|
|
52
52
|
export { SelectComponent } from '@agorapulse/ui-components/legacy/select';
|
package/package.json
CHANGED
package/select/index.d.ts
CHANGED
|
@@ -31,13 +31,16 @@ declare class SelectBaseDirective implements AfterViewInit {
|
|
|
31
31
|
declare class SelectMultipleDirective implements AfterViewInit, OnDestroy {
|
|
32
32
|
private readonly selectComponent;
|
|
33
33
|
private readonly elementRef;
|
|
34
|
+
private readonly originalDisabledState;
|
|
35
|
+
maxItemsTooltip: _angular_core.InputSignal<string | undefined>;
|
|
34
36
|
valueContainer: HTMLElement | null;
|
|
35
37
|
constructor();
|
|
36
38
|
ngAfterViewInit(): void;
|
|
37
39
|
ngOnDestroy(): void;
|
|
38
40
|
onMousedown: (event: MouseEvent) => void;
|
|
41
|
+
private updateMaxItemsDisabledState;
|
|
39
42
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SelectMultipleDirective, never>;
|
|
40
|
-
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<SelectMultipleDirective, "ng-select[apSelectMultiple]", never, {}, {}, never, never, true, [{ directive: typeof SelectBaseDirective; inputs: { "inlineLabel": "inlineLabel"; "symbolId": "symbolId"; }; outputs: {}; }]>;
|
|
43
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<SelectMultipleDirective, "ng-select[apSelectMultiple]", never, { "maxItemsTooltip": { "alias": "maxItemsTooltip"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof SelectBaseDirective; inputs: { "inlineLabel": "inlineLabel"; "symbolId": "symbolId"; }; outputs: {}; }]>;
|
|
41
44
|
}
|
|
42
45
|
|
|
43
46
|
declare class SelectSingleDirective implements AfterViewInit {
|
|
@@ -92,6 +95,7 @@ declare class DropdownItemSingleTwoLinesComponent {
|
|
|
92
95
|
|
|
93
96
|
declare class DropdownItemMultipleOneLineComponent {
|
|
94
97
|
private readonly symbolRegistry;
|
|
98
|
+
protected readonly selectMultiple: SelectMultipleDirective | null;
|
|
95
99
|
constructor();
|
|
96
100
|
text: string;
|
|
97
101
|
selected: boolean;
|
|
@@ -122,6 +126,7 @@ declare class DropdownItemMultipleOneLineComponent {
|
|
|
122
126
|
|
|
123
127
|
declare class DropdownItemMultipleTwoLinesComponent {
|
|
124
128
|
private readonly symbolRegistry;
|
|
129
|
+
protected readonly selectMultiple: SelectMultipleDirective | null;
|
|
125
130
|
constructor();
|
|
126
131
|
text: string;
|
|
127
132
|
caption: string;
|
|
@@ -151,6 +156,7 @@ declare class DropdownItemMultipleTwoLinesComponent {
|
|
|
151
156
|
|
|
152
157
|
type SelectBaseDisplayType = 'tag' | 'label';
|
|
153
158
|
type SelectLabelSingleDisplayType = 'text' | 'withAvatar' | SelectBaseDisplayType;
|
|
159
|
+
type SelectLabelMultipleDisplayType = SelectBaseDisplayType;
|
|
154
160
|
|
|
155
161
|
declare class SelectLabelSingleComponent {
|
|
156
162
|
displayType: _angular_core.InputSignal<SelectLabelSingleDisplayType>;
|
|
@@ -231,6 +237,7 @@ declare class DropdownGroupItemComponent {
|
|
|
231
237
|
isGroupIntermediate(): boolean;
|
|
232
238
|
isGroupChecked(): boolean;
|
|
233
239
|
isGroupDisabled(): boolean;
|
|
240
|
+
onGroupClick(event: Event): void;
|
|
234
241
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DropdownGroupItemComponent, never>;
|
|
235
242
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DropdownGroupItemComponent, "ap-dropdown-group-item", never, { "groupLabel": { "alias": "groupLabel"; "required": true; }; "groupTag": { "alias": "groupTag"; "required": false; }; "selectableGroup": { "alias": "selectableGroup"; "required": false; }; "children": { "alias": "children"; "required": true; }; "select": { "alias": "select"; "required": true; }; "disabled": { "alias": "disabled"; "required": false; }; "disabledTooltip": { "alias": "disabledTooltip"; "required": false; }; }, {}, never, never, true, never>;
|
|
236
243
|
}
|
|
@@ -242,3 +249,4 @@ declare class ApSelectModule {
|
|
|
242
249
|
}
|
|
243
250
|
|
|
244
251
|
export { ApSelectModule, DropdownGroupItemComponent, DropdownItemMultipleOneLineComponent, DropdownItemMultipleTwoLinesComponent, DropdownItemSingleOneLineComponent, DropdownItemSingleTwoLinesComponent, DropdownSearchFormComponent, SelectBaseDirective, SelectLabelMultipleComponent, SelectLabelSingleComponent, SelectMultipleDirective, SelectSingleDirective };
|
|
252
|
+
export type { SelectLabelMultipleDisplayType, SelectLabelSingleDisplayType };
|
|
Binary file
|