@arsedizioni/ars-utils 22.0.34 → 22.0.35

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.
@@ -747,7 +747,6 @@ declare class ClipperBrowserDialogComponent {
747
747
  }
748
748
 
749
749
  declare class ClipperContactEditComponent {
750
- private readonly destroyRef;
751
750
  private clipperService;
752
751
  private dialogService;
753
752
  private dialogRef;
@@ -1048,10 +1047,7 @@ declare class ClipperDocumentMenuComponent {
1048
1047
  private readonly linksMenuTrigger;
1049
1048
  private readonly allMenuTriggers;
1050
1049
  private readonly renderer2;
1051
- private readonly destroyRef;
1052
1050
  private readonly clipperService;
1053
- /** Internal counter incremented on each external selection-model change to drive signal re-evaluation. */
1054
- private readonly selectionChangeTick;
1055
1051
  readonly useSelections: _angular_core.InputSignal<boolean>;
1056
1052
  readonly selectionSource: _angular_core.InputSignal<"bag" | "selection" | "none">;
1057
1053
  /**
@@ -1060,6 +1056,12 @@ declare class ClipperDocumentMenuComponent {
1060
1056
  */
1061
1057
  protected readonly selection: _angular_core.Signal<ClipperDocumentInfo[]>;
1062
1058
  readonly parent: _angular_core.InputSignal<any>;
1059
+ /**
1060
+ * Emits whenever the parent's SelectionModel changes (relevant only for the 'selection'
1061
+ * source; the 'bag' source is already a signal). `toObservable`+`switchMap` re-binds
1062
+ * cleanly if `parent` ever changes and removes the manual subscription/afterNextRender.
1063
+ */
1064
+ private readonly selectionTick;
1063
1065
  readonly item: _angular_core.InputSignal<ClipperDocumentInfo>;
1064
1066
  readonly isReference: _angular_core.InputSignal<boolean>;
1065
1067
  readonly isReadable: _angular_core.InputSignal<boolean>;
@@ -1100,7 +1102,6 @@ declare class ClipperDocumentMenuComponent {
1100
1102
  protected readonly canSetAsUnread: _angular_core.Signal<boolean>;
1101
1103
  /** `true` when the Clipper service supports RS and all selected items are RS-enabled. */
1102
1104
  protected readonly canAccessRS: _angular_core.Signal<boolean>;
1103
- constructor();
1104
1105
  /**
1105
1106
  * Returns a single selected document: the bound item if present, or the sole item in the selection list.
1106
1107
  * @returns The selected document, or `undefined` when zero or more than one item is selected.
@@ -1168,17 +1169,16 @@ declare class ClipperNoteBadgeComponent {
1168
1169
  readonly populateContacts: _angular_core.OutputEmitterRef<SendToPopulateData>;
1169
1170
  private readonly popupTpl;
1170
1171
  readonly note: _angular_core.ModelSignal<ClipperDocumentNote>;
1171
- protected readonly backgroundColor: _angular_core.WritableSignal<string>;
1172
+ private readonly theme;
1173
+ /**
1174
+ * Badge background colour, blended from the note colour and the active theme.
1175
+ * Recomputes automatically whenever the theme or the note colour changes.
1176
+ */
1177
+ protected readonly backgroundColor: _angular_core.Signal<string>;
1172
1178
  protected readonly trackingUnopenedCount: _angular_core.Signal<number>;
1173
1179
  protected readonly trackingOpenedCount: _angular_core.Signal<number>;
1174
1180
  protected readonly totalTrackings: _angular_core.Signal<number>;
1175
1181
  constructor();
1176
- /**
1177
- * Computes the badge background color by blending the note colour with
1178
- * black (dark theme) or white (light theme).
1179
- * @returns The calculated background colour as a CSS `color-mix()` string.
1180
- */
1181
- private getBackgroundColor;
1182
1182
  /**
1183
1183
  * Opens the note-details popup positioned near the mouse cursor.
1184
1184
  * Stops event propagation to avoid triggering parent click handlers.
@@ -1231,7 +1231,6 @@ declare class ClipperNoteBadgeComponent {
1231
1231
 
1232
1232
  declare class ClipperNoteEditComponent {
1233
1233
  readonly done: _angular_core.OutputEmitterRef<ClipperDocumentNote>;
1234
- private readonly destroyRef;
1235
1234
  private readonly dialogService;
1236
1235
  protected readonly dialogData: EditDialogData<ClipperDocumentNote>;
1237
1236
  protected readonly dialogTitle: _angular_core.WritableSignal<string>;
@@ -1398,7 +1397,11 @@ declare class ClipperSearchResultItemComponent {
1398
1397
  readonly parent: _angular_core.InputSignal<ClipperSearchResultManager>;
1399
1398
  readonly item: _angular_core.ModelSignal<ClipperDocumentInfo>;
1400
1399
  readonly actions: _angular_core.InputSignal<MatMenu>;
1401
- protected taxonomy: _angular_core.WritableSignal<string[]>;
1400
+ /**
1401
+ * Taxonomy path segments derived from `item().taxonomyPath`.
1402
+ * Computed (not an effect writing a signal) so it stays lazy and reactive to `item()`.
1403
+ */
1404
+ protected readonly taxonomy: _angular_core.Signal<string[]>;
1402
1405
  readonly tileNoPictureUrl: _angular_core.InputSignal<string>;
1403
1406
  readonly tilePictureUrl: _angular_core.InputSignal<string>;
1404
1407
  readonly isSelectable: _angular_core.InputSignal<boolean>;
@@ -1410,11 +1413,15 @@ declare class ClipperSearchResultItemComponent {
1410
1413
  readonly displayMode: _angular_core.InputSignal<ClipperSearchResultItemDisplayMode>;
1411
1414
  protected readonly displayModesEnum: typeof ClipperSearchResultItemDisplayMode;
1412
1415
  protected readonly modelsEnum: typeof ClipperModel;
1413
- /** Incremented whenever the parent's SelectionModel changes, invalidating `isSelected`. */
1414
- private readonly selectionChangeTick;
1416
+ /**
1417
+ * Emits whenever the parent's SelectionModel changes. `toObservable(parent)` + `switchMap`
1418
+ * re-binds automatically (tearing down the previous subscription) if `parent` ever changes,
1419
+ * avoiding the duplicate subscriptions a subscribe-inside-effect would create.
1420
+ */
1421
+ private readonly selectionTick;
1415
1422
  /**
1416
1423
  * Whether this item is currently selected in the parent's selection model.
1417
- * Recomputed whenever `selectionChangeTick` is updated by the selection-changed subscription.
1424
+ * Recomputed whenever the parent's selection changes.
1418
1425
  */
1419
1426
  protected readonly isSelected: _angular_core.Signal<boolean>;
1420
1427
  /**
@@ -4,7 +4,7 @@ import { HttpInterceptor, HttpRequest, HttpHandler, HttpEvent } from '@angular/c
4
4
  import * as rxjs from 'rxjs';
5
5
  import { Observable } from 'rxjs';
6
6
  import * as i0 from '@angular/core';
7
- import { OnDestroy, Signal } from '@angular/core';
7
+ import { Signal } from '@angular/core';
8
8
 
9
9
  declare const EvolutionMessages: {
10
10
  ERROR: string;
@@ -735,10 +735,11 @@ declare class EvolutionAuthInterceptor implements HttpInterceptor {
735
735
  * Manages authentication (login / logout / MFA), session persistence,
736
736
  * and HTTP access to all Evolution API endpoints.
737
737
  */
738
- declare class EvolutionService implements OnDestroy {
738
+ declare class EvolutionService {
739
739
  private readonly httpClient;
740
740
  private readonly broadcastService;
741
- private broadcastServiceSubscription?;
741
+ private readonly destroyRef;
742
+ private broadcastInitialized;
742
743
  private _serviceUri;
743
744
  /** Base URI of the Evolution back-end service. */
744
745
  get serviceUri(): string | undefined;
@@ -756,7 +757,6 @@ declare class EvolutionService implements OnDestroy {
756
757
  readonly loggedIn: Signal<boolean>;
757
758
  /** `true` while a login request is in flight. */
758
759
  readonly loggingIn: i0.WritableSignal<boolean>;
759
- ngOnDestroy(): void;
760
760
  /**
761
761
  * Initialises the service with the back-end URI and optional feature flags.
762
762
  * Must be called once during application bootstrap before any other method.
@@ -2,7 +2,6 @@ import { LoginResult, ApiResult } from '@arsedizioni/ars-utils/core';
2
2
  import { LoginOAuthType } from '@arsedizioni/ars-utils/ui.oauth';
3
3
  import * as rxjs from 'rxjs';
4
4
  import * as i0 from '@angular/core';
5
- import { OnDestroy } from '@angular/core';
6
5
 
7
6
  declare const SupportMessages: {
8
7
  /**
@@ -142,10 +141,11 @@ declare enum SupportProductModule {
142
141
  DgiCLP = 1024
143
142
  }
144
143
 
145
- declare class SupportService implements OnDestroy {
144
+ declare class SupportService {
146
145
  private readonly httpClient;
147
146
  private readonly broadcastService;
148
- private broadcastServiceSubscription?;
147
+ private readonly destroyRef;
148
+ private broadcastInitialized;
149
149
  private _serviceUri;
150
150
  /** Base URI of the Support back-end service. */
151
151
  get serviceUri(): string | undefined;
@@ -153,7 +153,6 @@ declare class SupportService implements OnDestroy {
153
153
  productModules: SupportProductModule;
154
154
  /** Number of unread notifications, or `undefined` when there are none. */
155
155
  readonly unreadNotifications: i0.WritableSignal<number>;
156
- ngOnDestroy(): void;
157
156
  /**
158
157
  * Initialises the service with the back-end URI and the products/modules it should track.
159
158
  * Must be called once during application bootstrap before any other method.