@arsedizioni/ars-utils 22.6.86 → 22.6.89

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.
Files changed (79) hide show
  1. package/fesm2022/arsedizioni-ars-utils-clipper.common.mjs +3158 -3344
  2. package/fesm2022/arsedizioni-ars-utils-clipper.common.mjs.map +1 -1
  3. package/fesm2022/arsedizioni-ars-utils-clipper.ui.mjs +7616 -4772
  4. package/fesm2022/arsedizioni-ars-utils-clipper.ui.mjs.map +1 -1
  5. package/fesm2022/arsedizioni-ars-utils-core.date.mjs +321 -702
  6. package/fesm2022/arsedizioni-ars-utils-core.date.mjs.map +1 -1
  7. package/fesm2022/arsedizioni-ars-utils-core.markdown.mjs +445 -590
  8. package/fesm2022/arsedizioni-ars-utils-core.markdown.mjs.map +1 -1
  9. package/fesm2022/arsedizioni-ars-utils-core.mjs +1735 -2370
  10. package/fesm2022/arsedizioni-ars-utils-core.mjs.map +1 -1
  11. package/fesm2022/arsedizioni-ars-utils-core.validators.mjs +1280 -1470
  12. package/fesm2022/arsedizioni-ars-utils-core.validators.mjs.map +1 -1
  13. package/fesm2022/arsedizioni-ars-utils-evolution.common.mjs +1097 -1528
  14. package/fesm2022/arsedizioni-ars-utils-evolution.common.mjs.map +1 -1
  15. package/fesm2022/arsedizioni-ars-utils-support.common.mjs +198 -294
  16. package/fesm2022/arsedizioni-ars-utils-support.common.mjs.map +1 -1
  17. package/fesm2022/arsedizioni-ars-utils-ui.controls.date.mjs +115 -117
  18. package/fesm2022/arsedizioni-ars-utils-ui.controls.date.mjs.map +1 -1
  19. package/fesm2022/arsedizioni-ars-utils-ui.controls.mjs +1607 -613
  20. package/fesm2022/arsedizioni-ars-utils-ui.controls.mjs.map +1 -1
  21. package/fesm2022/arsedizioni-ars-utils-ui.controls.tree.mjs +840 -367
  22. package/fesm2022/arsedizioni-ars-utils-ui.controls.tree.mjs.map +1 -1
  23. package/fesm2022/arsedizioni-ars-utils-ui.dialogs.auth.mjs +1634 -651
  24. package/fesm2022/arsedizioni-ars-utils-ui.dialogs.auth.mjs.map +1 -1
  25. package/fesm2022/arsedizioni-ars-utils-ui.dialogs.mjs +1255 -792
  26. package/fesm2022/arsedizioni-ars-utils-ui.dialogs.mjs.map +1 -1
  27. package/fesm2022/arsedizioni-ars-utils-ui.dialogs.prompt.mjs +1410 -357
  28. package/fesm2022/arsedizioni-ars-utils-ui.dialogs.prompt.mjs.map +1 -1
  29. package/fesm2022/arsedizioni-ars-utils-ui.dialogs.select.mjs +2401 -944
  30. package/fesm2022/arsedizioni-ars-utils-ui.dialogs.select.mjs.map +1 -1
  31. package/fesm2022/arsedizioni-ars-utils-ui.files.mjs +1553 -741
  32. package/fesm2022/arsedizioni-ars-utils-ui.files.mjs.map +1 -1
  33. package/fesm2022/arsedizioni-ars-utils-ui.filters.mjs +901 -430
  34. package/fesm2022/arsedizioni-ars-utils-ui.filters.mjs.map +1 -1
  35. package/fesm2022/arsedizioni-ars-utils-ui.help.mjs +737 -530
  36. package/fesm2022/arsedizioni-ars-utils-ui.help.mjs.map +1 -1
  37. package/fesm2022/arsedizioni-ars-utils-ui.mjs +6638 -1755
  38. package/fesm2022/arsedizioni-ars-utils-ui.mjs.map +1 -1
  39. package/fesm2022/arsedizioni-ars-utils-ui.navigation.mjs +1479 -1207
  40. package/fesm2022/arsedizioni-ars-utils-ui.navigation.mjs.map +1 -1
  41. package/fesm2022/arsedizioni-ars-utils-ui.notifications.mjs +1003 -270
  42. package/fesm2022/arsedizioni-ars-utils-ui.notifications.mjs.map +1 -1
  43. package/fesm2022/arsedizioni-ars-utils-ui.oauth.mjs +497 -278
  44. package/fesm2022/arsedizioni-ars-utils-ui.oauth.mjs.map +1 -1
  45. package/fesm2022/arsedizioni-ars-utils-ui.paginator.mjs +48 -52
  46. package/fesm2022/arsedizioni-ars-utils-ui.paginator.mjs.map +1 -1
  47. package/fesm2022/arsedizioni-ars-utils-ui.shell.mjs +464 -704
  48. package/fesm2022/arsedizioni-ars-utils-ui.shell.mjs.map +1 -1
  49. package/fesm2022/arsedizioni-ars-utils-ui.tinymce.mjs +724 -657
  50. package/fesm2022/arsedizioni-ars-utils-ui.tinymce.mjs.map +1 -1
  51. package/fesm2022/arsedizioni-ars-utils.mjs +3 -19
  52. package/fesm2022/arsedizioni-ars-utils.mjs.map +1 -1
  53. package/package.json +1 -1
  54. package/types/arsedizioni-ars-utils-clipper.common.d.ts +1151 -1163
  55. package/types/arsedizioni-ars-utils-clipper.ui.d.ts +1588 -1426
  56. package/types/arsedizioni-ars-utils-core.d.ts +1169 -1172
  57. package/types/arsedizioni-ars-utils-core.date.d.ts +204 -208
  58. package/types/arsedizioni-ars-utils-core.markdown.d.ts +128 -126
  59. package/types/arsedizioni-ars-utils-core.validators.d.ts +270 -236
  60. package/types/arsedizioni-ars-utils-evolution.common.d.ts +1054 -1067
  61. package/types/arsedizioni-ars-utils-support.common.d.ts +225 -234
  62. package/types/arsedizioni-ars-utils-ui.controls.d.ts +440 -278
  63. package/types/arsedizioni-ars-utils-ui.controls.date.d.ts +24 -28
  64. package/types/arsedizioni-ars-utils-ui.controls.tree.d.ts +172 -136
  65. package/types/arsedizioni-ars-utils-ui.d.ts +2035 -821
  66. package/types/arsedizioni-ars-utils-ui.dialogs.auth.d.ts +327 -322
  67. package/types/arsedizioni-ars-utils-ui.dialogs.d.ts +343 -347
  68. package/types/arsedizioni-ars-utils-ui.dialogs.prompt.d.ts +167 -167
  69. package/types/arsedizioni-ars-utils-ui.dialogs.select.d.ts +373 -367
  70. package/types/arsedizioni-ars-utils-ui.files.d.ts +335 -283
  71. package/types/arsedizioni-ars-utils-ui.filters.d.ts +232 -160
  72. package/types/arsedizioni-ars-utils-ui.help.d.ts +204 -211
  73. package/types/arsedizioni-ars-utils-ui.navigation.d.ts +811 -646
  74. package/types/arsedizioni-ars-utils-ui.notifications.d.ts +74 -78
  75. package/types/arsedizioni-ars-utils-ui.oauth.d.ts +102 -62
  76. package/types/arsedizioni-ars-utils-ui.paginator.d.ts +19 -22
  77. package/types/arsedizioni-ars-utils-ui.shell.d.ts +376 -382
  78. package/types/arsedizioni-ars-utils-ui.tinymce.d.ts +244 -231
  79. package/types/arsedizioni-ars-utils.d.ts +1 -3
@@ -1,205 +1,202 @@
1
- import * as i0 from '@angular/core';
2
- import { Signal, WritableSignal } from '@angular/core';
3
- import { NameValueItem, LoginResult, ApiResult, FolderTree } from '@arsedizioni/ars-utils/core';
4
- import { SendToDialogResult } from '@arsedizioni/ars-utils/ui';
5
- import { HttpInterceptorFn } from '@angular/common/http';
6
- import * as rxjs from 'rxjs';
7
- import { Observable } from 'rxjs';
8
-
9
- declare const ClipperMessages: {
10
- /**
11
- * Messages
12
- */
13
- ERROR: string;
14
- /**
15
- * The session is gone: a 401 on a request that was not a login attempt.
16
- * Emitted once per dead session by `clipperAuthInterceptor`, which re-arms on the first
17
- * good response.
18
- */
19
- ERROR_401: string;
20
- /**
21
- * The API is not answering: the interceptor has already sent the request three times over
22
- * ten seconds. Emitted once, and re-armed on the first good response.
23
- */
24
- ERROR_UNAVAILABLE: string;
25
- SUCCESS: string;
26
- SUCCESS_TOAST: string;
27
- LOGIN_CHANGED: string;
28
- LOGIN_COMPLETED: string;
29
- LOGIN_PENDING: string;
30
- LOGIN_FAILED: string;
31
- LOGOUT: string;
32
- LOGOUT_COMPLETED: string;
33
- LOGOUT_FAILED: string;
34
- DOCUMENT_READ: string;
35
- DOCUMENT_NAVIGATE: string;
36
- DOCUMENT_NAVIGATED: string;
37
- DOCUMENT_SELECTED: string;
38
- DOCUMENT_SELECTED_INNER: string;
39
- SETTINGS_CHANGED: string;
40
- COMMAND_WORKING_OPEN: string;
41
- COMMAND_WORKING_ADD: string;
42
- COMMAND_SEARCH_RESTORED: string;
43
- COMMAND_SEARCH_EXECUTED: string;
44
- COMMAND_SEARCH_EMPTY_RESULT: string;
45
- COMMAND_HISTORY_OPEN: string;
46
- COMMAND_DASHBOARD_UPDATED: string;
47
- AI_CONCERN_ME: string;
48
- AI_EXPLAIN: string;
49
- AI_COMMENT: string;
50
- AI_NEWS: string;
51
- INTEROP_RS_NEW_LAW: string;
52
- INTEROP_RS_NEW_ACTIVITY: string;
53
- INTEROP_RS_USAGE_REPORT: string;
54
- UPDATE_RELOAD: string;
1
+ import * as i0 from "@angular/core";
2
+ import { Signal, WritableSignal } from "@angular/core";
3
+ import { ApiResult, FolderTree, LoginResult, NameValueItem } from "@arsedizioni/ars-utils/core";
4
+ import { SendToDialogResult } from "@arsedizioni/ars-utils/ui";
5
+ import { HttpInterceptorFn } from "@angular/common/http";
6
+ import { Observable } from "rxjs";
7
+ export declare const ClipperMessages: {
8
+ /**
9
+ * Messages
10
+ */
11
+ ERROR: string;
12
+ /**
13
+ * The session is gone: a 401 on a request that was not a login attempt.
14
+ * Emitted once per dead session by `clipperAuthInterceptor`, which re-arms on the first
15
+ * good response.
16
+ */
17
+ ERROR_401: string;
18
+ /**
19
+ * The API is not answering: the interceptor has already sent the request three times over
20
+ * ten seconds. Emitted once, and re-armed on the first good response.
21
+ */
22
+ ERROR_UNAVAILABLE: string;
23
+ SUCCESS: string;
24
+ SUCCESS_TOAST: string;
25
+ LOGIN_CHANGED: string;
26
+ LOGIN_COMPLETED: string;
27
+ LOGIN_PENDING: string;
28
+ LOGIN_FAILED: string;
29
+ LOGOUT: string;
30
+ LOGOUT_COMPLETED: string;
31
+ LOGOUT_FAILED: string;
32
+ DOCUMENT_READ: string;
33
+ DOCUMENT_NAVIGATE: string;
34
+ DOCUMENT_NAVIGATED: string;
35
+ DOCUMENT_SELECTED: string;
36
+ DOCUMENT_SELECTED_INNER: string;
37
+ SETTINGS_CHANGED: string;
38
+ COMMAND_WORKING_OPEN: string;
39
+ COMMAND_WORKING_ADD: string;
40
+ COMMAND_SEARCH_RESTORED: string;
41
+ COMMAND_SEARCH_EXECUTED: string;
42
+ COMMAND_SEARCH_EMPTY_RESULT: string;
43
+ COMMAND_HISTORY_OPEN: string;
44
+ COMMAND_DASHBOARD_UPDATED: string;
45
+ AI_CONCERN_ME: string;
46
+ AI_EXPLAIN: string;
47
+ AI_COMMENT: string;
48
+ AI_NEWS: string;
49
+ INTEROP_RS_NEW_LAW: string;
50
+ INTEROP_RS_NEW_ACTIVITY: string;
51
+ INTEROP_RS_USAGE_REPORT: string;
52
+ UPDATE_RELOAD: string;
55
53
  };
56
-
57
- interface EditedEventArgs<T> {
58
- data: T;
59
- isNew?: boolean;
54
+ export interface EditedEventArgs<T> {
55
+ data: T;
56
+ isNew?: boolean;
60
57
  }
61
- declare enum ClipperServiceFlags {
62
- None = 0,
63
- NotifySystemErrors = 1,
64
- DisplayConnectionStateMessages = 2,
65
- Embedded = 4
58
+ export declare enum ClipperServiceFlags {
59
+ None = 0,
60
+ NotifySystemErrors = 1,
61
+ DisplayConnectionStateMessages = 2,
62
+ Embedded = 4
66
63
  }
67
- declare enum ClipperSelectionMode {
68
- None = 0,
69
- Single = 1,
70
- TwoOrMore = 2,
71
- Multi = 3
64
+ export declare enum ClipperSelectionMode {
65
+ None = 0,
66
+ Single = 1,
67
+ TwoOrMore = 2,
68
+ Multi = 3
72
69
  }
73
- declare enum ClipperModuleGroup {
74
- Home = 0,
75
- NormativaVigente = 1,
76
- UltimeNovità = 2,
77
- ParApprofondire = 3,
78
- DGInfo = 4,
79
- Giurisprudenza = 5,
80
- Calendario = 11,
81
- Archivio = 12,
82
- Evolution = 201,
83
- Ars = 202,
84
- Ricerca = 99
70
+ export declare enum ClipperModuleGroup {
71
+ Home = 0,
72
+ NormativaVigente = 1,
73
+ UltimeNovità = 2,
74
+ ParApprofondire = 3,
75
+ DGInfo = 4,
76
+ Giurisprudenza = 5,
77
+ Calendario = 11,
78
+ Archivio = 12,
79
+ Evolution = 201,
80
+ Ars = 202,
81
+ Ricerca = 99
85
82
  }
86
- declare enum ClipperModule {
87
- NormativaVigente = 4,
88
- News = 1,
89
- GazzetteBollettiniEFontiDiverse = 2,
90
- Giurisprudenza = 5,
91
- ModificheAbrogazioniERinvii = 3,
92
- ScadenzeESegnalazioni = 12,
93
- Approfondimenti = 6,
94
- QuesitiECasiRisolti = 10,
95
- MetodiDiAnalisi = 11,
96
- DGInfo = 61,
97
- Ricerca = 99,
98
- GiurisprudenzaRecente = 18
83
+ export declare enum ClipperModule {
84
+ NormativaVigente = 4,
85
+ News = 1,
86
+ GazzetteBollettiniEFontiDiverse = 2,
87
+ Giurisprudenza = 5,
88
+ ModificheAbrogazioniERinvii = 3,
89
+ ScadenzeESegnalazioni = 12,
90
+ Approfondimenti = 6,
91
+ QuesitiECasiRisolti = 10,
92
+ MetodiDiAnalisi = 11,
93
+ DGInfo = 61,
94
+ Ricerca = 99,
95
+ GiurisprudenzaRecente = 18
99
96
  }
100
- declare enum ClipperModel {
101
- Unknown = 0,
102
- AggiornamentoNormativo = 2,
103
- News = 3,
104
- Articoli = 4,
105
- Juris = 5,
106
- Quesiti = 8,
107
- NormativaVigente = 9,
108
- Scadenze = 10,
109
- Coordinamento = 11,
110
- MetodiDiAnalisi = 14,
111
- GiurisprudenzaRecente = 18,
112
- Segnalazioni = 20,
113
- UltimeNovità = 21
97
+ export declare enum ClipperModel {
98
+ Unknown = 0,
99
+ AggiornamentoNormativo = 2,
100
+ News = 3,
101
+ Articoli = 4,
102
+ Juris = 5,
103
+ Quesiti = 8,
104
+ NormativaVigente = 9,
105
+ Scadenze = 10,
106
+ Coordinamento = 11,
107
+ MetodiDiAnalisi = 14,
108
+ GiurisprudenzaRecente = 18,
109
+ Segnalazioni = 20,
110
+ UltimeNovità = 21
114
111
  }
115
- declare const ClipperModels: NameValueItem<number>[];
116
- declare const ClipperModuleGroups: NameValueItem<number>[];
117
- declare const ClipperModules: NameValueItem<number>[];
118
- declare enum ClipperChannel {
119
- None = 0,
120
- LavoroEAmbiente = 1,
121
- SostanzeAlimentari = 2,
122
- MerciPericolose = 3,
123
- Energia = 4,
124
- DGInfo = 5
112
+ export declare const ClipperModels: NameValueItem<number>[];
113
+ export declare const ClipperModuleGroups: NameValueItem<number>[];
114
+ export declare const ClipperModules: NameValueItem<number>[];
115
+ export declare enum ClipperChannel {
116
+ None = 0,
117
+ LavoroEAmbiente = 1,
118
+ SostanzeAlimentari = 2,
119
+ MerciPericolose = 3,
120
+ Energia = 4,
121
+ DGInfo = 5
125
122
  }
126
- declare const ClipperChannels: NameValueItem<ClipperChannel>[];
127
- interface ClipperAvailableChannel extends NameValueItem<ClipperChannel> {
128
- active?: boolean;
129
- suspended?: boolean;
123
+ export declare const ClipperChannels: NameValueItem<ClipperChannel>[];
124
+ export interface ClipperAvailableChannel extends NameValueItem<ClipperChannel> {
125
+ active?: boolean;
126
+ suspended?: boolean;
130
127
  }
131
- declare const ClipperRegions: NameValueItem<string>[];
132
- interface SectorInfo extends NameValueItem<string> {
133
- group?: string;
134
- channels?: string;
135
- sectorId?: string;
128
+ export declare const ClipperRegions: NameValueItem<string>[];
129
+ export interface SectorInfo extends NameValueItem<string> {
130
+ group?: string;
131
+ channels?: string;
132
+ sectorId?: string;
136
133
  }
137
- declare const ClipperSectors: SectorInfo[];
138
- declare const ClipperSectorTypes: NameValueItem<string>[];
139
- declare const ClipperAuthors: SectorInfo[];
140
- declare const ClipperSources: NameValueItem<string>[];
141
- interface ClipperChannelSettingsItem<T> {
142
- name: string;
143
- value: T;
144
- checked: boolean;
134
+ export declare const ClipperSectors: SectorInfo[];
135
+ export declare const ClipperSectorTypes: NameValueItem<string>[];
136
+ export declare const ClipperAuthors: SectorInfo[];
137
+ export declare const ClipperSources: NameValueItem<string>[];
138
+ export interface ClipperChannelSettingsItem<T> {
139
+ name: string;
140
+ value: T;
141
+ checked: boolean;
145
142
  }
146
- declare class ClipperChannelSettings {
147
- channelId?: ClipperChannel;
148
- channelName?: string;
149
- isEnabled?: boolean;
150
- isSuspended?: boolean;
151
- isActive?: boolean;
152
- sectors: ClipperChannelSettingsItem<string>[];
153
- regions: ClipperChannelSettingsItem<string>[];
154
- /**
155
- * Returns `true` when the channel is active and at least one of the given sector codes
156
- * matches a sector assigned to this channel.
157
- * @param values - Array of sector code strings to test against.
158
- */
159
- hasAnyOfSectors(values: string[]): boolean;
160
- /**
161
- * Returns `true` when the channel is active and at least one of the given region codes
162
- * matches a region assigned to this channel.
163
- * @param values - Array of region code strings to test against.
164
- */
165
- hasAnyOfRegions(values: string[]): boolean;
143
+ export declare class ClipperChannelSettings {
144
+ channelId?: ClipperChannel;
145
+ channelName?: string;
146
+ isEnabled?: boolean;
147
+ isSuspended?: boolean;
148
+ isActive?: boolean;
149
+ sectors: ClipperChannelSettingsItem<string>[];
150
+ regions: ClipperChannelSettingsItem<string>[];
151
+ /**
152
+ * Returns `true` when the channel is active and at least one of the given sector codes
153
+ * matches a sector assigned to this channel.
154
+ * @param values - Array of sector code strings to test against.
155
+ */
156
+ hasAnyOfSectors(values: string[]): boolean;
157
+ /**
158
+ * Returns `true` when the channel is active and at least one of the given region codes
159
+ * matches a region assigned to this channel.
160
+ * @param values - Array of region code strings to test against.
161
+ */
162
+ hasAnyOfRegions(values: string[]): boolean;
166
163
  }
167
- interface ClipperUserChannelInfo {
168
- channel: ClipperChannel;
169
- channelName?: string;
170
- expiringDate: Date;
171
- isTrial?: boolean;
172
- isDisabled: boolean;
173
- isSuspended: boolean;
174
- isDvd: boolean;
175
- isActive: boolean;
176
- documentsViewable?: number;
177
- documentsViewed?: number;
178
- settings?: ClipperChannelSettings;
164
+ export interface ClipperUserChannelInfo {
165
+ channel: ClipperChannel;
166
+ channelName?: string;
167
+ expiringDate: Date;
168
+ isTrial?: boolean;
169
+ isDisabled: boolean;
170
+ isSuspended: boolean;
171
+ isDvd: boolean;
172
+ isActive: boolean;
173
+ documentsViewable?: number;
174
+ documentsViewed?: number;
175
+ settings?: ClipperChannelSettings;
179
176
  }
180
- interface ClipperUserInfo {
181
- userId: number;
182
- customerId?: number;
183
- companyName?: string;
184
- displayName?: string;
185
- firstName?: string;
186
- email: string;
187
- oauth?: boolean;
188
- sessionId?: string;
189
- scope: number;
190
- isAuthenticated: boolean;
191
- isTemporary: boolean;
192
- hasTrial: boolean;
193
- hasBulletin: boolean;
194
- hasAI: boolean;
195
- hasAIAssistant: boolean;
196
- hasAIEditor: boolean;
197
- channels?: ClipperUserChannelInfo[];
198
- firstChannelTrial?: ClipperUserChannelInfo;
199
- trialInfo?: ClipperUserTrialInfo;
177
+ export interface ClipperUserInfo {
178
+ userId: number;
179
+ customerId?: number;
180
+ companyName?: string;
181
+ displayName?: string;
182
+ firstName?: string;
183
+ email: string;
184
+ oauth?: boolean;
185
+ sessionId?: string;
186
+ scope: number;
187
+ isAuthenticated: boolean;
188
+ isTemporary: boolean;
189
+ hasTrial: boolean;
190
+ hasBulletin: boolean;
191
+ hasAI: boolean;
192
+ hasAIAssistant: boolean;
193
+ hasAIEditor: boolean;
194
+ channels?: ClipperUserChannelInfo[];
195
+ firstChannelTrial?: ClipperUserChannelInfo;
196
+ trialInfo?: ClipperUserTrialInfo;
200
197
  }
201
- interface ClipperLoginResult extends LoginResult<ClipperUserInfo> {
202
- settings?: ClipperChannelSettings[];
198
+ export interface ClipperLoginResult extends LoginResult<ClipperUserInfo> {
199
+ settings?: ClipperChannelSettings[];
203
200
  }
204
201
  /**
205
202
  * Answer of `GET /session/status`: whether this browser holds a live session towards the Clipper API.
@@ -210,144 +207,144 @@ interface ClipperLoginResult extends LoginResult<ClipperUserInfo> {
210
207
  * what makes it safe to call with no session at all: a probe that failed with a status code would be
211
208
  * reported by the interceptor as an expired session.
212
209
  */
213
- interface ClipperSessionStatus {
214
- /** True when the cookie this browser presented resolves to a live, validated session. */
215
- connected: boolean;
210
+ export interface ClipperSessionStatus {
211
+ /** True when the cookie this browser presented resolves to a live, validated session. */
212
+ connected: boolean;
216
213
  }
217
- interface ClipperLoginInfo {
218
- context?: ClipperUserInfo;
219
- channels?: ClipperChannelSettings[];
214
+ export interface ClipperLoginInfo {
215
+ context?: ClipperUserInfo;
216
+ channels?: ClipperChannelSettings[];
220
217
  }
221
- declare enum ClipperQueryDocumentFlags {
222
- None = 0,
223
- TitleOnly = 1,
224
- AbrogatedOnly = 2,
225
- NotAbrogatedOnly = 4,
226
- CommentedOnly = 8,
227
- UseSemanticSearch = 32,
228
- NotRead = 64,
229
- ExcludeUserFilters = 128
218
+ export declare enum ClipperQueryDocumentFlags {
219
+ None = 0,
220
+ TitleOnly = 1,
221
+ AbrogatedOnly = 2,
222
+ NotAbrogatedOnly = 4,
223
+ CommentedOnly = 8,
224
+ UseSemanticSearch = 32,
225
+ NotRead = 64,
226
+ ExcludeUserFilters = 128
230
227
  }
231
- declare class ClipperSearchParams {
232
- version: number;
233
- searchId?: number;
234
- searchName?: string;
235
- text?: string;
236
- title?: string;
237
- titleOnly?: boolean;
238
- showUnreadDocumentsOnly?: boolean;
239
- showCommentedDocumentsOnly?: boolean;
240
- showNotAbrogatedDocumentsOnly?: boolean;
241
- number?: string;
242
- fromDate?: Date;
243
- toDate?: Date;
244
- year?: number;
245
- sourceNumber?: string;
246
- source?: string;
247
- sourceFromDate?: Date;
248
- sourceToDate?: Date;
249
- sourceYear?: number;
250
- sector?: string;
251
- sectors?: SectorInfo[];
252
- topic?: string;
253
- topics?: NameValueItem<string>[];
254
- taxonomy?: string;
255
- taxonomies?: NameValueItem<string>[];
256
- taxonomyPath?: string;
257
- taxonomyNode?: string;
258
- type?: string;
259
- types?: NameValueItem<string>[];
260
- tag?: string;
261
- tags?: NameValueItem<string>[];
262
- author?: string;
263
- authors?: NameValueItem<string>[];
264
- changeReason?: number;
265
- changedNumber?: string;
266
- changedYear?: number;
267
- changedTitle?: string;
268
- changedId?: string;
269
- modifierId?: string;
270
- modifierNumber?: string;
271
- modifierYear?: number;
272
- modifierTitle?: string;
273
- model?: ClipperModel;
274
- models?: ClipperModel[];
275
- module?: ClipperModule;
276
- modules?: NameValueItem<ClipperModule>[];
277
- mode?: ClipperQueryReferencesMode;
278
- channels?: NameValueItem<ClipperChannel>[];
279
- count?: number;
280
- id?: string;
281
- anchor?: string;
282
- excludeTextReferences?: boolean;
283
- excludeNotesReferences?: boolean;
284
- useModifierInfo?: boolean;
285
- returnModifierInfo?: boolean;
286
- flags?: ClipperQueryDocumentFlags;
287
- first?: number;
288
- sortMode?: number;
228
+ export declare class ClipperSearchParams {
229
+ version: number;
230
+ searchId?: number;
231
+ searchName?: string;
232
+ text?: string;
233
+ title?: string;
234
+ titleOnly?: boolean;
235
+ showUnreadDocumentsOnly?: boolean;
236
+ showCommentedDocumentsOnly?: boolean;
237
+ showNotAbrogatedDocumentsOnly?: boolean;
238
+ number?: string;
239
+ fromDate?: Date;
240
+ toDate?: Date;
241
+ year?: number;
242
+ sourceNumber?: string;
243
+ source?: string;
244
+ sourceFromDate?: Date;
245
+ sourceToDate?: Date;
246
+ sourceYear?: number;
247
+ sector?: string;
248
+ sectors?: SectorInfo[];
249
+ topic?: string;
250
+ topics?: NameValueItem<string>[];
251
+ taxonomy?: string;
252
+ taxonomies?: NameValueItem<string>[];
253
+ taxonomyPath?: string;
254
+ taxonomyNode?: string;
255
+ type?: string;
256
+ types?: NameValueItem<string>[];
257
+ tag?: string;
258
+ tags?: NameValueItem<string>[];
259
+ author?: string;
260
+ authors?: NameValueItem<string>[];
261
+ changeReason?: number;
262
+ changedNumber?: string;
263
+ changedYear?: number;
264
+ changedTitle?: string;
265
+ changedId?: string;
266
+ modifierId?: string;
267
+ modifierNumber?: string;
268
+ modifierYear?: number;
269
+ modifierTitle?: string;
270
+ model?: ClipperModel;
271
+ models?: ClipperModel[];
272
+ module?: ClipperModule;
273
+ modules?: NameValueItem<ClipperModule>[];
274
+ mode?: ClipperQueryReferencesMode;
275
+ channels?: NameValueItem<ClipperChannel>[];
276
+ count?: number;
277
+ id?: string;
278
+ anchor?: string;
279
+ excludeTextReferences?: boolean;
280
+ excludeNotesReferences?: boolean;
281
+ useModifierInfo?: boolean;
282
+ returnModifierInfo?: boolean;
283
+ flags?: ClipperQueryDocumentFlags;
284
+ first?: number;
285
+ sortMode?: number;
289
286
  }
290
- interface ClipperReferencesSearchParams {
291
- documentId: string;
292
- year?: number;
293
- sector?: string;
294
- author?: string;
295
- anchor?: string;
296
- model?: string;
297
- mode?: ClipperQueryReferencesMode;
298
- excludeTextReferences?: boolean;
299
- excludeNotesReferences?: boolean;
300
- useModifierInfo?: boolean;
301
- returnModifierInfo?: boolean;
302
- count?: number;
303
- first?: number;
287
+ export interface ClipperReferencesSearchParams {
288
+ documentId: string;
289
+ year?: number;
290
+ sector?: string;
291
+ author?: string;
292
+ anchor?: string;
293
+ model?: string;
294
+ mode?: ClipperQueryReferencesMode;
295
+ excludeTextReferences?: boolean;
296
+ excludeNotesReferences?: boolean;
297
+ useModifierInfo?: boolean;
298
+ returnModifierInfo?: boolean;
299
+ count?: number;
300
+ first?: number;
304
301
  }
305
- declare enum ClipperDocumentContainer {
306
- None = 0,
307
- LavoroEAmbiente = 1,
308
- SostanzeAlimentari = 2,
309
- OrangeProject = 4,
310
- Energia = 8,
311
- DGInfo = 16,
312
- DLGS231 = 32,
313
- All = 63
302
+ export declare enum ClipperDocumentContainer {
303
+ None = 0,
304
+ LavoroEAmbiente = 1,
305
+ SostanzeAlimentari = 2,
306
+ OrangeProject = 4,
307
+ Energia = 8,
308
+ DGInfo = 16,
309
+ DLGS231 = 32,
310
+ All = 63
314
311
  }
315
- declare const ClipperDocumentChangeReasons: NameValueItem<number>[];
316
- interface ClipperDocumentAnchorInfo {
317
- documentId?: string;
318
- type?: number;
319
- typeDescription?: string;
320
- text?: string;
321
- title?: string;
322
- description?: string;
323
- uri: string;
324
- ordinal?: string;
325
- score?: number;
326
- chunk?: number;
327
- veryRelevant?: boolean;
328
- value?: string;
329
- level?: number;
312
+ export declare const ClipperDocumentChangeReasons: NameValueItem<number>[];
313
+ export interface ClipperDocumentAnchorInfo {
314
+ documentId?: string;
315
+ type?: number;
316
+ typeDescription?: string;
317
+ text?: string;
318
+ title?: string;
319
+ description?: string;
320
+ uri: string;
321
+ ordinal?: string;
322
+ score?: number;
323
+ chunk?: number;
324
+ veryRelevant?: boolean;
325
+ value?: string;
326
+ level?: number;
330
327
  }
331
- interface ClipperDocumentRelevantChunkHit {
332
- id?: number;
333
- score: string;
334
- text: string;
335
- index?: number;
336
- uri?: string;
328
+ export interface ClipperDocumentRelevantChunkHit {
329
+ id?: number;
330
+ score: string;
331
+ text: string;
332
+ index?: number;
333
+ uri?: string;
337
334
  }
338
- interface ClipperDocumentRelevants {
339
- items: ClipperDocumentAnchorInfo[];
340
- hits: number;
341
- hit: number;
342
- chunks: number;
335
+ export interface ClipperDocumentRelevants {
336
+ items: ClipperDocumentAnchorInfo[];
337
+ hits: number;
338
+ hit: number;
339
+ chunks: number;
343
340
  }
344
341
  /** One delivery of a shared note by email, and whether the recipient opened it. */
345
- interface ClipperDocumentNoteTracking {
346
- id: string;
347
- userMailId: number;
348
- email?: string;
349
- sentDate: Date;
350
- openDate?: Date;
342
+ export interface ClipperDocumentNoteTracking {
343
+ id: string;
344
+ userMailId: number;
345
+ email?: string;
346
+ sentDate: Date;
347
+ openDate?: Date;
351
348
  }
352
349
  /**
353
350
  * A shared note attached to a document.
@@ -356,394 +353,393 @@ interface ClipperDocumentNoteTracking {
356
353
  * account -- but the API attaches them to documents and to `metadata()`, so the shape is
357
354
  * declared here rather than letting a consumer read a response it cannot see.
358
355
  */
359
- interface ClipperDocumentNote {
360
- id?: number;
361
- teamId?: string;
362
- teamTitle?: string;
363
- documentId?: string;
364
- documentTitle?: string;
365
- color?: string;
366
- name?: string;
367
- note?: string;
368
- trackings?: ClipperDocumentNoteTracking[];
369
- trackingsCount?: number;
370
- trackingsOpenedCount?: number;
371
- expiringDate?: Date;
372
- isExpired?: boolean;
373
- isTroubled?: boolean;
374
- isMenuOpen?: boolean;
375
- isOver?: boolean;
376
- created?: Date;
356
+ export interface ClipperDocumentNote {
357
+ id?: number;
358
+ teamId?: string;
359
+ teamTitle?: string;
360
+ documentId?: string;
361
+ documentTitle?: string;
362
+ color?: string;
363
+ name?: string;
364
+ note?: string;
365
+ trackings?: ClipperDocumentNoteTracking[];
366
+ trackingsCount?: number;
367
+ trackingsOpenedCount?: number;
368
+ expiringDate?: Date;
369
+ isExpired?: boolean;
370
+ isTroubled?: boolean;
371
+ isMenuOpen?: boolean;
372
+ isOver?: boolean;
373
+ created?: Date;
377
374
  }
378
- interface ClipperDocumentInfo {
379
- id?: string;
380
- documentId?: string;
381
- documentCode?: string;
382
- model?: number;
383
- modelName?: string;
384
- module?: number;
385
- moduleName?: string;
386
- channelName?: string;
387
- group?: string;
388
- title2?: string;
389
- title1?: string;
390
- tags?: string;
391
- topics?: string;
392
- number?: string;
393
- date?: Date;
394
- description?: string;
395
- publishingDate?: Date;
396
- pictureId?: string;
397
- sourceNumber?: string;
398
- sourceDate?: Date;
399
- source?: string;
400
- sector?: string;
401
- origin?: string;
402
- originDescription?: string;
403
- author?: string;
404
- anchors?: ClipperDocumentAnchorInfo[];
405
- notes?: ClipperDocumentNote[];
406
- chunks?: ClipperDocumentAnchorInfo[];
407
- chunksList?: string;
408
- taxonomy?: string;
409
- taxonomyPath?: string;
410
- info?: string;
411
- isRead?: boolean;
412
- isExportable?: boolean;
413
- isCommented?: boolean;
414
- isJuris?: boolean;
415
- isOver?: boolean;
416
- isTrial?: boolean;
417
- isNew?: boolean;
418
- isExpired?: boolean;
419
- isExpiring?: boolean;
420
- isMenuOpen?: boolean;
421
- applicableFromDate?: Date;
422
- validityState?: number;
423
- validFromDate?: Date;
424
- validUntilDate?: Date;
425
- validityDescription?: string;
426
- validityInfo?: string;
427
- expiringDate?: Date;
428
- expiringDescription?: string;
429
- expiringInfo?: string;
430
- popularity?: number;
431
- part?: number;
432
- primaryId?: string;
433
- primaryDescription?: string;
434
- primaryModel?: number;
435
- hasPrimary?: boolean;
436
- secondaryId?: string;
437
- bag?: any;
438
- lastUpdate?: string;
375
+ export interface ClipperDocumentInfo {
376
+ id?: string;
377
+ documentId?: string;
378
+ documentCode?: string;
379
+ model?: number;
380
+ modelName?: string;
381
+ module?: number;
382
+ moduleName?: string;
383
+ channelName?: string;
384
+ group?: string;
385
+ title2?: string;
386
+ title1?: string;
387
+ tags?: string;
388
+ topics?: string;
389
+ number?: string;
390
+ date?: Date;
391
+ description?: string;
392
+ publishingDate?: Date;
393
+ pictureId?: string;
394
+ sourceNumber?: string;
395
+ sourceDate?: Date;
396
+ source?: string;
397
+ sector?: string;
398
+ origin?: string;
399
+ originDescription?: string;
400
+ author?: string;
401
+ anchors?: ClipperDocumentAnchorInfo[];
402
+ notes?: ClipperDocumentNote[];
403
+ chunks?: ClipperDocumentAnchorInfo[];
404
+ chunksList?: string;
405
+ taxonomy?: string;
406
+ taxonomyPath?: string;
407
+ info?: string;
408
+ isRead?: boolean;
409
+ isExportable?: boolean;
410
+ isCommented?: boolean;
411
+ isJuris?: boolean;
412
+ isOver?: boolean;
413
+ isTrial?: boolean;
414
+ isNew?: boolean;
415
+ isExpired?: boolean;
416
+ isExpiring?: boolean;
417
+ isMenuOpen?: boolean;
418
+ applicableFromDate?: Date;
419
+ validityState?: number;
420
+ validFromDate?: Date;
421
+ validUntilDate?: Date;
422
+ validityDescription?: string;
423
+ validityInfo?: string;
424
+ expiringDate?: Date;
425
+ expiringDescription?: string;
426
+ expiringInfo?: string;
427
+ popularity?: number;
428
+ part?: number;
429
+ primaryId?: string;
430
+ primaryDescription?: string;
431
+ primaryModel?: number;
432
+ hasPrimary?: boolean;
433
+ secondaryId?: string;
434
+ bag?: any;
435
+ lastUpdate?: string;
439
436
  }
440
- declare class ClipperSearchResult {
441
- days?: string;
442
- interval?: string;
443
- items?: ClipperDocumentInfo[];
444
- facets?: ClipperSearchFacetsSnapshot;
445
- tags?: NameValueItem<string>[];
446
- total?: number;
447
- terms?: string[];
448
- searchInfo?: any;
449
- searchParams?: ClipperSearchParams;
450
- snapshotMode?: ClipperQueryReferencesMode;
437
+ export declare class ClipperSearchResult {
438
+ days?: string;
439
+ interval?: string;
440
+ items?: ClipperDocumentInfo[];
441
+ facets?: ClipperSearchFacetsSnapshot;
442
+ tags?: NameValueItem<string>[];
443
+ total?: number;
444
+ terms?: string[];
445
+ searchInfo?: any;
446
+ searchParams?: ClipperSearchParams;
447
+ snapshotMode?: ClipperQueryReferencesMode;
451
448
  }
452
- interface ClipperSearchFacet {
453
- type: number;
454
- typeName: string;
455
- title: string;
456
- value: string;
457
- count: number;
449
+ export interface ClipperSearchFacet {
450
+ type: number;
451
+ typeName: string;
452
+ title: string;
453
+ value: string;
454
+ count: number;
458
455
  }
459
- interface ClipperSearchFacetGroup {
460
- name: string;
461
- selectedValue?: string;
462
- selectedValueDescription?: string;
463
- values: ClipperSearchFacet[];
464
- index: number;
456
+ export interface ClipperSearchFacetGroup {
457
+ name: string;
458
+ selectedValue?: string;
459
+ selectedValueDescription?: string;
460
+ values: ClipperSearchFacet[];
461
+ index: number;
465
462
  }
466
- interface ClipperSearchFacetsResult {
467
- interval?: string;
468
- facets?: ClipperSearchFacet[][];
469
- total?: number;
463
+ export interface ClipperSearchFacetsResult {
464
+ interval?: string;
465
+ facets?: ClipperSearchFacet[][];
466
+ total?: number;
470
467
  }
471
- declare class ClipperSearchFacetsSnapshot {
472
- groups: ClipperSearchFacetGroup[];
473
- usedGroups: ClipperSearchFacetGroup[];
474
- hasFacets: boolean;
475
- hasMoreFacets: boolean;
476
- hasTooManyResults: boolean;
477
- sector?: string;
478
- author?: string;
479
- anchor?: string;
480
- type?: string;
481
- reason?: string;
482
- fromDate?: Date;
483
- toDate?: Date;
484
- interval?: string;
468
+ export declare class ClipperSearchFacetsSnapshot {
469
+ groups: ClipperSearchFacetGroup[];
470
+ usedGroups: ClipperSearchFacetGroup[];
471
+ hasFacets: boolean;
472
+ hasMoreFacets: boolean;
473
+ hasTooManyResults: boolean;
474
+ sector?: string;
475
+ author?: string;
476
+ anchor?: string;
477
+ type?: string;
478
+ reason?: string;
479
+ fromDate?: Date;
480
+ toDate?: Date;
481
+ interval?: string;
485
482
  }
486
- interface ClipperSearchCalendarSnapshotMonth {
487
- days: number[];
488
- monthShortName?: string;
489
- monthName?: string;
490
- month: number;
491
- year: number;
492
- total: number;
493
- expired: number;
494
- expiring: number;
483
+ export interface ClipperSearchCalendarSnapshotMonth {
484
+ days: number[];
485
+ monthShortName?: string;
486
+ monthName?: string;
487
+ month: number;
488
+ year: number;
489
+ total: number;
490
+ expired: number;
491
+ expiring: number;
495
492
  }
496
- declare class ClipperSearchCalendarSnapshotResult {
497
- months?: ClipperSearchCalendarSnapshotMonth[];
493
+ export declare class ClipperSearchCalendarSnapshotResult {
494
+ months?: ClipperSearchCalendarSnapshotMonth[];
498
495
  }
499
- declare enum ClipperSort {
500
- Default = 0,
501
- Relevance = 1,
502
- DateAsc = 2,
503
- DateDesc = 3,
504
- SourceDateAsc = 7,
505
- SourceDateDesc = 8,
506
- Popularity = 5
496
+ export declare enum ClipperSort {
497
+ Default = 0,
498
+ Relevance = 1,
499
+ DateAsc = 2,
500
+ DateDesc = 3,
501
+ SourceDateAsc = 7,
502
+ SourceDateDesc = 8,
503
+ Popularity = 5
507
504
  }
508
- declare enum ClipperQueryReferencesMode {
509
- ReferencesIn = 1,
510
- ReferencesOut = 2,
511
- ChangesIn = 3,
512
- ChangesOut = 5,
513
- Juris = 4
505
+ export declare enum ClipperQueryReferencesMode {
506
+ ReferencesIn = 1,
507
+ ReferencesOut = 2,
508
+ ChangesIn = 3,
509
+ ChangesOut = 5,
510
+ Juris = 4
514
511
  }
515
- declare enum ClipperFacet {
516
- Sector = 1,
517
- Year = 2,
518
- DocumentType = 3,
519
- Topic = 4,
520
- Article = 5,
521
- Author = 6,
522
- Reason = 95
512
+ export declare enum ClipperFacet {
513
+ Sector = 1,
514
+ Year = 2,
515
+ DocumentType = 3,
516
+ Topic = 4,
517
+ Article = 5,
518
+ Author = 6,
519
+ Reason = 95
523
520
  }
524
- interface ClipperOTPInfo {
525
- code?: string;
526
- canPreview?: boolean;
527
- canEmbed?: boolean;
521
+ export interface ClipperOTPInfo {
522
+ code?: string;
523
+ canPreview?: boolean;
524
+ canEmbed?: boolean;
528
525
  }
529
- declare enum ClipperExportDocumentsFormat {
530
- Deafault = 1,
531
- iCalendar = 2
526
+ export declare enum ClipperExportDocumentsFormat {
527
+ Deafault = 1,
528
+ iCalendar = 2
532
529
  }
533
- interface ClipperExportDocumentsParams {
534
- query?: ClipperSearchParams;
535
- ids: string[];
536
- format?: ClipperExportDocumentsFormat;
530
+ export interface ClipperExportDocumentsParams {
531
+ query?: ClipperSearchParams;
532
+ ids: string[];
533
+ format?: ClipperExportDocumentsFormat;
537
534
  }
538
- interface ClipperSendDocumentsByEmailParams extends SendToDialogResult {
539
- ids?: string[];
540
- isCalendar?: boolean;
541
- public?: string;
542
- userNoteId?: number;
535
+ export interface ClipperSendDocumentsByEmailParams extends SendToDialogResult {
536
+ ids?: string[];
537
+ isCalendar?: boolean;
538
+ public?: string;
539
+ userNoteId?: number;
543
540
  }
544
- interface ClipperDocumentStructure {
545
- id: string;
546
- title: string;
547
- items?: ClipperDocumentAnchorInfo[];
541
+ export interface ClipperDocumentStructure {
542
+ id: string;
543
+ title: string;
544
+ items?: ClipperDocumentAnchorInfo[];
548
545
  }
549
- interface ClipperSearchFilter {
550
- container: ClipperDocumentContainer;
551
- models: number[];
552
- sectors: string[];
553
- regions: string[];
554
- notifications: number[];
555
- isEnabled: boolean;
556
- isActive: boolean;
546
+ export interface ClipperSearchFilter {
547
+ container: ClipperDocumentContainer;
548
+ models: number[];
549
+ sectors: string[];
550
+ regions: string[];
551
+ notifications: number[];
552
+ isEnabled: boolean;
553
+ isActive: boolean;
557
554
  }
558
- interface ClipperTaxonomyParams {
559
- countItems: boolean;
560
- model: ClipperModel;
561
- userFilters?: ClipperSearchFilter[];
555
+ export interface ClipperTaxonomyParams {
556
+ countItems: boolean;
557
+ model: ClipperModel;
558
+ userFilters?: ClipperSearchFilter[];
562
559
  }
563
- interface ClipperUserSearch {
564
- id?: number;
565
- userId?: number;
566
- name?: string;
567
- module?: ClipperModule;
568
- data?: string;
560
+ export interface ClipperUserSearch {
561
+ id?: number;
562
+ userId?: number;
563
+ name?: string;
564
+ module?: ClipperModule;
565
+ data?: string;
569
566
  }
570
- interface ClipperUserWorkingDocument {
571
- userId?: number;
572
- documentId?: string;
573
- documentDescriptor?: string;
574
- title1?: string;
575
- title2?: string;
576
- timestamp?: string;
567
+ export interface ClipperUserWorkingDocument {
568
+ userId?: number;
569
+ documentId?: string;
570
+ documentDescriptor?: string;
571
+ title1?: string;
572
+ title2?: string;
573
+ timestamp?: string;
577
574
  }
578
- interface ClipperDeleteWorkingDocumentsParams {
579
- documentIds: string[];
580
- deleteAll: boolean;
575
+ export interface ClipperDeleteWorkingDocumentsParams {
576
+ documentIds: string[];
577
+ deleteAll: boolean;
581
578
  }
582
- interface ClipperUserTrialInfo {
583
- channelName?: string;
584
- expiringDate: Date;
585
- remainingDocuments: number;
579
+ export interface ClipperUserTrialInfo {
580
+ channelName?: string;
581
+ expiringDate: Date;
582
+ remainingDocuments: number;
586
583
  }
587
- interface ClipperDocumentUpdateStateParams {
588
- documentIds: string[];
589
- isRead: boolean;
584
+ export interface ClipperDocumentUpdateStateParams {
585
+ documentIds: string[];
586
+ isRead: boolean;
590
587
  }
591
- interface ClipperDashboardModelItem {
592
- id?: ClipperModel;
593
- newItems: number;
594
- unreadItems: number;
588
+ export interface ClipperDashboardModelItem {
589
+ id?: ClipperModel;
590
+ newItems: number;
591
+ unreadItems: number;
595
592
  }
596
- interface ClipperDashboardItem {
597
- id: ClipperModule;
598
- models: ClipperDashboardModelItem[];
599
- newItems: number;
600
- unreadItems: number;
601
- lastUpdated?: Date;
593
+ export interface ClipperDashboardItem {
594
+ id: ClipperModule;
595
+ models: ClipperDashboardModelItem[];
596
+ newItems: number;
597
+ unreadItems: number;
598
+ lastUpdated?: Date;
602
599
  }
603
- declare class ClipperDashboard {
604
- items: i0.WritableSignal<ClipperDashboardItem[]>;
605
- isTrial?: boolean;
606
- expiredDeadlines?: number;
607
- expiringDeadlines?: number;
608
- documentUpdates?: number;
609
- unreadItems: Signal<[ClipperModule, number][]>;
610
- unreadItemsByModel: Signal<[ClipperModel, number][]>;
611
- /**
612
- * Increments (or decrements) the unread item counter for the given module or model.
613
- * Triggers a signal update so computed values and templates react to the change.
614
- * @param module - The `ClipperModule` whose counter should be adjusted.
615
- * @param model - Optional `ClipperModel` for sub-module granularity.
616
- * @param increment - Amount to add (use a negative value to decrement).
617
- */
618
- updateUnreadItems(module: ClipperModule, model: ClipperModel | undefined, increment: number): void;
619
- /**
620
- * Returns the unread-item count for the given module, or for a specific model within it.
621
- * @param module - The `ClipperModule` to query.
622
- * @param model - Optional `ClipperModel` for sub-module granularity.
623
- * @returns Number of unread items, or `0` when none are found.
624
- */
625
- getUnreadItems(module: ClipperModule, model?: ClipperModel): number;
626
- /**
627
- * Returns the sum of unread items across all tracked modules.
628
- * @returns Total unread-item count.
629
- */
630
- getTotalUnreadItems(): number;
600
+ export declare class ClipperDashboard {
601
+ items: import("@angular/core").WritableSignal<ClipperDashboardItem[]>;
602
+ isTrial?: boolean;
603
+ expiredDeadlines?: number;
604
+ expiringDeadlines?: number;
605
+ documentUpdates?: number;
606
+ unreadItems: Signal<[ClipperModule, number][]>;
607
+ unreadItemsByModel: Signal<[ClipperModel, number][]>;
608
+ /**
609
+ * Increments (or decrements) the unread item counter for the given module or model.
610
+ * Triggers a signal update so computed values and templates react to the change.
611
+ * @param module - The `ClipperModule` whose counter should be adjusted.
612
+ * @param model - Optional `ClipperModel` for sub-module granularity.
613
+ * @param increment - Amount to add (use a negative value to decrement).
614
+ */
615
+ updateUnreadItems(module: ClipperModule, model: ClipperModel | undefined, increment: number): void;
616
+ /**
617
+ * Returns the unread-item count for the given module, or for a specific model within it.
618
+ * @param module - The `ClipperModule` to query.
619
+ * @param model - Optional `ClipperModel` for sub-module granularity.
620
+ * @returns Number of unread items, or `0` when none are found.
621
+ */
622
+ getUnreadItems(module: ClipperModule, model?: ClipperModel): number;
623
+ /**
624
+ * Returns the sum of unread items across all tracked modules.
625
+ * @returns Total unread-item count.
626
+ */
627
+ getTotalUnreadItems(): number;
631
628
  }
632
- interface ClipperTopicInfo {
633
- id: string;
634
- name: string;
629
+ export interface ClipperTopicInfo {
630
+ id: string;
631
+ name: string;
635
632
  }
636
- declare enum ClipperCalendarState {
637
- Open = 101,
638
- Expired = 102,
639
- Expiring = 103,
640
- Closed = 104
633
+ export declare enum ClipperCalendarState {
634
+ Open = 101,
635
+ Expired = 102,
636
+ Expiring = 103,
637
+ Closed = 104
641
638
  }
642
- declare const ClipperCalendarStates: NameValueItem<ClipperCalendarState>[];
643
- declare class ClipperCalendarSearchParams {
644
- id?: string;
645
- fromDate?: Date;
646
- toDate?: Date;
647
- teamId?: string;
648
- text?: string;
649
- month?: number;
650
- year?: number;
651
- sortDescending?: boolean;
652
- state?: ClipperCalendarState;
653
- recurrentOnly?: boolean;
654
- first?: number;
655
- count?: number;
639
+ export declare const ClipperCalendarStates: NameValueItem<ClipperCalendarState>[];
640
+ export declare class ClipperCalendarSearchParams {
641
+ id?: string;
642
+ fromDate?: Date;
643
+ toDate?: Date;
644
+ teamId?: string;
645
+ text?: string;
646
+ month?: number;
647
+ year?: number;
648
+ sortDescending?: boolean;
649
+ state?: ClipperCalendarState;
650
+ recurrentOnly?: boolean;
651
+ first?: number;
652
+ count?: number;
656
653
  }
657
- declare class ClipperUtils {
658
- /**
659
- * Returns `true` when the given model corresponds to a readable document type
660
- * (i.e., can be opened in the document viewer).
661
- * @param model - The `ClipperModel` to test.
662
- */
663
- static isClipperModelReadable(model: ClipperModel): boolean;
664
- /**
665
- * Returns the `ClipperModule` that owns the given document, derived from its model type.
666
- * @param item - The document info object to inspect.
667
- * @returns The matching `ClipperModule`, or `undefined` when the model has no direct module mapping.
668
- */
669
- static getClipperModuleFromModel(item: ClipperDocumentInfo): ClipperModule | undefined;
670
- /**
671
- * Returns the display name for the given `ClipperModuleGroup`.
672
- * @param value - The module group enum value to look up.
673
- * @returns The group display name, or an empty string when not found.
674
- */
675
- static getClipperModuleGroupName(value: ClipperModuleGroup): string;
676
- /**
677
- * Returns the list of `ClipperModule` items belonging to the given module group.
678
- * @param value - The module group to filter by.
679
- * @returns Array of matching `NameValueItem` entries.
680
- */
681
- static getClipperModuleGroupItems(value: ClipperModuleGroup): NameValueItem<ClipperModule>[];
682
- /**
683
- * Tests a set of modules against the currently selected modules in the search filter.
684
- * @param modules - The modules to test.
685
- * @param currentModules - The currently selected modules to check against.
686
- * @param mode - Matching strategy:
687
- * `1` = all and only the specified modules (exact set),
688
- * `2` = all specified modules must be present,
689
- * `3` = at least one specified module must be present.
690
- * @returns `true` when the condition defined by `mode` is satisfied.
691
- */
692
- private static checkModules;
693
- /**
694
- * Returns the sort options available for the given module selection.
695
- * Includes the relevance option only when the query contains free text.
696
- * @param modules - Currently selected modules (used to determine which date axes are available).
697
- * @param params - Current search params (checked for free-text content).
698
- * @returns Array of applicable `NameValueItem<ClipperSort>` sort options.
699
- */
700
- static getClipperAvailableSortOptions(modules?: NameValueItem<ClipperModule>[], params?: ClipperSearchParams): NameValueItem<ClipperSort>[];
654
+ export declare class ClipperUtils {
655
+ /**
656
+ * Returns `true` when the given model corresponds to a readable document type
657
+ * (i.e., can be opened in the document viewer).
658
+ * @param model - The `ClipperModel` to test.
659
+ */
660
+ static isClipperModelReadable(model: ClipperModel): boolean;
661
+ /**
662
+ * Returns the `ClipperModule` that owns the given document, derived from its model type.
663
+ * @param item - The document info object to inspect.
664
+ * @returns The matching `ClipperModule`, or `undefined` when the model has no direct module mapping.
665
+ */
666
+ static getClipperModuleFromModel(item: ClipperDocumentInfo): ClipperModule | undefined;
667
+ /**
668
+ * Returns the display name for the given `ClipperModuleGroup`.
669
+ * @param value - The module group enum value to look up.
670
+ * @returns The group display name, or an empty string when not found.
671
+ */
672
+ static getClipperModuleGroupName(value: ClipperModuleGroup): string;
673
+ /**
674
+ * Returns the list of `ClipperModule` items belonging to the given module group.
675
+ * @param value - The module group to filter by.
676
+ * @returns Array of matching `NameValueItem` entries.
677
+ */
678
+ static getClipperModuleGroupItems(value: ClipperModuleGroup): NameValueItem<ClipperModule>[];
679
+ /**
680
+ * Tests a set of modules against the currently selected modules in the search filter.
681
+ * @param modules - The modules to test.
682
+ * @param currentModules - The currently selected modules to check against.
683
+ * @param mode - Matching strategy:
684
+ * `1` = all and only the specified modules (exact set),
685
+ * `2` = all specified modules must be present,
686
+ * `3` = at least one specified module must be present.
687
+ * @returns `true` when the condition defined by `mode` is satisfied.
688
+ */
689
+ private static checkModules;
690
+ /**
691
+ * Returns the sort options available for the given module selection.
692
+ * Includes the relevance option only when the query contains free text.
693
+ * @param modules - Currently selected modules (used to determine which date axes are available).
694
+ * @param params - Current search params (checked for free-text content).
695
+ * @returns Array of applicable `NameValueItem<ClipperSort>` sort options.
696
+ */
697
+ static getClipperAvailableSortOptions(modules?: NameValueItem<ClipperModule>[], params?: ClipperSearchParams): NameValueItem<ClipperSort>[];
701
698
  }
702
- declare class ClipperSearchUtils {
703
- /**
704
- * Resets all filter fields of a `ClipperSearchParams` instance to their default (empty) values.
705
- * @param params - The search-params object to clear.
706
- */
707
- static clear(params: ClipperSearchParams): void;
708
- /**
709
- * Returns the list of `ClipperModel` values that correspond to the given modules.
710
- * @param modules - The selected modules to map to their underlying data models.
711
- * @returns Array of `ClipperModel` values matching the provided modules.
712
- */
713
- static getModulesModels(modules?: NameValueItem<ClipperModule>[]): ClipperModel[];
714
- /**
715
- * Returns `true` when the search params contain a non-empty free-text query.
716
- * @param params - The search params to inspect.
717
- */
718
- static isTextQuery(params: ClipperSearchParams): boolean;
719
- /**
720
- * Wraps `q` in quotes (if not already quoted) and appends it to `queries`.
721
- * @param q - A single search term to process.
722
- * @param queries - The accumulated query string to append to.
723
- * @returns The updated `queries` string.
724
- */
725
- private static concatTextQuery;
726
- /**
727
- * Normalises a comma-separated search string by wrapping each term in quotes.
728
- * @param text - The raw search input to normalise.
729
- * @returns The normalised query string, or `undefined` when `text` is empty.
730
- */
731
- static normalizeTextQuery(text: string): string | undefined;
732
- /**
733
- * Wraps the entire query in double quotes when it contains no boolean operators
734
- * (`"`, `+`, or ` -`), making it an exact-phrase search.
735
- * @param text - The query string to normalise.
736
- * @returns The normalised query string.
737
- */
738
- static normalizeTextQuery2(text: string): string;
739
- /**
740
- * Maps a letter rank (`A`, `B`, or any other) to a numeric relevance threshold.
741
- * @param value - The single-character rank string.
742
- * @returns `0.751` for `'A'`, `0.71` for `'B'`, `0.51` for anything else.
743
- */
744
- static getRankFromChar(value: string): number;
699
+ export declare class ClipperSearchUtils {
700
+ /**
701
+ * Resets all filter fields of a `ClipperSearchParams` instance to their default (empty) values.
702
+ * @param params - The search-params object to clear.
703
+ */
704
+ static clear(params: ClipperSearchParams): void;
705
+ /**
706
+ * Returns the list of `ClipperModel` values that correspond to the given modules.
707
+ * @param modules - The selected modules to map to their underlying data models.
708
+ * @returns Array of `ClipperModel` values matching the provided modules.
709
+ */
710
+ static getModulesModels(modules?: NameValueItem<ClipperModule>[]): ClipperModel[];
711
+ /**
712
+ * Returns `true` when the search params contain a non-empty free-text query.
713
+ * @param params - The search params to inspect.
714
+ */
715
+ static isTextQuery(params: ClipperSearchParams): boolean;
716
+ /**
717
+ * Wraps `q` in quotes (if not already quoted) and appends it to `queries`.
718
+ * @param q - A single search term to process.
719
+ * @param queries - The accumulated query string to append to.
720
+ * @returns The updated `queries` string.
721
+ */
722
+ private static concatTextQuery;
723
+ /**
724
+ * Normalises a comma-separated search string by wrapping each term in quotes.
725
+ * @param text - The raw search input to normalise.
726
+ * @returns The normalised query string, or `undefined` when `text` is empty.
727
+ */
728
+ static normalizeTextQuery(text: string): string | undefined;
729
+ /**
730
+ * Wraps the entire query in double quotes when it contains no boolean operators
731
+ * (`"`, `+`, or ` -`), making it an exact-phrase search.
732
+ * @param text - The query string to normalise.
733
+ * @returns The normalised query string.
734
+ */
735
+ static normalizeTextQuery2(text: string): string;
736
+ /**
737
+ * Maps a letter rank (`A`, `B`, or any other) to a numeric relevance threshold.
738
+ * @param value - The single-character rank string.
739
+ * @returns `0.751` for `'A'`, `0.71` for `'B'`, `0.51` for anything else.
740
+ */
741
+ static getRankFromChar(value: string): number;
745
742
  }
746
-
747
743
  /**
748
744
  * Builds the Clipper auth HTTP interceptor.
749
745
  *
@@ -788,8 +784,7 @@ declare class ClipperSearchUtils {
788
784
  * @param flags - Service flags (e.g. NotifySystemErrors). Defaults to None.
789
785
  * @returns An `HttpInterceptorFn` ready to register.
790
786
  */
791
- declare function clipperAuthInterceptor(serviceUri: string, flags?: ClipperServiceFlags): HttpInterceptorFn;
792
-
787
+ export declare function clipperAuthInterceptor(serviceUri: string, flags?: ClipperServiceFlags): HttpInterceptorFn;
793
788
  /**
794
789
  * The two pieces of account state the document views actually move: which channels are
795
790
  * active, and the unread counters on the dashboard.
@@ -803,200 +798,198 @@ declare function clipperAuthInterceptor(serviceUri: string, flags?: ClipperServi
803
798
  * What is left touches no HTTP: both methods only mutate the shared state in
804
799
  * `ClipperCoreService` and announce the change on the broadcast bus.
805
800
  */
806
- declare class ClipperAccountService {
807
- private readonly broadcastService;
808
- private readonly core;
809
- /**
810
- * Toggles the active state of available channels based on the supplied selection list.
811
- * @param values - The selected channel items; channels absent from this list are deactivated.
812
- */
813
- updateChannels(values: NameValueItem<ClipperChannel>[]): void;
814
- /**
815
- * Adjusts the unread-item counter for the given module and broadcasts a dashboard update.
816
- * @param module - The Clipper module whose counter should be adjusted.
817
- * @param model - Optional document model to further scope the counter update.
818
- * @param increment - The signed increment to apply (use negative values to decrement).
819
- */
820
- updateUnreadItems(module: ClipperModule, model?: ClipperModel, increment?: number): void;
821
- static ɵfac: i0.ɵɵFactoryDeclaration<ClipperAccountService, never>;
822
- static ɵprov: i0.ɵɵInjectableDeclaration<any>;
801
+ export declare class ClipperAccountService {
802
+ private readonly broadcastService;
803
+ private readonly core;
804
+ /**
805
+ * Toggles the active state of available channels based on the supplied selection list.
806
+ * @param values - The selected channel items; channels absent from this list are deactivated.
807
+ */
808
+ updateChannels(values: NameValueItem<ClipperChannel>[]): void;
809
+ /**
810
+ * Adjusts the unread-item counter for the given module and broadcasts a dashboard update.
811
+ * @param module - The Clipper module whose counter should be adjusted.
812
+ * @param model - Optional document model to further scope the counter update.
813
+ * @param increment - The signed increment to apply (use negative values to decrement).
814
+ */
815
+ updateUnreadItems(module: ClipperModule, model?: ClipperModel, increment?: number): void;
816
+ static ɵfac: i0.ɵɵFactoryDeclaration<ClipperAccountService, never>;
817
+ static ɵprov: i0.ɵɵInjectableDeclaration<any>;
823
818
  }
824
-
825
819
  /**
826
820
  * Document search, references, export and metadata, plus the dashboard counters,
827
821
  * taxonomy/topics/tags lookups, the working-documents "bag" and saved searches.
828
822
  */
829
- declare class ClipperDocumentsService {
830
- private readonly httpClient;
831
- private readonly broadcastService;
832
- private readonly core;
833
- /**
834
- * Queries documents matching the given search parameters.
835
- * @param params - The document search parameters.
836
- * @returns An observable emitting the API result wrapping the search result.
837
- */
838
- query(params: ClipperSearchParams): rxjs.Observable<ApiResult<ClipperSearchResult>>;
839
- /**
840
- * Retrieves the facets for a document query.
841
- * @param params - The document search parameters.
842
- * @returns An observable emitting the API result wrapping the search facets.
843
- */
844
- queryFacets(params: ClipperSearchParams): rxjs.Observable<ApiResult<ClipperSearchFacetsResult>>;
845
- /**
846
- * Updates the state of one or more documents.
847
- * @param params - The document state update parameters.
848
- * @returns An observable emitting the API result wrapping the number of updated documents.
849
- */
850
- updateState(params: ClipperDocumentUpdateStateParams): rxjs.Observable<ApiResult<number>>;
851
- /**
852
- * Exports a single document in PDF format.
853
- * @param id - The ID of the document to export.
854
- * @returns An observable emitting the PDF binary content as a blob.
855
- */
856
- exportPdf(id: string): rxjs.Observable<Blob>;
857
- /**
858
- * Exports a document list (query or selected items), or exports deadlines as ICS.
859
- * @param params - The export parameters.
860
- * @returns An observable emitting the exported content as a blob.
861
- */
862
- export(params: ClipperExportDocumentsParams): rxjs.Observable<Blob>;
863
- /**
864
- * Sends document links by email.
865
- * @param params - The send-by-email parameters including recipients and documents.
866
- * @returns An observable emitting the API result wrapping the number of sent items.
867
- */
868
- sendTo(params: ClipperSendDocumentsByEmailParams): rxjs.Observable<ApiResult<number>>;
869
- /**
870
- * Retrieves the full document report page.
871
- * @param id - The ID of the document.
872
- * @returns An observable emitting the report content as a blob.
873
- */
874
- report(id: string): rxjs.Observable<Blob>;
875
- /**
876
- * Gets the comment associated with a document.
877
- * @param id - The ID of the document.
878
- * @returns An observable emitting the API result wrapping the comment text.
879
- */
880
- comment(id: string): rxjs.Observable<ApiResult<string>>;
881
- /**
882
- * Gets the info for a document.
883
- * @param id - The ID of the document.
884
- * @returns An observable emitting the API result wrapping the document info.
885
- */
886
- info(id: string): rxjs.Observable<ApiResult<ClipperDocumentInfo>>;
887
- /**
888
- * Gets the structure (index) of a document.
889
- * @param id - The ID of the document.
890
- * @returns An observable emitting the API result wrapping the document structure.
891
- */
892
- index(id: string): rxjs.Observable<ApiResult<ClipperDocumentStructure>>;
893
- /**
894
- * Gets the last-update metadata for a document.
895
- *
896
- * The response carries two things, not one: the last-update string and the shared notes attached
897
- * to the document. The second was long left undeclared here, so a consumer of this library could
898
- * not see data the API had already sent it.
899
- * @param id - The ID of the document.
900
- * @returns An observable emitting the API result wrapping the last update string and its notes.
901
- */
902
- metadata(id: string): rxjs.Observable<ApiResult<{
903
- item1?: string;
904
- item2?: ClipperDocumentNote[];
905
- }>>;
906
- /**
907
- * Queries document references, changes or jurisprudence depending on the requested mode.
908
- * @param params - The references search parameters; `mode` defaults to `ReferencesIn`.
909
- * @returns An observable emitting the API result wrapping the search result, or `null` for an unsupported mode.
910
- */
911
- references(params: ClipperReferencesSearchParams): rxjs.Observable<ApiResult<ClipperSearchResult>>;
912
- /**
913
- * Retrieves the facets for a document references query.
914
- * @param params - The references search parameters; `mode` defaults to `ReferencesIn`.
915
- * @returns An observable emitting the API result wrapping the search facets, or `null` for an unsupported mode.
916
- */
917
- referencesFacets(params: ClipperReferencesSearchParams): rxjs.Observable<ApiResult<ClipperSearchFacetsResult>>;
918
- /**
919
- * Wraps document rendering to allow token refresh.
920
- * @returns An observable emitting the API result wrapping a boolean readiness flag.
921
- */
922
- preRender(): rxjs.Observable<ApiResult<boolean>>;
923
- /**
924
- * Gets the jurisprudence articles for a document query.
925
- * @param params - The document search parameters.
926
- * @returns An observable emitting the API result wrapping the search result.
927
- */
928
- jurisArticles(params: ClipperSearchParams): rxjs.Observable<ApiResult<ClipperSearchResult>>;
929
- /**
930
- * Gets a deadlines snapshot based on the supplied deadlines.
931
- * @param params - The calendar search parameters.
932
- * @returns An observable emitting the API result wrapping the calendar snapshot result.
933
- */
934
- deadlinesSnapshot(params: ClipperCalendarSearchParams): rxjs.Observable<ApiResult<ClipperSearchCalendarSnapshotResult>>;
935
- /**
936
- * Retrieves the taxonomy.
937
- * @param params - Optional taxonomy parameters. Defaults to `{ model: 0, countItems: false }`.
938
- * @returns An observable emitting the API result wrapping the taxonomy folder tree.
939
- */
940
- getTaxonomy(params?: ClipperTaxonomyParams): rxjs.Observable<ApiResult<FolderTree>>;
941
- /**
942
- * Retrieves the topics as a flat list.
943
- * @returns An observable emitting the API result wrapping the list of topics.
944
- */
945
- getTopics(): rxjs.Observable<ApiResult<NameValueItem<string>[]>>;
946
- /**
947
- * Retrieves the topics as a tree.
948
- * @returns An observable emitting the API result wrapping the topics folder tree.
949
- */
950
- getTopicsAsTree(): rxjs.Observable<ApiResult<FolderTree>>;
951
- /**
952
- * Retrieves the tags.
953
- * @returns An observable emitting the API result wrapping the list of tags.
954
- */
955
- getTags(): rxjs.Observable<ApiResult<NameValueItem<string>[]>>;
956
- /**
957
- * Loads the working documents and populates the shared bag.
958
- * @returns The subscription to the working-documents request.
959
- */
960
- loadBag(): rxjs.Subscription;
961
- /**
962
- * Adds one or more documents to the working documents bag.
963
- * @param documentIds - The IDs of the documents to add.
964
- * @returns The subscription to the add-to-bag request.
965
- */
966
- addToBag(documentIds: string[]): rxjs.Subscription;
967
- /**
968
- * Removes a document from the working documents bag.
969
- * @param documentId - The ID of the document to remove.
970
- * @returns The subscription to the remove-from-bag request.
971
- */
972
- removeFromBag(documentId: string): rxjs.Subscription;
973
- /**
974
- * Clears all working documents from the bag.
975
- * @returns The subscription to the clear-bag request.
976
- */
977
- clearBag(): rxjs.Subscription;
978
- /**
979
- * Retrieves the saved searches for the given module.
980
- * @param module - The Clipper module whose saved searches to load.
981
- * @returns An observable emitting the API result wrapping the list of saved searches.
982
- */
983
- loadSearches(module: ClipperModule): rxjs.Observable<ApiResult<ClipperUserSearch[]>>;
984
- /**
985
- * Persists a user search configuration on the server.
986
- * @param params - The search configuration to save.
987
- * @returns An observable emitting the API result wrapping the saved search.
988
- */
989
- saveSearch(params: ClipperUserSearch): rxjs.Observable<ApiResult<ClipperUserSearch>>;
990
- /**
991
- * Deletes a saved search by its ID.
992
- * @param id - The ID of the saved search to remove.
993
- * @returns An observable emitting the API result wrapping the number of deleted searches.
994
- */
995
- deleteSearch(id: number): rxjs.Observable<ApiResult<number>>;
996
- static ɵfac: i0.ɵɵFactoryDeclaration<ClipperDocumentsService, never>;
997
- static ɵprov: i0.ɵɵInjectableDeclaration<any>;
823
+ export declare class ClipperDocumentsService {
824
+ private readonly httpClient;
825
+ private readonly broadcastService;
826
+ private readonly core;
827
+ /**
828
+ * Queries documents matching the given search parameters.
829
+ * @param params - The document search parameters.
830
+ * @returns An observable emitting the API result wrapping the search result.
831
+ */
832
+ query(params: ClipperSearchParams): import("rxjs").Observable<ApiResult<ClipperSearchResult>>;
833
+ /**
834
+ * Retrieves the facets for a document query.
835
+ * @param params - The document search parameters.
836
+ * @returns An observable emitting the API result wrapping the search facets.
837
+ */
838
+ queryFacets(params: ClipperSearchParams): import("rxjs").Observable<ApiResult<ClipperSearchFacetsResult>>;
839
+ /**
840
+ * Updates the state of one or more documents.
841
+ * @param params - The document state update parameters.
842
+ * @returns An observable emitting the API result wrapping the number of updated documents.
843
+ */
844
+ updateState(params: ClipperDocumentUpdateStateParams): import("rxjs").Observable<ApiResult<number>>;
845
+ /**
846
+ * Exports a single document in PDF format.
847
+ * @param id - The ID of the document to export.
848
+ * @returns An observable emitting the PDF binary content as a blob.
849
+ */
850
+ exportPdf(id: string): import("rxjs").Observable<Blob>;
851
+ /**
852
+ * Exports a document list (query or selected items), or exports deadlines as ICS.
853
+ * @param params - The export parameters.
854
+ * @returns An observable emitting the exported content as a blob.
855
+ */
856
+ export(params: ClipperExportDocumentsParams): import("rxjs").Observable<Blob>;
857
+ /**
858
+ * Sends document links by email.
859
+ * @param params - The send-by-email parameters including recipients and documents.
860
+ * @returns An observable emitting the API result wrapping the number of sent items.
861
+ */
862
+ sendTo(params: ClipperSendDocumentsByEmailParams): import("rxjs").Observable<ApiResult<number>>;
863
+ /**
864
+ * Retrieves the full document report page.
865
+ * @param id - The ID of the document.
866
+ * @returns An observable emitting the report content as a blob.
867
+ */
868
+ report(id: string): import("rxjs").Observable<Blob>;
869
+ /**
870
+ * Gets the comment associated with a document.
871
+ * @param id - The ID of the document.
872
+ * @returns An observable emitting the API result wrapping the comment text.
873
+ */
874
+ comment(id: string): import("rxjs").Observable<ApiResult<string>>;
875
+ /**
876
+ * Gets the info for a document.
877
+ * @param id - The ID of the document.
878
+ * @returns An observable emitting the API result wrapping the document info.
879
+ */
880
+ info(id: string): import("rxjs").Observable<ApiResult<ClipperDocumentInfo>>;
881
+ /**
882
+ * Gets the structure (index) of a document.
883
+ * @param id - The ID of the document.
884
+ * @returns An observable emitting the API result wrapping the document structure.
885
+ */
886
+ index(id: string): import("rxjs").Observable<ApiResult<ClipperDocumentStructure>>;
887
+ /**
888
+ * Gets the last-update metadata for a document.
889
+ *
890
+ * The response carries two things, not one: the last-update string and the shared notes attached
891
+ * to the document. The second was long left undeclared here, so a consumer of this library could
892
+ * not see data the API had already sent it.
893
+ * @param id - The ID of the document.
894
+ * @returns An observable emitting the API result wrapping the last update string and its notes.
895
+ */
896
+ metadata(id: string): import("rxjs").Observable<ApiResult<{
897
+ item1?: string;
898
+ item2?: ClipperDocumentNote[];
899
+ }>>;
900
+ /**
901
+ * Queries document references, changes or jurisprudence depending on the requested mode.
902
+ * @param params - The references search parameters; `mode` defaults to `ReferencesIn`.
903
+ * @returns An observable emitting the API result wrapping the search result, or `null` for an unsupported mode.
904
+ */
905
+ references(params: ClipperReferencesSearchParams): import("rxjs").Observable<ApiResult<ClipperSearchResult>>;
906
+ /**
907
+ * Retrieves the facets for a document references query.
908
+ * @param params - The references search parameters; `mode` defaults to `ReferencesIn`.
909
+ * @returns An observable emitting the API result wrapping the search facets, or `null` for an unsupported mode.
910
+ */
911
+ referencesFacets(params: ClipperReferencesSearchParams): import("rxjs").Observable<ApiResult<ClipperSearchFacetsResult>>;
912
+ /**
913
+ * Wraps document rendering to allow token refresh.
914
+ * @returns An observable emitting the API result wrapping a boolean readiness flag.
915
+ */
916
+ preRender(): import("rxjs").Observable<ApiResult<boolean>>;
917
+ /**
918
+ * Gets the jurisprudence articles for a document query.
919
+ * @param params - The document search parameters.
920
+ * @returns An observable emitting the API result wrapping the search result.
921
+ */
922
+ jurisArticles(params: ClipperSearchParams): import("rxjs").Observable<ApiResult<ClipperSearchResult>>;
923
+ /**
924
+ * Gets a deadlines snapshot based on the supplied deadlines.
925
+ * @param params - The calendar search parameters.
926
+ * @returns An observable emitting the API result wrapping the calendar snapshot result.
927
+ */
928
+ deadlinesSnapshot(params: ClipperCalendarSearchParams): import("rxjs").Observable<ApiResult<ClipperSearchCalendarSnapshotResult>>;
929
+ /**
930
+ * Retrieves the taxonomy.
931
+ * @param params - Optional taxonomy parameters. Defaults to `{ model: 0, countItems: false }`.
932
+ * @returns An observable emitting the API result wrapping the taxonomy folder tree.
933
+ */
934
+ getTaxonomy(params?: ClipperTaxonomyParams): import("rxjs").Observable<ApiResult<FolderTree>>;
935
+ /**
936
+ * Retrieves the topics as a flat list.
937
+ * @returns An observable emitting the API result wrapping the list of topics.
938
+ */
939
+ getTopics(): import("rxjs").Observable<ApiResult<NameValueItem<string>[]>>;
940
+ /**
941
+ * Retrieves the topics as a tree.
942
+ * @returns An observable emitting the API result wrapping the topics folder tree.
943
+ */
944
+ getTopicsAsTree(): import("rxjs").Observable<ApiResult<FolderTree>>;
945
+ /**
946
+ * Retrieves the tags.
947
+ * @returns An observable emitting the API result wrapping the list of tags.
948
+ */
949
+ getTags(): import("rxjs").Observable<ApiResult<NameValueItem<string>[]>>;
950
+ /**
951
+ * Loads the working documents and populates the shared bag.
952
+ * @returns The subscription to the working-documents request.
953
+ */
954
+ loadBag(): import("rxjs").Subscription;
955
+ /**
956
+ * Adds one or more documents to the working documents bag.
957
+ * @param documentIds - The IDs of the documents to add.
958
+ * @returns The subscription to the add-to-bag request.
959
+ */
960
+ addToBag(documentIds: string[]): import("rxjs").Subscription;
961
+ /**
962
+ * Removes a document from the working documents bag.
963
+ * @param documentId - The ID of the document to remove.
964
+ * @returns The subscription to the remove-from-bag request.
965
+ */
966
+ removeFromBag(documentId: string): import("rxjs").Subscription;
967
+ /**
968
+ * Clears all working documents from the bag.
969
+ * @returns The subscription to the clear-bag request.
970
+ */
971
+ clearBag(): import("rxjs").Subscription;
972
+ /**
973
+ * Retrieves the saved searches for the given module.
974
+ * @param module - The Clipper module whose saved searches to load.
975
+ * @returns An observable emitting the API result wrapping the list of saved searches.
976
+ */
977
+ loadSearches(module: ClipperModule): import("rxjs").Observable<ApiResult<ClipperUserSearch[]>>;
978
+ /**
979
+ * Persists a user search configuration on the server.
980
+ * @param params - The search configuration to save.
981
+ * @returns An observable emitting the API result wrapping the saved search.
982
+ */
983
+ saveSearch(params: ClipperUserSearch): import("rxjs").Observable<ApiResult<ClipperUserSearch>>;
984
+ /**
985
+ * Deletes a saved search by its ID.
986
+ * @param id - The ID of the saved search to remove.
987
+ * @returns An observable emitting the API result wrapping the number of deleted searches.
988
+ */
989
+ deleteSearch(id: number): import("rxjs").Observable<ApiResult<number>>;
990
+ static ɵfac: i0.ɵɵFactoryDeclaration<ClipperDocumentsService, never>;
991
+ static ɵprov: i0.ɵɵInjectableDeclaration<any>;
998
992
  }
999
-
1000
993
  /**
1001
994
  * Authentication: password login, e-mailed code confirmation, logout and session restore.
1002
995
  * The login context, the channels and the logged-in flag live in `ClipperCoreService`.
@@ -1010,134 +1003,133 @@ declare class ClipperDocumentsService {
1010
1003
  * the passwordless recovery code (`/session/otp`) are not here: a library whose job is showing
1011
1004
  * documents signs in with a password, and an application that offers the other ways in owns them.
1012
1005
  */
1013
- declare class ClipperLoginService {
1014
- private readonly httpClient;
1015
- private readonly broadcastService;
1016
- private readonly splashService;
1017
- private readonly core;
1018
- /** Whether {@link initialize} has already run. */
1019
- private initialized;
1020
- /**
1021
- * Gets the signed-in account.
1022
- * @returns The current {@link ClipperUserInfo}, or `undefined` when there is no session.
1023
- */
1024
- get user(): ClipperUserInfo | undefined;
1025
- /**
1026
- * Establishes the session state at bootstrap by asking the API — the only party that can read the
1027
- * HttpOnly cookie — whether this browser still holds one.
1028
- *
1029
- * Called by `ClipperService.initialize`, right after `ClipperCoreService.initialize`, so a
1030
- * consumer gets the restore for free and never has to know this method exists.
1031
- *
1032
- * The probe now runs UNCONDITIONALLY, where it used to run only when a stored context existed.
1033
- * The stored context is just a hint — "this browser signed in at some point" — and the cookie can
1034
- * outlive it: local storage cleared while the month-long cookie stayed put made this library
1035
- * declare "no link" with a perfectly valid session in the browser. The API is the only source of
1036
- * truth on the matter, so it is asked every time.
1037
- *
1038
- * A host application that drives its own return from an external provider, or that starts on its
1039
- * own sign-in page, should call `core.setLoggedIn(false)` before bootstrapping rather than let
1040
- * this race its own restore.
1041
- * @returns void
1042
- */
1043
- initialize(): void;
1044
- /**
1045
- * Asks `/session/status` whether this browser holds a live session, and hydrates the context
1046
- * through {@link me} when it does.
1047
- *
1048
- * The probe is silent by construction: `/session/status` never answers 401, so a visitor who
1049
- * never signed in — or a cookie whose session has died — comes back as `connected: false` with no
1050
- * error broadcast and no dialog. Only then is the stale stored context cleared, so the `loggedIn`
1051
- * signal tells the truth at every bootstrap.
1052
- *
1053
- * Nothing is cleared on a transport failure, and that is deliberate: an unreachable API is not
1054
- * proof of a dead session — the proxy may have answered 502, the device may be offline — and
1055
- * clearing on any of those would sign the user out with a perfectly valid cookie.
1056
- * @returns void
1057
- */
1058
- private restoreSession;
1059
- /**
1060
- * Authenticates the user with email and password.
1061
- *
1062
- * Nothing is replayed from a stored credential any more: the former "remember me" token, which
1063
- * let the API sign a caller in from something kept for sixty days, is gone. A login always starts
1064
- * from what the user just typed.
1065
- * @param email - The user's email address.
1066
- * @param password - The user's password.
1067
- * @returns An observable emitting the API result wrapping the login result.
1068
- */
1069
- login(email?: string, password?: string): Observable<ApiResult<ClipperLoginResult>>;
1070
- /**
1071
- * Confirms a pending e-mailed code challenge, which establishes the session.
1072
- *
1073
- * The address travels with the code because the API stores each code under the account it was
1074
- * issued to: a code alone is not redeemable, which is what stops a guessed code from opening
1075
- * whatever session happens to be pending. It also keeps the code out of the URL, where it used to
1076
- * sit — `/login/confirm/{code}` put it in the path, and therefore in the server logs and in the
1077
- * browser history.
1078
- * @param code - The one-time confirmation code provided to the user.
1079
- * @param email - The address the code was sent to.
1080
- * @returns An observable emitting the API result wrapping the login result.
1081
- */
1082
- confirm(code: string, email?: string): Observable<ApiResult<ClipperLoginResult>>;
1083
- /**
1084
- * Logs the user out on the server and clears the local state.
1085
- * @returns An observable that emits once the logout has been processed.
1086
- */
1087
- logout(): Observable<ApiResult<unknown>>;
1088
- /**
1089
- * Asks the API whether this browser holds a live session, without ever failing with a 401: the
1090
- * route is anonymous and answers `connected: false` to a caller with no session. This is the one
1091
- * honest way to know the link state — the auth cookie is HttpOnly and belongs to the API's host,
1092
- * so it cannot be read from here, and its presence would prove nothing anyway, since the session
1093
- * also lives server-side and may have been revoked or evicted.
1094
- * @returns An observable emitting the API result wrapping the session status.
1095
- */
1096
- status(): Observable<ApiResult<ClipperSessionStatus>>;
1097
- /**
1098
- * Reads the current session from the server, which resolves it from the auth cookie claims
1099
- * without touching the database. Used to restore the state after a page refresh instead of
1100
- * trusting what local storage holds, and to close an external-provider round-trip.
1101
- * @returns An observable emitting the current session.
1102
- */
1103
- me(): Observable<ApiResult<ClipperLoginResult>>;
1104
- /**
1105
- * Finalises the login flow after an authentication, a code confirmation or a session restore:
1106
- * writes the context into the shared state, raises the logged-in signal, rebuilds the channel
1107
- * list and announces `LOGIN_COMPLETED`.
1108
- *
1109
- * `loggingIn` is deliberately left alone. Whoever raised it lowers it — {@link restoreSession}
1110
- * for a refresh, the host application for an external-login round-trip — because lowering it
1111
- * here would drop the splash the instant the response arrived, before anything was on screen.
1112
- * @param result - The login result returned by the API.
1113
- * @param notify - Whether to broadcast `LOGIN_COMPLETED`. Defaults to `true`.
1114
- * @returns void
1115
- */
1116
- private completeLogin;
1117
- /**
1118
- * Requests a new one-time password used to authorise a binary download.
1119
- * @param id - The repository ID of the binary the OTP is generated for.
1120
- * @returns An observable emitting the API result wrapping the generated OTP info.
1121
- */
1122
- newOTP(id: string): Observable<ApiResult<ClipperOTPInfo>>;
1123
- /**
1124
- * Persists the current login context to `localStorage`.
1125
- * Delegates to `ClipperCoreService.storeContext()`.
1126
- * @returns void
1127
- */
1128
- storeContext(): void;
1129
- /**
1130
- * Clears every trace of the current session on this device: the stored context, the logged-in
1131
- * signal and the session-storage keys. Does NOT call the server — use {@link logout} for that.
1132
- * Delegates to `ClipperCoreService.clear()`.
1133
- * @param clearOAuthToken - Whether to drop the legacy OAuth token too. Defaults to `true`.
1134
- * @returns void
1135
- */
1136
- clear(clearOAuthToken?: boolean): void;
1137
- static ɵfac: i0.ɵɵFactoryDeclaration<ClipperLoginService, never>;
1138
- static ɵprov: i0.ɵɵInjectableDeclaration<any>;
1006
+ export declare class ClipperLoginService {
1007
+ private readonly httpClient;
1008
+ private readonly broadcastService;
1009
+ private readonly splashService;
1010
+ private readonly core;
1011
+ /** Whether {@link initialize} has already run. */
1012
+ private initialized;
1013
+ /**
1014
+ * Gets the signed-in account.
1015
+ * @returns The current {@link ClipperUserInfo}, or `undefined` when there is no session.
1016
+ */
1017
+ get user(): ClipperUserInfo | undefined;
1018
+ /**
1019
+ * Establishes the session state at bootstrap by asking the API — the only party that can read the
1020
+ * HttpOnly cookie — whether this browser still holds one.
1021
+ *
1022
+ * Called by `ClipperService.initialize`, right after `ClipperCoreService.initialize`, so a
1023
+ * consumer gets the restore for free and never has to know this method exists.
1024
+ *
1025
+ * The probe now runs UNCONDITIONALLY, where it used to run only when a stored context existed.
1026
+ * The stored context is just a hint — "this browser signed in at some point" — and the cookie can
1027
+ * outlive it: local storage cleared while the month-long cookie stayed put made this library
1028
+ * declare "no link" with a perfectly valid session in the browser. The API is the only source of
1029
+ * truth on the matter, so it is asked every time.
1030
+ *
1031
+ * A host application that drives its own return from an external provider, or that starts on its
1032
+ * own sign-in page, should call `core.setLoggedIn(false)` before bootstrapping rather than let
1033
+ * this race its own restore.
1034
+ * @returns void
1035
+ */
1036
+ initialize(): void;
1037
+ /**
1038
+ * Asks `/session/status` whether this browser holds a live session, and hydrates the context
1039
+ * through {@link me} when it does.
1040
+ *
1041
+ * The probe is silent by construction: `/session/status` never answers 401, so a visitor who
1042
+ * never signed in — or a cookie whose session has died — comes back as `connected: false` with no
1043
+ * error broadcast and no dialog. Only then is the stale stored context cleared, so the `loggedIn`
1044
+ * signal tells the truth at every bootstrap.
1045
+ *
1046
+ * Nothing is cleared on a transport failure, and that is deliberate: an unreachable API is not
1047
+ * proof of a dead session — the proxy may have answered 502, the device may be offline — and
1048
+ * clearing on any of those would sign the user out with a perfectly valid cookie.
1049
+ * @returns void
1050
+ */
1051
+ private restoreSession;
1052
+ /**
1053
+ * Authenticates the user with email and password.
1054
+ *
1055
+ * Nothing is replayed from a stored credential any more: the former "remember me" token, which
1056
+ * let the API sign a caller in from something kept for sixty days, is gone. A login always starts
1057
+ * from what the user just typed.
1058
+ * @param email - The user's email address.
1059
+ * @param password - The user's password.
1060
+ * @returns An observable emitting the API result wrapping the login result.
1061
+ */
1062
+ login(email?: string, password?: string): Observable<ApiResult<ClipperLoginResult>>;
1063
+ /**
1064
+ * Confirms a pending e-mailed code challenge, which establishes the session.
1065
+ *
1066
+ * The address travels with the code because the API stores each code under the account it was
1067
+ * issued to: a code alone is not redeemable, which is what stops a guessed code from opening
1068
+ * whatever session happens to be pending. It also keeps the code out of the URL, where it used to
1069
+ * sit — `/login/confirm/{code}` put it in the path, and therefore in the server logs and in the
1070
+ * browser history.
1071
+ * @param code - The one-time confirmation code provided to the user.
1072
+ * @param email - The address the code was sent to.
1073
+ * @returns An observable emitting the API result wrapping the login result.
1074
+ */
1075
+ confirm(code: string, email?: string): Observable<ApiResult<ClipperLoginResult>>;
1076
+ /**
1077
+ * Logs the user out on the server and clears the local state.
1078
+ * @returns An observable that emits once the logout has been processed.
1079
+ */
1080
+ logout(): Observable<ApiResult<unknown>>;
1081
+ /**
1082
+ * Asks the API whether this browser holds a live session, without ever failing with a 401: the
1083
+ * route is anonymous and answers `connected: false` to a caller with no session. This is the one
1084
+ * honest way to know the link state — the auth cookie is HttpOnly and belongs to the API's host,
1085
+ * so it cannot be read from here, and its presence would prove nothing anyway, since the session
1086
+ * also lives server-side and may have been revoked or evicted.
1087
+ * @returns An observable emitting the API result wrapping the session status.
1088
+ */
1089
+ status(): Observable<ApiResult<ClipperSessionStatus>>;
1090
+ /**
1091
+ * Reads the current session from the server, which resolves it from the auth cookie claims
1092
+ * without touching the database. Used to restore the state after a page refresh instead of
1093
+ * trusting what local storage holds, and to close an external-provider round-trip.
1094
+ * @returns An observable emitting the current session.
1095
+ */
1096
+ me(): Observable<ApiResult<ClipperLoginResult>>;
1097
+ /**
1098
+ * Finalises the login flow after an authentication, a code confirmation or a session restore:
1099
+ * writes the context into the shared state, raises the logged-in signal, rebuilds the channel
1100
+ * list and announces `LOGIN_COMPLETED`.
1101
+ *
1102
+ * `loggingIn` is deliberately left alone. Whoever raised it lowers it — {@link restoreSession}
1103
+ * for a refresh, the host application for an external-login round-trip — because lowering it
1104
+ * here would drop the splash the instant the response arrived, before anything was on screen.
1105
+ * @param result - The login result returned by the API.
1106
+ * @param notify - Whether to broadcast `LOGIN_COMPLETED`. Defaults to `true`.
1107
+ * @returns void
1108
+ */
1109
+ private completeLogin;
1110
+ /**
1111
+ * Requests a new one-time password used to authorise a binary download.
1112
+ * @param id - The repository ID of the binary the OTP is generated for.
1113
+ * @returns An observable emitting the API result wrapping the generated OTP info.
1114
+ */
1115
+ newOTP(id: string): Observable<ApiResult<ClipperOTPInfo>>;
1116
+ /**
1117
+ * Persists the current login context to `localStorage`.
1118
+ * Delegates to `ClipperCoreService.storeContext()`.
1119
+ * @returns void
1120
+ */
1121
+ storeContext(): void;
1122
+ /**
1123
+ * Clears every trace of the current session on this device: the stored context, the logged-in
1124
+ * signal and the session-storage keys. Does NOT call the server — use {@link logout} for that.
1125
+ * Delegates to `ClipperCoreService.clear()`.
1126
+ * @param clearOAuthToken - Whether to drop the legacy OAuth token too. Defaults to `true`.
1127
+ * @returns void
1128
+ */
1129
+ clear(clearOAuthToken?: boolean): void;
1130
+ static ɵfac: i0.ɵɵFactoryDeclaration<ClipperLoginService, never>;
1131
+ static ɵprov: i0.ɵɵInjectableDeclaration<any>;
1139
1132
  }
1140
-
1141
1133
  /**
1142
1134
  * Barrel / facade for the Clipper application.
1143
1135
  *
@@ -1146,65 +1138,64 @@ declare class ClipperLoginService {
1146
1138
  * its property, e.g. `clipper.session.login(...)`, `clipper.documents.query(...)`,
1147
1139
  * `clipper.account.updateUnreadItems(...)`.
1148
1140
  */
1149
- declare class ClipperService {
1150
- private readonly core;
1151
- /** Authentication: login/logout, e-mailed code confirmation, session restore, OTP. */
1152
- readonly session: ClipperLoginService;
1153
- /** Document search, references, export, working-documents bag and saved searches. */
1154
- readonly documents: ClipperDocumentsService;
1155
- /** The account state the document views move: active channels and unread counters. */
1156
- readonly account: ClipperAccountService;
1157
- /** @returns The URI of the Clipper web application, or `undefined` if not set. */
1158
- get appUri(): string | undefined;
1159
- /** @returns The base URI of the Clipper REST API. */
1160
- get serviceUri(): string;
1161
- /** @returns The active feature flags. */
1162
- get flags(): ClipperServiceFlags;
1163
- /** @returns The current login context, or `undefined` if not authenticated. */
1164
- get loginInfo(): ClipperLoginInfo | undefined;
1165
- /** @returns The signed-in account, or `undefined` when there is no session. */
1166
- get user(): ClipperUserInfo | undefined;
1167
- /** @returns A read-only signal indicating whether the user is logged in. */
1168
- get loggedIn(): Signal<boolean>;
1169
- /** @returns A signal indicating whether a login is in progress. */
1170
- get loggingIn(): WritableSignal<boolean>;
1171
- /** @returns A signal holding the current documents search snapshot. */
1172
- get snapshot(): WritableSignal<ClipperSearchResult | undefined>;
1173
- /** @returns A signal indicating whether reference search is supported. */
1174
- get supportsRS(): WritableSignal<boolean>;
1175
- /** @returns A signal holding the current references search snapshot. */
1176
- get referencesSnapshot(): WritableSignal<ClipperSearchResult | undefined>;
1177
- /** @returns The shared dashboard state object. */
1178
- get dashboard(): ClipperDashboard;
1179
- /** @returns A signal holding the working-documents bag. */
1180
- get bag(): WritableSignal<ClipperDocumentInfo[]>;
1181
- /** @returns A computed signal with the number of items in the bag. */
1182
- get bagTotal(): Signal<number>;
1183
- /** @returns A signal controlling the Clipper UI visibility. */
1184
- get visible(): WritableSignal<boolean>;
1185
- /** @returns A signal holding the available channels. */
1186
- get availableChannels(): WritableSignal<ClipperAvailableChannel[]>;
1187
- /** @returns A computed signal with the currently active channels. */
1188
- get activeChannels(): Signal<ClipperAvailableChannel[]>;
1189
- /** @returns A signal indicating whether tagging is allowed. */
1190
- get allowTags(): WritableSignal<boolean>;
1191
- /**
1192
- * Initialises the application with the API base URI, optional app URI, and feature flags, then
1193
- * validates any session that survived a page refresh.
1194
- * @param serviceUri - The base URI of the Clipper REST API.
1195
- * @param appUri - Optional URI of the Clipper web application (used to build document links).
1196
- * @param flags - Feature flags that control service behaviour. Defaults to `ClipperServiceFlags.None`.
1197
- * @returns void
1198
- */
1199
- initialize(serviceUri: string, appUri?: string, flags?: ClipperServiceFlags): void;
1200
- /**
1201
- * Pings the Clipper REST API to keep the session/token alive.
1202
- */
1203
- ping(): void;
1204
- static ɵfac: i0.ɵɵFactoryDeclaration<ClipperService, never>;
1205
- static ɵprov: i0.ɵɵInjectableDeclaration<any>;
1141
+ export declare class ClipperService {
1142
+ private readonly core;
1143
+ /** Authentication: login/logout, e-mailed code confirmation, session restore, OTP. */
1144
+ readonly session: ClipperLoginService;
1145
+ /** Document search, references, export, working-documents bag and saved searches. */
1146
+ readonly documents: ClipperDocumentsService;
1147
+ /** The account state the document views move: active channels and unread counters. */
1148
+ readonly account: ClipperAccountService;
1149
+ /** @returns The URI of the Clipper web application, or `undefined` if not set. */
1150
+ get appUri(): string | undefined;
1151
+ /** @returns The base URI of the Clipper REST API. */
1152
+ get serviceUri(): string;
1153
+ /** @returns The active feature flags. */
1154
+ get flags(): ClipperServiceFlags;
1155
+ /** @returns The current login context, or `undefined` if not authenticated. */
1156
+ get loginInfo(): ClipperLoginInfo | undefined;
1157
+ /** @returns The signed-in account, or `undefined` when there is no session. */
1158
+ get user(): ClipperUserInfo | undefined;
1159
+ /** @returns A read-only signal indicating whether the user is logged in. */
1160
+ get loggedIn(): Signal<boolean>;
1161
+ /** @returns A signal indicating whether a login is in progress. */
1162
+ get loggingIn(): WritableSignal<boolean>;
1163
+ /** @returns A signal holding the current documents search snapshot. */
1164
+ get snapshot(): WritableSignal<ClipperSearchResult | undefined>;
1165
+ /** @returns A signal indicating whether reference search is supported. */
1166
+ get supportsRS(): WritableSignal<boolean>;
1167
+ /** @returns A signal holding the current references search snapshot. */
1168
+ get referencesSnapshot(): WritableSignal<ClipperSearchResult | undefined>;
1169
+ /** @returns The shared dashboard state object. */
1170
+ get dashboard(): ClipperDashboard;
1171
+ /** @returns A signal holding the working-documents bag. */
1172
+ get bag(): WritableSignal<ClipperDocumentInfo[]>;
1173
+ /** @returns A computed signal with the number of items in the bag. */
1174
+ get bagTotal(): Signal<number>;
1175
+ /** @returns A signal controlling the Clipper UI visibility. */
1176
+ get visible(): WritableSignal<boolean>;
1177
+ /** @returns A signal holding the available channels. */
1178
+ get availableChannels(): WritableSignal<ClipperAvailableChannel[]>;
1179
+ /** @returns A computed signal with the currently active channels. */
1180
+ get activeChannels(): Signal<ClipperAvailableChannel[]>;
1181
+ /** @returns A signal indicating whether tagging is allowed. */
1182
+ get allowTags(): WritableSignal<boolean>;
1183
+ /**
1184
+ * Initialises the application with the API base URI, optional app URI, and feature flags, then
1185
+ * validates any session that survived a page refresh.
1186
+ * @param serviceUri - The base URI of the Clipper REST API.
1187
+ * @param appUri - Optional URI of the Clipper web application (used to build document links).
1188
+ * @param flags - Feature flags that control service behaviour. Defaults to `ClipperServiceFlags.None`.
1189
+ * @returns void
1190
+ */
1191
+ initialize(serviceUri: string, appUri?: string, flags?: ClipperServiceFlags): void;
1192
+ /**
1193
+ * Pings the Clipper REST API to keep the session/token alive.
1194
+ */
1195
+ ping(): void;
1196
+ static ɵfac: i0.ɵɵFactoryDeclaration<ClipperService, never>;
1197
+ static ɵprov: i0.ɵɵInjectableDeclaration<any>;
1206
1198
  }
1207
-
1208
1199
  /**
1209
1200
  * Shared state and bootstrap for the Clipper application.
1210
1201
  *
@@ -1216,119 +1207,116 @@ declare class ClipperService {
1216
1207
  * this service to read shared state and call shared helpers. `ClipperService` (the
1217
1208
  * barrel/facade) re-exports the state declared here.
1218
1209
  */
1219
- declare class ClipperCoreService {
1220
- private readonly httpClient;
1221
- private readonly destroyRef;
1222
- private readonly broadcastService;
1223
- /** Used to lazily resolve feature services inside `initialize`, avoiding circular DI. */
1224
- private readonly injector;
1225
- private broadcastInitialized;
1226
- private _appUri?;
1227
- /** @returns The URI of the Clipper web application, or `undefined` if not set. */
1228
- get appUri(): string | undefined;
1229
- private _serviceUri;
1230
- /** @returns The base URI of the Clipper REST API. */
1231
- get serviceUri(): string;
1232
- private _flags;
1233
- /** @returns The active feature flags. */
1234
- get flags(): ClipperServiceFlags;
1235
- private _loginInfo?;
1236
- /**
1237
- * Lazily loads the login context from `localStorage` on first access.
1238
- * @returns The current login context, or `undefined` if not authenticated.
1239
- */
1240
- get loginInfo(): ClipperLoginInfo | undefined;
1241
- /**
1242
- * Gets the signed-in account.
1243
- * @returns The current {@link ClipperUserInfo}, or `undefined` when there is no session.
1244
- */
1245
- get user(): ClipperUserInfo | undefined;
1246
- /**
1247
- * Seeded from the stored context, which is the only trace a session leaves on this device: the
1248
- * auth cookie is HttpOnly and unreadable from here. It means "there WAS a session", never "there
1249
- * is one" -- `ClipperLoginService.initialize` validates it against `/session/me` before it is
1250
- * trusted, and a failure there ends as a 401 that clears the session.
1251
- *
1252
- * It used to be seeded from a `clipper_oauth_token` session-storage key, which nothing has
1253
- * written since the provider flow moved server-side: the flag was therefore false at every
1254
- * bootstrap and the whole restore path could never run.
1255
- */
1256
- private readonly _loggedIn;
1257
- readonly loggedIn: Signal<boolean>;
1258
- readonly loggingIn: i0.WritableSignal<boolean>;
1259
- readonly snapshot: i0.WritableSignal<ClipperSearchResult>;
1260
- readonly supportsRS: i0.WritableSignal<boolean>;
1261
- readonly referencesSnapshot: i0.WritableSignal<ClipperSearchResult>;
1262
- readonly dashboard: ClipperDashboard;
1263
- readonly bag: i0.WritableSignal<ClipperDocumentInfo[]>;
1264
- readonly bagTotal: Signal<number>;
1265
- readonly visible: i0.WritableSignal<boolean>;
1266
- readonly availableChannels: i0.WritableSignal<ClipperAvailableChannel[]>;
1267
- readonly activeChannels: Signal<ClipperAvailableChannel[]>;
1268
- readonly allowTags: i0.WritableSignal<boolean>;
1269
- /**
1270
- * Ensures a login-info object exists and returns it for further mutation.
1271
- * Replaces the inline `if (!this._loginInfo) { ... }` guards now that the field
1272
- * is private to this service.
1273
- *
1274
- * Reads through the getter, never the field: the context is loaded from storage lazily, so a
1275
- * caller that mutates before anyone has read would find the field empty and start from a blank
1276
- * object, silently dropping a perfectly good stored context.
1277
- * @returns The existing login-info object, or a freshly created empty one.
1278
- */
1279
- ensureLoginInfo(): ClipperLoginInfo;
1280
- /**
1281
- * Sets the logged-in state. The backing signal is read-only to consumers, so the
1282
- * feature services use this method instead.
1283
- * @param value - The new logged-in state.
1284
- */
1285
- setLoggedIn(value: boolean): void;
1286
- /**
1287
- * Persists the current login context to `localStorage`, but only when there is a context to
1288
- * persist. A login-info object with no `context` is not a session: it is the empty shell
1289
- * `ensureLoginInfo` hands out before anything has been written into it, and storing it would leave
1290
- * behind a key whose mere presence makes the next bootstrap declare the user logged in.
1291
- */
1292
- storeContext(): void;
1293
- /**
1294
- * Updates the stored login context with the values from a fresh login result.
1295
- *
1296
- * Each half is written only when the server actually sent it. An absent `context` or `settings`
1297
- * means "not carried by this response", never "the user has none": overwriting on absence is what
1298
- * made a page refresh empty the channel list, because `/session/me` answers without the settings
1299
- * and this method wrote that emptiness -- through `storeContext`, onto the disk, where it survived
1300
- * the reload it was born in. An EMPTY array is a different matter and is stored as it comes: that
1301
- * is the server saying the subscription really is gone.
1302
- * @param result - The login result containing the new user context and channel settings.
1303
- */
1304
- updateContext(result: ClipperLoginResult): void;
1305
- /**
1306
- * Rebuilds the `availableChannels` signal from the current login context.
1307
- */
1308
- initializeChannels(): void;
1309
- /**
1310
- * Resets the login state, clears the stored login info, and broadcasts `LOGOUT_COMPLETED`.
1311
- */
1312
- reset(): void;
1313
- /**
1314
- * Clears all session-storage authentication keys and resets the login state.
1315
- * @param clearOAuthToken - When `true`, the OAuth bearer token is also removed.
1316
- */
1317
- clear(clearOAuthToken?: boolean): void;
1318
- /**
1319
- * Initialises the service with the API base URI, optional app URI, and feature flags.
1320
- * @param serviceUri - The base URI of the Clipper REST API.
1321
- * @param appUri - Optional URI of the Clipper web application (used to build document links).
1322
- * @param flags - Feature flags that control service behaviour. Defaults to `ClipperServiceFlags.None`.
1323
- */
1324
- initialize(serviceUri: string, appUri?: string, flags?: ClipperServiceFlags): void;
1325
- /**
1326
- * Ping
1327
- */
1328
- ping(): void;
1329
- static ɵfac: i0.ɵɵFactoryDeclaration<ClipperCoreService, never>;
1330
- static ɵprov: i0.ɵɵInjectableDeclaration<any>;
1331
- }
1332
-
1333
- export { ClipperAccountService, ClipperAuthors, ClipperCalendarSearchParams, ClipperCalendarState, ClipperCalendarStates, ClipperChannel, ClipperChannelSettings, ClipperChannels, ClipperCoreService, ClipperDashboard, ClipperDocumentChangeReasons, ClipperDocumentContainer, ClipperDocumentsService, ClipperExportDocumentsFormat, ClipperFacet, ClipperLoginService, ClipperMessages, ClipperModel, ClipperModels, ClipperModule, ClipperModuleGroup, ClipperModuleGroups, ClipperModules, ClipperQueryDocumentFlags, ClipperQueryReferencesMode, ClipperRegions, ClipperSearchCalendarSnapshotResult, ClipperSearchFacetsSnapshot, ClipperSearchParams, ClipperSearchResult, ClipperSearchUtils, ClipperSectorTypes, ClipperSectors, ClipperSelectionMode, ClipperService, ClipperServiceFlags, ClipperSort, ClipperSources, ClipperUtils, clipperAuthInterceptor };
1334
- export type { ClipperAvailableChannel, ClipperChannelSettingsItem, ClipperDashboardItem, ClipperDashboardModelItem, ClipperDeleteWorkingDocumentsParams, ClipperDocumentAnchorInfo, ClipperDocumentInfo, ClipperDocumentNote, ClipperDocumentNoteTracking, ClipperDocumentRelevantChunkHit, ClipperDocumentRelevants, ClipperDocumentStructure, ClipperDocumentUpdateStateParams, ClipperExportDocumentsParams, ClipperLoginInfo, ClipperLoginResult, ClipperOTPInfo, ClipperReferencesSearchParams, ClipperSearchCalendarSnapshotMonth, ClipperSearchFacet, ClipperSearchFacetGroup, ClipperSearchFacetsResult, ClipperSearchFilter, ClipperSendDocumentsByEmailParams, ClipperSessionStatus, ClipperTaxonomyParams, ClipperTopicInfo, ClipperUserChannelInfo, ClipperUserInfo, ClipperUserSearch, ClipperUserTrialInfo, ClipperUserWorkingDocument, EditedEventArgs, SectorInfo };
1210
+ export declare class ClipperCoreService {
1211
+ private readonly httpClient;
1212
+ private readonly destroyRef;
1213
+ private readonly broadcastService;
1214
+ /** Used to lazily resolve feature services inside `initialize`, avoiding circular DI. */
1215
+ private readonly injector;
1216
+ private broadcastInitialized;
1217
+ private _appUri?;
1218
+ /** @returns The URI of the Clipper web application, or `undefined` if not set. */
1219
+ get appUri(): string | undefined;
1220
+ private _serviceUri;
1221
+ /** @returns The base URI of the Clipper REST API. */
1222
+ get serviceUri(): string;
1223
+ private _flags;
1224
+ /** @returns The active feature flags. */
1225
+ get flags(): ClipperServiceFlags;
1226
+ private _loginInfo?;
1227
+ /**
1228
+ * Lazily loads the login context from `localStorage` on first access.
1229
+ * @returns The current login context, or `undefined` if not authenticated.
1230
+ */
1231
+ get loginInfo(): ClipperLoginInfo | undefined;
1232
+ /**
1233
+ * Gets the signed-in account.
1234
+ * @returns The current {@link ClipperUserInfo}, or `undefined` when there is no session.
1235
+ */
1236
+ get user(): ClipperUserInfo | undefined;
1237
+ /**
1238
+ * Seeded from the stored context, which is the only trace a session leaves on this device: the
1239
+ * auth cookie is HttpOnly and unreadable from here. It means "there WAS a session", never "there
1240
+ * is one" -- `ClipperLoginService.initialize` validates it against `/session/me` before it is
1241
+ * trusted, and a failure there ends as a 401 that clears the session.
1242
+ *
1243
+ * It used to be seeded from a `clipper_oauth_token` session-storage key, which nothing has
1244
+ * written since the provider flow moved server-side: the flag was therefore false at every
1245
+ * bootstrap and the whole restore path could never run.
1246
+ */
1247
+ private readonly _loggedIn;
1248
+ readonly loggedIn: Signal<boolean>;
1249
+ readonly loggingIn: import("@angular/core").WritableSignal<boolean>;
1250
+ readonly snapshot: import("@angular/core").WritableSignal<ClipperSearchResult>;
1251
+ readonly supportsRS: import("@angular/core").WritableSignal<boolean>;
1252
+ readonly referencesSnapshot: import("@angular/core").WritableSignal<ClipperSearchResult>;
1253
+ readonly dashboard: ClipperDashboard;
1254
+ readonly bag: import("@angular/core").WritableSignal<ClipperDocumentInfo[]>;
1255
+ readonly bagTotal: Signal<number>;
1256
+ readonly visible: import("@angular/core").WritableSignal<boolean>;
1257
+ readonly availableChannels: import("@angular/core").WritableSignal<ClipperAvailableChannel[]>;
1258
+ readonly activeChannels: Signal<ClipperAvailableChannel[]>;
1259
+ readonly allowTags: import("@angular/core").WritableSignal<boolean>;
1260
+ /**
1261
+ * Ensures a login-info object exists and returns it for further mutation.
1262
+ * Replaces the inline `if (!this._loginInfo) { ... }` guards now that the field
1263
+ * is private to this service.
1264
+ *
1265
+ * Reads through the getter, never the field: the context is loaded from storage lazily, so a
1266
+ * caller that mutates before anyone has read would find the field empty and start from a blank
1267
+ * object, silently dropping a perfectly good stored context.
1268
+ * @returns The existing login-info object, or a freshly created empty one.
1269
+ */
1270
+ ensureLoginInfo(): ClipperLoginInfo;
1271
+ /**
1272
+ * Sets the logged-in state. The backing signal is read-only to consumers, so the
1273
+ * feature services use this method instead.
1274
+ * @param value - The new logged-in state.
1275
+ */
1276
+ setLoggedIn(value: boolean): void;
1277
+ /**
1278
+ * Persists the current login context to `localStorage`, but only when there is a context to
1279
+ * persist. A login-info object with no `context` is not a session: it is the empty shell
1280
+ * `ensureLoginInfo` hands out before anything has been written into it, and storing it would leave
1281
+ * behind a key whose mere presence makes the next bootstrap declare the user logged in.
1282
+ */
1283
+ storeContext(): void;
1284
+ /**
1285
+ * Updates the stored login context with the values from a fresh login result.
1286
+ *
1287
+ * Each half is written only when the server actually sent it. An absent `context` or `settings`
1288
+ * means "not carried by this response", never "the user has none": overwriting on absence is what
1289
+ * made a page refresh empty the channel list, because `/session/me` answers without the settings
1290
+ * and this method wrote that emptiness -- through `storeContext`, onto the disk, where it survived
1291
+ * the reload it was born in. An EMPTY array is a different matter and is stored as it comes: that
1292
+ * is the server saying the subscription really is gone.
1293
+ * @param result - The login result containing the new user context and channel settings.
1294
+ */
1295
+ updateContext(result: ClipperLoginResult): void;
1296
+ /**
1297
+ * Rebuilds the `availableChannels` signal from the current login context.
1298
+ */
1299
+ initializeChannels(): void;
1300
+ /**
1301
+ * Resets the login state, clears the stored login info, and broadcasts `LOGOUT_COMPLETED`.
1302
+ */
1303
+ reset(): void;
1304
+ /**
1305
+ * Clears all session-storage authentication keys and resets the login state.
1306
+ * @param clearOAuthToken - When `true`, the OAuth bearer token is also removed.
1307
+ */
1308
+ clear(clearOAuthToken?: boolean): void;
1309
+ /**
1310
+ * Initialises the service with the API base URI, optional app URI, and feature flags.
1311
+ * @param serviceUri - The base URI of the Clipper REST API.
1312
+ * @param appUri - Optional URI of the Clipper web application (used to build document links).
1313
+ * @param flags - Feature flags that control service behaviour. Defaults to `ClipperServiceFlags.None`.
1314
+ */
1315
+ initialize(serviceUri: string, appUri?: string, flags?: ClipperServiceFlags): void;
1316
+ /**
1317
+ * Ping
1318
+ */
1319
+ ping(): void;
1320
+ static ɵfac: i0.ɵɵFactoryDeclaration<ClipperCoreService, never>;
1321
+ static ɵprov: i0.ɵɵInjectableDeclaration<any>;
1322
+ }