@arsedizioni/ars-utils 22.6.89 → 22.6.91

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.
@@ -0,0 +1,942 @@
1
+ import { ClipperDocumentIndexComponent, ClipperDocumentManager, ClipperDocumentMenuComponent, ClipperDocumentViewerService } from "./arsedizioni-ars-utils-clipper.ui.mjs";
2
+ import { BreakpointObserver, Breakpoints } from "@angular/cdk/layout";
3
+ import * as i0 from "@angular/core";
4
+ import { ChangeDetectionStrategy, Component, DestroyRef, Renderer2, afterNextRender, effect, inject, output, signal, viewChild } from "@angular/core";
5
+ import { takeUntilDestroyed } from "@angular/core/rxjs-interop";
6
+ import * as i2 from "@angular/material/button";
7
+ import { MatButtonModule } from "@angular/material/button";
8
+ import { MatDividerModule } from "@angular/material/divider";
9
+ import * as i4 from "@angular/material/icon";
10
+ import { MatIconModule } from "@angular/material/icon";
11
+ import * as i5 from "@angular/material/menu";
12
+ import { MatMenuModule } from "@angular/material/menu";
13
+ import * as i6 from "@angular/material/progress-bar";
14
+ import { MatProgressBarModule } from "@angular/material/progress-bar";
15
+ import * as i7 from "@angular/material/sidenav";
16
+ import { MatSidenavModule } from "@angular/material/sidenav";
17
+ import * as i3 from "@angular/material/tooltip";
18
+ import { MatTooltipModule } from "@angular/material/tooltip";
19
+ import { ClipperMessages, ClipperModel, ClipperQueryReferencesMode, ClipperSearchParams, ClipperSearchUtils, ClipperUtils } from "@arsedizioni/ars-utils/clipper.common";
20
+ import { SystemUtils } from "@arsedizioni/ars-utils/core";
21
+ import * as i1 from "@arsedizioni/ars-utils/ui";
22
+ import { FlexLayoutModule } from "@arsedizioni/ars-utils/ui";
23
+ import { MAT_DIALOG_DATA, MatDialogContent, MatDialogRef } from "@angular/material/dialog";
24
+ import { Router } from "@angular/router";
25
+ import { ShellService } from "@arsedizioni/ars-utils/ui.shell";
26
+ import { FilePreviewComponent } from "@arsedizioni/ars-utils/ui.files";
27
+ var ClipperDocumentComponent = class ClipperDocumentComponent extends ClipperDocumentManager {
28
+ constructor() {
29
+ super();
30
+ this.relevantsPane = viewChild("relevantsPane", ...ngDevMode ? [{ debugName: "relevantsPane" }] : /* istanbul ignore next */ []);
31
+ this.iframeRef = viewChild("docIframe", ...ngDevMode ? [{ debugName: "iframeRef" }] : /* istanbul ignore next */ []);
32
+ this.pendingUrl = null;
33
+ this.closing = output();
34
+ this.opening = output();
35
+ this.destroyRef = inject(DestroyRef);
36
+ this.documentUtils = inject(ClipperDocumentViewerService);
37
+ this.breakpointObserver = inject(BreakpointObserver);
38
+ this.renderer = inject(Renderer2);
39
+ this.router = inject(Router);
40
+ this.shellService = inject(ShellService);
41
+ this.dialogRef = inject(MatDialogRef);
42
+ this.dialogData = inject(MAT_DIALOG_DATA) ?? { mode: ClipperQueryReferencesMode.ReferencesIn };
43
+ this.url = signal(null, ...ngDevMode ? [{ debugName: "url" }] : /* istanbul ignore next */ []);
44
+ this.title = signal(null, ...ngDevMode ? [{ debugName: "title" }] : /* istanbul ignore next */ []);
45
+ this.busy = signal(false, ...ngDevMode ? [{ debugName: "busy" }] : /* istanbul ignore next */ []);
46
+ this.lastQueryChunks = "";
47
+ this.lastQueryType = "fulltext";
48
+ this.lastDocument = signal(void 0, ...ngDevMode ? [{ debugName: "lastDocument" }] : /* istanbul ignore next */ []);
49
+ this.relevants = signal({
50
+ items: [],
51
+ hits: 0,
52
+ hit: 0,
53
+ chunks: 0
54
+ }, ...ngDevMode ? [{ debugName: "relevants" }] : /* istanbul ignore next */ []);
55
+ this.relevantsPaneHasBackdrop = signal(false, ...ngDevMode ? [{ debugName: "relevantsPaneHasBackdrop" }] : /* istanbul ignore next */ []);
56
+ this.relevantsPaneClosed = signal(false, ...ngDevMode ? [{ debugName: "relevantsPaneClosed" }] : /* istanbul ignore next */ []);
57
+ this.relevantsBusy = signal(false, ...ngDevMode ? [{ debugName: "relevantsBusy" }] : /* istanbul ignore next */ []);
58
+ this.hasRelevants = signal(false, ...ngDevMode ? [{ debugName: "hasRelevants" }] : /* istanbul ignore next */ []);
59
+ this.user = this.clipperService.user;
60
+ effect(() => {
61
+ const ref = this.iframeRef();
62
+ if (ref && this.pendingUrl !== null) {
63
+ const u = this.pendingUrl;
64
+ this.pendingUrl = null;
65
+ this.setIframeSrc(ref.nativeElement, u);
66
+ }
67
+ });
68
+ if (this.dialogData?.id) {
69
+ let id = this.dialogData.id.toString();
70
+ const hashPos = id.indexOf("#");
71
+ if (hashPos !== -1) id = id.substring(0, hashPos);
72
+ let query = this.dialogData.query ?? "";
73
+ if (this.dialogData.queryChunks && this.dialogData.queryChunks.length > 0) query += "__CHUNKS__" + id + ":" + this.dialogData.queryChunks;
74
+ const url = this.clipperService.serviceUri + "/documents/render/?query=" + query + "&theme=" + this.dialogData.theme + "&id=" + this.dialogData.id;
75
+ this.navigateByUrl(url);
76
+ }
77
+ this.rendererListener1 = this.renderer.listen("window", "message", (e) => {
78
+ const event = e;
79
+ if (!event?.data) return;
80
+ try {
81
+ const data = JSON.parse(event.data);
82
+ if (!data) return;
83
+ switch (data.type) {
84
+ case "navigated":
85
+ this.navigated(data.id, data.title1, data.title2, data.tags, data.model, data.module, data.moduleName, data.date, data.number, data.author, data.origin, data.originDescription, data.bag, data.validityInfo, data.expiringInfo, data.primaryId, data.primaryModel, data.secondaryId, data.isTrial);
86
+ break;
87
+ case "navigate":
88
+ this.navigate(data.url);
89
+ break;
90
+ case "references":
91
+ this.openReferences(data.id, data.mode, data.model, data.anchor, data.anchorTitle, data.update);
92
+ break;
93
+ case "hits":
94
+ this.relevants.update((r) => ({
95
+ ...r,
96
+ hits: data.total
97
+ }));
98
+ if (data.update) this.updateRelevants();
99
+ break;
100
+ case "hits2":
101
+ this.relevants.update((r) => ({
102
+ ...r,
103
+ chunks: data.total
104
+ }));
105
+ this.updateRelevants2(data.items);
106
+ }
107
+ } catch {}
108
+ });
109
+ this.destroyRef.onDestroy(() => this.rendererListener1?.());
110
+ afterNextRender(() => {
111
+ this.breakpointObserver.observe([
112
+ Breakpoints.XSmall,
113
+ Breakpoints.Small,
114
+ Breakpoints.Medium,
115
+ Breakpoints.Large,
116
+ Breakpoints.XLarge
117
+ ]).pipe(takeUntilDestroyed(this.destroyRef)).subscribe((result) => {
118
+ for (const query of Object.keys(result.breakpoints)) if (result.breakpoints[query]) this.handleRelevantsPaneVisibility();
119
+ });
120
+ });
121
+ }
122
+ toggleRelevantsPane() {
123
+ this.relevantsPaneClosed.set(!this.relevantsPaneClosed());
124
+ this.relevantsPane()?.toggle();
125
+ }
126
+ handleRelevantsPaneVisibility() {
127
+ const relevantsPane = this.relevantsPane();
128
+ if (!relevantsPane) return;
129
+ if (this.breakpointObserver.isMatched(Breakpoints.XSmall) || this.breakpointObserver.isMatched(Breakpoints.Small) || this.breakpointObserver.isMatched(Breakpoints.Medium)) {
130
+ if (relevantsPane.opened) relevantsPane.close();
131
+ relevantsPane.mode = "over";
132
+ relevantsPane.disableClose = false;
133
+ this.relevantsPaneHasBackdrop.set(true);
134
+ } else {
135
+ if (!relevantsPane.opened && !this.relevantsPaneClosed() && this.hasRelevants()) relevantsPane.open();
136
+ else if (relevantsPane.opened && this.relevantsPaneClosed()) relevantsPane.close();
137
+ relevantsPane.mode = "side";
138
+ relevantsPane.disableClose = true;
139
+ this.relevantsPaneHasBackdrop.set(false);
140
+ }
141
+ }
142
+ close() {
143
+ this.closing.emit();
144
+ setTimeout(() => this.dialogRef.close(), 500);
145
+ }
146
+ navigate(id) {
147
+ if (!id || id.length === 0) return;
148
+ if (id.indexOf("?") !== -1) {
149
+ if (id.startsWith("/api")) this.navigateByUrl(this.clipperService.serviceUri + id.substring(4));
150
+ else if (!id.startsWith(this.clipperService.serviceUri)) this.navigateByUrl(this.clipperService.serviceUri + id);
151
+ else this.navigateByUrl(id);
152
+ } else this.navigateByUrl(this.clipperService.serviceUri + "/documents/render/?query=&id=" + id);
153
+ }
154
+ navigateByUrl(url) {
155
+ if (!url || url.length === 0 || url === "about:blank") return;
156
+ const urlParts = url.split("#");
157
+ url = urlParts[0];
158
+ if (urlParts.length > 1) url += "#" + urlParts[1];
159
+ let query = "";
160
+ let p = url.indexOf("query=");
161
+ if (p !== -1) {
162
+ p += 6;
163
+ while (url.length > p && url[p] !== "&" && url[p] !== "#") query += url[p++];
164
+ if (query.length > 0) {
165
+ if (query[0] === "$") {
166
+ query = query.substring(1);
167
+ this.lastQueryType = "semantic";
168
+ }
169
+ this.relevants.update((r) => ({
170
+ ...r,
171
+ hit: 0
172
+ }));
173
+ try {
174
+ query = decodeURIComponent(encodeURIComponent(query));
175
+ } catch {}
176
+ let id = "";
177
+ p = url.indexOf("id=");
178
+ while (url.length > p && url[p] !== "&" && url[p] !== "#") id += url[p++];
179
+ const queryParts = query.split("__CHUNKS__");
180
+ if (queryParts.length > 0) {
181
+ this.lastQuery = ClipperSearchUtils.normalizeTextQuery2(queryParts[0]);
182
+ if (queryParts.length > 1) {
183
+ const queryChunksParts = queryParts[1].split(":");
184
+ if (queryChunksParts.length > 2 && queryChunksParts[0] === id) this.lastQueryChunks = queryChunksParts[1];
185
+ }
186
+ }
187
+ }
188
+ }
189
+ if (url.indexOf("theme=") === -1) {
190
+ p = url.indexOf("id=");
191
+ if (p !== -1) url = url.substring(0, p) + "theme=" + this.dialogData.theme + "&" + url.substring(p);
192
+ }
193
+ if (url.indexOf("&file=true") !== -1) this.previewFile(url);
194
+ else this.clipperService.documents.preRender().subscribe(() => {
195
+ this.busy.set(url.indexOf("documents/render/item") === -1);
196
+ this.url.set(url);
197
+ this.applyIframeUrl(url);
198
+ });
199
+ }
200
+ applyIframeUrl(url) {
201
+ const ref = this.iframeRef();
202
+ if (ref) this.setIframeSrc(ref.nativeElement, url);
203
+ else this.pendingUrl = url;
204
+ }
205
+ setIframeSrc(el, url) {
206
+ try {
207
+ el.contentWindow?.location.assign(url);
208
+ } catch {
209
+ el.src = url;
210
+ }
211
+ }
212
+ navigated(id, title1, title2, tags, model, moduleId, moduleName, date, number, author, origin, originDescription, bag, validityInfo, expiringInfo, primaryId, primaryModel, secondaryId, isTrial) {
213
+ if (title1 === "Sessione non valida") {
214
+ this.shellService.error(title2, null, title1, "Accedi di nuovo").afterClosed().subscribe(() => this.router.navigate(["login"]));
215
+ return;
216
+ }
217
+ let primaryDescription;
218
+ if (primaryId) switch (primaryModel ?? model) {
219
+ case ClipperModel.NormativaVigente:
220
+ primaryDescription = "Testo vigente";
221
+ break;
222
+ case ClipperModel.AggiornamentoNormativo:
223
+ primaryDescription = "Testo storico";
224
+ break;
225
+ case ClipperModel.Scadenze:
226
+ primaryDescription = "Scadenza";
227
+ break;
228
+ case ClipperModel.Coordinamento:
229
+ primaryDescription = "Modifica";
230
+ break;
231
+ default: primaryDescription = "Collegamento";
232
+ }
233
+ let expiringDate;
234
+ let expiringInfoText;
235
+ let expiringDescription;
236
+ if (expiringInfo) {
237
+ const expiringParts = expiringInfo.split("#");
238
+ if (expiringParts.length > 0) {
239
+ const dateParts = expiringParts[0].split("|");
240
+ if (dateParts.length > 0) expiringDate = new Date(dateParts[0]);
241
+ if (dateParts.length > 1) expiringInfoText = dateParts[1];
242
+ if (dateParts.length > 2) expiringInfoText += "|" + dateParts[2];
243
+ }
244
+ if (expiringParts.length > 1) expiringDescription = expiringParts[1];
245
+ }
246
+ const updatedDoc = {
247
+ ...this.lastDocument() ?? {},
248
+ id,
249
+ documentId: id,
250
+ title1: title1 ? SystemUtils.urlDecode(title1).replaceAll("\\\"", "\"") : void 0,
251
+ title2: title2 ? SystemUtils.urlDecode(title2).replaceAll("\\\"", "\"") : void 0,
252
+ tags,
253
+ model,
254
+ module: moduleId,
255
+ moduleName,
256
+ date: new Date(date),
257
+ number,
258
+ author,
259
+ origin,
260
+ originDescription,
261
+ bag,
262
+ validityInfo,
263
+ primaryId,
264
+ primaryModel,
265
+ hasPrimary: !!primaryId && (model === ClipperModel.AggiornamentoNormativo || model === ClipperModel.NormativaVigente),
266
+ primaryDescription,
267
+ secondaryId,
268
+ isTrial,
269
+ expiringDate,
270
+ expiringInfo: expiringInfoText,
271
+ expiringDescription
272
+ };
273
+ this.lastDocument.set(updatedDoc);
274
+ this.title.set(updatedDoc.title1 ?? updatedDoc.title2 ?? null);
275
+ this.busy.set(false);
276
+ this.broadcastService.sendMessage(ClipperMessages.DOCUMENT_NAVIGATED, { document: SystemUtils.clone(updatedDoc) });
277
+ this.clipperService.documents.metadata(id).subscribe((r) => {
278
+ if (r.success) this.lastDocument.update((doc) => doc ? {
279
+ ...doc,
280
+ lastUpdate: r.value.item1
281
+ } : doc);
282
+ });
283
+ }
284
+ back() {
285
+ document.getElementById("clipper-document-iframe")?.contentWindow.postMessage("{\"type\": \"back\"}", "*");
286
+ }
287
+ forward() {
288
+ document.getElementById("clipper-document-iframe")?.contentWindow.postMessage("{\"type\": \"forward\"}", "*");
289
+ }
290
+ nextRelevant() {
291
+ const current = this.relevants();
292
+ let i = current.hit + 1;
293
+ if (i > current.hits) i = 0;
294
+ document.getElementById("clipper-document-iframe")?.contentWindow.postMessage("{\"type\": \"relevant\", \"value\": \"next\"}", "*");
295
+ this.relevants.update((r) => ({
296
+ ...r,
297
+ hit: i
298
+ }));
299
+ }
300
+ previousRelevant() {
301
+ const current = this.relevants();
302
+ let i = current.hit - 1;
303
+ if (i < 0) i = current.hits;
304
+ document.getElementById("clipper-document-iframe")?.contentWindow.postMessage("{\"type\": \"relevant\", \"value\": \"previous\"}", "*");
305
+ this.relevants.update((r) => ({
306
+ ...r,
307
+ hit: i
308
+ }));
309
+ }
310
+ gotoRelevant(item) {
311
+ if (item.type === 20) window.open(this.clipperService.serviceUri + "/documents/render/item/?theme=" + this.dialogData.theme + "&id=" + item.documentId, "_blank");
312
+ else document.getElementById("clipper-document-iframe")?.contentWindow.postMessage("{\"type\": \"relevant\", \"value\": \"" + item.uri + "\"}", "*");
313
+ }
314
+ updateRelevants() {
315
+ const query = this.lastQuery;
316
+ if (!query || query.length === 0 || query === " ") {
317
+ this.handleRelevantsPaneVisibility();
318
+ return;
319
+ }
320
+ const doc = this.lastDocument();
321
+ const docId = doc?.documentId ?? doc?.id;
322
+ if (!docId) return;
323
+ const params = new ClipperSearchParams();
324
+ params.id = docId;
325
+ params.text = query;
326
+ params.count = 1;
327
+ this.clipperService.documents.query(params).subscribe((r) => {
328
+ if (!r.success) this.dialogService.error(r.message);
329
+ else if (r.value?.items && r.value.items.length > 0) {
330
+ const anchors = r.value.items[0].anchors;
331
+ let minScore = 10;
332
+ let maxScore = 0;
333
+ anchors.forEach((n) => {
334
+ if (n.score < minScore) minScore = n.score;
335
+ if (n.score > maxScore) maxScore = n.score;
336
+ });
337
+ const range = maxScore - minScore;
338
+ anchors.forEach((n) => {
339
+ const score = range > 0 ? (n.score - minScore) / range : 0;
340
+ n.score = score;
341
+ n.veryRelevant = score > .7;
342
+ });
343
+ this.relevants.update((r) => ({
344
+ ...r,
345
+ items: anchors
346
+ }));
347
+ this.hasRelevants.set(anchors.length > 0);
348
+ }
349
+ this.handleRelevantsPaneVisibility();
350
+ });
351
+ }
352
+ updateRelevants2(anchors) {
353
+ if (!anchors?.length) return;
354
+ const items = anchors.map((a) => ({
355
+ score: ClipperSearchUtils.getRankFromChar(a.score),
356
+ veryRelevant: a.score.toUpperCase() === "A",
357
+ title: a.text,
358
+ uri: a.uri ?? "__CHUNK_" + a.index
359
+ }));
360
+ this.relevants.update((r) => ({
361
+ ...r,
362
+ items
363
+ }));
364
+ this.hasRelevants.set(items.length > 0);
365
+ this.handleRelevantsPaneVisibility();
366
+ }
367
+ index(documentId) {
368
+ const d = this.dialogService.open(ClipperDocumentIndexComponent, {
369
+ ariaLabel: "indice documento",
370
+ autoFocus: "dialog",
371
+ restoreFocus: false,
372
+ disableClose: true,
373
+ closeOnNavigation: false,
374
+ data: {
375
+ documentId,
376
+ excludedTypes: null,
377
+ multiple: false
378
+ },
379
+ minWidth: "375px",
380
+ maxWidth: "600px",
381
+ width: "100%"
382
+ });
383
+ d.componentInstance.done.subscribe((r) => {
384
+ const item = r.data.length > 0 ? r.data[0] : null;
385
+ if (item) {
386
+ if (item.documentId === documentId) document.getElementById("clipper-document-iframe")?.contentWindow.postMessage("{\"type\": \"goto\", \"value\":\"" + item.uri + "\"}", "*");
387
+ else this.openDocument(item.documentId + "#" + item.uri);
388
+ }
389
+ d.close();
390
+ });
391
+ }
392
+ getId(url, name = "id") {
393
+ const start = url.lastIndexOf(name + "=") + name.length + 1;
394
+ const end = url.indexOf("&", start);
395
+ return url.substring(start, end);
396
+ }
397
+ previewFile(url) {
398
+ if (!url || url.length === 0) return;
399
+ const id = this.getId(url);
400
+ if (!id || id.length === 0) return;
401
+ this.clipperService.session.newOTP(id).subscribe((r) => {
402
+ if (!r.success) this.dialogService.error(r.message);
403
+ else if (!r.value.canPreview) location.href = url;
404
+ else this.dialogService.open(FilePreviewComponent, {
405
+ panelClass: "preview-panel",
406
+ ariaLabel: "anteprima",
407
+ autoFocus: "dialog",
408
+ restoreFocus: false,
409
+ disableClose: true,
410
+ data: {
411
+ url,
412
+ embed: r.value.canEmbed
413
+ },
414
+ minWidth: "375px",
415
+ maxWidth: "900px",
416
+ width: "100%",
417
+ height: "100%"
418
+ });
419
+ });
420
+ }
421
+ showComment() {
422
+ const doc = this.lastDocument();
423
+ if (doc?.bag?.[7] !== "T") return;
424
+ this.clipperService.documents.comment(doc.documentId).subscribe((r) => {
425
+ if (!r.success) {
426
+ if (r.message === "Il tuo abbonamento non consente di visualizzare i commenti alle norme.") this.dialogService.error("Il servizio di <b>commenti alle norme</b> non è compreso nel tuo abbonamento, per maggiori informazioni rivolgersi all'agente commerciale di riferimento o inviare una mail a <a href='mailto:sales@arsedizioni.it' target='_blank'>sales@arsedizioni.it</a>.", null, "Attenzione");
427
+ else this.dialogService.error(r.message);
428
+ } else if (r.value && r.value.length > 1) this.dialogService.info(r.value.replace(/<\/p><br>\r\n/g, "</p>\r\n"), "Commento", "Chiudi", 700);
429
+ else this.dialogService.info("Commento non più disponibile o in fase di revisione.");
430
+ });
431
+ }
432
+ open(documentId, query, queryChunks, newWindow) {
433
+ if (!newWindow) {
434
+ if (this.opening) this.opening.emit(documentId);
435
+ else this.openDocument(documentId, query, queryChunks);
436
+ } else window.open((this.clipperService.appUri ?? "") + "/documento/" + documentId, "_blank");
437
+ }
438
+ openDocument(documentId, query, queryChunks) {
439
+ if (!documentId) return;
440
+ this.documentUtils.openDocument(documentId, query, queryChunks, this.dialogData.selectionMode, this.dialogData.selectableModules, this.dialogData.theme, this.dialogData.canHandleTooManyResults);
441
+ }
442
+ openReferences(documentId, mode = ClipperQueryReferencesMode.ReferencesIn, model = null, anchor = null, anchorTitle = null, update = true) {
443
+ import("./arsedizioni-ars-utils-clipper.ui-references.component-C21l0EtN.mjs").then(({ ClipperReferencesComponent }) => {
444
+ this.dialogService.open(ClipperReferencesComponent, {
445
+ ariaLabel: "riferimenti legati al documento",
446
+ autoFocus: "dialog",
447
+ restoreFocus: false,
448
+ disableClose: true,
449
+ closeOnNavigation: false,
450
+ data: {
451
+ documentId: documentId ?? this.lastDocument()?.documentId,
452
+ mode,
453
+ model,
454
+ anchor,
455
+ anchorTitle,
456
+ update,
457
+ canHandleTooManyResults: this.dialogData.canHandleTooManyResults
458
+ },
459
+ minWidth: "375px",
460
+ maxWidth: "1200px",
461
+ width: "100%",
462
+ height: "100%"
463
+ }).afterClosed().subscribe((r) => {
464
+ if (r?.documentId) this.navigate(r.documentId);
465
+ });
466
+ });
467
+ }
468
+ displayReport(item) {
469
+ if (!item) return;
470
+ if (item.model != ClipperModel.NormativaVigente && item.model != ClipperModel.Scadenze) {
471
+ this.dialogService.info("Questa funzionalità non è disponibile per questo tipo di documento.");
472
+ return;
473
+ }
474
+ this.openReport(item.id, item.title1 ? item.title1 : item.title2);
475
+ }
476
+ canSelect() {
477
+ const doc = this.lastDocument();
478
+ const selectionMode = this.dialogData.selectionMode ?? 0;
479
+ const selectableModules = this.dialogData.selectableModules;
480
+ if (!doc || selectionMode === 0) return false;
481
+ if (!selectableModules?.length) return doc.model === ClipperModel.NormativaVigente || doc.model === ClipperModel.AggiornamentoNormativo;
482
+ return selectableModules.findIndex((x) => x === ClipperUtils.getClipperModuleFromModel(doc)) !== -1;
483
+ }
484
+ select() {
485
+ const doc = this.lastDocument();
486
+ if (doc) {
487
+ this.broadcastService.sendMessage(ClipperMessages.DOCUMENT_SELECTED_INNER, doc);
488
+ this.close();
489
+ }
490
+ }
491
+ static {
492
+ this.ɵfac = i0.ɵɵngDeclareFactory({
493
+ minVersion: "12.0.0",
494
+ version: "22.2.1",
495
+ ngImport: i0,
496
+ type: ClipperDocumentComponent,
497
+ deps: [],
498
+ target: i0.ɵɵFactoryTarget.Component
499
+ });
500
+ }
501
+ static {
502
+ this.ɵcmp = i0.ɵɵngDeclareComponent({
503
+ minVersion: "17.0.0",
504
+ version: "22.2.1",
505
+ type: ClipperDocumentComponent,
506
+ isStandalone: true,
507
+ selector: "ng-component",
508
+ outputs: {
509
+ closing: "closing",
510
+ opening: "opening"
511
+ },
512
+ host: { attributes: { "Bind": SystemUtils.generateUUID() } },
513
+ viewQueries: [{
514
+ propertyName: "relevantsPane",
515
+ first: true,
516
+ predicate: ["relevantsPane"],
517
+ descendants: true,
518
+ isSignal: true
519
+ }, {
520
+ propertyName: "iframeRef",
521
+ first: true,
522
+ predicate: ["docIframe"],
523
+ descendants: true,
524
+ isSignal: true
525
+ }],
526
+ usesInheritance: true,
527
+ ngImport: i0,
528
+ template: "<div class=\"clipper-document-fixed\">\r\n <div style=\"height:6px\">\r\n @if (busy()) {\r\n <mat-progress-bar style=\"z-index:11\" mode=\"indeterminate\"></mat-progress-bar>\r\n }\r\n </div>\r\n <div>\r\n <div fxLayout=\"row\" fxLayoutGap=\"20px\" fxLayoutAlign=\"start start\" fxFill>\r\n <div fxFlex=\"*\" class=\"title-container\">\r\n <div class=\"title bold\">{{title()}}</div>\r\n @if (lastDocument()?.tags) {\r\n <div style=\"padding-top: 5px;\">\r\n <div class=\"x-small bold uppercase\">\r\n TAG: <span class=\"accent\">{{lastDocument()?.tags}}</span>\r\n </div>\r\n </div>\r\n }\r\n @if (lastDocument()?.lastUpdate) {\r\n <div style=\"padding-top: 5px;\">\r\n <div class=\"x-small bold uppercase\">\r\n AGGIORNATO A:\r\n <span class=\"accent\">{{lastDocument()?.lastUpdate}}</span>\r\n </div>\r\n </div>\r\n }\r\n @if (lastDocument()?.expiringDescription || lastDocument()?.validityInfo) {\r\n <div style=\"padding-top: 5px;\">\r\n @if (lastDocument()?.expiringDescription) {\r\n <div class=\"x-small error bold uppercase\">\r\n {{lastDocument()?.expiringDescription}}</div>\r\n }\r\n @if (lastDocument()?.validityInfo) {\r\n <div class=\"x-small error bold uppercase\"><b>Attenzione!</b>\r\n {{lastDocument()?.validityInfo}}</div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n @if (canSelect()) {\r\n <div fxFlex=\"170px\" fxFlex.lt-md=\"58px\">\r\n <button fxHide.lt-md fxFlexAlign=\"center\" type=\"button\" mat-flat-button (click)=\"select()\"\r\n class=\"clipper-selection-button\" style=\"margin-top: 8px;\">\r\n <span class=\"small\">Usa selezione</span>\r\n </button>\r\n <button fxHide.gt-sm fxFlexAlign=\"center\" type=\"button\" mat-icon-button (click)=\"select()\"\r\n class=\"clipper-selection-icon-button\" matTooltip=\"Usa selezione\" aria-label=\"'Usa la selezione'\"\r\n style=\"margin-top: 4px;\">\r\n <mat-icon>check</mat-icon>\r\n </button>\r\n </div>\r\n }\r\n <div fxFlex=\"170px\" fxFlex.lt-md=\"48px\" fxLayoutAlign=\"end\">\r\n <div class=\"dialog-close\">\r\n <button fxHide.lt-md fxFlexAlign=\"start\" type=\"button\" mat-icon-button matTooltip=\"Indietro\"\r\n aria-label=\"Indietro\" (click)=\"back()\">\r\n <mat-icon>arrow_back</mat-icon>\r\n </button>\r\n <button fxHide.lt-md fxFlexAlign=\"start\" type=\"button\" mat-icon-button matTooltip=\"Avanti\" aria-label=\"Avanti\"\r\n (click)=\"forward()\">\r\n <mat-icon>arrow_forward</mat-icon>\r\n </button>\r\n <button fxFlexAlign=\"start\" type=\"button\" mat-icon-button matTooltip=\"Chiudi\" aria-label=\"Chiudi\"\r\n (click)=\"close()\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div>\r\n <div fxLayout=\"row wrap \" fxFill fxLayoutAlign=\"space-between center\" style=\"padding: 10px 10px 10px 15px;\">\r\n <div fxFlex.xs=\"100\">\r\n @if (lastDocument()?.model === 9) {\r\n <button fxFlexAlign=\"center\" type=\"button\" mat-button [attr.aria-label]=\"'Mostra indice'\"\r\n (click)=\"index(lastDocument()?.documentId)\">\r\n Indice\r\n </button>\r\n }\r\n @if (lastDocument()?.bag && (lastDocument()?.bag[1] ==='T' || lastDocument()?.bag[3] ==='T')) {\r\n <button fxFlexAlign=\"center\" type=\"button\" mat-button matTooltip=\"Collegamenti\"\r\n [attr.aria-label]=\"'Collegamenti al documento'\" [matMenuTriggerFor]=\"menuLinks\">\r\n Collegamenti\r\n </button>\r\n }\r\n <mat-menu #menuLinks=\"matMenu\">\r\n @if (lastDocument()?.bag && lastDocument()?.bag[1] ==='T') {\r\n <button mat-menu-item [attr.aria-label]=\"'Mostra documenti richiamati'\"\r\n (click)=\"openReferences(lastDocument()?.documentId, 1)\">\r\n Documenti richiamati\r\n </button>\r\n }\r\n @if (lastDocument()?.bag && lastDocument()?.bag[3] ==='T') {\r\n <button mat-menu-item [attr.aria-label]=\"'Mostra documenti che richiamano'\"\r\n (click)=\"openReferences(lastDocument()?.documentId, 2)\">\r\n Documenti che richiamano\r\n </button>\r\n }\r\n @if (lastDocument()?.bag && lastDocument()?.bag[2] ==='T') {\r\n <button fxHide fxShow.lt-md mat-menu-item [attr.aria-label]=\"'Mostra juris'\"\r\n (click)=\"openReferences(lastDocument()?.documentId, 4)\">\r\n Juris\r\n </button>\r\n }\r\n @if (lastDocument()?.bag && lastDocument()?.bag[4] ==='T') {\r\n <button fxHide fxShow.lt-md mat-menu-item [attr.aria-label]=\"'Mostra modifiche subite'\"\r\n (click)=\"openReferences(lastDocument()?.documentId, 3)\">\r\n Modifiche subite\r\n </button>\r\n }\r\n @if (lastDocument()?.bag && lastDocument()?.bag[4] !=='T' && lastDocument()?.bag[6] ==='T') {\r\n <button fxHide fxShow.lt-md mat-menu-item [attr.aria-label]=\"'Mostra modifiche apportate'\"\r\n (click)=\"openReferences(lastDocument()?.documentId, 5)\">\r\n Modifiche apportate\r\n </button>\r\n }\r\n </mat-menu>\r\n @if (lastDocument()?.hasPrimary) {\r\n <button fxFlexAlign=\"center\" type=\"button\" mat-button [attr.aria-label]=\"'Mostra documento primario'\"\r\n (click)=\"navigate(lastDocument()?.primaryId)\">\r\n {{lastDocument()?.primaryDescription}}\r\n </button>\r\n }\r\n @if (lastDocument()?.bag && lastDocument()?.bag[2] ==='T') {\r\n <button fxFlexAlign=\"center\" type=\"button\" fxHide.lt-md mat-button [attr.aria-label]=\"'Mostra juris'\"\r\n (click)=\"openReferences(lastDocument()?.documentId, 4)\">\r\n Juris\r\n </button>\r\n }\r\n @if (lastDocument()?.bag && lastDocument()?.bag[4] === 'T') {\r\n <button fxFlexAlign=\"center\" type=\"button\" fxHide.lt-md mat-button [attr.aria-label]=\"'Mostra modifiche subite'\"\r\n (click)=\"openReferences(lastDocument()?.documentId, 3)\">\r\n Modifiche subite\r\n </button>\r\n }\r\n @if (lastDocument()?.bag && lastDocument()?.bag[4] !== 'T' && lastDocument()?.bag[6] === 'T') {\r\n <button fxFlexAlign=\"center\" type=\"button\" fxHide.lt-md mat-button\r\n [attr.aria-label]=\"'Mostra modifiche apportate'\" (click)=\"openReferences(lastDocument()?.documentId, 5)\">\r\n Modifiche apportate\r\n </button>\r\n }\r\n @if (lastDocument()?.secondaryId) {\r\n <button fxFlexAlign=\"center\" type=\"button\" mat-button [attr.aria-label]=\"'Mostra documento secondario'\"\r\n (click)=\"navigate(lastDocument()?.secondaryId)\">\r\n Testo storico\r\n </button>\r\n }\r\n @if (lastDocument()?.bag && lastDocument()?.bag[7] === 'T') {\r\n <button fxFlexAlign=\"center\" type=\"button\" mat-button [attr.aria-label]=\"'Mostra commento'\"\r\n (click)=\"showComment()\">\r\n Commento\r\n </button>\r\n }\r\n </div>\r\n <div fxFlex.xs=\"100\" fxLayoutAlign=\"end\">\r\n <div fxFlexAlign=\"center\">\r\n @if (relevants().hits) {\r\n <div fxLayout=\"row\" fxLayoutGap=\"10px\">\r\n <div fxFlexAlign=\"center\" class=\"small item-greyed\" style=\"margin-left:20px; margin-right: 5px\"\r\n matTooltip=\"Parole evidenziate\">{{relevants().hit}}\r\n di {{relevants().hits}}</div>\r\n <button fxFlexAlign=\"center\" type=\"button\" mat-icon-button [attr.aria-label]=\"'Vai alla parola precedente'\"\r\n (click)=\"previousRelevant()\" matTooltip=\"Parola precedente\">\r\n <mat-icon>chevron_left</mat-icon>\r\n </button>\r\n <button fxFlexAlign=\"center\" type=\"button\" mat-icon-button [attr.aria-label]=\"'Vai alla prossima parola'\"\r\n (click)=\"nextRelevant()\" matTooltip=\"Prossima parola\">\r\n <mat-icon>chevron_right</mat-icon>\r\n </button>\r\n </div>\r\n }\r\n </div>\r\n <button fxFlexAlign=\"center\" type=\"button\" mat-icon-button matTooltip=\"Azioni sul documento\"\r\n [attr.aria-label]=\"'Azioni da eseguire sul documento'\" [matMenuTriggerFor]=\"menuActions\">\r\n <mat-icon>more_vert</mat-icon>\r\n </button>\r\n <mat-menu #menuActions=\"matMenu\">\r\n <ng-template matMenuContent let-item=\"lastDocument\">\r\n <clipper-document-menu [parent]=\"this\" [item]=\"lastDocument()\" [canOpenDocument]=\"false\" [canPrint]=\"true\"\r\n [canFind]=\"true\" [isReadable]=\"false\" [isLawInForce]=\"lastDocument()?.model === 9\"\r\n selectionSource=\"none\" [canUseAIAssistant]=\"user?.hasAIAssistant ?? false\">\r\n </clipper-document-menu>\r\n </ng-template>\r\n </mat-menu>\r\n @if (hasRelevants() && relevants().items && relevantsPane && (!relevantsPane.opened || relevantsPaneClosed())) {\r\n <div fxFlexAlign=\"center\">\r\n <button type=\"button\" mat-icon-button matTooltip=\"Rilevanza\" aria-label=\"'Rilevanza'\"\r\n (click)=\"toggleRelevantsPane()\">\r\n <mat-icon>right_panel_open</mat-icon>\r\n </button>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n<mat-dialog-content id=\"clipper-document-scrollable\">\r\n <mat-drawer-container class=\"fill\" [hasBackdrop]=\"relevantsPaneHasBackdrop()\">\r\n <mat-drawer #relevantsPane position=\"end\" class=\"drawer-small drawer-with-loader\" opened=\"false\">\r\n @if (relevantsBusy()) {\r\n <div class=\"overlay\"></div>\r\n }\r\n <div fxLayout=\"column\" fxFill>\r\n <div fxFlex=\"6px\">\r\n @if (relevantsBusy()) {\r\n <mat-progress-bar style=\"z-index: 11;\" mode=\"indeterminate\">\r\n </mat-progress-bar>\r\n }\r\n </div>\r\n <div fxFlex=\"78px\" class=\"title-container-with-loader\">\r\n <div fxLayout=\"row\" fxLayoutAlign=\"start center\" fxFill>\r\n <div class=\"title\">Rilevanza</div>\r\n <div fxFlex=\"*\" fxLayoutAlign=\"end\">\r\n <button mat-icon-button (click)=\"toggleRelevantsPane()\"\r\n matTooltip=\"Nascondi\"><mat-icon>right_panel_close</mat-icon></button>\r\n </div>\r\n </div>\r\n </div>\r\n <div fxFlex=\"*\" class=\"relevants-container scroll-auto\">\r\n <div fxLayout=\"column\" fxFill>\r\n <div>\r\n <p>Parti del documento più significative per la ricerca di <span\r\n class='word-hit-chunk'>{{lastQuery}}</span>\r\n </p>\r\n </div>\r\n <div fxFlex=\"*\">\r\n <nav class=\"relevants-items\">\r\n <ul>\r\n @for (item of relevants().items; track $index) {\r\n <li class=\"small\" (click)=\"gotoRelevant(item)\" [attr.aria-label]=\"item.title\"\r\n [class.bright]=\"item.score > 0.75\" [class.accent]=\"item.score > 0.75\">\r\n <div fxLayout=\"row\" fxLayoutAlign=\"start start\" fxLayoutGap=\"10px\" fxFill>\r\n <div fxFlex=\"*\">\r\n {{item.title}}\r\n </div>\r\n <div fxLayoutAlign=\"end\">\r\n @if (item.score > 0.7) {\r\n <mat-icon style='font-size:x-small; height: 10px; width:10px'\r\n [matTooltip]=\"item.score > 0.75 ? 'Molto rilevante' : 'Più rilevante'\">thumb_up_alt</mat-icon>\r\n }\r\n </div>\r\n </div>\r\n </li>\r\n }\r\n </ul>\r\n </nav>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </mat-drawer>\r\n <div class=\"fill scroll-hidden\">\r\n <iframe #docIframe id=\"clipper-document-iframe\" class=\"iframe\"></iframe>\r\n </div>\r\n </mat-drawer-container>\r\n</mat-dialog-content>",
529
+ styles: [".fill,.wide{min-width:100%!important;max-width:100%!important;width:100%!important}.dialog-info{font-size:x-small;font-weight:700;text-align:right;padding:10px}.dialog-info-green,.dialog-info-ok{color:var(--ars-color-ok, #388E3C)}.dialog-info-red,.dialog-info-error{color:var(--mat-form-field-error-text-color, #a80710)}.dialog-header{padding-bottom:20px}.dialog-toolbar{padding:0 5px 0 24px;height:48px;min-height:48px}.dialog-close{margin-right:5px;margin-top:0}.dialog-menu{margin-left:10px;margin-top:10px}.dialog-title{padding:0 24px}.section-title{font-size:large;font-weight:600;padding-top:10px;padding-bottom:8px}.center{text-align:center}.fill{min-height:100%!important;max-height:100%!important;height:100%!important}.scroll-auto{overflow:auto;height:100%}.scroll-hidden{overflow:hidden;height:100%}b{font-weight:700}.large{font-size:large!important;line-height:1.2!important}.smaller{font-size:smaller!important;line-height:1.2!important}.small{font-size:small!important;line-height:1.2!important}.small-icon-button{width:1.5rem!important;height:1.5rem!important;padding:0!important;display:inline-flex!important;align-items:center;justify-content:center}.small-icon-button .mat-mdc-button-touch-target{width:1.5rem!important;height:1.5rem!important}.x-small{font-size:x-small!important;line-height:1.2!important}.bold{font-weight:700}.uppercase{text-transform:uppercase!important}.lowercase{text-transform:lowercase!important}.truncated{min-width:0;max-width:100%}@supports (-webkit-line-clamp: 2){.truncated{overflow:hidden;text-overflow:ellipsis;white-space:initial;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}}.truncated span,.truncated div{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@supports (-webkit-line-clamp: 2){.truncated span,.truncated div{overflow:hidden;text-overflow:ellipsis;white-space:initial;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}}.clipped{min-width:0;max-width:100%}.clipped span,.clipped div{white-space:nowrap;overflow:hidden;text-overflow:clip}.accent{color:var(--ars-color-accent, #7894ae)!important}.primary{color:var(--ars-color-primary, #00a293)!important}.secondary{color:var(--ars-color-secondary, #4a635f)!important}.error{color:var(--ars-color-error, #ff5449)!important}.success{color:var(--ars-color-ok, #388E3C)!important}.warning{color:var(--ars-color-warning, #FFC107)!important}.text{color:var(--ars-color-text, #191c1b)!important}.overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:10;background-color:var(--ars-color-overlay, rgba(255, 255, 255, .75))}.drawer-content{padding-top:10px}.drawer .title-container,.drawer .title-container-with-loader,.drawer-small .title-container,.drawer-small .title-container-with-loader{padding-right:5px;padding-bottom:20px;padding-left:0}.drawer .title-container,.drawer-small .title-container{padding-top:20px}.drawer .title-container-with-loader,.drawer-small .title-container-with-loader{padding-top:14px}.drawer .title,.drawer-small .title{font-size:19.2px!important;font-weight:600;padding-left:15px;min-width:150px;width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.drawer .accordion-panel,.drawer-small .accordion-panel{background-color:transparent!important}.drawer .accordion-header,.drawer-small .accordion-header{padding-left:10px;padding-right:10px;border-radius:var(--mat-expansion-container-shape)}.drawer .mat-expansion-panel-body,.drawer-small .mat-expansion-panel-body{padding-left:10px!important;padding-right:10px!important;padding-bottom:20px!important}@media screen and (min-width:0px)and (max-width:430px){.drawer,.drawer-small{border-radius:0!important;min-width:100%!important;max-width:100%!important}}@media screen and (min-width:431px){.drawer{min-width:420px!important;max-width:420px!important}.drawer .title{min-width:200px}.drawer .mat-expansion-panel-body{padding-left:15px!important;padding-right:15px!important;padding-bottom:20px!important}.drawer-small{min-width:360px!important;max-width:360px!important}}.drawer-with-loader{padding-top:0!important}.drawer-transparent{background-color:transparent}.fade-in{animation:fadein .5s linear}@keyframes fadein{0%{opacity:0}to{opacity:1}}.bright{filter:brightness(.7)!important}@media(prefers-color-scheme:dark){.dialog-info-green,.dialog-info-ok{color:var(--ars-color-ok, #4CAF50)}.dialog-info-red,.dialog-info-error{color:var(--mat-form-field-error-text-color, #ff5449)}b,.bold{font-weight:600}.bright{filter:brightness(1.5)!important}}.clipper-logo{background-size:110px 48px;width:110px;height:48px}.clipper-selection-button{width:150px;font-size:small;font-weight:600}.clipper-selection-icon-button{background-color:var(--ars-color-primary, #00a293);color:var(--ars-color-text-low, #e0e2e5)}.clipper-selection-icon-button:hover{background-color:var(--ars-color-primary-hi, #12c0ae)}.unread{color:var(--app-color-unread, #f7931c)!important}.unread-bg{background-color:var(--app-color-unread, #f7931c)!important}.expired{color:var(--app-color-expired, #ff5449)!important}.expired-bg{background-color:var(--app-color-expired, #ff5449)!important}.expiring{color:var(--app-color-expiring, #FFC107)!important}.expiring-bg{background-color:var(--app-color-expiring, #FFC107)!important}.closed{color:var(--app-color-closed, #388E3C)!important}.closed-bg{background-color:var(--app-color-closed, #388E3C)!important}.error-bg{background-color:var(--ars-color-error, #ff5449)!important}.popular-bg{background-color:var(--app-color-closed, #388E3C)!important}.very-popular-bg{background-color:#4caf50}.item-selected{background-color:var(--ars-item-selected-background-color, #ced1d2);border-radius:0!important}.item-unread{font-weight:bolder}.items-group-title{color:var(--ars-color-secondary, #4a635f);font-size:large;font-weight:700;padding-left:25px;padding-bottom:10px;padding-top:10px}.items-group-title .group-spaced{padding:10px 0 0!important}.items-footer{padding:10px}.item{border-radius:12px;padding:10px 10px 10px 0;min-height:68px!important;margin-bottom:2px}.item:hover{background-color:var(--ars-item-hover-background-color, #eaecef)}.item:hover .item-content{-webkit-mask-image:linear-gradient(to right,black 85%,transparent 100%);mask-image:linear-gradient(to right,black 85%,transparent 100%)}@media screen and (min-width:0px)and (max-width:430px){.item:hover{background-color:var(--ars-item-hover-background-color)}.item:hover .item-content{-webkit-mask-image:linear-gradient(to right,black 55%,transparent 100%);mask-image:linear-gradient(to right,black 55%,transparent 100%)}}.item-content .item-info-1,.item-content .info-1{font-size:x-small!important;font-weight:700!important;line-height:18px;text-transform:uppercase!important;color:var(--ars-color-accent, #7894ae)}.item-content .item-info-2,.item-content .info-2{font-size:x-small!important;font-weight:700!important;line-height:18px;text-transform:uppercase!important;color:var(--ars-color-accent-low, #456179)}.item-content .item-info-3,.item-content .info-3{font-size:x-small!important;font-weight:700!important;line-height:18px;text-transform:uppercase!important;color:var(--ars-color-error, #ff5449)}.item-content .item-title,.item-content .title{font-size:small!important;line-height:18px;text-decoration:none!important;font-weight:400;min-height:unset;min-width:unset;white-space:initial!important}@supports (-webkit-line-clamp: 3){.item-content .item-title,.item-content .title{overflow:hidden;text-overflow:ellipsis;white-space:initial;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}}.item-content .details{margin-top:4px;font-size:x-small!important;font-weight:700;line-height:15px;color:var(--ars-color-accent-low, #456179);text-transform:uppercase!important;border-left:4px solid var(--ars-color-accent-low, #456179);padding-left:10px}.item-content .details .links{text-transform:none;text-decoration:none}.item-content .details .links a,.item-content .details .links span,.item-content .details .links div{margin-right:8px;font-weight:500!important;font-size:11px!important;color:var(--ars-color-text, #191c1b)}.item-content .details .links a{cursor:pointer!important;color:var(--ars-color-link, #03A9F4);font-size:11px!important;font-weight:500!important}.item-content a.link{color:var(--ars-color-link, #03A9F4);cursor:pointer!important;text-decoration:none!important}.tile:hover{background-color:var(--ars-item-hover-background-color, #eaecef);border-radius:12px}.tile{cursor:pointer!important;padding:10px 13px!important;margin-bottom:20px!important}.tile .body{padding:4px 6px}.tile .image-mark{border-top:6px solid transparent;margin:0 8px}.tile .image-mark-unread{border-top-color:var(--app-color-unread, #f7931c);margin:0 8px}.tile .tile-image,.tile .image{height:125px;position:relative;background-color:transparent;overflow:hidden;display:flex;justify-content:center;align-items:center;border-radius:8px}.tile .tile-image img,.tile .image img{object-fit:cover;width:100%;height:100%}.tile .tile-image .tile-info-1,.tile .tile-image .info-1,.tile .image .tile-info-1,.tile .image .info-1{position:absolute;left:0;bottom:0;padding:4px 8px;background-color:var(--ars-color-overlay, rgba(255, 255, 255, .75));color:var(--ars-color-text, #191c1b);font-size:small!important;font-weight:700!important;text-transform:uppercase!important}.tile .tile-image .tile-info-2,.tile .tile-image .info-2,.tile .image .tile-info-2,.tile .image .info-2{position:absolute;right:0;top:0;padding:4px 8px;background-color:var(--ars-color-overlay, rgba(255, 255, 255, .75));color:var(--ars-color-accent, #7894ae);font-size:small!important;font-weight:700!important;text-transform:uppercase!important}.tile .tile-image .buttons,.tile .image .buttons{position:absolute;left:0;top:0;height:42px}.tile .tile-image .buttons .check,.tile .tile-image .buttons .read-button,.tile .image .buttons .check,.tile .image .buttons .read-button{background-color:var(--ars-color-primary, #00a293)!important;color:var(--ars-color-text-low, #e0e2e5)!important}.tile .tile-image .buttons .unread-button,.tile .image .buttons .unread-button{background-color:var(--app-color-unread, #f7931c)!important;color:var(--ars-color-text-low, #e0e2e5)!important}.tile .tile-image .buttons .check-selected,.tile .image .buttons .check-selected{background-color:var(--ars-color-primary-hi, #12c0ae)!important}.tile .tile-date,.tile .date{padding:8px 0 6px!important;font-weight:700!important;text-transform:uppercase!important}.tile .tile-date .date-day,.tile .date .date-day{color:var(--ars-color-accent, #7894ae)}.tile .tile-date .date-divider,.tile .date .date-divider{width:1px;margin:0 8px;border-left:1px solid var(--ars-color-divider, #757d87)}.tile .tile-time,.tile .time{font-size:small!important;font-weight:700!important}.tile .tile-title,.tile .title{text-decoration:none!important;font-size:16px!important;font-weight:600;min-height:50px!important;max-height:70px!important;min-width:100%;white-space:initial!important;overflow:hidden!important}@supports (-webkit-line-clamp: 3){.tile .tile-title,.tile .title{overflow:hidden;text-overflow:ellipsis;white-space:initial;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}}.stripe:hover{background-color:var(--ars-item-hover-background-color, #eaecef);border-radius:12px}.stripe{cursor:pointer!important;padding:5px 10px!important;margin-bottom:10px!important}.stripe .body{padding:5px 15px!important}.stripe .image-mark{min-height:100%!important;border-left:6px solid transparent;margin:8px 0}.stripe .image-mark-unread{min-height:100%!important;border-left-color:var(--ars-color-error, #ff5449)!important;margin:8px 0}.stripe .stripe-image,.stripe .image{width:150px!important;height:70px!important;position:relative;background-color:transparent;overflow:hidden;display:flex;justify-content:center;align-items:center;border-radius:8px}.stripe .stripe-image img,.stripe .image img{object-fit:cover;width:100%;height:100%}.stripe .stripe-info-1,.stripe .info-1{margin-top:8px;padding:4px 8px!important;background-color:var(--ars-color-overlay, rgba(255, 255, 255, .75))!important;color:var(--ars-color-text, #191c1b)!important;font-size:small!important;font-weight:700!important;text-transform:uppercase!important}.stripe .stripe-info-2,.stripe .info-2{margin-top:8px;padding:4px 8px!important;background-color:var(--ars-color-overlay, rgba(255, 255, 255, .75))!important;color:var(--ars-color-accent, #7894ae)!important;font-size:small!important;font-weight:700!important;text-transform:uppercase!important}.stripe .buttons{position:absolute;left:0;top:0;height:42px}.stripe .buttons .check,.stripe .buttons .read{background-color:var(--ars-color-primary, #00a293);color:var(--ars-color-text-low, #e0e2e5)}.stripe .buttons .check-selected{background-color:var(--ars-color-primary-hi, #12c0ae)}.stripe .stripe-date,.stripe .date{padding:0!important;font-weight:700!important;text-transform:uppercase!important}.stripe .stripe-date .date-day,.stripe .date .date-day{color:var(--ars-color-accent, #7894ae)}.stripe .stripe-date .date-divider,.stripe .date .date-divider{width:1px;margin:0 8px;border-left:1px solid var(--ars-color-divider, #757d87)}.stripe .stripe-time,.stripe .time{font-size:small!important;font-weight:700!important}.stripe .stripe-title,.stripe .title{text-decoration:none!important;font-size:16px!important;font-weight:600;min-width:100%;white-space:initial!important;overflow:hidden!important}@supports (-webkit-line-clamp: 3){.stripe .stripe-title,.stripe .title{overflow:hidden;text-overflow:ellipsis;white-space:initial;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}}.badge,.badge-red{margin-left:10px;padding:1px 4px;border-radius:3px;font-size:x-small;font-weight:600;text-align:center;background-color:#427505;text-transform:uppercase;white-space:nowrap;color:#e0e2e5}.badge-red{background-color:#a80710}.busy-backdrop{background-color:#0000006b!important}.legend-container{display:flex;flex-direction:row;align-items:center;font-size:x-small;text-transform:uppercase;font-weight:500;margin-left:10px}.legend-container .legend{display:inline-block;height:8px;width:8px;margin-right:4px}.legend-container .legend:not(:first-of-type){margin-left:10px}@media screen and (max-width:431px){.legend-container{font-size:9px!important}}.special-date,.special-date-expired,.special-date-expiring{border:2px var(--ars-color-accent, #7894ae) solid!important;border-radius:100%!important}.special-date-expired{border:2px var(--ars-color-error, #ff5449) solid!important}.special-date-expiring{border:2px var(--ars-color-warning, #FFC107) solid!important}.word-hit-chunk,.word-hit{display:inline-block;font-size:inherit;background-color:var(--ars-word-hit-background-color, #FFEB3B);color:var(--ars-word-hit-color, #191c1b);padding:0 4px;margin:0 4px;border-radius:4px}.word-hit-chunk{background-color:var(--ars-word-chunk-hit-background-color, #8AFF59);color:var(--ars-word-hit-chunk-color, #191c1b)}::ng-deep .mat-mdc-menu-panel{min-width:320px!important;max-width:320px!important}.title-container{padding-left:20px;padding-top:14px}.title-container .title{font-size:large}@supports (-webkit-line-clamp: 2){.title-container .title{overflow:hidden;text-overflow:ellipsis;white-space:initial;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}}.dialog-close{margin-right:10px;margin-top:4px}.iframe{width:100%;height:100%;border:0}.relevants-container{padding:0 20px 10px}.relevants-items{padding:0;margin:0}.relevants-items ul{list-style-type:none;padding:0;margin:0}.relevants-items ul li{font-size:small;padding:6px 12px;display:block;color:var(--ars-color-text, #191c1b)}.relevants-items ul li a{color:inherit;text-decoration:none;display:block}.relevants-items ul li:hover{background-color:var(--ars-item-hover-background-color, #eaecef);border-radius:6px;cursor:pointer}.mat-mdc-dialog-content{max-height:unset!important;padding:0 0 16px!important}\n"],
530
+ dependencies: [
531
+ {
532
+ kind: "ngmodule",
533
+ type: FlexLayoutModule
534
+ },
535
+ {
536
+ kind: "directive",
537
+ type: i1.FxLayoutDirective,
538
+ selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg] ",
539
+ inputs: [
540
+ "fxLayout",
541
+ "fxLayout.xs",
542
+ "fxLayout.sm",
543
+ "fxLayout.md",
544
+ "fxLayout.lg",
545
+ "fxLayout.xl",
546
+ "fxLayout.lt-sm",
547
+ "fxLayout.lt-md",
548
+ "fxLayout.lt-lg",
549
+ "fxLayout.lt-xl",
550
+ "fxLayout.gt-xs",
551
+ "fxLayout.gt-sm",
552
+ "fxLayout.gt-md",
553
+ "fxLayout.gt-lg"
554
+ ]
555
+ },
556
+ {
557
+ kind: "directive",
558
+ type: i1.FxFlexDirective,
559
+ selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg] ",
560
+ inputs: [
561
+ "fxFlex",
562
+ "fxFlex.xs",
563
+ "fxFlex.sm",
564
+ "fxFlex.md",
565
+ "fxFlex.lg",
566
+ "fxFlex.xl",
567
+ "fxFlex.lt-sm",
568
+ "fxFlex.lt-md",
569
+ "fxFlex.lt-lg",
570
+ "fxFlex.lt-xl",
571
+ "fxFlex.gt-xs",
572
+ "fxFlex.gt-sm",
573
+ "fxFlex.gt-md",
574
+ "fxFlex.gt-lg"
575
+ ]
576
+ },
577
+ {
578
+ kind: "directive",
579
+ type: i1.FxShowHideDirective,
580
+ selector: " [fxShow], [fxHide], [fxShow.xs], [fxShow.sm], [fxShow.md], [fxShow.lg], [fxShow.xl], [fxShow.lt-sm], [fxShow.lt-md], [fxShow.lt-lg], [fxShow.lt-xl], [fxShow.gt-xs], [fxShow.gt-sm], [fxShow.gt-md], [fxShow.gt-lg], [fxHide.xs], [fxHide.sm], [fxHide.md], [fxHide.lg], [fxHide.xl], [fxHide.lt-sm], [fxHide.lt-md], [fxHide.lt-lg], [fxHide.lt-xl], [fxHide.gt-xs], [fxHide.gt-sm], [fxHide.gt-md], [fxHide.gt-lg] ",
581
+ inputs: [
582
+ "fxShow",
583
+ "fxShow.xs",
584
+ "fxShow.sm",
585
+ "fxShow.md",
586
+ "fxShow.lg",
587
+ "fxShow.xl",
588
+ "fxShow.lt-sm",
589
+ "fxShow.lt-md",
590
+ "fxShow.lt-lg",
591
+ "fxShow.lt-xl",
592
+ "fxShow.gt-xs",
593
+ "fxShow.gt-sm",
594
+ "fxShow.gt-md",
595
+ "fxShow.gt-lg",
596
+ "fxHide",
597
+ "fxHide.xs",
598
+ "fxHide.sm",
599
+ "fxHide.md",
600
+ "fxHide.lg",
601
+ "fxHide.xl",
602
+ "fxHide.lt-sm",
603
+ "fxHide.lt-md",
604
+ "fxHide.lt-lg",
605
+ "fxHide.lt-xl",
606
+ "fxHide.gt-xs",
607
+ "fxHide.gt-sm",
608
+ "fxHide.gt-md",
609
+ "fxHide.gt-lg"
610
+ ]
611
+ },
612
+ {
613
+ kind: "directive",
614
+ type: i1.FxLayoutAlignDirective,
615
+ selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg] ",
616
+ inputs: [
617
+ "fxLayoutAlign",
618
+ "fxLayoutAlign.xs",
619
+ "fxLayoutAlign.sm",
620
+ "fxLayoutAlign.md",
621
+ "fxLayoutAlign.lg",
622
+ "fxLayoutAlign.xl",
623
+ "fxLayoutAlign.lt-sm",
624
+ "fxLayoutAlign.lt-md",
625
+ "fxLayoutAlign.lt-lg",
626
+ "fxLayoutAlign.lt-xl",
627
+ "fxLayoutAlign.gt-xs",
628
+ "fxLayoutAlign.gt-sm",
629
+ "fxLayoutAlign.gt-md",
630
+ "fxLayoutAlign.gt-lg"
631
+ ]
632
+ },
633
+ {
634
+ kind: "directive",
635
+ type: i1.FxLayoutGapDirective,
636
+ selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg] ",
637
+ inputs: [
638
+ "fxLayoutGap",
639
+ "fxLayoutGap.xs",
640
+ "fxLayoutGap.sm",
641
+ "fxLayoutGap.md",
642
+ "fxLayoutGap.lg",
643
+ "fxLayoutGap.xl",
644
+ "fxLayoutGap.lt-sm",
645
+ "fxLayoutGap.lt-md",
646
+ "fxLayoutGap.lt-lg",
647
+ "fxLayoutGap.lt-xl",
648
+ "fxLayoutGap.gt-xs",
649
+ "fxLayoutGap.gt-sm",
650
+ "fxLayoutGap.gt-md",
651
+ "fxLayoutGap.gt-lg"
652
+ ]
653
+ },
654
+ {
655
+ kind: "directive",
656
+ type: i1.FxFlexAlignDirective,
657
+ selector: " [fxFlexAlign], [fxFlexAlign.xs], [fxFlexAlign.sm], [fxFlexAlign.md], [fxFlexAlign.lg], [fxFlexAlign.xl], [fxFlexAlign.lt-sm], [fxFlexAlign.lt-md], [fxFlexAlign.lt-lg], [fxFlexAlign.lt-xl], [fxFlexAlign.gt-xs], [fxFlexAlign.gt-sm], [fxFlexAlign.gt-md], [fxFlexAlign.gt-lg] ",
658
+ inputs: [
659
+ "fxFlexAlign",
660
+ "fxFlexAlign.xs",
661
+ "fxFlexAlign.sm",
662
+ "fxFlexAlign.md",
663
+ "fxFlexAlign.lg",
664
+ "fxFlexAlign.xl",
665
+ "fxFlexAlign.lt-sm",
666
+ "fxFlexAlign.lt-md",
667
+ "fxFlexAlign.lt-lg",
668
+ "fxFlexAlign.lt-xl",
669
+ "fxFlexAlign.gt-xs",
670
+ "fxFlexAlign.gt-sm",
671
+ "fxFlexAlign.gt-md",
672
+ "fxFlexAlign.gt-lg"
673
+ ]
674
+ },
675
+ {
676
+ kind: "directive",
677
+ type: i1.FxFlexFillDirective,
678
+ selector: " [fxFlexFill], [fxFill], [fxFlexFill.xs], [fxFlexFill.sm], [fxFlexFill.md], [fxFlexFill.lg], [fxFlexFill.xl], [fxFlexFill.lt-sm], [fxFlexFill.lt-md], [fxFlexFill.lt-lg], [fxFlexFill.lt-xl], [fxFlexFill.gt-xs], [fxFlexFill.gt-sm], [fxFlexFill.gt-md], [fxFlexFill.gt-lg] ",
679
+ inputs: [
680
+ "fxFlexFill",
681
+ "fxFill",
682
+ "fxFlexFill.xs",
683
+ "fxFlexFill.sm",
684
+ "fxFlexFill.md",
685
+ "fxFlexFill.lg",
686
+ "fxFlexFill.xl",
687
+ "fxFlexFill.lt-sm",
688
+ "fxFlexFill.lt-md",
689
+ "fxFlexFill.lt-lg",
690
+ "fxFlexFill.lt-xl",
691
+ "fxFlexFill.gt-xs",
692
+ "fxFlexFill.gt-sm",
693
+ "fxFlexFill.gt-md",
694
+ "fxFlexFill.gt-lg"
695
+ ]
696
+ },
697
+ {
698
+ kind: "ngmodule",
699
+ type: MatButtonModule
700
+ },
701
+ {
702
+ kind: "component",
703
+ type: i2.MatButton,
704
+ selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ",
705
+ inputs: ["matButton"],
706
+ exportAs: ["matButton", "matAnchor"]
707
+ },
708
+ {
709
+ kind: "component",
710
+ type: i2.MatIconButton,
711
+ selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]",
712
+ exportAs: ["matButton", "matAnchor"]
713
+ },
714
+ {
715
+ kind: "ngmodule",
716
+ type: MatTooltipModule
717
+ },
718
+ {
719
+ kind: "directive",
720
+ type: i3.MatTooltip,
721
+ selector: "[matTooltip]",
722
+ inputs: [
723
+ "matTooltipPosition",
724
+ "matTooltipPositionAtOrigin",
725
+ "matTooltipDisabled",
726
+ "matTooltipShowDelay",
727
+ "matTooltipHideDelay",
728
+ "matTooltipTouchGestures",
729
+ "matTooltip",
730
+ "matTooltipClass"
731
+ ],
732
+ exportAs: ["matTooltip"]
733
+ },
734
+ {
735
+ kind: "ngmodule",
736
+ type: MatIconModule
737
+ },
738
+ {
739
+ kind: "component",
740
+ type: i4.MatIcon,
741
+ selector: "mat-icon",
742
+ inputs: [
743
+ "color",
744
+ "inline",
745
+ "svgIcon",
746
+ "fontSet",
747
+ "fontIcon"
748
+ ],
749
+ exportAs: ["matIcon"]
750
+ },
751
+ {
752
+ kind: "ngmodule",
753
+ type: MatMenuModule
754
+ },
755
+ {
756
+ kind: "component",
757
+ type: i5.MatMenu,
758
+ selector: "mat-menu",
759
+ inputs: [
760
+ "backdropClass",
761
+ "aria-label",
762
+ "aria-labelledby",
763
+ "aria-describedby",
764
+ "xPosition",
765
+ "yPosition",
766
+ "overlapTrigger",
767
+ "hasBackdrop",
768
+ "class",
769
+ "classList"
770
+ ],
771
+ outputs: ["closed", "close"],
772
+ exportAs: ["matMenu"]
773
+ },
774
+ {
775
+ kind: "component",
776
+ type: i5.MatMenuItem,
777
+ selector: "[mat-menu-item]",
778
+ inputs: [
779
+ "role",
780
+ "disabled",
781
+ "disabledInteractive",
782
+ "disableRipple"
783
+ ],
784
+ exportAs: ["matMenuItem"]
785
+ },
786
+ {
787
+ kind: "directive",
788
+ type: i5.MatMenuContent,
789
+ selector: "ng-template[matMenuContent]"
790
+ },
791
+ {
792
+ kind: "directive",
793
+ type: i5.MatMenuTrigger,
794
+ selector: "[mat-menu-trigger-for], [matMenuTriggerFor]",
795
+ inputs: [
796
+ "mat-menu-trigger-for",
797
+ "matMenuTriggerFor",
798
+ "matMenuTriggerData",
799
+ "matMenuTriggerRestoreFocus"
800
+ ],
801
+ outputs: [
802
+ "menuOpened",
803
+ "onMenuOpen",
804
+ "menuClosed",
805
+ "onMenuClose"
806
+ ],
807
+ exportAs: ["matMenuTrigger"]
808
+ },
809
+ {
810
+ kind: "ngmodule",
811
+ type: MatDividerModule
812
+ },
813
+ {
814
+ kind: "ngmodule",
815
+ type: MatProgressBarModule
816
+ },
817
+ {
818
+ kind: "component",
819
+ type: i6.MatProgressBar,
820
+ selector: "mat-progress-bar",
821
+ inputs: [
822
+ "color",
823
+ "value",
824
+ "bufferValue",
825
+ "mode"
826
+ ],
827
+ outputs: ["animationEnd"],
828
+ exportAs: ["matProgressBar"]
829
+ },
830
+ {
831
+ kind: "directive",
832
+ type: MatDialogContent,
833
+ selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]"
834
+ },
835
+ {
836
+ kind: "ngmodule",
837
+ type: MatSidenavModule
838
+ },
839
+ {
840
+ kind: "component",
841
+ type: i7.MatDrawer,
842
+ selector: "mat-drawer",
843
+ inputs: [
844
+ "position",
845
+ "mode",
846
+ "disableClose",
847
+ "autoFocus",
848
+ "opened"
849
+ ],
850
+ outputs: [
851
+ "openedChange",
852
+ "opened",
853
+ "openedStart",
854
+ "closed",
855
+ "closedStart",
856
+ "positionChanged"
857
+ ],
858
+ exportAs: ["matDrawer"]
859
+ },
860
+ {
861
+ kind: "component",
862
+ type: i7.MatDrawerContainer,
863
+ selector: "mat-drawer-container",
864
+ inputs: ["autosize", "hasBackdrop"],
865
+ outputs: ["backdropClick"],
866
+ exportAs: ["matDrawerContainer"]
867
+ },
868
+ {
869
+ kind: "component",
870
+ type: ClipperDocumentMenuComponent,
871
+ selector: "clipper-document-menu",
872
+ inputs: [
873
+ "useSelections",
874
+ "selectionSource",
875
+ "parent",
876
+ "item",
877
+ "isReference",
878
+ "isReadable",
879
+ "isReadableModel",
880
+ "isLawInForce",
881
+ "canPrint",
882
+ "canFind",
883
+ "canUseAIAssistant",
884
+ "canUseRS",
885
+ "canOpenDocument"
886
+ ]
887
+ }
888
+ ],
889
+ changeDetection: i0.ChangeDetectionStrategy.OnPush
890
+ });
891
+ }
892
+ };
893
+ i0.ɵɵngDeclareClassMetadata({
894
+ minVersion: "12.0.0",
895
+ version: "22.2.1",
896
+ ngImport: i0,
897
+ type: ClipperDocumentComponent,
898
+ decorators: [{
899
+ type: Component,
900
+ args: [{
901
+ host: { "Bind": SystemUtils.generateUUID() },
902
+ changeDetection: ChangeDetectionStrategy.OnPush,
903
+ standalone: true,
904
+ imports: [
905
+ FlexLayoutModule,
906
+ MatButtonModule,
907
+ MatTooltipModule,
908
+ MatIconModule,
909
+ MatMenuModule,
910
+ MatDividerModule,
911
+ MatProgressBarModule,
912
+ MatDialogContent,
913
+ MatSidenavModule,
914
+ ClipperDocumentMenuComponent
915
+ ],
916
+ template: "<div class=\"clipper-document-fixed\">\r\n <div style=\"height:6px\">\r\n @if (busy()) {\r\n <mat-progress-bar style=\"z-index:11\" mode=\"indeterminate\"></mat-progress-bar>\r\n }\r\n </div>\r\n <div>\r\n <div fxLayout=\"row\" fxLayoutGap=\"20px\" fxLayoutAlign=\"start start\" fxFill>\r\n <div fxFlex=\"*\" class=\"title-container\">\r\n <div class=\"title bold\">{{title()}}</div>\r\n @if (lastDocument()?.tags) {\r\n <div style=\"padding-top: 5px;\">\r\n <div class=\"x-small bold uppercase\">\r\n TAG: <span class=\"accent\">{{lastDocument()?.tags}}</span>\r\n </div>\r\n </div>\r\n }\r\n @if (lastDocument()?.lastUpdate) {\r\n <div style=\"padding-top: 5px;\">\r\n <div class=\"x-small bold uppercase\">\r\n AGGIORNATO A:\r\n <span class=\"accent\">{{lastDocument()?.lastUpdate}}</span>\r\n </div>\r\n </div>\r\n }\r\n @if (lastDocument()?.expiringDescription || lastDocument()?.validityInfo) {\r\n <div style=\"padding-top: 5px;\">\r\n @if (lastDocument()?.expiringDescription) {\r\n <div class=\"x-small error bold uppercase\">\r\n {{lastDocument()?.expiringDescription}}</div>\r\n }\r\n @if (lastDocument()?.validityInfo) {\r\n <div class=\"x-small error bold uppercase\"><b>Attenzione!</b>\r\n {{lastDocument()?.validityInfo}}</div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n @if (canSelect()) {\r\n <div fxFlex=\"170px\" fxFlex.lt-md=\"58px\">\r\n <button fxHide.lt-md fxFlexAlign=\"center\" type=\"button\" mat-flat-button (click)=\"select()\"\r\n class=\"clipper-selection-button\" style=\"margin-top: 8px;\">\r\n <span class=\"small\">Usa selezione</span>\r\n </button>\r\n <button fxHide.gt-sm fxFlexAlign=\"center\" type=\"button\" mat-icon-button (click)=\"select()\"\r\n class=\"clipper-selection-icon-button\" matTooltip=\"Usa selezione\" aria-label=\"'Usa la selezione'\"\r\n style=\"margin-top: 4px;\">\r\n <mat-icon>check</mat-icon>\r\n </button>\r\n </div>\r\n }\r\n <div fxFlex=\"170px\" fxFlex.lt-md=\"48px\" fxLayoutAlign=\"end\">\r\n <div class=\"dialog-close\">\r\n <button fxHide.lt-md fxFlexAlign=\"start\" type=\"button\" mat-icon-button matTooltip=\"Indietro\"\r\n aria-label=\"Indietro\" (click)=\"back()\">\r\n <mat-icon>arrow_back</mat-icon>\r\n </button>\r\n <button fxHide.lt-md fxFlexAlign=\"start\" type=\"button\" mat-icon-button matTooltip=\"Avanti\" aria-label=\"Avanti\"\r\n (click)=\"forward()\">\r\n <mat-icon>arrow_forward</mat-icon>\r\n </button>\r\n <button fxFlexAlign=\"start\" type=\"button\" mat-icon-button matTooltip=\"Chiudi\" aria-label=\"Chiudi\"\r\n (click)=\"close()\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div>\r\n <div fxLayout=\"row wrap \" fxFill fxLayoutAlign=\"space-between center\" style=\"padding: 10px 10px 10px 15px;\">\r\n <div fxFlex.xs=\"100\">\r\n @if (lastDocument()?.model === 9) {\r\n <button fxFlexAlign=\"center\" type=\"button\" mat-button [attr.aria-label]=\"'Mostra indice'\"\r\n (click)=\"index(lastDocument()?.documentId)\">\r\n Indice\r\n </button>\r\n }\r\n @if (lastDocument()?.bag && (lastDocument()?.bag[1] ==='T' || lastDocument()?.bag[3] ==='T')) {\r\n <button fxFlexAlign=\"center\" type=\"button\" mat-button matTooltip=\"Collegamenti\"\r\n [attr.aria-label]=\"'Collegamenti al documento'\" [matMenuTriggerFor]=\"menuLinks\">\r\n Collegamenti\r\n </button>\r\n }\r\n <mat-menu #menuLinks=\"matMenu\">\r\n @if (lastDocument()?.bag && lastDocument()?.bag[1] ==='T') {\r\n <button mat-menu-item [attr.aria-label]=\"'Mostra documenti richiamati'\"\r\n (click)=\"openReferences(lastDocument()?.documentId, 1)\">\r\n Documenti richiamati\r\n </button>\r\n }\r\n @if (lastDocument()?.bag && lastDocument()?.bag[3] ==='T') {\r\n <button mat-menu-item [attr.aria-label]=\"'Mostra documenti che richiamano'\"\r\n (click)=\"openReferences(lastDocument()?.documentId, 2)\">\r\n Documenti che richiamano\r\n </button>\r\n }\r\n @if (lastDocument()?.bag && lastDocument()?.bag[2] ==='T') {\r\n <button fxHide fxShow.lt-md mat-menu-item [attr.aria-label]=\"'Mostra juris'\"\r\n (click)=\"openReferences(lastDocument()?.documentId, 4)\">\r\n Juris\r\n </button>\r\n }\r\n @if (lastDocument()?.bag && lastDocument()?.bag[4] ==='T') {\r\n <button fxHide fxShow.lt-md mat-menu-item [attr.aria-label]=\"'Mostra modifiche subite'\"\r\n (click)=\"openReferences(lastDocument()?.documentId, 3)\">\r\n Modifiche subite\r\n </button>\r\n }\r\n @if (lastDocument()?.bag && lastDocument()?.bag[4] !=='T' && lastDocument()?.bag[6] ==='T') {\r\n <button fxHide fxShow.lt-md mat-menu-item [attr.aria-label]=\"'Mostra modifiche apportate'\"\r\n (click)=\"openReferences(lastDocument()?.documentId, 5)\">\r\n Modifiche apportate\r\n </button>\r\n }\r\n </mat-menu>\r\n @if (lastDocument()?.hasPrimary) {\r\n <button fxFlexAlign=\"center\" type=\"button\" mat-button [attr.aria-label]=\"'Mostra documento primario'\"\r\n (click)=\"navigate(lastDocument()?.primaryId)\">\r\n {{lastDocument()?.primaryDescription}}\r\n </button>\r\n }\r\n @if (lastDocument()?.bag && lastDocument()?.bag[2] ==='T') {\r\n <button fxFlexAlign=\"center\" type=\"button\" fxHide.lt-md mat-button [attr.aria-label]=\"'Mostra juris'\"\r\n (click)=\"openReferences(lastDocument()?.documentId, 4)\">\r\n Juris\r\n </button>\r\n }\r\n @if (lastDocument()?.bag && lastDocument()?.bag[4] === 'T') {\r\n <button fxFlexAlign=\"center\" type=\"button\" fxHide.lt-md mat-button [attr.aria-label]=\"'Mostra modifiche subite'\"\r\n (click)=\"openReferences(lastDocument()?.documentId, 3)\">\r\n Modifiche subite\r\n </button>\r\n }\r\n @if (lastDocument()?.bag && lastDocument()?.bag[4] !== 'T' && lastDocument()?.bag[6] === 'T') {\r\n <button fxFlexAlign=\"center\" type=\"button\" fxHide.lt-md mat-button\r\n [attr.aria-label]=\"'Mostra modifiche apportate'\" (click)=\"openReferences(lastDocument()?.documentId, 5)\">\r\n Modifiche apportate\r\n </button>\r\n }\r\n @if (lastDocument()?.secondaryId) {\r\n <button fxFlexAlign=\"center\" type=\"button\" mat-button [attr.aria-label]=\"'Mostra documento secondario'\"\r\n (click)=\"navigate(lastDocument()?.secondaryId)\">\r\n Testo storico\r\n </button>\r\n }\r\n @if (lastDocument()?.bag && lastDocument()?.bag[7] === 'T') {\r\n <button fxFlexAlign=\"center\" type=\"button\" mat-button [attr.aria-label]=\"'Mostra commento'\"\r\n (click)=\"showComment()\">\r\n Commento\r\n </button>\r\n }\r\n </div>\r\n <div fxFlex.xs=\"100\" fxLayoutAlign=\"end\">\r\n <div fxFlexAlign=\"center\">\r\n @if (relevants().hits) {\r\n <div fxLayout=\"row\" fxLayoutGap=\"10px\">\r\n <div fxFlexAlign=\"center\" class=\"small item-greyed\" style=\"margin-left:20px; margin-right: 5px\"\r\n matTooltip=\"Parole evidenziate\">{{relevants().hit}}\r\n di {{relevants().hits}}</div>\r\n <button fxFlexAlign=\"center\" type=\"button\" mat-icon-button [attr.aria-label]=\"'Vai alla parola precedente'\"\r\n (click)=\"previousRelevant()\" matTooltip=\"Parola precedente\">\r\n <mat-icon>chevron_left</mat-icon>\r\n </button>\r\n <button fxFlexAlign=\"center\" type=\"button\" mat-icon-button [attr.aria-label]=\"'Vai alla prossima parola'\"\r\n (click)=\"nextRelevant()\" matTooltip=\"Prossima parola\">\r\n <mat-icon>chevron_right</mat-icon>\r\n </button>\r\n </div>\r\n }\r\n </div>\r\n <button fxFlexAlign=\"center\" type=\"button\" mat-icon-button matTooltip=\"Azioni sul documento\"\r\n [attr.aria-label]=\"'Azioni da eseguire sul documento'\" [matMenuTriggerFor]=\"menuActions\">\r\n <mat-icon>more_vert</mat-icon>\r\n </button>\r\n <mat-menu #menuActions=\"matMenu\">\r\n <ng-template matMenuContent let-item=\"lastDocument\">\r\n <clipper-document-menu [parent]=\"this\" [item]=\"lastDocument()\" [canOpenDocument]=\"false\" [canPrint]=\"true\"\r\n [canFind]=\"true\" [isReadable]=\"false\" [isLawInForce]=\"lastDocument()?.model === 9\"\r\n selectionSource=\"none\" [canUseAIAssistant]=\"user?.hasAIAssistant ?? false\">\r\n </clipper-document-menu>\r\n </ng-template>\r\n </mat-menu>\r\n @if (hasRelevants() && relevants().items && relevantsPane && (!relevantsPane.opened || relevantsPaneClosed())) {\r\n <div fxFlexAlign=\"center\">\r\n <button type=\"button\" mat-icon-button matTooltip=\"Rilevanza\" aria-label=\"'Rilevanza'\"\r\n (click)=\"toggleRelevantsPane()\">\r\n <mat-icon>right_panel_open</mat-icon>\r\n </button>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n<mat-dialog-content id=\"clipper-document-scrollable\">\r\n <mat-drawer-container class=\"fill\" [hasBackdrop]=\"relevantsPaneHasBackdrop()\">\r\n <mat-drawer #relevantsPane position=\"end\" class=\"drawer-small drawer-with-loader\" opened=\"false\">\r\n @if (relevantsBusy()) {\r\n <div class=\"overlay\"></div>\r\n }\r\n <div fxLayout=\"column\" fxFill>\r\n <div fxFlex=\"6px\">\r\n @if (relevantsBusy()) {\r\n <mat-progress-bar style=\"z-index: 11;\" mode=\"indeterminate\">\r\n </mat-progress-bar>\r\n }\r\n </div>\r\n <div fxFlex=\"78px\" class=\"title-container-with-loader\">\r\n <div fxLayout=\"row\" fxLayoutAlign=\"start center\" fxFill>\r\n <div class=\"title\">Rilevanza</div>\r\n <div fxFlex=\"*\" fxLayoutAlign=\"end\">\r\n <button mat-icon-button (click)=\"toggleRelevantsPane()\"\r\n matTooltip=\"Nascondi\"><mat-icon>right_panel_close</mat-icon></button>\r\n </div>\r\n </div>\r\n </div>\r\n <div fxFlex=\"*\" class=\"relevants-container scroll-auto\">\r\n <div fxLayout=\"column\" fxFill>\r\n <div>\r\n <p>Parti del documento più significative per la ricerca di <span\r\n class='word-hit-chunk'>{{lastQuery}}</span>\r\n </p>\r\n </div>\r\n <div fxFlex=\"*\">\r\n <nav class=\"relevants-items\">\r\n <ul>\r\n @for (item of relevants().items; track $index) {\r\n <li class=\"small\" (click)=\"gotoRelevant(item)\" [attr.aria-label]=\"item.title\"\r\n [class.bright]=\"item.score > 0.75\" [class.accent]=\"item.score > 0.75\">\r\n <div fxLayout=\"row\" fxLayoutAlign=\"start start\" fxLayoutGap=\"10px\" fxFill>\r\n <div fxFlex=\"*\">\r\n {{item.title}}\r\n </div>\r\n <div fxLayoutAlign=\"end\">\r\n @if (item.score > 0.7) {\r\n <mat-icon style='font-size:x-small; height: 10px; width:10px'\r\n [matTooltip]=\"item.score > 0.75 ? 'Molto rilevante' : 'Più rilevante'\">thumb_up_alt</mat-icon>\r\n }\r\n </div>\r\n </div>\r\n </li>\r\n }\r\n </ul>\r\n </nav>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </mat-drawer>\r\n <div class=\"fill scroll-hidden\">\r\n <iframe #docIframe id=\"clipper-document-iframe\" class=\"iframe\"></iframe>\r\n </div>\r\n </mat-drawer-container>\r\n</mat-dialog-content>",
917
+ styles: [".fill,.wide{min-width:100%!important;max-width:100%!important;width:100%!important}.dialog-info{font-size:x-small;font-weight:700;text-align:right;padding:10px}.dialog-info-green,.dialog-info-ok{color:var(--ars-color-ok, #388E3C)}.dialog-info-red,.dialog-info-error{color:var(--mat-form-field-error-text-color, #a80710)}.dialog-header{padding-bottom:20px}.dialog-toolbar{padding:0 5px 0 24px;height:48px;min-height:48px}.dialog-close{margin-right:5px;margin-top:0}.dialog-menu{margin-left:10px;margin-top:10px}.dialog-title{padding:0 24px}.section-title{font-size:large;font-weight:600;padding-top:10px;padding-bottom:8px}.center{text-align:center}.fill{min-height:100%!important;max-height:100%!important;height:100%!important}.scroll-auto{overflow:auto;height:100%}.scroll-hidden{overflow:hidden;height:100%}b{font-weight:700}.large{font-size:large!important;line-height:1.2!important}.smaller{font-size:smaller!important;line-height:1.2!important}.small{font-size:small!important;line-height:1.2!important}.small-icon-button{width:1.5rem!important;height:1.5rem!important;padding:0!important;display:inline-flex!important;align-items:center;justify-content:center}.small-icon-button .mat-mdc-button-touch-target{width:1.5rem!important;height:1.5rem!important}.x-small{font-size:x-small!important;line-height:1.2!important}.bold{font-weight:700}.uppercase{text-transform:uppercase!important}.lowercase{text-transform:lowercase!important}.truncated{min-width:0;max-width:100%}@supports (-webkit-line-clamp: 2){.truncated{overflow:hidden;text-overflow:ellipsis;white-space:initial;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}}.truncated span,.truncated div{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@supports (-webkit-line-clamp: 2){.truncated span,.truncated div{overflow:hidden;text-overflow:ellipsis;white-space:initial;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}}.clipped{min-width:0;max-width:100%}.clipped span,.clipped div{white-space:nowrap;overflow:hidden;text-overflow:clip}.accent{color:var(--ars-color-accent, #7894ae)!important}.primary{color:var(--ars-color-primary, #00a293)!important}.secondary{color:var(--ars-color-secondary, #4a635f)!important}.error{color:var(--ars-color-error, #ff5449)!important}.success{color:var(--ars-color-ok, #388E3C)!important}.warning{color:var(--ars-color-warning, #FFC107)!important}.text{color:var(--ars-color-text, #191c1b)!important}.overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:10;background-color:var(--ars-color-overlay, rgba(255, 255, 255, .75))}.drawer-content{padding-top:10px}.drawer .title-container,.drawer .title-container-with-loader,.drawer-small .title-container,.drawer-small .title-container-with-loader{padding-right:5px;padding-bottom:20px;padding-left:0}.drawer .title-container,.drawer-small .title-container{padding-top:20px}.drawer .title-container-with-loader,.drawer-small .title-container-with-loader{padding-top:14px}.drawer .title,.drawer-small .title{font-size:19.2px!important;font-weight:600;padding-left:15px;min-width:150px;width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.drawer .accordion-panel,.drawer-small .accordion-panel{background-color:transparent!important}.drawer .accordion-header,.drawer-small .accordion-header{padding-left:10px;padding-right:10px;border-radius:var(--mat-expansion-container-shape)}.drawer .mat-expansion-panel-body,.drawer-small .mat-expansion-panel-body{padding-left:10px!important;padding-right:10px!important;padding-bottom:20px!important}@media screen and (min-width:0px)and (max-width:430px){.drawer,.drawer-small{border-radius:0!important;min-width:100%!important;max-width:100%!important}}@media screen and (min-width:431px){.drawer{min-width:420px!important;max-width:420px!important}.drawer .title{min-width:200px}.drawer .mat-expansion-panel-body{padding-left:15px!important;padding-right:15px!important;padding-bottom:20px!important}.drawer-small{min-width:360px!important;max-width:360px!important}}.drawer-with-loader{padding-top:0!important}.drawer-transparent{background-color:transparent}.fade-in{animation:fadein .5s linear}@keyframes fadein{0%{opacity:0}to{opacity:1}}.bright{filter:brightness(.7)!important}@media(prefers-color-scheme:dark){.dialog-info-green,.dialog-info-ok{color:var(--ars-color-ok, #4CAF50)}.dialog-info-red,.dialog-info-error{color:var(--mat-form-field-error-text-color, #ff5449)}b,.bold{font-weight:600}.bright{filter:brightness(1.5)!important}}.clipper-logo{background-size:110px 48px;width:110px;height:48px}.clipper-selection-button{width:150px;font-size:small;font-weight:600}.clipper-selection-icon-button{background-color:var(--ars-color-primary, #00a293);color:var(--ars-color-text-low, #e0e2e5)}.clipper-selection-icon-button:hover{background-color:var(--ars-color-primary-hi, #12c0ae)}.unread{color:var(--app-color-unread, #f7931c)!important}.unread-bg{background-color:var(--app-color-unread, #f7931c)!important}.expired{color:var(--app-color-expired, #ff5449)!important}.expired-bg{background-color:var(--app-color-expired, #ff5449)!important}.expiring{color:var(--app-color-expiring, #FFC107)!important}.expiring-bg{background-color:var(--app-color-expiring, #FFC107)!important}.closed{color:var(--app-color-closed, #388E3C)!important}.closed-bg{background-color:var(--app-color-closed, #388E3C)!important}.error-bg{background-color:var(--ars-color-error, #ff5449)!important}.popular-bg{background-color:var(--app-color-closed, #388E3C)!important}.very-popular-bg{background-color:#4caf50}.item-selected{background-color:var(--ars-item-selected-background-color, #ced1d2);border-radius:0!important}.item-unread{font-weight:bolder}.items-group-title{color:var(--ars-color-secondary, #4a635f);font-size:large;font-weight:700;padding-left:25px;padding-bottom:10px;padding-top:10px}.items-group-title .group-spaced{padding:10px 0 0!important}.items-footer{padding:10px}.item{border-radius:12px;padding:10px 10px 10px 0;min-height:68px!important;margin-bottom:2px}.item:hover{background-color:var(--ars-item-hover-background-color, #eaecef)}.item:hover .item-content{-webkit-mask-image:linear-gradient(to right,black 85%,transparent 100%);mask-image:linear-gradient(to right,black 85%,transparent 100%)}@media screen and (min-width:0px)and (max-width:430px){.item:hover{background-color:var(--ars-item-hover-background-color)}.item:hover .item-content{-webkit-mask-image:linear-gradient(to right,black 55%,transparent 100%);mask-image:linear-gradient(to right,black 55%,transparent 100%)}}.item-content .item-info-1,.item-content .info-1{font-size:x-small!important;font-weight:700!important;line-height:18px;text-transform:uppercase!important;color:var(--ars-color-accent, #7894ae)}.item-content .item-info-2,.item-content .info-2{font-size:x-small!important;font-weight:700!important;line-height:18px;text-transform:uppercase!important;color:var(--ars-color-accent-low, #456179)}.item-content .item-info-3,.item-content .info-3{font-size:x-small!important;font-weight:700!important;line-height:18px;text-transform:uppercase!important;color:var(--ars-color-error, #ff5449)}.item-content .item-title,.item-content .title{font-size:small!important;line-height:18px;text-decoration:none!important;font-weight:400;min-height:unset;min-width:unset;white-space:initial!important}@supports (-webkit-line-clamp: 3){.item-content .item-title,.item-content .title{overflow:hidden;text-overflow:ellipsis;white-space:initial;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}}.item-content .details{margin-top:4px;font-size:x-small!important;font-weight:700;line-height:15px;color:var(--ars-color-accent-low, #456179);text-transform:uppercase!important;border-left:4px solid var(--ars-color-accent-low, #456179);padding-left:10px}.item-content .details .links{text-transform:none;text-decoration:none}.item-content .details .links a,.item-content .details .links span,.item-content .details .links div{margin-right:8px;font-weight:500!important;font-size:11px!important;color:var(--ars-color-text, #191c1b)}.item-content .details .links a{cursor:pointer!important;color:var(--ars-color-link, #03A9F4);font-size:11px!important;font-weight:500!important}.item-content a.link{color:var(--ars-color-link, #03A9F4);cursor:pointer!important;text-decoration:none!important}.tile:hover{background-color:var(--ars-item-hover-background-color, #eaecef);border-radius:12px}.tile{cursor:pointer!important;padding:10px 13px!important;margin-bottom:20px!important}.tile .body{padding:4px 6px}.tile .image-mark{border-top:6px solid transparent;margin:0 8px}.tile .image-mark-unread{border-top-color:var(--app-color-unread, #f7931c);margin:0 8px}.tile .tile-image,.tile .image{height:125px;position:relative;background-color:transparent;overflow:hidden;display:flex;justify-content:center;align-items:center;border-radius:8px}.tile .tile-image img,.tile .image img{object-fit:cover;width:100%;height:100%}.tile .tile-image .tile-info-1,.tile .tile-image .info-1,.tile .image .tile-info-1,.tile .image .info-1{position:absolute;left:0;bottom:0;padding:4px 8px;background-color:var(--ars-color-overlay, rgba(255, 255, 255, .75));color:var(--ars-color-text, #191c1b);font-size:small!important;font-weight:700!important;text-transform:uppercase!important}.tile .tile-image .tile-info-2,.tile .tile-image .info-2,.tile .image .tile-info-2,.tile .image .info-2{position:absolute;right:0;top:0;padding:4px 8px;background-color:var(--ars-color-overlay, rgba(255, 255, 255, .75));color:var(--ars-color-accent, #7894ae);font-size:small!important;font-weight:700!important;text-transform:uppercase!important}.tile .tile-image .buttons,.tile .image .buttons{position:absolute;left:0;top:0;height:42px}.tile .tile-image .buttons .check,.tile .tile-image .buttons .read-button,.tile .image .buttons .check,.tile .image .buttons .read-button{background-color:var(--ars-color-primary, #00a293)!important;color:var(--ars-color-text-low, #e0e2e5)!important}.tile .tile-image .buttons .unread-button,.tile .image .buttons .unread-button{background-color:var(--app-color-unread, #f7931c)!important;color:var(--ars-color-text-low, #e0e2e5)!important}.tile .tile-image .buttons .check-selected,.tile .image .buttons .check-selected{background-color:var(--ars-color-primary-hi, #12c0ae)!important}.tile .tile-date,.tile .date{padding:8px 0 6px!important;font-weight:700!important;text-transform:uppercase!important}.tile .tile-date .date-day,.tile .date .date-day{color:var(--ars-color-accent, #7894ae)}.tile .tile-date .date-divider,.tile .date .date-divider{width:1px;margin:0 8px;border-left:1px solid var(--ars-color-divider, #757d87)}.tile .tile-time,.tile .time{font-size:small!important;font-weight:700!important}.tile .tile-title,.tile .title{text-decoration:none!important;font-size:16px!important;font-weight:600;min-height:50px!important;max-height:70px!important;min-width:100%;white-space:initial!important;overflow:hidden!important}@supports (-webkit-line-clamp: 3){.tile .tile-title,.tile .title{overflow:hidden;text-overflow:ellipsis;white-space:initial;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}}.stripe:hover{background-color:var(--ars-item-hover-background-color, #eaecef);border-radius:12px}.stripe{cursor:pointer!important;padding:5px 10px!important;margin-bottom:10px!important}.stripe .body{padding:5px 15px!important}.stripe .image-mark{min-height:100%!important;border-left:6px solid transparent;margin:8px 0}.stripe .image-mark-unread{min-height:100%!important;border-left-color:var(--ars-color-error, #ff5449)!important;margin:8px 0}.stripe .stripe-image,.stripe .image{width:150px!important;height:70px!important;position:relative;background-color:transparent;overflow:hidden;display:flex;justify-content:center;align-items:center;border-radius:8px}.stripe .stripe-image img,.stripe .image img{object-fit:cover;width:100%;height:100%}.stripe .stripe-info-1,.stripe .info-1{margin-top:8px;padding:4px 8px!important;background-color:var(--ars-color-overlay, rgba(255, 255, 255, .75))!important;color:var(--ars-color-text, #191c1b)!important;font-size:small!important;font-weight:700!important;text-transform:uppercase!important}.stripe .stripe-info-2,.stripe .info-2{margin-top:8px;padding:4px 8px!important;background-color:var(--ars-color-overlay, rgba(255, 255, 255, .75))!important;color:var(--ars-color-accent, #7894ae)!important;font-size:small!important;font-weight:700!important;text-transform:uppercase!important}.stripe .buttons{position:absolute;left:0;top:0;height:42px}.stripe .buttons .check,.stripe .buttons .read{background-color:var(--ars-color-primary, #00a293);color:var(--ars-color-text-low, #e0e2e5)}.stripe .buttons .check-selected{background-color:var(--ars-color-primary-hi, #12c0ae)}.stripe .stripe-date,.stripe .date{padding:0!important;font-weight:700!important;text-transform:uppercase!important}.stripe .stripe-date .date-day,.stripe .date .date-day{color:var(--ars-color-accent, #7894ae)}.stripe .stripe-date .date-divider,.stripe .date .date-divider{width:1px;margin:0 8px;border-left:1px solid var(--ars-color-divider, #757d87)}.stripe .stripe-time,.stripe .time{font-size:small!important;font-weight:700!important}.stripe .stripe-title,.stripe .title{text-decoration:none!important;font-size:16px!important;font-weight:600;min-width:100%;white-space:initial!important;overflow:hidden!important}@supports (-webkit-line-clamp: 3){.stripe .stripe-title,.stripe .title{overflow:hidden;text-overflow:ellipsis;white-space:initial;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}}.badge,.badge-red{margin-left:10px;padding:1px 4px;border-radius:3px;font-size:x-small;font-weight:600;text-align:center;background-color:#427505;text-transform:uppercase;white-space:nowrap;color:#e0e2e5}.badge-red{background-color:#a80710}.busy-backdrop{background-color:#0000006b!important}.legend-container{display:flex;flex-direction:row;align-items:center;font-size:x-small;text-transform:uppercase;font-weight:500;margin-left:10px}.legend-container .legend{display:inline-block;height:8px;width:8px;margin-right:4px}.legend-container .legend:not(:first-of-type){margin-left:10px}@media screen and (max-width:431px){.legend-container{font-size:9px!important}}.special-date,.special-date-expired,.special-date-expiring{border:2px var(--ars-color-accent, #7894ae) solid!important;border-radius:100%!important}.special-date-expired{border:2px var(--ars-color-error, #ff5449) solid!important}.special-date-expiring{border:2px var(--ars-color-warning, #FFC107) solid!important}.word-hit-chunk,.word-hit{display:inline-block;font-size:inherit;background-color:var(--ars-word-hit-background-color, #FFEB3B);color:var(--ars-word-hit-color, #191c1b);padding:0 4px;margin:0 4px;border-radius:4px}.word-hit-chunk{background-color:var(--ars-word-chunk-hit-background-color, #8AFF59);color:var(--ars-word-hit-chunk-color, #191c1b)}::ng-deep .mat-mdc-menu-panel{min-width:320px!important;max-width:320px!important}.title-container{padding-left:20px;padding-top:14px}.title-container .title{font-size:large}@supports (-webkit-line-clamp: 2){.title-container .title{overflow:hidden;text-overflow:ellipsis;white-space:initial;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}}.dialog-close{margin-right:10px;margin-top:4px}.iframe{width:100%;height:100%;border:0}.relevants-container{padding:0 20px 10px}.relevants-items{padding:0;margin:0}.relevants-items ul{list-style-type:none;padding:0;margin:0}.relevants-items ul li{font-size:small;padding:6px 12px;display:block;color:var(--ars-color-text, #191c1b)}.relevants-items ul li a{color:inherit;text-decoration:none;display:block}.relevants-items ul li:hover{background-color:var(--ars-item-hover-background-color, #eaecef);border-radius:6px;cursor:pointer}.mat-mdc-dialog-content{max-height:unset!important;padding:0 0 16px!important}\n"]
918
+ }]
919
+ }],
920
+ ctorParameters: () => [],
921
+ propDecorators: {
922
+ relevantsPane: [{
923
+ type: i0.ViewChild,
924
+ args: ["relevantsPane", { isSignal: true }]
925
+ }],
926
+ iframeRef: [{
927
+ type: i0.ViewChild,
928
+ args: ["docIframe", { isSignal: true }]
929
+ }],
930
+ closing: [{
931
+ type: i0.Output,
932
+ args: ["closing"]
933
+ }],
934
+ opening: [{
935
+ type: i0.Output,
936
+ args: ["opening"]
937
+ }]
938
+ }
939
+ });
940
+ export { ClipperDocumentComponent };
941
+
942
+ //# sourceMappingURL=arsedizioni-ars-utils-clipper.ui-document.component-BjMnaZGf.mjs.map