@sinequa/atomic-angular 1.7.1 → 1.8.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/index.d.ts CHANGED
@@ -4,7 +4,7 @@ import * as rxjs from 'rxjs';
4
4
  import { BehaviorSubject, Observable, Subject } from 'rxjs';
5
5
  import * as _ngrx_signals from '@ngrx/signals';
6
6
  import * as _sinequa_atomic from '@sinequa/atomic';
7
- import { Article as Article$1, LegacyFilter, KeyOf, Query, QueryParams as QueryParams$1, AggregationItem, TreeAggregationNode, Aggregation, TreeAggregation, Conversion, CCApp, CCColumn, CCQuery, CCWebService, Principal, SpellingCorrectionMode, AuditEvents, CustomHighlights, Result, AuditEventType, AuditEventTypeValues, Suggestion, PreviewData, TextLocation, TextChunk, UserProfile, CCSortingChoice, LinkResult, ExportQueryModel, ExportOutputFormat, FilterOperator } from '@sinequa/atomic';
7
+ import { Article as Article$1, LegacyFilter, KeyOf, Query, QueryParams as QueryParams$1, AggregationItem, TreeAggregationNode, Aggregation, TreeAggregation, Conversion, CCApp, CCColumn, CCQuery, CCWebService, Principal, SpellingCorrectionMode, AuditEvents, CustomHighlights, Result, AuditEventType, AuditEventTypeValues, Suggestion, Filter as Filter$2, PreviewData, TextLocation, TextChunk, UserProfile, CCSortingChoice, LinkResult, ExportQueryModel, ExportOutputFormat, FilterOperator } from '@sinequa/atomic';
8
8
  import { Router, Params, Route, NavigationEnd, CanActivateFn, ResolveFn } from '@angular/router';
9
9
  import * as _sinequa_atomic_angular from '@sinequa/atomic-angular';
10
10
  import * as _sinequa_ui from '@sinequa/ui';
@@ -114,8 +114,10 @@ declare class DocumentLocatorComponent implements OnDestroy {
114
114
  readonly el: ElementRef<any>;
115
115
  readonly router: Router;
116
116
  readonly queryParamStore: {
117
- name?: _angular_core.Signal<string | undefined> | undefined;
118
117
  text?: _angular_core.Signal<string | undefined> | undefined;
118
+ aggregations?: _angular_core.Signal<string[] | Record<string, _sinequa_atomic.AggregationOptions> | undefined> | undefined;
119
+ name?: _angular_core.Signal<string | undefined> | undefined;
120
+ sort?: _angular_core.Signal<string | undefined> | undefined;
119
121
  action?: _angular_core.Signal<"" | "open" | "search" | "aggregate" | undefined> | undefined;
120
122
  select?: _angular_core.Signal<_sinequa_atomic.Select[] | undefined> | undefined;
121
123
  open?: _angular_core.Signal<_sinequa_atomic.Open[] | undefined> | undefined;
@@ -123,7 +125,6 @@ declare class DocumentLocatorComponent implements OnDestroy {
123
125
  pageSize?: _angular_core.Signal<number | undefined> | undefined;
124
126
  tab?: _angular_core.Signal<string | undefined> | undefined;
125
127
  scope?: _angular_core.Signal<string | undefined> | undefined;
126
- sort?: _angular_core.Signal<string | undefined> | undefined;
127
128
  basket?: _angular_core.Signal<string | undefined> | undefined;
128
129
  isFirstPage?: _angular_core.Signal<boolean | undefined> | undefined;
129
130
  strictRefine?: _angular_core.Signal<boolean | undefined> | undefined;
@@ -137,7 +138,6 @@ declare class DocumentLocatorComponent implements OnDestroy {
137
138
  relevanceTransforms?: _angular_core.Signal<string | undefined> | undefined;
138
139
  removeDuplicates?: _angular_core.Signal<boolean | undefined> | undefined;
139
140
  queryId?: _angular_core.Signal<string | undefined> | undefined;
140
- aggregations?: _angular_core.Signal<string[] | Record<string, _sinequa_atomic.AggregationOptions> | undefined> | undefined;
141
141
  orderBy?: _angular_core.Signal<string | undefined> | undefined;
142
142
  groupBy?: _angular_core.Signal<string | undefined> | undefined;
143
143
  neuralSearch?: _angular_core.Signal<boolean | undefined> | undefined;
@@ -183,8 +183,10 @@ declare class DocumentLocatorComponent implements OnDestroy {
183
183
  }> | null;
184
184
  getQuery: () => _sinequa_atomic.Query;
185
185
  } & _ngrx_signals.StateSource<{
186
- name?: string | undefined;
187
186
  text?: string | undefined;
187
+ aggregations?: (Record<string, _sinequa_atomic.AggregationOptions> | string[]) | undefined;
188
+ name?: string | undefined;
189
+ sort?: string | undefined;
188
190
  action?: "" | "search" | "open" | "aggregate" | undefined;
189
191
  select?: _sinequa_atomic.Select[] | undefined;
190
192
  open?: _sinequa_atomic.Open[] | undefined;
@@ -192,7 +194,6 @@ declare class DocumentLocatorComponent implements OnDestroy {
192
194
  pageSize?: number | undefined;
193
195
  tab?: string | undefined;
194
196
  scope?: string | undefined;
195
- sort?: string | undefined;
196
197
  basket?: string | undefined;
197
198
  isFirstPage?: boolean | undefined;
198
199
  strictRefine?: boolean | undefined;
@@ -206,7 +207,6 @@ declare class DocumentLocatorComponent implements OnDestroy {
206
207
  relevanceTransforms?: string | undefined;
207
208
  removeDuplicates?: boolean | undefined;
208
209
  queryId?: string | undefined;
209
- aggregations?: (Record<string, _sinequa_atomic.AggregationOptions> | string[]) | undefined;
210
210
  orderBy?: string | undefined;
211
211
  groupBy?: string | undefined;
212
212
  neuralSearch?: boolean | undefined;
@@ -285,8 +285,10 @@ declare class MetadataComponent {
285
285
  declare class MissingTermsComponent {
286
286
  readonly article: _angular_core.InputSignal<Article$1>;
287
287
  queryParamsStore: {
288
- name?: _angular_core.Signal<string | undefined> | undefined;
289
288
  text?: _angular_core.Signal<string | undefined> | undefined;
289
+ aggregations?: _angular_core.Signal<string[] | Record<string, _sinequa_atomic.AggregationOptions> | undefined> | undefined;
290
+ name?: _angular_core.Signal<string | undefined> | undefined;
291
+ sort?: _angular_core.Signal<string | undefined> | undefined;
290
292
  action?: _angular_core.Signal<"" | "open" | "search" | "aggregate" | undefined> | undefined;
291
293
  select?: _angular_core.Signal<_sinequa_atomic.Select[] | undefined> | undefined;
292
294
  open?: _angular_core.Signal<_sinequa_atomic.Open[] | undefined> | undefined;
@@ -294,7 +296,6 @@ declare class MissingTermsComponent {
294
296
  pageSize?: _angular_core.Signal<number | undefined> | undefined;
295
297
  tab?: _angular_core.Signal<string | undefined> | undefined;
296
298
  scope?: _angular_core.Signal<string | undefined> | undefined;
297
- sort?: _angular_core.Signal<string | undefined> | undefined;
298
299
  basket?: _angular_core.Signal<string | undefined> | undefined;
299
300
  isFirstPage?: _angular_core.Signal<boolean | undefined> | undefined;
300
301
  strictRefine?: _angular_core.Signal<boolean | undefined> | undefined;
@@ -308,7 +309,6 @@ declare class MissingTermsComponent {
308
309
  relevanceTransforms?: _angular_core.Signal<string | undefined> | undefined;
309
310
  removeDuplicates?: _angular_core.Signal<boolean | undefined> | undefined;
310
311
  queryId?: _angular_core.Signal<string | undefined> | undefined;
311
- aggregations?: _angular_core.Signal<string[] | Record<string, _sinequa_atomic.AggregationOptions> | undefined> | undefined;
312
312
  orderBy?: _angular_core.Signal<string | undefined> | undefined;
313
313
  groupBy?: _angular_core.Signal<string | undefined> | undefined;
314
314
  neuralSearch?: _angular_core.Signal<boolean | undefined> | undefined;
@@ -354,8 +354,10 @@ declare class MissingTermsComponent {
354
354
  }> | null;
355
355
  getQuery: () => _sinequa_atomic.Query;
356
356
  } & _ngrx_signals.StateSource<{
357
- name?: string | undefined;
358
357
  text?: string | undefined;
358
+ aggregations?: (Record<string, _sinequa_atomic.AggregationOptions> | string[]) | undefined;
359
+ name?: string | undefined;
360
+ sort?: string | undefined;
359
361
  action?: "" | "search" | "open" | "aggregate" | undefined;
360
362
  select?: _sinequa_atomic.Select[] | undefined;
361
363
  open?: _sinequa_atomic.Open[] | undefined;
@@ -363,7 +365,6 @@ declare class MissingTermsComponent {
363
365
  pageSize?: number | undefined;
364
366
  tab?: string | undefined;
365
367
  scope?: string | undefined;
366
- sort?: string | undefined;
367
368
  basket?: string | undefined;
368
369
  isFirstPage?: boolean | undefined;
369
370
  strictRefine?: boolean | undefined;
@@ -377,7 +378,6 @@ declare class MissingTermsComponent {
377
378
  relevanceTransforms?: string | undefined;
378
379
  removeDuplicates?: boolean | undefined;
379
380
  queryId?: string | undefined;
380
- aggregations?: (Record<string, _sinequa_atomic.AggregationOptions> | string[]) | undefined;
381
381
  orderBy?: string | undefined;
382
382
  groupBy?: string | undefined;
383
383
  neuralSearch?: boolean | undefined;
@@ -1296,6 +1296,35 @@ type AggregationTreeEx = TreeAggregation & {
1296
1296
  items: AggregationListItem[];
1297
1297
  };
1298
1298
  type AggregationEx = AggregationListEx | AggregationTreeEx;
1299
+ /**
1300
+ * Controlled selection for the `<Aggregation>` family of components.
1301
+ *
1302
+ * - `values`: selected item values (list aggregations)
1303
+ * - `paths`: selected tree paths in the `"/A/B/*"` format — the same format used
1304
+ * by the `values` of the stored tree filters
1305
+ * - `option`: a selected date option (date aggregations) — the `value` of the
1306
+ * aggregation item (the real filter value, e.g. `"this-week"`), never its
1307
+ * `display`. The component re-selects that option directly, which is robust
1308
+ * across days for presets whose bounds are computed relative to today.
1309
+ * - `range`: a custom date range (date aggregations) — the `from`/`to` bounds.
1310
+ *
1311
+ * `option` and `range` are mutually exclusive: a date selection is either a
1312
+ * preset or a custom range, never both.
1313
+ */
1314
+ type AggregationSelection = {
1315
+ kind: "values";
1316
+ values: string[];
1317
+ } | {
1318
+ kind: "paths";
1319
+ paths: string[];
1320
+ } | {
1321
+ kind: "option";
1322
+ option: string;
1323
+ } | {
1324
+ kind: "range";
1325
+ from?: string;
1326
+ to?: string;
1327
+ };
1299
1328
 
1300
1329
  type Autocomplete = {
1301
1330
  bookmarks?: number;
@@ -2158,7 +2187,7 @@ declare const PrincipalStore: _angular_core.Type<{
2158
2187
  param9: _angular_core.Signal<string>;
2159
2188
  param10: _angular_core.Signal<string>;
2160
2189
  userOverrideActive: _angular_core.Signal<boolean>;
2161
- state: _angular_core.Signal<"error" | "loading" | "loaded" | "initial">;
2190
+ state: _angular_core.Signal<"error" | "initial" | "loading" | "loaded">;
2162
2191
  allowUserOverride: _angular_core.Signal<boolean>;
2163
2192
  isOverridingUser: _angular_core.Signal<boolean>;
2164
2193
  initials: _angular_core.Signal<string>;
@@ -2220,8 +2249,10 @@ type FilterMutationOptions = {
2220
2249
  syncUrl?: boolean;
2221
2250
  };
2222
2251
  declare const QueryParamsStore: _angular_core.Type<{
2223
- name?: _angular_core.Signal<string | undefined> | undefined;
2224
2252
  text?: _angular_core.Signal<string | undefined> | undefined;
2253
+ aggregations?: _angular_core.Signal<string[] | Record<string, _sinequa_atomic.AggregationOptions> | undefined> | undefined;
2254
+ name?: _angular_core.Signal<string | undefined> | undefined;
2255
+ sort?: _angular_core.Signal<string | undefined> | undefined;
2225
2256
  action?: _angular_core.Signal<"" | "open" | "search" | "aggregate" | undefined> | undefined;
2226
2257
  select?: _angular_core.Signal<_sinequa_atomic.Select[] | undefined> | undefined;
2227
2258
  open?: _angular_core.Signal<_sinequa_atomic.Open[] | undefined> | undefined;
@@ -2229,7 +2260,6 @@ declare const QueryParamsStore: _angular_core.Type<{
2229
2260
  pageSize?: _angular_core.Signal<number | undefined> | undefined;
2230
2261
  tab?: _angular_core.Signal<string | undefined> | undefined;
2231
2262
  scope?: _angular_core.Signal<string | undefined> | undefined;
2232
- sort?: _angular_core.Signal<string | undefined> | undefined;
2233
2263
  basket?: _angular_core.Signal<string | undefined> | undefined;
2234
2264
  isFirstPage?: _angular_core.Signal<boolean | undefined> | undefined;
2235
2265
  strictRefine?: _angular_core.Signal<boolean | undefined> | undefined;
@@ -2243,7 +2273,6 @@ declare const QueryParamsStore: _angular_core.Type<{
2243
2273
  relevanceTransforms?: _angular_core.Signal<string | undefined> | undefined;
2244
2274
  removeDuplicates?: _angular_core.Signal<boolean | undefined> | undefined;
2245
2275
  queryId?: _angular_core.Signal<string | undefined> | undefined;
2246
- aggregations?: _angular_core.Signal<string[] | Record<string, _sinequa_atomic.AggregationOptions> | undefined> | undefined;
2247
2276
  orderBy?: _angular_core.Signal<string | undefined> | undefined;
2248
2277
  groupBy?: _angular_core.Signal<string | undefined> | undefined;
2249
2278
  neuralSearch?: _angular_core.Signal<boolean | undefined> | undefined;
@@ -2267,8 +2296,10 @@ declare const QueryParamsStore: _angular_core.Type<{
2267
2296
  }> | null;
2268
2297
  getQuery: () => _sinequa_atomic.Query;
2269
2298
  } & _ngrx_signals.StateSource<{
2270
- name?: string | undefined;
2271
2299
  text?: string | undefined;
2300
+ aggregations?: (Record<string, _sinequa_atomic.AggregationOptions> | string[]) | undefined;
2301
+ name?: string | undefined;
2302
+ sort?: string | undefined;
2272
2303
  action?: "" | "search" | "open" | "aggregate" | undefined;
2273
2304
  select?: _sinequa_atomic.Select[] | undefined;
2274
2305
  open?: _sinequa_atomic.Open[] | undefined;
@@ -2276,7 +2307,6 @@ declare const QueryParamsStore: _angular_core.Type<{
2276
2307
  pageSize?: number | undefined;
2277
2308
  tab?: string | undefined;
2278
2309
  scope?: string | undefined;
2279
- sort?: string | undefined;
2280
2310
  basket?: string | undefined;
2281
2311
  isFirstPage?: boolean | undefined;
2282
2312
  strictRefine?: boolean | undefined;
@@ -2290,7 +2320,6 @@ declare const QueryParamsStore: _angular_core.Type<{
2290
2320
  relevanceTransforms?: string | undefined;
2291
2321
  removeDuplicates?: boolean | undefined;
2292
2322
  queryId?: string | undefined;
2293
- aggregations?: (Record<string, _sinequa_atomic.AggregationOptions> | string[]) | undefined;
2294
2323
  orderBy?: string | undefined;
2295
2324
  groupBy?: string | undefined;
2296
2325
  neuralSearch?: boolean | undefined;
@@ -2300,8 +2329,10 @@ declare const QueryParamsStore: _angular_core.Type<{
2300
2329
  }>>;
2301
2330
  declare function withQueryParamsFeatures(): _ngrx_signals.SignalStoreFeature<_ngrx_signals.EmptyFeatureResult, {
2302
2331
  state: {
2303
- name?: string | undefined;
2304
2332
  text?: string | undefined;
2333
+ aggregations?: (Record<string, _sinequa_atomic.AggregationOptions> | string[]) | undefined;
2334
+ name?: string | undefined;
2335
+ sort?: string | undefined;
2305
2336
  action?: "" | "search" | "open" | "aggregate" | undefined;
2306
2337
  select?: _sinequa_atomic.Select[] | undefined;
2307
2338
  open?: _sinequa_atomic.Open[] | undefined;
@@ -2309,7 +2340,6 @@ declare function withQueryParamsFeatures(): _ngrx_signals.SignalStoreFeature<_ng
2309
2340
  pageSize?: number | undefined;
2310
2341
  tab?: string | undefined;
2311
2342
  scope?: string | undefined;
2312
- sort?: string | undefined;
2313
2343
  basket?: string | undefined;
2314
2344
  isFirstPage?: boolean | undefined;
2315
2345
  strictRefine?: boolean | undefined;
@@ -2323,7 +2353,6 @@ declare function withQueryParamsFeatures(): _ngrx_signals.SignalStoreFeature<_ng
2323
2353
  relevanceTransforms?: string | undefined;
2324
2354
  removeDuplicates?: boolean | undefined;
2325
2355
  queryId?: string | undefined;
2326
- aggregations?: (Record<string, _sinequa_atomic.AggregationOptions> | string[]) | undefined;
2327
2356
  orderBy?: string | undefined;
2328
2357
  groupBy?: string | undefined;
2329
2358
  neuralSearch?: boolean | undefined;
@@ -3057,8 +3086,10 @@ declare class AggregationsService {
3057
3086
  aggregations: Aggregation[];
3058
3087
  }>;
3059
3088
  queryParamsStore: {
3060
- name?: _angular_core.Signal<string | undefined> | undefined;
3061
3089
  text?: _angular_core.Signal<string | undefined> | undefined;
3090
+ aggregations?: _angular_core.Signal<string[] | Record<string, _sinequa_atomic.AggregationOptions> | undefined> | undefined;
3091
+ name?: _angular_core.Signal<string | undefined> | undefined;
3092
+ sort?: _angular_core.Signal<string | undefined> | undefined;
3062
3093
  action?: _angular_core.Signal<"" | "open" | "search" | "aggregate" | undefined> | undefined;
3063
3094
  select?: _angular_core.Signal<_sinequa_atomic.Select[] | undefined> | undefined;
3064
3095
  open?: _angular_core.Signal<_sinequa_atomic.Open[] | undefined> | undefined;
@@ -3066,7 +3097,6 @@ declare class AggregationsService {
3066
3097
  pageSize?: _angular_core.Signal<number | undefined> | undefined;
3067
3098
  tab?: _angular_core.Signal<string | undefined> | undefined;
3068
3099
  scope?: _angular_core.Signal<string | undefined> | undefined;
3069
- sort?: _angular_core.Signal<string | undefined> | undefined;
3070
3100
  basket?: _angular_core.Signal<string | undefined> | undefined;
3071
3101
  isFirstPage?: _angular_core.Signal<boolean | undefined> | undefined;
3072
3102
  strictRefine?: _angular_core.Signal<boolean | undefined> | undefined;
@@ -3080,7 +3110,6 @@ declare class AggregationsService {
3080
3110
  relevanceTransforms?: _angular_core.Signal<string | undefined> | undefined;
3081
3111
  removeDuplicates?: _angular_core.Signal<boolean | undefined> | undefined;
3082
3112
  queryId?: _angular_core.Signal<string | undefined> | undefined;
3083
- aggregations?: _angular_core.Signal<string[] | Record<string, _sinequa_atomic.AggregationOptions> | undefined> | undefined;
3084
3113
  orderBy?: _angular_core.Signal<string | undefined> | undefined;
3085
3114
  groupBy?: _angular_core.Signal<string | undefined> | undefined;
3086
3115
  neuralSearch?: _angular_core.Signal<boolean | undefined> | undefined;
@@ -3126,8 +3155,10 @@ declare class AggregationsService {
3126
3155
  }> | null;
3127
3156
  getQuery: () => Query;
3128
3157
  } & _ngrx_signals.StateSource<{
3129
- name?: string | undefined;
3130
3158
  text?: string | undefined;
3159
+ aggregations?: (Record<string, _sinequa_atomic.AggregationOptions> | string[]) | undefined;
3160
+ name?: string | undefined;
3161
+ sort?: string | undefined;
3131
3162
  action?: "" | "search" | "open" | "aggregate" | undefined;
3132
3163
  select?: _sinequa_atomic.Select[] | undefined;
3133
3164
  open?: _sinequa_atomic.Open[] | undefined;
@@ -3135,7 +3166,6 @@ declare class AggregationsService {
3135
3166
  pageSize?: number | undefined;
3136
3167
  tab?: string | undefined;
3137
3168
  scope?: string | undefined;
3138
- sort?: string | undefined;
3139
3169
  basket?: string | undefined;
3140
3170
  isFirstPage?: boolean | undefined;
3141
3171
  strictRefine?: boolean | undefined;
@@ -3149,7 +3179,6 @@ declare class AggregationsService {
3149
3179
  relevanceTransforms?: string | undefined;
3150
3180
  removeDuplicates?: boolean | undefined;
3151
3181
  queryId?: string | undefined;
3152
- aggregations?: (Record<string, _sinequa_atomic.AggregationOptions> | string[]) | undefined;
3153
3182
  orderBy?: string | undefined;
3154
3183
  groupBy?: string | undefined;
3155
3184
  neuralSearch?: boolean | undefined;
@@ -3159,10 +3188,25 @@ declare class AggregationsService {
3159
3188
  }>;
3160
3189
  nonSearchableColumns: string[];
3161
3190
  protected API_URL: string;
3162
- loadMore(query: Partial<Query>, aggregation: Aggregation, audit?: AuditEvents): Observable<Aggregation>;
3163
- open(query: Partial<Query>, aggregation: TreeAggregation, item: TreeAggregationNode): Observable<TreeAggregation>;
3191
+ loadMore(query: Partial<Query>, aggregation: Aggregation, audit?: AuditEvents, options?: {
3192
+ count?: number;
3193
+ }): Observable<Aggregation>;
3194
+ open(query: Partial<Query>, aggregation: TreeAggregation, item: TreeAggregationNode, options?: {
3195
+ guardFree?: boolean;
3196
+ }): Observable<TreeAggregation>;
3164
3197
  getAggregation(name: string, column: string | null): AggEx | null | undefined;
3165
3198
  processAggregation(name: string, column: string | null): AggEx | null | undefined;
3199
+ /**
3200
+ * Applies the app-level customization (custom JSON display/icon/hidden/searchable,
3201
+ * non-searchable columns) and marks the `$selected` items on the given aggregation.
3202
+ *
3203
+ * @param agg - The aggregation to enrich (mutated in place and returned).
3204
+ * @param selectionValues - Controlled selection: the selected values (list) or
3205
+ * `"/A/B/*"` paths (tree). When `undefined`, the selection is derived from the
3206
+ * shared `QueryParamsStore` filters (default behavior). An empty array means
3207
+ * "nothing selected" and skips the store read entirely.
3208
+ */
3209
+ enrichAggregation(agg: AggEx, selectionValues?: string[]): AggEx;
3166
3210
  /**
3167
3211
  * Converts an `AggregationItem` to a `LegacyFilter`.
3168
3212
  *
@@ -3344,7 +3388,7 @@ declare class ApplicationService {
3344
3388
  param9: _angular_core.Signal<string>;
3345
3389
  param10: _angular_core.Signal<string>;
3346
3390
  userOverrideActive: _angular_core.Signal<boolean>;
3347
- state: _angular_core.Signal<"error" | "loading" | "loaded" | "initial">;
3391
+ state: _angular_core.Signal<"error" | "initial" | "loading" | "loaded">;
3348
3392
  allowUserOverride: _angular_core.Signal<boolean>;
3349
3393
  isOverridingUser: _angular_core.Signal<boolean>;
3350
3394
  initials: _angular_core.Signal<string>;
@@ -4617,6 +4661,23 @@ declare class InlineWorker {
4617
4661
  terminate(): void;
4618
4662
  }
4619
4663
 
4664
+ /**
4665
+ * Converts a `LegacyFilter` to the structured `Filter` model, built with the
4666
+ * `filter.*` helpers of `@sinequa/atomic`. The result is assignable as-is to
4667
+ * `query.filters` / `fetchQuery({ filters })`.
4668
+ *
4669
+ * Covers the shapes produced by the aggregation components when applying
4670
+ * filters (`toFilter`, `getFiltersForTree`, `getFormValueFilter`,
4671
+ * `buildAppliedFilter`): `in` values, `and`/`or` expression trees, `between`
4672
+ * ranges, scalar leaves (`eq`/`contains`/`gte`/`lte`/…) and the operator-less
4673
+ * `{ field, value }` form (treated as `eq`).
4674
+ *
4675
+ * Returns `undefined` for an absent filter or a degenerate shape (leaf without
4676
+ * `field`/`value`, empty combinator) — consistent with the `filter.and`/`or`
4677
+ * collapsing rules and with an absent `query.filters`.
4678
+ */
4679
+ declare function legacyFilterToFilter(legacy: LegacyFilter | undefined): Filter$2 | undefined;
4680
+
4620
4681
  /**
4621
4682
  * Retrieves the query name from the current route.
4622
4683
  *
@@ -4853,8 +4914,10 @@ declare class PreviewService {
4853
4914
  multiSelection: Article$1[];
4854
4915
  }>;
4855
4916
  protected readonly queryParamsStore: {
4856
- name?: _angular_core.Signal<string | undefined> | undefined;
4857
4917
  text?: _angular_core.Signal<string | undefined> | undefined;
4918
+ aggregations?: _angular_core.Signal<string[] | Record<string, _sinequa_atomic.AggregationOptions> | undefined> | undefined;
4919
+ name?: _angular_core.Signal<string | undefined> | undefined;
4920
+ sort?: _angular_core.Signal<string | undefined> | undefined;
4858
4921
  action?: _angular_core.Signal<"" | "open" | "search" | "aggregate" | undefined> | undefined;
4859
4922
  select?: _angular_core.Signal<_sinequa_atomic.Select[] | undefined> | undefined;
4860
4923
  open?: _angular_core.Signal<_sinequa_atomic.Open[] | undefined> | undefined;
@@ -4862,7 +4925,6 @@ declare class PreviewService {
4862
4925
  pageSize?: _angular_core.Signal<number | undefined> | undefined;
4863
4926
  tab?: _angular_core.Signal<string | undefined> | undefined;
4864
4927
  scope?: _angular_core.Signal<string | undefined> | undefined;
4865
- sort?: _angular_core.Signal<string | undefined> | undefined;
4866
4928
  basket?: _angular_core.Signal<string | undefined> | undefined;
4867
4929
  isFirstPage?: _angular_core.Signal<boolean | undefined> | undefined;
4868
4930
  strictRefine?: _angular_core.Signal<boolean | undefined> | undefined;
@@ -4876,7 +4938,6 @@ declare class PreviewService {
4876
4938
  relevanceTransforms?: _angular_core.Signal<string | undefined> | undefined;
4877
4939
  removeDuplicates?: _angular_core.Signal<boolean | undefined> | undefined;
4878
4940
  queryId?: _angular_core.Signal<string | undefined> | undefined;
4879
- aggregations?: _angular_core.Signal<string[] | Record<string, _sinequa_atomic.AggregationOptions> | undefined> | undefined;
4880
4941
  orderBy?: _angular_core.Signal<string | undefined> | undefined;
4881
4942
  groupBy?: _angular_core.Signal<string | undefined> | undefined;
4882
4943
  neuralSearch?: _angular_core.Signal<boolean | undefined> | undefined;
@@ -4922,8 +4983,10 @@ declare class PreviewService {
4922
4983
  }> | null;
4923
4984
  getQuery: () => Query;
4924
4985
  } & _ngrx_signals.StateSource<{
4925
- name?: string | undefined;
4926
4986
  text?: string | undefined;
4987
+ aggregations?: (Record<string, _sinequa_atomic.AggregationOptions> | string[]) | undefined;
4988
+ name?: string | undefined;
4989
+ sort?: string | undefined;
4927
4990
  action?: "" | "search" | "open" | "aggregate" | undefined;
4928
4991
  select?: _sinequa_atomic.Select[] | undefined;
4929
4992
  open?: _sinequa_atomic.Open[] | undefined;
@@ -4931,7 +4994,6 @@ declare class PreviewService {
4931
4994
  pageSize?: number | undefined;
4932
4995
  tab?: string | undefined;
4933
4996
  scope?: string | undefined;
4934
- sort?: string | undefined;
4935
4997
  basket?: string | undefined;
4936
4998
  isFirstPage?: boolean | undefined;
4937
4999
  strictRefine?: boolean | undefined;
@@ -4945,7 +5007,6 @@ declare class PreviewService {
4945
5007
  relevanceTransforms?: string | undefined;
4946
5008
  removeDuplicates?: boolean | undefined;
4947
5009
  queryId?: string | undefined;
4948
- aggregations?: (Record<string, _sinequa_atomic.AggregationOptions> | string[]) | undefined;
4949
5010
  orderBy?: string | undefined;
4950
5011
  groupBy?: string | undefined;
4951
5012
  neuralSearch?: boolean | undefined;
@@ -5502,8 +5563,10 @@ declare class SavedSearchesService {
5502
5563
  agents: _sinequa_atomic_angular.AgentUserSettings;
5503
5564
  }>;
5504
5565
  protected readonly queryParamsStore: {
5505
- name?: _angular_core.Signal<string | undefined> | undefined;
5506
5566
  text?: _angular_core.Signal<string | undefined> | undefined;
5567
+ aggregations?: _angular_core.Signal<string[] | Record<string, _sinequa_atomic.AggregationOptions> | undefined> | undefined;
5568
+ name?: _angular_core.Signal<string | undefined> | undefined;
5569
+ sort?: _angular_core.Signal<string | undefined> | undefined;
5507
5570
  action?: _angular_core.Signal<"" | "open" | "search" | "aggregate" | undefined> | undefined;
5508
5571
  select?: _angular_core.Signal<_sinequa_atomic.Select[] | undefined> | undefined;
5509
5572
  open?: _angular_core.Signal<_sinequa_atomic.Open[] | undefined> | undefined;
@@ -5511,7 +5574,6 @@ declare class SavedSearchesService {
5511
5574
  pageSize?: _angular_core.Signal<number | undefined> | undefined;
5512
5575
  tab?: _angular_core.Signal<string | undefined> | undefined;
5513
5576
  scope?: _angular_core.Signal<string | undefined> | undefined;
5514
- sort?: _angular_core.Signal<string | undefined> | undefined;
5515
5577
  basket?: _angular_core.Signal<string | undefined> | undefined;
5516
5578
  isFirstPage?: _angular_core.Signal<boolean | undefined> | undefined;
5517
5579
  strictRefine?: _angular_core.Signal<boolean | undefined> | undefined;
@@ -5525,7 +5587,6 @@ declare class SavedSearchesService {
5525
5587
  relevanceTransforms?: _angular_core.Signal<string | undefined> | undefined;
5526
5588
  removeDuplicates?: _angular_core.Signal<boolean | undefined> | undefined;
5527
5589
  queryId?: _angular_core.Signal<string | undefined> | undefined;
5528
- aggregations?: _angular_core.Signal<string[] | Record<string, _sinequa_atomic.AggregationOptions> | undefined> | undefined;
5529
5590
  orderBy?: _angular_core.Signal<string | undefined> | undefined;
5530
5591
  groupBy?: _angular_core.Signal<string | undefined> | undefined;
5531
5592
  neuralSearch?: _angular_core.Signal<boolean | undefined> | undefined;
@@ -5571,8 +5632,10 @@ declare class SavedSearchesService {
5571
5632
  }> | null;
5572
5633
  getQuery: () => _sinequa_atomic.Query;
5573
5634
  } & _ngrx_signals.StateSource<{
5574
- name?: string | undefined;
5575
5635
  text?: string | undefined;
5636
+ aggregations?: (Record<string, _sinequa_atomic.AggregationOptions> | string[]) | undefined;
5637
+ name?: string | undefined;
5638
+ sort?: string | undefined;
5576
5639
  action?: "" | "search" | "open" | "aggregate" | undefined;
5577
5640
  select?: _sinequa_atomic.Select[] | undefined;
5578
5641
  open?: _sinequa_atomic.Open[] | undefined;
@@ -5580,7 +5643,6 @@ declare class SavedSearchesService {
5580
5643
  pageSize?: number | undefined;
5581
5644
  tab?: string | undefined;
5582
5645
  scope?: string | undefined;
5583
- sort?: string | undefined;
5584
5646
  basket?: string | undefined;
5585
5647
  isFirstPage?: boolean | undefined;
5586
5648
  strictRefine?: boolean | undefined;
@@ -5594,7 +5656,6 @@ declare class SavedSearchesService {
5594
5656
  relevanceTransforms?: string | undefined;
5595
5657
  removeDuplicates?: boolean | undefined;
5596
5658
  queryId?: string | undefined;
5597
- aggregations?: (Record<string, _sinequa_atomic.AggregationOptions> | string[]) | undefined;
5598
5659
  orderBy?: string | undefined;
5599
5660
  groupBy?: string | undefined;
5600
5661
  neuralSearch?: boolean | undefined;
@@ -5657,8 +5718,10 @@ declare class SearchService {
5657
5718
  result: Result;
5658
5719
  audit?: AuditEvents;
5659
5720
  protected readonly queryParamsStore: {
5660
- name?: _angular_core.Signal<string | undefined> | undefined;
5661
5721
  text?: _angular_core.Signal<string | undefined> | undefined;
5722
+ aggregations?: _angular_core.Signal<string[] | Record<string, _sinequa_atomic.AggregationOptions> | undefined> | undefined;
5723
+ name?: _angular_core.Signal<string | undefined> | undefined;
5724
+ sort?: _angular_core.Signal<string | undefined> | undefined;
5662
5725
  action?: _angular_core.Signal<"" | "open" | "search" | "aggregate" | undefined> | undefined;
5663
5726
  select?: _angular_core.Signal<_sinequa_atomic.Select[] | undefined> | undefined;
5664
5727
  open?: _angular_core.Signal<_sinequa_atomic.Open[] | undefined> | undefined;
@@ -5666,7 +5729,6 @@ declare class SearchService {
5666
5729
  pageSize?: _angular_core.Signal<number | undefined> | undefined;
5667
5730
  tab?: _angular_core.Signal<string | undefined> | undefined;
5668
5731
  scope?: _angular_core.Signal<string | undefined> | undefined;
5669
- sort?: _angular_core.Signal<string | undefined> | undefined;
5670
5732
  basket?: _angular_core.Signal<string | undefined> | undefined;
5671
5733
  isFirstPage?: _angular_core.Signal<boolean | undefined> | undefined;
5672
5734
  strictRefine?: _angular_core.Signal<boolean | undefined> | undefined;
@@ -5680,7 +5742,6 @@ declare class SearchService {
5680
5742
  relevanceTransforms?: _angular_core.Signal<string | undefined> | undefined;
5681
5743
  removeDuplicates?: _angular_core.Signal<boolean | undefined> | undefined;
5682
5744
  queryId?: _angular_core.Signal<string | undefined> | undefined;
5683
- aggregations?: _angular_core.Signal<string[] | Record<string, _sinequa_atomic.AggregationOptions> | undefined> | undefined;
5684
5745
  orderBy?: _angular_core.Signal<string | undefined> | undefined;
5685
5746
  groupBy?: _angular_core.Signal<string | undefined> | undefined;
5686
5747
  neuralSearch?: _angular_core.Signal<boolean | undefined> | undefined;
@@ -5726,8 +5787,10 @@ declare class SearchService {
5726
5787
  }> | null;
5727
5788
  getQuery: () => Query;
5728
5789
  } & _ngrx_signals.StateSource<{
5729
- name?: string | undefined;
5730
5790
  text?: string | undefined;
5791
+ aggregations?: (Record<string, _sinequa_atomic.AggregationOptions> | string[]) | undefined;
5792
+ name?: string | undefined;
5793
+ sort?: string | undefined;
5731
5794
  action?: "" | "search" | "open" | "aggregate" | undefined;
5732
5795
  select?: _sinequa_atomic.Select[] | undefined;
5733
5796
  open?: _sinequa_atomic.Open[] | undefined;
@@ -5735,7 +5798,6 @@ declare class SearchService {
5735
5798
  pageSize?: number | undefined;
5736
5799
  tab?: string | undefined;
5737
5800
  scope?: string | undefined;
5738
- sort?: string | undefined;
5739
5801
  basket?: string | undefined;
5740
5802
  isFirstPage?: boolean | undefined;
5741
5803
  strictRefine?: boolean | undefined;
@@ -5749,7 +5811,6 @@ declare class SearchService {
5749
5811
  relevanceTransforms?: string | undefined;
5750
5812
  removeDuplicates?: boolean | undefined;
5751
5813
  queryId?: string | undefined;
5752
- aggregations?: (Record<string, _sinequa_atomic.AggregationOptions> | string[]) | undefined;
5753
5814
  orderBy?: string | undefined;
5754
5815
  groupBy?: string | undefined;
5755
5816
  neuralSearch?: boolean | undefined;
@@ -5862,8 +5923,10 @@ declare class SelectionService {
5862
5923
  private readonly location;
5863
5924
  private readonly selectionStore;
5864
5925
  queryParamsStore: {
5865
- name?: _angular_core.Signal<string | undefined> | undefined;
5866
5926
  text?: _angular_core.Signal<string | undefined> | undefined;
5927
+ aggregations?: _angular_core.Signal<string[] | Record<string, _sinequa_atomic.AggregationOptions> | undefined> | undefined;
5928
+ name?: _angular_core.Signal<string | undefined> | undefined;
5929
+ sort?: _angular_core.Signal<string | undefined> | undefined;
5867
5930
  action?: _angular_core.Signal<"" | "open" | "search" | "aggregate" | undefined> | undefined;
5868
5931
  select?: _angular_core.Signal<_sinequa_atomic.Select[] | undefined> | undefined;
5869
5932
  open?: _angular_core.Signal<_sinequa_atomic.Open[] | undefined> | undefined;
@@ -5871,7 +5934,6 @@ declare class SelectionService {
5871
5934
  pageSize?: _angular_core.Signal<number | undefined> | undefined;
5872
5935
  tab?: _angular_core.Signal<string | undefined> | undefined;
5873
5936
  scope?: _angular_core.Signal<string | undefined> | undefined;
5874
- sort?: _angular_core.Signal<string | undefined> | undefined;
5875
5937
  basket?: _angular_core.Signal<string | undefined> | undefined;
5876
5938
  isFirstPage?: _angular_core.Signal<boolean | undefined> | undefined;
5877
5939
  strictRefine?: _angular_core.Signal<boolean | undefined> | undefined;
@@ -5885,7 +5947,6 @@ declare class SelectionService {
5885
5947
  relevanceTransforms?: _angular_core.Signal<string | undefined> | undefined;
5886
5948
  removeDuplicates?: _angular_core.Signal<boolean | undefined> | undefined;
5887
5949
  queryId?: _angular_core.Signal<string | undefined> | undefined;
5888
- aggregations?: _angular_core.Signal<string[] | Record<string, _sinequa_atomic.AggregationOptions> | undefined> | undefined;
5889
5950
  orderBy?: _angular_core.Signal<string | undefined> | undefined;
5890
5951
  groupBy?: _angular_core.Signal<string | undefined> | undefined;
5891
5952
  neuralSearch?: _angular_core.Signal<boolean | undefined> | undefined;
@@ -5931,8 +5992,10 @@ declare class SelectionService {
5931
5992
  }> | null;
5932
5993
  getQuery: () => _sinequa_atomic.Query;
5933
5994
  } & _ngrx_signals.StateSource<{
5934
- name?: string | undefined;
5935
5995
  text?: string | undefined;
5996
+ aggregations?: (Record<string, _sinequa_atomic.AggregationOptions> | string[]) | undefined;
5997
+ name?: string | undefined;
5998
+ sort?: string | undefined;
5936
5999
  action?: "" | "search" | "open" | "aggregate" | undefined;
5937
6000
  select?: _sinequa_atomic.Select[] | undefined;
5938
6001
  open?: _sinequa_atomic.Open[] | undefined;
@@ -5940,7 +6003,6 @@ declare class SelectionService {
5940
6003
  pageSize?: number | undefined;
5941
6004
  tab?: string | undefined;
5942
6005
  scope?: string | undefined;
5943
- sort?: string | undefined;
5944
6006
  basket?: string | undefined;
5945
6007
  isFirstPage?: boolean | undefined;
5946
6008
  strictRefine?: boolean | undefined;
@@ -5954,7 +6016,6 @@ declare class SelectionService {
5954
6016
  relevanceTransforms?: string | undefined;
5955
6017
  removeDuplicates?: boolean | undefined;
5956
6018
  queryId?: string | undefined;
5957
- aggregations?: (Record<string, _sinequa_atomic.AggregationOptions> | string[]) | undefined;
5958
6019
  orderBy?: string | undefined;
5959
6020
  groupBy?: string | undefined;
5960
6021
  neuralSearch?: boolean | undefined;
@@ -6440,6 +6501,78 @@ declare class SourceComponent {
6440
6501
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<SourceComponent, "source, Source", never, { "collection": { "alias": "collection"; "required": false; "isSignal": true; }; "connector": { "alias": "connector"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
6441
6502
  }
6442
6503
 
6504
+ /**
6505
+ * Context of a projected `<ng-template aggregationItem>` — the content/label
6506
+ * region of a single item in `<aggregation-list>` / `<aggregation-tree>`.
6507
+ * The host owns only the content; the component keeps the checkbox,
6508
+ * click-to-select, count, virtualization and (tree) chevron/indentation/recursion.
6509
+ *
6510
+ * The `level` / `expanded` / `hasChildren` fields are **tree-only**: they are
6511
+ * populated by `<aggregation-tree>` and left `undefined` by `<aggregation-list>`
6512
+ * (hence optional — a single directive serves both). See {@link AggregationTreeItemContext}
6513
+ * for the tree-specialized (all-required) shape, if you prefer to annotate `let-*` manually.
6514
+ */
6515
+ interface AggregationItemContext {
6516
+ /** The aggregation item (list) or node (tree). */
6517
+ $implicit: AggregationListItem;
6518
+ /** The aggregation column. */
6519
+ field: string | null | undefined;
6520
+ /** Whether the item is currently selected. */
6521
+ selected: boolean;
6522
+ /** The item's document count. */
6523
+ count: number;
6524
+ /** The localized display label (`display || value`, run through `syslang`). */
6525
+ name: string;
6526
+ /** The current search-within-facet text — re-apply `highlightWord` with it if needed. */
6527
+ searchText: string;
6528
+ /** Tree only — depth level of the node (drives indentation in the default template). */
6529
+ level?: number;
6530
+ /** Tree only — whether the node is expanded. */
6531
+ expanded?: boolean;
6532
+ /** Tree only — whether the node has (or may lazily load) children. */
6533
+ hasChildren?: boolean;
6534
+ }
6535
+ /**
6536
+ * Tree-specialized context: same as {@link AggregationItemContext} but with the
6537
+ * structural fields required. `<aggregation-tree>` always populates them; use this
6538
+ * type to annotate `let-*` when you want them non-optional in a tree template.
6539
+ */
6540
+ interface AggregationTreeItemContext extends AggregationItemContext {
6541
+ level: number;
6542
+ expanded: boolean;
6543
+ hasChildren: boolean;
6544
+ }
6545
+ /**
6546
+ * Marker directive: project a custom template for the content/label region of
6547
+ * each aggregation item. Put it on an `<ng-template>` inside `<aggregation-list>`
6548
+ * or `<aggregation-tree>`:
6549
+ *
6550
+ * ```html
6551
+ * <aggregation-list name="Languages" column="language" [aggregation]="agg">
6552
+ * <ng-template aggregationItem let-item let-count="count" let-selected="selected">
6553
+ * <span>{{ item.display }}</span>
6554
+ * <span class="badge">{{ count }}</span>
6555
+ * </ng-template>
6556
+ * </aggregation-list>
6557
+ * ```
6558
+ *
6559
+ * When no template is projected, the component renders its default row content.
6560
+ * The `let-*` variables are typed under `strictTemplates` via
6561
+ * {@link AggregationItemDirective.ngTemplateContextGuard}; the host must import
6562
+ * this directive in its component `imports`.
6563
+ */
6564
+ declare class AggregationItemDirective {
6565
+ readonly template: TemplateRef<AggregationItemContext>;
6566
+ /**
6567
+ * Narrows the `let-*` of `<ng-template aggregationItem>` under `strictTemplates`.
6568
+ * Tree-only fields (`level`/`expanded`/`hasChildren`) are typed as optional; a tree
6569
+ * template can re-annotate them via {@link AggregationTreeItemContext} if desired.
6570
+ */
6571
+ static ngTemplateContextGuard(_dir: AggregationItemDirective, ctx: unknown): ctx is AggregationItemContext;
6572
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AggregationItemDirective, never>;
6573
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<AggregationItemDirective, "[aggregationItem]", never, {}, {}, never, never, true, never>;
6574
+ }
6575
+
6443
6576
  /**
6444
6577
  * Directive to mark a child element for special processing.
6445
6578
  * This can be used to apply specific styles or behaviors to child elements.
@@ -7224,8 +7357,10 @@ declare class SponsoredResultsComponent {
7224
7357
  columnMap?: Record<string, _sinequa_atomic.CCColumn> | undefined;
7225
7358
  }>;
7226
7359
  queryParamStore: {
7227
- name?: _angular_core.Signal<string | undefined> | undefined;
7228
7360
  text?: _angular_core.Signal<string | undefined> | undefined;
7361
+ aggregations?: _angular_core.Signal<string[] | Record<string, _sinequa_atomic.AggregationOptions> | undefined> | undefined;
7362
+ name?: _angular_core.Signal<string | undefined> | undefined;
7363
+ sort?: _angular_core.Signal<string | undefined> | undefined;
7229
7364
  action?: _angular_core.Signal<"" | "open" | "search" | "aggregate" | undefined> | undefined;
7230
7365
  select?: _angular_core.Signal<_sinequa_atomic.Select[] | undefined> | undefined;
7231
7366
  open?: _angular_core.Signal<_sinequa_atomic.Open[] | undefined> | undefined;
@@ -7233,7 +7368,6 @@ declare class SponsoredResultsComponent {
7233
7368
  pageSize?: _angular_core.Signal<number | undefined> | undefined;
7234
7369
  tab?: _angular_core.Signal<string | undefined> | undefined;
7235
7370
  scope?: _angular_core.Signal<string | undefined> | undefined;
7236
- sort?: _angular_core.Signal<string | undefined> | undefined;
7237
7371
  basket?: _angular_core.Signal<string | undefined> | undefined;
7238
7372
  isFirstPage?: _angular_core.Signal<boolean | undefined> | undefined;
7239
7373
  strictRefine?: _angular_core.Signal<boolean | undefined> | undefined;
@@ -7247,7 +7381,6 @@ declare class SponsoredResultsComponent {
7247
7381
  relevanceTransforms?: _angular_core.Signal<string | undefined> | undefined;
7248
7382
  removeDuplicates?: _angular_core.Signal<boolean | undefined> | undefined;
7249
7383
  queryId?: _angular_core.Signal<string | undefined> | undefined;
7250
- aggregations?: _angular_core.Signal<string[] | Record<string, _sinequa_atomic.AggregationOptions> | undefined> | undefined;
7251
7384
  orderBy?: _angular_core.Signal<string | undefined> | undefined;
7252
7385
  groupBy?: _angular_core.Signal<string | undefined> | undefined;
7253
7386
  neuralSearch?: _angular_core.Signal<boolean | undefined> | undefined;
@@ -7293,8 +7426,10 @@ declare class SponsoredResultsComponent {
7293
7426
  }> | null;
7294
7427
  getQuery: () => _sinequa_atomic.Query;
7295
7428
  } & _ngrx_signals.StateSource<{
7296
- name?: string | undefined;
7297
7429
  text?: string | undefined;
7430
+ aggregations?: (Record<string, _sinequa_atomic.AggregationOptions> | string[]) | undefined;
7431
+ name?: string | undefined;
7432
+ sort?: string | undefined;
7298
7433
  action?: "" | "search" | "open" | "aggregate" | undefined;
7299
7434
  select?: _sinequa_atomic.Select[] | undefined;
7300
7435
  open?: _sinequa_atomic.Open[] | undefined;
@@ -7302,7 +7437,6 @@ declare class SponsoredResultsComponent {
7302
7437
  pageSize?: number | undefined;
7303
7438
  tab?: string | undefined;
7304
7439
  scope?: string | undefined;
7305
- sort?: string | undefined;
7306
7440
  basket?: string | undefined;
7307
7441
  isFirstPage?: boolean | undefined;
7308
7442
  strictRefine?: boolean | undefined;
@@ -7316,7 +7450,6 @@ declare class SponsoredResultsComponent {
7316
7450
  relevanceTransforms?: string | undefined;
7317
7451
  removeDuplicates?: boolean | undefined;
7318
7452
  queryId?: string | undefined;
7319
- aggregations?: (Record<string, _sinequa_atomic.AggregationOptions> | string[]) | undefined;
7320
7453
  orderBy?: string | undefined;
7321
7454
  groupBy?: string | undefined;
7322
7455
  neuralSearch?: boolean | undefined;
@@ -7571,20 +7704,67 @@ declare class AggregationDateComponent {
7571
7704
  * @default true
7572
7705
  */
7573
7706
  syncUrl: _angular_core.InputSignalWithTransform<boolean, unknown>;
7707
+ /**
7708
+ * Controlled query. When set, the component's own operations run against this
7709
+ * query instead of reading the shared `QueryParamsStore`. Use to target a query
7710
+ * not tied to the current app, without mutating the shared store or the URL.
7711
+ *
7712
+ * @default undefined — read `QueryParamsStore.getQuery()` (current behavior)
7713
+ */
7714
+ controlledQuery: _angular_core.InputSignal<Query | undefined>;
7715
+ /**
7716
+ * Controlled data. When set, the component renders this aggregation object
7717
+ * instead of reading it from the shared `AggregationsStore`.
7718
+ *
7719
+ * @default undefined — read `AggregationsStore` (current behavior)
7720
+ */
7721
+ controlledAggregation: _angular_core.InputSignal<Aggregation | undefined>;
7722
+ /**
7723
+ * Controlled selection. When set, the date form is derived from this value
7724
+ * instead of the shared `QueryParamsStore` filters:
7725
+ * `{ kind: "option", option }` re-selects the date option whose aggregation
7726
+ * item `value` matches (the real filter value, never the `display`);
7727
+ * `{ kind: "range", from, to }` fills the custom range from the bounds.
7728
+ * The two kinds are mutually exclusive — a date selection is either a preset
7729
+ * or a custom range.
7730
+ *
7731
+ * @default undefined — derive from `QueryParamsStore` filters (current behavior)
7732
+ */
7733
+ controlledSelection: _angular_core.InputSignal<AggregationSelection | undefined>;
7574
7734
  readonly title: _angular_core.InputSignal<AggregationTitle>;
7575
7735
  readonly displayEmptyDistributionIntervals: _angular_core.InputSignal<boolean>;
7576
7736
  onSelect: _angular_core.OutputEmitterRef<AggregationItem[]>;
7577
7737
  onApply: _angular_core.OutputEmitterRef<void>;
7578
7738
  onClear: _angular_core.OutputEmitterRef<void>;
7739
+ /**
7740
+ * Emits the new selection (`{ kind: "option" }` preset or `{ kind: "range" }`
7741
+ * custom range) in controlled mode. The counterpart of the `[selection]` input,
7742
+ * emitted before `filtersChange`. Date is a radio list, so this fires **live at
7743
+ * selection time** — picking a preset radio, or confirming a date in the custom
7744
+ * range picker — not on an apply click (the custom-range radio alone, with no
7745
+ * date picked, emits nothing). Also emitted on clear. In controlled mode this is
7746
+ * the only way changes surface: nothing is written to the shared stores or the URL.
7747
+ */
7748
+ selectionChange: _angular_core.OutputEmitterRef<AggregationSelection>;
7749
+ /**
7750
+ * Emits the selection as a structured `Filter` (the exact filter the default
7751
+ * mode would write to the store), ready for `fetchQuery({ filters })`.
7752
+ * `undefined` on clear. Controlled mode only — emitted right after
7753
+ * `selectionChange` (see its live-emission timing).
7754
+ */
7755
+ filtersChange: _angular_core.OutputEmitterRef<Filter$2 | undefined>;
7579
7756
  isCollapsed: _angular_core.WritableSignal<boolean>;
7580
7757
  expanded: _angular_core.Signal<"" | null>;
7581
7758
  protected readonly searchText: _angular_core.ModelSignal<string>;
7582
7759
  private readonly searchInput;
7583
7760
  private readonly base;
7761
+ readonly isControlled: _angular_core.Signal<boolean>;
7584
7762
  readonly aggregationsService: _sinequa_atomic_angular.AggregationsService;
7585
7763
  readonly queryParamsStore: {
7586
- name?: _angular_core.Signal<string | undefined> | undefined;
7587
7764
  text?: _angular_core.Signal<string | undefined> | undefined;
7765
+ aggregations?: _angular_core.Signal<string[] | Record<string, _sinequa_atomic.AggregationOptions> | undefined> | undefined;
7766
+ name?: _angular_core.Signal<string | undefined> | undefined;
7767
+ sort?: _angular_core.Signal<string | undefined> | undefined;
7588
7768
  action?: _angular_core.Signal<"" | "open" | "search" | "aggregate" | undefined> | undefined;
7589
7769
  select?: _angular_core.Signal<_sinequa_atomic.Select[] | undefined> | undefined;
7590
7770
  open?: _angular_core.Signal<_sinequa_atomic.Open[] | undefined> | undefined;
@@ -7592,7 +7772,6 @@ declare class AggregationDateComponent {
7592
7772
  pageSize?: _angular_core.Signal<number | undefined> | undefined;
7593
7773
  tab?: _angular_core.Signal<string | undefined> | undefined;
7594
7774
  scope?: _angular_core.Signal<string | undefined> | undefined;
7595
- sort?: _angular_core.Signal<string | undefined> | undefined;
7596
7775
  basket?: _angular_core.Signal<string | undefined> | undefined;
7597
7776
  isFirstPage?: _angular_core.Signal<boolean | undefined> | undefined;
7598
7777
  strictRefine?: _angular_core.Signal<boolean | undefined> | undefined;
@@ -7606,7 +7785,6 @@ declare class AggregationDateComponent {
7606
7785
  relevanceTransforms?: _angular_core.Signal<string | undefined> | undefined;
7607
7786
  removeDuplicates?: _angular_core.Signal<boolean | undefined> | undefined;
7608
7787
  queryId?: _angular_core.Signal<string | undefined> | undefined;
7609
- aggregations?: _angular_core.Signal<string[] | Record<string, _sinequa_atomic.AggregationOptions> | undefined> | undefined;
7610
7788
  orderBy?: _angular_core.Signal<string | undefined> | undefined;
7611
7789
  groupBy?: _angular_core.Signal<string | undefined> | undefined;
7612
7790
  neuralSearch?: _angular_core.Signal<boolean | undefined> | undefined;
@@ -7650,10 +7828,12 @@ declare class AggregationDateComponent {
7650
7828
  }) => Partial<LegacyFilter & {
7651
7829
  count: number;
7652
7830
  }> | null;
7653
- getQuery: () => _sinequa_atomic.Query;
7831
+ getQuery: () => Query;
7654
7832
  } & _ngrx_signals.StateSource<{
7655
- name?: string | undefined;
7656
7833
  text?: string | undefined;
7834
+ aggregations?: (Record<string, _sinequa_atomic.AggregationOptions> | string[]) | undefined;
7835
+ name?: string | undefined;
7836
+ sort?: string | undefined;
7657
7837
  action?: "" | "search" | "open" | "aggregate" | undefined;
7658
7838
  select?: _sinequa_atomic.Select[] | undefined;
7659
7839
  open?: _sinequa_atomic.Open[] | undefined;
@@ -7661,7 +7841,6 @@ declare class AggregationDateComponent {
7661
7841
  pageSize?: number | undefined;
7662
7842
  tab?: string | undefined;
7663
7843
  scope?: string | undefined;
7664
- sort?: string | undefined;
7665
7844
  basket?: string | undefined;
7666
7845
  isFirstPage?: boolean | undefined;
7667
7846
  strictRefine?: boolean | undefined;
@@ -7675,7 +7854,6 @@ declare class AggregationDateComponent {
7675
7854
  relevanceTransforms?: string | undefined;
7676
7855
  removeDuplicates?: boolean | undefined;
7677
7856
  queryId?: string | undefined;
7678
- aggregations?: (Record<string, _sinequa_atomic.AggregationOptions> | string[]) | undefined;
7679
7857
  orderBy?: string | undefined;
7680
7858
  groupBy?: string | undefined;
7681
7859
  neuralSearch?: boolean | undefined;
@@ -7689,6 +7867,13 @@ declare class AggregationDateComponent {
7689
7867
  readonly transloco: TranslocoService;
7690
7868
  protected readonly selection: _angular_core.WritableSignal<boolean>;
7691
7869
  protected readonly validSelection: _angular_core.WritableSignal<boolean>;
7870
+ /**
7871
+ * Guards live emission while the form is seeded programmatically from the
7872
+ * `[selection]` input (see the seeding effect below). `form.setValue`/`patchValue`
7873
+ * emit `valueChanges` synchronously; without this flag a controlled host that
7874
+ * re-feeds `[selection]` from `selectionChange` would loop indefinitely.
7875
+ */
7876
+ private seedingForm;
7692
7877
  readonly aggregation: _angular_core.Signal<AggEx | null>;
7693
7878
  readonly isEmpty: _angular_core.Signal<boolean>;
7694
7879
  readonly items: _angular_core.Signal<AggregationItem[]>;
@@ -7706,6 +7891,13 @@ declare class AggregationDateComponent {
7706
7891
  protected readonly customRangeFrom: _angular_core.Signal<string>;
7707
7892
  protected readonly customRangeTo: _angular_core.Signal<string>;
7708
7893
  constructor();
7894
+ /**
7895
+ * Emits the current form selection through `selectionChange` then `filtersChange`
7896
+ * (controlled mode). Shared by `apply()` and the live emission paths so both
7897
+ * produce identical payloads. Throws if the form is not a valid selection
7898
+ * (`getFormValueFilter`) — callers decide how to surface it.
7899
+ */
7900
+ private emitCurrentSelection;
7709
7901
  select(): void;
7710
7902
  apply(): void;
7711
7903
  clear(notify?: boolean): void;
@@ -7713,10 +7905,39 @@ declare class AggregationDateComponent {
7713
7905
  protected selectAndOpenDialog(): void;
7714
7906
  protected onRangeSelected(range: DateRange): void;
7715
7907
  private updateForm;
7908
+ /**
7909
+ * Derives the form from a controlled selection.
7910
+ * `{ kind: "option" }` re-selects the date option whose item `value` matches —
7911
+ * no operator/value matching, so presets whose bounds are computed relative to
7912
+ * today survive a round-trip across days; a value unknown to the aggregation
7913
+ * resets the form. `{ kind: "range" }` fills the custom range from the bounds.
7914
+ */
7915
+ private updateFormFromSelection;
7916
+ /**
7917
+ * The date option codes (what `form.option` holds) are the items' `display`
7918
+ * with a fallback on their `value` (see `translateAggregationToDateOptions`).
7919
+ * The controlled selection persists the item `value` — the real filter value —
7920
+ * so these two helpers convert between the option code and the item value.
7921
+ */
7922
+ private optionToItemValue;
7923
+ private itemValueToOption;
7924
+ /**
7925
+ * Converts a controlled `{ kind: "range" }` selection to the `LegacyFilter`
7926
+ * shape `updateForm` expects (which only reads `operator`/`value`/`filters`).
7927
+ * Returns `undefined` for an empty or non-range selection, which resets the form.
7928
+ */
7929
+ private rangeToLegacyFilter;
7930
+ /**
7931
+ * Converts the applied `LegacyFilter` to a `{ kind: "range" }` selection
7932
+ * (the shape emitted through `selectionChange` in controlled mode).
7933
+ * Mirrors the operator handling of `updateForm`. Presets whose operator is not
7934
+ * a range operator (e.g. `eq`) collapse to `from = to = value`.
7935
+ */
7936
+ private toRangeSelection;
7716
7937
  private toEndOfDay;
7717
7938
  private getFormValueFilter;
7718
7939
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AggregationDateComponent, never>;
7719
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<AggregationDateComponent, "aggregation-date, AggregationDate, aggregationdate", never, { "name": { "alias": "name"; "required": false; "isSignal": true; }; "column": { "alias": "column"; "required": true; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "collapsible": { "alias": "collapsible"; "required": false; "isSignal": true; }; "collapsed": { "alias": "collapsed"; "required": false; "isSignal": true; }; "searchable": { "alias": "searchable"; "required": false; "isSignal": true; }; "showFiltersCount": { "alias": "showFiltersCount"; "required": false; "isSignal": true; }; "syncUrl": { "alias": "syncUrl"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "displayEmptyDistributionIntervals": { "alias": "displayEmptyDistributionIntervals"; "required": false; "isSignal": true; }; "searchText": { "alias": "searchText"; "required": false; "isSignal": true; }; }, { "onSelect": "onSelect"; "onApply": "onApply"; "onClear": "onClear"; "searchText": "searchTextChange"; }, never, ["label"], true, never>;
7940
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AggregationDateComponent, "aggregation-date, AggregationDate, aggregationdate", never, { "name": { "alias": "name"; "required": false; "isSignal": true; }; "column": { "alias": "column"; "required": true; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "collapsible": { "alias": "collapsible"; "required": false; "isSignal": true; }; "collapsed": { "alias": "collapsed"; "required": false; "isSignal": true; }; "searchable": { "alias": "searchable"; "required": false; "isSignal": true; }; "showFiltersCount": { "alias": "showFiltersCount"; "required": false; "isSignal": true; }; "syncUrl": { "alias": "syncUrl"; "required": false; "isSignal": true; }; "controlledQuery": { "alias": "query"; "required": false; "isSignal": true; }; "controlledAggregation": { "alias": "aggregation"; "required": false; "isSignal": true; }; "controlledSelection": { "alias": "selection"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "displayEmptyDistributionIntervals": { "alias": "displayEmptyDistributionIntervals"; "required": false; "isSignal": true; }; "searchText": { "alias": "searchText"; "required": false; "isSignal": true; }; }, { "onSelect": "onSelect"; "onApply": "onApply"; "onClear": "onClear"; "selectionChange": "selectionChange"; "filtersChange": "filtersChange"; "searchText": "searchTextChange"; }, never, ["label"], true, never>;
7720
7941
  }
7721
7942
 
7722
7943
  /**
@@ -7758,8 +7979,10 @@ declare class AdvancedSearch {
7758
7979
  multiSelection: Article$1[];
7759
7980
  }>;
7760
7981
  protected readonly queryParamsStore: {
7761
- name?: _angular_core.Signal<string | undefined> | undefined;
7762
7982
  text?: _angular_core.Signal<string | undefined> | undefined;
7983
+ aggregations?: _angular_core.Signal<string[] | Record<string, _sinequa_atomic.AggregationOptions> | undefined> | undefined;
7984
+ name?: _angular_core.Signal<string | undefined> | undefined;
7985
+ sort?: _angular_core.Signal<string | undefined> | undefined;
7763
7986
  action?: _angular_core.Signal<"" | "open" | "search" | "aggregate" | undefined> | undefined;
7764
7987
  select?: _angular_core.Signal<_sinequa_atomic.Select[] | undefined> | undefined;
7765
7988
  open?: _angular_core.Signal<_sinequa_atomic.Open[] | undefined> | undefined;
@@ -7767,7 +7990,6 @@ declare class AdvancedSearch {
7767
7990
  pageSize?: _angular_core.Signal<number | undefined> | undefined;
7768
7991
  tab?: _angular_core.Signal<string | undefined> | undefined;
7769
7992
  scope?: _angular_core.Signal<string | undefined> | undefined;
7770
- sort?: _angular_core.Signal<string | undefined> | undefined;
7771
7993
  basket?: _angular_core.Signal<string | undefined> | undefined;
7772
7994
  isFirstPage?: _angular_core.Signal<boolean | undefined> | undefined;
7773
7995
  strictRefine?: _angular_core.Signal<boolean | undefined> | undefined;
@@ -7781,7 +8003,6 @@ declare class AdvancedSearch {
7781
8003
  relevanceTransforms?: _angular_core.Signal<string | undefined> | undefined;
7782
8004
  removeDuplicates?: _angular_core.Signal<boolean | undefined> | undefined;
7783
8005
  queryId?: _angular_core.Signal<string | undefined> | undefined;
7784
- aggregations?: _angular_core.Signal<string[] | Record<string, _sinequa_atomic.AggregationOptions> | undefined> | undefined;
7785
8006
  orderBy?: _angular_core.Signal<string | undefined> | undefined;
7786
8007
  groupBy?: _angular_core.Signal<string | undefined> | undefined;
7787
8008
  neuralSearch?: _angular_core.Signal<boolean | undefined> | undefined;
@@ -7827,8 +8048,10 @@ declare class AdvancedSearch {
7827
8048
  }> | null;
7828
8049
  getQuery: () => _sinequa_atomic.Query;
7829
8050
  } & _ngrx_signals.StateSource<{
7830
- name?: string | undefined;
7831
8051
  text?: string | undefined;
8052
+ aggregations?: (Record<string, _sinequa_atomic.AggregationOptions> | string[]) | undefined;
8053
+ name?: string | undefined;
8054
+ sort?: string | undefined;
7832
8055
  action?: "" | "search" | "open" | "aggregate" | undefined;
7833
8056
  select?: _sinequa_atomic.Select[] | undefined;
7834
8057
  open?: _sinequa_atomic.Open[] | undefined;
@@ -7836,7 +8059,6 @@ declare class AdvancedSearch {
7836
8059
  pageSize?: number | undefined;
7837
8060
  tab?: string | undefined;
7838
8061
  scope?: string | undefined;
7839
- sort?: string | undefined;
7840
8062
  basket?: string | undefined;
7841
8063
  isFirstPage?: boolean | undefined;
7842
8064
  strictRefine?: boolean | undefined;
@@ -7850,7 +8072,6 @@ declare class AdvancedSearch {
7850
8072
  relevanceTransforms?: string | undefined;
7851
8073
  removeDuplicates?: boolean | undefined;
7852
8074
  queryId?: string | undefined;
7853
- aggregations?: (Record<string, _sinequa_atomic.AggregationOptions> | string[]) | undefined;
7854
8075
  orderBy?: string | undefined;
7855
8076
  groupBy?: string | undefined;
7856
8077
  neuralSearch?: boolean | undefined;
@@ -8244,8 +8465,10 @@ declare class ArticleLabels {
8244
8465
 
8245
8466
  declare class ArticleSimilarDocuments {
8246
8467
  protected readonly queryParamsStore: {
8247
- name?: _angular_core.Signal<string | undefined> | undefined;
8248
8468
  text?: _angular_core.Signal<string | undefined> | undefined;
8469
+ aggregations?: _angular_core.Signal<string[] | Record<string, _sinequa_atomic.AggregationOptions> | undefined> | undefined;
8470
+ name?: _angular_core.Signal<string | undefined> | undefined;
8471
+ sort?: _angular_core.Signal<string | undefined> | undefined;
8249
8472
  action?: _angular_core.Signal<"" | "open" | "search" | "aggregate" | undefined> | undefined;
8250
8473
  select?: _angular_core.Signal<_sinequa_atomic.Select[] | undefined> | undefined;
8251
8474
  open?: _angular_core.Signal<_sinequa_atomic.Open[] | undefined> | undefined;
@@ -8253,7 +8476,6 @@ declare class ArticleSimilarDocuments {
8253
8476
  pageSize?: _angular_core.Signal<number | undefined> | undefined;
8254
8477
  tab?: _angular_core.Signal<string | undefined> | undefined;
8255
8478
  scope?: _angular_core.Signal<string | undefined> | undefined;
8256
- sort?: _angular_core.Signal<string | undefined> | undefined;
8257
8479
  basket?: _angular_core.Signal<string | undefined> | undefined;
8258
8480
  isFirstPage?: _angular_core.Signal<boolean | undefined> | undefined;
8259
8481
  strictRefine?: _angular_core.Signal<boolean | undefined> | undefined;
@@ -8267,7 +8489,6 @@ declare class ArticleSimilarDocuments {
8267
8489
  relevanceTransforms?: _angular_core.Signal<string | undefined> | undefined;
8268
8490
  removeDuplicates?: _angular_core.Signal<boolean | undefined> | undefined;
8269
8491
  queryId?: _angular_core.Signal<string | undefined> | undefined;
8270
- aggregations?: _angular_core.Signal<string[] | Record<string, _sinequa_atomic.AggregationOptions> | undefined> | undefined;
8271
8492
  orderBy?: _angular_core.Signal<string | undefined> | undefined;
8272
8493
  groupBy?: _angular_core.Signal<string | undefined> | undefined;
8273
8494
  neuralSearch?: _angular_core.Signal<boolean | undefined> | undefined;
@@ -8313,8 +8534,10 @@ declare class ArticleSimilarDocuments {
8313
8534
  }> | null;
8314
8535
  getQuery: () => _sinequa_atomic.Query;
8315
8536
  } & _ngrx_signals.StateSource<{
8316
- name?: string | undefined;
8317
8537
  text?: string | undefined;
8538
+ aggregations?: (Record<string, _sinequa_atomic.AggregationOptions> | string[]) | undefined;
8539
+ name?: string | undefined;
8540
+ sort?: string | undefined;
8318
8541
  action?: "" | "search" | "open" | "aggregate" | undefined;
8319
8542
  select?: _sinequa_atomic.Select[] | undefined;
8320
8543
  open?: _sinequa_atomic.Open[] | undefined;
@@ -8322,7 +8545,6 @@ declare class ArticleSimilarDocuments {
8322
8545
  pageSize?: number | undefined;
8323
8546
  tab?: string | undefined;
8324
8547
  scope?: string | undefined;
8325
- sort?: string | undefined;
8326
8548
  basket?: string | undefined;
8327
8549
  isFirstPage?: boolean | undefined;
8328
8550
  strictRefine?: boolean | undefined;
@@ -8336,7 +8558,6 @@ declare class ArticleSimilarDocuments {
8336
8558
  relevanceTransforms?: string | undefined;
8337
8559
  removeDuplicates?: boolean | undefined;
8338
8560
  queryId?: string | undefined;
8339
- aggregations?: (Record<string, _sinequa_atomic.AggregationOptions> | string[]) | undefined;
8340
8561
  orderBy?: string | undefined;
8341
8562
  groupBy?: string | undefined;
8342
8563
  neuralSearch?: boolean | undefined;
@@ -8581,7 +8802,7 @@ declare class SignedOutComponent {
8581
8802
  }
8582
8803
 
8583
8804
  declare class BookmarkButtonComponent {
8584
- variant: _angular_core.InputSignal<"default" | "icon" | "primary" | "secondary" | "destructive" | "ai" | "outline" | "none" | "link" | "accent" | "tertiary" | "ghost" | "light-accent" | null | undefined>;
8805
+ variant: _angular_core.InputSignal<"icon" | "default" | "none" | "primary" | "secondary" | "destructive" | "ai" | "link" | "outline" | "accent" | "tertiary" | "ghost" | "light-accent" | null | undefined>;
8585
8806
  size: _angular_core.InputSignal<"icon" | "xs" | "sm" | "md" | "lg" | null | undefined>;
8586
8807
  readonly article: _angular_core.InputSignal<Partial<Article$1>>;
8587
8808
  private readonly userSettingsStore;
@@ -8667,9 +8888,7 @@ declare class CollectionsDialog implements DialogInterface {
8667
8888
  readonly closed: _angular_core.OutputEmitterRef<DialogResult>;
8668
8889
  readonly createInputElement: _angular_core.Signal<ElementRef<HTMLInputElement> | undefined>;
8669
8890
  readonly dialogElement: _angular_core.Signal<DialogComponent | undefined>;
8670
- private readonly queryParamStore;
8671
8891
  private readonly userSettingsStore;
8672
- readonly collection: _angular_core.WritableSignal<string | undefined>;
8673
8892
  readonly article: _angular_core.WritableSignal<Article$1[]>;
8674
8893
  readonly newCollectionName: _angular_core.WritableSignal<string>;
8675
8894
  readonly creating: _angular_core.WritableSignal<boolean>;
@@ -9027,8 +9246,10 @@ declare class AdvancedSearchComponent {
9027
9246
  multiSelection: Article$1[];
9028
9247
  }>;
9029
9248
  protected readonly queryParamsStore: {
9030
- name?: _angular_core.Signal<string | undefined> | undefined;
9031
9249
  text?: _angular_core.Signal<string | undefined> | undefined;
9250
+ aggregations?: _angular_core.Signal<string[] | Record<string, _sinequa_atomic.AggregationOptions> | undefined> | undefined;
9251
+ name?: _angular_core.Signal<string | undefined> | undefined;
9252
+ sort?: _angular_core.Signal<string | undefined> | undefined;
9032
9253
  action?: _angular_core.Signal<"" | "open" | "search" | "aggregate" | undefined> | undefined;
9033
9254
  select?: _angular_core.Signal<_sinequa_atomic.Select[] | undefined> | undefined;
9034
9255
  open?: _angular_core.Signal<_sinequa_atomic.Open[] | undefined> | undefined;
@@ -9036,7 +9257,6 @@ declare class AdvancedSearchComponent {
9036
9257
  pageSize?: _angular_core.Signal<number | undefined> | undefined;
9037
9258
  tab?: _angular_core.Signal<string | undefined> | undefined;
9038
9259
  scope?: _angular_core.Signal<string | undefined> | undefined;
9039
- sort?: _angular_core.Signal<string | undefined> | undefined;
9040
9260
  basket?: _angular_core.Signal<string | undefined> | undefined;
9041
9261
  isFirstPage?: _angular_core.Signal<boolean | undefined> | undefined;
9042
9262
  strictRefine?: _angular_core.Signal<boolean | undefined> | undefined;
@@ -9050,7 +9270,6 @@ declare class AdvancedSearchComponent {
9050
9270
  relevanceTransforms?: _angular_core.Signal<string | undefined> | undefined;
9051
9271
  removeDuplicates?: _angular_core.Signal<boolean | undefined> | undefined;
9052
9272
  queryId?: _angular_core.Signal<string | undefined> | undefined;
9053
- aggregations?: _angular_core.Signal<string[] | Record<string, _sinequa_atomic.AggregationOptions> | undefined> | undefined;
9054
9273
  orderBy?: _angular_core.Signal<string | undefined> | undefined;
9055
9274
  groupBy?: _angular_core.Signal<string | undefined> | undefined;
9056
9275
  neuralSearch?: _angular_core.Signal<boolean | undefined> | undefined;
@@ -9096,8 +9315,10 @@ declare class AdvancedSearchComponent {
9096
9315
  }> | null;
9097
9316
  getQuery: () => _sinequa_atomic.Query;
9098
9317
  } & _ngrx_signals.StateSource<{
9099
- name?: string | undefined;
9100
9318
  text?: string | undefined;
9319
+ aggregations?: (Record<string, _sinequa_atomic.AggregationOptions> | string[]) | undefined;
9320
+ name?: string | undefined;
9321
+ sort?: string | undefined;
9101
9322
  action?: "" | "search" | "open" | "aggregate" | undefined;
9102
9323
  select?: _sinequa_atomic.Select[] | undefined;
9103
9324
  open?: _sinequa_atomic.Open[] | undefined;
@@ -9105,7 +9326,6 @@ declare class AdvancedSearchComponent {
9105
9326
  pageSize?: number | undefined;
9106
9327
  tab?: string | undefined;
9107
9328
  scope?: string | undefined;
9108
- sort?: string | undefined;
9109
9329
  basket?: string | undefined;
9110
9330
  isFirstPage?: boolean | undefined;
9111
9331
  strictRefine?: boolean | undefined;
@@ -9119,7 +9339,6 @@ declare class AdvancedSearchComponent {
9119
9339
  relevanceTransforms?: string | undefined;
9120
9340
  removeDuplicates?: boolean | undefined;
9121
9341
  queryId?: string | undefined;
9122
- aggregations?: (Record<string, _sinequa_atomic.AggregationOptions> | string[]) | undefined;
9123
9342
  orderBy?: string | undefined;
9124
9343
  groupBy?: string | undefined;
9125
9344
  neuralSearch?: boolean | undefined;
@@ -9505,8 +9724,10 @@ declare class DrawerPreviewComponent extends DrawerComponent {
9505
9724
  multiSelection: _sinequa_atomic.Article[];
9506
9725
  }>;
9507
9726
  queryParamsStore: {
9508
- name?: _angular_core.Signal<string | undefined> | undefined;
9509
9727
  text?: _angular_core.Signal<string | undefined> | undefined;
9728
+ aggregations?: _angular_core.Signal<string[] | Record<string, _sinequa_atomic.AggregationOptions> | undefined> | undefined;
9729
+ name?: _angular_core.Signal<string | undefined> | undefined;
9730
+ sort?: _angular_core.Signal<string | undefined> | undefined;
9510
9731
  action?: _angular_core.Signal<"" | "open" | "search" | "aggregate" | undefined> | undefined;
9511
9732
  select?: _angular_core.Signal<_sinequa_atomic.Select[] | undefined> | undefined;
9512
9733
  open?: _angular_core.Signal<_sinequa_atomic.Open[] | undefined> | undefined;
@@ -9514,7 +9735,6 @@ declare class DrawerPreviewComponent extends DrawerComponent {
9514
9735
  pageSize?: _angular_core.Signal<number | undefined> | undefined;
9515
9736
  tab?: _angular_core.Signal<string | undefined> | undefined;
9516
9737
  scope?: _angular_core.Signal<string | undefined> | undefined;
9517
- sort?: _angular_core.Signal<string | undefined> | undefined;
9518
9738
  basket?: _angular_core.Signal<string | undefined> | undefined;
9519
9739
  isFirstPage?: _angular_core.Signal<boolean | undefined> | undefined;
9520
9740
  strictRefine?: _angular_core.Signal<boolean | undefined> | undefined;
@@ -9528,7 +9748,6 @@ declare class DrawerPreviewComponent extends DrawerComponent {
9528
9748
  relevanceTransforms?: _angular_core.Signal<string | undefined> | undefined;
9529
9749
  removeDuplicates?: _angular_core.Signal<boolean | undefined> | undefined;
9530
9750
  queryId?: _angular_core.Signal<string | undefined> | undefined;
9531
- aggregations?: _angular_core.Signal<string[] | Record<string, _sinequa_atomic.AggregationOptions> | undefined> | undefined;
9532
9751
  orderBy?: _angular_core.Signal<string | undefined> | undefined;
9533
9752
  groupBy?: _angular_core.Signal<string | undefined> | undefined;
9534
9753
  neuralSearch?: _angular_core.Signal<boolean | undefined> | undefined;
@@ -9574,8 +9793,10 @@ declare class DrawerPreviewComponent extends DrawerComponent {
9574
9793
  }> | null;
9575
9794
  getQuery: () => _sinequa_atomic.Query;
9576
9795
  } & _ngrx_signals.StateSource<{
9577
- name?: string | undefined;
9578
9796
  text?: string | undefined;
9797
+ aggregations?: (Record<string, _sinequa_atomic.AggregationOptions> | string[]) | undefined;
9798
+ name?: string | undefined;
9799
+ sort?: string | undefined;
9579
9800
  action?: "" | "search" | "open" | "aggregate" | undefined;
9580
9801
  select?: _sinequa_atomic.Select[] | undefined;
9581
9802
  open?: _sinequa_atomic.Open[] | undefined;
@@ -9583,7 +9804,6 @@ declare class DrawerPreviewComponent extends DrawerComponent {
9583
9804
  pageSize?: number | undefined;
9584
9805
  tab?: string | undefined;
9585
9806
  scope?: string | undefined;
9586
- sort?: string | undefined;
9587
9807
  basket?: string | undefined;
9588
9808
  isFirstPage?: boolean | undefined;
9589
9809
  strictRefine?: boolean | undefined;
@@ -9597,7 +9817,6 @@ declare class DrawerPreviewComponent extends DrawerComponent {
9597
9817
  relevanceTransforms?: string | undefined;
9598
9818
  removeDuplicates?: boolean | undefined;
9599
9819
  queryId?: string | undefined;
9600
- aggregations?: (Record<string, _sinequa_atomic.AggregationOptions> | string[]) | undefined;
9601
9820
  orderBy?: string | undefined;
9602
9821
  groupBy?: string | undefined;
9603
9822
  neuralSearch?: boolean | undefined;
@@ -9717,8 +9936,10 @@ declare class ExportDialog implements DialogInterface {
9717
9936
  private appStore;
9718
9937
  readonly exportService: ExportService;
9719
9938
  readonly queryParamsStore: {
9720
- name?: _angular_core.Signal<string | undefined> | undefined;
9721
9939
  text?: _angular_core.Signal<string | undefined> | undefined;
9940
+ aggregations?: _angular_core.Signal<string[] | Record<string, _sinequa_atomic.AggregationOptions> | undefined> | undefined;
9941
+ name?: _angular_core.Signal<string | undefined> | undefined;
9942
+ sort?: _angular_core.Signal<string | undefined> | undefined;
9722
9943
  action?: _angular_core.Signal<"" | "open" | "search" | "aggregate" | undefined> | undefined;
9723
9944
  select?: _angular_core.Signal<_sinequa_atomic.Select[] | undefined> | undefined;
9724
9945
  open?: _angular_core.Signal<_sinequa_atomic.Open[] | undefined> | undefined;
@@ -9726,7 +9947,6 @@ declare class ExportDialog implements DialogInterface {
9726
9947
  pageSize?: _angular_core.Signal<number | undefined> | undefined;
9727
9948
  tab?: _angular_core.Signal<string | undefined> | undefined;
9728
9949
  scope?: _angular_core.Signal<string | undefined> | undefined;
9729
- sort?: _angular_core.Signal<string | undefined> | undefined;
9730
9950
  basket?: _angular_core.Signal<string | undefined> | undefined;
9731
9951
  isFirstPage?: _angular_core.Signal<boolean | undefined> | undefined;
9732
9952
  strictRefine?: _angular_core.Signal<boolean | undefined> | undefined;
@@ -9740,7 +9960,6 @@ declare class ExportDialog implements DialogInterface {
9740
9960
  relevanceTransforms?: _angular_core.Signal<string | undefined> | undefined;
9741
9961
  removeDuplicates?: _angular_core.Signal<boolean | undefined> | undefined;
9742
9962
  queryId?: _angular_core.Signal<string | undefined> | undefined;
9743
- aggregations?: _angular_core.Signal<string[] | Record<string, _sinequa_atomic.AggregationOptions> | undefined> | undefined;
9744
9963
  orderBy?: _angular_core.Signal<string | undefined> | undefined;
9745
9964
  groupBy?: _angular_core.Signal<string | undefined> | undefined;
9746
9965
  neuralSearch?: _angular_core.Signal<boolean | undefined> | undefined;
@@ -9786,8 +10005,10 @@ declare class ExportDialog implements DialogInterface {
9786
10005
  }> | null;
9787
10006
  getQuery: () => _sinequa_atomic.Query;
9788
10007
  } & _ngrx_signals.StateSource<{
9789
- name?: string | undefined;
9790
10008
  text?: string | undefined;
10009
+ aggregations?: (Record<string, _sinequa_atomic.AggregationOptions> | string[]) | undefined;
10010
+ name?: string | undefined;
10011
+ sort?: string | undefined;
9791
10012
  action?: "" | "search" | "open" | "aggregate" | undefined;
9792
10013
  select?: _sinequa_atomic.Select[] | undefined;
9793
10014
  open?: _sinequa_atomic.Open[] | undefined;
@@ -9795,7 +10016,6 @@ declare class ExportDialog implements DialogInterface {
9795
10016
  pageSize?: number | undefined;
9796
10017
  tab?: string | undefined;
9797
10018
  scope?: string | undefined;
9798
- sort?: string | undefined;
9799
10019
  basket?: string | undefined;
9800
10020
  isFirstPage?: boolean | undefined;
9801
10021
  strictRefine?: boolean | undefined;
@@ -9809,7 +10029,6 @@ declare class ExportDialog implements DialogInterface {
9809
10029
  relevanceTransforms?: string | undefined;
9810
10030
  removeDuplicates?: boolean | undefined;
9811
10031
  queryId?: string | undefined;
9812
- aggregations?: (Record<string, _sinequa_atomic.AggregationOptions> | string[]) | undefined;
9813
10032
  orderBy?: string | undefined;
9814
10033
  groupBy?: string | undefined;
9815
10034
  neuralSearch?: boolean | undefined;
@@ -10169,12 +10388,14 @@ declare class SearchFeedbackComponent {
10169
10388
  onClose: _angular_core.OutputEmitterRef<void>;
10170
10389
  readonly feedbackDialog: _angular_core.Signal<FeedbackDialogComponent | undefined>;
10171
10390
  pages: _angular_core.InputSignal<any>;
10172
- variant: _angular_core.InputSignal<"default" | "icon" | "primary" | "secondary" | "destructive" | "ai" | "outline" | "none" | "link" | "accent" | "tertiary" | "ghost" | "light-accent" | null | undefined>;
10391
+ variant: _angular_core.InputSignal<"icon" | "default" | "none" | "primary" | "secondary" | "destructive" | "ai" | "link" | "outline" | "accent" | "tertiary" | "ghost" | "light-accent" | null | undefined>;
10173
10392
  solid: _angular_core.InputSignal<boolean | null | undefined>;
10174
10393
  readonly auditService: AuditService;
10175
10394
  protected readonly queryParamsStore: {
10176
- name?: _angular_core.Signal<string | undefined> | undefined;
10177
10395
  text?: _angular_core.Signal<string | undefined> | undefined;
10396
+ aggregations?: _angular_core.Signal<string[] | Record<string, _sinequa_atomic.AggregationOptions> | undefined> | undefined;
10397
+ name?: _angular_core.Signal<string | undefined> | undefined;
10398
+ sort?: _angular_core.Signal<string | undefined> | undefined;
10178
10399
  action?: _angular_core.Signal<"" | "open" | "search" | "aggregate" | undefined> | undefined;
10179
10400
  select?: _angular_core.Signal<_sinequa_atomic.Select[] | undefined> | undefined;
10180
10401
  open?: _angular_core.Signal<_sinequa_atomic.Open[] | undefined> | undefined;
@@ -10182,7 +10403,6 @@ declare class SearchFeedbackComponent {
10182
10403
  pageSize?: _angular_core.Signal<number | undefined> | undefined;
10183
10404
  tab?: _angular_core.Signal<string | undefined> | undefined;
10184
10405
  scope?: _angular_core.Signal<string | undefined> | undefined;
10185
- sort?: _angular_core.Signal<string | undefined> | undefined;
10186
10406
  basket?: _angular_core.Signal<string | undefined> | undefined;
10187
10407
  isFirstPage?: _angular_core.Signal<boolean | undefined> | undefined;
10188
10408
  strictRefine?: _angular_core.Signal<boolean | undefined> | undefined;
@@ -10196,7 +10416,6 @@ declare class SearchFeedbackComponent {
10196
10416
  relevanceTransforms?: _angular_core.Signal<string | undefined> | undefined;
10197
10417
  removeDuplicates?: _angular_core.Signal<boolean | undefined> | undefined;
10198
10418
  queryId?: _angular_core.Signal<string | undefined> | undefined;
10199
- aggregations?: _angular_core.Signal<string[] | Record<string, _sinequa_atomic.AggregationOptions> | undefined> | undefined;
10200
10419
  orderBy?: _angular_core.Signal<string | undefined> | undefined;
10201
10420
  groupBy?: _angular_core.Signal<string | undefined> | undefined;
10202
10421
  neuralSearch?: _angular_core.Signal<boolean | undefined> | undefined;
@@ -10242,8 +10461,10 @@ declare class SearchFeedbackComponent {
10242
10461
  }> | null;
10243
10462
  getQuery: () => _sinequa_atomic.Query;
10244
10463
  } & _ngrx_signals.StateSource<{
10245
- name?: string | undefined;
10246
10464
  text?: string | undefined;
10465
+ aggregations?: (Record<string, _sinequa_atomic.AggregationOptions> | string[]) | undefined;
10466
+ name?: string | undefined;
10467
+ sort?: string | undefined;
10247
10468
  action?: "" | "search" | "open" | "aggregate" | undefined;
10248
10469
  select?: _sinequa_atomic.Select[] | undefined;
10249
10470
  open?: _sinequa_atomic.Open[] | undefined;
@@ -10251,7 +10472,6 @@ declare class SearchFeedbackComponent {
10251
10472
  pageSize?: number | undefined;
10252
10473
  tab?: string | undefined;
10253
10474
  scope?: string | undefined;
10254
- sort?: string | undefined;
10255
10475
  basket?: string | undefined;
10256
10476
  isFirstPage?: boolean | undefined;
10257
10477
  strictRefine?: boolean | undefined;
@@ -10265,7 +10485,6 @@ declare class SearchFeedbackComponent {
10265
10485
  relevanceTransforms?: string | undefined;
10266
10486
  removeDuplicates?: boolean | undefined;
10267
10487
  queryId?: string | undefined;
10268
- aggregations?: (Record<string, _sinequa_atomic.AggregationOptions> | string[]) | undefined;
10269
10488
  orderBy?: string | undefined;
10270
10489
  groupBy?: string | undefined;
10271
10490
  neuralSearch?: boolean | undefined;
@@ -10302,6 +10521,14 @@ declare class AggregationTreeComponent {
10302
10521
  collapsed: _angular_core.InputSignal<boolean>;
10303
10522
  searchable: _angular_core.InputSignal<boolean | undefined>;
10304
10523
  showFiltersCount: _angular_core.InputSignalWithTransform<boolean, unknown>;
10524
+ /**
10525
+ * Whether to render the per-node checkbox. When `false`, the checkbox is hidden
10526
+ * but selection still toggles on row click — pair it with a custom `aggregationItem`
10527
+ * template that reflects the `selected` context to convey selection.
10528
+ *
10529
+ * @default true
10530
+ */
10531
+ showCheckbox: _angular_core.InputSignalWithTransform<boolean, unknown>;
10305
10532
  expandedLevel: _angular_core.InputSignalWithTransform<number | undefined, unknown>;
10306
10533
  /**
10307
10534
  * When `false`, applying or clearing filters updates the store without
@@ -10310,15 +10537,63 @@ declare class AggregationTreeComponent {
10310
10537
  * @default true
10311
10538
  */
10312
10539
  syncUrl: _angular_core.InputSignalWithTransform<boolean, unknown>;
10540
+ /**
10541
+ * Controlled query. When set, the component's own operations (load-more,
10542
+ * search-within-facet, tree-expand) run against this query instead of reading
10543
+ * the shared `QueryParamsStore`. Use to target a query not tied to the current
10544
+ * app, without mutating the shared store or the URL.
10545
+ *
10546
+ * @default undefined — read `QueryParamsStore.getQuery()` (current behavior)
10547
+ */
10548
+ controlledQuery: _angular_core.InputSignal<Query | undefined>;
10549
+ /**
10550
+ * Controlled data. When set, the component renders this aggregation object
10551
+ * instead of reading it from the shared `AggregationsStore`.
10552
+ *
10553
+ * @default undefined — read `AggregationsStore` (current behavior)
10554
+ */
10555
+ controlledAggregation: _angular_core.InputSignal<Aggregation | undefined>;
10556
+ /**
10557
+ * Controlled selection. When set, item `$selected` state is derived from this
10558
+ * value (`paths` in the `"/A/B/*"` format) instead of the shared
10559
+ * `QueryParamsStore` filters.
10560
+ *
10561
+ * @default undefined — derive from `QueryParamsStore` filters (current behavior)
10562
+ */
10563
+ controlledSelection: _angular_core.InputSignal<AggregationSelection | undefined>;
10313
10564
  onSelect: _angular_core.OutputEmitterRef<AggregationItem[]>;
10314
10565
  onApply: _angular_core.OutputEmitterRef<void>;
10315
10566
  onClear: _angular_core.OutputEmitterRef<void>;
10567
+ /**
10568
+ * Emits the new selection (`"/A/B/*"` paths) when the user applies or clears
10569
+ * filters in controlled mode. The counterpart of the `[selection]` input —
10570
+ * emitted before `filtersChange` and `onApply`/`onClear`. In controlled mode
10571
+ * this is the only way changes surface: nothing is written to the shared
10572
+ * stores or the URL.
10573
+ */
10574
+ selectionChange: _angular_core.OutputEmitterRef<AggregationSelection>;
10575
+ /**
10576
+ * Emits the applied selection as a structured `Filter` (the exact filter the
10577
+ * default mode would write to the store), ready for `fetchQuery({ filters })`.
10578
+ * `undefined` on clear. Controlled mode only — emitted after `selectionChange`,
10579
+ * before `onApply`/`onClear`.
10580
+ */
10581
+ filtersChange: _angular_core.OutputEmitterRef<Filter$2 | undefined>;
10316
10582
  virtualItems: _angular_core.Signal<readonly ElementRef<HTMLDivElement>[]>;
10317
10583
  scrollElement: _angular_core.Signal<ElementRef<HTMLDivElement> | undefined>;
10584
+ protected readonly itemDirective: _angular_core.Signal<AggregationItemDirective | undefined>;
10585
+ /**
10586
+ * Item content template relayed by the `<Aggregation>` wrapper (which cannot
10587
+ * project content into this component). Also usable directly as a `TemplateRef`
10588
+ * input. A directive projected straight onto this component takes precedence.
10589
+ */
10590
+ readonly itemTemplateInput: _angular_core.InputSignal<TemplateRef<AggregationItemContext> | undefined>;
10591
+ protected readonly resolvedItemTemplate: _angular_core.Signal<TemplateRef<AggregationItemContext> | undefined>;
10318
10592
  selection: _angular_core.WritableSignal<boolean>;
10319
10593
  isAllSelected: _angular_core.WritableSignal<boolean>;
10320
10594
  searchText: _angular_core.ModelSignal<string>;
10321
10595
  private readonly base;
10596
+ readonly isControlled: _angular_core.Signal<boolean>;
10322
10597
  readonly aggregationsStore: {
10323
10598
  aggregations: _angular_core.Signal<Aggregation[]>;
10324
10599
  update: (aggregations: Aggregation[]) => void;
@@ -10329,8 +10604,10 @@ declare class AggregationTreeComponent {
10329
10604
  aggregations: Aggregation[];
10330
10605
  }>;
10331
10606
  readonly queryParamsStore: {
10332
- name?: _angular_core.Signal<string | undefined> | undefined;
10333
10607
  text?: _angular_core.Signal<string | undefined> | undefined;
10608
+ aggregations?: _angular_core.Signal<string[] | Record<string, _sinequa_atomic.AggregationOptions> | undefined> | undefined;
10609
+ name?: _angular_core.Signal<string | undefined> | undefined;
10610
+ sort?: _angular_core.Signal<string | undefined> | undefined;
10334
10611
  action?: _angular_core.Signal<"" | "open" | "search" | "aggregate" | undefined> | undefined;
10335
10612
  select?: _angular_core.Signal<_sinequa_atomic.Select[] | undefined> | undefined;
10336
10613
  open?: _angular_core.Signal<_sinequa_atomic.Open[] | undefined> | undefined;
@@ -10338,7 +10615,6 @@ declare class AggregationTreeComponent {
10338
10615
  pageSize?: _angular_core.Signal<number | undefined> | undefined;
10339
10616
  tab?: _angular_core.Signal<string | undefined> | undefined;
10340
10617
  scope?: _angular_core.Signal<string | undefined> | undefined;
10341
- sort?: _angular_core.Signal<string | undefined> | undefined;
10342
10618
  basket?: _angular_core.Signal<string | undefined> | undefined;
10343
10619
  isFirstPage?: _angular_core.Signal<boolean | undefined> | undefined;
10344
10620
  strictRefine?: _angular_core.Signal<boolean | undefined> | undefined;
@@ -10352,7 +10628,6 @@ declare class AggregationTreeComponent {
10352
10628
  relevanceTransforms?: _angular_core.Signal<string | undefined> | undefined;
10353
10629
  removeDuplicates?: _angular_core.Signal<boolean | undefined> | undefined;
10354
10630
  queryId?: _angular_core.Signal<string | undefined> | undefined;
10355
- aggregations?: _angular_core.Signal<string[] | Record<string, _sinequa_atomic.AggregationOptions> | undefined> | undefined;
10356
10631
  orderBy?: _angular_core.Signal<string | undefined> | undefined;
10357
10632
  groupBy?: _angular_core.Signal<string | undefined> | undefined;
10358
10633
  neuralSearch?: _angular_core.Signal<boolean | undefined> | undefined;
@@ -10396,10 +10671,12 @@ declare class AggregationTreeComponent {
10396
10671
  }) => Partial<LegacyFilter & {
10397
10672
  count: number;
10398
10673
  }> | null;
10399
- getQuery: () => _sinequa_atomic.Query;
10674
+ getQuery: () => Query;
10400
10675
  } & _ngrx_signals.StateSource<{
10401
- name?: string | undefined;
10402
10676
  text?: string | undefined;
10677
+ aggregations?: (Record<string, _sinequa_atomic.AggregationOptions> | string[]) | undefined;
10678
+ name?: string | undefined;
10679
+ sort?: string | undefined;
10403
10680
  action?: "" | "search" | "open" | "aggregate" | undefined;
10404
10681
  select?: _sinequa_atomic.Select[] | undefined;
10405
10682
  open?: _sinequa_atomic.Open[] | undefined;
@@ -10407,7 +10684,6 @@ declare class AggregationTreeComponent {
10407
10684
  pageSize?: number | undefined;
10408
10685
  tab?: string | undefined;
10409
10686
  scope?: string | undefined;
10410
- sort?: string | undefined;
10411
10687
  basket?: string | undefined;
10412
10688
  isFirstPage?: boolean | undefined;
10413
10689
  strictRefine?: boolean | undefined;
@@ -10421,7 +10697,6 @@ declare class AggregationTreeComponent {
10421
10697
  relevanceTransforms?: string | undefined;
10422
10698
  removeDuplicates?: boolean | undefined;
10423
10699
  queryId?: string | undefined;
10424
- aggregations?: (Record<string, _sinequa_atomic.AggregationOptions> | string[]) | undefined;
10425
10700
  orderBy?: string | undefined;
10426
10701
  groupBy?: string | undefined;
10427
10702
  neuralSearch?: boolean | undefined;
@@ -10752,14 +11027,14 @@ declare class AggregationTreeComponent {
10752
11027
  readonly suggests: _angular_core.WritableSignal<_sinequa_atomic.Suggestion[]>;
10753
11028
  readonly hasFilters: _angular_core.Signal<boolean>;
10754
11029
  readonly filtersCount: _angular_core.Signal<number>;
10755
- readonly query: _sinequa_atomic.Query;
11030
+ readonly query: Query;
10756
11031
  readonly filters: _angular_core.WritableSignal<LegacyFilter[]>;
10757
11032
  readonly showCount: _angular_core.Signal<boolean>;
10758
11033
  readonly quickFilter: _angular_core.Signal<boolean | undefined>;
10759
11034
  readonly isDate: _angular_core.Signal<boolean>;
10760
11035
  readonly virtualizer: _tanstack_angular_virtual.AngularVirtualizer<HTMLDivElement, Element>;
10761
11036
  readonly linkChildren: _angular_core.Signal<boolean | undefined>;
10762
- aggregation: _angular_core.Signal<_sinequa_atomic_angular.AggEx | null>;
11037
+ aggregation: _angular_core.Signal<AggEx | null>;
10763
11038
  items: _angular_core.Signal<AggregationListItem[]>;
10764
11039
  isEmpty: _angular_core.Signal<boolean>;
10765
11040
  readonly searchedItems: _angular_core.Signal<TreeAggregationNode[] | {
@@ -10800,7 +11075,7 @@ declare class AggregationTreeComponent {
10800
11075
  private expandItems;
10801
11076
  private traverse;
10802
11077
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AggregationTreeComponent, never>;
10803
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<AggregationTreeComponent, "AggregationTree, aggregation-tree, aggregationtree", never, { "class": { "alias": "class"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": true; "isSignal": true; }; "column": { "alias": "column"; "required": true; "isSignal": true; }; "collapsible": { "alias": "collapsible"; "required": false; "isSignal": true; }; "collapsed": { "alias": "collapsed"; "required": false; "isSignal": true; }; "searchable": { "alias": "searchable"; "required": false; "isSignal": true; }; "showFiltersCount": { "alias": "showFiltersCount"; "required": false; "isSignal": true; }; "expandedLevel": { "alias": "expandedLevel"; "required": false; "isSignal": true; }; "syncUrl": { "alias": "syncUrl"; "required": false; "isSignal": true; }; "searchText": { "alias": "searchText"; "required": false; "isSignal": true; }; }, { "onSelect": "onSelect"; "onApply": "onApply"; "onClear": "onClear"; "searchText": "searchTextChange"; }, never, never, true, never>;
11078
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AggregationTreeComponent, "AggregationTree, aggregation-tree, aggregationtree", never, { "class": { "alias": "class"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": true; "isSignal": true; }; "column": { "alias": "column"; "required": true; "isSignal": true; }; "collapsible": { "alias": "collapsible"; "required": false; "isSignal": true; }; "collapsed": { "alias": "collapsed"; "required": false; "isSignal": true; }; "searchable": { "alias": "searchable"; "required": false; "isSignal": true; }; "showFiltersCount": { "alias": "showFiltersCount"; "required": false; "isSignal": true; }; "showCheckbox": { "alias": "showCheckbox"; "required": false; "isSignal": true; }; "expandedLevel": { "alias": "expandedLevel"; "required": false; "isSignal": true; }; "syncUrl": { "alias": "syncUrl"; "required": false; "isSignal": true; }; "controlledQuery": { "alias": "query"; "required": false; "isSignal": true; }; "controlledAggregation": { "alias": "aggregation"; "required": false; "isSignal": true; }; "controlledSelection": { "alias": "selection"; "required": false; "isSignal": true; }; "itemTemplateInput": { "alias": "itemTemplate"; "required": false; "isSignal": true; }; "searchText": { "alias": "searchText"; "required": false; "isSignal": true; }; }, { "onSelect": "onSelect"; "onApply": "onApply"; "onClear": "onClear"; "selectionChange": "selectionChange"; "filtersChange": "filtersChange"; "searchText": "searchTextChange"; }, ["itemDirective"], never, true, never>;
10804
11079
  }
10805
11080
 
10806
11081
  declare class AggregationListComponent {
@@ -10813,6 +11088,14 @@ declare class AggregationListComponent {
10813
11088
  collapsed: _angular_core.InputSignal<boolean>;
10814
11089
  searchable: _angular_core.InputSignal<boolean | undefined>;
10815
11090
  showFiltersCount: _angular_core.InputSignalWithTransform<boolean | null, unknown>;
11091
+ /**
11092
+ * Whether to render the per-item checkbox. When `false`, the checkbox is hidden
11093
+ * but selection still toggles on row click — pair it with a custom `aggregationItem`
11094
+ * template that reflects the `selected` context to convey selection.
11095
+ *
11096
+ * @default true
11097
+ */
11098
+ showCheckbox: _angular_core.InputSignalWithTransform<boolean, unknown>;
10816
11099
  /**
10817
11100
  * When `false`, applying or clearing filters updates the store without
10818
11101
  * synchronizing the URL (no browser history entry, not shareable/restorable).
@@ -10820,14 +11103,61 @@ declare class AggregationListComponent {
10820
11103
  * @default true
10821
11104
  */
10822
11105
  syncUrl: _angular_core.InputSignalWithTransform<boolean, unknown>;
11106
+ /**
11107
+ * Controlled query. When set, the component's own operations (load-more,
11108
+ * search-within-facet) run against this query instead of reading the shared
11109
+ * `QueryParamsStore`. Use to target a query not tied to the current app,
11110
+ * without mutating the shared store or the URL.
11111
+ *
11112
+ * @default undefined — read `QueryParamsStore.getQuery()` (current behavior)
11113
+ */
11114
+ controlledQuery: _angular_core.InputSignal<Query | undefined>;
11115
+ /**
11116
+ * Controlled data. When set, the component renders this aggregation object
11117
+ * instead of reading it from the shared `AggregationsStore`.
11118
+ *
11119
+ * @default undefined — read `AggregationsStore` (current behavior)
11120
+ */
11121
+ controlledAggregation: _angular_core.InputSignal<Aggregation | undefined>;
11122
+ /**
11123
+ * Controlled selection. When set, item `$selected` state is derived from this
11124
+ * value instead of the shared `QueryParamsStore` filters.
11125
+ *
11126
+ * @default undefined — derive from `QueryParamsStore` filters (current behavior)
11127
+ */
11128
+ controlledSelection: _angular_core.InputSignal<AggregationSelection | undefined>;
10823
11129
  onSelect: _angular_core.OutputEmitterRef<AggregationItem[]>;
10824
11130
  onApply: _angular_core.OutputEmitterRef<void>;
10825
11131
  onClear: _angular_core.OutputEmitterRef<void>;
11132
+ /**
11133
+ * Emits the new selection (item values) when the user applies or clears
11134
+ * filters in controlled mode. The counterpart of the `[selection]` input —
11135
+ * emitted before `filtersChange` and `onApply`/`onClear`. In controlled mode
11136
+ * this is the only way changes surface: nothing is written to the shared
11137
+ * stores or the URL.
11138
+ */
11139
+ selectionChange: _angular_core.OutputEmitterRef<AggregationSelection>;
11140
+ /**
11141
+ * Emits the applied selection as a structured `Filter` (the exact filter the
11142
+ * default mode would write to the store), ready for `fetchQuery({ filters })`.
11143
+ * `undefined` on clear. Controlled mode only — emitted after `selectionChange`,
11144
+ * before `onApply`/`onClear`.
11145
+ */
11146
+ filtersChange: _angular_core.OutputEmitterRef<Filter$2 | undefined>;
10826
11147
  scrollElement: _angular_core.Signal<ElementRef<HTMLDivElement> | undefined>;
11148
+ protected readonly itemDirective: _angular_core.Signal<AggregationItemDirective | undefined>;
11149
+ /**
11150
+ * Item content template relayed by the `<Aggregation>` wrapper (which cannot
11151
+ * project content into this component). Also usable directly as a `TemplateRef`
11152
+ * input. A directive projected straight onto this component takes precedence.
11153
+ */
11154
+ readonly itemTemplateInput: _angular_core.InputSignal<TemplateRef<AggregationItemContext> | undefined>;
11155
+ protected readonly resolvedItemTemplate: _angular_core.Signal<TemplateRef<AggregationItemContext> | undefined>;
10827
11156
  selection: _angular_core.WritableSignal<boolean>;
10828
11157
  isAllSelected: _angular_core.WritableSignal<boolean>;
10829
11158
  searchText: _angular_core.ModelSignal<string>;
10830
11159
  private readonly base;
11160
+ readonly isControlled: _angular_core.Signal<boolean>;
10831
11161
  readonly aggregationsStore: {
10832
11162
  aggregations: _angular_core.Signal<Aggregation[]>;
10833
11163
  update: (aggregations: Aggregation[]) => void;
@@ -10838,8 +11168,10 @@ declare class AggregationListComponent {
10838
11168
  aggregations: Aggregation[];
10839
11169
  }>;
10840
11170
  readonly queryParamsStore: {
10841
- name?: _angular_core.Signal<string | undefined> | undefined;
10842
11171
  text?: _angular_core.Signal<string | undefined> | undefined;
11172
+ aggregations?: _angular_core.Signal<string[] | Record<string, _sinequa_atomic.AggregationOptions> | undefined> | undefined;
11173
+ name?: _angular_core.Signal<string | undefined> | undefined;
11174
+ sort?: _angular_core.Signal<string | undefined> | undefined;
10843
11175
  action?: _angular_core.Signal<"" | "open" | "search" | "aggregate" | undefined> | undefined;
10844
11176
  select?: _angular_core.Signal<_sinequa_atomic.Select[] | undefined> | undefined;
10845
11177
  open?: _angular_core.Signal<_sinequa_atomic.Open[] | undefined> | undefined;
@@ -10847,7 +11179,6 @@ declare class AggregationListComponent {
10847
11179
  pageSize?: _angular_core.Signal<number | undefined> | undefined;
10848
11180
  tab?: _angular_core.Signal<string | undefined> | undefined;
10849
11181
  scope?: _angular_core.Signal<string | undefined> | undefined;
10850
- sort?: _angular_core.Signal<string | undefined> | undefined;
10851
11182
  basket?: _angular_core.Signal<string | undefined> | undefined;
10852
11183
  isFirstPage?: _angular_core.Signal<boolean | undefined> | undefined;
10853
11184
  strictRefine?: _angular_core.Signal<boolean | undefined> | undefined;
@@ -10861,7 +11192,6 @@ declare class AggregationListComponent {
10861
11192
  relevanceTransforms?: _angular_core.Signal<string | undefined> | undefined;
10862
11193
  removeDuplicates?: _angular_core.Signal<boolean | undefined> | undefined;
10863
11194
  queryId?: _angular_core.Signal<string | undefined> | undefined;
10864
- aggregations?: _angular_core.Signal<string[] | Record<string, _sinequa_atomic.AggregationOptions> | undefined> | undefined;
10865
11195
  orderBy?: _angular_core.Signal<string | undefined> | undefined;
10866
11196
  groupBy?: _angular_core.Signal<string | undefined> | undefined;
10867
11197
  neuralSearch?: _angular_core.Signal<boolean | undefined> | undefined;
@@ -10905,10 +11235,12 @@ declare class AggregationListComponent {
10905
11235
  }) => Partial<LegacyFilter & {
10906
11236
  count: number;
10907
11237
  }> | null;
10908
- getQuery: () => _sinequa_atomic.Query;
11238
+ getQuery: () => Query;
10909
11239
  } & _ngrx_signals.StateSource<{
10910
- name?: string | undefined;
10911
11240
  text?: string | undefined;
11241
+ aggregations?: (Record<string, _sinequa_atomic.AggregationOptions> | string[]) | undefined;
11242
+ name?: string | undefined;
11243
+ sort?: string | undefined;
10912
11244
  action?: "" | "search" | "open" | "aggregate" | undefined;
10913
11245
  select?: _sinequa_atomic.Select[] | undefined;
10914
11246
  open?: _sinequa_atomic.Open[] | undefined;
@@ -10916,7 +11248,6 @@ declare class AggregationListComponent {
10916
11248
  pageSize?: number | undefined;
10917
11249
  tab?: string | undefined;
10918
11250
  scope?: string | undefined;
10919
- sort?: string | undefined;
10920
11251
  basket?: string | undefined;
10921
11252
  isFirstPage?: boolean | undefined;
10922
11253
  strictRefine?: boolean | undefined;
@@ -10930,7 +11261,6 @@ declare class AggregationListComponent {
10930
11261
  relevanceTransforms?: string | undefined;
10931
11262
  removeDuplicates?: boolean | undefined;
10932
11263
  queryId?: string | undefined;
10933
- aggregations?: (Record<string, _sinequa_atomic.AggregationOptions> | string[]) | undefined;
10934
11264
  orderBy?: string | undefined;
10935
11265
  groupBy?: string | undefined;
10936
11266
  neuralSearch?: boolean | undefined;
@@ -11259,14 +11589,14 @@ declare class AggregationListComponent {
11259
11589
  readonly suggests: _angular_core.WritableSignal<_sinequa_atomic.Suggestion[]>;
11260
11590
  readonly hasFilters: _angular_core.Signal<boolean>;
11261
11591
  readonly filtersCount: _angular_core.Signal<number>;
11262
- readonly query: _sinequa_atomic.Query;
11592
+ readonly query: Query;
11263
11593
  readonly filters: _angular_core.WritableSignal<LegacyFilter[]>;
11264
11594
  readonly showCount: _angular_core.Signal<boolean>;
11265
11595
  readonly quickFilter: _angular_core.Signal<boolean | undefined>;
11266
11596
  readonly isDate: _angular_core.Signal<boolean>;
11267
11597
  private readonly cdr;
11268
11598
  readonly virtualizer: _tanstack_angular_virtual.AngularVirtualizer<HTMLDivElement, Element>;
11269
- aggregation: _angular_core.Signal<_sinequa_atomic_angular.AggEx | null>;
11599
+ aggregation: _angular_core.Signal<AggEx | null>;
11270
11600
  items: _angular_core.Signal<AggregationListItem[]>;
11271
11601
  isEmpty: _angular_core.Signal<boolean>;
11272
11602
  searchedItems: _angular_core.Signal<AggregationItem[]>;
@@ -11284,7 +11614,7 @@ declare class AggregationListComponent {
11284
11614
  protected getFilters(): LegacyFilter[];
11285
11615
  private addCurrentFiltersToItems;
11286
11616
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AggregationListComponent, never>;
11287
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<AggregationListComponent, "AggregationList, aggregation-list, aggregationlist", never, { "class": { "alias": "class"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": true; "isSignal": true; }; "column": { "alias": "column"; "required": true; "isSignal": true; }; "collapsible": { "alias": "collapsible"; "required": false; "isSignal": true; }; "collapsed": { "alias": "collapsed"; "required": false; "isSignal": true; }; "searchable": { "alias": "searchable"; "required": false; "isSignal": true; }; "showFiltersCount": { "alias": "showFiltersCount"; "required": false; "isSignal": true; }; "syncUrl": { "alias": "syncUrl"; "required": false; "isSignal": true; }; "searchText": { "alias": "searchText"; "required": false; "isSignal": true; }; }, { "onSelect": "onSelect"; "onApply": "onApply"; "onClear": "onClear"; "searchText": "searchTextChange"; }, never, never, true, never>;
11617
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AggregationListComponent, "AggregationList, aggregation-list, aggregationlist", never, { "class": { "alias": "class"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": true; "isSignal": true; }; "column": { "alias": "column"; "required": true; "isSignal": true; }; "collapsible": { "alias": "collapsible"; "required": false; "isSignal": true; }; "collapsed": { "alias": "collapsed"; "required": false; "isSignal": true; }; "searchable": { "alias": "searchable"; "required": false; "isSignal": true; }; "showFiltersCount": { "alias": "showFiltersCount"; "required": false; "isSignal": true; }; "showCheckbox": { "alias": "showCheckbox"; "required": false; "isSignal": true; }; "syncUrl": { "alias": "syncUrl"; "required": false; "isSignal": true; }; "controlledQuery": { "alias": "query"; "required": false; "isSignal": true; }; "controlledAggregation": { "alias": "aggregation"; "required": false; "isSignal": true; }; "controlledSelection": { "alias": "selection"; "required": false; "isSignal": true; }; "itemTemplateInput": { "alias": "itemTemplate"; "required": false; "isSignal": true; }; "searchText": { "alias": "searchText"; "required": false; "isSignal": true; }; }, { "onSelect": "onSelect"; "onApply": "onApply"; "onClear": "onClear"; "selectionChange": "selectionChange"; "filtersChange": "filtersChange"; "searchText": "searchTextChange"; }, ["itemDirective"], never, true, never>;
11288
11618
  }
11289
11619
 
11290
11620
  /**
@@ -11494,8 +11824,8 @@ declare class AggregationComponent {
11494
11824
  isDateColumn: (column: string) => boolean;
11495
11825
  isTabSearch: (queryName: string) => boolean;
11496
11826
  getAggregationCount: (queryName: string | undefined, aggregationName: string) => number;
11497
- getAuthorizedFilters: () => _sinequa_atomic.Aggregation[];
11498
- getAuthorized: (filters: Pick<_sinequa_atomic_angular.CFilter, "column" | "name">[]) => _sinequa_atomic.Aggregation[];
11827
+ getAuthorizedFilters: () => Aggregation[];
11828
+ getAuthorized: (filters: Pick<_sinequa_atomic_angular.CFilter, "column" | "name">[]) => Aggregation[];
11499
11829
  getNamedCustomizationJson: (name: string) => unknown | undefined;
11500
11830
  getAggregationIcon: (column: string) => string | undefined;
11501
11831
  getAggregationItemsCustomization: (column: string) => _sinequa_atomic_angular.CFilterItem[] | undefined;
@@ -11620,18 +11950,24 @@ declare class AggregationComponent {
11620
11950
  columnMap?: Record<string, _sinequa_atomic.CCColumn> | undefined;
11621
11951
  }>;
11622
11952
  aggregationsStore: {
11623
- aggregations: _angular_core.Signal<_sinequa_atomic.Aggregation[]>;
11624
- update: (aggregations: _sinequa_atomic.Aggregation[]) => void;
11625
- updateAggregation: (aggregation: _sinequa_atomic.Aggregation) => void;
11953
+ aggregations: _angular_core.Signal<Aggregation[]>;
11954
+ update: (aggregations: Aggregation[]) => void;
11955
+ updateAggregation: (aggregation: Aggregation) => void;
11626
11956
  clear: () => void;
11627
- getAggregation: (name: string, kind?: "column" | "name") => _sinequa_atomic.Aggregation | undefined;
11957
+ getAggregation: (name: string, kind?: "column" | "name") => Aggregation | undefined;
11628
11958
  } & _ngrx_signals.StateSource<{
11629
- aggregations: _sinequa_atomic.Aggregation[];
11959
+ aggregations: Aggregation[];
11630
11960
  }>;
11631
11961
  aggregationsService: AggregationsService;
11632
11962
  aggregationDate: _angular_core.Signal<AggregationDateComponent | undefined>;
11633
11963
  aggregationTree: _angular_core.Signal<AggregationTreeComponent | undefined>;
11634
11964
  aggregationList: _angular_core.Signal<AggregationListComponent | undefined>;
11965
+ /**
11966
+ * Host-projected `<ng-template aggregationItem>`, relayed to the active list/tree
11967
+ * sub-component (the wrapper has no `<ng-content>`, so the sub-component's own
11968
+ * `contentChild` cannot see it). See {@link AggregationItemDirective}.
11969
+ */
11970
+ protected readonly itemDirective: _angular_core.Signal<AggregationItemDirective | undefined>;
11635
11971
  class: _angular_core.InputSignal<string>;
11636
11972
  /**
11637
11973
  * The name of the <details> element. When you provide the same id, the component work as an accordion
@@ -11675,6 +12011,13 @@ declare class AggregationComponent {
11675
12011
  * "Undefined" and not "false" because this input overrides the custom json settings
11676
12012
  */
11677
12013
  searchable: _angular_core.InputSignal<undefined>;
12014
+ /**
12015
+ * Whether to render the per-item checkbox (list/tree). When `false`, the checkbox
12016
+ * is hidden but selection still toggles on row click. Ignored by the date variant.
12017
+ *
12018
+ * @default true
12019
+ */
12020
+ showCheckbox: _angular_core.InputSignalWithTransform<boolean, unknown>;
11678
12021
  expandedLevel: _angular_core.InputSignalWithTransform<number | undefined, unknown>;
11679
12022
  /**
11680
12023
  * Controls whether applying or clearing a filter synchronizes the URL.
@@ -11686,12 +12029,64 @@ declare class AggregationComponent {
11686
12029
  * @default true
11687
12030
  */
11688
12031
  syncUrl: _angular_core.InputSignalWithTransform<boolean, unknown>;
12032
+ /**
12033
+ * Controlled query. When set, the aggregation's own operations (load-more,
12034
+ * search-within-facet, tree-expand) run against this query instead of reading
12035
+ * the shared `QueryParamsStore`. Use to target a query not tied to the current
12036
+ * app, without mutating the shared store or the URL.
12037
+ *
12038
+ * @default undefined — read `QueryParamsStore.getQuery()` (current behavior)
12039
+ */
12040
+ controlledQuery: _angular_core.InputSignal<Query | undefined>;
12041
+ /**
12042
+ * Controlled data. When set, the component renders this aggregation object
12043
+ * (name/column/items) instead of reading it from the shared `AggregationsStore`.
12044
+ *
12045
+ * @default undefined — read `AggregationsStore` (current behavior)
12046
+ */
12047
+ controlledAggregation: _angular_core.InputSignal<Aggregation | undefined>;
12048
+ /**
12049
+ * Controlled selection. When set, item `$selected` state is derived from this
12050
+ * value (list: item values; tree: `"/A/B/*"` paths; date: the range) instead
12051
+ * of the shared `QueryParamsStore` filters.
12052
+ *
12053
+ * @default undefined — derive from `QueryParamsStore` filters (current behavior)
12054
+ */
12055
+ controlledSelection: _angular_core.InputSignal<AggregationSelection | undefined>;
12056
+ /**
12057
+ * Which sub-component renders the aggregation.
12058
+ *
12059
+ * `"auto"` (default) keeps the current heuristic: a date column of the app
12060
+ * (`AppStore.isDateColumn`) renders `<AggregationDate>`, a tree aggregation
12061
+ * renders `<AggregationTree>`, anything else `<AggregationList>`. Set an
12062
+ * explicit value in controlled mode when the heuristic cannot apply — e.g. a
12063
+ * date facet of a query not attached to the current app, whose column is
12064
+ * unknown to the app's column map.
12065
+ *
12066
+ * @default "auto"
12067
+ */
12068
+ type: _angular_core.InputSignal<"auto" | "list" | "tree" | "date">;
11689
12069
  /**
11690
12070
  * An output event that emits an array of selected `AggregationItem` objects when the user selects items in the aggregation component. This allows parent components to listen for selection changes and react accordingly, such as applying filters or updating the UI based on the selected items.
11691
12071
  */
11692
12072
  onSelect: _angular_core.OutputEmitterRef<AggregationItem[]>;
11693
12073
  onApply: _angular_core.OutputEmitterRef<void>;
11694
12074
  onClear: _angular_core.OutputEmitterRef<void>;
12075
+ /**
12076
+ * Emits the new selection when the user applies or clears filters in
12077
+ * controlled mode (list: item values; tree: `"/A/B/*"` paths; date: option or
12078
+ * range). The counterpart of the `[selection]` input — emitted before
12079
+ * `filtersChange` and `onApply`/`onClear`. In controlled mode this is the only
12080
+ * way changes surface: nothing is written to the shared stores or the URL.
12081
+ */
12082
+ selectionChange: _angular_core.OutputEmitterRef<AggregationSelection>;
12083
+ /**
12084
+ * Emits the applied selection as a structured `Filter` (the exact filter the
12085
+ * default mode would write to the store), ready for `fetchQuery({ filters })`.
12086
+ * `undefined` on clear. Controlled mode only — emitted after `selectionChange`,
12087
+ * before `onApply`/`onClear`.
12088
+ */
12089
+ filtersChange: _angular_core.OutputEmitterRef<Filter$2 | undefined>;
11695
12090
  /**
11696
12091
  * A computed property that retrieves the items to be displayed in the aggregation component. It checks for the presence of date, tree, or list aggregation components and returns their respective items. If none of these components are present, it returns an empty array. This allows the component to dynamically display the appropriate items based on the type of aggregation being rendered.
11697
12092
  *
@@ -11704,7 +12099,12 @@ declare class AggregationComponent {
11704
12099
  * @returns An array of selected items from the aggregation component.
11705
12100
  */
11706
12101
  protected selectedItems: _angular_core.Signal<AggregationItem[]>;
11707
- protected aggregation: _angular_core.Signal<_sinequa_atomic_angular.AggEx | undefined>;
12102
+ protected aggregation: _angular_core.Signal<Aggregation | undefined>;
12103
+ /**
12104
+ * The sub-component to render: the explicit `type` input, or the current
12105
+ * date/tree/list heuristic when `type` is `"auto"`.
12106
+ */
12107
+ protected resolvedType: _angular_core.Signal<"list" | "tree" | "date">;
11708
12108
  /**
11709
12109
  * Checks if the specified column is a date filter.
11710
12110
  *
@@ -11713,7 +12113,7 @@ declare class AggregationComponent {
11713
12113
  */
11714
12114
  protected isDate(column: string | undefined): boolean;
11715
12115
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AggregationComponent, never>;
11716
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<AggregationComponent, "Aggregation, aggregation", never, { "class": { "alias": "class"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": true; "isSignal": true; }; "column": { "alias": "column"; "required": true; "isSignal": true; }; "showFiltersCount": { "alias": "showFiltersCount"; "required": false; "isSignal": true; }; "collapsible": { "alias": "collapsible"; "required": false; "isSignal": true; }; "collapsed": { "alias": "collapsed"; "required": false; "isSignal": true; }; "searchable": { "alias": "searchable"; "required": false; "isSignal": true; }; "expandedLevel": { "alias": "expandedLevel"; "required": false; "isSignal": true; }; "syncUrl": { "alias": "syncUrl"; "required": false; "isSignal": true; }; }, { "onSelect": "onSelect"; "onApply": "onApply"; "onClear": "onClear"; }, never, never, true, never>;
12116
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AggregationComponent, "Aggregation, aggregation", never, { "class": { "alias": "class"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": true; "isSignal": true; }; "column": { "alias": "column"; "required": true; "isSignal": true; }; "showFiltersCount": { "alias": "showFiltersCount"; "required": false; "isSignal": true; }; "collapsible": { "alias": "collapsible"; "required": false; "isSignal": true; }; "collapsed": { "alias": "collapsed"; "required": false; "isSignal": true; }; "searchable": { "alias": "searchable"; "required": false; "isSignal": true; }; "showCheckbox": { "alias": "showCheckbox"; "required": false; "isSignal": true; }; "expandedLevel": { "alias": "expandedLevel"; "required": false; "isSignal": true; }; "syncUrl": { "alias": "syncUrl"; "required": false; "isSignal": true; }; "controlledQuery": { "alias": "query"; "required": false; "isSignal": true; }; "controlledAggregation": { "alias": "aggregation"; "required": false; "isSignal": true; }; "controlledSelection": { "alias": "selection"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; }, { "onSelect": "onSelect"; "onApply": "onApply"; "onClear": "onClear"; "selectionChange": "selectionChange"; "filtersChange": "filtersChange"; }, ["itemDirective"], never, true, never>;
11717
12117
  }
11718
12118
 
11719
12119
  declare class AggregationPanelComponent {
@@ -11781,7 +12181,7 @@ declare class FilterButtonComponent {
11781
12181
  position: _angular_core.InputSignal<Placement>;
11782
12182
  offset: _angular_core.InputSignal<number>;
11783
12183
  expandedLevel: _angular_core.InputSignalWithTransform<number | undefined, unknown>;
11784
- protected variant: _angular_core.WritableSignal<"default" | "icon" | "primary" | "secondary" | "destructive" | "ai" | "outline" | "none" | "link" | "accent" | "tertiary" | "ghost" | "light-accent" | null | undefined>;
12184
+ protected variant: _angular_core.WritableSignal<"icon" | "default" | "none" | "primary" | "secondary" | "destructive" | "ai" | "link" | "outline" | "accent" | "tertiary" | "ghost" | "light-accent" | null | undefined>;
11785
12185
  protected filter: _angular_core.WritableSignal<CFilterEx>;
11786
12186
  popoverRef: _angular_core.Signal<PopoverComponent | undefined>;
11787
12187
  protected nativeElement: any;
@@ -11795,8 +12195,10 @@ declare class FilterButtonComponent {
11795
12195
  aggregations: _sinequa_atomic.Aggregation[];
11796
12196
  }>;
11797
12197
  protected queryParamsStore: {
11798
- name?: _angular_core.Signal<string | undefined> | undefined;
11799
12198
  text?: _angular_core.Signal<string | undefined> | undefined;
12199
+ aggregations?: _angular_core.Signal<string[] | Record<string, _sinequa_atomic.AggregationOptions> | undefined> | undefined;
12200
+ name?: _angular_core.Signal<string | undefined> | undefined;
12201
+ sort?: _angular_core.Signal<string | undefined> | undefined;
11800
12202
  action?: _angular_core.Signal<"" | "open" | "search" | "aggregate" | undefined> | undefined;
11801
12203
  select?: _angular_core.Signal<_sinequa_atomic.Select[] | undefined> | undefined;
11802
12204
  open?: _angular_core.Signal<_sinequa_atomic.Open[] | undefined> | undefined;
@@ -11804,7 +12206,6 @@ declare class FilterButtonComponent {
11804
12206
  pageSize?: _angular_core.Signal<number | undefined> | undefined;
11805
12207
  tab?: _angular_core.Signal<string | undefined> | undefined;
11806
12208
  scope?: _angular_core.Signal<string | undefined> | undefined;
11807
- sort?: _angular_core.Signal<string | undefined> | undefined;
11808
12209
  basket?: _angular_core.Signal<string | undefined> | undefined;
11809
12210
  isFirstPage?: _angular_core.Signal<boolean | undefined> | undefined;
11810
12211
  strictRefine?: _angular_core.Signal<boolean | undefined> | undefined;
@@ -11818,7 +12219,6 @@ declare class FilterButtonComponent {
11818
12219
  relevanceTransforms?: _angular_core.Signal<string | undefined> | undefined;
11819
12220
  removeDuplicates?: _angular_core.Signal<boolean | undefined> | undefined;
11820
12221
  queryId?: _angular_core.Signal<string | undefined> | undefined;
11821
- aggregations?: _angular_core.Signal<string[] | Record<string, _sinequa_atomic.AggregationOptions> | undefined> | undefined;
11822
12222
  orderBy?: _angular_core.Signal<string | undefined> | undefined;
11823
12223
  groupBy?: _angular_core.Signal<string | undefined> | undefined;
11824
12224
  neuralSearch?: _angular_core.Signal<boolean | undefined> | undefined;
@@ -11864,8 +12264,10 @@ declare class FilterButtonComponent {
11864
12264
  }> | null;
11865
12265
  getQuery: () => _sinequa_atomic.Query;
11866
12266
  } & _ngrx_signals.StateSource<{
11867
- name?: string | undefined;
11868
12267
  text?: string | undefined;
12268
+ aggregations?: (Record<string, _sinequa_atomic.AggregationOptions> | string[]) | undefined;
12269
+ name?: string | undefined;
12270
+ sort?: string | undefined;
11869
12271
  action?: "" | "search" | "open" | "aggregate" | undefined;
11870
12272
  select?: _sinequa_atomic.Select[] | undefined;
11871
12273
  open?: _sinequa_atomic.Open[] | undefined;
@@ -11873,7 +12275,6 @@ declare class FilterButtonComponent {
11873
12275
  pageSize?: number | undefined;
11874
12276
  tab?: string | undefined;
11875
12277
  scope?: string | undefined;
11876
- sort?: string | undefined;
11877
12278
  basket?: string | undefined;
11878
12279
  isFirstPage?: boolean | undefined;
11879
12280
  strictRefine?: boolean | undefined;
@@ -11887,7 +12288,6 @@ declare class FilterButtonComponent {
11887
12288
  relevanceTransforms?: string | undefined;
11888
12289
  removeDuplicates?: boolean | undefined;
11889
12290
  queryId?: string | undefined;
11890
- aggregations?: (Record<string, _sinequa_atomic.AggregationOptions> | string[]) | undefined;
11891
12291
  orderBy?: string | undefined;
11892
12292
  groupBy?: string | undefined;
11893
12293
  neuralSearch?: boolean | undefined;
@@ -12539,8 +12939,10 @@ declare class MoreButtonComponent {
12539
12939
  columnMap?: Record<string, _sinequa_atomic.CCColumn> | undefined;
12540
12940
  }>;
12541
12941
  queryParamsStore: {
12542
- name?: _angular_core.Signal<string | undefined> | undefined;
12543
12942
  text?: _angular_core.Signal<string | undefined> | undefined;
12943
+ aggregations?: _angular_core.Signal<string[] | Record<string, _sinequa_atomic.AggregationOptions> | undefined> | undefined;
12944
+ name?: _angular_core.Signal<string | undefined> | undefined;
12945
+ sort?: _angular_core.Signal<string | undefined> | undefined;
12544
12946
  action?: _angular_core.Signal<"" | "open" | "search" | "aggregate" | undefined> | undefined;
12545
12947
  select?: _angular_core.Signal<_sinequa_atomic.Select[] | undefined> | undefined;
12546
12948
  open?: _angular_core.Signal<_sinequa_atomic.Open[] | undefined> | undefined;
@@ -12548,7 +12950,6 @@ declare class MoreButtonComponent {
12548
12950
  pageSize?: _angular_core.Signal<number | undefined> | undefined;
12549
12951
  tab?: _angular_core.Signal<string | undefined> | undefined;
12550
12952
  scope?: _angular_core.Signal<string | undefined> | undefined;
12551
- sort?: _angular_core.Signal<string | undefined> | undefined;
12552
12953
  basket?: _angular_core.Signal<string | undefined> | undefined;
12553
12954
  isFirstPage?: _angular_core.Signal<boolean | undefined> | undefined;
12554
12955
  strictRefine?: _angular_core.Signal<boolean | undefined> | undefined;
@@ -12562,7 +12963,6 @@ declare class MoreButtonComponent {
12562
12963
  relevanceTransforms?: _angular_core.Signal<string | undefined> | undefined;
12563
12964
  removeDuplicates?: _angular_core.Signal<boolean | undefined> | undefined;
12564
12965
  queryId?: _angular_core.Signal<string | undefined> | undefined;
12565
- aggregations?: _angular_core.Signal<string[] | Record<string, _sinequa_atomic.AggregationOptions> | undefined> | undefined;
12566
12966
  orderBy?: _angular_core.Signal<string | undefined> | undefined;
12567
12967
  groupBy?: _angular_core.Signal<string | undefined> | undefined;
12568
12968
  neuralSearch?: _angular_core.Signal<boolean | undefined> | undefined;
@@ -12608,8 +13008,10 @@ declare class MoreButtonComponent {
12608
13008
  }> | null;
12609
13009
  getQuery: () => _sinequa_atomic.Query;
12610
13010
  } & _ngrx_signals.StateSource<{
12611
- name?: string | undefined;
12612
13011
  text?: string | undefined;
13012
+ aggregations?: (Record<string, _sinequa_atomic.AggregationOptions> | string[]) | undefined;
13013
+ name?: string | undefined;
13014
+ sort?: string | undefined;
12613
13015
  action?: "" | "search" | "open" | "aggregate" | undefined;
12614
13016
  select?: _sinequa_atomic.Select[] | undefined;
12615
13017
  open?: _sinequa_atomic.Open[] | undefined;
@@ -12617,7 +13019,6 @@ declare class MoreButtonComponent {
12617
13019
  pageSize?: number | undefined;
12618
13020
  tab?: string | undefined;
12619
13021
  scope?: string | undefined;
12620
- sort?: string | undefined;
12621
13022
  basket?: string | undefined;
12622
13023
  isFirstPage?: boolean | undefined;
12623
13024
  strictRefine?: boolean | undefined;
@@ -12631,7 +13032,6 @@ declare class MoreButtonComponent {
12631
13032
  relevanceTransforms?: string | undefined;
12632
13033
  removeDuplicates?: boolean | undefined;
12633
13034
  queryId?: string | undefined;
12634
- aggregations?: (Record<string, _sinequa_atomic.AggregationOptions> | string[]) | undefined;
12635
13035
  orderBy?: string | undefined;
12636
13036
  groupBy?: string | undefined;
12637
13037
  neuralSearch?: boolean | undefined;
@@ -12782,13 +13182,7 @@ declare class FiltersBarComponent {
12782
13182
  alt?: string;
12783
13183
  light?: {
12784
13184
  small?: string;
12785
- large? /**
12786
- * Filters that should be included from the filters bar.
12787
- * Providing it will hide any filters not contained in this list.
12788
- *
12789
- * Use the filter column names to specify which filters to include.
12790
- * For example, to include the "geo" filter, set `includeFilters = ['Geo']`.
12791
- */: string;
13185
+ large?: string;
12792
13186
  sidebar?: string;
12793
13187
  };
12794
13188
  dark?: {
@@ -12852,13 +13246,7 @@ declare class FiltersBarComponent {
12852
13246
  alt?: string;
12853
13247
  light?: {
12854
13248
  small?: string;
12855
- large? /**
12856
- * Filters that should be included from the filters bar.
12857
- * Providing it will hide any filters not contained in this list.
12858
- *
12859
- * Use the filter column names to specify which filters to include.
12860
- * For example, to include the "geo" filter, set `includeFilters = ['Geo']`.
12861
- */: string;
13249
+ large?: string;
12862
13250
  sidebar?: string;
12863
13251
  };
12864
13252
  dark?: {
@@ -12992,13 +13380,7 @@ declare class FiltersBarComponent {
12992
13380
  alt?: string;
12993
13381
  light?: {
12994
13382
  small?: string;
12995
- large? /**
12996
- * Filters that should be included from the filters bar.
12997
- * Providing it will hide any filters not contained in this list.
12998
- *
12999
- * Use the filter column names to specify which filters to include.
13000
- * For example, to include the "geo" filter, set `includeFilters = ['Geo']`.
13001
- */: string;
13383
+ large?: string;
13002
13384
  sidebar?: string;
13003
13385
  };
13004
13386
  dark?: {
@@ -13064,8 +13446,10 @@ declare class FiltersBarComponent {
13064
13446
  aggregations: Aggregation[];
13065
13447
  }>;
13066
13448
  protected queryParamsStore: {
13067
- name?: _angular_core.Signal<string | undefined> | undefined;
13068
13449
  text?: _angular_core.Signal<string | undefined> | undefined;
13450
+ aggregations?: _angular_core.Signal<string[] | Record<string, _sinequa_atomic.AggregationOptions> | undefined> | undefined;
13451
+ name?: _angular_core.Signal<string | undefined> | undefined;
13452
+ sort?: _angular_core.Signal<string | undefined> | undefined;
13069
13453
  action?: _angular_core.Signal<"" | "open" | "search" | "aggregate" | undefined> | undefined;
13070
13454
  select?: _angular_core.Signal<_sinequa_atomic.Select[] | undefined> | undefined;
13071
13455
  open?: _angular_core.Signal<_sinequa_atomic.Open[] | undefined> | undefined;
@@ -13073,7 +13457,6 @@ declare class FiltersBarComponent {
13073
13457
  pageSize?: _angular_core.Signal<number | undefined> | undefined;
13074
13458
  tab?: _angular_core.Signal<string | undefined> | undefined;
13075
13459
  scope?: _angular_core.Signal<string | undefined> | undefined;
13076
- sort?: _angular_core.Signal<string | undefined> | undefined;
13077
13460
  basket?: _angular_core.Signal<string | undefined> | undefined;
13078
13461
  isFirstPage?: _angular_core.Signal<boolean | undefined> | undefined;
13079
13462
  strictRefine?: _angular_core.Signal<boolean | undefined> | undefined;
@@ -13087,7 +13470,6 @@ declare class FiltersBarComponent {
13087
13470
  relevanceTransforms?: _angular_core.Signal<string | undefined> | undefined;
13088
13471
  removeDuplicates?: _angular_core.Signal<boolean | undefined> | undefined;
13089
13472
  queryId?: _angular_core.Signal<string | undefined> | undefined;
13090
- aggregations?: _angular_core.Signal<string[] | Record<string, _sinequa_atomic.AggregationOptions> | undefined> | undefined;
13091
13473
  orderBy?: _angular_core.Signal<string | undefined> | undefined;
13092
13474
  groupBy?: _angular_core.Signal<string | undefined> | undefined;
13093
13475
  neuralSearch?: _angular_core.Signal<boolean | undefined> | undefined;
@@ -13133,8 +13515,10 @@ declare class FiltersBarComponent {
13133
13515
  }> | null;
13134
13516
  getQuery: () => _sinequa_atomic.Query;
13135
13517
  } & _ngrx_signals.StateSource<{
13136
- name?: string | undefined;
13137
13518
  text?: string | undefined;
13519
+ aggregations?: (Record<string, _sinequa_atomic.AggregationOptions> | string[]) | undefined;
13520
+ name?: string | undefined;
13521
+ sort?: string | undefined;
13138
13522
  action?: "" | "search" | "open" | "aggregate" | undefined;
13139
13523
  select?: _sinequa_atomic.Select[] | undefined;
13140
13524
  open?: _sinequa_atomic.Open[] | undefined;
@@ -13142,7 +13526,6 @@ declare class FiltersBarComponent {
13142
13526
  pageSize?: number | undefined;
13143
13527
  tab?: string | undefined;
13144
13528
  scope?: string | undefined;
13145
- sort?: string | undefined;
13146
13529
  basket?: string | undefined;
13147
13530
  isFirstPage?: boolean | undefined;
13148
13531
  strictRefine?: boolean | undefined;
@@ -13156,7 +13539,6 @@ declare class FiltersBarComponent {
13156
13539
  relevanceTransforms?: string | undefined;
13157
13540
  removeDuplicates?: boolean | undefined;
13158
13541
  queryId?: string | undefined;
13159
- aggregations?: (Record<string, _sinequa_atomic.AggregationOptions> | string[]) | undefined;
13160
13542
  orderBy?: string | undefined;
13161
13543
  groupBy?: string | undefined;
13162
13544
  neuralSearch?: boolean | undefined;
@@ -13582,8 +13964,10 @@ declare class MoreComponent {
13582
13964
  aggregations: Aggregation[];
13583
13965
  }>;
13584
13966
  queryParamsStore: {
13585
- name?: _angular_core.Signal<string | undefined> | undefined;
13586
13967
  text?: _angular_core.Signal<string | undefined> | undefined;
13968
+ aggregations?: _angular_core.Signal<string[] | Record<string, _sinequa_atomic.AggregationOptions> | undefined> | undefined;
13969
+ name?: _angular_core.Signal<string | undefined> | undefined;
13970
+ sort?: _angular_core.Signal<string | undefined> | undefined;
13587
13971
  action?: _angular_core.Signal<"" | "open" | "search" | "aggregate" | undefined> | undefined;
13588
13972
  select?: _angular_core.Signal<_sinequa_atomic.Select[] | undefined> | undefined;
13589
13973
  open?: _angular_core.Signal<_sinequa_atomic.Open[] | undefined> | undefined;
@@ -13591,7 +13975,6 @@ declare class MoreComponent {
13591
13975
  pageSize?: _angular_core.Signal<number | undefined> | undefined;
13592
13976
  tab?: _angular_core.Signal<string | undefined> | undefined;
13593
13977
  scope?: _angular_core.Signal<string | undefined> | undefined;
13594
- sort?: _angular_core.Signal<string | undefined> | undefined;
13595
13978
  basket?: _angular_core.Signal<string | undefined> | undefined;
13596
13979
  isFirstPage?: _angular_core.Signal<boolean | undefined> | undefined;
13597
13980
  strictRefine?: _angular_core.Signal<boolean | undefined> | undefined;
@@ -13605,7 +13988,6 @@ declare class MoreComponent {
13605
13988
  relevanceTransforms?: _angular_core.Signal<string | undefined> | undefined;
13606
13989
  removeDuplicates?: _angular_core.Signal<boolean | undefined> | undefined;
13607
13990
  queryId?: _angular_core.Signal<string | undefined> | undefined;
13608
- aggregations?: _angular_core.Signal<string[] | Record<string, _sinequa_atomic.AggregationOptions> | undefined> | undefined;
13609
13991
  orderBy?: _angular_core.Signal<string | undefined> | undefined;
13610
13992
  groupBy?: _angular_core.Signal<string | undefined> | undefined;
13611
13993
  neuralSearch?: _angular_core.Signal<boolean | undefined> | undefined;
@@ -13651,8 +14033,10 @@ declare class MoreComponent {
13651
14033
  }> | null;
13652
14034
  getQuery: () => _sinequa_atomic.Query;
13653
14035
  } & _ngrx_signals.StateSource<{
13654
- name?: string | undefined;
13655
14036
  text?: string | undefined;
14037
+ aggregations?: (Record<string, _sinequa_atomic.AggregationOptions> | string[]) | undefined;
14038
+ name?: string | undefined;
14039
+ sort?: string | undefined;
13656
14040
  action?: "" | "search" | "open" | "aggregate" | undefined;
13657
14041
  select?: _sinequa_atomic.Select[] | undefined;
13658
14042
  open?: _sinequa_atomic.Open[] | undefined;
@@ -13660,7 +14044,6 @@ declare class MoreComponent {
13660
14044
  pageSize?: number | undefined;
13661
14045
  tab?: string | undefined;
13662
14046
  scope?: string | undefined;
13663
- sort?: string | undefined;
13664
14047
  basket?: string | undefined;
13665
14048
  isFirstPage?: boolean | undefined;
13666
14049
  strictRefine?: boolean | undefined;
@@ -13674,7 +14057,6 @@ declare class MoreComponent {
13674
14057
  relevanceTransforms?: string | undefined;
13675
14058
  removeDuplicates?: boolean | undefined;
13676
14059
  queryId?: string | undefined;
13677
- aggregations?: (Record<string, _sinequa_atomic.AggregationOptions> | string[]) | undefined;
13678
14060
  orderBy?: string | undefined;
13679
14061
  groupBy?: string | undefined;
13680
14062
  neuralSearch?: boolean | undefined;
@@ -14293,8 +14675,10 @@ declare class RecentSearchesComponent {
14293
14675
  declare class SavedSearchDialog implements DialogInterface {
14294
14676
  private readonly savedSearchesService;
14295
14677
  protected readonly queryParamsStore: {
14296
- name?: _angular_core.Signal<string | undefined> | undefined;
14297
14678
  text?: _angular_core.Signal<string | undefined> | undefined;
14679
+ aggregations?: _angular_core.Signal<string[] | Record<string, _sinequa_atomic.AggregationOptions> | undefined> | undefined;
14680
+ name?: _angular_core.Signal<string | undefined> | undefined;
14681
+ sort?: _angular_core.Signal<string | undefined> | undefined;
14298
14682
  action?: _angular_core.Signal<"" | "open" | "search" | "aggregate" | undefined> | undefined;
14299
14683
  select?: _angular_core.Signal<_sinequa_atomic.Select[] | undefined> | undefined;
14300
14684
  open?: _angular_core.Signal<_sinequa_atomic.Open[] | undefined> | undefined;
@@ -14302,7 +14686,6 @@ declare class SavedSearchDialog implements DialogInterface {
14302
14686
  pageSize?: _angular_core.Signal<number | undefined> | undefined;
14303
14687
  tab?: _angular_core.Signal<string | undefined> | undefined;
14304
14688
  scope?: _angular_core.Signal<string | undefined> | undefined;
14305
- sort?: _angular_core.Signal<string | undefined> | undefined;
14306
14689
  basket?: _angular_core.Signal<string | undefined> | undefined;
14307
14690
  isFirstPage?: _angular_core.Signal<boolean | undefined> | undefined;
14308
14691
  strictRefine?: _angular_core.Signal<boolean | undefined> | undefined;
@@ -14316,7 +14699,6 @@ declare class SavedSearchDialog implements DialogInterface {
14316
14699
  relevanceTransforms?: _angular_core.Signal<string | undefined> | undefined;
14317
14700
  removeDuplicates?: _angular_core.Signal<boolean | undefined> | undefined;
14318
14701
  queryId?: _angular_core.Signal<string | undefined> | undefined;
14319
- aggregations?: _angular_core.Signal<string[] | Record<string, _sinequa_atomic.AggregationOptions> | undefined> | undefined;
14320
14702
  orderBy?: _angular_core.Signal<string | undefined> | undefined;
14321
14703
  groupBy?: _angular_core.Signal<string | undefined> | undefined;
14322
14704
  neuralSearch?: _angular_core.Signal<boolean | undefined> | undefined;
@@ -14362,8 +14744,10 @@ declare class SavedSearchDialog implements DialogInterface {
14362
14744
  }> | null;
14363
14745
  getQuery: () => _sinequa_atomic.Query;
14364
14746
  } & _ngrx_signals.StateSource<{
14365
- name?: string | undefined;
14366
14747
  text?: string | undefined;
14748
+ aggregations?: (Record<string, _sinequa_atomic.AggregationOptions> | string[]) | undefined;
14749
+ name?: string | undefined;
14750
+ sort?: string | undefined;
14367
14751
  action?: "" | "search" | "open" | "aggregate" | undefined;
14368
14752
  select?: _sinequa_atomic.Select[] | undefined;
14369
14753
  open?: _sinequa_atomic.Open[] | undefined;
@@ -14371,7 +14755,6 @@ declare class SavedSearchDialog implements DialogInterface {
14371
14755
  pageSize?: number | undefined;
14372
14756
  tab?: string | undefined;
14373
14757
  scope?: string | undefined;
14374
- sort?: string | undefined;
14375
14758
  basket?: string | undefined;
14376
14759
  isFirstPage?: boolean | undefined;
14377
14760
  strictRefine?: boolean | undefined;
@@ -14385,7 +14768,6 @@ declare class SavedSearchDialog implements DialogInterface {
14385
14768
  relevanceTransforms?: string | undefined;
14386
14769
  removeDuplicates?: boolean | undefined;
14387
14770
  queryId?: string | undefined;
14388
- aggregations?: (Record<string, _sinequa_atomic.AggregationOptions> | string[]) | undefined;
14389
14771
  orderBy?: string | undefined;
14390
14772
  groupBy?: string | undefined;
14391
14773
  neuralSearch?: boolean | undefined;
@@ -14512,7 +14894,7 @@ declare class UserProfileFormComponent {
14512
14894
  param9: _angular_core.Signal<string>;
14513
14895
  param10: _angular_core.Signal<string>;
14514
14896
  userOverrideActive: _angular_core.Signal<boolean>;
14515
- state: _angular_core.Signal<"error" | "loading" | "loaded" | "initial">;
14897
+ state: _angular_core.Signal<"error" | "initial" | "loading" | "loaded">;
14516
14898
  allowUserOverride: _angular_core.Signal<boolean>;
14517
14899
  isOverridingUser: _angular_core.Signal<boolean>;
14518
14900
  initials: _angular_core.Signal<string>;
@@ -15519,5 +15901,5 @@ type AppFeatures = {
15519
15901
  */
15520
15902
  declare const APP_FEATURES: InjectionToken<AppFeatures>;
15521
15903
 
15522
- export { AGGREGATIONS_NAMES, AGGREGATIONS_NAMES_PRESET_DEFAULT, APP_FEATURES, AdvancedFiltersComponent, AdvancedSearch, AdvancedSearchComponent, AggregationComponent, AggregationDateComponent, AggregationDateRangeDialogComponent, AggregationListComponent, AggregationPanelComponent, AggregationTreeComponent, AggregationsService, AggregationsStore, Alert, AlertDialog, AlertsComponent, AppService, AppStore, ApplicationService, ApplicationStore, ArticleEntities, ArticleExtracts, ArticleLabels, ArticleSimilarDocuments, AsideFiltersComponent, AuditFeedbackType, AuditService, AuthGuard, AuthPageComponent, AutocompleteService, BOOKMARKS_CONFIG, BOOKMARKS_OPTIONS, BackdropComponent, BackdropService, BookmarkButtonComponent, BookmarksComponent, COLLECTIONS_CONFIG, COLLECTIONS_OPTIONS, COMPONENTS_FOR_DOCUMENT_TYPE, ChangePasswordComponent, ChildMarkerDirective, CollectionsComponent, CollectionsDialog, DRAWER_COMPONENT, DRAWER_STACK_MAX_COUNT, DateComponent, DeleteCollectionDialog, DidYouMeanComponent, DocumentLocatorComponent, DrawerAdvancedFiltersComponent, DrawerComponent, DrawerNavbarComponent, DrawerPreviewComponent, DrawerService, DrawerStackComponent, DrawerStackService, DropdownInputComponent, DropdownListComponent, ErrorComponent, ExportDialog, ExportService, FILTERS_BREAKPOINT, FILTER_DATE_ALLOW_CUSTOM_RANGE, FeatureFlagsDialogComponent, FeedbackDialogComponent, FileSizePipe, FilterButtonComponent, FiltersBarComponent, HIGHLIGHTS, HighlightWordPipe, InfinityScrollDirective, InlineWorker, JsonMethodPluginService, KeyboardNavigatorDirective, LabelService, LabelsEditDialog, LoadingComponent, MetadataComponent, MissingTermsComponent, MoreButtonComponent, MoreComponent, MultiSelectLabelsComponent, MultiSelectionToolbarComponent, NON_SEARCHABLE_COLUMNS, NON_SEARCHABLE_DEFAULTS, NavbarTabsComponent, NavigationService, NoResultComponent, OpenArticleOnCtrlEnterDirective, OperatorPipe, OverflowItemDirective, OverflowManagerDirective, OverflowStopDirective, OverrideUserDialogComponent, PREVIEW_CONFIG, PagerComponent, PreviewNavigator, PreviewService, PrincipalService, PrincipalStore, QueryParamsStore, QueryService, RECENT_SEARCHES_CONFIG, RECENT_SEARCHES_OPTIONS, ROUTE_COMPONENTS, RecentSearchesComponent, ResetUserSettingsDialogComponent, SAVED_SEARCHES_CONFIG, SAVED_SEARCHES_OPTIONS, SavedSearchDialog, SavedSearchesComponent, SavedSearchesService, SearchFeedbackComponent, SearchInputFooter, SearchService, SelectArticleDirective, SelectArticleOnClickDirective, SelectionHistoryService, SelectionService, SelectionStore, ShowBookmarkDirective, SidebarNavComponent, SignInComponent, SignedOutComponent, SortSelectorComponent, SourceComponent, SourceIconPipe, SponsoredResultsComponent, SyslangPipe, THEMES, TextChunkService, ThemeProviderDirective, ThemeSelectorComponent, ThemeStore, ThemeToggleComponent, TranslocoDateImpurePipe, UserProfileDialog, UserProfileFormComponent, UserProfileService, UserSettingsStore, applyThemeToNativeElement, auditInterceptorFn, authInterceptorFn, bodyInterceptorFn, bootstrapApp, buildQuery, debouncedSignal, errorInterceptorFn, getCurrentPath, getCurrentQueryName, getQueryNameFromRoute, injectRouteNavigation, processCssVars, queryNameResolver, signIn, themeColorNameToCssVariable, themeColorsToCssVariables, toastInterceptorFn, withAggregationsFeatures, withAlertsFeatures, withAppFeatures, withApplicationFeatures, withAssistantFeatures, withBasketsFeatures, withBookmarkFeatures, withBootstrapApp, withExtractsFeatures, withFetch, withMultiSelectionFeatures, withPrincipalFeatures, withQueryParamsFeatures, withRecentSearchesFeatures, withSavedSearchesFeatures, withSelectionFeatures, withThemeBodyHook, withThemes, withThemesFeatures, withUserSettingsFeatures };
15523
- export type { AgentUserSettings, AggEx, AggregationEx, AggregationListEx, AggregationListItem, AggregationTitle, AggregationTreeEx, AggregationsState, AppCJson, AppFeatures, ApplicationState, ArticleMetadata, AssistantDetails, Autocomplete, Basket, Bookmark, BookmarksConfig, CAggregation, CAggregationItem, CCAppState, CCWebServiceLabels, CConverter, CFeedback, CFilter, CFilterEx, CFilterItem, CJ, CJson, CJsonMint, CSources, CollectionsConfig, ComponentMapping, CssVars, DateRange, DocumentOffsets, DocumentPages, DocumentTypeMap, DropdownItem, ExportQueryOptions, Extract, FilterDropdown, KeyboardNavigationOnSelectionHandlers, KeyboardNavigatorOptions, LabelsConfig, MultiSelectionState, MultiSelectionToolbarVariants, NavRouteTab, PageConfiguration, PreviewEvents, PreviewHighlight, PreviewHighlightName, PreviewHighlights, PrincipalState, SearchItem, SearchOptions, SearchesConfig, SelectionHistoryEvent, SelectionState, SelectionStrategy, SideCJson, SortingChoice, Theme, ThemeBodyHookParameters, ThemeScope, ThemeStoreState, UserSettingsState };
15904
+ export { AGGREGATIONS_NAMES, AGGREGATIONS_NAMES_PRESET_DEFAULT, APP_FEATURES, AdvancedFiltersComponent, AdvancedSearch, AdvancedSearchComponent, AggregationComponent, AggregationDateComponent, AggregationDateRangeDialogComponent, AggregationItemDirective, AggregationListComponent, AggregationPanelComponent, AggregationTreeComponent, AggregationsService, AggregationsStore, Alert, AlertDialog, AlertsComponent, AppService, AppStore, ApplicationService, ApplicationStore, ArticleEntities, ArticleExtracts, ArticleLabels, ArticleSimilarDocuments, AsideFiltersComponent, AuditFeedbackType, AuditService, AuthGuard, AuthPageComponent, AutocompleteService, BOOKMARKS_CONFIG, BOOKMARKS_OPTIONS, BackdropComponent, BackdropService, BookmarkButtonComponent, BookmarksComponent, COLLECTIONS_CONFIG, COLLECTIONS_OPTIONS, COMPONENTS_FOR_DOCUMENT_TYPE, ChangePasswordComponent, ChildMarkerDirective, CollectionsComponent, CollectionsDialog, DRAWER_COMPONENT, DRAWER_STACK_MAX_COUNT, DateComponent, DeleteCollectionDialog, DidYouMeanComponent, DocumentLocatorComponent, DrawerAdvancedFiltersComponent, DrawerComponent, DrawerNavbarComponent, DrawerPreviewComponent, DrawerService, DrawerStackComponent, DrawerStackService, DropdownInputComponent, DropdownListComponent, ErrorComponent, ExportDialog, ExportService, FILTERS_BREAKPOINT, FILTER_DATE_ALLOW_CUSTOM_RANGE, FeatureFlagsDialogComponent, FeedbackDialogComponent, FileSizePipe, FilterButtonComponent, FiltersBarComponent, HIGHLIGHTS, HighlightWordPipe, InfinityScrollDirective, InlineWorker, JsonMethodPluginService, KeyboardNavigatorDirective, LabelService, LabelsEditDialog, LoadingComponent, MetadataComponent, MissingTermsComponent, MoreButtonComponent, MoreComponent, MultiSelectLabelsComponent, MultiSelectionToolbarComponent, NON_SEARCHABLE_COLUMNS, NON_SEARCHABLE_DEFAULTS, NavbarTabsComponent, NavigationService, NoResultComponent, OpenArticleOnCtrlEnterDirective, OperatorPipe, OverflowItemDirective, OverflowManagerDirective, OverflowStopDirective, OverrideUserDialogComponent, PREVIEW_CONFIG, PagerComponent, PreviewNavigator, PreviewService, PrincipalService, PrincipalStore, QueryParamsStore, QueryService, RECENT_SEARCHES_CONFIG, RECENT_SEARCHES_OPTIONS, ROUTE_COMPONENTS, RecentSearchesComponent, ResetUserSettingsDialogComponent, SAVED_SEARCHES_CONFIG, SAVED_SEARCHES_OPTIONS, SavedSearchDialog, SavedSearchesComponent, SavedSearchesService, SearchFeedbackComponent, SearchInputFooter, SearchService, SelectArticleDirective, SelectArticleOnClickDirective, SelectionHistoryService, SelectionService, SelectionStore, ShowBookmarkDirective, SidebarNavComponent, SignInComponent, SignedOutComponent, SortSelectorComponent, SourceComponent, SourceIconPipe, SponsoredResultsComponent, SyslangPipe, THEMES, TextChunkService, ThemeProviderDirective, ThemeSelectorComponent, ThemeStore, ThemeToggleComponent, TranslocoDateImpurePipe, UserProfileDialog, UserProfileFormComponent, UserProfileService, UserSettingsStore, applyThemeToNativeElement, auditInterceptorFn, authInterceptorFn, bodyInterceptorFn, bootstrapApp, buildQuery, debouncedSignal, errorInterceptorFn, getCurrentPath, getCurrentQueryName, getQueryNameFromRoute, injectRouteNavigation, legacyFilterToFilter, processCssVars, queryNameResolver, signIn, themeColorNameToCssVariable, themeColorsToCssVariables, toastInterceptorFn, withAggregationsFeatures, withAlertsFeatures, withAppFeatures, withApplicationFeatures, withAssistantFeatures, withBasketsFeatures, withBookmarkFeatures, withBootstrapApp, withExtractsFeatures, withFetch, withMultiSelectionFeatures, withPrincipalFeatures, withQueryParamsFeatures, withRecentSearchesFeatures, withSavedSearchesFeatures, withSelectionFeatures, withThemeBodyHook, withThemes, withThemesFeatures, withUserSettingsFeatures };
15905
+ export type { AgentUserSettings, AggEx, AggregationEx, AggregationItemContext, AggregationListEx, AggregationListItem, AggregationSelection, AggregationTitle, AggregationTreeEx, AggregationTreeItemContext, AggregationsState, AppCJson, AppFeatures, ApplicationState, ArticleMetadata, AssistantDetails, Autocomplete, Basket, Bookmark, BookmarksConfig, CAggregation, CAggregationItem, CCAppState, CCWebServiceLabels, CConverter, CFeedback, CFilter, CFilterEx, CFilterItem, CJ, CJson, CJsonMint, CSources, CollectionsConfig, ComponentMapping, CssVars, DateRange, DocumentOffsets, DocumentPages, DocumentTypeMap, DropdownItem, ExportQueryOptions, Extract, FilterDropdown, KeyboardNavigationOnSelectionHandlers, KeyboardNavigatorOptions, LabelsConfig, MultiSelectionState, MultiSelectionToolbarVariants, NavRouteTab, PageConfiguration, PreviewEvents, PreviewHighlight, PreviewHighlightName, PreviewHighlights, PrincipalState, SearchItem, SearchOptions, SearchesConfig, SelectionHistoryEvent, SelectionState, SelectionStrategy, SideCJson, SortingChoice, Theme, ThemeBodyHookParameters, ThemeScope, ThemeStoreState, UserSettingsState };