@agorapulse/ui-components 20.4.14 → 20.4.16

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.
@@ -6,14 +6,13 @@ import { TagColor } from '@agorapulse/ui-components/tag';
6
6
  import * as _angular_core from '@angular/core';
7
7
  import { TemplateRef } from '@angular/core';
8
8
  import { DropdownOverlay } from '@agorapulse/ui-components/dropdown-base';
9
+ import { ActionDropdownItem } from '@agorapulse/ui-components/action-dropdown';
9
10
 
10
11
  type FilterDropdownType = 'checkbox' | 'radio' | 'toggle' | 'select' | 'date-range';
11
12
  interface FilterDropdownItemCheckbox {
12
13
  label: string;
13
14
  name: string;
14
- checked?: boolean;
15
15
  disabled?: boolean;
16
- indeterminate?: boolean;
17
16
  }
18
17
  interface FilterDropdownItemRadio {
19
18
  label: string;
@@ -130,8 +129,12 @@ type FilterDropdownGroup = FilterDropdownGroupCheckbox | FilterDropdownGroupRadi
130
129
  declare class FilterState {
131
130
  private readonly _groups;
132
131
  private readonly _draft;
132
+ activeFilterCount: _angular_core.Signal<number>;
133
133
  readonly groups: _angular_core.Signal<FilterDropdownGroup[]>;
134
134
  readonly draft: _angular_core.Signal<FilterDropdownOutput>;
135
+ isFilterCountActive: _angular_core.Signal<boolean>;
136
+ private readonly _hasChanges;
137
+ readonly buttonsDisabled: _angular_core.Signal<boolean>;
135
138
  /** Initialize groups and seed draft from config defaults */
136
139
  initialize(groups: FilterDropdownGroup[]): void;
137
140
  collapseHeader(key: string): void;
@@ -166,6 +169,7 @@ declare class FilterDropdownComponent implements DropdownOverlay {
166
169
  private readonly overlay;
167
170
  readonly filterState: FilterState;
168
171
  initGroups: _angular_core.EffectRef;
172
+ emitOnValueChange: _angular_core.EffectRef;
169
173
  filterGroupTemplate: _angular_core.Signal<TemplateRef<unknown> | undefined>;
170
174
  /** The filter groups to display in the dropdown */
171
175
  items: _angular_core.InputSignal<FilterDropdownGroup[] | undefined>;
@@ -175,13 +179,18 @@ declare class FilterDropdownComponent implements DropdownOverlay {
175
179
  closable: _angular_core.InputSignal<boolean>;
176
180
  /** whether the mode is in preset mode */
177
181
  savePresetsMode: _angular_core.InputSignal<boolean>;
182
+ /** whether the user is currently editing presets. Only necessary if savePresetsMode is at true */
183
+ editingPresetsMode: _angular_core.InputSignal<boolean>;
178
184
  /** Whether to show a backdrop that closes the dropdown when clicked */
179
185
  showBackdrop: _angular_core.InputSignal<boolean>;
180
186
  /** Whether the dropdown is disabled and cannot be opened */
181
187
  disabled: _angular_core.InputSignal<boolean>;
182
188
  /** Default position for the dropdown relative to the trigger element */
183
189
  defaultPosition: _angular_core.InputSignal<"left" | "right">;
184
- savePresetsText: _angular_core.InputSignal<string>;
190
+ saveNewPresetsText: _angular_core.InputSignal<string>;
191
+ saveAsNewPresetText: _angular_core.InputSignal<string>;
192
+ savePresetText: _angular_core.InputSignal<string>;
193
+ updateExistingPresetText: _angular_core.InputSignal<string>;
185
194
  resetFilterText: _angular_core.InputSignal<string>;
186
195
  applyFiltersText: _angular_core.InputSignal<string>;
187
196
  clearFilterText: _angular_core.InputSignal<string>;
@@ -190,7 +199,9 @@ declare class FilterDropdownComponent implements DropdownOverlay {
190
199
  /** Emits when the dropdown menu is closed */
191
200
  closed: _angular_core.OutputEmitterRef<void>;
192
201
  /** Emits when save presets is clicked */
193
- savePresets: _angular_core.OutputEmitterRef<FilterDropdownOutput>;
202
+ saveNewPresets: _angular_core.OutputEmitterRef<FilterDropdownOutput>;
203
+ /** Emits when save presets is clicked */
204
+ updatePresets: _angular_core.OutputEmitterRef<FilterDropdownOutput>;
194
205
  /** Emits when filters are applied */
195
206
  applyFilters: _angular_core.OutputEmitterRef<FilterDropdownOutput>;
196
207
  /** Emits when user clicks on clear filter */
@@ -198,6 +209,7 @@ declare class FilterDropdownComponent implements DropdownOverlay {
198
209
  /** Emits when user clicks on reset filter */
199
210
  resetFilters: _angular_core.OutputEmitterRef<void>;
200
211
  readonly isOpen: _angular_core.Signal<boolean>;
212
+ savePresetsDropdownItems: _angular_core.Signal<ActionDropdownItem[]>;
201
213
  /** Opens the dropdown menu at the specified trigger element */
202
214
  open(triggerElement?: HTMLElement): void;
203
215
  /** Closes the dropdown menu and cleans up overlay resources */
@@ -208,9 +220,64 @@ declare class FilterDropdownComponent implements DropdownOverlay {
208
220
  onClearFilters(): void;
209
221
  onResetFilters(): void;
210
222
  onSavePresets(): void;
223
+ onUpdatePresets(): void;
224
+ protected onActionDropdownItemClick(item: ActionDropdownItem): void;
211
225
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FilterDropdownComponent, never>;
212
- 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>;
226
+ 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; }; "editingPresetsMode": { "alias": "editingPresetsMode"; "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; }; "saveNewPresetsText": { "alias": "saveNewPresetsText"; "required": false; "isSignal": true; }; "saveAsNewPresetText": { "alias": "saveAsNewPresetText"; "required": false; "isSignal": true; }; "savePresetText": { "alias": "savePresetText"; "required": false; "isSignal": true; }; "updateExistingPresetText": { "alias": "updateExistingPresetText"; "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"; "saveNewPresets": "saveNewPresets"; "updatePresets": "updatePresets"; "applyFilters": "applyFilters"; "clearFilters": "clearFilters"; "resetFilters": "resetFilters"; }, never, never, true, never>;
227
+ }
228
+
229
+ declare class FilterDropdownButtonComponent {
230
+ readonly filterState: FilterState;
231
+ isFilterCountActive: _angular_core.Signal<boolean>;
232
+ activeFilterCount: _angular_core.Signal<number>;
233
+ /** text of the button, input specific to the button */
234
+ buttonFilterText: _angular_core.InputSignal<string>;
235
+ /** input specific to the filter-dropdown */
236
+ /** The filter groups to display in the dropdown */
237
+ items: _angular_core.InputSignal<FilterDropdownGroup[] | undefined>;
238
+ /** Whether the filter needs the apply button to be clicked for applyFilters to emit */
239
+ needApplyButton: _angular_core.InputSignal<boolean>;
240
+ /** 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. */
241
+ closable: _angular_core.InputSignal<boolean>;
242
+ /** whether the mode is in preset mode */
243
+ savePresetsMode: _angular_core.InputSignal<boolean>;
244
+ /** whether the user is currently editing presets. Only necessary if savePresetsMode is at true */
245
+ editingPresetsMode: _angular_core.InputSignal<boolean>;
246
+ /** Whether to show a backdrop that closes the dropdown when clicked */
247
+ showBackdrop: _angular_core.InputSignal<boolean>;
248
+ /** Whether the dropdown is disabled and cannot be opened */
249
+ disabled: _angular_core.InputSignal<boolean>;
250
+ /** Default position for the dropdown relative to the trigger element */
251
+ defaultPosition: _angular_core.InputSignal<"left" | "right">;
252
+ saveNewPresetsText: _angular_core.InputSignal<string>;
253
+ saveAsNewPresetText: _angular_core.InputSignal<string>;
254
+ savePresetText: _angular_core.InputSignal<string>;
255
+ updateExistingPresetText: _angular_core.InputSignal<string>;
256
+ resetFilterText: _angular_core.InputSignal<string>;
257
+ applyFiltersText: _angular_core.InputSignal<string>;
258
+ clearFilterText: _angular_core.InputSignal<string>;
259
+ /** Emits when the dropdown menu is opened */
260
+ opened: _angular_core.OutputEmitterRef<void>;
261
+ /** Emits when the dropdown menu is closed */
262
+ closed: _angular_core.OutputEmitterRef<void>;
263
+ /** Emits when save presets is clicked */
264
+ saveNewPresets: _angular_core.OutputEmitterRef<FilterDropdownOutput>;
265
+ /** Emits when save presets is clicked */
266
+ updatePresets: _angular_core.OutputEmitterRef<FilterDropdownOutput>;
267
+ /** Emits when filters are applied */
268
+ applyFilters: _angular_core.OutputEmitterRef<FilterDropdownOutput>;
269
+ /** Emits when user clicks on clear filter */
270
+ clearFilters: _angular_core.OutputEmitterRef<void>;
271
+ /** Emits when user clicks on reset filter */
272
+ resetFilters: _angular_core.OutputEmitterRef<void>;
273
+ onApplyFilters(): void;
274
+ onClearFilters(): void;
275
+ onResetFilters(): void;
276
+ onSavePresets(): void;
277
+ onUpdatePresets(): void;
278
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<FilterDropdownButtonComponent, never>;
279
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<FilterDropdownButtonComponent, "ap-filter-dropdown-button", never, { "buttonFilterText": { "alias": "buttonFilterText"; "required": false; "isSignal": true; }; "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; }; "editingPresetsMode": { "alias": "editingPresetsMode"; "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; }; "saveNewPresetsText": { "alias": "saveNewPresetsText"; "required": false; "isSignal": true; }; "saveAsNewPresetText": { "alias": "saveAsNewPresetText"; "required": false; "isSignal": true; }; "savePresetText": { "alias": "savePresetText"; "required": false; "isSignal": true; }; "updateExistingPresetText": { "alias": "updateExistingPresetText"; "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"; "saveNewPresets": "saveNewPresets"; "updatePresets": "updatePresets"; "applyFilters": "applyFilters"; "clearFilters": "clearFilters"; "resetFilters": "resetFilters"; }, never, never, true, never>;
213
280
  }
214
281
 
215
- export { FilterDropdownComponent };
282
+ export { FilterDropdownButtonComponent, FilterDropdownComponent };
216
283
  export type { FilterDropdownGroup, FilterDropdownGroupCheckbox, FilterDropdownGroupDateRange, FilterDropdownGroupRadio, FilterDropdownGroupSelect, FilterDropdownGroupToggle, FilterDropdownItemCheckbox, FilterDropdownItemRadio, FilterDropdownItemSelect, FilterDropdownItemToggle, FilterDropdownOutput, FilterDropdownType, FilterDropdownValue, FilterDropdownValueCheckbox, FilterDropdownValueDateRange, FilterDropdownValueMultipleSelect, FilterDropdownValueRadio, FilterDropdownValueSingleSelect, 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, FilterDropdownGroup, FilterDropdownItemCheckbox, FilterDropdownItemRadio, FilterDropdownItemSelect, FilterDropdownItemToggle } from '@agorapulse/ui-components/filter-dropdown';
49
+ export { FilterDropdownButtonComponent, FilterDropdownComponent, FilterDropdownGroup, FilterDropdownItemCheckbox, FilterDropdownItemRadio, FilterDropdownItemSelect, FilterDropdownItemToggle, FilterDropdownOutput } 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
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@agorapulse/ui-components",
3
3
  "description": "Agorapulse UI Components Library",
4
- "version": "20.4.14",
4
+ "version": "20.4.16",
5
5
  "author": "Benoit Hediard",
6
6
  "repository": {
7
7
  "type": "git",
@@ -96,6 +96,10 @@
96
96
  "types": "./dropdown-base/index.d.ts",
97
97
  "default": "./fesm2022/agorapulse-ui-components-dropdown-base.mjs"
98
98
  },
99
+ "./filter-chips-list": {
100
+ "types": "./filter-chips-list/index.d.ts",
101
+ "default": "./fesm2022/agorapulse-ui-components-filter-chips-list.mjs"
102
+ },
99
103
  "./filter-dropdown": {
100
104
  "types": "./filter-dropdown/index.d.ts",
101
105
  "default": "./fesm2022/agorapulse-ui-components-filter-dropdown.mjs"