@sinequa/atomic-angular 1.0.10 → 1.0.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.d.ts CHANGED
@@ -1693,7 +1693,7 @@ declare const PrincipalStore: _angular_core.Type<{
1693
1693
  param9: _angular_core.Signal<string>;
1694
1694
  param10: _angular_core.Signal<string>;
1695
1695
  userOverrideActive: _angular_core.Signal<boolean>;
1696
- state: _angular_core.Signal<"initial" | "loading" | "loaded" | "error">;
1696
+ state: _angular_core.Signal<"error" | "initial" | "loading" | "loaded">;
1697
1697
  allowUserOverride: _angular_core.Signal<boolean>;
1698
1698
  isOverridingUser: _angular_core.Signal<boolean>;
1699
1699
  initials: _angular_core.Signal<string>;
@@ -2842,7 +2842,7 @@ declare class ApplicationService {
2842
2842
  param9: _angular_core.Signal<string>;
2843
2843
  param10: _angular_core.Signal<string>;
2844
2844
  userOverrideActive: _angular_core.Signal<boolean>;
2845
- state: _angular_core.Signal<"initial" | "loading" | "loaded" | "error">;
2845
+ state: _angular_core.Signal<"error" | "initial" | "loading" | "loaded">;
2846
2846
  allowUserOverride: _angular_core.Signal<boolean>;
2847
2847
  isOverridingUser: _angular_core.Signal<boolean>;
2848
2848
  initials: _angular_core.Signal<string>;
@@ -4043,7 +4043,7 @@ declare class NavigationService {
4043
4043
  * - Maps all router events to `RouterEvent`.
4044
4044
  * - Filters the events to only include instances of `NavigationEnd`.
4045
4045
  * - Taps into the event stream to extract the route name from the URL and notify the audit service of route changes,
4046
- * excluding the "loading" route and duplicate navigations.
4046
+ * excluding duplicate navigations.
4047
4047
  * - Updates the `urlAfterNavigation` property with the current URL after navigation.
4048
4048
  * - Shares the replayed value with a buffer size of 1 to ensure subscribers receive the latest emitted value.
4049
4049
  *
@@ -6270,18 +6270,22 @@ declare class OverflowItemDirective {
6270
6270
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<OverflowItemDirective, "[overflowItem]", never, {}, {}, never, never, true, never>;
6271
6271
  }
6272
6272
  /**
6273
- * Directive to be used on the element that should be considered as the limit
6274
- * for the overflow manager.
6273
+ * Directive to be used on the "more" trigger element. The overflow manager
6274
+ * reserves this element's size when not all items fit, so the last visible
6275
+ * item never overlaps it. Its position is not used for measurement.
6275
6276
  */
6276
6277
  declare class OverflowStopDirective {
6277
6278
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<OverflowStopDirective, never>;
6278
6279
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<OverflowStopDirective, "[overflowStop]", never, {}, {}, never, never, true, never>;
6279
6280
  }
6280
6281
  /**
6281
- * Directive that takes items and a stop element to count the number of items
6282
- * that can fit before the stop element.
6283
- * The directive will apply a `visibility: hidden` on the items that are not
6284
- * visible.
6282
+ * Directive that counts how many items fit inside the container and hides the
6283
+ * overflowing ones. The boundary is the container's own content edge, which
6284
+ * keeps the measurement correct even when the host lives inside a flex layout
6285
+ * (we never depend on a sibling's position). The stop element is used only to
6286
+ * reserve space for the "more" trigger when not all items fit.
6287
+ *
6288
+ * The directive applies `display: none` on the items that do not fit.
6285
6289
  *
6286
6290
  * You can specify a target element to observe for resize events, otherwise the
6287
6291
  * directive will observe the element itself.
@@ -6320,15 +6324,30 @@ declare class OverflowManagerDirective {
6320
6324
  readonly target: _angular_core.InputSignal<HTMLElement | undefined>;
6321
6325
  readonly margin: _angular_core.InputSignal<number>;
6322
6326
  readonly direction: _angular_core.InputSignal<"horizontal" | "vertical">;
6327
+ /**
6328
+ * Always reserve the stop element's size, even when every item fits inside
6329
+ * the container. Use it when the stop trigger is permanently visible (e.g.
6330
+ * the "more" button also gives access to items that are never rendered in
6331
+ * the container), so the last item never overlaps it.
6332
+ */
6333
+ readonly reserveStop: _angular_core.InputSignalWithTransform<boolean, unknown>;
6323
6334
  readonly count: _angular_core.OutputEmitterRef<number>;
6324
6335
  private readonly el;
6325
6336
  private readonly destroyRef;
6326
6337
  private readonly resizeObserver;
6338
+ private readonly itemsResizeObserver;
6327
6339
  private countSub;
6328
6340
  private _lastCount;
6329
6341
  constructor();
6330
6342
  /**
6331
- * Counts the number of items that can fit before the stop element.
6343
+ * Counts the number of items that can fit inside the container.
6344
+ *
6345
+ * The boundary is the container's own content edge (not the position of the
6346
+ * stop element). This is what makes the measurement robust when the host is
6347
+ * placed inside a flex layout: we never rely on a sibling staying where we
6348
+ * expect it. The stop element is only used for its *size*, to reserve space
6349
+ * for the "more" trigger when not all items fit.
6350
+ *
6332
6351
  * Emits the count if it has changed.
6333
6352
  */
6334
6353
  countItems(): void;
@@ -6338,7 +6357,7 @@ declare class OverflowManagerDirective {
6338
6357
  */
6339
6358
  toggleToCount(count: number): void;
6340
6359
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<OverflowManagerDirective, never>;
6341
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<OverflowManagerDirective, "[overflowManager]", never, { "target": { "alias": "target"; "required": false; "isSignal": true; }; "margin": { "alias": "margin"; "required": false; "isSignal": true; }; "direction": { "alias": "direction"; "required": false; "isSignal": true; }; }, { "count": "count"; }, ["items", "stop"], never, true, never>;
6360
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<OverflowManagerDirective, "[overflowManager]", never, { "target": { "alias": "target"; "required": false; "isSignal": true; }; "margin": { "alias": "margin"; "required": false; "isSignal": true; }; "direction": { "alias": "direction"; "required": false; "isSignal": true; }; "reserveStop": { "alias": "reserveStop"; "required": false; "isSignal": true; }; }, { "count": "count"; }, ["items", "stop"], never, true, never>;
6342
6361
  }
6343
6362
 
6344
6363
  /**
@@ -8333,6 +8352,13 @@ declare class SignInComponent {
8333
8352
  logLevel: _sinequa_atomic.LogLevel;
8334
8353
  createRoutes: boolean;
8335
8354
  } & Record<string, any>>;
8355
+ /**
8356
+ * True when authentication is handled outside the credentials form — i.e. by the
8357
+ * browser/proxy (`useSSO`) or by an auto-configured OAuth/SAML provider. In those
8358
+ * modes this screen shows a loader instead of a login form and initiates the
8359
+ * handshake automatically by calling `handleLogin()`.
8360
+ */
8361
+ readonly externalAuth: boolean;
8336
8362
  class: _angular_core.InputSignal<string | undefined>;
8337
8363
  readonly forgotPassword: _angular_core.OutputEmitterRef<void>;
8338
8364
  username: _angular_core.ModelSignal<string>;
@@ -8382,7 +8408,7 @@ declare class SignInComponent {
8382
8408
  constructor(destroyRef: DestroyRef);
8383
8409
  private checkPasswordExpiresSoon;
8384
8410
  handleLogout(): Promise<void>;
8385
- handleLogin(): Promise<void>;
8411
+ handleLogin(): Promise<boolean>;
8386
8412
  handleLoginWithCredentials(): Promise<void>;
8387
8413
  handleBack(): void;
8388
8414
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SignInComponent, never>;
@@ -12331,28 +12357,33 @@ declare class FiltersBarComponent {
12331
12357
  protected hasFilters: _angular_core.Signal<string | boolean>;
12332
12358
  protected currentBasket: _angular_core.Signal<string | undefined>;
12333
12359
  protected hasAggregations: _angular_core.Signal<boolean>;
12360
+ /**
12361
+ * The full list of authorized filters, NOT capped by `filtersCount`.
12362
+ *
12363
+ * This computed signal performs the following operations:
12364
+ * 1. Retrieves aggregations from either the component's aggregations input or the app store
12365
+ * 2. Filters aggregations based on the route's filter criteria configuration
12366
+ * 3. Excludes filters specified in the `excludeFilters` list
12367
+ * 4. If `includeFilters` is not empty, only includes filters present in that list
12368
+ * 5. Maps the filtered aggregations to objects containing only `name` and `column` properties
12369
+ */
12370
+ private allAuthorizedFilters;
12334
12371
  /**
12335
12372
  * Computes the list of additional filters that can be displayed in the "more filters" popover.
12336
12373
  *
12337
- * This computed property filters the authorized filters from the AppStore, excluding those
12338
- * specified in the `excludeFilters` input. It then maps these filters to their corresponding
12339
- * aggregations from the AggregationsStore, limited to the number defined by `moreFilterCount`.
12374
+ * Derived from the FULL authorized list (not the one capped by `filtersCount`), so the
12375
+ * filters beyond `filtersCount` which are never rendered in the bar — are still counted.
12376
+ * Otherwise, when every rendered filter fits in the container, this list would be empty and
12377
+ * the "more" button would be hidden even though more filters exist beyond the cap.
12340
12378
  *
12341
- * This property manages the visibility and content of the "more filters" popover in the UI.
12379
+ * This property manages the visibility of the "more filters" button in the UI.
12342
12380
  *
12343
12381
  * @returns An array of Aggregation objects representing the additional filters available.
12344
12382
  */
12345
12383
  protected hasMoreFilters: _angular_core.Signal<(Aggregation | undefined)[]>;
12346
12384
  /**
12347
- * Computed property that returns a filtered and processed list of authorized filters.
12348
- *
12349
- * This computed signal performs the following operations:
12350
- * 1. Retrieves aggregations from either the component's aggregations input or the app store
12351
- * 2. Filters aggregations based on the route's filter criteria configuration
12352
- * 3. Excludes filters specified in the `excludeFilters` list
12353
- * 4. If `includeFilters` is not empty, only includes filters present in that list
12354
- * 5. Maps the filtered aggregations to objects containing only `name` and `column` properties
12355
- * 6. Limits the result to the number specified by `filtersCount`
12385
+ * The authorized filters rendered as buttons in the bar, limited to the number
12386
+ * specified by `filtersCount`.
12356
12387
  *
12357
12388
  * @returns An array of authorized filter objects, each containing `name` and `column` properties
12358
12389
  */
@@ -12360,6 +12391,15 @@ declare class FiltersBarComponent {
12360
12391
  name: string;
12361
12392
  column: string;
12362
12393
  }[]>;
12394
+ /**
12395
+ * Whether some authorized filters exist beyond the `filtersCount` cap.
12396
+ *
12397
+ * Those filters are never rendered in the bar and are only reachable through
12398
+ * the "more" button, which is therefore permanently visible: the overflow
12399
+ * manager must always reserve its space so the last filter button never
12400
+ * overlaps it (`reserveStop`).
12401
+ */
12402
+ protected hasCappedFilters: _angular_core.Signal<boolean>;
12363
12403
  constructor();
12364
12404
  /**
12365
12405
  * Clears all filters (included baskets) by invoking the clearFilters method on the queryParamsStore.
@@ -13612,7 +13652,7 @@ declare class UserProfileFormComponent {
13612
13652
  param9: _angular_core.Signal<string>;
13613
13653
  param10: _angular_core.Signal<string>;
13614
13654
  userOverrideActive: _angular_core.Signal<boolean>;
13615
- state: _angular_core.Signal<"initial" | "loading" | "loaded" | "error">;
13655
+ state: _angular_core.Signal<"error" | "initial" | "loading" | "loaded">;
13616
13656
  allowUserOverride: _angular_core.Signal<boolean>;
13617
13657
  isOverridingUser: _angular_core.Signal<boolean>;
13618
13658
  initials: _angular_core.Signal<string>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sinequa/atomic-angular",
3
- "version": "1.0.10",
3
+ "version": "1.0.12",
4
4
  "peerDependencies": {
5
5
  "@angular/core": "^20.0.0"
6
6
  },