@arsedizioni/ars-utils 22.6.86 → 22.6.88
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/arsedizioni-ars-utils-clipper.common.mjs +3158 -3344
- package/fesm2022/arsedizioni-ars-utils-clipper.common.mjs.map +1 -1
- package/fesm2022/arsedizioni-ars-utils-clipper.ui.mjs +7616 -4772
- package/fesm2022/arsedizioni-ars-utils-clipper.ui.mjs.map +1 -1
- package/fesm2022/arsedizioni-ars-utils-core.date.mjs +321 -702
- package/fesm2022/arsedizioni-ars-utils-core.date.mjs.map +1 -1
- package/fesm2022/arsedizioni-ars-utils-core.markdown.mjs +445 -590
- package/fesm2022/arsedizioni-ars-utils-core.markdown.mjs.map +1 -1
- package/fesm2022/arsedizioni-ars-utils-core.mjs +1735 -2370
- package/fesm2022/arsedizioni-ars-utils-core.mjs.map +1 -1
- package/fesm2022/arsedizioni-ars-utils-core.validators.mjs +1280 -1470
- package/fesm2022/arsedizioni-ars-utils-core.validators.mjs.map +1 -1
- package/fesm2022/arsedizioni-ars-utils-evolution.common.mjs +1097 -1528
- package/fesm2022/arsedizioni-ars-utils-evolution.common.mjs.map +1 -1
- package/fesm2022/arsedizioni-ars-utils-support.common.mjs +198 -294
- package/fesm2022/arsedizioni-ars-utils-support.common.mjs.map +1 -1
- package/fesm2022/arsedizioni-ars-utils-ui.controls.date.mjs +115 -117
- package/fesm2022/arsedizioni-ars-utils-ui.controls.date.mjs.map +1 -1
- package/fesm2022/arsedizioni-ars-utils-ui.controls.mjs +1607 -613
- package/fesm2022/arsedizioni-ars-utils-ui.controls.mjs.map +1 -1
- package/fesm2022/arsedizioni-ars-utils-ui.controls.tree.mjs +840 -367
- package/fesm2022/arsedizioni-ars-utils-ui.controls.tree.mjs.map +1 -1
- package/fesm2022/arsedizioni-ars-utils-ui.dialogs.auth.mjs +1634 -651
- package/fesm2022/arsedizioni-ars-utils-ui.dialogs.auth.mjs.map +1 -1
- package/fesm2022/arsedizioni-ars-utils-ui.dialogs.mjs +1255 -792
- package/fesm2022/arsedizioni-ars-utils-ui.dialogs.mjs.map +1 -1
- package/fesm2022/arsedizioni-ars-utils-ui.dialogs.prompt.mjs +1410 -357
- package/fesm2022/arsedizioni-ars-utils-ui.dialogs.prompt.mjs.map +1 -1
- package/fesm2022/arsedizioni-ars-utils-ui.dialogs.select.mjs +2401 -944
- package/fesm2022/arsedizioni-ars-utils-ui.dialogs.select.mjs.map +1 -1
- package/fesm2022/arsedizioni-ars-utils-ui.files.mjs +1553 -741
- package/fesm2022/arsedizioni-ars-utils-ui.files.mjs.map +1 -1
- package/fesm2022/arsedizioni-ars-utils-ui.filters.mjs +901 -430
- package/fesm2022/arsedizioni-ars-utils-ui.filters.mjs.map +1 -1
- package/fesm2022/arsedizioni-ars-utils-ui.help.mjs +737 -530
- package/fesm2022/arsedizioni-ars-utils-ui.help.mjs.map +1 -1
- package/fesm2022/arsedizioni-ars-utils-ui.mjs +6638 -1755
- package/fesm2022/arsedizioni-ars-utils-ui.mjs.map +1 -1
- package/fesm2022/arsedizioni-ars-utils-ui.navigation.mjs +1479 -1207
- package/fesm2022/arsedizioni-ars-utils-ui.navigation.mjs.map +1 -1
- package/fesm2022/arsedizioni-ars-utils-ui.notifications.mjs +1003 -270
- package/fesm2022/arsedizioni-ars-utils-ui.notifications.mjs.map +1 -1
- package/fesm2022/arsedizioni-ars-utils-ui.oauth.mjs +497 -278
- package/fesm2022/arsedizioni-ars-utils-ui.oauth.mjs.map +1 -1
- package/fesm2022/arsedizioni-ars-utils-ui.paginator.mjs +48 -52
- package/fesm2022/arsedizioni-ars-utils-ui.paginator.mjs.map +1 -1
- package/fesm2022/arsedizioni-ars-utils-ui.shell.mjs +464 -704
- package/fesm2022/arsedizioni-ars-utils-ui.shell.mjs.map +1 -1
- package/fesm2022/arsedizioni-ars-utils-ui.tinymce.mjs +724 -657
- package/fesm2022/arsedizioni-ars-utils-ui.tinymce.mjs.map +1 -1
- package/fesm2022/arsedizioni-ars-utils.mjs +3 -19
- package/fesm2022/arsedizioni-ars-utils.mjs.map +1 -1
- package/package.json +1 -1
- package/types/arsedizioni-ars-utils-clipper.common.d.ts +1151 -1163
- package/types/arsedizioni-ars-utils-clipper.ui.d.ts +1588 -1426
- package/types/arsedizioni-ars-utils-core.d.ts +1169 -1172
- package/types/arsedizioni-ars-utils-core.date.d.ts +204 -208
- package/types/arsedizioni-ars-utils-core.markdown.d.ts +128 -126
- package/types/arsedizioni-ars-utils-core.validators.d.ts +270 -236
- package/types/arsedizioni-ars-utils-evolution.common.d.ts +1054 -1067
- package/types/arsedizioni-ars-utils-support.common.d.ts +225 -234
- package/types/arsedizioni-ars-utils-ui.controls.d.ts +440 -278
- package/types/arsedizioni-ars-utils-ui.controls.date.d.ts +24 -28
- package/types/arsedizioni-ars-utils-ui.controls.tree.d.ts +172 -136
- package/types/arsedizioni-ars-utils-ui.d.ts +2035 -821
- package/types/arsedizioni-ars-utils-ui.dialogs.auth.d.ts +327 -322
- package/types/arsedizioni-ars-utils-ui.dialogs.d.ts +343 -347
- package/types/arsedizioni-ars-utils-ui.dialogs.prompt.d.ts +167 -167
- package/types/arsedizioni-ars-utils-ui.dialogs.select.d.ts +373 -367
- package/types/arsedizioni-ars-utils-ui.files.d.ts +335 -283
- package/types/arsedizioni-ars-utils-ui.filters.d.ts +232 -160
- package/types/arsedizioni-ars-utils-ui.help.d.ts +204 -211
- package/types/arsedizioni-ars-utils-ui.navigation.d.ts +811 -646
- package/types/arsedizioni-ars-utils-ui.notifications.d.ts +74 -78
- package/types/arsedizioni-ars-utils-ui.oauth.d.ts +102 -62
- package/types/arsedizioni-ars-utils-ui.paginator.d.ts +19 -22
- package/types/arsedizioni-ars-utils-ui.shell.d.ts +376 -382
- package/types/arsedizioni-ars-utils-ui.tinymce.d.ts +244 -231
- package/types/arsedizioni-ars-utils.d.ts +1 -3
|
@@ -1,265 +1,278 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
18
|
-
import {
|
|
19
|
-
import {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
1
|
+
import { ScrollDispatcher } from "@angular/cdk/scrolling";
|
|
2
|
+
import { SignalsUtils } from "@arsedizioni/ars-utils/core.validators";
|
|
3
|
+
import { MatExpansionPanel } from "@angular/material/expansion";
|
|
4
|
+
import { MatInput } from "@angular/material/input";
|
|
5
|
+
import { MatPaginator, PageEvent } from "@angular/material/paginator";
|
|
6
|
+
import { MatDrawer } from "@angular/material/sidenav";
|
|
7
|
+
import { ClipperDocumentAnchorInfo, ClipperDocumentInfo, ClipperDocumentRelevants, ClipperModel, ClipperModule, ClipperQueryReferencesMode, ClipperSearchCalendarSnapshotMonth, ClipperSearchCalendarSnapshotResult, ClipperSearchFacet, ClipperSearchFacetGroup, ClipperSearchFacetsSnapshot, ClipperSearchParams, ClipperSearchResult, ClipperSelectionMode, ClipperService, ClipperSort, ClipperUserInfo, ClipperUserSearch, SectorInfo } from "@arsedizioni/ars-utils/clipper.common";
|
|
8
|
+
import { BroadcastService, DateInterval, INode, NameValueItem, ScreenService, SelectableModel, ThemeService, ThemeType } from "@arsedizioni/ars-utils/core";
|
|
9
|
+
import { ButtonSelectorComponent, ChipsSelectorComponent } from "@arsedizioni/ars-utils/ui.controls";
|
|
10
|
+
import { BreakpointObserver } from "@angular/cdk/layout";
|
|
11
|
+
import * as i0 from "@angular/core";
|
|
12
|
+
import { ChangeDetectorRef, DestroyRef } from "@angular/core";
|
|
13
|
+
import { Clipboard } from "@angular/cdk/clipboard";
|
|
14
|
+
import { DialogService } from "@arsedizioni/ars-utils/ui.dialogs";
|
|
15
|
+
import { SendToPopulateData } from "@arsedizioni/ars-utils/ui";
|
|
16
|
+
import { MatCalendar, MatCalendarCellClassFunction } from "@angular/material/datepicker";
|
|
17
|
+
import { CalendarEmptyHeader } from "@arsedizioni/ars-utils/ui.controls.date";
|
|
18
|
+
import { MatSelectionList } from "@angular/material/list";
|
|
19
|
+
import { MatMenu, MatMenuTrigger } from "@angular/material/menu";
|
|
20
|
+
export declare class ClipperSearchFacetsComponent {
|
|
21
|
+
readonly changed: import("@angular/core").OutputEmitterRef<ClipperSearchFacetsSnapshot>;
|
|
22
|
+
private readonly changeDetector;
|
|
23
|
+
protected snapshot: ClipperSearchFacetsSnapshot;
|
|
24
|
+
/**
|
|
25
|
+
* Returns whether the current snapshot contains at least one available or applied facet group.
|
|
26
|
+
*/
|
|
27
|
+
hasFacets(): boolean;
|
|
28
|
+
readonly handleTooManyResults: import("@angular/core").InputSignal<boolean>;
|
|
29
|
+
/**
|
|
30
|
+
* Pushes a new set of facet groups into the snapshot and refreshes the view.
|
|
31
|
+
* @param values - The raw facet data returned by the search engine, grouped by type.
|
|
32
|
+
* @param interval - Optional display label for the year-range interval (YEAR facet type).
|
|
33
|
+
*/
|
|
34
|
+
update(values?: ClipperSearchFacet[][], interval?: string): void;
|
|
35
|
+
/**
|
|
36
|
+
* Applies the given facet item as an active filter and emits a `changed` event.
|
|
37
|
+
* @param group - The facet group that owns the selected item.
|
|
38
|
+
* @param item - The facet item chosen by the user.
|
|
39
|
+
*/
|
|
40
|
+
protected use(group: ClipperSearchFacetGroup, item: ClipperSearchFacet): void;
|
|
41
|
+
/**
|
|
42
|
+
* Removes an active facet filter from the selection and optionally emits a `changed` event.
|
|
43
|
+
* @param group - The applied facet group to dismiss.
|
|
44
|
+
* @param apply - When `true` (default), emits the `changed` event to trigger a new search.
|
|
45
|
+
*/
|
|
46
|
+
protected dismiss(group: ClipperSearchFacetGroup, apply?: boolean): void;
|
|
47
|
+
/**
|
|
48
|
+
* Builds and emits the current `ClipperSearchFacetsSnapshot` after resolving each applied
|
|
49
|
+
* facet group's filter value into the corresponding snapshot date/sector/author/type fields.
|
|
50
|
+
*/
|
|
51
|
+
private apply;
|
|
52
|
+
/**
|
|
53
|
+
* Dismisses one or all applied facet groups and emits a `changed` event if any were removed.
|
|
54
|
+
* @param index - The group index to clear, or `-1` to clear all applied groups at once.
|
|
55
|
+
* @returns The number of groups that were dismissed.
|
|
56
|
+
*/
|
|
57
|
+
protected clear(index?: number): number;
|
|
58
|
+
/**
|
|
59
|
+
* Resets all facet state: clears every applied/available group and all derived filter fields.
|
|
60
|
+
*/
|
|
61
|
+
reset(): void;
|
|
62
|
+
/**
|
|
63
|
+
* Restores a previously serialised facets snapshot and refreshes the view.
|
|
64
|
+
* @param data - The snapshot to restore.
|
|
65
|
+
*/
|
|
66
|
+
restore(data: ClipperSearchFacetsSnapshot): void;
|
|
67
|
+
/**
|
|
68
|
+
* Returns the current facets snapshot for external serialisation (e.g. save/restore cycle).
|
|
69
|
+
* @returns The current `ClipperSearchFacetsSnapshot`.
|
|
70
|
+
*/
|
|
71
|
+
save(): ClipperSearchFacetsSnapshot;
|
|
72
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ClipperSearchFacetsComponent, never>;
|
|
73
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ClipperSearchFacetsComponent, "clipper-search-facets", never, {
|
|
74
|
+
"handleTooManyResults": {
|
|
75
|
+
"alias": "handleTooManyResults";
|
|
76
|
+
"required": false;
|
|
77
|
+
"isSignal": true;
|
|
78
|
+
};
|
|
79
|
+
}, {
|
|
80
|
+
"changed": "changed";
|
|
81
|
+
}, never, never, true, never>;
|
|
76
82
|
}
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
83
|
+
export declare class ClipperDocumentManager {
|
|
84
|
+
readonly populateContacts: import("@angular/core").OutputEmitterRef<SendToPopulateData>;
|
|
85
|
+
protected readonly clipboard: Clipboard;
|
|
86
|
+
readonly clipperService: ClipperService;
|
|
87
|
+
protected readonly broadcastService: BroadcastService;
|
|
88
|
+
protected readonly dialogService: DialogService;
|
|
89
|
+
protected readonly canHandleTooManyResults: import("@angular/core").WritableSignal<boolean>;
|
|
90
|
+
protected readonly canPopulateContacts: import("@angular/core").WritableSignal<boolean>;
|
|
91
|
+
/**
|
|
92
|
+
* Exports a document in PDF format, after asking for confirmation.
|
|
93
|
+
* @param item - The document to export.
|
|
94
|
+
*/
|
|
95
|
+
exportPdf(item: ClipperDocumentInfo): void;
|
|
96
|
+
/**
|
|
97
|
+
* Exports the current document list (or only the selected documents) as CSV or ICS.
|
|
98
|
+
* @param documentIds - The list of document IDs to export; if empty, the full search result is exported.
|
|
99
|
+
* @param searchParams - The search parameters used to identify the full result set when no IDs are provided.
|
|
100
|
+
* @param format - The export format: 1 = list (CSV), 2 = deadlines (ICS).
|
|
101
|
+
*/
|
|
102
|
+
exportItems(documentIds: string[] | undefined, searchParams?: ClipperSearchParams | undefined, format?: number): void;
|
|
103
|
+
/**
|
|
104
|
+
* Exports a single document's deadline as an ICS file.
|
|
105
|
+
* @param item - The document whose deadline to export.
|
|
106
|
+
*/
|
|
107
|
+
exportDeadline(item: ClipperDocumentInfo): void;
|
|
108
|
+
/**
|
|
109
|
+
* Sends a broadcast message to add the given documents to the working-documents set.
|
|
110
|
+
* @param items - The list of documents to add.
|
|
111
|
+
*/
|
|
112
|
+
addItemsToWorkingDocuments(items: ClipperDocumentInfo[]): void;
|
|
113
|
+
/**
|
|
114
|
+
* Sends a request to the Clipper service to add the given documents to the bag.
|
|
115
|
+
* @param items - The list of documents to add.
|
|
116
|
+
*/
|
|
117
|
+
addItemsToBag(items: ClipperDocumentInfo[]): void;
|
|
118
|
+
/**
|
|
119
|
+
* Copies the document's metadata (ID, titles, number, date, origin) as a tab-separated string to the clipboard.
|
|
120
|
+
* @param item - The document whose metadata to copy.
|
|
121
|
+
*/
|
|
122
|
+
copyMetadataToClipboard(item: ClipperDocumentInfo): void;
|
|
123
|
+
/**
|
|
124
|
+
* Displays a dialog with a shareable permalink for the given document.
|
|
125
|
+
* @param item - The document to show the permalink for.
|
|
126
|
+
*/
|
|
127
|
+
showLink(item: ClipperDocumentInfo): void;
|
|
128
|
+
/**
|
|
129
|
+
* Opens a dialog to send document links by email to one or more recipients.
|
|
130
|
+
* @param items - The list of documents to send.
|
|
131
|
+
*/
|
|
132
|
+
sendItemsTo(items: ClipperDocumentInfo[]): void;
|
|
133
|
+
/**
|
|
134
|
+
* Downloads the document's HTML report.
|
|
135
|
+
* @param documentId - The ID of the document.
|
|
136
|
+
* @param title - Optional display title used as the file name.
|
|
137
|
+
*/
|
|
138
|
+
openReport(documentId: string, title?: string): void;
|
|
139
|
+
/**
|
|
140
|
+
* Opens a document for display. Override in subclasses to provide the actual implementation.
|
|
141
|
+
* @param _documentId - The document ID.
|
|
142
|
+
* @param _query - The search query string.
|
|
143
|
+
* @param _queryChunks - Pipe-separated highlight chunks (e.g. "|1|2|3...").
|
|
144
|
+
* @param _newWindow - When true, opens the document in a new browser window.
|
|
145
|
+
*/
|
|
146
|
+
open(_documentId?: string, _query?: string, _queryChunks?: string, _newWindow?: boolean): void;
|
|
147
|
+
/**
|
|
148
|
+
* Downloads the HTML report for a normativa/scadenze document.
|
|
149
|
+
* @param item - The document to report on.
|
|
150
|
+
*/
|
|
151
|
+
report(item: ClipperDocumentInfo): void;
|
|
152
|
+
/**
|
|
153
|
+
* Opens the references dialog for the given document.
|
|
154
|
+
* @param documentId - The ID of the document whose references to display.
|
|
155
|
+
* @param mode - The reference mode (e.g. ReferencesIn, ReferencesOut).
|
|
156
|
+
*/
|
|
157
|
+
openReferences(documentId?: string, mode?: ClipperQueryReferencesMode): void;
|
|
158
|
+
/**
|
|
159
|
+
* Opens a dialog to manage the documents in the working bag (view, select, delete).
|
|
160
|
+
*/
|
|
161
|
+
openBag(): Promise<void>;
|
|
162
|
+
/**
|
|
163
|
+
* Sends a print command to the Clipper document iframe.
|
|
164
|
+
*/
|
|
165
|
+
print(): void;
|
|
166
|
+
/**
|
|
167
|
+
* Displays a hint dialog explaining how to use the browser's find-in-page feature.
|
|
168
|
+
*/
|
|
169
|
+
find(): void;
|
|
170
|
+
/**
|
|
171
|
+
* AI: sends a "concern me" request for the given document.
|
|
172
|
+
* @param document - The document to analyse.
|
|
173
|
+
*/
|
|
174
|
+
AI_concernMe(document?: ClipperDocumentInfo): void;
|
|
175
|
+
/**
|
|
176
|
+
* AI: sends an "explain" request for the given document.
|
|
177
|
+
* @param document - The document to explain.
|
|
178
|
+
*/
|
|
179
|
+
AI_explain(document?: ClipperDocumentInfo): void;
|
|
180
|
+
/**
|
|
181
|
+
* AI: sends a "comment" request for the given document.
|
|
182
|
+
* @param document - The document to comment on.
|
|
183
|
+
*/
|
|
184
|
+
AI_comment(document?: ClipperDocumentInfo): void;
|
|
185
|
+
/**
|
|
186
|
+
* AI: sends a "news" request for the given document.
|
|
187
|
+
* @param document - The document to retrieve news for.
|
|
188
|
+
*/
|
|
189
|
+
AI_news(document?: ClipperDocumentInfo): void;
|
|
190
|
+
/**
|
|
191
|
+
* Returns whether the given Clipper module is supported by Registro e Scadenzario (RS).
|
|
192
|
+
* @param module - The module to check.
|
|
193
|
+
* @returns `true` if the module is supported by RS.
|
|
194
|
+
*/
|
|
195
|
+
isModuleSupportedByRS(module: ClipperModule): boolean;
|
|
196
|
+
/**
|
|
197
|
+
* Returns whether the given Clipper model is supported by Registro e Scadenzario (RS).
|
|
198
|
+
* @param model - The model to check.
|
|
199
|
+
* @returns `true` if the model is supported by RS.
|
|
200
|
+
*/
|
|
201
|
+
isModelSupportedByRS(model: ClipperModel): boolean;
|
|
202
|
+
/**
|
|
203
|
+
* Returns whether every document in the list has a model supported by RS.
|
|
204
|
+
* @param documents - The list of documents to check.
|
|
205
|
+
* @returns `true` if all documents are RS-compatible.
|
|
206
|
+
*/
|
|
207
|
+
canSupportRS(documents: ClipperDocumentInfo[]): boolean;
|
|
208
|
+
/**
|
|
209
|
+
* Returns whether every document in the list has a model that supports RS tracking.
|
|
210
|
+
* @param documents - The documents to check.
|
|
211
|
+
* @returns `true` if all documents are RS-enabled.
|
|
212
|
+
*/
|
|
213
|
+
RS_enabled(documents: ClipperDocumentInfo[]): boolean;
|
|
214
|
+
/**
|
|
215
|
+
* Sends a broadcast message to create a new RS law entry linked to the given documents.
|
|
216
|
+
* @param documents - The array of documents to link to the new law.
|
|
217
|
+
*/
|
|
218
|
+
RS_newLaw(documents?: ClipperDocumentInfo[]): void;
|
|
219
|
+
/**
|
|
220
|
+
* Sends a broadcast message to create a new RS activity linked to the given document.
|
|
221
|
+
* @param document - The document to link to the new activity.
|
|
222
|
+
*/
|
|
223
|
+
RS_newActivity(document?: ClipperDocumentInfo): void;
|
|
224
|
+
/**
|
|
225
|
+
* Sends a broadcast message to open the RS usage report for the given document.
|
|
226
|
+
* @param document - The document to generate the usage report for.
|
|
227
|
+
*/
|
|
228
|
+
RS_usageReport(document?: ClipperDocumentInfo): void;
|
|
229
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ClipperDocumentManager, never>;
|
|
230
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ClipperDocumentManager, "ng-component", never, {}, {
|
|
231
|
+
"populateContacts": "populateContacts";
|
|
232
|
+
}, never, never, true, never>;
|
|
226
233
|
}
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
234
|
+
export declare class ClipperSearchCalendarComponent {
|
|
235
|
+
readonly calendar: import("@angular/core").Signal<MatCalendar<any>>;
|
|
236
|
+
readonly changed: import("@angular/core").OutputEmitterRef<DateInterval>;
|
|
237
|
+
private readonly changeDetector;
|
|
238
|
+
protected busy: import("@angular/core").WritableSignal<boolean>;
|
|
239
|
+
protected months: import("@angular/core").WritableSignal<ClipperSearchCalendarSnapshotMonth[]>;
|
|
240
|
+
protected calendarSpecialDays?: number[];
|
|
241
|
+
protected calendarEmptyHeader: typeof CalendarEmptyHeader;
|
|
242
|
+
calendarDate: Date;
|
|
243
|
+
protected calendarDateClass: MatCalendarCellClassFunction<Date>;
|
|
244
|
+
protected calendarDateFilter: (cellDate: Date) => boolean;
|
|
245
|
+
readonly canFilter: import("@angular/core").InputSignal<boolean>;
|
|
246
|
+
/**
|
|
247
|
+
* Refreshes the calendar with a new month/days snapshot and updates the active date.
|
|
248
|
+
* @param month - The single-month snapshot used to populate special-day highlighting.
|
|
249
|
+
* @param months - The full year snapshot used to populate the month-selector chips.
|
|
250
|
+
* @param date - The date the calendar should navigate to. Defaults to today.
|
|
251
|
+
*/
|
|
252
|
+
update(month?: ClipperSearchCalendarSnapshotResult, months?: ClipperSearchCalendarSnapshotResult, date?: Date): void;
|
|
253
|
+
/**
|
|
254
|
+
* Emits a `DateInterval` for the given date or, when `'month'` is passed, for the entire
|
|
255
|
+
* current calendar month. Passing `undefined` clears the active date filter.
|
|
256
|
+
* @param date - A specific `Date` to filter by, the string `'month'` to filter the whole
|
|
257
|
+
* month, or `undefined` to clear the filter.
|
|
258
|
+
*/
|
|
259
|
+
protected filterByDate(date?: Date | string): void;
|
|
260
|
+
/**
|
|
261
|
+
* Navigates the calendar to the given month and emits its full date range as a filter.
|
|
262
|
+
* @param monthInfo - The month snapshot to navigate to and filter by.
|
|
263
|
+
*/
|
|
264
|
+
protected filterByMonth(monthInfo: ClipperSearchCalendarSnapshotMonth): void;
|
|
265
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ClipperSearchCalendarComponent, never>;
|
|
266
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ClipperSearchCalendarComponent, "clipper-search-calendar", never, {
|
|
267
|
+
"canFilter": {
|
|
268
|
+
"alias": "canFilter";
|
|
269
|
+
"required": false;
|
|
270
|
+
"isSignal": true;
|
|
271
|
+
};
|
|
272
|
+
}, {
|
|
273
|
+
"changed": "changed";
|
|
274
|
+
}, never, never, true, never>;
|
|
261
275
|
}
|
|
262
|
-
|
|
263
276
|
/**
|
|
264
277
|
* Opens the Clipper document viewer.
|
|
265
278
|
*
|
|
@@ -270,225 +283,223 @@ declare class ClipperSearchCalendarComponent {
|
|
|
270
283
|
* asynchronous continuation after the dynamic `import()` is outside the injection context, so an
|
|
271
284
|
* `inject()` added in there would have failed at runtime.
|
|
272
285
|
*/
|
|
273
|
-
declare class ClipperDocumentViewerService {
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
286
|
+
export declare class ClipperDocumentViewerService {
|
|
287
|
+
private readonly dialogService;
|
|
288
|
+
private readonly clipperService;
|
|
289
|
+
/**
|
|
290
|
+
* Opens the Clipper document viewer dialog for the given document.
|
|
291
|
+
* @param documentId - The ID of the document to open.
|
|
292
|
+
* @param query - The search query string used for term highlighting.
|
|
293
|
+
* @param queryChunks - Pipe-separated highlight chunks (e.g. "|1|2|3...").
|
|
294
|
+
* @param selectionMode - The Clipper selection mode to activate inside the viewer.
|
|
295
|
+
* @param selectableModules - The list of Clipper modules available for selection.
|
|
296
|
+
* @param theme - The UI theme to apply. Defaults to the system theme.
|
|
297
|
+
* @param canHandleTooManyResults - When `true`, the component handles oversized result sets.
|
|
298
|
+
* @param replaceUrl - When provided, after the dialog closes the method calls `window.close()`
|
|
299
|
+
* if the page was opened by another window, or navigates to this URL otherwise.
|
|
300
|
+
* @returns void
|
|
301
|
+
*/
|
|
302
|
+
openDocument(documentId: string, query?: string, queryChunks?: string, selectionMode?: ClipperSelectionMode, selectableModules?: ClipperModule[], theme?: ThemeType, canHandleTooManyResults?: boolean, replaceUrl?: string): void;
|
|
303
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ClipperDocumentViewerService, never>;
|
|
304
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<any>;
|
|
292
305
|
}
|
|
293
306
|
/**
|
|
294
307
|
* Pure helpers on document data. Deliberately NOT a service: there is nothing to inject, and a
|
|
295
308
|
* string function that needs an injector to be called is a function nobody can call from a test.
|
|
296
309
|
*/
|
|
297
|
-
declare class ClipperDocumentsUtils {
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
310
|
+
export declare class ClipperDocumentsUtils {
|
|
311
|
+
/**
|
|
312
|
+
* Extracts the display title from a full document title by stripping any trailing `[...]` suffix.
|
|
313
|
+
* @param title - The full document title, which may contain a bracketed qualifier.
|
|
314
|
+
* @returns The portion of the title before the first `[`, or the original title when no `[` is present.
|
|
315
|
+
*/
|
|
316
|
+
static parseDocumentTitle(title: string): string;
|
|
304
317
|
}
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ClipperSearchResultManager, "ng-component", never, {}, {}, never, never, true, never>;
|
|
318
|
+
export declare class ClipperSearchResultManager extends ClipperDocumentManager {
|
|
319
|
+
readonly paginator: import("@angular/core").Signal<MatPaginator>;
|
|
320
|
+
readonly facets: import("@angular/core").Signal<ClipperSearchFacetsComponent>;
|
|
321
|
+
readonly calendar: import("@angular/core").Signal<ClipperSearchCalendarComponent>;
|
|
322
|
+
protected readonly destroyRef: DestroyRef;
|
|
323
|
+
protected readonly changeDetector: ChangeDetectorRef;
|
|
324
|
+
protected readonly breakpointObserver: BreakpointObserver;
|
|
325
|
+
protected readonly documentUtils: ClipperDocumentViewerService;
|
|
326
|
+
protected readonly themeService: ThemeService;
|
|
327
|
+
readonly screenService: ScreenService;
|
|
328
|
+
selection: SelectableModel<ClipperDocumentInfo, string> | undefined;
|
|
329
|
+
readonly selectionMode: import("@angular/core").WritableSignal<ClipperSelectionMode>;
|
|
330
|
+
protected snapshot: ClipperSearchResult | undefined;
|
|
331
|
+
protected readonly filterBusy: import("@angular/core").WritableSignal<boolean>;
|
|
332
|
+
protected filterParams: ClipperSearchParams;
|
|
333
|
+
protected readonly filterPaneHasBackdrop: import("@angular/core").WritableSignal<boolean>;
|
|
334
|
+
protected readonly filterPaneClosed: import("@angular/core").WritableSignal<boolean>;
|
|
335
|
+
protected readonly filterPane2HasBackdrop: import("@angular/core").WritableSignal<boolean>;
|
|
336
|
+
protected readonly filterPane2Closed: import("@angular/core").WritableSignal<boolean>;
|
|
337
|
+
protected readonly sortOptions: import("@angular/core").WritableSignal<NameValueItem<ClipperSort>[]>;
|
|
338
|
+
protected readonly sortMode: import("@angular/core").WritableSignal<NameValueItem<ClipperSort>>;
|
|
339
|
+
protected scrollPos: number;
|
|
340
|
+
protected readonly scrollerId: string;
|
|
341
|
+
protected restorableId: string | undefined;
|
|
342
|
+
protected readonly hasFacets: import("@angular/core").WritableSignal<boolean>;
|
|
343
|
+
/** `true` when the current sector filter contains any regional-law (LR) entries. */
|
|
344
|
+
protected readonly hasRegions: import("@angular/core").Signal<boolean>;
|
|
345
|
+
/**
|
|
346
|
+
* Resets the `isMenuOpen` flag on every snapshot item so that action-menu buttons are hidden.
|
|
347
|
+
*/
|
|
348
|
+
updateMenuButtonsVisibility(): void;
|
|
349
|
+
/**
|
|
350
|
+
* Scrolls the results list container to the given vertical position.
|
|
351
|
+
* @param top - The target scroll offset in pixels. Defaults to 0 (top).
|
|
352
|
+
*/
|
|
353
|
+
scroll(top?: number): void;
|
|
354
|
+
/**
|
|
355
|
+
* Returns whether every item in the current snapshot is selected.
|
|
356
|
+
* @returns `true` if the selection count equals the total snapshot item count.
|
|
357
|
+
*/
|
|
358
|
+
allSelected(): boolean;
|
|
359
|
+
/**
|
|
360
|
+
* Selects or deselects all items in the current snapshot.
|
|
361
|
+
* @param select - When `true`, selects all items; when `false`, deselects all.
|
|
362
|
+
*/
|
|
363
|
+
selectAll(select?: boolean): void;
|
|
364
|
+
/**
|
|
365
|
+
* Returns whether at least one item is currently selected.
|
|
366
|
+
* @returns `true` if the selection contains one or more items.
|
|
367
|
+
*/
|
|
368
|
+
hasAnySelection(): boolean;
|
|
369
|
+
/**
|
|
370
|
+
* Returns whether exactly one item is selected.
|
|
371
|
+
* @returns `true` if the selection count is exactly 1.
|
|
372
|
+
*/
|
|
373
|
+
hasSingleSelection(): boolean;
|
|
374
|
+
/**
|
|
375
|
+
* Returns the first (and only) selected item, or `undefined` when nothing or multiple items are selected.
|
|
376
|
+
* @returns The selected document, or `undefined`.
|
|
377
|
+
*/
|
|
378
|
+
getSingleSelection(): ClipperDocumentInfo | undefined;
|
|
379
|
+
/**
|
|
380
|
+
* Clears the entire selection.
|
|
381
|
+
*/
|
|
382
|
+
clearSelection(): void;
|
|
383
|
+
/**
|
|
384
|
+
* Returns the number of currently selected items, or `undefined` when nothing is selected.
|
|
385
|
+
* @returns The selection count, or `undefined`.
|
|
386
|
+
*/
|
|
387
|
+
countSelections(): number | undefined;
|
|
388
|
+
/**
|
|
389
|
+
* Returns the document ID of the first selected item, or `undefined` when nothing is selected.
|
|
390
|
+
* @returns The selected document ID, or `undefined`.
|
|
391
|
+
*/
|
|
392
|
+
getSeletectId(): string | undefined;
|
|
393
|
+
/**
|
|
394
|
+
* Returns the document IDs of all selected items.
|
|
395
|
+
* Shows an error and returns `undefined` when more than 100 items are selected.
|
|
396
|
+
* @returns An array of document IDs, or `undefined` when the limit is exceeded.
|
|
397
|
+
*/
|
|
398
|
+
getSeletectIds(): string[] | undefined;
|
|
399
|
+
/**
|
|
400
|
+
* Returns a list of `[documentId, document]` tuples for all selected items.
|
|
401
|
+
* Shows an error and returns `undefined` when more than 100 items are selected.
|
|
402
|
+
* @returns An array of ID-document tuples, or `undefined` when the limit is exceeded.
|
|
403
|
+
*/
|
|
404
|
+
getSeletectIdsAndData(): [string, ClipperDocumentInfo][] | undefined;
|
|
405
|
+
/**
|
|
406
|
+
* Enriches raw search result items with display metadata: grouping labels, expiry/validity
|
|
407
|
+
* state, anchor relevance scores, and model-specific fields.
|
|
408
|
+
* @param items - The raw document list to process in place.
|
|
409
|
+
* @param params - The search parameters used to determine grouping and filtering.
|
|
410
|
+
*/
|
|
411
|
+
prepareResultItems(items: ClipperDocumentInfo[], params: ClipperSearchParams): void;
|
|
412
|
+
/**
|
|
413
|
+
* Applies a new search result snapshot: clears the current selection, optionally preserves
|
|
414
|
+
* facet state for incremental updates, and triggers change detection.
|
|
415
|
+
* @param data - The incoming search result.
|
|
416
|
+
* @param newSearch - When `true`, facet state is reset along with the results.
|
|
417
|
+
*/
|
|
418
|
+
prepareResults(data: ClipperSearchResult, newSearch?: boolean): void;
|
|
419
|
+
/**
|
|
420
|
+
* Exports either the selected documents or the full result set in the given format.
|
|
421
|
+
* @param format - The export format: 1 = list (CSV), 2 = deadlines (ICS).
|
|
422
|
+
*/
|
|
423
|
+
exportResults(format?: number): void;
|
|
424
|
+
/**
|
|
425
|
+
* Returns the CSS class that reflects the item's read/expiry state.
|
|
426
|
+
* @param item - The document to evaluate.
|
|
427
|
+
* @returns A CSS class name string, or `undefined` when no special state applies.
|
|
428
|
+
*/
|
|
429
|
+
getItemStateCssClass(item: ClipperDocumentInfo): string | undefined;
|
|
430
|
+
/**
|
|
431
|
+
* Returns the tooltip text that explains the item's current read/expiry state.
|
|
432
|
+
* @param item - The document to evaluate.
|
|
433
|
+
* @returns A human-readable state description, or an empty string when no special state applies.
|
|
434
|
+
*/
|
|
435
|
+
getItemStateTooltip(item: ClipperDocumentInfo): string;
|
|
436
|
+
/**
|
|
437
|
+
* Returns the Material icon name that represents the given document's model.
|
|
438
|
+
* @param item - The document whose icon to determine.
|
|
439
|
+
* @returns A Material icon name string.
|
|
440
|
+
*/
|
|
441
|
+
getItemIcon(item: ClipperDocumentInfo): string;
|
|
442
|
+
/**
|
|
443
|
+
* Toggles the read flag of the given item and stops event propagation.
|
|
444
|
+
* @param item - The document whose read state to toggle.
|
|
445
|
+
* @param e - Optional DOM event; when provided, default action and propagation are suppressed.
|
|
446
|
+
*/
|
|
447
|
+
toggleRead(item: ClipperDocumentInfo, e?: Event): void;
|
|
448
|
+
/**
|
|
449
|
+
* Toggles the selection state of the given item and stops event propagation.
|
|
450
|
+
* @param item - The document to select or deselect.
|
|
451
|
+
* @param e - Optional DOM event; when provided, default action and propagation are suppressed.
|
|
452
|
+
*/
|
|
453
|
+
toggleSelection(item: ClipperDocumentInfo, e?: Event): void;
|
|
454
|
+
/**
|
|
455
|
+
* Sets the read state on the given item or on all currently selected items.
|
|
456
|
+
* Broadcasts a read-state-changed event and updates the unread counter.
|
|
457
|
+
* @param value - The new read flag value.
|
|
458
|
+
* @param item - When provided, only this item is updated; otherwise the full selection is used.
|
|
459
|
+
*/
|
|
460
|
+
setRead(value: boolean, item?: ClipperDocumentInfo): void;
|
|
461
|
+
/**
|
|
462
|
+
* Opens a document by ID, either inline or in a new browser tab.
|
|
463
|
+
* @param documentId - The ID of the document to open.
|
|
464
|
+
* @param query - The current search query used to highlight terms in the viewer.
|
|
465
|
+
* @param queryChunks - Pipe-separated highlight chunks (e.g. "|1|2|3...").
|
|
466
|
+
* @param newWindow - When `true`, opens the document in a new browser tab.
|
|
467
|
+
*/
|
|
468
|
+
open(documentId?: string, query?: string, queryChunks?: string, newWindow?: boolean): void;
|
|
469
|
+
/**
|
|
470
|
+
* Opens the Clipper document viewer dialog for the given document.
|
|
471
|
+
* @param documentId - The ID of the document to open.
|
|
472
|
+
* @param query - The normalized search query used for term highlighting.
|
|
473
|
+
* @param queryChunks - Pipe-separated highlight chunks (e.g. "|1|2|3...").
|
|
474
|
+
*/
|
|
475
|
+
openDocument(documentId?: string, query?: string, queryChunks?: string): void;
|
|
476
|
+
/**
|
|
477
|
+
* Serialises the current component state (paginator, facets, filter params, scroll, sort, data)
|
|
478
|
+
* to the given storage under the given key, enabling later restoration.
|
|
479
|
+
* @param id - The storage key to write to.
|
|
480
|
+
* @param storage - The Web Storage instance to use. Defaults to `sessionStorage`.
|
|
481
|
+
*/
|
|
482
|
+
save(id: string, storage?: Storage): void;
|
|
483
|
+
/**
|
|
484
|
+
* Restores a previously serialised component state from storage and re-applies it.
|
|
485
|
+
* Facets, paginator, scroll position, and filter parameters are all re-hydrated.
|
|
486
|
+
* @param id - The storage key to read from.
|
|
487
|
+
* @param storage - The Web Storage instance to use. Defaults to `sessionStorage`.
|
|
488
|
+
*/
|
|
489
|
+
/**
|
|
490
|
+
* Hook invoked just before the component state is serialised by save().
|
|
491
|
+
* Subclasses that keep a separate form model can commit it to filterParams here.
|
|
492
|
+
*/
|
|
493
|
+
protected onStateSaving(): void;
|
|
494
|
+
/**
|
|
495
|
+
* Hook invoked after restore() has fully re-hydrated filterParams.
|
|
496
|
+
* Subclasses that keep a separate form model can rebuild it from filterParams here.
|
|
497
|
+
*/
|
|
498
|
+
protected onStateRestored(): void;
|
|
499
|
+
restore(id: string, storage?: Storage): void;
|
|
500
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ClipperSearchResultManager, never>;
|
|
501
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ClipperSearchResultManager, "ng-component", never, {}, {}, never, never, true, never>;
|
|
490
502
|
}
|
|
491
|
-
|
|
492
503
|
/**
|
|
493
504
|
* Shape of the browser filter-pane form model, derived from the {@link ClipperSearchParams}
|
|
494
505
|
* DTO: every field of that DTO is optional, so it cannot back a signal form directly.
|
|
@@ -499,877 +510,967 @@ declare class ClipperSearchResultManager extends ClipperDocumentManager {
|
|
|
499
510
|
* what Material's date accessors write when a datepicker input is cleared.
|
|
500
511
|
*/
|
|
501
512
|
interface BrowserFilterForm {
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
513
|
+
modules: NameValueItem<ClipperModule>[] | null;
|
|
514
|
+
tags: NameValueItem<string>[] | null;
|
|
515
|
+
topics: NameValueItem<string>[] | null;
|
|
516
|
+
sectors: NameValueItem<string>[] | null;
|
|
517
|
+
authors: NameValueItem<string>[] | null;
|
|
518
|
+
channels: NameValueItem<any>[] | null;
|
|
519
|
+
number: string;
|
|
520
|
+
year: number | null;
|
|
521
|
+
from: Date | null;
|
|
522
|
+
to: Date | null;
|
|
523
|
+
text: string;
|
|
524
|
+
titleOnly: boolean;
|
|
525
|
+
showNotAbrogatedDocumentsOnly: boolean;
|
|
526
|
+
showCommentedDocumentsOnly: boolean;
|
|
527
|
+
showUnreadDocumentsOnly: boolean;
|
|
528
|
+
sourceNumber: string;
|
|
529
|
+
sourceYear: number | null;
|
|
530
|
+
sourceFrom: Date | null;
|
|
531
|
+
sourceTo: Date | null;
|
|
532
|
+
source: string | null;
|
|
533
|
+
author: string | null;
|
|
534
|
+
type: string | null;
|
|
535
|
+
changedNumber: string;
|
|
536
|
+
changedYear: number | null;
|
|
537
|
+
changedTitle: string;
|
|
538
|
+
modifierNumber: string;
|
|
539
|
+
modifierYear: number | null;
|
|
540
|
+
modifierTitle: string;
|
|
541
|
+
changeReason: number | null;
|
|
531
542
|
}
|
|
532
|
-
declare class ClipperBrowserComponent extends ClipperSearchResultManager {
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
543
|
+
export declare class ClipperBrowserComponent extends ClipperSearchResultManager {
|
|
544
|
+
/** Error text of a field: the message declared in the schema, or the shared fallback. */
|
|
545
|
+
protected readonly getErrorMessage: typeof SignalsUtils.getFieldErrorMessage;
|
|
546
|
+
/**
|
|
547
|
+
* Error text for a date range: whichever end is in error speaks for the pair.
|
|
548
|
+
* @param from - Errors of the start field, from `f.from().errors()`.
|
|
549
|
+
* @param to - Errors of the end field, from `f.to().errors()`.
|
|
550
|
+
* @returns The text to show under the range, or `undefined` when neither end is in error.
|
|
551
|
+
*/
|
|
552
|
+
protected rangeErrorMessage(from: readonly {
|
|
553
|
+
kind: string;
|
|
554
|
+
message?: string;
|
|
555
|
+
}[], to: readonly {
|
|
556
|
+
kind: string;
|
|
557
|
+
message?: string;
|
|
558
|
+
}[]): string | undefined;
|
|
559
|
+
readonly filterByNumber: import("@angular/core").Signal<MatInput>;
|
|
560
|
+
readonly filterByText: import("@angular/core").Signal<MatInput>;
|
|
561
|
+
readonly filterByChangeNumber: import("@angular/core").Signal<MatInput>;
|
|
562
|
+
readonly filterPane: import("@angular/core").Signal<MatDrawer>;
|
|
563
|
+
readonly filterPane2: import("@angular/core").Signal<MatDrawer>;
|
|
564
|
+
readonly filterSelector: import("@angular/core").Signal<ButtonSelectorComponent>;
|
|
565
|
+
readonly moduleSelector: import("@angular/core").Signal<ChipsSelectorComponent>;
|
|
566
|
+
readonly sourceExpansionPanel: import("@angular/core").Signal<MatExpansionPanel>;
|
|
567
|
+
readonly otherOptionsExpansionPanel: import("@angular/core").Signal<MatExpansionPanel>;
|
|
568
|
+
readonly modifierExpansionPanel: import("@angular/core").Signal<MatExpansionPanel>;
|
|
569
|
+
readonly showChannels: import("@angular/core").InputSignal<boolean>;
|
|
570
|
+
readonly showRSOptions: import("@angular/core").InputSignal<boolean>;
|
|
571
|
+
readonly showAIAssistantOptions: import("@angular/core").InputSignal<boolean>;
|
|
572
|
+
readonly selectableModules: import("@angular/core").InputSignal<ClipperModule[]>;
|
|
573
|
+
readonly initialModule: import("@angular/core").InputSignal<ClipperModule>;
|
|
574
|
+
protected scrollDispatcher: ScrollDispatcher;
|
|
575
|
+
protected readonly filterDescription: import("@angular/core").WritableSignal<string>;
|
|
576
|
+
protected readonly filters: import("@angular/core").WritableSignal<NameValueItem<ClipperUserSearch>[]>;
|
|
577
|
+
/** Currently selected saved filter, derived from the filters list and the active search id. */
|
|
578
|
+
protected readonly filter: import("@angular/core").Signal<NameValueItem<ClipperUserSearch>>;
|
|
579
|
+
/** True when the user has access to the AI assistant feature. */
|
|
580
|
+
protected readonly hasAIAssistant: import("@angular/core").Signal<boolean>;
|
|
581
|
+
/** True when at least one saved filter is available. */
|
|
582
|
+
protected readonly hasFilters: import("@angular/core").Signal<boolean>;
|
|
583
|
+
/**
|
|
584
|
+
* Checks whether the current module selection targets law-related content.
|
|
585
|
+
* @param allowEmpty - When true, an empty module list also counts as law-related. Defaults to true.
|
|
586
|
+
* @returns True if the selection includes any law module or (when allowEmpty) is empty.
|
|
587
|
+
*/
|
|
588
|
+
protected isLaws(allowEmpty?: boolean): boolean;
|
|
589
|
+
/**
|
|
590
|
+
* Checks whether the currently selected modules produce readable content.
|
|
591
|
+
* @returns True when the modules allow content reading.
|
|
592
|
+
*/
|
|
593
|
+
protected isReadable(): boolean;
|
|
594
|
+
/**
|
|
595
|
+
* Checks whether the current selection targets the coordination module.
|
|
596
|
+
* @returns True when the 'ModificheAbrogazioniERinvii' module is selected.
|
|
597
|
+
*/
|
|
598
|
+
protected isCoordination(): boolean;
|
|
599
|
+
/**
|
|
600
|
+
* Checks whether the current sort mode is one of the date-based sort options.
|
|
601
|
+
* @returns True when results are sorted by date (ascending or descending).
|
|
602
|
+
*/
|
|
603
|
+
protected isSortedByDate(): boolean;
|
|
604
|
+
/**
|
|
605
|
+
* Checks whether the current filter parameters define a valid search.
|
|
606
|
+
* @returns True when at least one filter parameter has been set.
|
|
607
|
+
*/
|
|
608
|
+
protected canSearch(): boolean;
|
|
609
|
+
protected readonly sectors: import("@angular/core").WritableSignal<SectorInfo[]>;
|
|
610
|
+
/**
|
|
611
|
+
* Checks whether sector-based filtering is available for the current selection.
|
|
612
|
+
* @returns True when sector filtering applies.
|
|
613
|
+
*/
|
|
614
|
+
protected hasSectors(): boolean;
|
|
615
|
+
protected readonly regions: import("@angular/core").WritableSignal<NameValueItem<string>[]>;
|
|
616
|
+
/**
|
|
617
|
+
* Checks whether region-based filtering is available.
|
|
618
|
+
* @returns True when the selection includes sectors with regional content (LR).
|
|
619
|
+
*/
|
|
620
|
+
protected readonly hasRegions: import("@angular/core").Signal<boolean>;
|
|
621
|
+
protected readonly sources: import("@angular/core").WritableSignal<NameValueItem<string>[]>;
|
|
622
|
+
/**
|
|
623
|
+
* Checks whether source-based filtering applies to the current module selection.
|
|
624
|
+
* @returns True when source filtering is available.
|
|
625
|
+
*/
|
|
626
|
+
protected hasSource(): boolean;
|
|
627
|
+
protected readonly authors: import("@angular/core").WritableSignal<NameValueItem<string>[]>;
|
|
628
|
+
protected readonly types: import("@angular/core").WritableSignal<NameValueItem<string>[]>;
|
|
629
|
+
/** Topic tree loaded on initialization, used as input for the tree-selection dialog. */
|
|
630
|
+
protected topics: INode[];
|
|
631
|
+
/**
|
|
632
|
+
* Checks whether topic-based filtering applies to the current module selection.
|
|
633
|
+
* @returns True when topic filtering is available.
|
|
634
|
+
*/
|
|
635
|
+
protected hasTopics(): boolean;
|
|
636
|
+
protected readonly tags: import("@angular/core").WritableSignal<NameValueItem<string>[]>;
|
|
637
|
+
/**
|
|
638
|
+
* Checks whether tag-based filtering is available for the current modules.
|
|
639
|
+
* @returns True when tags are loaded and the selection includes news or in-depth modules.
|
|
640
|
+
*/
|
|
641
|
+
protected hasTags(): boolean;
|
|
642
|
+
protected reasons: import("@angular/core").WritableSignal<NameValueItem<number>[]>;
|
|
643
|
+
protected modules: import("@angular/core").WritableSignal<NameValueItem<ClipperModule>[]>;
|
|
644
|
+
/**
|
|
645
|
+
* The subset of modules available for selection, filtered by `selectableModules` when it is non-empty.
|
|
646
|
+
* Falls back to all modules when `selectableModules` is empty or null.
|
|
647
|
+
*/
|
|
648
|
+
protected readonly filteredModules: import("@angular/core").Signal<NameValueItem<ClipperModule>[]>;
|
|
649
|
+
protected user: ClipperUserInfo | undefined;
|
|
650
|
+
/**
|
|
651
|
+
* Model backing the filter-pane signal form. This is the single source of truth
|
|
652
|
+
* for every filter value bound in the template; `filterParams` only carries the
|
|
653
|
+
* assembled query DTO (see toForm/toPayload and loadFilter). Empty values are
|
|
654
|
+
* '' / null / false / null-array — never undefined, so every child field exists.
|
|
655
|
+
*/
|
|
656
|
+
protected readonly filterModel: import("@angular/core").WritableSignal<BrowserFilterForm>;
|
|
657
|
+
/**
|
|
658
|
+
* Signal form for the filter pane. The four year fields accept values from 1750
|
|
659
|
+
* (previously the native min attribute on the inputs).
|
|
660
|
+
*/
|
|
661
|
+
protected readonly filterForm: import("@angular/forms/signals").FieldTree<BrowserFilterForm, string | number, "writable">;
|
|
662
|
+
/** Root signal form for the sort-mode button selector. */
|
|
663
|
+
protected readonly sortForm: import("@angular/forms/signals").FieldTree<NameValueItem<ClipperSort>, string | number, "writable">;
|
|
664
|
+
/** Debounced stream of keyup events on the interval inputs (shorthand typing support). */
|
|
665
|
+
private readonly intervalKeyup;
|
|
666
|
+
/**
|
|
667
|
+
* Applies a partial update to the filter model.
|
|
668
|
+
* @param patch - The fields to change.
|
|
669
|
+
*/
|
|
670
|
+
private patchFilter;
|
|
671
|
+
/**
|
|
672
|
+
* Blocks the space key on the interval inputs; it is reserved as the
|
|
673
|
+
* "copy the other bound" shortcut handled by onIntervalKeyup.
|
|
674
|
+
* @param event - The keydown event from a start or end date input.
|
|
675
|
+
*/
|
|
676
|
+
protected onIntervalKeydown(event: KeyboardEvent): void;
|
|
677
|
+
/**
|
|
678
|
+
* Forwards keyup events of the interval inputs to the debounced shorthand parser.
|
|
679
|
+
* @param event - The keyup event from a start or end date input.
|
|
680
|
+
* @param source - `true` when the event comes from the source-publication range.
|
|
681
|
+
* @param end - `true` when the event comes from an end-date input.
|
|
682
|
+
*/
|
|
683
|
+
protected onIntervalKeyup(event: KeyboardEvent, source: boolean, end: boolean): void;
|
|
684
|
+
/**
|
|
685
|
+
* Clears one of the two publication ranges.
|
|
686
|
+
* @param source - `true` to clear the source-publication range.
|
|
687
|
+
*/
|
|
688
|
+
protected clearInterval(source?: boolean): void;
|
|
689
|
+
private _viewReady;
|
|
690
|
+
constructor();
|
|
691
|
+
/**
|
|
692
|
+
* Get all available modules
|
|
693
|
+
*/
|
|
694
|
+
private getAllModules;
|
|
695
|
+
/**
|
|
696
|
+
* Return the snapshot document by id
|
|
697
|
+
* @param id : the document id
|
|
698
|
+
* @returns the document or null
|
|
699
|
+
*/
|
|
700
|
+
getSnapshotDocument(id: string): ClipperDocumentInfo | undefined;
|
|
701
|
+
/**
|
|
702
|
+
* Loads available tags from the server and populates the tag signal.
|
|
703
|
+
*/
|
|
704
|
+
protected loadTags(): void;
|
|
705
|
+
/**
|
|
706
|
+
* Load topics
|
|
707
|
+
*/
|
|
708
|
+
private loadTopics;
|
|
709
|
+
/**
|
|
710
|
+
* Show hide filter pane manually
|
|
711
|
+
*/
|
|
712
|
+
protected toggleFilterPane(): void;
|
|
713
|
+
/**
|
|
714
|
+
* Show hide filter pane manually
|
|
715
|
+
*/
|
|
716
|
+
protected toggleFilterPane2(): void;
|
|
717
|
+
/**
|
|
718
|
+
* Handle filter pane visibility
|
|
719
|
+
*/
|
|
720
|
+
protected handleFilterPaneVisibility(): void;
|
|
721
|
+
/**
|
|
722
|
+
* Initialize filter
|
|
723
|
+
*/
|
|
724
|
+
private initializeFilter;
|
|
725
|
+
/**
|
|
726
|
+
* Update filter when channels changes
|
|
727
|
+
* @param updateChannels: true to update channels
|
|
728
|
+
*/
|
|
729
|
+
protected channelsChanged(updateChannels?: boolean): void;
|
|
730
|
+
/**
|
|
720
731
|
* Update filter pane focus
|
|
721
732
|
*/
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
|
|
733
|
+
private updateFilterPaneFocus;
|
|
734
|
+
/**
|
|
735
|
+
* Loads the user's saved searches from the server and populates the filter selector.
|
|
736
|
+
*/
|
|
737
|
+
protected loadFilters(): void;
|
|
738
|
+
/**
|
|
739
|
+
* Saves the current filter parameters as a named search.
|
|
740
|
+
* @param newFilter - When true, always prompts for a new filter name; otherwise updates the existing one. Defaults to false.
|
|
741
|
+
*/
|
|
742
|
+
saveFilter(newFilter?: boolean): Promise<void>;
|
|
743
|
+
/**
|
|
744
|
+
* Prompts for confirmation and then deletes the currently active saved filter.
|
|
745
|
+
*/
|
|
746
|
+
deleteFilter(): void;
|
|
747
|
+
/**
|
|
748
|
+
* Applies a saved filter by deserializing its parameters into the current filter state.
|
|
749
|
+
* @param item - The saved filter to apply, or undefined to clear the filter.
|
|
750
|
+
*/
|
|
751
|
+
selectFilter(item: NameValueItem<ClipperUserSearch> | undefined): void;
|
|
752
|
+
/**
|
|
753
|
+
* Clear current filter params
|
|
754
|
+
*/
|
|
755
|
+
protected clearFilter(): void;
|
|
756
|
+
/**
|
|
757
|
+
* Builds the filter form model from a set of search parameters.
|
|
758
|
+
*
|
|
759
|
+
* Ad-hoc because the two publication ranges do not map field-to-field: the DTO keeps
|
|
760
|
+
* them as `fromDate`/`toDate`, and a range is only restored when both of its bounds
|
|
761
|
+
* are set, exactly as the saved filters were written.
|
|
762
|
+
*
|
|
763
|
+
* @param dto - The search parameters to read: the live `filterParams` on a state
|
|
764
|
+
* restore, or the deserialized data of a saved filter.
|
|
765
|
+
* @returns A fresh form model; the caller decides what to keep of the current one.
|
|
766
|
+
*/
|
|
767
|
+
private toForm;
|
|
768
|
+
/**
|
|
769
|
+
* Builds the search payload out of the filter model, normalizing empty values back to
|
|
770
|
+
* the undefined-based convention of {@link ClipperSearchParams}.
|
|
771
|
+
*
|
|
772
|
+
* Ad-hoc for two reasons. The two publication ranges are not payload fields: they
|
|
773
|
+
* reach the DTO as `fromDate`/`toDate` through {@link loadFilter} and
|
|
774
|
+
* {@link prepareFetch}. And every key has to be listed, `undefined` included, because
|
|
775
|
+
* `filterParams` is a long-lived object — reused across searches and serialized into
|
|
776
|
+
* saved filters — so a field the user has just emptied must be overwritten, not
|
|
777
|
+
* merely left out of the copy the way {@link DtoUtils.toPayload} does.
|
|
778
|
+
*
|
|
779
|
+
* @returns The subset of the search parameters the filter pane owns.
|
|
780
|
+
*/
|
|
781
|
+
private toPayload;
|
|
782
|
+
/**
|
|
783
|
+
* Commits the form model to filterParams before the component state is serialised.
|
|
784
|
+
*/
|
|
785
|
+
protected onStateSaving(): void;
|
|
786
|
+
/**
|
|
787
|
+
* Rebuilds the form model from filterParams after a state restore.
|
|
788
|
+
* The publication intervals are intentionally not rebuilt here — filterParams carries
|
|
789
|
+
* no fromDate/toDate at this point — matching the historical behavior where the range
|
|
790
|
+
* inputs were not restored.
|
|
791
|
+
*/
|
|
792
|
+
protected onStateRestored(): void;
|
|
793
|
+
/**
|
|
794
|
+
* Builds a DateInterval for the publication range of the current model.
|
|
795
|
+
* @param source - When true, uses the source-publication range instead.
|
|
796
|
+
* @returns The interval, with raw (non-normalized) bounds.
|
|
797
|
+
*/
|
|
798
|
+
private modelInterval;
|
|
799
|
+
/**
|
|
800
|
+
* Load selected filter
|
|
801
|
+
*/
|
|
802
|
+
private loadFilter;
|
|
803
|
+
/**
|
|
804
|
+
* Apply current filter params
|
|
805
|
+
*/
|
|
806
|
+
protected applyFilter(): void;
|
|
807
|
+
/**
|
|
808
|
+
* Manage sectors selection changes
|
|
809
|
+
*/
|
|
810
|
+
protected sectorsChanged(): void;
|
|
811
|
+
/**
|
|
812
|
+
* Check if any search parameter has been set
|
|
813
|
+
* @param params : the search params to check
|
|
814
|
+
* @returns true if at least one parameters has been set
|
|
815
|
+
*/
|
|
816
|
+
private isFiltering;
|
|
817
|
+
/**
|
|
818
|
+
* Checkif a single module is selected
|
|
819
|
+
* @param module : the module to check
|
|
820
|
+
* @returns : true if the specified module is the only one selected
|
|
821
|
+
*/
|
|
822
|
+
private isSingleModule;
|
|
823
|
+
/**
|
|
824
|
+
* Update modules unread items
|
|
825
|
+
*/
|
|
826
|
+
private updateModulesUnreadItems;
|
|
827
|
+
/**
|
|
828
|
+
* Checks if a module is supported
|
|
829
|
+
* @param module : the module to check
|
|
830
|
+
* @returns true if the module is supported
|
|
831
|
+
*/
|
|
832
|
+
private hasModule;
|
|
833
|
+
/**
|
|
834
|
+
* Manage module selection changes
|
|
835
|
+
*/
|
|
836
|
+
protected modulesChanged(): void;
|
|
837
|
+
/**
|
|
838
|
+
* Checks the current module selection against a list of expected modules.
|
|
839
|
+
* @param modules - The modules to check for.
|
|
840
|
+
* @param mode - The check mode: 1) exactly these elements, 2) all of these elements, 3) any of these elements.
|
|
841
|
+
* @returns True if the check passes.
|
|
842
|
+
*/
|
|
843
|
+
private checkModules;
|
|
844
|
+
/**
|
|
845
|
+
* Builds the effective query parameters for the next search request.
|
|
846
|
+
* @param newSearch - When true, resets pagination and triggers facet loading. Defaults to false.
|
|
847
|
+
* @returns The resolved {@link ClipperSearchParams} ready to be sent to the API.
|
|
848
|
+
*/
|
|
849
|
+
private prepareFetch;
|
|
850
|
+
/**
|
|
851
|
+
* Update filter description
|
|
852
|
+
*/
|
|
853
|
+
private updateFilterDescription;
|
|
854
|
+
/**
|
|
855
|
+
* Fetches and applies search facets for the current result set.
|
|
856
|
+
* @param params - The search parameters used to query facets.
|
|
857
|
+
*/
|
|
858
|
+
protected fetchFacets(params: ClipperSearchParams): void;
|
|
859
|
+
/**
|
|
860
|
+
* Hide facets
|
|
861
|
+
*/
|
|
862
|
+
protected hideFacets(): void;
|
|
863
|
+
/**
|
|
864
|
+
* Executes the search query and updates the result snapshot.
|
|
865
|
+
* @param newSearch - When true, resets pagination and reloads facets. Defaults to false.
|
|
866
|
+
*/
|
|
867
|
+
protected fetch(newSearch?: boolean): void;
|
|
868
|
+
/**
|
|
869
|
+
* Navigate to a new result page.
|
|
870
|
+
* @param e - The paginator {@link PageEvent} containing the new page index and size.
|
|
871
|
+
*/
|
|
872
|
+
protected fetchMore(e: PageEvent): void;
|
|
873
|
+
/**
|
|
874
|
+
* Change the current sort mode and refresh results.
|
|
875
|
+
* @param newSort - The new sort option to apply.
|
|
876
|
+
*/
|
|
877
|
+
protected sort(newSort?: NameValueItem<ClipperSort>): void;
|
|
878
|
+
/**
|
|
879
|
+
* Open the free-text search help dialog.
|
|
880
|
+
*/
|
|
881
|
+
protected help(): void;
|
|
882
|
+
/**
|
|
883
|
+
* Open the query-builder dialog to compose a free-text search expression.
|
|
884
|
+
*/
|
|
885
|
+
protected compose(): void;
|
|
886
|
+
/**
|
|
887
|
+
* Open the topic-selection dialog and append the chosen topics to the current filter.
|
|
888
|
+
*/
|
|
889
|
+
protected addTopic(): void;
|
|
890
|
+
/**
|
|
891
|
+
* Remove a topic from the current filter.
|
|
892
|
+
* @param item - The topic item to remove.
|
|
893
|
+
*/
|
|
894
|
+
protected deleteTopic(item: NameValueItem<string>): void;
|
|
895
|
+
/**
|
|
896
|
+
* Remove all topics from the current filter.
|
|
897
|
+
*/
|
|
898
|
+
protected clearTopics(): void;
|
|
899
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ClipperBrowserComponent, never>;
|
|
900
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ClipperBrowserComponent, "clipper-browser", never, {
|
|
901
|
+
"showChannels": {
|
|
902
|
+
"alias": "showChannels";
|
|
903
|
+
"required": false;
|
|
904
|
+
"isSignal": true;
|
|
905
|
+
};
|
|
906
|
+
"showRSOptions": {
|
|
907
|
+
"alias": "showRSOptions";
|
|
908
|
+
"required": false;
|
|
909
|
+
"isSignal": true;
|
|
910
|
+
};
|
|
911
|
+
"showAIAssistantOptions": {
|
|
912
|
+
"alias": "showAIAssistantOptions";
|
|
913
|
+
"required": false;
|
|
914
|
+
"isSignal": true;
|
|
915
|
+
};
|
|
916
|
+
"selectableModules": {
|
|
917
|
+
"alias": "selectableModules";
|
|
918
|
+
"required": false;
|
|
919
|
+
"isSignal": true;
|
|
920
|
+
};
|
|
921
|
+
"initialModule": {
|
|
922
|
+
"alias": "initialModule";
|
|
923
|
+
"required": false;
|
|
924
|
+
"isSignal": true;
|
|
925
|
+
};
|
|
926
|
+
}, {}, never, never, true, never>;
|
|
890
927
|
}
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
theme?: ThemeType;
|
|
928
|
+
export interface ClipperBrowserDialogData {
|
|
929
|
+
showChannels?: boolean;
|
|
930
|
+
selectionMode?: ClipperSelectionMode;
|
|
931
|
+
selectableModules?: ClipperModule[];
|
|
932
|
+
selectionMessage?: string;
|
|
933
|
+
initialModule?: number;
|
|
934
|
+
theme?: ThemeType;
|
|
899
935
|
}
|
|
900
|
-
declare class ClipperBrowserDialogComponent {
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
|
|
936
|
+
export declare class ClipperBrowserDialogComponent {
|
|
937
|
+
private readonly destroyRef;
|
|
938
|
+
readonly clipperBrowser: import("@angular/core").Signal<ClipperBrowserComponent>;
|
|
939
|
+
protected clipperService: ClipperService;
|
|
940
|
+
protected dialogData: ClipperBrowserDialogData;
|
|
941
|
+
private dialogRef;
|
|
942
|
+
private broadcastService;
|
|
943
|
+
constructor();
|
|
944
|
+
/**
|
|
945
|
+
* Determines whether the current selection satisfies the required selection mode
|
|
946
|
+
* and module constraints defined in the dialog data.
|
|
947
|
+
*
|
|
948
|
+
* @returns `true` if the selection is valid and can be confirmed; `false` otherwise.
|
|
949
|
+
*/
|
|
950
|
+
protected canSelect(): boolean;
|
|
951
|
+
/**
|
|
952
|
+
* Broadcasts the current selection as a message and closes the dialog.
|
|
953
|
+
* Does nothing when the selection is empty.
|
|
954
|
+
*/
|
|
955
|
+
protected select(): void;
|
|
956
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ClipperBrowserDialogComponent, never>;
|
|
957
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ClipperBrowserDialogComponent, "ng-component", never, {}, {}, never, never, true, never>;
|
|
922
958
|
}
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
canHandleTooManyResults?: boolean;
|
|
959
|
+
export interface ClipperDocumentDialogData {
|
|
960
|
+
selectionMode?: ClipperSelectionMode;
|
|
961
|
+
selectableModules?: ClipperModule[];
|
|
962
|
+
id: string;
|
|
963
|
+
query?: string;
|
|
964
|
+
queryChunks?: string;
|
|
965
|
+
theme?: ThemeType;
|
|
966
|
+
canHandleTooManyResults?: boolean;
|
|
932
967
|
}
|
|
933
|
-
declare class ClipperDocumentComponent extends ClipperDocumentManager {
|
|
934
|
-
|
|
935
|
-
|
|
936
|
-
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
|
|
1031
|
-
|
|
1032
|
-
|
|
1033
|
-
|
|
1034
|
-
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
-
|
|
1047
|
-
|
|
1048
|
-
|
|
1049
|
-
|
|
1050
|
-
|
|
1051
|
-
|
|
1052
|
-
|
|
1053
|
-
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
|
|
1057
|
-
|
|
1058
|
-
|
|
1059
|
-
|
|
1060
|
-
|
|
1061
|
-
|
|
1062
|
-
|
|
1063
|
-
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
|
|
1067
|
-
|
|
1068
|
-
|
|
1069
|
-
|
|
1070
|
-
|
|
1071
|
-
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
1080
|
-
|
|
1081
|
-
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
|
|
1088
|
-
|
|
1089
|
-
|
|
1090
|
-
|
|
1091
|
-
|
|
1092
|
-
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
|
|
1097
|
-
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
|
|
1101
|
-
|
|
1102
|
-
|
|
1103
|
-
|
|
1104
|
-
|
|
1105
|
-
|
|
1106
|
-
|
|
1107
|
-
|
|
1108
|
-
|
|
1109
|
-
|
|
1110
|
-
|
|
1111
|
-
|
|
1112
|
-
|
|
1113
|
-
|
|
1114
|
-
|
|
1115
|
-
|
|
1116
|
-
|
|
1117
|
-
|
|
1118
|
-
|
|
1119
|
-
|
|
1120
|
-
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
|
|
1124
|
-
|
|
1125
|
-
|
|
1126
|
-
|
|
1127
|
-
|
|
968
|
+
export declare class ClipperDocumentComponent extends ClipperDocumentManager {
|
|
969
|
+
readonly relevantsPane: import("@angular/core").Signal<MatDrawer>;
|
|
970
|
+
/** Reference to the document iframe element, used to drive navigation imperatively. */
|
|
971
|
+
private readonly iframeRef;
|
|
972
|
+
/** URL queued to be applied to the iframe as soon as the element becomes available. */
|
|
973
|
+
private pendingUrl;
|
|
974
|
+
readonly closing: import("@angular/core").OutputEmitterRef<void>;
|
|
975
|
+
readonly opening: import("@angular/core").OutputEmitterRef<string>;
|
|
976
|
+
private readonly destroyRef;
|
|
977
|
+
private readonly documentUtils;
|
|
978
|
+
private readonly breakpointObserver;
|
|
979
|
+
private readonly renderer;
|
|
980
|
+
private rendererListener1;
|
|
981
|
+
private readonly router;
|
|
982
|
+
private readonly shellService;
|
|
983
|
+
private readonly dialogRef;
|
|
984
|
+
protected readonly dialogData: ClipperDocumentDialogData;
|
|
985
|
+
protected readonly url: import("@angular/core").WritableSignal<string>;
|
|
986
|
+
protected readonly title: import("@angular/core").WritableSignal<string>;
|
|
987
|
+
protected readonly busy: import("@angular/core").WritableSignal<boolean>;
|
|
988
|
+
protected lastQuery?: string;
|
|
989
|
+
protected lastQueryChunks: string;
|
|
990
|
+
protected lastQueryType: 'fulltext' | 'semantic';
|
|
991
|
+
protected readonly lastDocument: import("@angular/core").WritableSignal<ClipperDocumentInfo>;
|
|
992
|
+
protected readonly relevants: import("@angular/core").WritableSignal<ClipperDocumentRelevants>;
|
|
993
|
+
protected readonly relevantsPaneHasBackdrop: import("@angular/core").WritableSignal<boolean>;
|
|
994
|
+
protected readonly relevantsPaneClosed: import("@angular/core").WritableSignal<boolean>;
|
|
995
|
+
protected readonly relevantsBusy: import("@angular/core").WritableSignal<boolean>;
|
|
996
|
+
protected readonly hasRelevants: import("@angular/core").WritableSignal<boolean>;
|
|
997
|
+
protected readonly user: ClipperUserInfo | undefined;
|
|
998
|
+
constructor();
|
|
999
|
+
/**
|
|
1000
|
+
* Toggles the relevants side-pane open/closed state.
|
|
1001
|
+
*/
|
|
1002
|
+
protected toggleRelevantsPane(): void;
|
|
1003
|
+
/**
|
|
1004
|
+
* Adjusts the relevants side-pane mode and visibility based on the current viewport breakpoint.
|
|
1005
|
+
*/
|
|
1006
|
+
private handleRelevantsPaneVisibility;
|
|
1007
|
+
/**
|
|
1008
|
+
* Emits the closing event and closes the dialog after a short delay.
|
|
1009
|
+
*/
|
|
1010
|
+
protected close(): void;
|
|
1011
|
+
/**
|
|
1012
|
+
* Navigates to a document or external URL received from the iframe.
|
|
1013
|
+
* @param id - The document id or URL to navigate to.
|
|
1014
|
+
*/
|
|
1015
|
+
navigate(id: string): void;
|
|
1016
|
+
/**
|
|
1017
|
+
* Resolves and loads a document by its fully-qualified render URL.
|
|
1018
|
+
* Parses query, theme, and anchor information before navigating.
|
|
1019
|
+
* @param url - The full render URL to load.
|
|
1020
|
+
*/
|
|
1021
|
+
navigateByUrl(url: string): void;
|
|
1022
|
+
/**
|
|
1023
|
+
* Applies the given URL to the iframe element if available, otherwise queues it
|
|
1024
|
+
* to be applied as soon as the iframe view child resolves.
|
|
1025
|
+
* @param url - The URL to load into the iframe.
|
|
1026
|
+
*/
|
|
1027
|
+
private applyIframeUrl;
|
|
1028
|
+
/**
|
|
1029
|
+
* Navigates the iframe to the given URL, always pushing a new entry into its
|
|
1030
|
+
* session history — even when the URL is identical to the current one.
|
|
1031
|
+
*
|
|
1032
|
+
* We use `location.assign` instead of setting `src` directly so that:
|
|
1033
|
+
* - the navigation is guaranteed to happen across browsers (assigning the same
|
|
1034
|
+
* string to `src` is a no-op in some engines);
|
|
1035
|
+
* - a new history entry is added, keeping the iframe's Back stack independent
|
|
1036
|
+
* from the parent window's history. Otherwise, repeated Back presses would
|
|
1037
|
+
* eventually fall through to the host page and close the dialog.
|
|
1038
|
+
*
|
|
1039
|
+
* If the iframe is cross-origin and `contentWindow.location` access throws,
|
|
1040
|
+
* we fall back to a plain `src` assignment.
|
|
1041
|
+
*
|
|
1042
|
+
* @param el - The iframe element to update.
|
|
1043
|
+
* @param url - The URL to navigate to.
|
|
1044
|
+
*/
|
|
1045
|
+
private setIframeSrc;
|
|
1046
|
+
/**
|
|
1047
|
+
* Called by the iframe when a document has finished rendering.
|
|
1048
|
+
* Parses and stores all document metadata, then triggers auxiliary data loading.
|
|
1049
|
+
* @param id - Document id.
|
|
1050
|
+
* @param title1 - Primary title.
|
|
1051
|
+
* @param title2 - Secondary title.
|
|
1052
|
+
* @param tags - Comma-separated tag list.
|
|
1053
|
+
* @param model - Document model identifier.
|
|
1054
|
+
* @param moduleId - Module identifier.
|
|
1055
|
+
* @param moduleName - Module display name.
|
|
1056
|
+
* @param date - Publication date string.
|
|
1057
|
+
* @param number - Document number.
|
|
1058
|
+
* @param author - Author name.
|
|
1059
|
+
* @param origin - Source origin code.
|
|
1060
|
+
* @param originDescription - Human-readable origin description.
|
|
1061
|
+
* @param bag - Encoded flags string.
|
|
1062
|
+
* @param validityInfo - Encoded validity information.
|
|
1063
|
+
* @param expiringInfo - Encoded expiration information.
|
|
1064
|
+
* @param primaryId - Id of the primary linked document, if any.
|
|
1065
|
+
* @param primaryModel - Model of the primary linked document.
|
|
1066
|
+
* @param secondaryId - Id of the secondary linked document, if any.
|
|
1067
|
+
* @param isTrial - True when the request is a trial/preview access.
|
|
1068
|
+
*/
|
|
1069
|
+
navigated(id: string, title1: string, title2: string, tags: string, model: number, moduleId: number, moduleName: string, date: string, number: string, author: string, origin: string, originDescription: string, bag: string, validityInfo: string, expiringInfo: string, primaryId: string, primaryModel: number, secondaryId: string, isTrial: boolean): void;
|
|
1070
|
+
/**
|
|
1071
|
+
* Navigates back in the iframe's browsing history.
|
|
1072
|
+
*/
|
|
1073
|
+
protected back(): void;
|
|
1074
|
+
/**
|
|
1075
|
+
* Navigates forward in the iframe's browsing history.
|
|
1076
|
+
*/
|
|
1077
|
+
protected forward(): void;
|
|
1078
|
+
/**
|
|
1079
|
+
* Moves focus to the next highlighted relevant hit inside the document.
|
|
1080
|
+
*/
|
|
1081
|
+
protected nextRelevant(): void;
|
|
1082
|
+
/**
|
|
1083
|
+
* Moves focus to the previous highlighted relevant hit inside the document.
|
|
1084
|
+
*/
|
|
1085
|
+
protected previousRelevant(): void;
|
|
1086
|
+
/**
|
|
1087
|
+
* Scrolls to a specific relevant anchor inside the document, or opens it in a new tab.
|
|
1088
|
+
* @param item - The anchor item to navigate to.
|
|
1089
|
+
*/
|
|
1090
|
+
protected gotoRelevant(item: ClipperDocumentAnchorInfo): void;
|
|
1091
|
+
/**
|
|
1092
|
+
* Fetches and renders full-text relevant anchors for the current document and query.
|
|
1093
|
+
*/
|
|
1094
|
+
private updateRelevants;
|
|
1095
|
+
/**
|
|
1096
|
+
* Updates the relevant anchors list from chunk-based hit data received from the iframe.
|
|
1097
|
+
* @param anchors - Array of chunk hit data to convert into anchor items.
|
|
1098
|
+
*/
|
|
1099
|
+
private updateRelevants2;
|
|
1100
|
+
/**
|
|
1101
|
+
* Opens the document structure index dialog and scrolls to or opens the selected section.
|
|
1102
|
+
* @param documentId - The id of the document whose index to display.
|
|
1103
|
+
*/
|
|
1104
|
+
protected index(documentId: string): void;
|
|
1105
|
+
/**
|
|
1106
|
+
* Extracts the value of a named query-string parameter from a URL.
|
|
1107
|
+
* @param url - The URL string to search.
|
|
1108
|
+
* @param name - The parameter name to look for. Defaults to 'id'.
|
|
1109
|
+
* @returns The extracted parameter value.
|
|
1110
|
+
*/
|
|
1111
|
+
private getId;
|
|
1112
|
+
/**
|
|
1113
|
+
* Previews or downloads a file identified by a render URL.
|
|
1114
|
+
* Opens a preview dialog when the file supports embedding, otherwise triggers a browser download.
|
|
1115
|
+
* @param url - The file render URL to preview.
|
|
1116
|
+
*/
|
|
1117
|
+
private previewFile;
|
|
1118
|
+
/**
|
|
1119
|
+
* Loads and displays the editorial comment associated with the current document.
|
|
1120
|
+
*/
|
|
1121
|
+
protected showComment(): void;
|
|
1122
|
+
/**
|
|
1123
|
+
* Opens a document, either inline or in a new browser tab.
|
|
1124
|
+
* @param documentId - The id of the document to open.
|
|
1125
|
+
* @param query - Optional free-text query for highlight.
|
|
1126
|
+
* @param queryChunks - Optional chunk offsets for semantic highlight.
|
|
1127
|
+
* @param newWindow - When true, opens the document in a new browser tab.
|
|
1128
|
+
*/
|
|
1129
|
+
open(documentId: string, query?: string, queryChunks?: string, newWindow?: boolean): void;
|
|
1130
|
+
/**
|
|
1131
|
+
* Opens a document inline via the {@link ClipperDocumentViewerService}.
|
|
1132
|
+
* @param documentId - The id of the document to open.
|
|
1133
|
+
* @param query - Optional free-text query for highlight.
|
|
1134
|
+
* @param queryChunks - Optional chunk offsets for semantic highlight.
|
|
1135
|
+
*/
|
|
1136
|
+
private openDocument;
|
|
1137
|
+
/**
|
|
1138
|
+
* Opens the references panel for the given document.
|
|
1139
|
+
* @param documentId - The id of the document whose references to display.
|
|
1140
|
+
* @param mode - The reference query mode. Defaults to ReferencesIn.
|
|
1141
|
+
* @param model - Optional document model filter.
|
|
1142
|
+
* @param anchor - Optional anchor id to highlight.
|
|
1143
|
+
* @param anchorTitle - Optional anchor title to display.
|
|
1144
|
+
* @param update - When true, triggers a refresh of the references list. Defaults to true.
|
|
1145
|
+
*/
|
|
1146
|
+
openReferences(documentId: string, mode?: ClipperQueryReferencesMode, model?: number | null, anchor?: string | null, anchorTitle?: string | null, update?: boolean): void;
|
|
1147
|
+
/**
|
|
1148
|
+
* Opens the report viewer for the given document when supported by its model.
|
|
1149
|
+
* @param item - The document whose report to display.
|
|
1150
|
+
*/
|
|
1151
|
+
protected displayReport(item: ClipperDocumentInfo): void;
|
|
1152
|
+
/**
|
|
1153
|
+
* Determines whether the current document satisfies the dialog's selection constraints.
|
|
1154
|
+
* @returns True when the document can be selected and confirmed.
|
|
1155
|
+
*/
|
|
1156
|
+
protected canSelect(): boolean;
|
|
1157
|
+
/**
|
|
1158
|
+
* Broadcasts the current document as a selection message and closes the dialog.
|
|
1159
|
+
*/
|
|
1160
|
+
protected select(): void;
|
|
1161
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ClipperDocumentComponent, never>;
|
|
1162
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ClipperDocumentComponent, "ng-component", never, {}, {
|
|
1163
|
+
"closing": "closing";
|
|
1164
|
+
"opening": "opening";
|
|
1165
|
+
}, never, never, true, never>;
|
|
1128
1166
|
}
|
|
1129
|
-
|
|
1130
|
-
|
|
1131
|
-
|
|
1132
|
-
|
|
1133
|
-
multiple?: boolean;
|
|
1167
|
+
export interface ClipperDocumentIndexDialogData {
|
|
1168
|
+
documentId: string;
|
|
1169
|
+
excludedTypes?: number[];
|
|
1170
|
+
multiple?: boolean;
|
|
1134
1171
|
}
|
|
1135
|
-
interface ClipperDocumentIndexDialogResult {
|
|
1136
|
-
|
|
1172
|
+
export interface ClipperDocumentIndexDialogResult {
|
|
1173
|
+
data: ClipperDocumentAnchorInfo[];
|
|
1137
1174
|
}
|
|
1138
|
-
declare class ClipperDocumentIndexComponent {
|
|
1139
|
-
|
|
1140
|
-
|
|
1141
|
-
|
|
1142
|
-
|
|
1143
|
-
|
|
1144
|
-
|
|
1145
|
-
|
|
1146
|
-
|
|
1147
|
-
|
|
1148
|
-
|
|
1149
|
-
|
|
1150
|
-
|
|
1151
|
-
|
|
1152
|
-
|
|
1153
|
-
|
|
1154
|
-
|
|
1155
|
-
|
|
1156
|
-
|
|
1157
|
-
|
|
1158
|
-
|
|
1159
|
-
|
|
1160
|
-
|
|
1161
|
-
|
|
1162
|
-
|
|
1163
|
-
|
|
1164
|
-
|
|
1165
|
-
|
|
1175
|
+
export declare class ClipperDocumentIndexComponent {
|
|
1176
|
+
readonly selection: import("@angular/core").Signal<MatSelectionList>;
|
|
1177
|
+
readonly done: import("@angular/core").OutputEmitterRef<ClipperDocumentIndexDialogResult>;
|
|
1178
|
+
private clipperService;
|
|
1179
|
+
private dialogService;
|
|
1180
|
+
protected dialogData: ClipperDocumentIndexDialogData;
|
|
1181
|
+
protected readonly items: import("@angular/core").WritableSignal<ClipperDocumentAnchorInfo[]>;
|
|
1182
|
+
protected readonly okDisabled: import("@angular/core").WritableSignal<boolean>;
|
|
1183
|
+
constructor();
|
|
1184
|
+
/**
|
|
1185
|
+
* Loads the document's structural index from the server and populates the item list.
|
|
1186
|
+
* Items whose type appears in {@link ClipperDocumentIndexDialogData.excludedTypes} are filtered out.
|
|
1187
|
+
* Each item's description is built from its title, or derived from its type and text when no title is set.
|
|
1188
|
+
*/
|
|
1189
|
+
private load;
|
|
1190
|
+
/**
|
|
1191
|
+
* Updates the OK button disabled state based on whether anything is selected in the list.
|
|
1192
|
+
*/
|
|
1193
|
+
protected select(): void;
|
|
1194
|
+
/**
|
|
1195
|
+
* Emits the current selection as the dialog result.
|
|
1196
|
+
* In single-selection mode, emits the explicitly provided item.
|
|
1197
|
+
* In multiple-selection mode, collects all selected items from the list.
|
|
1198
|
+
* @param item - The directly clicked item for single-selection mode; omit for multiple-selection mode.
|
|
1199
|
+
*/
|
|
1200
|
+
protected use(item?: ClipperDocumentAnchorInfo): void;
|
|
1201
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ClipperDocumentIndexComponent, never>;
|
|
1202
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ClipperDocumentIndexComponent, "ng-component", never, {}, {
|
|
1203
|
+
"done": "done";
|
|
1204
|
+
}, never, never, true, never>;
|
|
1166
1205
|
}
|
|
1167
|
-
|
|
1168
|
-
|
|
1169
|
-
|
|
1170
|
-
|
|
1171
|
-
|
|
1172
|
-
|
|
1173
|
-
|
|
1174
|
-
|
|
1175
|
-
|
|
1176
|
-
|
|
1177
|
-
|
|
1178
|
-
|
|
1179
|
-
|
|
1180
|
-
|
|
1181
|
-
|
|
1182
|
-
|
|
1183
|
-
|
|
1184
|
-
|
|
1185
|
-
|
|
1186
|
-
|
|
1187
|
-
|
|
1188
|
-
|
|
1189
|
-
|
|
1190
|
-
|
|
1191
|
-
|
|
1192
|
-
|
|
1193
|
-
|
|
1194
|
-
|
|
1195
|
-
|
|
1196
|
-
|
|
1197
|
-
|
|
1198
|
-
|
|
1199
|
-
|
|
1200
|
-
|
|
1201
|
-
|
|
1202
|
-
|
|
1203
|
-
|
|
1204
|
-
|
|
1205
|
-
|
|
1206
|
-
|
|
1207
|
-
|
|
1208
|
-
|
|
1209
|
-
|
|
1210
|
-
|
|
1211
|
-
|
|
1212
|
-
|
|
1213
|
-
|
|
1214
|
-
|
|
1215
|
-
|
|
1216
|
-
|
|
1217
|
-
|
|
1218
|
-
|
|
1219
|
-
|
|
1220
|
-
|
|
1221
|
-
|
|
1222
|
-
|
|
1223
|
-
|
|
1224
|
-
|
|
1225
|
-
|
|
1226
|
-
|
|
1227
|
-
|
|
1228
|
-
|
|
1229
|
-
|
|
1230
|
-
|
|
1231
|
-
|
|
1232
|
-
|
|
1233
|
-
|
|
1234
|
-
|
|
1235
|
-
|
|
1236
|
-
|
|
1237
|
-
|
|
1238
|
-
|
|
1239
|
-
|
|
1240
|
-
|
|
1241
|
-
|
|
1242
|
-
|
|
1243
|
-
|
|
1244
|
-
|
|
1245
|
-
|
|
1246
|
-
|
|
1247
|
-
|
|
1248
|
-
|
|
1249
|
-
|
|
1250
|
-
|
|
1251
|
-
|
|
1252
|
-
|
|
1253
|
-
|
|
1254
|
-
|
|
1255
|
-
|
|
1256
|
-
|
|
1257
|
-
|
|
1258
|
-
|
|
1259
|
-
|
|
1260
|
-
|
|
1261
|
-
|
|
1262
|
-
|
|
1263
|
-
|
|
1264
|
-
|
|
1265
|
-
|
|
1266
|
-
|
|
1267
|
-
|
|
1268
|
-
|
|
1269
|
-
|
|
1270
|
-
|
|
1206
|
+
export declare class ClipperDocumentMenuComponent {
|
|
1207
|
+
private readonly rsMenuTrigger;
|
|
1208
|
+
private readonly aiAssistantMenuTrigger;
|
|
1209
|
+
private readonly linksMenuTrigger;
|
|
1210
|
+
private readonly allMenuTriggers;
|
|
1211
|
+
private readonly renderer2;
|
|
1212
|
+
private readonly clipperService;
|
|
1213
|
+
readonly useSelections: import("@angular/core").InputSignal<boolean>;
|
|
1214
|
+
readonly selectionSource: import("@angular/core").InputSignal<"none" | "bag" | "selection">;
|
|
1215
|
+
/**
|
|
1216
|
+
* Computed signal that returns the current effective document selection.
|
|
1217
|
+
* Re-evaluates when any input signal or the underlying selection model changes.
|
|
1218
|
+
*/
|
|
1219
|
+
protected readonly selection: import("@angular/core").Signal<ClipperDocumentInfo[]>;
|
|
1220
|
+
readonly parent: import("@angular/core").InputSignal<any>;
|
|
1221
|
+
/**
|
|
1222
|
+
* Emits whenever the parent's SelectionModel changes (relevant only for the 'selection'
|
|
1223
|
+
* source; the 'bag' source is already a signal). `toObservable`+`switchMap` re-binds
|
|
1224
|
+
* cleanly if `parent` ever changes and removes the manual subscription/afterNextRender.
|
|
1225
|
+
*/
|
|
1226
|
+
private readonly selectionTick;
|
|
1227
|
+
readonly item: import("@angular/core").InputSignal<ClipperDocumentInfo>;
|
|
1228
|
+
readonly isReference: import("@angular/core").InputSignal<boolean>;
|
|
1229
|
+
readonly isReadable: import("@angular/core").InputSignal<boolean>;
|
|
1230
|
+
readonly isReadableModel: import("@angular/core").InputSignal<ClipperModel>;
|
|
1231
|
+
readonly isLawInForce: import("@angular/core").InputSignal<boolean>;
|
|
1232
|
+
readonly canPrint: import("@angular/core").InputSignal<boolean>;
|
|
1233
|
+
readonly canFind: import("@angular/core").InputSignal<boolean>;
|
|
1234
|
+
readonly canUseAIAssistant: import("@angular/core").InputSignal<boolean>;
|
|
1235
|
+
protected readonly canUseAIEditor: boolean;
|
|
1236
|
+
readonly canUseRS: import("@angular/core").InputSignal<boolean>;
|
|
1237
|
+
readonly canOpenDocument: import("@angular/core").InputSignal<boolean>;
|
|
1238
|
+
/** `true` when the current selection source is 'selection' and at least one item is selected. */
|
|
1239
|
+
protected readonly canDeselectAll: import("@angular/core").Signal<boolean>;
|
|
1240
|
+
/** `true` when operating in bag-management mode. */
|
|
1241
|
+
protected readonly canManageBag: import("@angular/core").Signal<boolean>;
|
|
1242
|
+
/** `true` when opening a document is allowed and exactly one item is selected. */
|
|
1243
|
+
protected readonly canOpen: import("@angular/core").Signal<boolean>;
|
|
1244
|
+
/** `true` when at least one item can be sent by email. */
|
|
1245
|
+
protected readonly canSendByEmail: import("@angular/core").Signal<boolean>;
|
|
1246
|
+
/** `true` when all selected items are deadline/alert documents and can travel as an ICS file. */
|
|
1247
|
+
protected readonly canExportCalendar: import("@angular/core").Signal<boolean>;
|
|
1248
|
+
/** `true` when the selection contains non-Coordinamento items that can be added to working documents. */
|
|
1249
|
+
protected readonly canAddToWorkingDocuments: import("@angular/core").Signal<boolean>;
|
|
1250
|
+
/** `true` when a single non-Coordinamento document is selected and can be saved as PDF. */
|
|
1251
|
+
protected readonly canSaveAsPdf: import("@angular/core").Signal<boolean>;
|
|
1252
|
+
/** `true` when the selection contains at least one unread document that supports the read state. */
|
|
1253
|
+
protected readonly canSetAsRead: import("@angular/core").Signal<boolean>;
|
|
1254
|
+
/** `true` when the selection contains at least one already-read document that supports the read state. */
|
|
1255
|
+
protected readonly canSetAsUnread: import("@angular/core").Signal<boolean>;
|
|
1256
|
+
/** `true` when the Clipper service supports RS and all selected items are RS-enabled. */
|
|
1257
|
+
protected readonly canAccessRS: import("@angular/core").Signal<boolean>;
|
|
1258
|
+
/**
|
|
1259
|
+
* Returns a single selected document: the bound item if present, or the sole item in the selection list.
|
|
1260
|
+
* @returns The selected document, or `undefined` when zero or more than one item is selected.
|
|
1261
|
+
*/
|
|
1262
|
+
protected getSingleSelection(): ClipperDocumentInfo | undefined;
|
|
1263
|
+
/**
|
|
1264
|
+
* Returns the full effective selection as an array.
|
|
1265
|
+
* If a bound item is present it is returned wrapped in a single-element array;
|
|
1266
|
+
* otherwise the full selection list is returned.
|
|
1267
|
+
* @returns An array of selected documents, or an empty array when nothing is selected.
|
|
1268
|
+
*/
|
|
1269
|
+
protected getMultipleSelection(): ClipperDocumentInfo[];
|
|
1270
|
+
/**
|
|
1271
|
+
* Returns whether exactly one document is available for single-item operations.
|
|
1272
|
+
* @returns `true` if the bound item has a non-empty document ID, or if exactly one item is selected.
|
|
1273
|
+
*/
|
|
1274
|
+
protected hasSingleSelection(): boolean;
|
|
1275
|
+
/**
|
|
1276
|
+
* Closes all open sub-menu panels, then optionally opens the given trigger's menu.
|
|
1277
|
+
* @param trigger - The menu trigger to open after closing others; omit to only close.
|
|
1278
|
+
*/
|
|
1279
|
+
protected showSubMenu(trigger?: MatMenuTrigger): void;
|
|
1280
|
+
/**
|
|
1281
|
+
* Removes the CDK focus classes from the given trigger element to reset its visual state.
|
|
1282
|
+
* @param trigger - The menu trigger whose focus styles to clear.
|
|
1283
|
+
*/
|
|
1284
|
+
protected resetSubMenu(trigger: MatMenuTrigger): void;
|
|
1285
|
+
/**
|
|
1286
|
+
* Returns the read state of the current item or selection.
|
|
1287
|
+
* @returns `0` if unread, `1` if read, `2` if mixed or unknown.
|
|
1288
|
+
*/
|
|
1289
|
+
protected isRead(): number;
|
|
1290
|
+
/**
|
|
1291
|
+
* Delegates a read/unread state change to the parent component.
|
|
1292
|
+
* @param value - `true` to mark as read, `false` to mark as unread.
|
|
1293
|
+
*/
|
|
1294
|
+
protected setRead(value: boolean): void;
|
|
1295
|
+
/**
|
|
1296
|
+
* Opens the given document, optionally in a new browser window.
|
|
1297
|
+
* @param item - The document to open; no-op when `undefined`.
|
|
1298
|
+
* @param newWindow - When `true`, opens the document in a new window.
|
|
1299
|
+
*/
|
|
1300
|
+
protected open(item: ClipperDocumentInfo | undefined, newWindow?: boolean): void;
|
|
1301
|
+
/**
|
|
1302
|
+
* Opens the references panel for the given document in the specified mode.
|
|
1303
|
+
* @param item - The document whose references to display; no-op when `undefined`.
|
|
1304
|
+
* @param mode - The reference query mode (e.g. 1 = referenced by, 2 = references, 4 = case law).
|
|
1305
|
+
*/
|
|
1306
|
+
protected openReferences(item: ClipperDocumentInfo | undefined, mode: number): void;
|
|
1307
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ClipperDocumentMenuComponent, never>;
|
|
1308
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ClipperDocumentMenuComponent, "clipper-document-menu", never, {
|
|
1309
|
+
"useSelections": {
|
|
1310
|
+
"alias": "useSelections";
|
|
1311
|
+
"required": false;
|
|
1312
|
+
"isSignal": true;
|
|
1313
|
+
};
|
|
1314
|
+
"selectionSource": {
|
|
1315
|
+
"alias": "selectionSource";
|
|
1316
|
+
"required": false;
|
|
1317
|
+
"isSignal": true;
|
|
1318
|
+
};
|
|
1319
|
+
"parent": {
|
|
1320
|
+
"alias": "parent";
|
|
1321
|
+
"required": true;
|
|
1322
|
+
"isSignal": true;
|
|
1323
|
+
};
|
|
1324
|
+
"item": {
|
|
1325
|
+
"alias": "item";
|
|
1326
|
+
"required": false;
|
|
1327
|
+
"isSignal": true;
|
|
1328
|
+
};
|
|
1329
|
+
"isReference": {
|
|
1330
|
+
"alias": "isReference";
|
|
1331
|
+
"required": false;
|
|
1332
|
+
"isSignal": true;
|
|
1333
|
+
};
|
|
1334
|
+
"isReadable": {
|
|
1335
|
+
"alias": "isReadable";
|
|
1336
|
+
"required": false;
|
|
1337
|
+
"isSignal": true;
|
|
1338
|
+
};
|
|
1339
|
+
"isReadableModel": {
|
|
1340
|
+
"alias": "isReadableModel";
|
|
1341
|
+
"required": false;
|
|
1342
|
+
"isSignal": true;
|
|
1343
|
+
};
|
|
1344
|
+
"isLawInForce": {
|
|
1345
|
+
"alias": "isLawInForce";
|
|
1346
|
+
"required": false;
|
|
1347
|
+
"isSignal": true;
|
|
1348
|
+
};
|
|
1349
|
+
"canPrint": {
|
|
1350
|
+
"alias": "canPrint";
|
|
1351
|
+
"required": false;
|
|
1352
|
+
"isSignal": true;
|
|
1353
|
+
};
|
|
1354
|
+
"canFind": {
|
|
1355
|
+
"alias": "canFind";
|
|
1356
|
+
"required": false;
|
|
1357
|
+
"isSignal": true;
|
|
1358
|
+
};
|
|
1359
|
+
"canUseAIAssistant": {
|
|
1360
|
+
"alias": "canUseAIAssistant";
|
|
1361
|
+
"required": false;
|
|
1362
|
+
"isSignal": true;
|
|
1363
|
+
};
|
|
1364
|
+
"canUseRS": {
|
|
1365
|
+
"alias": "canUseRS";
|
|
1366
|
+
"required": false;
|
|
1367
|
+
"isSignal": true;
|
|
1368
|
+
};
|
|
1369
|
+
"canOpenDocument": {
|
|
1370
|
+
"alias": "canOpenDocument";
|
|
1371
|
+
"required": false;
|
|
1372
|
+
"isSignal": true;
|
|
1373
|
+
};
|
|
1374
|
+
}, {}, never, never, true, never>;
|
|
1271
1375
|
}
|
|
1272
|
-
|
|
1273
|
-
|
|
1274
|
-
|
|
1275
|
-
|
|
1276
|
-
|
|
1277
|
-
|
|
1278
|
-
|
|
1279
|
-
canHandleTooManyResults?: boolean;
|
|
1376
|
+
export interface ClipperReferencesDialogData {
|
|
1377
|
+
mode?: ClipperQueryReferencesMode;
|
|
1378
|
+
anchor?: string;
|
|
1379
|
+
anchorTitle?: string;
|
|
1380
|
+
documentId: string;
|
|
1381
|
+
model: number;
|
|
1382
|
+
canHandleTooManyResults?: boolean;
|
|
1280
1383
|
}
|
|
1281
|
-
interface ClipperReferenceDialogResult {
|
|
1282
|
-
|
|
1384
|
+
export interface ClipperReferenceDialogResult {
|
|
1385
|
+
documentId: string;
|
|
1283
1386
|
}
|
|
1284
|
-
declare class ClipperReferencesComponent extends ClipperSearchResultManager {
|
|
1285
|
-
|
|
1286
|
-
|
|
1287
|
-
|
|
1288
|
-
|
|
1289
|
-
|
|
1290
|
-
|
|
1291
|
-
|
|
1292
|
-
|
|
1293
|
-
|
|
1294
|
-
|
|
1295
|
-
|
|
1296
|
-
|
|
1297
|
-
|
|
1298
|
-
|
|
1299
|
-
|
|
1300
|
-
|
|
1301
|
-
|
|
1302
|
-
|
|
1303
|
-
|
|
1304
|
-
|
|
1305
|
-
|
|
1306
|
-
|
|
1307
|
-
|
|
1308
|
-
|
|
1309
|
-
|
|
1310
|
-
|
|
1311
|
-
|
|
1312
|
-
|
|
1313
|
-
|
|
1314
|
-
|
|
1315
|
-
|
|
1316
|
-
|
|
1317
|
-
|
|
1318
|
-
|
|
1319
|
-
|
|
1320
|
-
|
|
1321
|
-
|
|
1322
|
-
|
|
1323
|
-
|
|
1324
|
-
|
|
1325
|
-
|
|
1326
|
-
|
|
1327
|
-
|
|
1328
|
-
|
|
1329
|
-
|
|
1330
|
-
|
|
1331
|
-
|
|
1332
|
-
|
|
1333
|
-
|
|
1334
|
-
|
|
1335
|
-
|
|
1336
|
-
|
|
1337
|
-
|
|
1338
|
-
|
|
1339
|
-
|
|
1340
|
-
|
|
1341
|
-
|
|
1342
|
-
|
|
1343
|
-
|
|
1344
|
-
|
|
1345
|
-
|
|
1346
|
-
|
|
1347
|
-
|
|
1348
|
-
|
|
1349
|
-
|
|
1350
|
-
|
|
1351
|
-
|
|
1352
|
-
|
|
1353
|
-
|
|
1354
|
-
|
|
1355
|
-
|
|
1356
|
-
|
|
1357
|
-
|
|
1358
|
-
|
|
1359
|
-
|
|
1360
|
-
|
|
1361
|
-
|
|
1362
|
-
|
|
1363
|
-
|
|
1387
|
+
export declare class ClipperReferencesComponent extends ClipperSearchResultManager {
|
|
1388
|
+
readonly filterPane: import("@angular/core").Signal<MatDrawer>;
|
|
1389
|
+
private readonly dialogRef;
|
|
1390
|
+
protected readonly dialogData: ClipperReferencesDialogData;
|
|
1391
|
+
protected title?: string;
|
|
1392
|
+
protected item?: ClipperDocumentInfo;
|
|
1393
|
+
protected readonly user: ClipperUserInfo | undefined;
|
|
1394
|
+
private _viewReady;
|
|
1395
|
+
constructor();
|
|
1396
|
+
/**
|
|
1397
|
+
* Toggles the filter pane open/closed state.
|
|
1398
|
+
*/
|
|
1399
|
+
protected toggleFilterPane(): void;
|
|
1400
|
+
/**
|
|
1401
|
+
* Adjusts the filter pane mode (side vs. overlay) and backdrop based on the current breakpoint.
|
|
1402
|
+
*/
|
|
1403
|
+
private handleFilterPaneVisibility;
|
|
1404
|
+
/**
|
|
1405
|
+
* Closes the references dialog without returning a result.
|
|
1406
|
+
*/
|
|
1407
|
+
close(): void;
|
|
1408
|
+
/**
|
|
1409
|
+
* Sends document links by email for the given item or, when omitted, for all selected items.
|
|
1410
|
+
* @param item - The specific document to send, or `undefined` to use the current selection.
|
|
1411
|
+
*/
|
|
1412
|
+
sendTo(item?: ClipperDocumentInfo): void;
|
|
1413
|
+
/**
|
|
1414
|
+
* Builds the search parameters for the next fetch call.
|
|
1415
|
+
* @param newSearch - When `true`, resets the pagination offset to 0.
|
|
1416
|
+
* @returns A cloned and enriched `ClipperSearchParams` ready to be sent to the API.
|
|
1417
|
+
*/
|
|
1418
|
+
private prepareFetch;
|
|
1419
|
+
/**
|
|
1420
|
+
* Maps a generic `ClipperSearchParams` to the references-specific API parameter shape.
|
|
1421
|
+
* @param params - The base search parameters to convert.
|
|
1422
|
+
* @returns A `ClipperReferencesSearchParams` object ready for the references endpoint.
|
|
1423
|
+
*/
|
|
1424
|
+
private toReferencesSearchParams;
|
|
1425
|
+
/**
|
|
1426
|
+
* Executes the references search and updates the result snapshot.
|
|
1427
|
+
* @param newSearch - When `true`, resets pagination and reloads facets. Defaults to `false`.
|
|
1428
|
+
*/
|
|
1429
|
+
fetch(newSearch?: boolean): void;
|
|
1430
|
+
/**
|
|
1431
|
+
* Navigates to the next result page.
|
|
1432
|
+
* @param e - The `PageEvent` emitted by the paginator with the new page index and size.
|
|
1433
|
+
*/
|
|
1434
|
+
fetchMore(e: PageEvent): void;
|
|
1435
|
+
/**
|
|
1436
|
+
* Loads available facets for the current search parameters and updates the filter pane.
|
|
1437
|
+
* @param params - The search parameters used to request facets from the API.
|
|
1438
|
+
*/
|
|
1439
|
+
fetchFacets(params: ClipperSearchParams): void;
|
|
1440
|
+
/**
|
|
1441
|
+
* Hides the facet filter pane and resets all applied facet filters.
|
|
1442
|
+
*/
|
|
1443
|
+
protected hideFacets(): void;
|
|
1444
|
+
/**
|
|
1445
|
+
* Restores previously saved facets from the snapshot and adjusts the filter pane accordingly.
|
|
1446
|
+
*/
|
|
1447
|
+
restoreFacets(): void;
|
|
1448
|
+
/**
|
|
1449
|
+
* Closes the dialog and navigates to the selected document.
|
|
1450
|
+
* @param documentId - The ID of the document to open.
|
|
1451
|
+
*/
|
|
1452
|
+
open(documentId?: string): void;
|
|
1453
|
+
/**
|
|
1454
|
+
* Returns the CSS class reflecting the item's validity state.
|
|
1455
|
+
* @param item - The document to evaluate.
|
|
1456
|
+
* @returns A CSS class name string, or `undefined` when no special state applies.
|
|
1457
|
+
*/
|
|
1458
|
+
getItemStateCssClass(item: ClipperDocumentInfo): string | undefined;
|
|
1459
|
+
/**
|
|
1460
|
+
* Returns the tooltip text explaining the item's current validity state.
|
|
1461
|
+
* @param item - The document to evaluate.
|
|
1462
|
+
* @returns A human-readable state description, or an empty string when no special state applies.
|
|
1463
|
+
*/
|
|
1464
|
+
getItemStateTooltip(item: ClipperDocumentInfo): string;
|
|
1465
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ClipperReferencesComponent, never>;
|
|
1466
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ClipperReferencesComponent, "ng-component", never, {}, {}, never, never, true, never>;
|
|
1364
1467
|
}
|
|
1365
|
-
|
|
1366
|
-
|
|
1367
|
-
|
|
1368
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ClipperSearchFreeTextHelpComponent, "ng-component", never, {}, {}, never, never, true, never>;
|
|
1468
|
+
export declare class ClipperSearchFreeTextHelpComponent {
|
|
1469
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ClipperSearchFreeTextHelpComponent, never>;
|
|
1470
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ClipperSearchFreeTextHelpComponent, "ng-component", never, {}, {}, never, never, true, never>;
|
|
1369
1471
|
}
|
|
1370
|
-
|
|
1371
|
-
|
|
1372
|
-
query: string;
|
|
1472
|
+
export interface SearchFreeTextQueryParams {
|
|
1473
|
+
query: string;
|
|
1373
1474
|
}
|
|
1374
1475
|
/**
|
|
1375
1476
|
* Form model of the free-text query builder: one field per query operator.
|
|
@@ -1379,106 +1480,167 @@ interface SearchFreeTextQueryParams {
|
|
|
1379
1480
|
* is why {@link ClipperSearchFreeTextQueryBuilderComponent.toPayload} is ad-hoc.
|
|
1380
1481
|
*/
|
|
1381
1482
|
interface SearchFreeTextQueryForm {
|
|
1382
|
-
|
|
1383
|
-
|
|
1384
|
-
|
|
1385
|
-
|
|
1386
|
-
|
|
1387
|
-
|
|
1388
|
-
|
|
1389
|
-
|
|
1390
|
-
|
|
1391
|
-
|
|
1392
|
-
}
|
|
1393
|
-
declare class ClipperSearchFreeTextQueryBuilderComponent {
|
|
1394
|
-
readonly done: _angular_core.OutputEmitterRef<SearchFreeTextQueryParams>;
|
|
1395
|
-
private readonly dialogService;
|
|
1396
|
-
/** Model backing the signal form: one entry per query operator field. */
|
|
1397
|
-
private readonly model;
|
|
1398
|
-
/**
|
|
1399
|
-
* Builds the form model. The builder always opens empty, so the model is the neutral
|
|
1400
|
-
* one; it also serves as what the "clear" button restores.
|
|
1401
|
-
* @returns A fresh form model.
|
|
1402
|
-
*/
|
|
1403
|
-
private toForm;
|
|
1404
|
-
/**
|
|
1405
|
-
* Assembles the Lucene-style free-text query out of the five operator fields.
|
|
1406
|
-
*
|
|
1407
|
-
* Ad-hoc because the payload is not a projection of the model: every field
|
|
1408
|
-
* contributes a differently shaped fragment (a quoted phrase, `+` terms, a `*`
|
|
1409
|
-
* wildcard, `-` exclusions) to one single string.
|
|
1410
|
-
* @returns The query to emit, or `undefined` when only the exclusion operator was
|
|
1411
|
-
* filled in, which cannot produce a valid query on its own.
|
|
1412
|
-
*/
|
|
1413
|
-
private toPayload;
|
|
1414
|
-
/** Signal form for the query fields; every field is capped at 200 characters. */
|
|
1415
|
-
protected readonly form: _angular_forms_signals.FieldTree<SearchFreeTextQueryForm, string | number, "writable">;
|
|
1416
|
-
/**
|
|
1417
|
-
* Resets all query fields to empty strings.
|
|
1418
|
-
*/
|
|
1419
|
-
protected clear(): void;
|
|
1420
|
-
/**
|
|
1421
|
-
* Emits the assembled free-text query via `done`.
|
|
1422
|
-
*
|
|
1423
|
-
* Shows an error dialog when only the NOT operator has been filled in, since it
|
|
1424
|
-
* requires at least one positive term to produce a valid query.
|
|
1425
|
-
*/
|
|
1426
|
-
protected ok(): void;
|
|
1427
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ClipperSearchFreeTextQueryBuilderComponent, never>;
|
|
1428
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ClipperSearchFreeTextQueryBuilderComponent, "ng-component", never, {}, { "done": "done"; }, never, never, true, never>;
|
|
1483
|
+
/** Exact phrase to look for; `''` when the input is empty. */
|
|
1484
|
+
queryPhrase: string;
|
|
1485
|
+
/** Comma-separated words that must all appear; `''` when the input is empty. */
|
|
1486
|
+
queryAnd: string;
|
|
1487
|
+
/** Comma-separated words of which at least one must appear; `''` when the input is empty. */
|
|
1488
|
+
queryOr: string;
|
|
1489
|
+
/** Prefix the document must start with; `''` when the input is empty. */
|
|
1490
|
+
queryStart: string;
|
|
1491
|
+
/** Comma-separated words that must not appear; `''` when the input is empty. */
|
|
1492
|
+
queryNot: string;
|
|
1429
1493
|
}
|
|
1430
|
-
|
|
1431
|
-
|
|
1432
|
-
|
|
1433
|
-
|
|
1434
|
-
|
|
1494
|
+
export declare class ClipperSearchFreeTextQueryBuilderComponent {
|
|
1495
|
+
readonly done: import("@angular/core").OutputEmitterRef<SearchFreeTextQueryParams>;
|
|
1496
|
+
private readonly dialogService;
|
|
1497
|
+
/** Model backing the signal form: one entry per query operator field. */
|
|
1498
|
+
private readonly model;
|
|
1499
|
+
/**
|
|
1500
|
+
* Builds the form model. The builder always opens empty, so the model is the neutral
|
|
1501
|
+
* one; it also serves as what the "clear" button restores.
|
|
1502
|
+
* @returns A fresh form model.
|
|
1503
|
+
*/
|
|
1504
|
+
private toForm;
|
|
1505
|
+
/**
|
|
1506
|
+
* Assembles the Lucene-style free-text query out of the five operator fields.
|
|
1507
|
+
*
|
|
1508
|
+
* Ad-hoc because the payload is not a projection of the model: every field
|
|
1509
|
+
* contributes a differently shaped fragment (a quoted phrase, `+` terms, a `*`
|
|
1510
|
+
* wildcard, `-` exclusions) to one single string.
|
|
1511
|
+
* @returns The query to emit, or `undefined` when only the exclusion operator was
|
|
1512
|
+
* filled in, which cannot produce a valid query on its own.
|
|
1513
|
+
*/
|
|
1514
|
+
private toPayload;
|
|
1515
|
+
/** Signal form for the query fields; every field is capped at 200 characters. */
|
|
1516
|
+
protected readonly form: import("@angular/forms/signals").FieldTree<SearchFreeTextQueryForm, string | number, "writable">;
|
|
1517
|
+
/**
|
|
1518
|
+
* Resets all query fields to empty strings.
|
|
1519
|
+
*/
|
|
1520
|
+
protected clear(): void;
|
|
1521
|
+
/**
|
|
1522
|
+
* Emits the assembled free-text query via `done`.
|
|
1523
|
+
*
|
|
1524
|
+
* Shows an error dialog when only the NOT operator has been filled in, since it
|
|
1525
|
+
* requires at least one positive term to produce a valid query.
|
|
1526
|
+
*/
|
|
1527
|
+
protected ok(): void;
|
|
1528
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ClipperSearchFreeTextQueryBuilderComponent, never>;
|
|
1529
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ClipperSearchFreeTextQueryBuilderComponent, "ng-component", never, {}, {
|
|
1530
|
+
"done": "done";
|
|
1531
|
+
}, never, never, true, never>;
|
|
1435
1532
|
}
|
|
1436
|
-
declare
|
|
1437
|
-
|
|
1438
|
-
|
|
1439
|
-
|
|
1440
|
-
readonly parent: _angular_core.InputSignal<ClipperSearchResultManager>;
|
|
1441
|
-
readonly item: _angular_core.ModelSignal<ClipperDocumentInfo>;
|
|
1442
|
-
readonly actions: _angular_core.InputSignal<MatMenu>;
|
|
1443
|
-
/**
|
|
1444
|
-
* Taxonomy path segments derived from `item().taxonomyPath`.
|
|
1445
|
-
* Computed (not an effect writing a signal) so it stays lazy and reactive to `item()`.
|
|
1446
|
-
*/
|
|
1447
|
-
protected readonly taxonomy: _angular_core.Signal<string[]>;
|
|
1448
|
-
readonly tileNoPictureUrl: _angular_core.InputSignal<string>;
|
|
1449
|
-
readonly tilePictureUrl: _angular_core.InputSignal<string>;
|
|
1450
|
-
readonly isSelectable: _angular_core.InputSignal<boolean>;
|
|
1451
|
-
readonly isReadable: _angular_core.InputSignal<boolean>;
|
|
1452
|
-
readonly isReadableModel: _angular_core.InputSignal<ClipperModel>;
|
|
1453
|
-
readonly displayModifiedTitle: _angular_core.InputSignal<boolean>;
|
|
1454
|
-
readonly displayModelName: _angular_core.InputSignal<boolean>;
|
|
1455
|
-
readonly displayDate: _angular_core.InputSignal<boolean>;
|
|
1456
|
-
readonly displayMode: _angular_core.InputSignal<ClipperSearchResultItemDisplayMode>;
|
|
1457
|
-
protected readonly displayModesEnum: typeof ClipperSearchResultItemDisplayMode;
|
|
1458
|
-
protected readonly modelsEnum: typeof ClipperModel;
|
|
1459
|
-
/**
|
|
1460
|
-
* Emits whenever the parent's SelectionModel changes. `toObservable(parent)` + `switchMap`
|
|
1461
|
-
* re-binds automatically (tearing down the previous subscription) if `parent` ever changes,
|
|
1462
|
-
* avoiding the duplicate subscriptions a subscribe-inside-effect would create.
|
|
1463
|
-
*/
|
|
1464
|
-
private readonly selectionTick;
|
|
1465
|
-
/**
|
|
1466
|
-
* Whether this item is currently selected in the parent's selection model.
|
|
1467
|
-
* Recomputed whenever the parent's selection changes.
|
|
1468
|
-
*/
|
|
1469
|
-
protected readonly isSelected: _angular_core.Signal<boolean>;
|
|
1470
|
-
/**
|
|
1471
|
-
* Whether this item has already been read by the user.
|
|
1472
|
-
*/
|
|
1473
|
-
protected readonly isRead: _angular_core.Signal<boolean>;
|
|
1474
|
-
/**
|
|
1475
|
-
* Whether this item is readable but not yet read (i.e. the read-flag action should be shown).
|
|
1476
|
-
*/
|
|
1477
|
-
protected readonly canBeRead: _angular_core.Signal<boolean>;
|
|
1478
|
-
constructor();
|
|
1479
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ClipperSearchResultItemComponent, never>;
|
|
1480
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ClipperSearchResultItemComponent, "clipper-search-result-item", never, { "parent": { "alias": "parent"; "required": true; "isSignal": true; }; "item": { "alias": "item"; "required": true; "isSignal": true; }; "actions": { "alias": "actions"; "required": true; "isSignal": true; }; "tileNoPictureUrl": { "alias": "tileNoPictureUrl"; "required": false; "isSignal": true; }; "tilePictureUrl": { "alias": "tilePictureUrl"; "required": false; "isSignal": true; }; "isSelectable": { "alias": "isSelectable"; "required": false; "isSignal": true; }; "isReadable": { "alias": "isReadable"; "required": false; "isSignal": true; }; "isReadableModel": { "alias": "isReadableModel"; "required": false; "isSignal": true; }; "displayModifiedTitle": { "alias": "displayModifiedTitle"; "required": false; "isSignal": true; }; "displayModelName": { "alias": "displayModelName"; "required": false; "isSignal": true; }; "displayDate": { "alias": "displayDate"; "required": false; "isSignal": true; }; "displayMode": { "alias": "displayMode"; "required": false; "isSignal": true; }; }, { "item": "itemChange"; }, never, never, true, never>;
|
|
1533
|
+
export declare enum ClipperSearchResultItemDisplayMode {
|
|
1534
|
+
List = 1,
|
|
1535
|
+
Tile = 2,
|
|
1536
|
+
Stripe = 3
|
|
1481
1537
|
}
|
|
1482
|
-
|
|
1483
|
-
|
|
1484
|
-
|
|
1538
|
+
export declare class ClipperSearchResultItemComponent {
|
|
1539
|
+
private readonly destroyRef;
|
|
1540
|
+
protected readonly screenService: ScreenService;
|
|
1541
|
+
private readonly broadcastService;
|
|
1542
|
+
readonly parent: import("@angular/core").InputSignal<ClipperSearchResultManager>;
|
|
1543
|
+
readonly item: import("@angular/core").ModelSignal<ClipperDocumentInfo>;
|
|
1544
|
+
readonly actions: import("@angular/core").InputSignal<MatMenu>;
|
|
1545
|
+
/**
|
|
1546
|
+
* Taxonomy path segments derived from `item().taxonomyPath`.
|
|
1547
|
+
* Computed (not an effect writing a signal) so it stays lazy and reactive to `item()`.
|
|
1548
|
+
*/
|
|
1549
|
+
protected readonly taxonomy: import("@angular/core").Signal<string[]>;
|
|
1550
|
+
readonly tileNoPictureUrl: import("@angular/core").InputSignal<string>;
|
|
1551
|
+
readonly tilePictureUrl: import("@angular/core").InputSignal<string>;
|
|
1552
|
+
readonly isSelectable: import("@angular/core").InputSignal<boolean>;
|
|
1553
|
+
readonly isReadable: import("@angular/core").InputSignal<boolean>;
|
|
1554
|
+
readonly isReadableModel: import("@angular/core").InputSignal<ClipperModel>;
|
|
1555
|
+
readonly displayModifiedTitle: import("@angular/core").InputSignal<boolean>;
|
|
1556
|
+
readonly displayModelName: import("@angular/core").InputSignal<boolean>;
|
|
1557
|
+
readonly displayDate: import("@angular/core").InputSignal<boolean>;
|
|
1558
|
+
readonly displayMode: import("@angular/core").InputSignal<ClipperSearchResultItemDisplayMode>;
|
|
1559
|
+
protected readonly displayModesEnum: typeof ClipperSearchResultItemDisplayMode;
|
|
1560
|
+
protected readonly modelsEnum: typeof ClipperModel;
|
|
1561
|
+
/**
|
|
1562
|
+
* Emits whenever the parent's SelectionModel changes. `toObservable(parent)` + `switchMap`
|
|
1563
|
+
* re-binds automatically (tearing down the previous subscription) if `parent` ever changes,
|
|
1564
|
+
* avoiding the duplicate subscriptions a subscribe-inside-effect would create.
|
|
1565
|
+
*/
|
|
1566
|
+
private readonly selectionTick;
|
|
1567
|
+
/**
|
|
1568
|
+
* Whether this item is currently selected in the parent's selection model.
|
|
1569
|
+
* Recomputed whenever the parent's selection changes.
|
|
1570
|
+
*/
|
|
1571
|
+
protected readonly isSelected: import("@angular/core").Signal<boolean>;
|
|
1572
|
+
/**
|
|
1573
|
+
* Whether this item has already been read by the user.
|
|
1574
|
+
*/
|
|
1575
|
+
protected readonly isRead: import("@angular/core").Signal<boolean>;
|
|
1576
|
+
/**
|
|
1577
|
+
* Whether this item is readable but not yet read (i.e. the read-flag action should be shown).
|
|
1578
|
+
*/
|
|
1579
|
+
protected readonly canBeRead: import("@angular/core").Signal<boolean>;
|
|
1580
|
+
constructor();
|
|
1581
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ClipperSearchResultItemComponent, never>;
|
|
1582
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ClipperSearchResultItemComponent, "clipper-search-result-item", never, {
|
|
1583
|
+
"parent": {
|
|
1584
|
+
"alias": "parent";
|
|
1585
|
+
"required": true;
|
|
1586
|
+
"isSignal": true;
|
|
1587
|
+
};
|
|
1588
|
+
"item": {
|
|
1589
|
+
"alias": "item";
|
|
1590
|
+
"required": true;
|
|
1591
|
+
"isSignal": true;
|
|
1592
|
+
};
|
|
1593
|
+
"actions": {
|
|
1594
|
+
"alias": "actions";
|
|
1595
|
+
"required": true;
|
|
1596
|
+
"isSignal": true;
|
|
1597
|
+
};
|
|
1598
|
+
"tileNoPictureUrl": {
|
|
1599
|
+
"alias": "tileNoPictureUrl";
|
|
1600
|
+
"required": false;
|
|
1601
|
+
"isSignal": true;
|
|
1602
|
+
};
|
|
1603
|
+
"tilePictureUrl": {
|
|
1604
|
+
"alias": "tilePictureUrl";
|
|
1605
|
+
"required": false;
|
|
1606
|
+
"isSignal": true;
|
|
1607
|
+
};
|
|
1608
|
+
"isSelectable": {
|
|
1609
|
+
"alias": "isSelectable";
|
|
1610
|
+
"required": false;
|
|
1611
|
+
"isSignal": true;
|
|
1612
|
+
};
|
|
1613
|
+
"isReadable": {
|
|
1614
|
+
"alias": "isReadable";
|
|
1615
|
+
"required": false;
|
|
1616
|
+
"isSignal": true;
|
|
1617
|
+
};
|
|
1618
|
+
"isReadableModel": {
|
|
1619
|
+
"alias": "isReadableModel";
|
|
1620
|
+
"required": false;
|
|
1621
|
+
"isSignal": true;
|
|
1622
|
+
};
|
|
1623
|
+
"displayModifiedTitle": {
|
|
1624
|
+
"alias": "displayModifiedTitle";
|
|
1625
|
+
"required": false;
|
|
1626
|
+
"isSignal": true;
|
|
1627
|
+
};
|
|
1628
|
+
"displayModelName": {
|
|
1629
|
+
"alias": "displayModelName";
|
|
1630
|
+
"required": false;
|
|
1631
|
+
"isSignal": true;
|
|
1632
|
+
};
|
|
1633
|
+
"displayDate": {
|
|
1634
|
+
"alias": "displayDate";
|
|
1635
|
+
"required": false;
|
|
1636
|
+
"isSignal": true;
|
|
1637
|
+
};
|
|
1638
|
+
"displayMode": {
|
|
1639
|
+
"alias": "displayMode";
|
|
1640
|
+
"required": false;
|
|
1641
|
+
"isSignal": true;
|
|
1642
|
+
};
|
|
1643
|
+
}, {
|
|
1644
|
+
"item": "itemChange";
|
|
1645
|
+
}, never, never, true, never>;
|
|
1646
|
+
}
|