@agorapulse/ui-components 22.0.28 → 22.0.29

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.
@@ -184,6 +184,7 @@ declare class FilterState {
184
184
  private readonly _draft;
185
185
  private readonly _baseline;
186
186
  private readonly _expanded;
187
+ private readonly _openPanelKeys;
187
188
  readonly groups: _angular_core.Signal<FilterDropdownGroup[]>;
188
189
  readonly draft: _angular_core.Signal<FilterDropdownOutput>;
189
190
  readonly expanded: _angular_core.Signal<Record<string, boolean>>;
@@ -194,6 +195,8 @@ declare class FilterState {
194
195
  readonly buttonsDisabled: _angular_core.Signal<boolean>;
195
196
  /** Clear is gated on "is there anything to clear", not on dirty state. */
196
197
  readonly clearDisabled: _angular_core.Signal<boolean>;
198
+ /** Whether a leaf has a panel of its own showing: the dropdown must not close under it. */
199
+ readonly nestedPanelOpen: _angular_core.Signal<boolean>;
197
200
  /** Refresh the structural schema and reconcile the value keyspace (add empty / drop removed). */
198
201
  setSchema(groups: FilterDropdownGroup[]): void;
199
202
  /** Seed the draft from an external value, projected onto the current keyspace. Echo-gated, silent. */
@@ -216,6 +219,8 @@ declare class FilterState {
216
219
  * the edge where the DOM event happens.
217
220
  */
218
221
  updateValue(key: string, value: FilterDropdownValue): void;
222
+ /** Call whenever a leaf's panel opens or closes. Keyed by leaf, so a repeated open or close is harmless. */
223
+ setNestedPanelOpen(key: string, open: boolean): void;
219
224
  /** Whether a group is currently expanded. Defaults to collapsed for unknown keys. */
220
225
  isExpanded(key: string): boolean;
221
226
  /** Toggle a group's expand/collapse state. Updates internal state only — the config is never mutated. */
@@ -262,8 +267,8 @@ declare class FilterDropdownComponent implements DropdownOverlay {
262
267
  savedValue: _angular_core.InputSignal<FilterDropdownOutput | undefined>;
263
268
  /** Whether the filter needs the apply button to be clicked for applyFilters to emit */
264
269
  needApplyButton: _angular_core.InputSignal<boolean>;
265
- /** Whether to offer a cancel button that discards the unapplied draft and closes the dropdown. */
266
- needCancelButton: _angular_core.InputSignal<boolean>;
270
+ /** Whether to offer a clear button that empties every group's selection. */
271
+ needClearButton: _angular_core.InputSignal<boolean>;
267
272
  /** 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. */
268
273
  closable: _angular_core.InputSignal<boolean>;
269
274
  /**
@@ -291,7 +296,6 @@ declare class FilterDropdownComponent implements DropdownOverlay {
291
296
  resetFilterText: _angular_core.InputSignal<string>;
292
297
  applyFiltersText: _angular_core.InputSignal<string>;
293
298
  clearFilterText: _angular_core.InputSignal<string>;
294
- cancelFilterText: _angular_core.InputSignal<string>;
295
299
  /** Emits when the dropdown menu is opened */
296
300
  opened: _angular_core.OutputEmitterRef<void>;
297
301
  /** Emits when the dropdown menu is closed */
@@ -313,9 +317,14 @@ declare class FilterDropdownComponent implements DropdownOverlay {
313
317
  /** Event emitted when a group with locked feature is clicked */
314
318
  filterDropdownGroupLockedClicked: _angular_core.OutputEmitterRef<FilterDropdownGroup>;
315
319
  readonly isOpen: _angular_core.Signal<boolean>;
320
+ private panelOpenAtGestureStart;
316
321
  savePresetsDropdownItems: _angular_core.Signal<ActionDropdownItem[]>;
317
322
  /** Opens the dropdown menu at the specified trigger element */
318
323
  open(triggerElement?: HTMLElement): void;
324
+ /** A leaf's panel closes on the pointerdown or keydown that dismisses it, so snapshot the flag then: by dismissal it reads false. */
325
+ private trackDismissalGestures;
326
+ /** Backdrop click / Escape: close, unless the gesture was a leaf panel's own dismissal. */
327
+ private dismiss;
319
328
  /** Closes the dropdown menu and cleans up overlay resources */
320
329
  close(): void;
321
330
  /** Toggles the dropdown menu open or closed state */
@@ -328,8 +337,6 @@ declare class FilterDropdownComponent implements DropdownOverlay {
328
337
  onLeafEdit(edit: FilterValueEdit): void;
329
338
  /** Manual-apply commit (Apply button; only rendered when `needApplyButton`). Applying also dismisses the panel. */
330
339
  onApplyFilters(): void;
331
- /** Dismiss without applying: the draft goes back to the last committed value, so reopening shows no leftover edits. */
332
- onCancelFilters(): void;
333
340
  onClearFilters(): void;
334
341
  onResetFilters(): void;
335
342
  /** In auto-apply mode, push the current draft to the consumer. The single place clear/reset/leaf-edit funnel through. */
@@ -338,7 +345,7 @@ declare class FilterDropdownComponent implements DropdownOverlay {
338
345
  onUpdatePresets(): void;
339
346
  protected onActionDropdownItemClick(item: ActionDropdownItem): void;
340
347
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FilterDropdownComponent, never>;
341
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<FilterDropdownComponent, "ap-filter-dropdown", never, { "groups": { "alias": "groups"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "savedValue": { "alias": "savedValue"; "required": false; "isSignal": true; }; "needApplyButton": { "alias": "needApplyButton"; "required": false; "isSignal": true; }; "needCancelButton": { "alias": "needCancelButton"; "required": false; "isSignal": true; }; "closable": { "alias": "closable"; "required": false; "isSignal": true; }; "expandOnOpen": { "alias": "expandOnOpen"; "required": false; "isSignal": true; }; "presetsFeatureLocked": { "alias": "presetsFeatureLocked"; "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; }; "defaultPosition": { "alias": "defaultPosition"; "required": false; "isSignal": true; }; "panelClass": { "alias": "panelClass"; "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; }; "cancelFilterText": { "alias": "cancelFilterText"; "required": false; "isSignal": true; }; }, { "opened": "opened"; "closed": "closed"; "presetsLockedClicked": "presetsLockedClicked"; "saveNewPresets": "saveNewPresets"; "updatePresets": "updatePresets"; "applyFilters": "applyFilters"; "clearFilters": "clearFilters"; "resetFilters": "resetFilters"; "lockedFeatureClicked": "lockedFeatureClicked"; "filterDropdownGroupLockedClicked": "filterDropdownGroupLockedClicked"; }, never, never, true, never>;
348
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<FilterDropdownComponent, "ap-filter-dropdown", never, { "groups": { "alias": "groups"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "savedValue": { "alias": "savedValue"; "required": false; "isSignal": true; }; "needApplyButton": { "alias": "needApplyButton"; "required": false; "isSignal": true; }; "needClearButton": { "alias": "needClearButton"; "required": false; "isSignal": true; }; "closable": { "alias": "closable"; "required": false; "isSignal": true; }; "expandOnOpen": { "alias": "expandOnOpen"; "required": false; "isSignal": true; }; "presetsFeatureLocked": { "alias": "presetsFeatureLocked"; "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; }; "defaultPosition": { "alias": "defaultPosition"; "required": false; "isSignal": true; }; "panelClass": { "alias": "panelClass"; "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"; "presetsLockedClicked": "presetsLockedClicked"; "saveNewPresets": "saveNewPresets"; "updatePresets": "updatePresets"; "applyFilters": "applyFilters"; "clearFilters": "clearFilters"; "resetFilters": "resetFilters"; "lockedFeatureClicked": "lockedFeatureClicked"; "filterDropdownGroupLockedClicked": "filterDropdownGroupLockedClicked"; }, never, never, true, never>;
342
349
  }
343
350
 
344
351
  declare class FilterDropdownButtonComponent {
@@ -356,8 +363,8 @@ declare class FilterDropdownButtonComponent {
356
363
  savedValue: _angular_core.InputSignal<FilterDropdownOutput | undefined>;
357
364
  /** Whether the filter needs the apply button to be clicked for applyFilters to emit */
358
365
  needApplyButton: _angular_core.InputSignal<boolean>;
359
- /** Whether to offer a cancel button that discards the unapplied draft and closes the dropdown. */
360
- needCancelButton: _angular_core.InputSignal<boolean>;
366
+ /** Whether to offer a clear button that empties every group's selection. */
367
+ needClearButton: _angular_core.InputSignal<boolean>;
361
368
  /** 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. */
362
369
  closable: _angular_core.InputSignal<boolean>;
363
370
  /** Policy deciding which groups start expanded on each open ('collapse-empty' | predicate). Omitted → persist. */
@@ -383,7 +390,6 @@ declare class FilterDropdownButtonComponent {
383
390
  resetFilterText: _angular_core.InputSignal<string>;
384
391
  applyFiltersText: _angular_core.InputSignal<string>;
385
392
  clearFilterText: _angular_core.InputSignal<string>;
386
- cancelFilterText: _angular_core.InputSignal<string>;
387
393
  /** Emits when the dropdown menu is opened */
388
394
  opened: _angular_core.OutputEmitterRef<void>;
389
395
  /** Emits when the dropdown menu is closed */
@@ -405,7 +411,7 @@ declare class FilterDropdownButtonComponent {
405
411
  /** Event emitted when a group with locked feature is clicked */
406
412
  filterDropdownGroupLockedClicked: _angular_core.OutputEmitterRef<FilterDropdownGroup>;
407
413
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FilterDropdownButtonComponent, never>;
408
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<FilterDropdownButtonComponent, "ap-filter-dropdown-button", never, { "buttonFilterText": { "alias": "buttonFilterText"; "required": false; "isSignal": true; }; "groups": { "alias": "groups"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "savedValue": { "alias": "savedValue"; "required": false; "isSignal": true; }; "needApplyButton": { "alias": "needApplyButton"; "required": false; "isSignal": true; }; "needCancelButton": { "alias": "needCancelButton"; "required": false; "isSignal": true; }; "closable": { "alias": "closable"; "required": false; "isSignal": true; }; "expandOnOpen": { "alias": "expandOnOpen"; "required": false; "isSignal": true; }; "presetsFeatureLocked": { "alias": "presetsFeatureLocked"; "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; }; "panelClass": { "alias": "panelClass"; "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; }; "cancelFilterText": { "alias": "cancelFilterText"; "required": false; "isSignal": true; }; }, { "opened": "opened"; "closed": "closed"; "presetsLockedClicked": "presetsLockedClicked"; "saveNewPresets": "saveNewPresets"; "updatePresets": "updatePresets"; "applyFilters": "applyFilters"; "clearFilters": "clearFilters"; "resetFilters": "resetFilters"; "lockedFeatureClicked": "lockedFeatureClicked"; "filterDropdownGroupLockedClicked": "filterDropdownGroupLockedClicked"; }, never, never, true, never>;
414
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<FilterDropdownButtonComponent, "ap-filter-dropdown-button", never, { "buttonFilterText": { "alias": "buttonFilterText"; "required": false; "isSignal": true; }; "groups": { "alias": "groups"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "savedValue": { "alias": "savedValue"; "required": false; "isSignal": true; }; "needApplyButton": { "alias": "needApplyButton"; "required": false; "isSignal": true; }; "needClearButton": { "alias": "needClearButton"; "required": false; "isSignal": true; }; "closable": { "alias": "closable"; "required": false; "isSignal": true; }; "expandOnOpen": { "alias": "expandOnOpen"; "required": false; "isSignal": true; }; "presetsFeatureLocked": { "alias": "presetsFeatureLocked"; "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; }; "panelClass": { "alias": "panelClass"; "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"; "presetsLockedClicked": "presetsLockedClicked"; "saveNewPresets": "saveNewPresets"; "updatePresets": "updatePresets"; "applyFilters": "applyFilters"; "clearFilters": "clearFilters"; "resetFilters": "resetFilters"; "lockedFeatureClicked": "lockedFeatureClicked"; "filterDropdownGroupLockedClicked": "filterDropdownGroupLockedClicked"; }, never, never, true, never>;
409
415
  }
410
416
 
411
417
  export { FilterDropdownButtonComponent, FilterDropdownComponent };