@arsedizioni/ars-utils 21.2.1 → 21.2.102

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. package/fesm2022/arsedizioni-ars-utils-clipper.ui.mjs +780 -799
  2. package/fesm2022/arsedizioni-ars-utils-clipper.ui.mjs.map +1 -1
  3. package/fesm2022/arsedizioni-ars-utils-core.mjs +63 -98
  4. package/fesm2022/arsedizioni-ars-utils-core.mjs.map +1 -1
  5. package/fesm2022/arsedizioni-ars-utils-support.ui.mjs +6 -9
  6. package/fesm2022/arsedizioni-ars-utils-support.ui.mjs.map +1 -1
  7. package/fesm2022/arsedizioni-ars-utils-ui.application.mjs +49 -97
  8. package/fesm2022/arsedizioni-ars-utils-ui.application.mjs.map +1 -1
  9. package/fesm2022/arsedizioni-ars-utils-ui.mjs +160 -256
  10. package/fesm2022/arsedizioni-ars-utils-ui.mjs.map +1 -1
  11. package/fesm2022/arsedizioni-ars-utils-ui.oauth.mjs +6 -9
  12. package/fesm2022/arsedizioni-ars-utils-ui.oauth.mjs.map +1 -1
  13. package/package.json +1 -1
  14. package/types/arsedizioni-ars-utils-clipper.common.d.ts.map +1 -0
  15. package/types/arsedizioni-ars-utils-clipper.ui.d.ts +15 -20
  16. package/types/arsedizioni-ars-utils-clipper.ui.d.ts.map +1 -0
  17. package/types/arsedizioni-ars-utils-core.d.ts +37 -49
  18. package/types/arsedizioni-ars-utils-core.d.ts.map +1 -0
  19. package/types/arsedizioni-ars-utils-evolution.common.d.ts.map +1 -0
  20. package/types/arsedizioni-ars-utils-help.d.ts.map +1 -0
  21. package/types/arsedizioni-ars-utils-support.common.d.ts.map +1 -0
  22. package/types/arsedizioni-ars-utils-support.ui.d.ts +3 -4
  23. package/types/arsedizioni-ars-utils-support.ui.d.ts.map +1 -0
  24. package/types/arsedizioni-ars-utils-tinymce.d.ts.map +1 -0
  25. package/types/arsedizioni-ars-utils-ui.application.d.ts +50 -73
  26. package/types/arsedizioni-ars-utils-ui.application.d.ts.map +1 -0
  27. package/types/arsedizioni-ars-utils-ui.d.ts +76 -104
  28. package/types/arsedizioni-ars-utils-ui.d.ts.map +1 -0
  29. package/types/arsedizioni-ars-utils-ui.oauth.d.ts +3 -4
  30. package/types/arsedizioni-ars-utils-ui.oauth.d.ts.map +1 -0
  31. package/types/arsedizioni-ars-utils.d.ts.map +1 -0
@@ -1,11 +1,12 @@
1
1
  import { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';
2
2
  import * as i0 from '@angular/core';
3
- import { viewChild, output, inject, ChangeDetectorRef, signal, ChangeDetectionStrategy, Component, Renderer2, input, Injector, runInInjectionContext, computed } from '@angular/core';
3
+ import { viewChild, output, inject, ChangeDetectorRef, signal, ChangeDetectionStrategy, Component, Renderer2, DestroyRef, input, Injector, runInInjectionContext, computed } from '@angular/core';
4
+ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
4
5
  import * as i1$2 from '@angular/forms';
5
6
  import { FormsModule } from '@angular/forms';
6
7
  import * as i8$1 from '@angular/material/badge';
7
8
  import { MatBadgeModule, MatBadge } from '@angular/material/badge';
8
- import * as i2$1 from '@angular/material/button';
9
+ import * as i5 from '@angular/material/button';
9
10
  import { MatButtonModule } from '@angular/material/button';
10
11
  import * as i1$1 from '@angular/material/checkbox';
11
12
  import { MatCheckboxModule } from '@angular/material/checkbox';
@@ -20,38 +21,38 @@ import * as i7 from '@angular/material/progress-bar';
20
21
  import { MatProgressBarModule } from '@angular/material/progress-bar';
21
22
  import * as i8 from '@angular/material/sidenav';
22
23
  import { MatSidenavModule } from '@angular/material/sidenav';
23
- import * as i5 from '@angular/material/slide-toggle';
24
+ import * as i5$1 from '@angular/material/slide-toggle';
24
25
  import { MatSlideToggleModule } from '@angular/material/slide-toggle';
25
26
  import * as i3 from '@angular/material/tooltip';
26
27
  import { MatTooltipModule } from '@angular/material/tooltip';
27
- import { ClipperService, ClipperMessages, ClipperModel, ClipperQueryReferencesMode, ClipperModule, ClipperUtils, ClipperSearchUtils, ClipperSearchParams, ClipperSearchFacetsSnapshot, ClipperFacet, ClipperSelectionMode, ClipperSearchResult, ClipperSort, ClipperQueryDocumentFlags, ClipperSources, ClipperDocumentChangeReasons, ClipperChannel, ClipperSectors, ClipperRegions, ClipperAuthors, ClipperSectorTypes } from '@arsedizioni/ars-utils/clipper.common';
28
+ import { ClipperService, ClipperMessages, ClipperModel, ClipperQueryReferencesMode, ClipperModule, ClipperUtils, ClipperSearchUtils, ClipperSearchParams, ClipperSelectionMode, ClipperSearchResult, ClipperSort, ClipperQueryDocumentFlags, ClipperSearchFacetsSnapshot, ClipperFacet, ClipperSources, ClipperDocumentChangeReasons, ClipperChannel, ClipperSectors, ClipperRegions, ClipperAuthors, ClipperSectorTypes } from '@arsedizioni/ars-utils/clipper.common';
28
29
  import * as i19 from '@arsedizioni/ars-utils/core';
29
- import { SystemUtils, BroadcastService, SafeUrlPipe, DateInterval, ThemeService, ScreenService, DateFormat, FormatPipe, SelectableModel, ArsCoreModule } from '@arsedizioni/ars-utils/core';
30
+ import { SystemUtils, BroadcastService, SafeUrlPipe, ThemeService, ScreenService, DateFormat, FormatPipe, SelectableModel, DateInterval, ArsCoreModule } from '@arsedizioni/ars-utils/core';
30
31
  import { FlexLayoutModule, FlexModule } from '@ngbracket/ngx-layout';
31
- import { takeUntil as takeUntil$1, finalize as finalize$1 } from 'rxjs/operators';
32
- import { startOfToday, subDays, endOfDay, startOfMonth, endOfMonth, startOfDay } from 'date-fns';
33
- import { finalize, Subject, takeUntil } from 'rxjs';
32
+ import { finalize as finalize$1 } from 'rxjs/operators';
33
+ import { startOfToday, startOfDay, subDays, endOfDay, startOfMonth, endOfMonth } from 'date-fns';
34
34
  import { DialogService } from '@arsedizioni/ars-utils/ui';
35
35
  import { MatDividerModule } from '@angular/material/divider';
36
36
  import { Router } from '@angular/router';
37
- import { ApplicationDialogService, SendToDialogComponent, FilePreviewComponent, CalendarEmptyHeader, ChipsSelectorComponent, ButtonSelectorComponent, ButtonToggleComponent } from '@arsedizioni/ars-utils/ui.application';
37
+ import { ApplicationDialogService, SendToDialogComponent, FilePreviewComponent, ChipsSelectorComponent, ButtonSelectorComponent, ButtonToggleComponent, CalendarEmptyHeader } from '@arsedizioni/ars-utils/ui.application';
38
38
  import { NgStyle } from '@angular/common';
39
39
  import * as i2 from '@angular/material/list';
40
40
  import { MatListModule } from '@angular/material/list';
41
+ import { finalize } from 'rxjs';
41
42
  import * as i1 from '@ngbracket/ngx-layout/flex';
42
43
  import { FlexModule as FlexModule$1 } from '@ngbracket/ngx-layout/flex';
43
44
  import { Clipboard } from '@angular/cdk/clipboard';
44
45
  import saveAs from 'file-saver';
45
- import * as i2$2 from '@ngbracket/ngx-layout/extended';
46
- import * as i9 from '@angular/material/expansion';
47
- import { MatExpansionModule } from '@angular/material/expansion';
46
+ import * as i2$1 from '@ngbracket/ngx-layout/extended';
48
47
  import * as i16 from '@angular/material/chips';
49
48
  import { MatChipsModule } from '@angular/material/chips';
50
- import * as i14 from '@angular/material/datepicker';
51
- import { MatCalendar, MatDatepickerModule } from '@angular/material/datepicker';
49
+ import * as i9 from '@angular/material/expansion';
50
+ import { MatExpansionModule } from '@angular/material/expansion';
52
51
  import * as i7$1 from '@angular/cdk/scrolling';
53
52
  import { ScrollDispatcher, ScrollingModule } from '@angular/cdk/scrolling';
54
53
  import { MatButtonToggleModule } from '@angular/material/button-toggle';
54
+ import * as i14 from '@angular/material/datepicker';
55
+ import { MatDatepickerModule, MatCalendar } from '@angular/material/datepicker';
55
56
  import * as i3$1 from '@angular/material/form-field';
56
57
  import { MatFormFieldModule } from '@angular/material/form-field';
57
58
  import * as i4$1 from '@angular/material/input';
@@ -141,7 +142,7 @@ class ClipperDocumentIndexComponent {
141
142
  }
142
143
  }
143
144
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ClipperDocumentIndexComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
144
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: ClipperDocumentIndexComponent, isStandalone: true, selector: "ng-component", outputs: { done: "done" }, host: { attributes: { "Bind": SystemUtils.generateUUID() } }, viewQueries: [{ propertyName: "selection", first: true, predicate: ["selection"], descendants: true, isSignal: true }], ngImport: i0, template: "<h2 mat-dialog-title>Indice</h2>\r\n<mat-dialog-content>\r\n @if (!items || items.length === 0) {\r\n <div>\r\n <p class=\"message\"><i>Nessun elemento da visualizzare.</i></p>\r\n </div>\r\n } @else {\r\n <mat-selection-list dense #selection (selectionChange)=\"select();\" [multiple]=\"dialogData.multiple\"\r\n hideSingleSelectionIndicator=\"true\">\r\n @for (item of items; track $index) {\r\n @if (item.type > 4) {\r\n <div class=\"small uppercase truncated accent\" style=\"display: flex; align-items: center; min-height: 36px;\">\r\n <div><b>{{item.description}}</b></div>\r\n </div>\r\n } @else {\r\n <mat-list-option [selected]=\"false\" [value]=\"item\" (click)=\"use(item)\">\r\n <div fxLayout=\"row\" fxLayoutGap=\"10px\" fxFill>\r\n <div [fxFlex]=\"(10 * item.level) + 'px'\"></div>\r\n <div fxFlex=\"*\" class=\"truncated\">\r\n <div class=\"small\" [matTooltip]=\"item.description\">{{item.description}}</div>\r\n </div>\r\n </div>\r\n </mat-list-option>\r\n }\r\n }\r\n </mat-selection-list>\r\n }\r\n</mat-dialog-content>\r\n<mat-dialog-actions>\r\n <div fxLayout=\"row\" fxLayoutAlign=\"end\" fxFill>\r\n @if (dialogData.multiple) {\r\n <button mat-flat-button [disabled]=\"okDisabled()\" (click)=\"use()\">Usa</button>\r\n }\r\n <button mat-stroked-button [mat-dialog-close]=\"true\" >Chiudi</button>\r\n </div>\r\n</mat-dialog-actions>", styles: [""], dependencies: [{ kind: "ngmodule", type: FlexLayoutModule }, { kind: "directive", type: i1.DefaultLayoutDirective, 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]", inputs: ["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"] }, { kind: "directive", type: i1.DefaultLayoutGapDirective, 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]", inputs: ["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"] }, { kind: "directive", type: i1.DefaultLayoutAlignDirective, 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]", inputs: ["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"] }, { kind: "directive", type: i1.FlexFillDirective, selector: "[fxFill], [fxFlexFill]" }, { kind: "directive", type: i1.DefaultFlexDirective, 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]", inputs: ["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"] }, { kind: "directive", type: MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "ngmodule", type: MatListModule }, { kind: "component", type: i2.MatSelectionList, selector: "mat-selection-list", inputs: ["color", "compareWith", "multiple", "hideSingleSelectionIndicator", "disabled"], outputs: ["selectionChange"], exportAs: ["matSelectionList"] }, { kind: "component", type: i2.MatListOption, selector: "mat-list-option", inputs: ["togglePosition", "checkboxPosition", "color", "value", "selected"], outputs: ["selectedChange"], exportAs: ["matListOption"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2$1.MatButton, 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] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
145
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: ClipperDocumentIndexComponent, isStandalone: true, selector: "ng-component", outputs: { done: "done" }, host: { attributes: { "Bind": SystemUtils.generateUUID() } }, viewQueries: [{ propertyName: "selection", first: true, predicate: ["selection"], descendants: true, isSignal: true }], ngImport: i0, template: "<h2 mat-dialog-title>Indice</h2>\r\n<mat-dialog-content>\r\n @if (!items || items.length === 0) {\r\n <div>\r\n <p class=\"message\"><i>Nessun elemento da visualizzare.</i></p>\r\n </div>\r\n } @else {\r\n <mat-selection-list dense #selection (selectionChange)=\"select();\" [multiple]=\"dialogData.multiple\"\r\n hideSingleSelectionIndicator=\"true\">\r\n @for (item of items; track $index) {\r\n @if (item.type > 4) {\r\n <div class=\"small uppercase truncated accent\" style=\"display: flex; align-items: center; min-height: 36px;\">\r\n <div><b>{{item.description}}</b></div>\r\n </div>\r\n } @else {\r\n <mat-list-option [selected]=\"false\" [value]=\"item\" (click)=\"use(item)\">\r\n <div fxLayout=\"row\" fxLayoutGap=\"10px\" fxFill>\r\n <div [fxFlex]=\"(10 * item.level) + 'px'\"></div>\r\n <div fxFlex=\"*\" class=\"truncated\">\r\n <div class=\"small\" [matTooltip]=\"item.description\">{{item.description}}</div>\r\n </div>\r\n </div>\r\n </mat-list-option>\r\n }\r\n }\r\n </mat-selection-list>\r\n }\r\n</mat-dialog-content>\r\n<mat-dialog-actions>\r\n <div fxLayout=\"row\" fxLayoutAlign=\"end\" fxFill>\r\n @if (dialogData.multiple) {\r\n <button mat-flat-button [disabled]=\"okDisabled()\" (click)=\"use()\">Usa</button>\r\n }\r\n <button mat-stroked-button [mat-dialog-close]=\"true\" >Chiudi</button>\r\n </div>\r\n</mat-dialog-actions>", styles: [""], dependencies: [{ kind: "ngmodule", type: FlexLayoutModule }, { kind: "directive", type: i1.DefaultLayoutDirective, 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]", inputs: ["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"] }, { kind: "directive", type: i1.DefaultLayoutGapDirective, 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]", inputs: ["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"] }, { kind: "directive", type: i1.DefaultLayoutAlignDirective, 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]", inputs: ["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"] }, { kind: "directive", type: i1.FlexFillDirective, selector: "[fxFill], [fxFlexFill]" }, { kind: "directive", type: i1.DefaultFlexDirective, 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]", inputs: ["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"] }, { kind: "directive", type: MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "ngmodule", type: MatListModule }, { kind: "component", type: i2.MatSelectionList, selector: "mat-selection-list", inputs: ["color", "compareWith", "multiple", "hideSingleSelectionIndicator", "disabled"], outputs: ["selectionChange"], exportAs: ["matSelectionList"] }, { kind: "component", type: i2.MatListOption, selector: "mat-list-option", inputs: ["togglePosition", "checkboxPosition", "color", "value", "selected"], outputs: ["selectedChange"], exportAs: ["matListOption"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i5.MatButton, 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] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
145
146
  }
146
147
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ClipperDocumentIndexComponent, decorators: [{
147
148
  type: Component,
@@ -638,7 +639,7 @@ class ClipperDocumentMenuComponent {
638
639
  this.aiAssistantMenuTrigger
639
640
  ];
640
641
  this.renderer2 = inject(Renderer2);
641
- this.unsubscribe = new Subject();
642
+ this.destroyRef = inject(DestroyRef);
642
643
  this.changeDetector = inject(ChangeDetectorRef);
643
644
  this.clipperService = inject(ClipperService);
644
645
  this.useSelections = input(false, ...(ngDevMode ? [{ debugName: "useSelections" }] : []));
@@ -731,16 +732,12 @@ class ClipperDocumentMenuComponent {
731
732
  ngOnInit() {
732
733
  if (this.selectionSource() === "selection") {
733
734
  this.parent()?.selection?.changed
734
- .pipe(takeUntil(this.unsubscribe))
735
+ .pipe(takeUntilDestroyed(this.destroyRef))
735
736
  .subscribe(() => {
736
737
  this.changeDetector.markForCheck();
737
738
  });
738
739
  }
739
740
  }
740
- ngOnDestroy() {
741
- this.unsubscribe.next();
742
- this.unsubscribe.complete();
743
- }
744
741
  /**
745
742
  * Get a single selection
746
743
  * @returns the single selection or null
@@ -857,7 +854,7 @@ class ClipperDocumentComponent extends ClipperDocumentManager {
857
854
  this.relevantsPane = viewChild.required('relevantsPane');
858
855
  this.closing = output();
859
856
  this.opening = output();
860
- this.unsubscribe = new Subject();
857
+ this.destroyRef = inject(DestroyRef);
861
858
  this.injector = inject(Injector);
862
859
  this.changeDetector = inject(ChangeDetectorRef);
863
860
  this.breakpointObserver = inject(BreakpointObserver);
@@ -952,7 +949,7 @@ class ClipperDocumentComponent extends ClipperDocumentManager {
952
949
  Breakpoints.Large,
953
950
  Breakpoints.XLarge,
954
951
  ])
955
- .pipe(takeUntil$1(this.unsubscribe))
952
+ .pipe(takeUntilDestroyed(this.destroyRef))
956
953
  .subscribe(result => {
957
954
  for (const query of Object.keys(result.breakpoints)) {
958
955
  if (result.breakpoints[query]) {
@@ -962,8 +959,6 @@ class ClipperDocumentComponent extends ClipperDocumentManager {
962
959
  });
963
960
  }
964
961
  ngOnDestroy() {
965
- this.unsubscribe.next();
966
- this.unsubscribe.complete();
967
962
  if (this.rendererListener1) {
968
963
  this.rendererListener1();
969
964
  }
@@ -1549,7 +1544,7 @@ class ClipperDocumentComponent extends ClipperDocumentManager {
1549
1544
  }
1550
1545
  }
1551
1546
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ClipperDocumentComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1552
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: ClipperDocumentComponent, isStandalone: true, selector: "ng-component", outputs: { closing: "closing", opening: "opening" }, host: { attributes: { "Bind": SystemUtils.generateUUID() } }, viewQueries: [{ propertyName: "relevantsPane", first: true, predicate: ["relevantsPane"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, 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 && 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 && 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 && (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\" [canUseArchive]=\"dialogData.canUseArchive ?? false\"\r\n [isLawInForce]=\"lastDocument?.model === 9\" selectionSource=\"none\"\r\n [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\u00F9 significative per la ricerca di <span 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\"\r\n [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\u00F9 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 id=\"clipper-document-iframe\" class=\"iframe\" [src]=\"url() | safeUrl\"></iframe>\r\n </div>\r\n </mat-drawer-container>\r\n</mat-dialog-content>", styles: [".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-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}.wide{min-width:100%!important;max-width:100%!important;width:100%!important}.fill{min-width:100%!important;max-width:100%!important;width:100%!important;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}.smaller{font-size:smaller!important}.small{font-size:small!important;line-height:16px!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:14px!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-small .title-container{padding:20px 5px 20px 0}.drawer .title-container-with-loader,.drawer-small .title-container-with-loader{padding:14px 5px 20px 0}.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}.expired{color:var(--app-color-expired, #ff5449)!important}.expiring{color:var(--app-color-warning, #FFC107)!important}.closed{color:var(--app-color-closed, #388E3C)!important}.unread-bg{background-color:var(--app-color-unread, #f7931c)!important}.error-bg{background-color:var(--ars-color-error, #ff5449)!important}.expired-bg{background-color:var(--app-color-expired, #ff5449)!important}.expiring-bg{background-color:var(--app-color-expiring, #FFC107)!important}.popular-bg,.closed-bg{background-color:var(--ars-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:600!important;color:var(--ars-color-text, #191c1b)}.item-content .details .links a{cursor:pointer!important;color:var(--ars-color-link, #03A9F4);font-weight:600!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-accent, #7894ae)}.tile .tile-date .date-divider,.tile .date .date-divider{width:1px;margin:0 8px;border-left:1px solid var(--ars-color-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-accent, #7894ae)}.stripe .stripe-date .date-divider,.stripe .date .date-divider{width:1px;margin:0 8px;border-left:1px solid var(--ars-color-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!important}\n"], dependencies: [{ kind: "ngmodule", type: FlexLayoutModule }, { kind: "directive", type: i1.DefaultLayoutDirective, 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]", inputs: ["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"] }, { kind: "directive", type: i1.DefaultLayoutGapDirective, 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]", inputs: ["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"] }, { kind: "directive", type: i1.DefaultLayoutAlignDirective, 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]", inputs: ["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"] }, { kind: "directive", type: i1.FlexFillDirective, selector: "[fxFill], [fxFlexFill]" }, { kind: "directive", type: i1.DefaultFlexAlignDirective, 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]", inputs: ["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"] }, { kind: "directive", type: i1.DefaultFlexDirective, 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]", inputs: ["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"] }, { kind: "directive", type: i2$2.DefaultShowHideDirective, selector: " [fxShow], [fxShow.print], [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], [fxHide.print], [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]", inputs: ["fxShow", "fxShow.print", "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", "fxHide.print", "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"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2$1.MatButton, 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] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i2$1.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i6.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i6.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i6.MatMenuContent, selector: "ng-template[matMenuContent]" }, { kind: "directive", type: i6.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "ngmodule", type: MatDividerModule }, { kind: "ngmodule", type: MatProgressBarModule }, { kind: "component", type: i7.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "directive", type: MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "ngmodule", type: MatSidenavModule }, { kind: "component", type: i8.MatDrawer, selector: "mat-drawer", inputs: ["position", "mode", "disableClose", "autoFocus", "opened"], outputs: ["openedChange", "opened", "openedStart", "closed", "closedStart", "positionChanged"], exportAs: ["matDrawer"] }, { kind: "component", type: i8.MatDrawerContainer, selector: "mat-drawer-container", inputs: ["autosize", "hasBackdrop"], outputs: ["backdropClick"], exportAs: ["matDrawerContainer"] }, { kind: "component", type: ClipperDocumentMenuComponent, selector: "clipper-document-menu", inputs: ["useSelections", "selectionSource", "parent", "item", "isReference", "isReadable", "isReadableModel", "isLawInForce", "canPrint", "canFind", "canUseCalendar", "canUseArchive", "canUseAIAssistant", "canUseRS", "canOpenDocument"] }, { kind: "pipe", type: SafeUrlPipe, name: "safeUrl" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1547
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: ClipperDocumentComponent, isStandalone: true, selector: "ng-component", outputs: { closing: "closing", opening: "opening" }, host: { attributes: { "Bind": SystemUtils.generateUUID() } }, viewQueries: [{ propertyName: "relevantsPane", first: true, predicate: ["relevantsPane"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, 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 && 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 && 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 && (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\" [canUseArchive]=\"dialogData.canUseArchive ?? false\"\r\n [isLawInForce]=\"lastDocument?.model === 9\" selectionSource=\"none\"\r\n [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\u00F9 significative per la ricerca di <span 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\"\r\n [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\u00F9 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 id=\"clipper-document-iframe\" class=\"iframe\" [src]=\"url() | safeUrl\"></iframe>\r\n </div>\r\n </mat-drawer-container>\r\n</mat-dialog-content>", styles: [".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-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}.wide{min-width:100%!important;max-width:100%!important;width:100%!important}.fill{min-width:100%!important;max-width:100%!important;width:100%!important;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}.smaller{font-size:smaller!important}.small{font-size:small!important;line-height:16px!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:14px!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-small .title-container{padding:20px 5px 20px 0}.drawer .title-container-with-loader,.drawer-small .title-container-with-loader{padding:14px 5px 20px 0}.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}.expired{color:var(--app-color-expired, #ff5449)!important}.expiring{color:var(--app-color-warning, #FFC107)!important}.closed{color:var(--app-color-closed, #388E3C)!important}.unread-bg{background-color:var(--app-color-unread, #f7931c)!important}.error-bg{background-color:var(--ars-color-error, #ff5449)!important}.expired-bg{background-color:var(--app-color-expired, #ff5449)!important}.expiring-bg{background-color:var(--app-color-expiring, #FFC107)!important}.popular-bg,.closed-bg{background-color:var(--ars-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:600!important;color:var(--ars-color-text, #191c1b)}.item-content .details .links a{cursor:pointer!important;color:var(--ars-color-link, #03A9F4);font-weight:600!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-accent, #7894ae)}.tile .tile-date .date-divider,.tile .date .date-divider{width:1px;margin:0 8px;border-left:1px solid var(--ars-color-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-accent, #7894ae)}.stripe .stripe-date .date-divider,.stripe .date .date-divider{width:1px;margin:0 8px;border-left:1px solid var(--ars-color-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!important}\n"], dependencies: [{ kind: "ngmodule", type: FlexLayoutModule }, { kind: "directive", type: i1.DefaultLayoutDirective, 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]", inputs: ["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"] }, { kind: "directive", type: i1.DefaultLayoutGapDirective, 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]", inputs: ["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"] }, { kind: "directive", type: i1.DefaultLayoutAlignDirective, 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]", inputs: ["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"] }, { kind: "directive", type: i1.FlexFillDirective, selector: "[fxFill], [fxFlexFill]" }, { kind: "directive", type: i1.DefaultFlexAlignDirective, 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]", inputs: ["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"] }, { kind: "directive", type: i1.DefaultFlexDirective, 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]", inputs: ["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"] }, { kind: "directive", type: i2$1.DefaultShowHideDirective, selector: " [fxShow], [fxShow.print], [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], [fxHide.print], [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]", inputs: ["fxShow", "fxShow.print", "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", "fxHide.print", "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"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i5.MatButton, 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] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i5.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i6.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i6.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i6.MatMenuContent, selector: "ng-template[matMenuContent]" }, { kind: "directive", type: i6.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "ngmodule", type: MatDividerModule }, { kind: "ngmodule", type: MatProgressBarModule }, { kind: "component", type: i7.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "directive", type: MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "ngmodule", type: MatSidenavModule }, { kind: "component", type: i8.MatDrawer, selector: "mat-drawer", inputs: ["position", "mode", "disableClose", "autoFocus", "opened"], outputs: ["openedChange", "opened", "openedStart", "closed", "closedStart", "positionChanged"], exportAs: ["matDrawer"] }, { kind: "component", type: i8.MatDrawerContainer, selector: "mat-drawer-container", inputs: ["autosize", "hasBackdrop"], outputs: ["backdropClick"], exportAs: ["matDrawerContainer"] }, { kind: "component", type: ClipperDocumentMenuComponent, selector: "clipper-document-menu", inputs: ["useSelections", "selectionSource", "parent", "item", "isReference", "isReadable", "isReadableModel", "isLawInForce", "canPrint", "canFind", "canUseCalendar", "canUseArchive", "canUseAIAssistant", "canUseRS", "canOpenDocument"] }, { kind: "pipe", type: SafeUrlPipe, name: "safeUrl" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1553
1548
  }
1554
1549
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ClipperDocumentComponent, decorators: [{
1555
1550
  type: Component,
@@ -1628,873 +1623,754 @@ class ClipperDocumentsUtils {
1628
1623
  }
1629
1624
  }
1630
1625
 
1631
- class ClipperSearchCalendarComponent {
1626
+ class ClipperSearchResultManager extends ClipperDocumentManager {
1632
1627
  constructor() {
1633
- this.calendar = viewChild.required('calendar');
1634
- this.changed = output();
1628
+ super(...arguments);
1629
+ this.paginator = viewChild('paginator', ...(ngDevMode ? [{ debugName: "paginator" }] : []));
1630
+ this.facets = viewChild('facets', ...(ngDevMode ? [{ debugName: "facets" }] : []));
1631
+ this.calendar = viewChild('calendar', ...(ngDevMode ? [{ debugName: "calendar" }] : []));
1632
+ this.destroyRef = inject(DestroyRef);
1635
1633
  this.changeDetector = inject(ChangeDetectorRef);
1636
- this.busy = signal(false, ...(ngDevMode ? [{ debugName: "busy" }] : []));
1637
- this.months = signal(undefined, ...(ngDevMode ? [{ debugName: "months" }] : []));
1638
- this.calendarEmptyHeader = CalendarEmptyHeader;
1639
- this.calendarDate = startOfToday();
1640
- this.calendarDateClass = (cellDate) => {
1641
- if (!this.calendarSpecialDays)
1642
- return '';
1643
- if (this.calendarSpecialDays[cellDate.getDate() - 1] > 0) {
1644
- if (cellDate < startOfToday())
1645
- return 'special-date-expired';
1646
- else if (subDays(cellDate, 15) <= startOfToday())
1647
- return 'special-date-expiring';
1648
- else
1649
- return 'special-date';
1650
- }
1651
- return '';
1652
- };
1653
- this.calendarDateFilter = (cellDate) => {
1654
- return this.canFilter() && this.calendarSpecialDays != null && this.calendarSpecialDays[cellDate.getDate() - 1] > 0;
1634
+ this.breakpointObserver = inject(BreakpointObserver);
1635
+ this.themeService = inject(ThemeService);
1636
+ this.injector = inject(Injector);
1637
+ this.screenService = inject(ScreenService);
1638
+ this.dialogService = inject(ApplicationDialogService);
1639
+ this.selectionMode = signal(ClipperSelectionMode.None, ...(ngDevMode ? [{ debugName: "selectionMode" }] : []));
1640
+ this.snapshot = new ClipperSearchResult();
1641
+ this.filterBusy = signal(false, ...(ngDevMode ? [{ debugName: "filterBusy" }] : []));
1642
+ this.filterParams = new ClipperSearchParams();
1643
+ this.filterPaneHasBackdrop = false;
1644
+ this.filterPaneClosed = false;
1645
+ this.filterPane2HasBackdrop = false;
1646
+ this.filterPane2Closed = false;
1647
+ this.sortOptions = [];
1648
+ this.scrollPos = 0;
1649
+ this.scrollerId = 'scroller_' + SystemUtils.generateUUID();
1650
+ this.hasFacets = signal(false, ...(ngDevMode ? [{ debugName: "hasFacets" }] : []));
1651
+ this.hasRegions = () => {
1652
+ return (this.filterParams.sectors?.filter(n => n.value === 'LR').length ?? 0) > 0;
1655
1653
  };
1656
- this.canFilter = input(false, ...(ngDevMode ? [{ debugName: "canFilter" }] : []));
1657
1654
  }
1658
1655
  /**
1659
- * Update calendar
1660
- * @param month : the month snapshot
1661
- * @param months : the months snapshot
1662
- * @param date : the new current date
1656
+ * Update menu buttons visibility when the menu is closed
1663
1657
  */
1664
- update(month, months, date = startOfToday()) {
1665
- if (months?.months) {
1666
- this.months.set(months.months);
1667
- }
1668
- if (month && month.months && month.months.length > 0) {
1669
- this.calendarSpecialDays = month.months[0].days;
1670
- }
1671
- const calendar = this.calendar();
1672
- if (calendar) {
1673
- calendar.activeDate = date;
1674
- calendar.selected = date;
1675
- calendar.updateTodaysDate();
1658
+ updateMenuButtonsVisibility() {
1659
+ if (this.snapshot) {
1660
+ this.snapshot.items?.forEach(n => {
1661
+ n.isMenuOpen = false;
1662
+ });
1676
1663
  }
1677
- this.calendarDate = date;
1678
- this.changeDetector.markForCheck();
1679
1664
  }
1680
1665
  /**
1681
- * Filter by date
1682
- * @param date : the date to filter to or "month" to filter by the whole month.
1666
+ * Scroll on top o list area
1667
+ * @param top: the top position
1683
1668
  */
1684
- filterByDate(date) {
1685
- if (date === 'month') {
1686
- if (this.calendarDate) {
1687
- const today = new Date();
1688
- const start = endOfDay(startOfMonth(this.calendarDate));
1689
- const end = endOfMonth(this.calendarDate);
1690
- this.changed.emit(new DateInterval(start, end));
1691
- if (start <= today && end >= today) {
1692
- const calendar = this.calendar();
1693
- calendar.selected = today;
1694
- calendar.updateTodaysDate();
1695
- }
1696
- }
1669
+ scroll(top = 0) {
1670
+ const elem = document.getElementById(this.scrollerId);
1671
+ if (elem) {
1672
+ elem.scrollTo({ top: top, left: 0, behavior: 'auto' });
1697
1673
  }
1698
- else if (date) {
1699
- this.changed.emit(new DateInterval(endOfDay(date), endOfDay(date)));
1700
- this.calendarDate = date;
1701
- const calendar = this.calendar();
1702
- calendar.selected = date;
1703
- calendar.updateTodaysDate();
1674
+ }
1675
+ /**
1676
+ * Check if every element are selected
1677
+ */
1678
+ allSelected() {
1679
+ return this.selection?.current?.selected?.length === this.snapshot?.items?.length;
1680
+ }
1681
+ /**
1682
+ * Master selection toggle
1683
+ * @param select: true to select all elements false to deselect all elements
1684
+ */
1685
+ selectAll(select = true) {
1686
+ if (select) {
1687
+ this.snapshot?.items?.forEach(n => this.selection?.select(n, n.documentId));
1704
1688
  }
1705
1689
  else {
1706
- this.changed.emit(undefined);
1690
+ this.snapshot?.items?.forEach(n => this.selection?.deselect(n, n.documentId));
1707
1691
  }
1708
1692
  }
1709
1693
  /**
1710
- * Filter by month
1711
- * @param monthInfo: the month info
1712
- */
1713
- filterByMonth(monthInfo) {
1714
- const newDate = new Date(monthInfo.year, monthInfo.month - 1, 1);
1715
- const today = new Date();
1716
- const start = endOfDay(startOfMonth(newDate));
1717
- const end = endOfMonth(newDate);
1718
- this.changed.emit(new DateInterval(start, end));
1719
- this.calendarSpecialDays = monthInfo.days;
1720
- const calendar = this.calendar();
1721
- if (start <= today && end >= today) {
1722
- calendar.selected = today;
1723
- }
1724
- calendar.activeDate = newDate;
1725
- calendar.updateTodaysDate();
1726
- this.calendarDate = newDate;
1694
+ * Check if selections exists
1695
+ * @returns true if at least one element is selected
1696
+ */
1697
+ hasAnySelection() {
1698
+ return (this.selection?.all?.length ?? 0) > 0;
1727
1699
  }
1728
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ClipperSearchCalendarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1729
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: ClipperSearchCalendarComponent, isStandalone: true, selector: "clipper-search-calendar", inputs: { canFilter: { classPropertyName: "canFilter", publicName: "canFilter", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { changed: "changed" }, viewQueries: [{ propertyName: "calendar", first: true, predicate: ["calendar"], descendants: true, isSignal: true }], ngImport: i0, template: "<div fxLayout=\"column\" fxFill class=\"calendar-container scroll-hidden\">\r\n <div class=\"calendar-months\">\r\n <div>\r\n <div fxLayout=\"row wrap\" fxLayoutAlign=\"center\" fxLayoutGap=\"8px\" fxFill>\r\n @for (m of months(); track $index) {\r\n <button fxFlex=\"37px\" mat-button class=\"small uppercase\" (click)=\"filterByMonth(m)\" [disabled]=\"m.total === 0\">\r\n @if (m.expired) {\r\n <span class=\"expired\" [matTooltip]=\"m.expired + ' elementi in ritardo'\">{{m.monthShortName}}</span>\r\n } @else {\r\n <span [matTooltip]=\"m.total + ' elementi'\">{{m.monthShortName}}</span>\r\n }\r\n </button>\r\n }\r\n </div>\r\n </div>\r\n <div class=\"separator\"></div>\r\n </div>\r\n <div fxFlex=\"*\" class=\"scroll-auto\">\r\n @if (!busy()) {\r\n <mat-calendar #calendar [headerComponent]=\"calendarEmptyHeader\" [dateClass]=\"calendarDateClass\"\r\n [dateFilter]=\"calendarDateFilter\" (selectedChange)=\"filterByDate($event)\" class=\"calendar-month\">\r\n </mat-calendar>\r\n <div fxLayout=\"row\" fxLayoutAlign=\"space-around\" style=\"padding:0 15px\">\r\n <button type=\"button\" mat-stroked-button (click)=\"filterByDate('month')\">Tutto il\r\n mese</button>\r\n </div>\r\n }\r\n </div>\r\n</div>", styles: [".calendar-container{padding-top:20px;padding-bottom:10px}.calendar-message{padding-top:10px;padding-left:15px}.calendar-months .separator{border-top:1px var(--ars-color-divider, #757d87) solid;margin-top:15px;padding-top:15px}.calendar-months .expired{color:var(--ars-color-error, #ff5449)!important}.calendar-month{padding:10px 0 30px;width:100%}\n"], dependencies: [{ kind: "ngmodule", type: FlexModule$1 }, { kind: "directive", type: i1.DefaultLayoutDirective, 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]", inputs: ["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"] }, { kind: "directive", type: i1.DefaultLayoutGapDirective, 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]", inputs: ["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"] }, { kind: "directive", type: i1.DefaultLayoutAlignDirective, 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]", inputs: ["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"] }, { kind: "directive", type: i1.FlexFillDirective, selector: "[fxFill], [fxFlexFill]" }, { kind: "directive", type: i1.DefaultFlexDirective, 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]", inputs: ["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"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2$1.MatButton, 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] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: MatCalendar, selector: "mat-calendar", inputs: ["headerComponent", "startAt", "startView", "selected", "minDate", "maxDate", "dateFilter", "dateClass", "comparisonStart", "comparisonEnd", "startDateAccessibleName", "endDateAccessibleName"], outputs: ["selectedChange", "yearSelected", "monthSelected", "viewChanged", "_userSelection", "_userDragDrop"], exportAs: ["matCalendar"] }, { kind: "ngmodule", type: MatChipsModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: MatDividerModule }, { kind: "ngmodule", type: MatExpansionModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1730
- }
1731
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ClipperSearchCalendarComponent, decorators: [{
1732
- type: Component,
1733
- args: [{ selector: 'clipper-search-calendar', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [
1734
- FlexModule$1,
1735
- MatButtonModule,
1736
- MatTooltipModule,
1737
- MatCalendar,
1738
- MatChipsModule,
1739
- MatIconModule,
1740
- MatDividerModule,
1741
- MatExpansionModule
1742
- ], template: "<div fxLayout=\"column\" fxFill class=\"calendar-container scroll-hidden\">\r\n <div class=\"calendar-months\">\r\n <div>\r\n <div fxLayout=\"row wrap\" fxLayoutAlign=\"center\" fxLayoutGap=\"8px\" fxFill>\r\n @for (m of months(); track $index) {\r\n <button fxFlex=\"37px\" mat-button class=\"small uppercase\" (click)=\"filterByMonth(m)\" [disabled]=\"m.total === 0\">\r\n @if (m.expired) {\r\n <span class=\"expired\" [matTooltip]=\"m.expired + ' elementi in ritardo'\">{{m.monthShortName}}</span>\r\n } @else {\r\n <span [matTooltip]=\"m.total + ' elementi'\">{{m.monthShortName}}</span>\r\n }\r\n </button>\r\n }\r\n </div>\r\n </div>\r\n <div class=\"separator\"></div>\r\n </div>\r\n <div fxFlex=\"*\" class=\"scroll-auto\">\r\n @if (!busy()) {\r\n <mat-calendar #calendar [headerComponent]=\"calendarEmptyHeader\" [dateClass]=\"calendarDateClass\"\r\n [dateFilter]=\"calendarDateFilter\" (selectedChange)=\"filterByDate($event)\" class=\"calendar-month\">\r\n </mat-calendar>\r\n <div fxLayout=\"row\" fxLayoutAlign=\"space-around\" style=\"padding:0 15px\">\r\n <button type=\"button\" mat-stroked-button (click)=\"filterByDate('month')\">Tutto il\r\n mese</button>\r\n </div>\r\n }\r\n </div>\r\n</div>", styles: [".calendar-container{padding-top:20px;padding-bottom:10px}.calendar-message{padding-top:10px;padding-left:15px}.calendar-months .separator{border-top:1px var(--ars-color-divider, #757d87) solid;margin-top:15px;padding-top:15px}.calendar-months .expired{color:var(--ars-color-error, #ff5449)!important}.calendar-month{padding:10px 0 30px;width:100%}\n"] }]
1743
- }], propDecorators: { calendar: [{ type: i0.ViewChild, args: ['calendar', { isSignal: true }] }], changed: [{ type: i0.Output, args: ["changed"] }], canFilter: [{ type: i0.Input, args: [{ isSignal: true, alias: "canFilter", required: false }] }] } });
1744
-
1745
- class ClipperSearchFacetsComponent {
1746
- constructor() {
1747
- this.changed = output();
1748
- this.changeDetector = inject(ChangeDetectorRef);
1749
- this.snapshot = new ClipperSearchFacetsSnapshot();
1750
- this.hasFacets = () => this.snapshot.hasFacets;
1751
- this.handleTooManyResults = input(false, ...(ngDevMode ? [{ debugName: "handleTooManyResults" }] : []));
1700
+ /**
1701
+ * Check if only one element is selected
1702
+ * @returns true if only one element is selected
1703
+ */
1704
+ hasSingleSelection() {
1705
+ return (this.selection?.all?.length ?? 0) === 1;
1752
1706
  }
1753
1707
  /**
1754
- * Update facets
1755
- * @param values : the facets values
1756
- * @param interval : the date interval for YEAR facets
1708
+ * Get the first selected item
1709
+ * @returns the selected item or null
1710
+ */
1711
+ getSingleSelection() {
1712
+ return this.hasAnySelection() ? this.selection?.all[0] : undefined;
1713
+ }
1714
+ /**
1715
+ * Clear selection
1716
+ */
1717
+ clearSelection() {
1718
+ return this.selection?.clear();
1719
+ }
1720
+ /**
1721
+ * Return the number of selected items or null
1722
+ * @returns Return the number of selected items
1757
1723
  */
1758
- update(values, interval) {
1759
- this.snapshot.interval = interval;
1760
- if (values) {
1761
- this.snapshot.groups = [];
1762
- values.forEach(n => {
1763
- const name = n[0].typeName;
1764
- const index = n[0].type;
1765
- const i = this.snapshot.usedGroups.findIndex(n => n.index === index);
1766
- const j = this.snapshot.groups.findIndex(n => n.index === index);
1767
- if (i === -1 && j === -1) {
1768
- this.snapshot.groups.push({
1769
- name: name,
1770
- selectedValue: null,
1771
- selectedValueDescription: null,
1772
- values: n,
1773
- index: index,
1774
- });
1775
- }
1776
- });
1724
+ countSelections() {
1725
+ return (this.selection && this.selection?.all?.length > 0) ? this.selection?.all?.length : undefined;
1726
+ }
1727
+ /**
1728
+ * Get the selected id
1729
+ */
1730
+ getSeletectId() {
1731
+ if (this.hasAnySelection()) {
1732
+ return this.selection?.all[0].documentId;
1777
1733
  }
1778
- this.snapshot.hasFacets = this.snapshot.groups.length > 0 || this.snapshot.usedGroups.length > 0;
1779
- this.snapshot.hasMoreFacets = this.snapshot.hasFacets && this.snapshot.groups.length > this.snapshot.usedGroups.length;
1780
- this.changeDetector.markForCheck();
1734
+ return undefined;
1781
1735
  }
1782
1736
  /**
1783
- * Use a facet item as filter
1784
- * @param group : the facet group
1785
- * @param item : the facet item
1786
- */
1787
- use(group, item) {
1788
- group.selectedValue = item.value;
1789
- group.selectedValueDescription = item.title;
1790
- const j = this.snapshot.groups.findIndex(n => n.index === group.index);
1791
- if (j !== -1) {
1792
- this.snapshot.groups.splice(j, 1);
1793
- let updated = false;
1794
- this.snapshot.usedGroups.forEach((n, i) => {
1795
- if (!updated && n.index > group.index) {
1796
- this.snapshot.usedGroups.splice(i, 0, group);
1797
- updated = true;
1798
- }
1737
+ * Get all selected ids
1738
+ */
1739
+ getSeletectIds() {
1740
+ if ((this.selection?.all?.length ?? 0) > 100) {
1741
+ this.dialogService.error('La selezione non può contenere più di 100 elementi.');
1742
+ return undefined;
1743
+ }
1744
+ let ids = [];
1745
+ if (this.hasAnySelection()) {
1746
+ this.selection?.all?.forEach(n => {
1747
+ ids.push(n.documentId);
1799
1748
  });
1800
- if (!updated) {
1801
- this.snapshot.usedGroups.push(group);
1802
- }
1803
1749
  }
1804
- this.apply();
1750
+ return ids;
1805
1751
  }
1806
1752
  /**
1807
- * dismiss a facet group filter
1808
- * @param group : the facet group
1809
- * @param apply : true to emit changed event and generate a new search, false just for update
1753
+ * Get all selected ids
1754
+ * @returns a tuple list with id and data
1810
1755
  */
1811
- dismiss(group, apply = true) {
1812
- group.selectedValue = undefined;
1813
- group.selectedValueDescription = undefined;
1814
- const i = this.snapshot.usedGroups.findIndex(n => n.index === group.index);
1815
- if (i !== -1) {
1816
- this.snapshot.usedGroups.splice(i, 1);
1817
- let updated = false;
1818
- this.snapshot.groups.forEach((n, j) => {
1819
- if (!updated && n.index > group.index) {
1820
- this.snapshot.groups.splice(j, 0, group);
1821
- updated = true;
1822
- }
1823
- });
1824
- if (!updated) {
1825
- this.snapshot.groups.push(group);
1826
- }
1756
+ getSeletectIdsAndData() {
1757
+ if ((this.selection?.all?.length ?? 0) > 100) {
1758
+ this.dialogService.error('La selezione non può contenere più di 100 elementi.');
1759
+ return undefined;
1827
1760
  }
1828
- if (apply) {
1829
- this.apply();
1761
+ let data = [];
1762
+ if (this.hasAnySelection()) {
1763
+ this.selection?.all?.forEach(n => {
1764
+ data.push([n.documentId, n]);
1765
+ });
1830
1766
  }
1767
+ return data;
1831
1768
  }
1832
1769
  /**
1833
- * Apply filter
1770
+ * Prepare result items
1771
+ * @param items : the items to process
1772
+ * @param params : the current search params
1834
1773
  */
1835
- apply() {
1836
- if (this.snapshot.usedGroups.length > 0) {
1837
- this.snapshot.usedGroups.forEach(n => {
1838
- if (n.index === ClipperFacet.Year) {
1839
- if (n.selectedValue) {
1840
- this.snapshot.fromDate = new Date(parseInt(n.selectedValue), 0, 1, 12, 0, 0);
1841
- this.snapshot.toDate = new Date(parseInt(n.selectedValue), 11, 31, 12, 0, 0);
1842
- }
1843
- else {
1844
- this.snapshot.fromDate = undefined;
1845
- this.snapshot.toDate = undefined;
1846
- }
1847
- }
1848
- else if (n.index === ClipperFacet.Sector) {
1849
- this.snapshot.sector = n.selectedValue ?? null;
1850
- }
1851
- else if (n.index === ClipperFacet.Author) {
1852
- this.snapshot.author = n.selectedValue ?? null;
1853
- }
1854
- else if (n.index === ClipperFacet.DocumentType) {
1855
- this.snapshot.type = n.selectedValue ?? null;
1856
- }
1857
- else if (n.index === ClipperFacet.Article) {
1858
- this.snapshot.anchor = n.selectedValue ?? null;
1859
- }
1860
- else if (n.index === ClipperFacet.Reason) {
1861
- this.snapshot.reason = n.selectedValue ?? null;
1862
- }
1863
- });
1864
- }
1865
- if (this.snapshot.groups.length > 0) {
1866
- this.snapshot.groups.forEach(n => {
1867
- if (n.index === ClipperFacet.Year) {
1868
- this.snapshot.fromDate = undefined;
1869
- this.snapshot.toDate = undefined;
1870
- }
1871
- else if (n.index === ClipperFacet.Sector) {
1872
- this.snapshot.sector = undefined;
1774
+ prepareResultItems(items, params) {
1775
+ const today = startOfToday();
1776
+ const groupByYear = !params.sortMode ||
1777
+ params.sortMode === ClipperSort.DateAsc ||
1778
+ params.sortMode === ClipperSort.DateDesc ||
1779
+ params.sortMode === ClipperSort.SourceDateAsc ||
1780
+ params.sortMode === ClipperSort.SourceDateDesc;
1781
+ const groupByRelevance = params.sortMode === ClipperSort.Relevance;
1782
+ const groupByPopularity = params.sortMode === ClipperSort.Popularity;
1783
+ let group = '';
1784
+ items?.forEach(n => {
1785
+ n.documentId = n.documentId ?? n.id;
1786
+ this.selection?.updateCurrent(n, n.documentId);
1787
+ if (n.model === ClipperModel.Quesiti) {
1788
+ n.info = "Quesito n° " + n.number + " del " + SystemUtils.formatDate(n.date, "d MMM yyyy");
1789
+ }
1790
+ else if (n.model === ClipperModel.Scadenze ||
1791
+ n.model === ClipperModel.Segnalazioni) {
1792
+ switch (n.model) {
1793
+ case ClipperModel.Scadenze:
1794
+ n.originDescription = 'Scadenza';
1795
+ break;
1796
+ case ClipperModel.Segnalazioni:
1797
+ n.originDescription = 'Segnalazione';
1798
+ break;
1873
1799
  }
1874
- else if (n.index === ClipperFacet.Author) {
1875
- this.snapshot.author = undefined;
1800
+ if (n.expiringInfo) {
1801
+ let parts = n.expiringInfo.split('|');
1802
+ if (parts.length === 3) {
1803
+ n.expiringDescription = parts[2];
1804
+ }
1876
1805
  }
1877
- else if (n.index === ClipperFacet.DocumentType) {
1878
- this.snapshot.type = undefined;
1806
+ if (n.expiringDate) {
1807
+ n.date = startOfDay(new Date(n.expiringDate));
1808
+ const d = startOfDay(subDays(n.date, 15));
1809
+ n.isExpiring = today <= n.date && today >= d;
1810
+ n.isExpired = n.date < today;
1879
1811
  }
1880
- else if (n.index === ClipperFacet.Article) {
1881
- this.snapshot.anchor = undefined;
1812
+ }
1813
+ else {
1814
+ if ((n.model === ClipperModel.Articoli ||
1815
+ n.model === ClipperModel.News) &&
1816
+ n.tags) {
1817
+ n.info = n.tags.toUpperCase();
1882
1818
  }
1883
- else if (n.index === ClipperFacet.Reason) {
1884
- this.snapshot.reason = undefined;
1819
+ if (n.model !== ClipperModel.AggiornamentoNormativo &&
1820
+ n.model !== ClipperModel.NormativaVigente &&
1821
+ n.model !== ClipperModel.GiurisprudenzaRecente &&
1822
+ n.model !== ClipperModel.Juris &&
1823
+ n.date) {
1824
+ n.date = startOfDay(new Date(n.date ?? n.publishingDate));
1825
+ const d = startOfDay(subDays(startOfToday(), 7));
1826
+ n.isNew = n.date > d;
1885
1827
  }
1886
- });
1887
- }
1888
- this.changed.emit(this.snapshot);
1889
- }
1890
- /**
1891
- * Clear facets by group index
1892
- * @param index : the group index to clear. Use -1 to clear all groups at once
1893
- * @returns : the number of groups dismissed
1894
- */
1895
- clear(index = -1) {
1896
- let dismissed = 0;
1897
- this.snapshot.usedGroups.forEach(n => {
1898
- if (index === -1 || index === n.index) {
1899
- if (n.index === ClipperFacet.Year) {
1900
- this.snapshot.fromDate = undefined;
1901
- this.snapshot.toDate = undefined;
1828
+ if (n.anchors) {
1829
+ let anchorType;
1830
+ let anchors = [];
1831
+ let minScore = 10;
1832
+ let maxScore = 0;
1833
+ n.anchors.forEach(a => {
1834
+ if (a.score < minScore) {
1835
+ minScore = a.score;
1836
+ }
1837
+ if (a.score > maxScore) {
1838
+ maxScore = a.score;
1839
+ }
1840
+ });
1841
+ maxScore = maxScore - minScore;
1842
+ n.anchors.forEach(a => {
1843
+ if (a.type === 20)
1844
+ return;
1845
+ if (a.type !== anchorType) {
1846
+ if (a.type >= 3)
1847
+ anchors.push({ text: a.typeDescription });
1848
+ anchorType = a.type;
1849
+ }
1850
+ let score = maxScore > 0 ? (a.score - minScore) / maxScore : 0;
1851
+ anchors.push({
1852
+ text: a.text,
1853
+ title: a.title,
1854
+ documentId: a.documentId,
1855
+ uri: a.uri,
1856
+ veryRelevant: score > 0.7,
1857
+ score: score,
1858
+ chunk: a.chunk
1859
+ });
1860
+ });
1861
+ n.anchors = anchors;
1902
1862
  }
1903
- else if (n.index === ClipperFacet.Sector) {
1904
- this.snapshot.sector = undefined;
1863
+ if (n.validityState > 0) {
1864
+ n.validityDescription = 'Non è più vigente';
1865
+ n.isExpired = true;
1866
+ if (n.validUntilDate) {
1867
+ const expiringDate = startOfDay(new Date(n.validUntilDate));
1868
+ if (expiringDate < today) {
1869
+ n.validityDescription =
1870
+ 'Non più vigente dal ' +
1871
+ SystemUtils.formatDate(expiringDate) +
1872
+ '.';
1873
+ }
1874
+ else {
1875
+ n.validityDescription =
1876
+ 'Non sarà più vigente dal ' +
1877
+ SystemUtils.formatDate(expiringDate) +
1878
+ '.';
1879
+ n.isExpired = false;
1880
+ }
1881
+ }
1905
1882
  }
1906
- else if (n.index === ClipperFacet.Author) {
1907
- this.snapshot.author = undefined;
1883
+ if (n.expiringDate) {
1884
+ n.date = startOfDay(new Date(n.expiringDate));
1885
+ const d = startOfDay(subDays(n.date, 15));
1886
+ n.isExpiring = today <= n.date && today >= d;
1887
+ n.isExpired = n.date < today;
1908
1888
  }
1909
- else if (n.index === ClipperFacet.DocumentType) {
1910
- this.snapshot.type = undefined;
1889
+ }
1890
+ if (groupByYear) {
1891
+ const d = this.filterParams.models?.length > 1
1892
+ ? n.publishingDate
1893
+ : n.date;
1894
+ const year = SystemUtils.formatDate(d, DateFormat.LongMonthAndYear)?.toLowerCase();
1895
+ if (group !== year) {
1896
+ n.group = year;
1897
+ group = year;
1911
1898
  }
1912
- else if (n.index === ClipperFacet.Article) {
1913
- this.snapshot.anchor = undefined;
1899
+ }
1900
+ else if (groupByRelevance) {
1901
+ if (group !== 'none') {
1902
+ n.group =
1903
+ 'Elementi più rilevanti per la ricerca: ' + params.text;
1904
+ group = 'none';
1914
1905
  }
1915
- else if (n.index === ClipperFacet.Reason) {
1916
- this.snapshot.reason = undefined;
1906
+ }
1907
+ else if (groupByPopularity) {
1908
+ if (group !== 'none') {
1909
+ n.group = 'Elementi più popolari in ordine decrescente';
1910
+ group = 'none';
1917
1911
  }
1918
- this.dismiss(n, false);
1919
- dismissed++;
1920
1912
  }
1921
1913
  });
1922
- if (dismissed) {
1923
- this.changed.emit(this.snapshot);
1924
- }
1925
- return dismissed;
1926
1914
  }
1927
1915
  /**
1928
- * Reset
1916
+ * Prepare results
1917
+ * @param data : the result list to prepare
1918
+ * @param newSearch : true if is a new search
1929
1919
  */
1930
- reset() {
1931
- this.snapshot.groups = [];
1932
- this.snapshot.usedGroups = [];
1933
- this.snapshot.hasFacets = false;
1934
- this.snapshot.fromDate = undefined;
1935
- this.snapshot.toDate = undefined;
1936
- this.snapshot.sector = undefined;
1937
- this.snapshot.author = undefined;
1938
- this.snapshot.anchor = undefined;
1939
- this.snapshot.type = undefined;
1940
- this.snapshot.reason = undefined;
1941
- }
1942
- /**
1943
- * Restore data
1944
- * @param data : the data to restore
1945
- */
1946
- restore(data) {
1947
- if (data) {
1948
- this.snapshot = data;
1949
- this.changeDetector.markForCheck();
1920
+ prepareResults(data, newSearch = false) {
1921
+ const currentTotal = this.snapshot?.total ?? 0;
1922
+ this.selection?.current.clear();
1923
+ if (!newSearch) {
1924
+ data.facets = this.snapshot?.facets;
1950
1925
  }
1951
- }
1952
- /**
1953
- * Save data
1954
- */
1955
- save() {
1956
- return this.snapshot;
1957
- }
1958
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ClipperSearchFacetsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1959
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: ClipperSearchFacetsComponent, isStandalone: true, selector: "clipper-search-facets", inputs: { handleTooManyResults: { classPropertyName: "handleTooManyResults", publicName: "handleTooManyResults", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { changed: "changed" }, ngImport: i0, template: "<div fxLayout=\"column\" fxFill class=\"facets-container scroll-hidden\">\r\n @if (snapshot.usedGroups.length > 0) {\r\n <div class=\"facets-selection\">\r\n <mat-chip-set aria-label=\"Selezione\">\r\n @for (ug of snapshot.usedGroups; track $index) {\r\n <mat-chip (removed)=\"dismiss(ug)\" [matTooltip]=\"ug.selectedValueDescription ?? ''\" matTooltipPosition=\"above\">\r\n {{ug.selectedValueDescription}}\r\n <button matChipRemove [attr.aria-label]=\"'Rimuovi ' + ug.name\" [matTooltip]=\"'Rimuovi ' + ug.name\">\r\n <mat-icon>cancel</mat-icon>\r\n </button>\r\n </mat-chip>\r\n }\r\n </mat-chip-set>\r\n <mat-divider class=\"divider\"></mat-divider>\r\n </div>\r\n }\r\n <div fxFlex=\"*\" class=\"scroll-auto facets-items-container\">\r\n @if (snapshot.groups.length > 0) {\r\n @for (group of snapshot.groups; track group.index; let i = $index) {\r\n <mat-accordion multi displayMode=\"flat\">\r\n <mat-expansion-panel class=\"accordion-panel mat-elevation-z0 \" [expanded]=\"i == 0\">\r\n <mat-expansion-panel-header class=\"accordion-header\" [attr.aria-label]=\"group.name\">\r\n <mat-panel-title>\r\n @if (group.index == 2 && snapshot.interval) {\r\n {{snapshot.interval}} ({{group.values.length}})\r\n } @else {\r\n {{group.name}} ({{group.values.length}})\r\n }\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n <nav class=\"facets-items\">\r\n <ul>\r\n @for (item of group.values; track $index) {\r\n <li (click)=\"use(group, item)\" [attr.aria-label]=\"item.title\">\r\n <div fxLayout=\"row\" fxLayoutGap=\"10px\" fxFill>\r\n <div fxFlex=\"*\" fxFlexAlign=\"center\" class=\"truncated\">\r\n <div class=\"truncated\">{{item.title}}</div>\r\n </div>\r\n <div fxLayoutAlign=\"end\" fxFlexAlign=\"center\">\r\n {{!handleTooManyResults() && snapshot.hasTooManyResults ? '~' : ''}}{{item.count}}\r\n </div>\r\n </div>\r\n </li>\r\n }\r\n </ul>\r\n </nav>\r\n </mat-expansion-panel>\r\n </mat-accordion>\r\n }\r\n } @else if (snapshot.hasFacets && !snapshot.hasMoreFacets) {\r\n <div class=\"facets-message\">\r\n <p class=\"small\"><i>Tutte le opzioni sono state selezionate</i></p>\r\n </div>\r\n }\r\n </div>\r\n</div>", styles: [".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-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}.wide{min-width:100%!important;max-width:100%!important;width:100%!important}.fill{min-width:100%!important;max-width:100%!important;width:100%!important;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}.smaller{font-size:smaller!important}.small{font-size:small!important;line-height:16px!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:14px!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-small .title-container{padding:20px 5px 20px 0}.drawer .title-container-with-loader,.drawer-small .title-container-with-loader{padding:14px 5px 20px 0}.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}.expired{color:var(--app-color-expired, #ff5449)!important}.expiring{color:var(--app-color-warning, #FFC107)!important}.closed{color:var(--app-color-closed, #388E3C)!important}.unread-bg{background-color:var(--app-color-unread, #f7931c)!important}.error-bg{background-color:var(--ars-color-error, #ff5449)!important}.expired-bg{background-color:var(--app-color-expired, #ff5449)!important}.expiring-bg{background-color:var(--app-color-expiring, #FFC107)!important}.popular-bg,.closed-bg{background-color:var(--ars-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:600!important;color:var(--ars-color-text, #191c1b)}.item-content .details .links a{cursor:pointer!important;color:var(--ars-color-link, #03A9F4);font-weight:600!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-accent, #7894ae)}.tile .tile-date .date-divider,.tile .date .date-divider{width:1px;margin:0 8px;border-left:1px solid var(--ars-color-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-accent, #7894ae)}.stripe .stripe-date .date-divider,.stripe .date .date-divider{width:1px;margin:0 8px;border-left:1px solid var(--ars-color-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)}.accordion-panel{background-color:transparent!important}.facets-container{padding-top:0;padding-bottom:5px}.facets-message{padding-left:5px}.facets-selection{padding:0 5px}.facets-selection .divider{margin-top:20px;margin-bottom:10px}.facets-items-container{padding:0 5px}.facets-items{padding:0;margin:0}.facets-items ul{list-style-type:none;padding:0;margin:0}.facets-items ul li{font-size:small;padding:6px 12px;display:block;color:var(--ars-color-text, #191c1b)}.facets-items ul li a{color:inherit;text-decoration:none;display:block}.facets-items ul li:hover{background-color:var(--ars-item-hover-background-color, #eaecef);border-radius:6px;cursor:pointer}\n"], dependencies: [{ kind: "ngmodule", type: FlexModule$1 }, { kind: "directive", type: i1.DefaultLayoutDirective, 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]", inputs: ["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"] }, { kind: "directive", type: i1.DefaultLayoutGapDirective, 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]", inputs: ["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"] }, { kind: "directive", type: i1.DefaultLayoutAlignDirective, 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]", inputs: ["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"] }, { kind: "directive", type: i1.FlexFillDirective, selector: "[fxFill], [fxFlexFill]" }, { kind: "directive", type: i1.DefaultFlexAlignDirective, 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]", inputs: ["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"] }, { kind: "directive", type: i1.DefaultFlexDirective, 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]", inputs: ["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"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatChipsModule }, { kind: "component", type: i16.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["role", "id", "aria-label", "aria-description", "value", "color", "removable", "highlighted", "disableRipple", "disabled"], outputs: ["removed", "destroyed"], exportAs: ["matChip"] }, { kind: "directive", type: i16.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i16.MatChipSet, selector: "mat-chip-set", inputs: ["disabled", "role", "tabIndex"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatDividerModule }, { kind: "component", type: i2.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "ngmodule", type: MatExpansionModule }, { kind: "directive", type: i9.MatAccordion, selector: "mat-accordion", inputs: ["hideToggle", "displayMode", "togglePosition"], exportAs: ["matAccordion"] }, { kind: "component", type: i9.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["hideToggle", "togglePosition"], outputs: ["afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "component", type: i9.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["expandedHeight", "collapsedHeight", "tabIndex"] }, { kind: "directive", type: i9.MatExpansionPanelTitle, selector: "mat-panel-title" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1960
- }
1961
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ClipperSearchFacetsComponent, decorators: [{
1962
- type: Component,
1963
- args: [{ selector: 'clipper-search-facets', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [FlexModule$1, MatButtonModule, MatTooltipModule, MatChipsModule, MatIconModule,
1964
- MatDividerModule, MatExpansionModule], template: "<div fxLayout=\"column\" fxFill class=\"facets-container scroll-hidden\">\r\n @if (snapshot.usedGroups.length > 0) {\r\n <div class=\"facets-selection\">\r\n <mat-chip-set aria-label=\"Selezione\">\r\n @for (ug of snapshot.usedGroups; track $index) {\r\n <mat-chip (removed)=\"dismiss(ug)\" [matTooltip]=\"ug.selectedValueDescription ?? ''\" matTooltipPosition=\"above\">\r\n {{ug.selectedValueDescription}}\r\n <button matChipRemove [attr.aria-label]=\"'Rimuovi ' + ug.name\" [matTooltip]=\"'Rimuovi ' + ug.name\">\r\n <mat-icon>cancel</mat-icon>\r\n </button>\r\n </mat-chip>\r\n }\r\n </mat-chip-set>\r\n <mat-divider class=\"divider\"></mat-divider>\r\n </div>\r\n }\r\n <div fxFlex=\"*\" class=\"scroll-auto facets-items-container\">\r\n @if (snapshot.groups.length > 0) {\r\n @for (group of snapshot.groups; track group.index; let i = $index) {\r\n <mat-accordion multi displayMode=\"flat\">\r\n <mat-expansion-panel class=\"accordion-panel mat-elevation-z0 \" [expanded]=\"i == 0\">\r\n <mat-expansion-panel-header class=\"accordion-header\" [attr.aria-label]=\"group.name\">\r\n <mat-panel-title>\r\n @if (group.index == 2 && snapshot.interval) {\r\n {{snapshot.interval}} ({{group.values.length}})\r\n } @else {\r\n {{group.name}} ({{group.values.length}})\r\n }\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n <nav class=\"facets-items\">\r\n <ul>\r\n @for (item of group.values; track $index) {\r\n <li (click)=\"use(group, item)\" [attr.aria-label]=\"item.title\">\r\n <div fxLayout=\"row\" fxLayoutGap=\"10px\" fxFill>\r\n <div fxFlex=\"*\" fxFlexAlign=\"center\" class=\"truncated\">\r\n <div class=\"truncated\">{{item.title}}</div>\r\n </div>\r\n <div fxLayoutAlign=\"end\" fxFlexAlign=\"center\">\r\n {{!handleTooManyResults() && snapshot.hasTooManyResults ? '~' : ''}}{{item.count}}\r\n </div>\r\n </div>\r\n </li>\r\n }\r\n </ul>\r\n </nav>\r\n </mat-expansion-panel>\r\n </mat-accordion>\r\n }\r\n } @else if (snapshot.hasFacets && !snapshot.hasMoreFacets) {\r\n <div class=\"facets-message\">\r\n <p class=\"small\"><i>Tutte le opzioni sono state selezionate</i></p>\r\n </div>\r\n }\r\n </div>\r\n</div>", styles: [".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-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}.wide{min-width:100%!important;max-width:100%!important;width:100%!important}.fill{min-width:100%!important;max-width:100%!important;width:100%!important;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}.smaller{font-size:smaller!important}.small{font-size:small!important;line-height:16px!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:14px!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-small .title-container{padding:20px 5px 20px 0}.drawer .title-container-with-loader,.drawer-small .title-container-with-loader{padding:14px 5px 20px 0}.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}.expired{color:var(--app-color-expired, #ff5449)!important}.expiring{color:var(--app-color-warning, #FFC107)!important}.closed{color:var(--app-color-closed, #388E3C)!important}.unread-bg{background-color:var(--app-color-unread, #f7931c)!important}.error-bg{background-color:var(--ars-color-error, #ff5449)!important}.expired-bg{background-color:var(--app-color-expired, #ff5449)!important}.expiring-bg{background-color:var(--app-color-expiring, #FFC107)!important}.popular-bg,.closed-bg{background-color:var(--ars-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:600!important;color:var(--ars-color-text, #191c1b)}.item-content .details .links a{cursor:pointer!important;color:var(--ars-color-link, #03A9F4);font-weight:600!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-accent, #7894ae)}.tile .tile-date .date-divider,.tile .date .date-divider{width:1px;margin:0 8px;border-left:1px solid var(--ars-color-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-accent, #7894ae)}.stripe .stripe-date .date-divider,.stripe .date .date-divider{width:1px;margin:0 8px;border-left:1px solid var(--ars-color-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)}.accordion-panel{background-color:transparent!important}.facets-container{padding-top:0;padding-bottom:5px}.facets-message{padding-left:5px}.facets-selection{padding:0 5px}.facets-selection .divider{margin-top:20px;margin-bottom:10px}.facets-items-container{padding:0 5px}.facets-items{padding:0;margin:0}.facets-items ul{list-style-type:none;padding:0;margin:0}.facets-items ul li{font-size:small;padding:6px 12px;display:block;color:var(--ars-color-text, #191c1b)}.facets-items ul li a{color:inherit;text-decoration:none;display:block}.facets-items ul li:hover{background-color:var(--ars-item-hover-background-color, #eaecef);border-radius:6px;cursor:pointer}\n"] }]
1965
- }], propDecorators: { changed: [{ type: i0.Output, args: ["changed"] }], handleTooManyResults: [{ type: i0.Input, args: [{ isSignal: true, alias: "handleTooManyResults", required: false }] }] } });
1966
-
1967
- class ClipperSearchResultManager extends ClipperDocumentManager {
1968
- constructor() {
1969
- super(...arguments);
1970
- this.paginator = viewChild('paginator', ...(ngDevMode ? [{ debugName: "paginator" }] : []));
1971
- this.facets = viewChild('facets', ...(ngDevMode ? [{ debugName: "facets" }] : []));
1972
- this.calendar = viewChild('calendar', ...(ngDevMode ? [{ debugName: "calendar" }] : []));
1973
- this.unsubscribe = new Subject();
1974
- this.changeDetector = inject(ChangeDetectorRef);
1975
- this.breakpointObserver = inject(BreakpointObserver);
1976
- this.themeService = inject(ThemeService);
1977
- this.injector = inject(Injector);
1978
- this.screenService = inject(ScreenService);
1979
- this.dialogService = inject(ApplicationDialogService);
1980
- this.selectionMode = signal(ClipperSelectionMode.None, ...(ngDevMode ? [{ debugName: "selectionMode" }] : []));
1981
- this.snapshot = new ClipperSearchResult();
1982
- this.filterBusy = signal(false, ...(ngDevMode ? [{ debugName: "filterBusy" }] : []));
1983
- this.filterParams = new ClipperSearchParams();
1984
- this.filterPaneHasBackdrop = false;
1985
- this.filterPaneClosed = false;
1986
- this.filterPane2HasBackdrop = false;
1987
- this.filterPane2Closed = false;
1988
- this.sortOptions = [];
1989
- this.scrollPos = 0;
1990
- this.scrollerId = 'scroller_' + SystemUtils.generateUUID();
1991
- this.hasFacets = signal(false, ...(ngDevMode ? [{ debugName: "hasFacets" }] : []));
1992
- this.hasRegions = () => {
1993
- return (this.filterParams.sectors?.filter(n => n.value === 'LR').length ?? 0) > 0;
1994
- };
1995
- }
1996
- ngOnDestroy() {
1997
- this.unsubscribe.next();
1998
- this.unsubscribe.complete();
1999
- }
2000
- /**
2001
- * Update menu buttons visibility when the menu is closed
2002
- */
2003
- updateMenuButtonsVisibility() {
2004
- if (this.snapshot) {
2005
- this.snapshot.items?.forEach(n => {
2006
- n.isMenuOpen = false;
2007
- });
1926
+ this.snapshot = data;
1927
+ if (this.snapshot.total == -1) {
1928
+ this.snapshot.total = currentTotal;
1929
+ }
1930
+ if (this.snapshot.items) {
1931
+ this.prepareResultItems(this.snapshot.items, this.filterParams);
2008
1932
  }
1933
+ this.changeDetector.markForCheck();
2009
1934
  }
2010
1935
  /**
2011
- * Scroll on top o list area
2012
- * @param top: the top position
2013
- */
2014
- scroll(top = 0) {
2015
- const elem = document.getElementById(this.scrollerId);
2016
- if (elem) {
2017
- elem.scrollTo({ top: top, left: 0, behavior: 'auto' });
1936
+ * Save current document list or just the selected documents as a csv
1937
+ * @param format: the export format: 1) list, 2) deadlines
1938
+ */
1939
+ exportResults(format = 1) {
1940
+ if (this.snapshot?.total > 0 || this.hasAnySelection()) {
1941
+ this.exportItems(this.getSeletectIds(), this.filterParams, format);
2018
1942
  }
2019
1943
  }
2020
1944
  /**
2021
- * Check if every element are selected
2022
- */
2023
- allSelected() {
2024
- return this.selection?.current?.selected?.length === this.snapshot?.items?.length;
1945
+ * Return item state css class
1946
+ * @param item : the item to evaluate
1947
+ */
1948
+ getItemStateCssClass(item) {
1949
+ if (item.isRead !== true && ClipperUtils.isClipperModelReadable(item.model))
1950
+ return 'unread-bg';
1951
+ else if (item.isExpired)
1952
+ return 'expired-bg';
1953
+ //else if (item.popularity === 3) return 'popular-bg';
1954
+ //else if (item.popularity > 3) return 'very-popular-bg';
1955
+ return undefined;
2025
1956
  }
2026
1957
  /**
2027
- * Master selection toggle
2028
- * @param select: true to select all elements false to deselect all elements
1958
+ * Return the item state tooltip text
1959
+ * @param item : the item to evaluate
2029
1960
  */
2030
- selectAll(select = true) {
2031
- if (select) {
2032
- this.snapshot?.items?.forEach(n => this.selection?.select(n, n.documentId));
2033
- }
2034
- else {
2035
- this.snapshot?.items?.forEach(n => this.selection?.deselect(n, n.documentId));
2036
- }
1961
+ getItemStateTooltip(item) {
1962
+ if (item.isRead !== true && ClipperUtils.isClipperModelReadable(item.model))
1963
+ return 'Non letto';
1964
+ else if (item.isExpired)
1965
+ return 'Non più vigente';
1966
+ //else if (item.popularity === 3) return 'Documento con numero di citazioni alto';
1967
+ //else if (item.popularity > 3) return 'Documento con numero di citazioni molto alto';
1968
+ return '';
2037
1969
  }
2038
1970
  /**
2039
- * Check if selections exists
2040
- * @returns true if at least one element is selected
1971
+ * Return the item icon
1972
+ * @param item : the item to evaluate
2041
1973
  */
2042
- hasAnySelection() {
2043
- return (this.selection?.all?.length ?? 0) > 0;
1974
+ getItemIcon(item) {
1975
+ switch (item.model) {
1976
+ case ClipperModel.NormativaVigente: return 'gavel';
1977
+ case ClipperModel.Articoli:
1978
+ case ClipperModel.Quesiti:
1979
+ case ClipperModel.MetodiDiAnalisi: return 'extension';
1980
+ default: return 'updated';
1981
+ }
2044
1982
  }
2045
1983
  /**
2046
- * Check if only one element is selected
2047
- * @returns true if only one element is selected
2048
- */
2049
- hasSingleSelection() {
2050
- return (this.selection?.all?.length ?? 0) === 1;
1984
+ * Toggle the read flag
1985
+ * @param item : the item to update
1986
+ * @paran e: the optional click event
1987
+ */
1988
+ toggleRead(item, e) {
1989
+ e?.preventDefault();
1990
+ e?.stopPropagation();
1991
+ this.setRead(!item?.isRead, item);
2051
1992
  }
2052
1993
  /**
2053
- * Get the first selected item
2054
- * @returns the selected item or null
1994
+ * Toggle the selection flag
1995
+ * @param item : the item to update
1996
+ * @paran e: the optional click event
2055
1997
  */
2056
- getSingleSelection() {
2057
- return this.hasAnySelection() ? this.selection?.all[0] : undefined;
1998
+ toggleSelection(item, e) {
1999
+ e?.preventDefault();
2000
+ e?.stopPropagation();
2001
+ this.selection?.toggle(item, item.documentId);
2058
2002
  }
2059
2003
  /**
2060
- * Clear selection
2004
+ * Set read flag
2005
+ * @param value: the flag value
2006
+ * @param item: the item to set or null to use current selection
2061
2007
  */
2062
- clearSelection() {
2063
- return this.selection?.clear();
2064
- }
2065
- /**
2066
- * Return the number of selected items or null
2067
- * @returns Return the number of selected items
2068
- */
2069
- countSelections() {
2070
- return (this.selection && this.selection?.all?.length > 0) ? this.selection?.all?.length : undefined;
2071
- }
2072
- /**
2073
- * Get the selected id
2074
- */
2075
- getSeletectId() {
2076
- if (this.hasAnySelection()) {
2077
- return this.selection?.all[0].documentId;
2008
+ setRead(value, item) {
2009
+ let documentIds = [];
2010
+ if (item) {
2011
+ documentIds = [item.documentId];
2078
2012
  }
2079
- return undefined;
2013
+ else if (this.hasAnySelection()) {
2014
+ documentIds = this.selection?.all?.map(n => n.documentId);
2015
+ }
2016
+ return this.clipperService.updateState({ documentIds: documentIds, isRead: value })
2017
+ .subscribe(r => {
2018
+ if (r.success) {
2019
+ if (item) {
2020
+ if (item.isRead !== value) {
2021
+ item.isRead = value;
2022
+ this.broadcastService.sendMessage(ClipperMessages.DOCUMENT_READ, { document: item, value: value });
2023
+ this.clipperService.updateUnreadItems(ClipperUtils.getClipperModuleFromModel(item), item.model, value ? -1 : 1);
2024
+ this.changeDetector.markForCheck();
2025
+ }
2026
+ }
2027
+ else if (this.hasAnySelection()) {
2028
+ this.selection?.all?.forEach(n => {
2029
+ if (n.isRead !== value) {
2030
+ n.isRead = value;
2031
+ this.broadcastService.sendMessage(ClipperMessages.DOCUMENT_READ, { document: n, value: value });
2032
+ this.clipperService.updateUnreadItems(ClipperUtils.getClipperModuleFromModel(n), n.model, value ? -1 : 1);
2033
+ this.changeDetector.markForCheck();
2034
+ }
2035
+ });
2036
+ }
2037
+ this.broadcastService.sendMessage(ClipperMessages.COMMAND_DASHBOARD_UPDATED);
2038
+ }
2039
+ });
2080
2040
  }
2081
2041
  /**
2082
- * Get all selected ids
2042
+ * Open an item
2043
+ * @param documentId : the document id
2044
+ * @param query: the current query or undefined
2045
+ * @param queryChunks : the query chunks for highlight as string (eg. "|1|2|3...")
2046
+ * @param newWindow: true if the document must be open into a new window
2047
+ * @param canUseArchive: true if archive is available
2083
2048
  */
2084
- getSeletectIds() {
2085
- if ((this.selection?.all?.length ?? 0) > 100) {
2086
- this.dialogService.error('La selezione non può contenere più di 100 elementi.');
2087
- return undefined;
2088
- }
2089
- let ids = [];
2090
- if (this.hasAnySelection()) {
2091
- this.selection?.all?.forEach(n => {
2092
- ids.push(n.documentId);
2093
- });
2049
+ open(documentId, query, queryChunks, newWindow) {
2050
+ if (!newWindow)
2051
+ this.openDocument(documentId, query, queryChunks);
2052
+ else {
2053
+ window.open((this.clipperService.appUri ?? '') + '/documento/' + documentId, '_blank');
2094
2054
  }
2095
- return ids;
2096
2055
  }
2097
2056
  /**
2098
- * Get all selected ids
2099
- * @returns a tuple list with id and data
2057
+ * Open a document
2058
+ * @param documentId : the document id
2059
+ * @param query: the current query or null
2100
2060
  */
2101
- getSeletectIdsAndData() {
2102
- if ((this.selection?.all?.length ?? 0) > 100) {
2103
- this.dialogService.error('La selezione non può contenere più di 100 elementi.');
2104
- return undefined;
2105
- }
2106
- let data = [];
2107
- if (this.hasAnySelection()) {
2108
- this.selection?.all?.forEach(n => {
2109
- data.push([n.documentId, n]);
2110
- });
2061
+ openDocument(documentId, query, queryChunks) {
2062
+ if (!documentId)
2063
+ return;
2064
+ query = ClipperSearchUtils.normalizeTextQuery2(query ?? this.filterParams.text);
2065
+ if ((this.filterParams.flags & ClipperQueryDocumentFlags.UseSemanticSearch) > 0) {
2066
+ query = '$' + query;
2111
2067
  }
2112
- return data;
2068
+ ClipperDocumentsUtils.openDocument(this.injector, documentId, query, queryChunks, this.selectionMode(), null, this.themeService.getTheme(), this.canUseArchive(), this.canHandleTooManyResults());
2113
2069
  }
2070
+ ///
2071
+ // Restorable
2072
+ ///
2114
2073
  /**
2115
- * Prepare result items
2116
- * @param items : the items to process
2117
- * @param params : the current search params
2074
+ * Save restorable data
2075
+ * @param id : the restorable id
2076
+ * @param storage : the storage to use. Default si session storage.
2118
2077
  */
2119
- prepareResultItems(items, params) {
2120
- const today = startOfToday();
2121
- const groupByYear = !params.sortMode ||
2122
- params.sortMode === ClipperSort.DateAsc ||
2123
- params.sortMode === ClipperSort.DateDesc ||
2124
- params.sortMode === ClipperSort.SourceDateAsc ||
2125
- params.sortMode === ClipperSort.SourceDateDesc;
2126
- const groupByRelevance = params.sortMode === ClipperSort.Relevance;
2127
- const groupByPopularity = params.sortMode === ClipperSort.Popularity;
2128
- let group = '';
2129
- items?.forEach(n => {
2130
- n.documentId = n.documentId ?? n.id;
2131
- this.selection?.updateCurrent(n, n.documentId);
2132
- if (n.model === ClipperModel.Quesiti) {
2133
- n.info = "Quesito n° " + n.number + " del " + SystemUtils.formatDate(n.date, "d MMM yyyy");
2134
- }
2135
- else if (n.model === ClipperModel.Scadenze ||
2136
- n.model === ClipperModel.Segnalazioni) {
2137
- switch (n.model) {
2138
- case ClipperModel.Scadenze:
2139
- n.originDescription = 'Scadenza';
2140
- break;
2141
- case ClipperModel.Segnalazioni:
2142
- n.originDescription = 'Segnalazione';
2143
- break;
2144
- }
2145
- if (n.expiringInfo) {
2146
- let parts = n.expiringInfo.split('|');
2147
- if (parts.length === 3) {
2148
- n.expiringDescription = parts[2];
2078
+ save(id, storage = sessionStorage) {
2079
+ storage.setItem(id, JSON.stringify({
2080
+ paginator: {
2081
+ index: this.paginator()?.pageIndex ?? 0,
2082
+ total: this.snapshot?.total ?? 0,
2083
+ size: this.paginator()?.pageSize ?? this.filterParams?.count ?? 15
2084
+ },
2085
+ facets: this.facets()?.save(),
2086
+ filterParams: this.filterParams,
2087
+ scroll: this.scrollPos,
2088
+ sort: { mode: this.sortMode, options: this.sortOptions },
2089
+ data: this.snapshot
2090
+ ? { items: this.snapshot.items, total: this.snapshot.total }
2091
+ : null
2092
+ }));
2093
+ }
2094
+ /**
2095
+ * Restore data
2096
+ * @param id : the restorable id
2097
+ * @param storage : the storage to use. Default si session storage.
2098
+ */
2099
+ restore(id, storage = sessionStorage) {
2100
+ const value = storage.getItem(id);
2101
+ if (value) {
2102
+ const data = JSON.parse(value);
2103
+ if (data) {
2104
+ this.filterParams = data.filterParams;
2105
+ const modules = SystemUtils.clone(this.filterParams.modules);
2106
+ const sectors = SystemUtils.clone(this.filterParams.sectors);
2107
+ const authors = SystemUtils.clone(this.filterParams.authors);
2108
+ const tags = SystemUtils.clone(this.filterParams.tags);
2109
+ const topics = SystemUtils.clone(this.filterParams.topics);
2110
+ this.filterParams.modules = modules;
2111
+ this.filterParams.sectors = undefined;
2112
+ this.filterParams.authors = undefined;
2113
+ this.filterParams.tags = undefined;
2114
+ this.filterParams.topics = undefined;
2115
+ this.snapshot = data.data;
2116
+ this.sortMode = data.sort.mode;
2117
+ this.sortOptions = data.sort.options;
2118
+ setTimeout(() => {
2119
+ this.filterParams.sectors = sectors;
2120
+ this.filterParams.authors = authors;
2121
+ this.filterParams.tags = tags;
2122
+ this.filterParams.topics = topics;
2123
+ const facets = this.facets();
2124
+ if (facets && data.facets) {
2125
+ facets.restore(data.facets);
2126
+ this.hasFacets.set(data.facets.hasFacets === true ? true : false);
2149
2127
  }
2150
- }
2151
- if (n.expiringDate) {
2152
- n.date = startOfDay(new Date(n.expiringDate));
2153
- const d = startOfDay(subDays(n.date, 15));
2154
- n.isExpiring = today <= n.date && today >= d;
2155
- n.isExpired = n.date < today;
2156
- }
2157
- }
2158
- else {
2159
- if ((n.model === ClipperModel.Articoli ||
2160
- n.model === ClipperModel.News) &&
2161
- n.tags) {
2162
- n.info = n.tags.toUpperCase();
2163
- }
2164
- if (n.model !== ClipperModel.AggiornamentoNormativo &&
2165
- n.model !== ClipperModel.NormativaVigente &&
2166
- n.model !== ClipperModel.GiurisprudenzaRecente &&
2167
- n.model !== ClipperModel.Juris &&
2168
- n.date) {
2169
- n.date = startOfDay(new Date(n.date ?? n.publishingDate));
2170
- const d = startOfDay(subDays(startOfToday(), 7));
2171
- n.isNew = n.date > d;
2172
- }
2173
- if (n.anchors) {
2174
- let anchorType;
2175
- let anchors = [];
2176
- let minScore = 10;
2177
- let maxScore = 0;
2178
- n.anchors.forEach(a => {
2179
- if (a.score < minScore) {
2180
- minScore = a.score;
2181
- }
2182
- if (a.score > maxScore) {
2183
- maxScore = a.score;
2184
- }
2185
- });
2186
- maxScore = maxScore - minScore;
2187
- n.anchors.forEach(a => {
2188
- if (a.type === 20)
2189
- return;
2190
- if (a.type !== anchorType) {
2191
- if (a.type >= 3)
2192
- anchors.push({ text: a.typeDescription });
2193
- anchorType = a.type;
2194
- }
2195
- let score = maxScore > 0 ? (a.score - minScore) / maxScore : 0;
2196
- anchors.push({
2197
- text: a.text,
2198
- title: a.title,
2199
- documentId: a.documentId,
2200
- uri: a.uri,
2201
- veryRelevant: score > 0.7,
2202
- score: score,
2203
- chunk: a.chunk
2204
- });
2205
- });
2206
- n.anchors = anchors;
2207
- }
2208
- if (n.validityState > 0) {
2209
- n.validityDescription = 'Non è più vigente';
2210
- n.isExpired = true;
2211
- if (n.validUntilDate) {
2212
- const expiringDate = startOfDay(new Date(n.validUntilDate));
2213
- if (expiringDate < today) {
2214
- n.validityDescription =
2215
- 'Non più vigente dal ' +
2216
- SystemUtils.formatDate(expiringDate) +
2217
- '.';
2218
- }
2219
- else {
2220
- n.validityDescription =
2221
- 'Non sarà più vigente dal ' +
2222
- SystemUtils.formatDate(expiringDate) +
2223
- '.';
2224
- n.isExpired = false;
2225
- }
2128
+ const paginator = this.paginator();
2129
+ if (paginator && data.paginator) {
2130
+ paginator.pageIndex = data.paginator.index;
2131
+ paginator.pageSize = data.paginator.size;
2132
+ paginator.length = data.paginator.total;
2226
2133
  }
2227
- }
2228
- if (n.expiringDate) {
2229
- n.date = startOfDay(new Date(n.expiringDate));
2230
- const d = startOfDay(subDays(n.date, 15));
2231
- n.isExpiring = today <= n.date && today >= d;
2232
- n.isExpired = n.date < today;
2233
- }
2234
- }
2235
- if (groupByYear) {
2236
- const d = this.filterParams.models?.length > 1
2237
- ? n.publishingDate
2238
- : n.date;
2239
- const year = SystemUtils.formatDate(d, DateFormat.LongMonthAndYear)?.toLowerCase();
2240
- if (group !== year) {
2241
- n.group = year;
2242
- group = year;
2243
- }
2244
- }
2245
- else if (groupByRelevance) {
2246
- if (group !== 'none') {
2247
- n.group =
2248
- 'Elementi più rilevanti per la ricerca: ' + params.text;
2249
- group = 'none';
2250
- }
2251
- }
2252
- else if (groupByPopularity) {
2253
- if (group !== 'none') {
2254
- n.group = 'Elementi più popolari in ordine decrescente';
2255
- group = 'none';
2256
- }
2134
+ this.scroll(data.scroll ?? 0);
2135
+ this.broadcastService.sendMessage(ClipperMessages.COMMAND_SEARCH_RESTORED, data.filterParams);
2136
+ this.changeDetector.detectChanges();
2137
+ }, 750);
2257
2138
  }
2258
- });
2139
+ }
2140
+ }
2141
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ClipperSearchResultManager, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
2142
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.0", type: ClipperSearchResultManager, isStandalone: true, selector: "ng-component", viewQueries: [{ propertyName: "paginator", first: true, predicate: ["paginator"], descendants: true, isSignal: true }, { propertyName: "facets", first: true, predicate: ["facets"], descendants: true, isSignal: true }, { propertyName: "calendar", first: true, predicate: ["calendar"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: '<div></div>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2143
+ }
2144
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ClipperSearchResultManager, decorators: [{
2145
+ type: Component,
2146
+ args: [{
2147
+ template: '<div></div>',
2148
+ standalone: true,
2149
+ changeDetection: ChangeDetectionStrategy.OnPush,
2150
+ }]
2151
+ }], propDecorators: { paginator: [{ type: i0.ViewChild, args: ['paginator', { isSignal: true }] }], facets: [{ type: i0.ViewChild, args: ['facets', { isSignal: true }] }], calendar: [{ type: i0.ViewChild, args: ['calendar', { isSignal: true }] }] } });
2152
+
2153
+ class ClipperSearchFacetsComponent {
2154
+ constructor() {
2155
+ this.changed = output();
2156
+ this.changeDetector = inject(ChangeDetectorRef);
2157
+ this.snapshot = new ClipperSearchFacetsSnapshot();
2158
+ this.hasFacets = () => this.snapshot.hasFacets;
2159
+ this.handleTooManyResults = input(false, ...(ngDevMode ? [{ debugName: "handleTooManyResults" }] : []));
2259
2160
  }
2260
2161
  /**
2261
- * Prepare results
2262
- * @param data : the result list to prepare
2263
- * @param newSearch : true if is a new search
2264
- */
2265
- prepareResults(data, newSearch = false) {
2266
- const currentTotal = this.snapshot?.total ?? 0;
2267
- this.selection?.current.clear();
2268
- if (!newSearch) {
2269
- data.facets = this.snapshot?.facets;
2270
- }
2271
- this.snapshot = data;
2272
- if (this.snapshot.total == -1) {
2273
- this.snapshot.total = currentTotal;
2274
- }
2275
- if (this.snapshot.items) {
2276
- this.prepareResultItems(this.snapshot.items, this.filterParams);
2162
+ * Update facets
2163
+ * @param values : the facets values
2164
+ * @param interval : the date interval for YEAR facets
2165
+ */
2166
+ update(values, interval) {
2167
+ this.snapshot.interval = interval;
2168
+ if (values) {
2169
+ this.snapshot.groups = [];
2170
+ values.forEach(n => {
2171
+ const name = n[0].typeName;
2172
+ const index = n[0].type;
2173
+ const i = this.snapshot.usedGroups.findIndex(n => n.index === index);
2174
+ const j = this.snapshot.groups.findIndex(n => n.index === index);
2175
+ if (i === -1 && j === -1) {
2176
+ this.snapshot.groups.push({
2177
+ name: name,
2178
+ selectedValue: null,
2179
+ selectedValueDescription: null,
2180
+ values: n,
2181
+ index: index,
2182
+ });
2183
+ }
2184
+ });
2277
2185
  }
2186
+ this.snapshot.hasFacets = this.snapshot.groups.length > 0 || this.snapshot.usedGroups.length > 0;
2187
+ this.snapshot.hasMoreFacets = this.snapshot.hasFacets && this.snapshot.groups.length > this.snapshot.usedGroups.length;
2278
2188
  this.changeDetector.markForCheck();
2279
2189
  }
2280
2190
  /**
2281
- * Save current document list or just the selected documents as a csv
2282
- * @param format: the export format: 1) list, 2) deadlines
2283
- */
2284
- exportResults(format = 1) {
2285
- if (this.snapshot?.total > 0 || this.hasAnySelection()) {
2286
- this.exportItems(this.getSeletectIds(), this.filterParams, format);
2191
+ * Use a facet item as filter
2192
+ * @param group : the facet group
2193
+ * @param item : the facet item
2194
+ */
2195
+ use(group, item) {
2196
+ group.selectedValue = item.value;
2197
+ group.selectedValueDescription = item.title;
2198
+ const j = this.snapshot.groups.findIndex(n => n.index === group.index);
2199
+ if (j !== -1) {
2200
+ this.snapshot.groups.splice(j, 1);
2201
+ let updated = false;
2202
+ this.snapshot.usedGroups.forEach((n, i) => {
2203
+ if (!updated && n.index > group.index) {
2204
+ this.snapshot.usedGroups.splice(i, 0, group);
2205
+ updated = true;
2206
+ }
2207
+ });
2208
+ if (!updated) {
2209
+ this.snapshot.usedGroups.push(group);
2210
+ }
2287
2211
  }
2212
+ this.apply();
2288
2213
  }
2289
2214
  /**
2290
- * Return item state css class
2291
- * @param item : the item to evaluate
2292
- */
2293
- getItemStateCssClass(item) {
2294
- if (item.isRead !== true && ClipperUtils.isClipperModelReadable(item.model))
2295
- return 'unread-bg';
2296
- else if (item.isExpired)
2297
- return 'expired-bg';
2298
- //else if (item.popularity === 3) return 'popular-bg';
2299
- //else if (item.popularity > 3) return 'very-popular-bg';
2300
- return undefined;
2301
- }
2302
- /**
2303
- * Return the item state tooltip text
2304
- * @param item : the item to evaluate
2215
+ * dismiss a facet group filter
2216
+ * @param group : the facet group
2217
+ * @param apply : true to emit changed event and generate a new search, false just for update
2305
2218
  */
2306
- getItemStateTooltip(item) {
2307
- if (item.isRead !== true && ClipperUtils.isClipperModelReadable(item.model))
2308
- return 'Non letto';
2309
- else if (item.isExpired)
2310
- return 'Non più vigente';
2311
- //else if (item.popularity === 3) return 'Documento con numero di citazioni alto';
2312
- //else if (item.popularity > 3) return 'Documento con numero di citazioni molto alto';
2313
- return '';
2314
- }
2315
- /**
2316
- * Return the item icon
2317
- * @param item : the item to evaluate
2318
- */
2319
- getItemIcon(item) {
2320
- switch (item.model) {
2321
- case ClipperModel.NormativaVigente: return 'gavel';
2322
- case ClipperModel.Articoli:
2323
- case ClipperModel.Quesiti:
2324
- case ClipperModel.MetodiDiAnalisi: return 'extension';
2325
- default: return 'updated';
2219
+ dismiss(group, apply = true) {
2220
+ group.selectedValue = undefined;
2221
+ group.selectedValueDescription = undefined;
2222
+ const i = this.snapshot.usedGroups.findIndex(n => n.index === group.index);
2223
+ if (i !== -1) {
2224
+ this.snapshot.usedGroups.splice(i, 1);
2225
+ let updated = false;
2226
+ this.snapshot.groups.forEach((n, j) => {
2227
+ if (!updated && n.index > group.index) {
2228
+ this.snapshot.groups.splice(j, 0, group);
2229
+ updated = true;
2230
+ }
2231
+ });
2232
+ if (!updated) {
2233
+ this.snapshot.groups.push(group);
2234
+ }
2235
+ }
2236
+ if (apply) {
2237
+ this.apply();
2326
2238
  }
2327
2239
  }
2328
2240
  /**
2329
- * Toggle the read flag
2330
- * @param item : the item to update
2331
- * @paran e: the optional click event
2241
+ * Apply filter
2332
2242
  */
2333
- toggleRead(item, e) {
2334
- e?.preventDefault();
2335
- e?.stopPropagation();
2336
- this.setRead(!item?.isRead, item);
2337
- }
2338
- /**
2339
- * Toggle the selection flag
2340
- * @param item : the item to update
2341
- * @paran e: the optional click event
2342
- */
2343
- toggleSelection(item, e) {
2344
- e?.preventDefault();
2345
- e?.stopPropagation();
2346
- this.selection?.toggle(item, item.documentId);
2347
- }
2348
- /**
2349
- * Set read flag
2350
- * @param value: the flag value
2351
- * @param item: the item to set or null to use current selection
2352
- */
2353
- setRead(value, item) {
2354
- let documentIds = [];
2355
- if (item) {
2356
- documentIds = [item.documentId];
2243
+ apply() {
2244
+ if (this.snapshot.usedGroups.length > 0) {
2245
+ this.snapshot.usedGroups.forEach(n => {
2246
+ if (n.index === ClipperFacet.Year) {
2247
+ if (n.selectedValue) {
2248
+ this.snapshot.fromDate = new Date(parseInt(n.selectedValue), 0, 1, 12, 0, 0);
2249
+ this.snapshot.toDate = new Date(parseInt(n.selectedValue), 11, 31, 12, 0, 0);
2250
+ }
2251
+ else {
2252
+ this.snapshot.fromDate = undefined;
2253
+ this.snapshot.toDate = undefined;
2254
+ }
2255
+ }
2256
+ else if (n.index === ClipperFacet.Sector) {
2257
+ this.snapshot.sector = n.selectedValue ?? null;
2258
+ }
2259
+ else if (n.index === ClipperFacet.Author) {
2260
+ this.snapshot.author = n.selectedValue ?? null;
2261
+ }
2262
+ else if (n.index === ClipperFacet.DocumentType) {
2263
+ this.snapshot.type = n.selectedValue ?? null;
2264
+ }
2265
+ else if (n.index === ClipperFacet.Article) {
2266
+ this.snapshot.anchor = n.selectedValue ?? null;
2267
+ }
2268
+ else if (n.index === ClipperFacet.Reason) {
2269
+ this.snapshot.reason = n.selectedValue ?? null;
2270
+ }
2271
+ });
2357
2272
  }
2358
- else if (this.hasAnySelection()) {
2359
- documentIds = this.selection?.all?.map(n => n.documentId);
2273
+ if (this.snapshot.groups.length > 0) {
2274
+ this.snapshot.groups.forEach(n => {
2275
+ if (n.index === ClipperFacet.Year) {
2276
+ this.snapshot.fromDate = undefined;
2277
+ this.snapshot.toDate = undefined;
2278
+ }
2279
+ else if (n.index === ClipperFacet.Sector) {
2280
+ this.snapshot.sector = undefined;
2281
+ }
2282
+ else if (n.index === ClipperFacet.Author) {
2283
+ this.snapshot.author = undefined;
2284
+ }
2285
+ else if (n.index === ClipperFacet.DocumentType) {
2286
+ this.snapshot.type = undefined;
2287
+ }
2288
+ else if (n.index === ClipperFacet.Article) {
2289
+ this.snapshot.anchor = undefined;
2290
+ }
2291
+ else if (n.index === ClipperFacet.Reason) {
2292
+ this.snapshot.reason = undefined;
2293
+ }
2294
+ });
2360
2295
  }
2361
- return this.clipperService.updateState({ documentIds: documentIds, isRead: value })
2362
- .subscribe(r => {
2363
- if (r.success) {
2364
- if (item) {
2365
- if (item.isRead !== value) {
2366
- item.isRead = value;
2367
- this.broadcastService.sendMessage(ClipperMessages.DOCUMENT_READ, { document: item, value: value });
2368
- this.clipperService.updateUnreadItems(ClipperUtils.getClipperModuleFromModel(item), item.model, value ? -1 : 1);
2369
- this.changeDetector.markForCheck();
2370
- }
2296
+ this.changed.emit(this.snapshot);
2297
+ }
2298
+ /**
2299
+ * Clear facets by group index
2300
+ * @param index : the group index to clear. Use -1 to clear all groups at once
2301
+ * @returns : the number of groups dismissed
2302
+ */
2303
+ clear(index = -1) {
2304
+ let dismissed = 0;
2305
+ this.snapshot.usedGroups.forEach(n => {
2306
+ if (index === -1 || index === n.index) {
2307
+ if (n.index === ClipperFacet.Year) {
2308
+ this.snapshot.fromDate = undefined;
2309
+ this.snapshot.toDate = undefined;
2371
2310
  }
2372
- else if (this.hasAnySelection()) {
2373
- this.selection?.all?.forEach(n => {
2374
- if (n.isRead !== value) {
2375
- n.isRead = value;
2376
- this.broadcastService.sendMessage(ClipperMessages.DOCUMENT_READ, { document: n, value: value });
2377
- this.clipperService.updateUnreadItems(ClipperUtils.getClipperModuleFromModel(n), n.model, value ? -1 : 1);
2378
- this.changeDetector.markForCheck();
2379
- }
2380
- });
2311
+ else if (n.index === ClipperFacet.Sector) {
2312
+ this.snapshot.sector = undefined;
2313
+ }
2314
+ else if (n.index === ClipperFacet.Author) {
2315
+ this.snapshot.author = undefined;
2316
+ }
2317
+ else if (n.index === ClipperFacet.DocumentType) {
2318
+ this.snapshot.type = undefined;
2381
2319
  }
2382
- this.broadcastService.sendMessage(ClipperMessages.COMMAND_DASHBOARD_UPDATED);
2320
+ else if (n.index === ClipperFacet.Article) {
2321
+ this.snapshot.anchor = undefined;
2322
+ }
2323
+ else if (n.index === ClipperFacet.Reason) {
2324
+ this.snapshot.reason = undefined;
2325
+ }
2326
+ this.dismiss(n, false);
2327
+ dismissed++;
2383
2328
  }
2384
2329
  });
2385
- }
2386
- /**
2387
- * Open an item
2388
- * @param documentId : the document id
2389
- * @param query: the current query or undefined
2390
- * @param queryChunks : the query chunks for highlight as string (eg. "|1|2|3...")
2391
- * @param newWindow: true if the document must be open into a new window
2392
- * @param canUseArchive: true if archive is available
2393
- */
2394
- open(documentId, query, queryChunks, newWindow) {
2395
- if (!newWindow)
2396
- this.openDocument(documentId, query, queryChunks);
2397
- else {
2398
- window.open((this.clipperService.appUri ?? '') + '/documento/' + documentId, '_blank');
2330
+ if (dismissed) {
2331
+ this.changed.emit(this.snapshot);
2399
2332
  }
2333
+ return dismissed;
2400
2334
  }
2401
2335
  /**
2402
- * Open a document
2403
- * @param documentId : the document id
2404
- * @param query: the current query or null
2336
+ * Reset
2405
2337
  */
2406
- openDocument(documentId, query, queryChunks) {
2407
- if (!documentId)
2408
- return;
2409
- query = ClipperSearchUtils.normalizeTextQuery2(query ?? this.filterParams.text);
2410
- if ((this.filterParams.flags & ClipperQueryDocumentFlags.UseSemanticSearch) > 0) {
2411
- query = '$' + query;
2412
- }
2413
- ClipperDocumentsUtils.openDocument(this.injector, documentId, query, queryChunks, this.selectionMode(), null, this.themeService.getTheme(), this.canUseArchive(), this.canHandleTooManyResults());
2338
+ reset() {
2339
+ this.snapshot.groups = [];
2340
+ this.snapshot.usedGroups = [];
2341
+ this.snapshot.hasFacets = false;
2342
+ this.snapshot.fromDate = undefined;
2343
+ this.snapshot.toDate = undefined;
2344
+ this.snapshot.sector = undefined;
2345
+ this.snapshot.author = undefined;
2346
+ this.snapshot.anchor = undefined;
2347
+ this.snapshot.type = undefined;
2348
+ this.snapshot.reason = undefined;
2414
2349
  }
2415
- ///
2416
- // Restorable
2417
- ///
2418
2350
  /**
2419
- * Save restorable data
2420
- * @param id : the restorable id
2421
- * @param storage : the storage to use. Default si session storage.
2351
+ * Restore data
2352
+ * @param data : the data to restore
2422
2353
  */
2423
- save(id, storage = sessionStorage) {
2424
- storage.setItem(id, JSON.stringify({
2425
- paginator: {
2426
- index: this.paginator()?.pageIndex ?? 0,
2427
- total: this.snapshot?.total ?? 0,
2428
- size: this.paginator()?.pageSize ?? this.filterParams?.count ?? 15
2429
- },
2430
- facets: this.facets()?.save(),
2431
- filterParams: this.filterParams,
2432
- scroll: this.scrollPos,
2433
- sort: { mode: this.sortMode, options: this.sortOptions },
2434
- data: this.snapshot
2435
- ? { items: this.snapshot.items, total: this.snapshot.total }
2436
- : null
2437
- }));
2354
+ restore(data) {
2355
+ if (data) {
2356
+ this.snapshot = data;
2357
+ this.changeDetector.markForCheck();
2358
+ }
2438
2359
  }
2439
2360
  /**
2440
- * Restore data
2441
- * @param id : the restorable id
2442
- * @param storage : the storage to use. Default si session storage.
2361
+ * Save data
2443
2362
  */
2444
- restore(id, storage = sessionStorage) {
2445
- const value = storage.getItem(id);
2446
- if (value) {
2447
- const data = JSON.parse(value);
2448
- if (data) {
2449
- this.filterParams = data.filterParams;
2450
- const modules = SystemUtils.clone(this.filterParams.modules);
2451
- const sectors = SystemUtils.clone(this.filterParams.sectors);
2452
- const authors = SystemUtils.clone(this.filterParams.authors);
2453
- const tags = SystemUtils.clone(this.filterParams.tags);
2454
- const topics = SystemUtils.clone(this.filterParams.topics);
2455
- this.filterParams.modules = modules;
2456
- this.filterParams.sectors = undefined;
2457
- this.filterParams.authors = undefined;
2458
- this.filterParams.tags = undefined;
2459
- this.filterParams.topics = undefined;
2460
- this.snapshot = data.data;
2461
- this.sortMode = data.sort.mode;
2462
- this.sortOptions = data.sort.options;
2463
- setTimeout(() => {
2464
- this.filterParams.sectors = sectors;
2465
- this.filterParams.authors = authors;
2466
- this.filterParams.tags = tags;
2467
- this.filterParams.topics = topics;
2468
- const facets = this.facets();
2469
- if (facets && data.facets) {
2470
- facets.restore(data.facets);
2471
- this.hasFacets.set(data.facets.hasFacets === true ? true : false);
2472
- }
2473
- const paginator = this.paginator();
2474
- if (paginator && data.paginator) {
2475
- paginator.pageIndex = data.paginator.index;
2476
- paginator.pageSize = data.paginator.size;
2477
- paginator.length = data.paginator.total;
2478
- }
2479
- this.scroll(data.scroll ?? 0);
2480
- this.broadcastService.sendMessage(ClipperMessages.COMMAND_SEARCH_RESTORED, data.filterParams);
2481
- this.changeDetector.detectChanges();
2482
- }, 750);
2483
- }
2484
- }
2363
+ save() {
2364
+ return this.snapshot;
2485
2365
  }
2486
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ClipperSearchResultManager, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
2487
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.0", type: ClipperSearchResultManager, isStandalone: true, selector: "ng-component", viewQueries: [{ propertyName: "paginator", first: true, predicate: ["paginator"], descendants: true, isSignal: true }, { propertyName: "facets", first: true, predicate: ["facets"], descendants: true, isSignal: true }, { propertyName: "calendar", first: true, predicate: ["calendar"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: '<div></div>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2366
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ClipperSearchFacetsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2367
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: ClipperSearchFacetsComponent, isStandalone: true, selector: "clipper-search-facets", inputs: { handleTooManyResults: { classPropertyName: "handleTooManyResults", publicName: "handleTooManyResults", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { changed: "changed" }, ngImport: i0, template: "<div fxLayout=\"column\" fxFill class=\"facets-container scroll-hidden\">\r\n @if (snapshot.usedGroups.length > 0) {\r\n <div class=\"facets-selection\">\r\n <mat-chip-set aria-label=\"Selezione\">\r\n @for (ug of snapshot.usedGroups; track $index) {\r\n <mat-chip (removed)=\"dismiss(ug)\" [matTooltip]=\"ug.selectedValueDescription ?? ''\" matTooltipPosition=\"above\">\r\n {{ug.selectedValueDescription}}\r\n <button matChipRemove [attr.aria-label]=\"'Rimuovi ' + ug.name\" [matTooltip]=\"'Rimuovi ' + ug.name\">\r\n <mat-icon>cancel</mat-icon>\r\n </button>\r\n </mat-chip>\r\n }\r\n </mat-chip-set>\r\n <mat-divider class=\"divider\"></mat-divider>\r\n </div>\r\n }\r\n <div fxFlex=\"*\" class=\"scroll-auto facets-items-container\">\r\n @if (snapshot.groups.length > 0) {\r\n @for (group of snapshot.groups; track group.index; let i = $index) {\r\n <mat-accordion multi displayMode=\"flat\">\r\n <mat-expansion-panel class=\"accordion-panel mat-elevation-z0 \" [expanded]=\"i == 0\">\r\n <mat-expansion-panel-header class=\"accordion-header\" [attr.aria-label]=\"group.name\">\r\n <mat-panel-title>\r\n @if (group.index == 2 && snapshot.interval) {\r\n {{snapshot.interval}} ({{group.values.length}})\r\n } @else {\r\n {{group.name}} ({{group.values.length}})\r\n }\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n <nav class=\"facets-items\">\r\n <ul>\r\n @for (item of group.values; track $index) {\r\n <li (click)=\"use(group, item)\" [attr.aria-label]=\"item.title\">\r\n <div fxLayout=\"row\" fxLayoutGap=\"10px\" fxFill>\r\n <div fxFlex=\"*\" fxFlexAlign=\"center\" class=\"truncated\">\r\n <div class=\"truncated\">{{item.title}}</div>\r\n </div>\r\n <div fxLayoutAlign=\"end\" fxFlexAlign=\"center\">\r\n {{!handleTooManyResults() && snapshot.hasTooManyResults ? '~' : ''}}{{item.count}}\r\n </div>\r\n </div>\r\n </li>\r\n }\r\n </ul>\r\n </nav>\r\n </mat-expansion-panel>\r\n </mat-accordion>\r\n }\r\n } @else if (snapshot.hasFacets && !snapshot.hasMoreFacets) {\r\n <div class=\"facets-message\">\r\n <p class=\"small\"><i>Tutte le opzioni sono state selezionate</i></p>\r\n </div>\r\n }\r\n </div>\r\n</div>", styles: [".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-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}.wide{min-width:100%!important;max-width:100%!important;width:100%!important}.fill{min-width:100%!important;max-width:100%!important;width:100%!important;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}.smaller{font-size:smaller!important}.small{font-size:small!important;line-height:16px!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:14px!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-small .title-container{padding:20px 5px 20px 0}.drawer .title-container-with-loader,.drawer-small .title-container-with-loader{padding:14px 5px 20px 0}.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}.expired{color:var(--app-color-expired, #ff5449)!important}.expiring{color:var(--app-color-warning, #FFC107)!important}.closed{color:var(--app-color-closed, #388E3C)!important}.unread-bg{background-color:var(--app-color-unread, #f7931c)!important}.error-bg{background-color:var(--ars-color-error, #ff5449)!important}.expired-bg{background-color:var(--app-color-expired, #ff5449)!important}.expiring-bg{background-color:var(--app-color-expiring, #FFC107)!important}.popular-bg,.closed-bg{background-color:var(--ars-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:600!important;color:var(--ars-color-text, #191c1b)}.item-content .details .links a{cursor:pointer!important;color:var(--ars-color-link, #03A9F4);font-weight:600!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-accent, #7894ae)}.tile .tile-date .date-divider,.tile .date .date-divider{width:1px;margin:0 8px;border-left:1px solid var(--ars-color-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-accent, #7894ae)}.stripe .stripe-date .date-divider,.stripe .date .date-divider{width:1px;margin:0 8px;border-left:1px solid var(--ars-color-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)}.accordion-panel{background-color:transparent!important}.facets-container{padding-top:0;padding-bottom:5px}.facets-message{padding-left:5px}.facets-selection{padding:0 5px}.facets-selection .divider{margin-top:20px;margin-bottom:10px}.facets-items-container{padding:0 5px}.facets-items{padding:0;margin:0}.facets-items ul{list-style-type:none;padding:0;margin:0}.facets-items ul li{font-size:small;padding:6px 12px;display:block;color:var(--ars-color-text, #191c1b)}.facets-items ul li a{color:inherit;text-decoration:none;display:block}.facets-items ul li:hover{background-color:var(--ars-item-hover-background-color, #eaecef);border-radius:6px;cursor:pointer}\n"], dependencies: [{ kind: "ngmodule", type: FlexModule$1 }, { kind: "directive", type: i1.DefaultLayoutDirective, 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]", inputs: ["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"] }, { kind: "directive", type: i1.DefaultLayoutGapDirective, 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]", inputs: ["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"] }, { kind: "directive", type: i1.DefaultLayoutAlignDirective, 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]", inputs: ["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"] }, { kind: "directive", type: i1.FlexFillDirective, selector: "[fxFill], [fxFlexFill]" }, { kind: "directive", type: i1.DefaultFlexAlignDirective, 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]", inputs: ["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"] }, { kind: "directive", type: i1.DefaultFlexDirective, 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]", inputs: ["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"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatChipsModule }, { kind: "component", type: i16.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["role", "id", "aria-label", "aria-description", "value", "color", "removable", "highlighted", "disableRipple", "disabled"], outputs: ["removed", "destroyed"], exportAs: ["matChip"] }, { kind: "directive", type: i16.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i16.MatChipSet, selector: "mat-chip-set", inputs: ["disabled", "role", "tabIndex"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatDividerModule }, { kind: "component", type: i2.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "ngmodule", type: MatExpansionModule }, { kind: "directive", type: i9.MatAccordion, selector: "mat-accordion", inputs: ["hideToggle", "displayMode", "togglePosition"], exportAs: ["matAccordion"] }, { kind: "component", type: i9.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["hideToggle", "togglePosition"], outputs: ["afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "component", type: i9.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["expandedHeight", "collapsedHeight", "tabIndex"] }, { kind: "directive", type: i9.MatExpansionPanelTitle, selector: "mat-panel-title" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2488
2368
  }
2489
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ClipperSearchResultManager, decorators: [{
2369
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ClipperSearchFacetsComponent, decorators: [{
2490
2370
  type: Component,
2491
- args: [{
2492
- template: '<div></div>',
2493
- standalone: true,
2494
- changeDetection: ChangeDetectionStrategy.OnPush,
2495
- imports: [ClipperDocumentManager, ClipperSearchFacetsComponent, ClipperSearchCalendarComponent],
2496
- }]
2497
- }], propDecorators: { paginator: [{ type: i0.ViewChild, args: ['paginator', { isSignal: true }] }], facets: [{ type: i0.ViewChild, args: ['facets', { isSignal: true }] }], calendar: [{ type: i0.ViewChild, args: ['calendar', { isSignal: true }] }] } });
2371
+ args: [{ selector: 'clipper-search-facets', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [FlexModule$1, MatButtonModule, MatTooltipModule, MatChipsModule, MatIconModule,
2372
+ MatDividerModule, MatExpansionModule], template: "<div fxLayout=\"column\" fxFill class=\"facets-container scroll-hidden\">\r\n @if (snapshot.usedGroups.length > 0) {\r\n <div class=\"facets-selection\">\r\n <mat-chip-set aria-label=\"Selezione\">\r\n @for (ug of snapshot.usedGroups; track $index) {\r\n <mat-chip (removed)=\"dismiss(ug)\" [matTooltip]=\"ug.selectedValueDescription ?? ''\" matTooltipPosition=\"above\">\r\n {{ug.selectedValueDescription}}\r\n <button matChipRemove [attr.aria-label]=\"'Rimuovi ' + ug.name\" [matTooltip]=\"'Rimuovi ' + ug.name\">\r\n <mat-icon>cancel</mat-icon>\r\n </button>\r\n </mat-chip>\r\n }\r\n </mat-chip-set>\r\n <mat-divider class=\"divider\"></mat-divider>\r\n </div>\r\n }\r\n <div fxFlex=\"*\" class=\"scroll-auto facets-items-container\">\r\n @if (snapshot.groups.length > 0) {\r\n @for (group of snapshot.groups; track group.index; let i = $index) {\r\n <mat-accordion multi displayMode=\"flat\">\r\n <mat-expansion-panel class=\"accordion-panel mat-elevation-z0 \" [expanded]=\"i == 0\">\r\n <mat-expansion-panel-header class=\"accordion-header\" [attr.aria-label]=\"group.name\">\r\n <mat-panel-title>\r\n @if (group.index == 2 && snapshot.interval) {\r\n {{snapshot.interval}} ({{group.values.length}})\r\n } @else {\r\n {{group.name}} ({{group.values.length}})\r\n }\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n <nav class=\"facets-items\">\r\n <ul>\r\n @for (item of group.values; track $index) {\r\n <li (click)=\"use(group, item)\" [attr.aria-label]=\"item.title\">\r\n <div fxLayout=\"row\" fxLayoutGap=\"10px\" fxFill>\r\n <div fxFlex=\"*\" fxFlexAlign=\"center\" class=\"truncated\">\r\n <div class=\"truncated\">{{item.title}}</div>\r\n </div>\r\n <div fxLayoutAlign=\"end\" fxFlexAlign=\"center\">\r\n {{!handleTooManyResults() && snapshot.hasTooManyResults ? '~' : ''}}{{item.count}}\r\n </div>\r\n </div>\r\n </li>\r\n }\r\n </ul>\r\n </nav>\r\n </mat-expansion-panel>\r\n </mat-accordion>\r\n }\r\n } @else if (snapshot.hasFacets && !snapshot.hasMoreFacets) {\r\n <div class=\"facets-message\">\r\n <p class=\"small\"><i>Tutte le opzioni sono state selezionate</i></p>\r\n </div>\r\n }\r\n </div>\r\n</div>", styles: [".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-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}.wide{min-width:100%!important;max-width:100%!important;width:100%!important}.fill{min-width:100%!important;max-width:100%!important;width:100%!important;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}.smaller{font-size:smaller!important}.small{font-size:small!important;line-height:16px!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:14px!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-small .title-container{padding:20px 5px 20px 0}.drawer .title-container-with-loader,.drawer-small .title-container-with-loader{padding:14px 5px 20px 0}.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}.expired{color:var(--app-color-expired, #ff5449)!important}.expiring{color:var(--app-color-warning, #FFC107)!important}.closed{color:var(--app-color-closed, #388E3C)!important}.unread-bg{background-color:var(--app-color-unread, #f7931c)!important}.error-bg{background-color:var(--ars-color-error, #ff5449)!important}.expired-bg{background-color:var(--app-color-expired, #ff5449)!important}.expiring-bg{background-color:var(--app-color-expiring, #FFC107)!important}.popular-bg,.closed-bg{background-color:var(--ars-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:600!important;color:var(--ars-color-text, #191c1b)}.item-content .details .links a{cursor:pointer!important;color:var(--ars-color-link, #03A9F4);font-weight:600!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-accent, #7894ae)}.tile .tile-date .date-divider,.tile .date .date-divider{width:1px;margin:0 8px;border-left:1px solid var(--ars-color-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-accent, #7894ae)}.stripe .stripe-date .date-divider,.stripe .date .date-divider{width:1px;margin:0 8px;border-left:1px solid var(--ars-color-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)}.accordion-panel{background-color:transparent!important}.facets-container{padding-top:0;padding-bottom:5px}.facets-message{padding-left:5px}.facets-selection{padding:0 5px}.facets-selection .divider{margin-top:20px;margin-bottom:10px}.facets-items-container{padding:0 5px}.facets-items{padding:0;margin:0}.facets-items ul{list-style-type:none;padding:0;margin:0}.facets-items ul li{font-size:small;padding:6px 12px;display:block;color:var(--ars-color-text, #191c1b)}.facets-items ul li a{color:inherit;text-decoration:none;display:block}.facets-items ul li:hover{background-color:var(--ars-item-hover-background-color, #eaecef);border-radius:6px;cursor:pointer}\n"] }]
2373
+ }], propDecorators: { changed: [{ type: i0.Output, args: ["changed"] }], handleTooManyResults: [{ type: i0.Input, args: [{ isSignal: true, alias: "handleTooManyResults", required: false }] }] } });
2498
2374
 
2499
2375
  var ClipperSearchResultItemDisplayMode;
2500
2376
  (function (ClipperSearchResultItemDisplayMode) {
@@ -2504,7 +2380,7 @@ var ClipperSearchResultItemDisplayMode;
2504
2380
  })(ClipperSearchResultItemDisplayMode || (ClipperSearchResultItemDisplayMode = {}));
2505
2381
  class ClipperSearchResultItemComponent {
2506
2382
  constructor() {
2507
- this.unsubscribe = new Subject();
2383
+ this.destroyRef = inject(DestroyRef);
2508
2384
  this.screenService = inject(ScreenService);
2509
2385
  this.broadcastService = inject(BroadcastService);
2510
2386
  this.changeDetector = inject(ChangeDetectorRef);
@@ -2525,13 +2401,13 @@ class ClipperSearchResultItemComponent {
2525
2401
  }
2526
2402
  ngOnInit() {
2527
2403
  this.parent()?.selection?.changed
2528
- .pipe(takeUntil(this.unsubscribe))
2404
+ .pipe(takeUntilDestroyed(this.destroyRef))
2529
2405
  .subscribe(() => {
2530
2406
  this.changeDetector.markForCheck();
2531
2407
  });
2532
2408
  // React to message broadcasting
2533
2409
  this.broadcastService.getMessage()
2534
- .pipe(takeUntil(this.unsubscribe))
2410
+ .pipe(takeUntilDestroyed(this.destroyRef))
2535
2411
  .subscribe(message => {
2536
2412
  if (message.id === ClipperMessages.DOCUMENT_NAVIGATED) {
2537
2413
  if (this.isReadable() && this.item().documentId === message.data.document.documentId && !this.item().isRead) {
@@ -2571,7 +2447,7 @@ class ClipperSearchResultItemComponent {
2571
2447
  }
2572
2448
  ;
2573
2449
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ClipperSearchResultItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2574
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: ClipperSearchResultItemComponent, isStandalone: true, selector: "clipper-search-result-item", inputs: { parent: { classPropertyName: "parent", publicName: "parent", isSignal: true, isRequired: true, transformFunction: null }, item: { classPropertyName: "item", publicName: "item", isSignal: true, isRequired: true, transformFunction: null }, actions: { classPropertyName: "actions", publicName: "actions", isSignal: true, isRequired: true, transformFunction: null }, tileNoPictureUrl: { classPropertyName: "tileNoPictureUrl", publicName: "tileNoPictureUrl", isSignal: true, isRequired: false, transformFunction: null }, tilePictureUrl: { classPropertyName: "tilePictureUrl", publicName: "tilePictureUrl", isSignal: true, isRequired: false, transformFunction: null }, isSelectable: { classPropertyName: "isSelectable", publicName: "isSelectable", isSignal: true, isRequired: false, transformFunction: null }, isReadable: { classPropertyName: "isReadable", publicName: "isReadable", isSignal: true, isRequired: false, transformFunction: null }, isReadableModel: { classPropertyName: "isReadableModel", publicName: "isReadableModel", isSignal: true, isRequired: false, transformFunction: null }, displayModifiedTitle: { classPropertyName: "displayModifiedTitle", publicName: "displayModifiedTitle", isSignal: true, isRequired: false, transformFunction: null }, displayModelName: { classPropertyName: "displayModelName", publicName: "displayModelName", isSignal: true, isRequired: false, transformFunction: null }, displayDate: { classPropertyName: "displayDate", publicName: "displayDate", isSignal: true, isRequired: false, transformFunction: null }, displayMode: { classPropertyName: "displayMode", publicName: "displayMode", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div>\r\n @if (displayMode() === displayModesEnum.List ) {\r\n <div class=\"item\" fxLayout=\"row\" fxLayoutGap=\"6px\" fxLayoutAlign=\"start center\" fxFill\r\n [class.item-selected]=\"isSelected()\" [matContextMenuTriggerFor]=\"actions()\"\r\n [matContextMenuTriggerData]=\"{item: item()}\" (mouseenter)=\"item().isOver = true\"\r\n (mouseleave)=\"item().isOver = false\">\r\n <div fxFlex=\"6px\" fxFlexAlign=\"stretch\" [class]=\"parent().getItemStateCssClass(item())\"\r\n [matTooltip]=\"parent().getItemStateTooltip(item())\"><span></span>\r\n </div>\r\n <div [fxFlex]=\"isSelectable() ? '48px' : '16px'\" fxLayoutAlign=\"center\">\r\n @if (isSelectable() && (screenService.isTouchable || item().isOver || isSelected())) {\r\n <mat-checkbox (click)=\"$event.stopPropagation()\"\r\n (change)=\"$event ? parent().selection?.toggle(item(), item().documentId) : null\" [checked]=\"isSelected()\">\r\n </mat-checkbox>\r\n }\r\n </div>\r\n <div fxFlex=\"*\">\r\n <div class=\"item-content\">\r\n @if (displayModelName() && item().modelName) {\r\n @if (item().origin === 'GC' || item().origin === 'GN') {\r\n <div class=\"info-2\">GIURISPRUDENZA</div>\r\n } @else {\r\n <div class=\"info-2\">{{item().modelName}}</div>\r\n }\r\n }\r\n @if (item().info && item().model === modelsEnum.Quesiti) {\r\n @if(item().info) {\r\n <div class=\"info-1\">{{item().info}}</div>\r\n }\r\n }@else if(item().model === modelsEnum.NormativaVigente ||\r\n item().model === modelsEnum.AggiornamentoNormativo ||\r\n item().model === modelsEnum.GiurisprudenzaRecente ||\r\n item().model === modelsEnum.Juris) {\r\n @if (item().author && (item().origin === 'LR' || item().origin === 'GC' || item().origin\r\n === 'GN')) {\r\n <div class=\"info-1\">{{item().author}}</div>\r\n }\r\n @if(item().model === modelsEnum.Juris && displayDate() && item().date) {\r\n <div class=\"info-1\">{{item().date | format:'D':'d MMM yyyy'}}</div>\r\n }\r\n }@else if (displayDate() && item().date) {\r\n <div class=\"info-1\">{{item().date | format:'D':'d MMM yyyy'}}</div>\r\n }\r\n <div>\r\n <a class=\"link\" (click)=\"parent().open(item().documentId, undefined, item().chunksList)\"\r\n [attr.aria-label]=\"'Apri documento ' + item().title1\">{{item().title1 ?? item().title2}}</a>\r\n @if (item().part > 0) {\r\n <span class=\"badge\">PARTE {{item().part}}</span>\r\n }\r\n @if (item().isCommented) {\r\n <span class=\"badge\">COMMENTATA</span>\r\n }\r\n @if (item().validityState > 0) {\r\n <span class=\"badge-red\">{{item().validityDescription}}</span>\r\n }\r\n </div>\r\n @if(item().description && item().model === modelsEnum.Coordinamento) {\r\n <div class=\"title\">{{item().description}}</div>\r\n }\r\n @if (item().title2 &&\r\n item().model !== modelsEnum.Coordinamento &&\r\n item().model !== modelsEnum.News &&\r\n item().model !== modelsEnum.AllerteAlimentari &&\r\n item().model !== modelsEnum.Articoli &&\r\n item().model !== modelsEnum.Juris &&\r\n item().model !== modelsEnum.Quesiti &&\r\n item().model !== modelsEnum.Scadenze &&\r\n item().model !== modelsEnum.Segnalazioni) {\r\n <div class=\"title\">{{item().title2}}</div>\r\n }\r\n @if (item().originDescription &&\r\n item().model !== modelsEnum.Scadenze &&\r\n item().model !== modelsEnum.Segnalazioni &&\r\n item().model !== modelsEnum.News &&\r\n item().model !== modelsEnum.Articoli &&\r\n item().model !== modelsEnum.Juris) {\r\n <div class=\"info-1\"\r\n [class.info-3]=\"(item().model === modelsEnum.Coordinamento && (item().validFromDate || item().applicableFromDate))\">\r\n {{item().originDescription}}\r\n @if (item().model === modelsEnum.Coordinamento ) {\r\n @if (item().validFromDate) {\r\n in vigore da: <span class=\"bold\">{{item().validFromDate | format:'D':'d MMMM yyyy'}}</span>\r\n }\r\n @if (item().applicableFromDate) {\r\n applicabile da: <span class=\"bold\">{{item().applicableFromDate | format:'D':'d MMMM yyyy'}}</span>\r\n }\r\n }\r\n </div>\r\n }\r\n @if (item().anchors?.length > 0) {\r\n <div class=\"details\">\r\n <div>DETTAGLIO</div>\r\n <div class=\"links\">\r\n @for (a of item().anchors; track $index) {\r\n <span>\r\n @if (a.uri && a.text) {\r\n <a (click)=\"parent().open(a.documentId + '#' + a.uri, undefined, item().chunksList)\"\r\n [matTooltip]=\"a.title\" [class.bright]=\"a.score > 0.75\">\r\n {{a.text}}\r\n @if (a.veryRelevant) {\r\n <sup>\r\n <mat-icon style='font-size:x-small; height: 10px; width:10px'\r\n [matTooltip]=\"a.score > 0.75 ? 'Molto rilevante' : 'Pi\u00F9 rilevante'\">thumb_up_alt</mat-icon>\r\n </sup>\r\n }</a>\r\n }\r\n @if (!a.uri && a.text) {\r\n <span>{{a.text}}</span>\r\n }\r\n </span>\r\n }\r\n </div>\r\n </div>\r\n }\r\n @if (item().taxonomy?.length > 0) {\r\n <div class=\"details\">\r\n <div>ARGOMENTI</div>\r\n <div class=\"links\">\r\n @for (n of item().taxonomy?.split('\\r\\n'); track $index) {\r\n <div class=\"link\">\r\n {{n}}\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n }\r\n @if (item().model === modelsEnum.News ||\r\n item().model === modelsEnum.Articoli ||\r\n item().model === modelsEnum.Juris) {\r\n @if (item().info){\r\n <div class=\"details\">\r\n <div class=\"links\">\r\n <div>{{item().info}}</div>\r\n </div>\r\n </div>\r\n }\r\n }\r\n @if (item().model === modelsEnum.Coordinamento) {\r\n @if (item().title1 && displayModifiedTitle()) {\r\n <div class=\"details\">\r\n <div>TITOLO DOCUMENTO MODIFICATO</div>\r\n <div class=\"links\">\r\n <div>{{item().title1}}</div>\r\n </div>\r\n </div>\r\n }\r\n }\r\n @if (item().model === modelsEnum.Scadenze || item().model === modelsEnum.Segnalazioni) {\r\n @if (item().expiringDescription) {\r\n <div class=\"details\">\r\n <div>PROSSIMA SCADENZA</div>\r\n <div class=\"links\">\r\n <div>{{item().expiringDescription}}</div>\r\n </div>\r\n </div>\r\n }\r\n }\r\n </div>\r\n </div>\r\n <div fxFlex=\"48px\" fxLayoutAlign=\"end\">\r\n @if (canBeRead())\r\n {\r\n <button type=\"button\" mat-icon-button matTooltip=\"Segna come gi\u00E0 letta\" [attr.aria-label]=\"'Segna come gi\u00E0 letta'\"\r\n (click)=\"parent().toggleRead(item(), $event)\" [hidden]=\"!(item().isOver || item().isMenuOpen)\">\r\n <mat-icon>flag</mat-icon>\r\n </button>\r\n }\r\n @if(item().model === modelsEnum.Scadenze || item().model === modelsEnum.Segnalazioni) {\r\n <button type=\"button\" mat-icon-button matTooltip=\"Aggiungi al tuo calendario\"\r\n (click)=\"parent().addToCalendar(item())\" [attr.aria-label]=\"'Aggiungi al tuo calendario'\"\r\n [hidden]=\"!(item().isOver || item().isMenuOpen)\">\r\n <mat-icon>add</mat-icon>\r\n </button>\r\n }\r\n <button fxFlexAlign=\"center\" type=\"button\" mat-icon-button matTooltip=\"Menu\" [attr.aria-label]=\"'Menu opzioni'\"\r\n [matMenuTriggerFor]=\"actions()\" [matMenuTriggerData]=\"{item: item()}\" (click)=\"item().isMenuOpen = true\"\r\n [hidden]=\"!(item().isOver || item().isMenuOpen)\">\r\n <mat-icon>more_vert</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n } @else if (displayMode() === displayModesEnum.Tile ) {\r\n <div class=\"tile\" [matContextMenuTriggerFor]=\"actions()\" [matContextMenuTriggerData]=\"{item: item()}\"\r\n (mouseenter)=\"item().isOver = true\" (mouseleave)=\"item().isOver = false\" [class.item-selected]=\"isSelected()\"\r\n [class.item-unread]=\"isRead()\" (click)=\"parent().open(item().documentId, undefined, item().chunksList)\">\r\n <div class=\"image\">\r\n @if (canBeRead() || isSelectable()) {\r\n <div class=\"buttons\">\r\n @if (canBeRead()) {\r\n <button mat-icon-button class=\"unread-button\" matTooltip=\"Segna come gi\u00E0 letto\"\r\n (click)=\"parent().toggleRead(item(), $event)\"><mat-icon>flag</mat-icon></button>\r\n }\r\n @if (isSelectable() && (isSelected() || item().isOver === true)) {\r\n <button mat-icon-button class=\"check\" [class.check-selected]=\"isSelected()\" matTooltip=\"Seleziona/Deseleziona\"\r\n (click)=\"parent().toggleSelection(item(), $event)\"><mat-icon>check</mat-icon></button>\r\n }\r\n </div>\r\n }\r\n <div class=\"info-1\">{{item().modelName}}</div>\r\n @if (item().info) {\r\n <div class=\"info-2\">{{item().info}}</div>\r\n }\r\n @if (item().pictureId && tilePictureUrl()) {\r\n <img decoding=\"async\" loading=\"lazy\" [src]=\"tilePictureUrl() + '?id=' + item().pictureId\" [alt]=\"item().title2\" />\r\n } @else if (tileNoPictureUrl()) {\r\n <picture>\r\n <img decoding=\"async\" loading=\"lazy\" [src]=\"tileNoPictureUrl()\"\r\n [alt]=\"item().title2 || 'immagine non trovata'\" />\r\n </picture>\r\n }\r\n </div>\r\n <div class=\"body\">\r\n <div class=\"date\">\r\n <span class=\"date-day\" [class.unread]=\"!item().isRead\">{{item().date | format:'D':'d\r\n MMMM'}}</span>\r\n <span class=\"date-divider\"></span>\r\n <span>{{item().date| format:'D':'yyyy'}}</span>\r\n </div>\r\n <div class=\"title\">{{item().title2}}</div>\r\n </div>\r\n </div>\r\n } @else if (displayMode() === displayModesEnum.Stripe ) {\r\n <div class=\"stripe\" [matContextMenuTriggerFor]=\"actions()\" [matContextMenuTriggerData]=\"{item: item()}\"\r\n (mouseenter)=\"item().isOver = true\" (mouseleave)=\"item().isOver = false\" [class.item-selected]=\"isSelected()\"\r\n [class.item-unread]=\"isRead()\" (click)=\"parent().open(item().documentId, undefined, item().chunksList)\">\r\n <div fxLayout=\"row\" fxLayoutAlign=\"start center\" fxFill>\r\n <div>\r\n <div fxLayout=\"row\">\r\n <div fxHide.xs class=\"image\">\r\n @if (canBeRead() || isSelectable()) {\r\n <div class=\"buttons\">\r\n @if (canBeRead()) {\r\n <button mat-icon-button class=\"unread-button\" matTooltip=\"Segna come gi\u00E0 letto\"\r\n (click)=\"parent().toggleRead(item(), $event)\"><mat-icon>flag</mat-icon></button>\r\n }\r\n @if (isSelectable() && (isSelected() || item().isOver === true)) {\r\n <button mat-icon-button class=\"check\" [class.check-selected]=\"isSelected()\"\r\n matTooltip=\"Seleziona/Deseleziona\"\r\n (click)=\"parent().toggleSelection(item(), $event)\"><mat-icon>check</mat-icon></button>\r\n }\r\n </div>\r\n }\r\n @if (item().pictureId && tilePictureUrl()) {\r\n <img decoding=\"async\" loading=\"lazy\" [src]=\"tilePictureUrl() + '?id=' + item().pictureId\"\r\n [alt]=\"item().title2\" />\r\n } @else if (tileNoPictureUrl()) {\r\n <picture>\r\n <img decoding=\"async\" loading=\"lazy\" [src]=\"tileNoPictureUrl()\"\r\n [alt]=\"item().title2 || 'immagine non trovata'\" />\r\n </picture>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n <div fxFlex=\"*\" class=\"body\">\r\n <div class=\"date\">\r\n <span class=\"date-day\" [class.unread]=\"!item().isRead\">{{item().date | format:'D':'d\r\n MMMM'}}</span>\r\n <span class=\"date-divider\"></span>\r\n <span>{{item().date| format:'D':'yyyy'}}</span>\r\n </div>\r\n <div class=\"title\">{{item().title2}}</div>\r\n <div fxLayout=\"row\" fxLayoutGap=\"10px\">\r\n <div class=\"info-1\">{{item().modelName}}</div>\r\n @if (item().info) {\r\n <div class=\"info-2\">{{item().info}}</div>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n</div>", styles: [".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-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}.wide{min-width:100%!important;max-width:100%!important;width:100%!important}.fill{min-width:100%!important;max-width:100%!important;width:100%!important;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}.smaller{font-size:smaller!important}.small{font-size:small!important;line-height:16px!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:14px!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-small .title-container{padding:20px 5px 20px 0}.drawer .title-container-with-loader,.drawer-small .title-container-with-loader{padding:14px 5px 20px 0}.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}.expired{color:var(--app-color-expired, #ff5449)!important}.expiring{color:var(--app-color-warning, #FFC107)!important}.closed{color:var(--app-color-closed, #388E3C)!important}.unread-bg{background-color:var(--app-color-unread, #f7931c)!important}.error-bg{background-color:var(--ars-color-error, #ff5449)!important}.expired-bg{background-color:var(--app-color-expired, #ff5449)!important}.expiring-bg{background-color:var(--app-color-expiring, #FFC107)!important}.popular-bg,.closed-bg{background-color:var(--ars-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:600!important;color:var(--ars-color-text, #191c1b)}.item-content .details .links a{cursor:pointer!important;color:var(--ars-color-link, #03A9F4);font-weight:600!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-accent, #7894ae)}.tile .tile-date .date-divider,.tile .date .date-divider{width:1px;margin:0 8px;border-left:1px solid var(--ars-color-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-accent, #7894ae)}.stripe .stripe-date .date-divider,.stripe .date .date-divider{width:1px;margin:0 8px;border-left:1px solid var(--ars-color-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)}\n"], dependencies: [{ kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i1$1.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "aria-expanded", "aria-controls", "aria-owns", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2$1.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "directive", type: i6.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "directive", type: i6.MatContextMenuTrigger, selector: "[matContextMenuTriggerFor]", inputs: ["matContextMenuTriggerFor", "matContextMenuTriggerData", "matContextMenuTriggerRestoreFocus", "matContextMenuTriggerDisabled"], outputs: ["menuOpened", "menuClosed"], exportAs: ["matContextMenuTrigger"] }, { kind: "ngmodule", type: FlexLayoutModule }, { kind: "directive", type: i1.DefaultLayoutDirective, 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]", inputs: ["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"] }, { kind: "directive", type: i1.DefaultLayoutGapDirective, 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]", inputs: ["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"] }, { kind: "directive", type: i1.DefaultLayoutAlignDirective, 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]", inputs: ["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"] }, { kind: "directive", type: i1.FlexFillDirective, selector: "[fxFill], [fxFlexFill]" }, { kind: "directive", type: i1.DefaultFlexAlignDirective, 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]", inputs: ["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"] }, { kind: "directive", type: i1.DefaultFlexDirective, 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]", inputs: ["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"] }, { kind: "directive", type: i2$2.DefaultShowHideDirective, selector: " [fxShow], [fxShow.print], [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], [fxHide.print], [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]", inputs: ["fxShow", "fxShow.print", "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", "fxHide.print", "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"] }, { kind: "pipe", type: FormatPipe, name: "format" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2450
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: ClipperSearchResultItemComponent, isStandalone: true, selector: "clipper-search-result-item", inputs: { parent: { classPropertyName: "parent", publicName: "parent", isSignal: true, isRequired: true, transformFunction: null }, item: { classPropertyName: "item", publicName: "item", isSignal: true, isRequired: true, transformFunction: null }, actions: { classPropertyName: "actions", publicName: "actions", isSignal: true, isRequired: true, transformFunction: null }, tileNoPictureUrl: { classPropertyName: "tileNoPictureUrl", publicName: "tileNoPictureUrl", isSignal: true, isRequired: false, transformFunction: null }, tilePictureUrl: { classPropertyName: "tilePictureUrl", publicName: "tilePictureUrl", isSignal: true, isRequired: false, transformFunction: null }, isSelectable: { classPropertyName: "isSelectable", publicName: "isSelectable", isSignal: true, isRequired: false, transformFunction: null }, isReadable: { classPropertyName: "isReadable", publicName: "isReadable", isSignal: true, isRequired: false, transformFunction: null }, isReadableModel: { classPropertyName: "isReadableModel", publicName: "isReadableModel", isSignal: true, isRequired: false, transformFunction: null }, displayModifiedTitle: { classPropertyName: "displayModifiedTitle", publicName: "displayModifiedTitle", isSignal: true, isRequired: false, transformFunction: null }, displayModelName: { classPropertyName: "displayModelName", publicName: "displayModelName", isSignal: true, isRequired: false, transformFunction: null }, displayDate: { classPropertyName: "displayDate", publicName: "displayDate", isSignal: true, isRequired: false, transformFunction: null }, displayMode: { classPropertyName: "displayMode", publicName: "displayMode", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div>\r\n @if (displayMode() === displayModesEnum.List ) {\r\n <div class=\"item\" fxLayout=\"row\" fxLayoutGap=\"6px\" fxLayoutAlign=\"start center\" fxFill\r\n [class.item-selected]=\"isSelected()\" [matContextMenuTriggerFor]=\"actions()\"\r\n [matContextMenuTriggerData]=\"{item: item()}\" (mouseenter)=\"item().isOver = true\"\r\n (mouseleave)=\"item().isOver = false\">\r\n <div fxFlex=\"6px\" fxFlexAlign=\"stretch\" [class]=\"parent().getItemStateCssClass(item())\"\r\n [matTooltip]=\"parent().getItemStateTooltip(item())\"><span></span>\r\n </div>\r\n <div [fxFlex]=\"isSelectable() ? '48px' : '16px'\" fxLayoutAlign=\"center\">\r\n @if (isSelectable() && (screenService.isTouchable || item().isOver || isSelected())) {\r\n <mat-checkbox (click)=\"$event.stopPropagation()\"\r\n (change)=\"$event ? parent().selection?.toggle(item(), item().documentId) : null\" [checked]=\"isSelected()\">\r\n </mat-checkbox>\r\n }\r\n </div>\r\n <div fxFlex=\"*\">\r\n <div class=\"item-content\">\r\n @if (displayModelName() && item().modelName) {\r\n @if (item().origin === 'GC' || item().origin === 'GN') {\r\n <div class=\"info-2\">GIURISPRUDENZA</div>\r\n } @else {\r\n <div class=\"info-2\">{{item().modelName}}</div>\r\n }\r\n }\r\n @if (item().info && item().model === modelsEnum.Quesiti) {\r\n @if(item().info) {\r\n <div class=\"info-1\">{{item().info}}</div>\r\n }\r\n }@else if(item().model === modelsEnum.NormativaVigente ||\r\n item().model === modelsEnum.AggiornamentoNormativo ||\r\n item().model === modelsEnum.GiurisprudenzaRecente ||\r\n item().model === modelsEnum.Juris) {\r\n @if (item().author && (item().origin === 'LR' || item().origin === 'GC' || item().origin\r\n === 'GN')) {\r\n <div class=\"info-1\">{{item().author}}</div>\r\n }\r\n @if(item().model === modelsEnum.Juris && displayDate() && item().date) {\r\n <div class=\"info-1\">{{item().date | format:'D':'d MMM yyyy'}}</div>\r\n }\r\n }@else if (displayDate() && item().date) {\r\n <div class=\"info-1\">{{item().date | format:'D':'d MMM yyyy'}}</div>\r\n }\r\n <div>\r\n <a class=\"link\" (click)=\"parent().open(item().documentId, undefined, item().chunksList)\"\r\n [attr.aria-label]=\"'Apri documento ' + item().title1\">{{item().title1 ?? item().title2}}</a>\r\n @if (item().part > 0) {\r\n <span class=\"badge\">PARTE {{item().part}}</span>\r\n }\r\n @if (item().isCommented) {\r\n <span class=\"badge\">COMMENTATA</span>\r\n }\r\n @if (item().validityState > 0) {\r\n <span class=\"badge-red\">{{item().validityDescription}}</span>\r\n }\r\n </div>\r\n @if(item().description && item().model === modelsEnum.Coordinamento) {\r\n <div class=\"title\">{{item().description}}</div>\r\n }\r\n @if (item().title2 &&\r\n item().model !== modelsEnum.Coordinamento &&\r\n item().model !== modelsEnum.News &&\r\n item().model !== modelsEnum.AllerteAlimentari &&\r\n item().model !== modelsEnum.Articoli &&\r\n item().model !== modelsEnum.Juris &&\r\n item().model !== modelsEnum.Quesiti &&\r\n item().model !== modelsEnum.Scadenze &&\r\n item().model !== modelsEnum.Segnalazioni) {\r\n <div class=\"title\">{{item().title2}}</div>\r\n }\r\n @if (item().originDescription &&\r\n item().model !== modelsEnum.Scadenze &&\r\n item().model !== modelsEnum.Segnalazioni &&\r\n item().model !== modelsEnum.News &&\r\n item().model !== modelsEnum.Articoli &&\r\n item().model !== modelsEnum.Juris) {\r\n <div class=\"info-1\"\r\n [class.info-3]=\"(item().model === modelsEnum.Coordinamento && (item().validFromDate || item().applicableFromDate))\">\r\n {{item().originDescription}}\r\n @if (item().model === modelsEnum.Coordinamento ) {\r\n @if (item().validFromDate) {\r\n in vigore da: <span class=\"bold\">{{item().validFromDate | format:'D':'d MMMM yyyy'}}</span>\r\n }\r\n @if (item().applicableFromDate) {\r\n applicabile da: <span class=\"bold\">{{item().applicableFromDate | format:'D':'d MMMM yyyy'}}</span>\r\n }\r\n }\r\n </div>\r\n }\r\n @if (item().anchors?.length > 0) {\r\n <div class=\"details\">\r\n <div>DETTAGLIO</div>\r\n <div class=\"links\">\r\n @for (a of item().anchors; track $index) {\r\n <span>\r\n @if (a.uri && a.text) {\r\n <a (click)=\"parent().open(a.documentId + '#' + a.uri, undefined, item().chunksList)\"\r\n [matTooltip]=\"a.title\" [class.bright]=\"a.score > 0.75\">\r\n {{a.text}}\r\n @if (a.veryRelevant) {\r\n <sup>\r\n <mat-icon style='font-size:x-small; height: 10px; width:10px'\r\n [matTooltip]=\"a.score > 0.75 ? 'Molto rilevante' : 'Pi\u00F9 rilevante'\">thumb_up_alt</mat-icon>\r\n </sup>\r\n }</a>\r\n }\r\n @if (!a.uri && a.text) {\r\n <span>{{a.text}}</span>\r\n }\r\n </span>\r\n }\r\n </div>\r\n </div>\r\n }\r\n @if (item().taxonomy?.length > 0) {\r\n <div class=\"details\">\r\n <div>ARGOMENTI</div>\r\n <div class=\"links\">\r\n @for (n of item().taxonomy?.split('\\r\\n'); track $index) {\r\n <div class=\"link\">\r\n {{n}}\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n }\r\n @if (item().model === modelsEnum.News ||\r\n item().model === modelsEnum.Articoli ||\r\n item().model === modelsEnum.Juris) {\r\n @if (item().info){\r\n <div class=\"details\">\r\n <div class=\"links\">\r\n <div>{{item().info}}</div>\r\n </div>\r\n </div>\r\n }\r\n }\r\n @if (item().model === modelsEnum.Coordinamento) {\r\n @if (item().title1 && displayModifiedTitle()) {\r\n <div class=\"details\">\r\n <div>TITOLO DOCUMENTO MODIFICATO</div>\r\n <div class=\"links\">\r\n <div>{{item().title1}}</div>\r\n </div>\r\n </div>\r\n }\r\n }\r\n @if (item().model === modelsEnum.Scadenze || item().model === modelsEnum.Segnalazioni) {\r\n @if (item().expiringDescription) {\r\n <div class=\"details\">\r\n <div>PROSSIMA SCADENZA</div>\r\n <div class=\"links\">\r\n <div>{{item().expiringDescription}}</div>\r\n </div>\r\n </div>\r\n }\r\n }\r\n </div>\r\n </div>\r\n <div fxFlex=\"48px\" fxLayoutAlign=\"end\">\r\n @if (canBeRead())\r\n {\r\n <button type=\"button\" mat-icon-button matTooltip=\"Segna come gi\u00E0 letta\" [attr.aria-label]=\"'Segna come gi\u00E0 letta'\"\r\n (click)=\"parent().toggleRead(item(), $event)\" [hidden]=\"!(item().isOver || item().isMenuOpen)\">\r\n <mat-icon>flag</mat-icon>\r\n </button>\r\n }\r\n @if(item().model === modelsEnum.Scadenze || item().model === modelsEnum.Segnalazioni) {\r\n <button type=\"button\" mat-icon-button matTooltip=\"Aggiungi al tuo calendario\"\r\n (click)=\"parent().addToCalendar(item())\" [attr.aria-label]=\"'Aggiungi al tuo calendario'\"\r\n [hidden]=\"!(item().isOver || item().isMenuOpen)\">\r\n <mat-icon>add</mat-icon>\r\n </button>\r\n }\r\n <button fxFlexAlign=\"center\" type=\"button\" mat-icon-button matTooltip=\"Menu\" [attr.aria-label]=\"'Menu opzioni'\"\r\n [matMenuTriggerFor]=\"actions()\" [matMenuTriggerData]=\"{item: item()}\" (click)=\"item().isMenuOpen = true\"\r\n [hidden]=\"!(item().isOver || item().isMenuOpen)\">\r\n <mat-icon>more_vert</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n } @else if (displayMode() === displayModesEnum.Tile ) {\r\n <div class=\"tile\" [matContextMenuTriggerFor]=\"actions()\" [matContextMenuTriggerData]=\"{item: item()}\"\r\n (mouseenter)=\"item().isOver = true\" (mouseleave)=\"item().isOver = false\" [class.item-selected]=\"isSelected()\"\r\n [class.item-unread]=\"isRead()\" (click)=\"parent().open(item().documentId, undefined, item().chunksList)\">\r\n <div class=\"image\">\r\n @if (canBeRead() || isSelectable()) {\r\n <div class=\"buttons\">\r\n @if (canBeRead()) {\r\n <button mat-icon-button class=\"unread-button\" matTooltip=\"Segna come gi\u00E0 letto\"\r\n (click)=\"parent().toggleRead(item(), $event)\"><mat-icon>flag</mat-icon></button>\r\n }\r\n @if (isSelectable() && (isSelected() || item().isOver === true)) {\r\n <button mat-icon-button class=\"check\" [class.check-selected]=\"isSelected()\" matTooltip=\"Seleziona/Deseleziona\"\r\n (click)=\"parent().toggleSelection(item(), $event)\"><mat-icon>check</mat-icon></button>\r\n }\r\n </div>\r\n }\r\n <div class=\"info-1\">{{item().modelName}}</div>\r\n @if (item().info) {\r\n <div class=\"info-2\">{{item().info}}</div>\r\n }\r\n @if (item().pictureId && tilePictureUrl()) {\r\n <img decoding=\"async\" loading=\"lazy\" [src]=\"tilePictureUrl() + '?id=' + item().pictureId\" [alt]=\"item().title2\" />\r\n } @else if (tileNoPictureUrl()) {\r\n <picture>\r\n <img decoding=\"async\" loading=\"lazy\" [src]=\"tileNoPictureUrl()\"\r\n [alt]=\"item().title2 || 'immagine non trovata'\" />\r\n </picture>\r\n }\r\n </div>\r\n <div class=\"body\">\r\n <div class=\"date\">\r\n <span class=\"date-day\" [class.unread]=\"!item().isRead\">{{item().date | format:'D':'d\r\n MMMM'}}</span>\r\n <span class=\"date-divider\"></span>\r\n <span>{{item().date| format:'D':'yyyy'}}</span>\r\n </div>\r\n <div class=\"title\">{{item().title2}}</div>\r\n </div>\r\n </div>\r\n } @else if (displayMode() === displayModesEnum.Stripe ) {\r\n <div class=\"stripe\" [matContextMenuTriggerFor]=\"actions()\" [matContextMenuTriggerData]=\"{item: item()}\"\r\n (mouseenter)=\"item().isOver = true\" (mouseleave)=\"item().isOver = false\" [class.item-selected]=\"isSelected()\"\r\n [class.item-unread]=\"isRead()\" (click)=\"parent().open(item().documentId, undefined, item().chunksList)\">\r\n <div fxLayout=\"row\" fxLayoutAlign=\"start center\" fxFill>\r\n <div>\r\n <div fxLayout=\"row\">\r\n <div fxHide.xs class=\"image\">\r\n @if (canBeRead() || isSelectable()) {\r\n <div class=\"buttons\">\r\n @if (canBeRead()) {\r\n <button mat-icon-button class=\"unread-button\" matTooltip=\"Segna come gi\u00E0 letto\"\r\n (click)=\"parent().toggleRead(item(), $event)\"><mat-icon>flag</mat-icon></button>\r\n }\r\n @if (isSelectable() && (isSelected() || item().isOver === true)) {\r\n <button mat-icon-button class=\"check\" [class.check-selected]=\"isSelected()\"\r\n matTooltip=\"Seleziona/Deseleziona\"\r\n (click)=\"parent().toggleSelection(item(), $event)\"><mat-icon>check</mat-icon></button>\r\n }\r\n </div>\r\n }\r\n @if (item().pictureId && tilePictureUrl()) {\r\n <img decoding=\"async\" loading=\"lazy\" [src]=\"tilePictureUrl() + '?id=' + item().pictureId\"\r\n [alt]=\"item().title2\" />\r\n } @else if (tileNoPictureUrl()) {\r\n <picture>\r\n <img decoding=\"async\" loading=\"lazy\" [src]=\"tileNoPictureUrl()\"\r\n [alt]=\"item().title2 || 'immagine non trovata'\" />\r\n </picture>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n <div fxFlex=\"*\" class=\"body\">\r\n <div class=\"date\">\r\n <span class=\"date-day\" [class.unread]=\"!item().isRead\">{{item().date | format:'D':'d\r\n MMMM'}}</span>\r\n <span class=\"date-divider\"></span>\r\n <span>{{item().date| format:'D':'yyyy'}}</span>\r\n </div>\r\n <div class=\"title\">{{item().title2}}</div>\r\n <div fxLayout=\"row\" fxLayoutGap=\"10px\">\r\n <div class=\"info-1\">{{item().modelName}}</div>\r\n @if (item().info) {\r\n <div class=\"info-2\">{{item().info}}</div>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n</div>", styles: [".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-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}.wide{min-width:100%!important;max-width:100%!important;width:100%!important}.fill{min-width:100%!important;max-width:100%!important;width:100%!important;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}.smaller{font-size:smaller!important}.small{font-size:small!important;line-height:16px!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:14px!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-small .title-container{padding:20px 5px 20px 0}.drawer .title-container-with-loader,.drawer-small .title-container-with-loader{padding:14px 5px 20px 0}.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}.expired{color:var(--app-color-expired, #ff5449)!important}.expiring{color:var(--app-color-warning, #FFC107)!important}.closed{color:var(--app-color-closed, #388E3C)!important}.unread-bg{background-color:var(--app-color-unread, #f7931c)!important}.error-bg{background-color:var(--ars-color-error, #ff5449)!important}.expired-bg{background-color:var(--app-color-expired, #ff5449)!important}.expiring-bg{background-color:var(--app-color-expiring, #FFC107)!important}.popular-bg,.closed-bg{background-color:var(--ars-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:600!important;color:var(--ars-color-text, #191c1b)}.item-content .details .links a{cursor:pointer!important;color:var(--ars-color-link, #03A9F4);font-weight:600!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-accent, #7894ae)}.tile .tile-date .date-divider,.tile .date .date-divider{width:1px;margin:0 8px;border-left:1px solid var(--ars-color-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-accent, #7894ae)}.stripe .stripe-date .date-divider,.stripe .date .date-divider{width:1px;margin:0 8px;border-left:1px solid var(--ars-color-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)}\n"], dependencies: [{ kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i1$1.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "aria-expanded", "aria-controls", "aria-owns", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i5.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "directive", type: i6.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "directive", type: i6.MatContextMenuTrigger, selector: "[matContextMenuTriggerFor]", inputs: ["matContextMenuTriggerFor", "matContextMenuTriggerData", "matContextMenuTriggerRestoreFocus", "matContextMenuTriggerDisabled"], outputs: ["menuOpened", "menuClosed"], exportAs: ["matContextMenuTrigger"] }, { kind: "ngmodule", type: FlexLayoutModule }, { kind: "directive", type: i1.DefaultLayoutDirective, 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]", inputs: ["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"] }, { kind: "directive", type: i1.DefaultLayoutGapDirective, 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]", inputs: ["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"] }, { kind: "directive", type: i1.DefaultLayoutAlignDirective, 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]", inputs: ["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"] }, { kind: "directive", type: i1.FlexFillDirective, selector: "[fxFill], [fxFlexFill]" }, { kind: "directive", type: i1.DefaultFlexAlignDirective, 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]", inputs: ["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"] }, { kind: "directive", type: i1.DefaultFlexDirective, 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]", inputs: ["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"] }, { kind: "directive", type: i2$1.DefaultShowHideDirective, selector: " [fxShow], [fxShow.print], [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], [fxHide.print], [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]", inputs: ["fxShow", "fxShow.print", "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", "fxHide.print", "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"] }, { kind: "pipe", type: FormatPipe, name: "format" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2575
2451
  }
2576
2452
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ClipperSearchResultItemComponent, decorators: [{
2577
2453
  type: Component,
@@ -2642,7 +2518,7 @@ class ClipperReferencesComponent extends ClipperSearchResultManager {
2642
2518
  Breakpoints.Large,
2643
2519
  Breakpoints.XLarge,
2644
2520
  ])
2645
- .pipe(takeUntil$1(this.unsubscribe))
2521
+ .pipe(takeUntilDestroyed(this.destroyRef))
2646
2522
  .subscribe((result) => {
2647
2523
  for (const query of Object.keys(result.breakpoints)) {
2648
2524
  if (result.breakpoints[query]) {
@@ -2651,10 +2527,6 @@ class ClipperReferencesComponent extends ClipperSearchResultManager {
2651
2527
  }
2652
2528
  });
2653
2529
  }
2654
- ngOnDestroy() {
2655
- this.unsubscribe.next();
2656
- this.unsubscribe.complete();
2657
- }
2658
2530
  ngAfterViewInit() {
2659
2531
  setTimeout(() => {
2660
2532
  // Handle filter pane
@@ -2903,7 +2775,7 @@ class ClipperReferencesComponent extends ClipperSearchResultManager {
2903
2775
  return '';
2904
2776
  }
2905
2777
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ClipperReferencesComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
2906
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: ClipperReferencesComponent, isStandalone: true, selector: "ng-component", host: { attributes: { "Bind": SystemUtils.generateUUID() } }, viewQueries: [{ propertyName: "filterPane", first: true, predicate: ["filterPane"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"clipper-references-fixed\">\r\n <div class=\"dialog-header\">\r\n <div fxLayout=\"row\" fxLayoutAlign=\"start center\" fxLayoutGap='10px' fxFill>\r\n <div fxFlex=\"*\">\r\n <h2 mat-dialog-title>{{title}} </h2>\r\n </div>\r\n <div fxLayoutAlign=\"end\">\r\n <button fxFlexAlign=\"start\" type=\"button\" mat-icon-button matTooltip=\"Chiudi\" aria-label=\"Chiudi\"\r\n (click)=\"close()\" class=\"dialog-close\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n @if (dialogData.mode > 0 || selection?.hasValue() || (snapshot && snapshot.facets?.hasFacets && filterPane &&\r\n (!filterPane.opened || filterPaneClosed))) {\r\n <div style=\"padding: 0 5px 0 24px; height: 48px; min-height: 48px;\">\r\n <div fxLayout=\"row\" fxLayoutAlign=\"start center\" fxFill>\r\n <div fxFlex=\"*\">\r\n @if (dialogData.mode === 1) {\r\n <mat-slide-toggle name=\"excludeTextReferences\" [(ngModel)]=\"filterParams.excludeTextReferences\"\r\n (change)=\"fetch(true)\">\r\n &nbsp; Mostra solo se citati nelle note\r\n </mat-slide-toggle>\r\n } @else if (dialogData.mode == 2) {\r\n <mat-slide-toggle name=\"excludeNotesReferences\" [(ngModel)]=\"filterParams.excludeNotesReferences\"\r\n (change)=\"fetch(true)\">\r\n &nbsp; Mostra solo se citano nel testo il documento\r\n </mat-slide-toggle>\r\n }\r\n </div>\r\n <div fxLayoutAlign=\"end\">\r\n @if (selection?.hasValue()) {\r\n <button fxFlexAlign=\"center\" type=\"button\" mat-icon-button\r\n matTooltip=\"Azioni da eseguire sugli elementi selezionati\"\r\n [attr.aria-label]=\"'Menu opzioni per elementi selezionati'\" [matMenuTriggerFor]=\"menuSelections\"\r\n [disabled]=\"!snapshot.total\" [matBadge]=\"selection?.all.length\">\r\n <mat-icon>checklist</mat-icon>\r\n </button>\r\n }\r\n <mat-menu #menuSelections=\"matMenu\">\r\n <clipper-document-menu [parent]=\"this\" selectionSource=\"selection\" [useSelections]=\"true\"\r\n [canUseArchive]=\"dialogData.canUseArchive ?? false\"\r\n [isReadable]=\"false\" [isReference]=\"true\" [canUseAIAssistant]=\"user?.hasAIAssistant ?? false\">\r\n </clipper-document-menu>\r\n </mat-menu>\r\n @if (snapshot && snapshot.facets?.hasFacets && filterPane && (!filterPane.opened || filterPaneClosed)) {\r\n <div fxFlexAlign=\"center\">\r\n <button type=\"button\" mat-icon-button matTooltip=\"Affina ricerca\" aria-label=\"'Affina ricerca'\"\r\n (click)=\"toggleFilterPane()\">\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 }\r\n </div>\r\n</div>\r\n<mat-dialog-content id=\"clipper-references-scrollable\">\r\n <mat-drawer-container class=\"fill\" [hasBackdrop]=\"filterPaneHasBackdrop\">\r\n <mat-drawer #filterPane position=\"end\" class=\"drawer-small drawer-with-loader\" opened=\"false\">\r\n @if (filterBusy()) {\r\n <div class=\"overlay\"></div>\r\n }\r\n <div fxLayout=\"column\" fxFill>\r\n <div fxFlex=\"6px\">\r\n @if (filterBusy()) {\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\">Affina ricerca</div>\r\n <div fxFlex=\"*\" fxLayoutAlign=\"end\">\r\n <button mat-icon-button (click)=\"toggleFilterPane()\"\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=\"scroll-hidden\" style=\"padding: 0 5px;\">\r\n <clipper-search-facets #facets [handleTooManyResults]=\"dialogData.canHandleTooManyResults\" ></clipper-search-facets>\r\n </div>\r\n </div>\r\n </mat-drawer>\r\n <div fxLayout=\"column\" fxFill>\r\n <div fxFlex=\"*\" [id]=\"scrollerId\" class=\"scroll-auto\" style=\"padding: 0 5px;\">\r\n @if (!snapshot.total) {\r\n <div class=\"message-container\">\r\n <p class=\"message\"><b>Nessun elemento da visualizzare.</b></p>\r\n </div>\r\n } @else {\r\n <div>\r\n @for (item of snapshot.items; track $index; let i = $index) {\r\n @if (item.group) {\r\n <div class=\"items-group-title\">\r\n <div [class.group-spaced]=\"i > 0\">{{item.group}}</div>\r\n </div>\r\n }\r\n <clipper-search-result-item [item]=\"item\" [parent]=\"this\" [isReadable]=\"false\"\r\n [actions]=\"contextMenu\"></clipper-search-result-item>\r\n }\r\n <mat-menu #contextMenu=\"matMenu\" (closed)=\"updateMenuButtonsVisibility()\">\r\n <ng-template matMenuContent let-item=\"item\">\r\n <clipper-document-menu [parent]=\"this\" [item]=\"item\" [isReadable]=\"false\" [isReference]=\"true\"\r\n [canUseAIAssistant]=\"user?.hasAIAssistant ?? false\" [canUseArchive]=\"dialogData.canUseArchive ?? false\">\r\n </clipper-document-menu>\r\n </ng-template>\r\n </mat-menu>\r\n </div>\r\n }\r\n </div>\r\n <!-- footer -->\r\n @if ((snapshot?.total ?? 0) > 0) {\r\n <div class=\"items-footer\">\r\n <div fxLayout=\"row wrap\" fxLayoutGap=\"10px\" fxLayoutAlign=\"space-between center\" fxFill>\r\n <!-- legend -->\r\n <div fxFlex.lt-md=\"100\" class=\"legend-container\">\r\n <div class=\"legend expired-bg \"></div>\r\n non pi\u00F9 vigente\r\n </div>\r\n <div fxFlex.lt-md=\"100\" fxLayoutAlign=\"end\" [class.wide]=\"filterPane?.opened\">\r\n <div fxLayout=\"row\">\r\n <mat-paginator fxFlexAlign=\"center\" #paginator class=\"paginator\" [hidePageSize]=\"true\"\r\n [length]=\"snapshot?.total ?? 0\" [pageSize]=\"filterParams.count ?? 15\" [showFirstLastButtons]=\"true\"\r\n (page)=\"fetchMore($event)\">\r\n </mat-paginator>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </mat-drawer-container>\r\n</mat-dialog-content>", styles: [".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-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}.wide{min-width:100%!important;max-width:100%!important;width:100%!important}.fill{min-width:100%!important;max-width:100%!important;width:100%!important;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}.smaller{font-size:smaller!important}.small{font-size:small!important;line-height:16px!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:14px!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-small .title-container{padding:20px 5px 20px 0}.drawer .title-container-with-loader,.drawer-small .title-container-with-loader{padding:14px 5px 20px 0}.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}.expired{color:var(--app-color-expired, #ff5449)!important}.expiring{color:var(--app-color-warning, #FFC107)!important}.closed{color:var(--app-color-closed, #388E3C)!important}.unread-bg{background-color:var(--app-color-unread, #f7931c)!important}.error-bg{background-color:var(--ars-color-error, #ff5449)!important}.expired-bg{background-color:var(--app-color-expired, #ff5449)!important}.expiring-bg{background-color:var(--app-color-expiring, #FFC107)!important}.popular-bg,.closed-bg{background-color:var(--ars-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:600!important;color:var(--ars-color-text, #191c1b)}.item-content .details .links a{cursor:pointer!important;color:var(--ars-color-link, #03A9F4);font-weight:600!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-accent, #7894ae)}.tile .tile-date .date-divider,.tile .date .date-divider{width:1px;margin:0 8px;border-left:1px solid var(--ars-color-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-accent, #7894ae)}.stripe .stripe-date .date-divider,.stripe .date .date-divider{width:1px;margin:0 8px;border-left:1px solid var(--ars-color-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)}.message-container{font-size:large;display:flex;justify-content:center;align-items:center;height:50%}.message-container .message{color:var(--ars-color-secondary, #4a635f);text-align:center;padding:40px}.mat-mdc-dialog-content{max-height:unset!important;padding:0!important}\n"], dependencies: [{ kind: "ngmodule", type: FlexLayoutModule }, { kind: "directive", type: i1.DefaultLayoutDirective, 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]", inputs: ["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"] }, { kind: "directive", type: i1.DefaultLayoutGapDirective, 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]", inputs: ["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"] }, { kind: "directive", type: i1.DefaultLayoutAlignDirective, 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]", inputs: ["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"] }, { kind: "directive", type: i1.FlexFillDirective, selector: "[fxFill], [fxFlexFill]" }, { kind: "directive", type: i1.DefaultFlexAlignDirective, 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]", inputs: ["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"] }, { kind: "directive", type: i1.DefaultFlexDirective, 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]", inputs: ["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"] }, { kind: "directive", type: MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2$1.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "ngmodule", type: MatSlideToggleModule }, { kind: "component", type: i5.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon", "disabledInteractive"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i6.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "directive", type: i6.MatMenuContent, selector: "ng-template[matMenuContent]" }, { kind: "directive", type: i6.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "ngmodule", type: MatBadgeModule }, { kind: "directive", type: i8$1.MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "ngmodule", type: MatPaginatorModule }, { kind: "component", type: i9$1.MatPaginator, selector: "mat-paginator", inputs: ["color", "pageIndex", "length", "pageSize", "pageSizeOptions", "hidePageSize", "showFirstLastButtons", "selectConfig", "disabled"], outputs: ["page"], exportAs: ["matPaginator"] }, { kind: "directive", type: MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "ngmodule", type: MatSidenavModule }, { kind: "component", type: i8.MatDrawer, selector: "mat-drawer", inputs: ["position", "mode", "disableClose", "autoFocus", "opened"], outputs: ["openedChange", "opened", "openedStart", "closed", "closedStart", "positionChanged"], exportAs: ["matDrawer"] }, { kind: "component", type: i8.MatDrawerContainer, selector: "mat-drawer-container", inputs: ["autosize", "hasBackdrop"], outputs: ["backdropClick"], exportAs: ["matDrawerContainer"] }, { kind: "ngmodule", type: MatProgressBarModule }, { kind: "component", type: i7.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: ClipperDocumentMenuComponent, selector: "clipper-document-menu", inputs: ["useSelections", "selectionSource", "parent", "item", "isReference", "isReadable", "isReadableModel", "isLawInForce", "canPrint", "canFind", "canUseCalendar", "canUseArchive", "canUseAIAssistant", "canUseRS", "canOpenDocument"] }, { kind: "component", type: ClipperSearchFacetsComponent, selector: "clipper-search-facets", inputs: ["handleTooManyResults"], outputs: ["changed"] }, { kind: "component", type: ClipperSearchResultItemComponent, selector: "clipper-search-result-item", inputs: ["parent", "item", "actions", "tileNoPictureUrl", "tilePictureUrl", "isSelectable", "isReadable", "isReadableModel", "displayModifiedTitle", "displayModelName", "displayDate", "displayMode"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2778
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: ClipperReferencesComponent, isStandalone: true, selector: "ng-component", host: { attributes: { "Bind": SystemUtils.generateUUID() } }, viewQueries: [{ propertyName: "filterPane", first: true, predicate: ["filterPane"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"clipper-references-fixed\">\r\n <div class=\"dialog-header\">\r\n <div fxLayout=\"row\" fxLayoutAlign=\"start center\" fxLayoutGap='10px' fxFill>\r\n <div fxFlex=\"*\">\r\n <h2 mat-dialog-title>{{title}} </h2>\r\n </div>\r\n <div fxLayoutAlign=\"end\">\r\n <button fxFlexAlign=\"start\" type=\"button\" mat-icon-button matTooltip=\"Chiudi\" aria-label=\"Chiudi\"\r\n (click)=\"close()\" class=\"dialog-close\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n @if (dialogData.mode > 0 || selection?.hasValue() || (snapshot && snapshot.facets?.hasFacets && filterPane &&\r\n (!filterPane.opened || filterPaneClosed))) {\r\n <div style=\"padding: 0 5px 0 24px; height: 48px; min-height: 48px;\">\r\n <div fxLayout=\"row\" fxLayoutAlign=\"start center\" fxFill>\r\n <div fxFlex=\"*\">\r\n @if (dialogData.mode === 1) {\r\n <mat-slide-toggle name=\"excludeTextReferences\" [(ngModel)]=\"filterParams.excludeTextReferences\"\r\n (change)=\"fetch(true)\">\r\n &nbsp; Mostra solo se citati nelle note\r\n </mat-slide-toggle>\r\n } @else if (dialogData.mode == 2) {\r\n <mat-slide-toggle name=\"excludeNotesReferences\" [(ngModel)]=\"filterParams.excludeNotesReferences\"\r\n (change)=\"fetch(true)\">\r\n &nbsp; Mostra solo se citano nel testo il documento\r\n </mat-slide-toggle>\r\n }\r\n </div>\r\n <div fxLayoutAlign=\"end\">\r\n @if (selection?.hasValue()) {\r\n <button fxFlexAlign=\"center\" type=\"button\" mat-icon-button\r\n matTooltip=\"Azioni da eseguire sugli elementi selezionati\"\r\n [attr.aria-label]=\"'Menu opzioni per elementi selezionati'\" [matMenuTriggerFor]=\"menuSelections\"\r\n [disabled]=\"!snapshot.total\" [matBadge]=\"selection?.all.length\">\r\n <mat-icon>checklist</mat-icon>\r\n </button>\r\n }\r\n <mat-menu #menuSelections=\"matMenu\">\r\n <clipper-document-menu [parent]=\"this\" selectionSource=\"selection\" [useSelections]=\"true\"\r\n [canUseArchive]=\"dialogData.canUseArchive ?? false\"\r\n [isReadable]=\"false\" [isReference]=\"true\" [canUseAIAssistant]=\"user?.hasAIAssistant ?? false\">\r\n </clipper-document-menu>\r\n </mat-menu>\r\n @if (snapshot && snapshot.facets?.hasFacets && filterPane && (!filterPane.opened || filterPaneClosed)) {\r\n <div fxFlexAlign=\"center\">\r\n <button type=\"button\" mat-icon-button matTooltip=\"Affina ricerca\" aria-label=\"'Affina ricerca'\"\r\n (click)=\"toggleFilterPane()\">\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 }\r\n </div>\r\n</div>\r\n<mat-dialog-content id=\"clipper-references-scrollable\">\r\n <mat-drawer-container class=\"fill\" [hasBackdrop]=\"filterPaneHasBackdrop\">\r\n <mat-drawer #filterPane position=\"end\" class=\"drawer-small drawer-with-loader\" opened=\"false\">\r\n @if (filterBusy()) {\r\n <div class=\"overlay\"></div>\r\n }\r\n <div fxLayout=\"column\" fxFill>\r\n <div fxFlex=\"6px\">\r\n @if (filterBusy()) {\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\">Affina ricerca</div>\r\n <div fxFlex=\"*\" fxLayoutAlign=\"end\">\r\n <button mat-icon-button (click)=\"toggleFilterPane()\"\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=\"scroll-hidden\" style=\"padding: 0 5px;\">\r\n <clipper-search-facets #facets [handleTooManyResults]=\"dialogData.canHandleTooManyResults\" ></clipper-search-facets>\r\n </div>\r\n </div>\r\n </mat-drawer>\r\n <div fxLayout=\"column\" fxFill>\r\n <div fxFlex=\"*\" [id]=\"scrollerId\" class=\"scroll-auto\" style=\"padding: 0 5px;\">\r\n @if (!snapshot.total) {\r\n <div class=\"message-container\">\r\n <p class=\"message\"><b>Nessun elemento da visualizzare.</b></p>\r\n </div>\r\n } @else {\r\n <div>\r\n @for (item of snapshot.items; track $index; let i = $index) {\r\n @if (item.group) {\r\n <div class=\"items-group-title\">\r\n <div [class.group-spaced]=\"i > 0\">{{item.group}}</div>\r\n </div>\r\n }\r\n <clipper-search-result-item [item]=\"item\" [parent]=\"this\" [isReadable]=\"false\"\r\n [actions]=\"contextMenu\"></clipper-search-result-item>\r\n }\r\n <mat-menu #contextMenu=\"matMenu\" (closed)=\"updateMenuButtonsVisibility()\">\r\n <ng-template matMenuContent let-item=\"item\">\r\n <clipper-document-menu [parent]=\"this\" [item]=\"item\" [isReadable]=\"false\" [isReference]=\"true\"\r\n [canUseAIAssistant]=\"user?.hasAIAssistant ?? false\" [canUseArchive]=\"dialogData.canUseArchive ?? false\">\r\n </clipper-document-menu>\r\n </ng-template>\r\n </mat-menu>\r\n </div>\r\n }\r\n </div>\r\n <!-- footer -->\r\n @if ((snapshot?.total ?? 0) > 0) {\r\n <div class=\"items-footer\">\r\n <div fxLayout=\"row wrap\" fxLayoutGap=\"10px\" fxLayoutAlign=\"space-between center\" fxFill>\r\n <!-- legend -->\r\n <div fxFlex.lt-md=\"100\" class=\"legend-container\">\r\n <div class=\"legend expired-bg \"></div>\r\n non pi\u00F9 vigente\r\n </div>\r\n <div fxFlex.lt-md=\"100\" fxLayoutAlign=\"end\" [class.wide]=\"filterPane?.opened\">\r\n <div fxLayout=\"row\">\r\n <mat-paginator fxFlexAlign=\"center\" #paginator class=\"paginator\" [hidePageSize]=\"true\"\r\n [length]=\"snapshot?.total ?? 0\" [pageSize]=\"filterParams.count ?? 15\" [showFirstLastButtons]=\"true\"\r\n (page)=\"fetchMore($event)\">\r\n </mat-paginator>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </mat-drawer-container>\r\n</mat-dialog-content>", styles: [".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-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}.wide{min-width:100%!important;max-width:100%!important;width:100%!important}.fill{min-width:100%!important;max-width:100%!important;width:100%!important;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}.smaller{font-size:smaller!important}.small{font-size:small!important;line-height:16px!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:14px!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-small .title-container{padding:20px 5px 20px 0}.drawer .title-container-with-loader,.drawer-small .title-container-with-loader{padding:14px 5px 20px 0}.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}.expired{color:var(--app-color-expired, #ff5449)!important}.expiring{color:var(--app-color-warning, #FFC107)!important}.closed{color:var(--app-color-closed, #388E3C)!important}.unread-bg{background-color:var(--app-color-unread, #f7931c)!important}.error-bg{background-color:var(--ars-color-error, #ff5449)!important}.expired-bg{background-color:var(--app-color-expired, #ff5449)!important}.expiring-bg{background-color:var(--app-color-expiring, #FFC107)!important}.popular-bg,.closed-bg{background-color:var(--ars-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:600!important;color:var(--ars-color-text, #191c1b)}.item-content .details .links a{cursor:pointer!important;color:var(--ars-color-link, #03A9F4);font-weight:600!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-accent, #7894ae)}.tile .tile-date .date-divider,.tile .date .date-divider{width:1px;margin:0 8px;border-left:1px solid var(--ars-color-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-accent, #7894ae)}.stripe .stripe-date .date-divider,.stripe .date .date-divider{width:1px;margin:0 8px;border-left:1px solid var(--ars-color-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)}.message-container{font-size:large;display:flex;justify-content:center;align-items:center;height:50%}.message-container .message{color:var(--ars-color-secondary, #4a635f);text-align:center;padding:40px}.mat-mdc-dialog-content{max-height:unset!important;padding:0!important}\n"], dependencies: [{ kind: "ngmodule", type: FlexLayoutModule }, { kind: "directive", type: i1.DefaultLayoutDirective, 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]", inputs: ["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"] }, { kind: "directive", type: i1.DefaultLayoutGapDirective, 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]", inputs: ["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"] }, { kind: "directive", type: i1.DefaultLayoutAlignDirective, 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]", inputs: ["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"] }, { kind: "directive", type: i1.FlexFillDirective, selector: "[fxFill], [fxFlexFill]" }, { kind: "directive", type: i1.DefaultFlexAlignDirective, 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]", inputs: ["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"] }, { kind: "directive", type: i1.DefaultFlexDirective, 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]", inputs: ["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"] }, { kind: "directive", type: MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i5.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "ngmodule", type: MatSlideToggleModule }, { kind: "component", type: i5$1.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon", "disabledInteractive"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i6.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "directive", type: i6.MatMenuContent, selector: "ng-template[matMenuContent]" }, { kind: "directive", type: i6.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "ngmodule", type: MatBadgeModule }, { kind: "directive", type: i8$1.MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "ngmodule", type: MatPaginatorModule }, { kind: "component", type: i9$1.MatPaginator, selector: "mat-paginator", inputs: ["color", "pageIndex", "length", "pageSize", "pageSizeOptions", "hidePageSize", "showFirstLastButtons", "selectConfig", "disabled"], outputs: ["page"], exportAs: ["matPaginator"] }, { kind: "directive", type: MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "ngmodule", type: MatSidenavModule }, { kind: "component", type: i8.MatDrawer, selector: "mat-drawer", inputs: ["position", "mode", "disableClose", "autoFocus", "opened"], outputs: ["openedChange", "opened", "openedStart", "closed", "closedStart", "positionChanged"], exportAs: ["matDrawer"] }, { kind: "component", type: i8.MatDrawerContainer, selector: "mat-drawer-container", inputs: ["autosize", "hasBackdrop"], outputs: ["backdropClick"], exportAs: ["matDrawerContainer"] }, { kind: "ngmodule", type: MatProgressBarModule }, { kind: "component", type: i7.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: ClipperDocumentMenuComponent, selector: "clipper-document-menu", inputs: ["useSelections", "selectionSource", "parent", "item", "isReference", "isReadable", "isReadableModel", "isLawInForce", "canPrint", "canFind", "canUseCalendar", "canUseArchive", "canUseAIAssistant", "canUseRS", "canOpenDocument"] }, { kind: "component", type: ClipperSearchFacetsComponent, selector: "clipper-search-facets", inputs: ["handleTooManyResults"], outputs: ["changed"] }, { kind: "component", type: ClipperSearchResultItemComponent, selector: "clipper-search-result-item", inputs: ["parent", "item", "actions", "tileNoPictureUrl", "tilePictureUrl", "isSelectable", "isReadable", "isReadableModel", "displayModifiedTitle", "displayModelName", "displayDate", "displayMode"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2907
2779
  }
2908
2780
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ClipperReferencesComponent, decorators: [{
2909
2781
  type: Component,
@@ -3014,7 +2886,7 @@ class ClipperSearchFreeTextQueryBuilderComponent {
3014
2886
  this.done.emit({ query: query.trim() });
3015
2887
  }
3016
2888
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ClipperSearchFreeTextQueryBuilderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3017
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: ClipperSearchFreeTextQueryBuilderComponent, isStandalone: true, selector: "ng-component", outputs: { done: "done" }, host: { attributes: { "Bind": SystemUtils.generateUUID() } }, ngImport: i0, template: "<h2 mat-dialog-title>Trova gli elementi che contengono...</h2>\r\n<mat-dialog-content>\r\n <form name=\"form\" #f=\"ngForm\" (keyup.Enter)=\"!f.form.invalid ? ok() : null\" novalidate>\r\n <div fxLayout=\"column\" style=\"padding-bottom: 20px;\">\r\n <mat-form-field>\r\n <mat-label>Questa esatta parola o frase</mat-label>\r\n <input matInput name=\"queryPhrase\" [(ngModel)]=\"queryPhrase\" maxlength=\"200\" />\r\n @if (queryPhrase) {\r\n <a matSuffix mat-icon-button aria-label=\"Azzera\" (click)=\"queryPhrase=''\">\r\n <mat-icon>close</mat-icon>\r\n </a>\r\n }\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>Tutte queste parole</mat-label>\r\n <input matInput name=\"queryAnd\" [(ngModel)]=\"queryAnd\" maxlength=\"200\" />\r\n @if (queryAnd) {\r\n <a matSuffix mat-icon-button aria-label=\"Azzera\" (click)=\"queryAnd=''\">\r\n <mat-icon>close</mat-icon>\r\n </a>\r\n }\r\n <mat-hint>Separate da virgola</mat-hint>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>Una qualunque di queste parole</mat-label>\r\n <input matInput name=\"queryOr\" [(ngModel)]=\"queryOr\" maxlength=\"200\" />\r\n @if (queryOr) {\r\n <a matSuffix mat-icon-button aria-label=\"Azzera\" (click)=\"queryOr=''\">\r\n <mat-icon>close</mat-icon>\r\n </a>\r\n }\r\n <mat-hint>Separate da virgola</mat-hint>\r\n </mat-form-field>\r\n <!--\r\n <mat-form-field>\r\n <mat-label>Parole che iniziano con</mat-label>\r\n <input matInput name=\"queryStart\" [(ngModel)]=\"queryStart\" maxlength=\"200\" />\r\n @if (queryStart) {\r\n <a matSuffix mat-icon-button aria-label=\"Azzera\" (click)=\"queryStart=''\">\r\n <mat-icon>close</mat-icon>\r\n </a>\r\n }\r\n <mat-hint>Separate da virgola</mat-hint>\r\n </mat-form-field>\r\n -->\r\n <mat-form-field>\r\n <mat-label>Nessuna qualunque di queste parole</mat-label>\r\n <input matInput name=\"queryNot\" [(ngModel)]=\"queryNot\" maxlength=\"200\" />\r\n @if (queryNot) {\r\n <a matSuffix mat-icon-button aria-label=\"Azzera\" (click)=\"queryNot=''\">\r\n <mat-icon>close</mat-icon>\r\n </a>\r\n }\r\n <mat-hint>Separate da virgola. L'operatore di esclusione funziona solo se prima \u00E8 stato inserito un valore in\r\n almeno uno degli altri quattro campi. </mat-hint>\r\n </mat-form-field>\r\n </div>\r\n </form>\r\n</mat-dialog-content>\r\n<mat-dialog-actions>\r\n <div fxLayout=\"row\" fxLayoutGap=\"10px\" fxFill>\r\n <div fxFlex=\"30\" fxLayoutAlign=\"start\">\r\n <button type=\"button\" mat-stroked-button (click)=\"clear()\">Pulisci</button>\r\n </div>\r\n <div fxFlex=\"70\" fxLayoutAlign=\"end\">\r\n <button mat-flat-button (click)=\"ok()\">Ok</button>\r\n <button mat-stroked-button [mat-dialog-close]=\"true\">Annulla</button>\r\n </div>\r\n </div>\r\n</mat-dialog-actions>", styles: [""], dependencies: [{ kind: "directive", type: MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1$2.NgForm, selector: "form:not([ngNoForm]):not([formGroup]):not([formArray]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FlexModule$1 }, { kind: "directive", type: i1.DefaultLayoutDirective, 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]", inputs: ["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"] }, { kind: "directive", type: i1.DefaultLayoutGapDirective, 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]", inputs: ["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"] }, { kind: "directive", type: i1.DefaultLayoutAlignDirective, 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]", inputs: ["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"] }, { kind: "directive", type: i1.FlexFillDirective, selector: "[fxFill], [fxFlexFill]" }, { kind: "directive", type: i1.DefaultFlexDirective, 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]", inputs: ["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"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3$1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i3$1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i4$1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2$1.MatButton, 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] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i2$1.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2889
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: ClipperSearchFreeTextQueryBuilderComponent, isStandalone: true, selector: "ng-component", outputs: { done: "done" }, host: { attributes: { "Bind": SystemUtils.generateUUID() } }, ngImport: i0, template: "<h2 mat-dialog-title>Trova gli elementi che contengono...</h2>\r\n<mat-dialog-content>\r\n <form name=\"form\" #f=\"ngForm\" (keyup.Enter)=\"!f.form.invalid ? ok() : null\" novalidate>\r\n <div fxLayout=\"column\" style=\"padding-bottom: 20px;\">\r\n <mat-form-field>\r\n <mat-label>Questa esatta parola o frase</mat-label>\r\n <input matInput name=\"queryPhrase\" [(ngModel)]=\"queryPhrase\" maxlength=\"200\" />\r\n @if (queryPhrase) {\r\n <a matSuffix mat-icon-button aria-label=\"Azzera\" (click)=\"queryPhrase=''\">\r\n <mat-icon>close</mat-icon>\r\n </a>\r\n }\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>Tutte queste parole</mat-label>\r\n <input matInput name=\"queryAnd\" [(ngModel)]=\"queryAnd\" maxlength=\"200\" />\r\n @if (queryAnd) {\r\n <a matSuffix mat-icon-button aria-label=\"Azzera\" (click)=\"queryAnd=''\">\r\n <mat-icon>close</mat-icon>\r\n </a>\r\n }\r\n <mat-hint>Separate da virgola</mat-hint>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>Una qualunque di queste parole</mat-label>\r\n <input matInput name=\"queryOr\" [(ngModel)]=\"queryOr\" maxlength=\"200\" />\r\n @if (queryOr) {\r\n <a matSuffix mat-icon-button aria-label=\"Azzera\" (click)=\"queryOr=''\">\r\n <mat-icon>close</mat-icon>\r\n </a>\r\n }\r\n <mat-hint>Separate da virgola</mat-hint>\r\n </mat-form-field>\r\n <!--\r\n <mat-form-field>\r\n <mat-label>Parole che iniziano con</mat-label>\r\n <input matInput name=\"queryStart\" [(ngModel)]=\"queryStart\" maxlength=\"200\" />\r\n @if (queryStart) {\r\n <a matSuffix mat-icon-button aria-label=\"Azzera\" (click)=\"queryStart=''\">\r\n <mat-icon>close</mat-icon>\r\n </a>\r\n }\r\n <mat-hint>Separate da virgola</mat-hint>\r\n </mat-form-field>\r\n -->\r\n <mat-form-field>\r\n <mat-label>Nessuna qualunque di queste parole</mat-label>\r\n <input matInput name=\"queryNot\" [(ngModel)]=\"queryNot\" maxlength=\"200\" />\r\n @if (queryNot) {\r\n <a matSuffix mat-icon-button aria-label=\"Azzera\" (click)=\"queryNot=''\">\r\n <mat-icon>close</mat-icon>\r\n </a>\r\n }\r\n <mat-hint>Separate da virgola. L'operatore di esclusione funziona solo se prima \u00E8 stato inserito un valore in\r\n almeno uno degli altri quattro campi. </mat-hint>\r\n </mat-form-field>\r\n </div>\r\n </form>\r\n</mat-dialog-content>\r\n<mat-dialog-actions>\r\n <div fxLayout=\"row\" fxLayoutGap=\"10px\" fxFill>\r\n <div fxFlex=\"30\" fxLayoutAlign=\"start\">\r\n <button type=\"button\" mat-stroked-button (click)=\"clear()\">Pulisci</button>\r\n </div>\r\n <div fxFlex=\"70\" fxLayoutAlign=\"end\">\r\n <button mat-flat-button (click)=\"ok()\">Ok</button>\r\n <button mat-stroked-button [mat-dialog-close]=\"true\">Annulla</button>\r\n </div>\r\n </div>\r\n</mat-dialog-actions>", styles: [""], dependencies: [{ kind: "directive", type: MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1$2.NgForm, selector: "form:not([ngNoForm]):not([formGroup]):not([formArray]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FlexModule$1 }, { kind: "directive", type: i1.DefaultLayoutDirective, 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]", inputs: ["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"] }, { kind: "directive", type: i1.DefaultLayoutGapDirective, 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]", inputs: ["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"] }, { kind: "directive", type: i1.DefaultLayoutAlignDirective, 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]", inputs: ["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"] }, { kind: "directive", type: i1.FlexFillDirective, selector: "[fxFill], [fxFlexFill]" }, { kind: "directive", type: i1.DefaultFlexDirective, 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]", inputs: ["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"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3$1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i3$1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i4$1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i5.MatButton, 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] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i5.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3018
2890
  }
3019
2891
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ClipperSearchFreeTextQueryBuilderComponent, decorators: [{
3020
2892
  type: Component,
@@ -3024,7 +2896,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
3024
2896
 
3025
2897
  class ClipperSearchFreeTextHelpComponent {
3026
2898
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ClipperSearchFreeTextHelpComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3027
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.0", type: ClipperSearchFreeTextHelpComponent, isStandalone: true, selector: "ng-component", host: { attributes: { "Bind": SystemUtils.generateUUID() } }, ngImport: i0, template: "<h2 mat-dialog-title>Come effettuare la ricerca in testo libero</h2>\r\n<mat-dialog-content>\r\n <p>Normalmente viene sempre effettuata una ricerca per frase: tutte le parole specificate debbono essere\r\n \"ragionevolmente vicine\" (entro 5 parole) l'una dall'altra.</p>\r\n <p>La ricerca per frase di solito produce i risultati pi\u00F9 rilevanti.</p>\r\n <p>Tuttavia \u00E8 possibile istruire Clipper per eseguire ricerche differenti e pi\u00F9 complesse.</p>\r\n <p>Tutte gli elementi che compongono la stringa di ricerca devono essere separati da virgola.</p>\r\n <ul>\r\n <li>Se un elemento \u00E8 composto da pi\u00F9 parole \u00E8 una frase, altrimenti una parola</li>\r\n <li>Aggiungendo un <b style=\"font-size: 20px\">+</b> davanti all'elemento, l'elemento <b>dovr\u00E0 per forza</b> essere presente nel documento\r\n </li>\r\n <li>Aggiungendo un <b style=\"font-size: 20px\">-</b> davanti all'elemento, l'elemento <b>non dovr\u00E0</b> essere presente nel documento</li>\r\n </ul>\r\n <p>Ecco alcuni esempi:</p>\r\n <ul>\r\n <li><b>serbatoi interrati</b>: sar\u00E0 effettuata una ricerca per la frase \"serbatoi interrati\"</li>\r\n <li><b>serbatoi, interrati</b>: sar\u00E0 effettuata una ricerca per le parole \"serbatoi\" e \"interrati\"; il risultato sar\u00E0 tutti i documenti che contengono una o l'altra parola.</li>\r\n <li><b>serbatoi, +interrati</b>: sar\u00E0 effettuata una ricerca per le parole \"serbatoi\" e \"interrati\"; il risultato sar\u00E0 tutti i documenti che contengono necessariamente \"interrati\" ed eventualmente \"serbatoi\".</li>\r\n <li><b>serbatoi, -interrati</b>: sar\u00E0 effettuata una ricerca per le parole \"serbatoi\" e \"interrati\"; il risultato sar\u00E0 tutti i documenti che contengono necessariamente \"interrati\" ma non \"serbatoi\".</li>\r\n <li><b>\"serbatoi interrati\", -gas</b>: sar\u00E0 effettuata una ricerca per la frase \"serbatoi interrati\" e per la parola \"gas\"; il risultato sar\u00E0 tutti i documenti che contengono la frase \"serbatoi interrati\" ma non la parola \"gas\".</li>\r\n </ul>\r\n <p>Saranno mostrati per primi (pi\u00F9 rilevanti) i documenti che rispettano in pieno la condizione.</p>\r\n</mat-dialog-content>\r\n<mat-dialog-actions>\r\n <div fxLayout=\"row\" fxLayoutGap=\"10px\" fxFill>\r\n <div fxLayoutAlign=\"end\" fxFill >\r\n <button mat-stroked-button [mat-dialog-close]=\"true\" >Chiudi</button>\r\n </div>\r\n </div>\r\n</mat-dialog-actions>\r\n", styles: [""], dependencies: [{ kind: "directive", type: MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "ngmodule", type: FlexModule$1 }, { kind: "directive", type: i1.DefaultLayoutDirective, 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]", inputs: ["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"] }, { kind: "directive", type: i1.DefaultLayoutGapDirective, 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]", inputs: ["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"] }, { kind: "directive", type: i1.DefaultLayoutAlignDirective, 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]", inputs: ["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"] }, { kind: "directive", type: i1.FlexFillDirective, selector: "[fxFill], [fxFlexFill]" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2$1.MatButton, 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] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2899
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.0", type: ClipperSearchFreeTextHelpComponent, isStandalone: true, selector: "ng-component", host: { attributes: { "Bind": SystemUtils.generateUUID() } }, ngImport: i0, template: "<h2 mat-dialog-title>Come effettuare la ricerca in testo libero</h2>\r\n<mat-dialog-content>\r\n <p>Normalmente viene sempre effettuata una ricerca per frase: tutte le parole specificate debbono essere\r\n \"ragionevolmente vicine\" (entro 5 parole) l'una dall'altra.</p>\r\n <p>La ricerca per frase di solito produce i risultati pi\u00F9 rilevanti.</p>\r\n <p>Tuttavia \u00E8 possibile istruire Clipper per eseguire ricerche differenti e pi\u00F9 complesse.</p>\r\n <p>Tutte gli elementi che compongono la stringa di ricerca devono essere separati da virgola.</p>\r\n <ul>\r\n <li>Se un elemento \u00E8 composto da pi\u00F9 parole \u00E8 una frase, altrimenti una parola</li>\r\n <li>Aggiungendo un <b style=\"font-size: 20px\">+</b> davanti all'elemento, l'elemento <b>dovr\u00E0 per forza</b> essere presente nel documento\r\n </li>\r\n <li>Aggiungendo un <b style=\"font-size: 20px\">-</b> davanti all'elemento, l'elemento <b>non dovr\u00E0</b> essere presente nel documento</li>\r\n </ul>\r\n <p>Ecco alcuni esempi:</p>\r\n <ul>\r\n <li><b>serbatoi interrati</b>: sar\u00E0 effettuata una ricerca per la frase \"serbatoi interrati\"</li>\r\n <li><b>serbatoi, interrati</b>: sar\u00E0 effettuata una ricerca per le parole \"serbatoi\" e \"interrati\"; il risultato sar\u00E0 tutti i documenti che contengono una o l'altra parola.</li>\r\n <li><b>serbatoi, +interrati</b>: sar\u00E0 effettuata una ricerca per le parole \"serbatoi\" e \"interrati\"; il risultato sar\u00E0 tutti i documenti che contengono necessariamente \"interrati\" ed eventualmente \"serbatoi\".</li>\r\n <li><b>serbatoi, -interrati</b>: sar\u00E0 effettuata una ricerca per le parole \"serbatoi\" e \"interrati\"; il risultato sar\u00E0 tutti i documenti che contengono necessariamente \"interrati\" ma non \"serbatoi\".</li>\r\n <li><b>\"serbatoi interrati\", -gas</b>: sar\u00E0 effettuata una ricerca per la frase \"serbatoi interrati\" e per la parola \"gas\"; il risultato sar\u00E0 tutti i documenti che contengono la frase \"serbatoi interrati\" ma non la parola \"gas\".</li>\r\n </ul>\r\n <p>Saranno mostrati per primi (pi\u00F9 rilevanti) i documenti che rispettano in pieno la condizione.</p>\r\n</mat-dialog-content>\r\n<mat-dialog-actions>\r\n <div fxLayout=\"row\" fxLayoutGap=\"10px\" fxFill>\r\n <div fxLayoutAlign=\"end\" fxFill >\r\n <button mat-stroked-button [mat-dialog-close]=\"true\" >Chiudi</button>\r\n </div>\r\n </div>\r\n</mat-dialog-actions>\r\n", styles: [""], dependencies: [{ kind: "directive", type: MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "ngmodule", type: FlexModule$1 }, { kind: "directive", type: i1.DefaultLayoutDirective, 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]", inputs: ["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"] }, { kind: "directive", type: i1.DefaultLayoutGapDirective, 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]", inputs: ["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"] }, { kind: "directive", type: i1.DefaultLayoutAlignDirective, 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]", inputs: ["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"] }, { kind: "directive", type: i1.FlexFillDirective, selector: "[fxFill], [fxFlexFill]" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i5.MatButton, 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] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3028
2900
  }
3029
2901
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ClipperSearchFreeTextHelpComponent, decorators: [{
3030
2902
  type: Component,
@@ -3130,7 +3002,7 @@ class ClipperBrowserComponent extends ClipperSearchResultManager {
3130
3002
  Breakpoints.Large,
3131
3003
  Breakpoints.XLarge,
3132
3004
  ])
3133
- .pipe(takeUntil(this.unsubscribe))
3005
+ .pipe(takeUntilDestroyed(this.destroyRef))
3134
3006
  .subscribe(result => {
3135
3007
  for (const query of Object.keys(result.breakpoints)) {
3136
3008
  if (result.breakpoints[query]) {
@@ -3140,7 +3012,7 @@ class ClipperBrowserComponent extends ClipperSearchResultManager {
3140
3012
  });
3141
3013
  // React to message broadcasting
3142
3014
  this.broadcastService.getMessage()
3143
- .pipe(takeUntil(this.unsubscribe))
3015
+ .pipe(takeUntilDestroyed(this.destroyRef))
3144
3016
  .subscribe(message => {
3145
3017
  if (message.id === ClipperMessages.COMMAND_DASHBOARD_UPDATED) {
3146
3018
  this.updateModulesUnreadItems();
@@ -3192,10 +3064,6 @@ class ClipperBrowserComponent extends ClipperSearchResultManager {
3192
3064
  }, 0);
3193
3065
  this.changeDetector.detectChanges();
3194
3066
  }
3195
- ngOnDestroy() {
3196
- this.unsubscribe.next();
3197
- this.unsubscribe.complete();
3198
- }
3199
3067
  /**
3200
3068
  * Get all available modules
3201
3069
  */
@@ -4155,7 +4023,7 @@ class ClipperBrowserComponent extends ClipperSearchResultManager {
4155
4023
  this.changeDetector.markForCheck();
4156
4024
  }
4157
4025
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ClipperBrowserComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
4158
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: ClipperBrowserComponent, isStandalone: true, selector: "clipper-browser", inputs: { showChannels: { classPropertyName: "showChannels", publicName: "showChannels", isSignal: true, isRequired: false, transformFunction: null }, showRSOptions: { classPropertyName: "showRSOptions", publicName: "showRSOptions", isSignal: true, isRequired: false, transformFunction: null }, showAIAssistantOptions: { classPropertyName: "showAIAssistantOptions", publicName: "showAIAssistantOptions", isSignal: true, isRequired: false, transformFunction: null }, selectableModules: { classPropertyName: "selectableModules", publicName: "selectableModules", isSignal: true, isRequired: false, transformFunction: null }, initialModule: { classPropertyName: "initialModule", publicName: "initialModule", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "filterByNumber", first: true, predicate: ["filterByNumber"], descendants: true, isSignal: true }, { propertyName: "filterByText", first: true, predicate: ["filterByText"], descendants: true, isSignal: true }, { propertyName: "filterByChangeNumber", first: true, predicate: ["filterByChangeNumber"], descendants: true, isSignal: true }, { propertyName: "filterPane", first: true, predicate: ["filterPane"], descendants: true, isSignal: true }, { propertyName: "filterPane2", first: true, predicate: ["filterPane2"], descendants: true, isSignal: true }, { propertyName: "filterSelector", first: true, predicate: ["filterSelector"], descendants: true, isSignal: true }, { propertyName: "moduleSelector", first: true, predicate: ["moduleSelector"], descendants: true, isSignal: true }, { propertyName: "sourceExpansionPanel", first: true, predicate: ["sourceExpansionPanel"], descendants: true, isSignal: true }, { propertyName: "otherOptionsExpansionPanel", first: true, predicate: ["otherOptionsExpansionPanel"], descendants: true, isSignal: true }, { propertyName: "modifierExpansionPanel", first: true, predicate: ["modifierExpansionPanel"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<mat-drawer-container [hasBackdrop]=\"filterPaneHasBackdrop\" class=\"fill\">\r\n <mat-drawer #filterPane class=\"drawer\">\r\n <div fxLayout=\"column\" fxFill>\r\n <div fxFlex=\"78px\" class=\"title-container\">\r\n <div fxLayout=\"row\" fxLayoutGap=\"10px\" fxLayoutAlign=\"start center\" fxFill>\r\n <div class=\"title\">Filtro</div>\r\n <div fxFlex=\"*\" fxLayoutAlign=\"end\">\r\n <button fxFlexAlign=\"center\" mat-icon-button (click)=\"saveFilter(true)\"\r\n matTooltip=\"Crea una nuovo filtro con i parametri attuali \"><mat-icon>add</mat-icon></button>\r\n <button fxFlexAlign=\"center\" mat-icon-button (click)=\"toggleFilterPane()\"\r\n matTooltip=\"Nascondi\"><mat-icon>left_panel_close</mat-icon></button>\r\n </div>\r\n </div>\r\n </div>\r\n @if(hasFilters()) {\r\n <div style=\"padding:10px 20px\">\r\n <div fxLayout=\"row\" fxLayoutGap=\"10px\" fxFill>\r\n <div fxFlex=\"*\">\r\n <button-selector #filterSelector [options]=\"filters()\" label=\"Seleziona un filtro salvato\"\r\n labelSelected=\"Filtro in uso:\" fxFlexAlign=\"center\" (selected)=\"selectFilter($event)\"\r\n [matTooltip]=\"filterParams.searchName ?? ''\"></button-selector>\r\n </div>\r\n @if(filterParams.searchId) {\r\n <div fxFlex=\"40px\">\r\n <button fxFlexAlign=\"center\" mat-icon-button (click)=\"deleteFilter()\"\r\n matTooltip=\"Elimina il filtro in uso\"><mat-icon>delete</mat-icon></button>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n }\r\n <div fxFlex=\"*\" class=\"content scroll-hidden\" style=\"padding-bottom: 10px;\">\r\n <div class=\"scroll-auto\" style=\"padding: 0 10px;\">\r\n <form name=\"form\" #f=\"ngForm\" (keyup.Enter)=\"applyFilter()\" novalidate>\r\n <mat-accordion multi displayMode=\"flat\">\r\n <mat-expansion-panel expanded class=\"accordion-panel mat-elevation-z0 \">\r\n <mat-expansion-panel-header class=\"accordion-header\">\r\n <mat-panel-title>\r\n Cerca in..\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n\r\n <chips-selector #moduleSelector [(ngModel)]=\"filterParams.modules\" [collapseAt]=\"599\" [multiple]=\"true\"\r\n label=\"Sezioni\" name=\"modules\" [options]=\"modules()\" (changed)=\"modulesChanged()\">\r\n </chips-selector>\r\n </mat-expansion-panel>\r\n\r\n @if((hasTags() || hasTopics()) && !isCoordination()) {\r\n <mat-expansion-panel class=\"accordion-panel mat-elevation-z0\">\r\n <mat-expansion-panel-header class=\"accordion-header\">\r\n <mat-panel-title>\r\n Argomenti\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n @if(hasTags()) {\r\n <chips-selector [collapseAt]=\"599\" [(ngModel)]=\"filterParams.tags\" [multiple]=\"true\" name=\"tags\"\r\n label=\"Argomenti\" [options]=\"tags()\"></chips-selector>\r\n }\r\n @if(hasTopics()) {\r\n @if ((filterParams.topics?.length ?? 0) > 0) {\r\n <mat-chip-grid #topics [(ngModel)]=\"filterParams.topics\" name=\"topics\" style=\"padding-bottom: 5px;\">\r\n @for (o of filterParams.topics; track $index) {\r\n <mat-chip-row [value]=\"o\" (removed)=\"deleteTopic(o)\">\r\n {{o.name}}\r\n <button matChipRemove>\r\n <mat-icon>cancel</mat-icon>\r\n </button></mat-chip-row>\r\n }\r\n </mat-chip-grid>\r\n <input style=\"display: none;\" [matChipInputFor]=\"topics\" />\r\n }\r\n <div fxLayout=\"row\" fxLayoutAlign=\"end center\">\r\n <button mat-button type=\"button\" (click)=\"addTopic()\"><mat-icon>add</mat-icon> Aggiungi\r\n argomento</button>\r\n @if ((filterParams.topics?.length ?? 0) > 0) {\r\n <button mat-button type=\"button\" (click)=\"clearTopics()\"><mat-icon>delete</mat-icon> Azzera</button>\r\n }\r\n </div>\r\n }\r\n </mat-expansion-panel>\r\n }\r\n @if(hasSectors()) {\r\n <mat-expansion-panel class=\"accordion-panel mat-elevation-z0 \">\r\n <mat-expansion-panel-header class=\"accordion-header\">\r\n <mat-panel-title>\r\n Settori\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n <chips-selector [collapseAt]=\"599\" [(ngModel)]=\"filterParams.sectors\" [multiple]=\"true\" name=\"sectors\"\r\n label=\"Settori\" [options]=\"sectors()\" (changed)=\"sectorsChanged()\" />\r\n @if(hasRegions())\r\n {\r\n <mat-divider style=\"padding-top: 8px; margin-top:8px\"></mat-divider>\r\n <chips-selector [(ngModel)]=\"filterParams.authors\" [multiple]=\"true\" name=\"authors\" mode=\"collapsed\"\r\n label=\"Tutte le regioni\" [options]=\"regions()\" />\r\n }\r\n </mat-expansion-panel>\r\n }\r\n @if(!isCoordination()) {\r\n <mat-expansion-panel expanded class=\"accordion-panel mat-elevation-z0 \">\r\n <mat-expansion-panel-header class=\"accordion-header\">\r\n <mat-panel-title>\r\n Documento\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n <div fxLayout=\"column\">\r\n @if(isLaws()) {\r\n <div fxLayout=\"row wrap\" fxLayoutAlign=\"space-between center\" fxFill>\r\n <mat-form-field fxFlex=\"59\" fxFlex.xs=\"49\">\r\n <mat-label>Numero</mat-label>\r\n <input matInput maxlength=\"10\" [(ngModel)]=\"filterParams.number\" name=\"number\"\r\n #filterByNumber=\"matInput\" />\r\n @if (filterParams.number) {\r\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\r\n (click)=\"filterParams.number = null\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n }\r\n </mat-form-field>\r\n <mat-form-field fxFlex=\"39\" fxFlex.xs=\"49\">\r\n <mat-label>Anno</mat-label>\r\n <input type=\"number\" min=\"1750\" matInput maxlength=\"4\" [(ngModel)]=\"filterParams.year\"\r\n name=\"year\" />\r\n @if (filterParams.year) {\r\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\r\n (click)=\"filterParams.year = null\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n }\r\n </mat-form-field>\r\n </div>\r\n }\r\n <mat-form-field>\r\n <mat-label>Intervallo di pubblicazione</mat-label>\r\n <mat-date-range-input [rangePicker]=\"picker1\">\r\n <input matStartDate [(ngModel)]=\"interval.from\" [dateIntervalChange]=\"interval\"\r\n #rangeFrom1=\"ngModel\" name=\"rangeFrom1\" placeholder=\"Da data\">\r\n <input matEndDate [(ngModel)]=\"interval.to\" [dateIntervalChange]=\"interval\" [end]=\"true\"\r\n #rangeTo1=\"ngModel\" name=\"rangeTo1\" placeholder=\"A data\">\r\n </mat-date-range-input>\r\n @if (interval.from || interval.to) {\r\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\r\n (click)=\"interval.clear()\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n }\r\n <mat-datepicker-toggle matSuffix [for]=\"picker1\"></mat-datepicker-toggle>\r\n <mat-date-range-picker #picker1></mat-date-range-picker>\r\n @if (rangeFrom1.invalid || rangeTo1.invalid) {\r\n <mat-error>Intervallo non valido.</mat-error>\r\n }\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>Testo</mat-label>\r\n <input matInput maxlength=\"200\" [(ngModel)]=\"filterParams.text\" name=\"text\"\r\n #filterByText=\"matInput\" />\r\n @if (filterParams.text) {\r\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\r\n (click)=\"filterParams.text = null\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n }\r\n <button type=\"button\" tabindex=\"-1\" mat-icon-button matSuffix matTooltip=\"Opzioni\"\r\n aria-label=\"Opzioni\"\r\n [matMenuTriggerFor]=\"filterPaneOptionsMenu\"><mat-icon>more_vert</mat-icon></button>\r\n </mat-form-field>\r\n <div>\r\n @if(filterParams.text) {\r\n <div style=\"padding-bottom:10px\">\r\n <mat-slide-toggle [(ngModel)]=\"filterParams.titleOnly\" name=\"titleOnly\">Cerca solo nel\r\n titolo</mat-slide-toggle>\r\n </div>\r\n }\r\n @if(isLaws(false)) {\r\n <div style=\"padding-bottom:10px\">\r\n <mat-slide-toggle [(ngModel)]=\"filterParams.showNotAbrogatedDocumentsOnly\"\r\n name=\"showNotAbrogatedDocumentsOnly\">Mostra solo elementi non abrogati</mat-slide-toggle>\r\n </div>\r\n <div style=\"padding-bottom:10px\">\r\n <mat-slide-toggle [(ngModel)]=\"filterParams.showCommentedDocumentsOnly\"\r\n name=\"showCommentedDocumentsOnly\">Mostra solo elementi con commenti</mat-slide-toggle>\r\n </div>\r\n }\r\n @if(isReadable()) {\r\n <div style=\"padding-bottom:10px\">\r\n <mat-slide-toggle [(ngModel)]=\"filterParams.showUnreadDocumentsOnly\"\r\n name=\"showUnreadDocumentsOnly\">Mostra solo elementi non letti</mat-slide-toggle>\r\n </div>\r\n }\r\n\r\n </div>\r\n </div>\r\n </mat-expansion-panel>\r\n @if(isLaws(false)) {\r\n <mat-expansion-panel #sourceExpansionPanel class=\"accordion-panel mat-elevation-z0 \">\r\n <mat-expansion-panel-header class=\"accordion-header\">\r\n <mat-panel-title>\r\n Fonte\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n <div fxLayout=\"column\">\r\n <div fxLayout=\"row wrap\" fxLayoutAlign=\"space-between center\" fxFill>\r\n <mat-form-field fxFlex=\"59\" fxFlex.xs=\"100\">\r\n <mat-label>Numero</mat-label>\r\n <input matInput maxlength=\"10\" [(ngModel)]=\"filterParams.sourceNumber\" name=\"sourceNumber\" />\r\n @if (filterParams.sourceNumber) {\r\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\r\n (click)=\"filterParams.sourceNumber = null\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n }\r\n </mat-form-field>\r\n <mat-form-field fxHide.xs fxFlex=\"39\" fxFlex.xs=\"100\">\r\n <mat-label>Anno</mat-label>\r\n <input type=\"number\" min=\"1750\" matInput maxlength=\"4\" [(ngModel)]=\"filterParams.sourceYear\"\r\n name=\"sourceYear\" />\r\n @if (filterParams.sourceYear) {\r\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\r\n (click)=\"filterParams.sourceYear = null\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n }\r\n </mat-form-field>\r\n </div>\r\n <mat-form-field>\r\n <mat-label>Intervallo di pubblicazione</mat-label>\r\n <mat-date-range-input [rangePicker]=\"picker2\">\r\n <input matStartDate [(ngModel)]=\"sourceInterval.from\" [dateIntervalChange]=\"sourceInterval\"\r\n #rangeFrom2=\"ngModel\" name=\"rangeFrom2\" placeholder=\"Da data\">\r\n <input matEndDate [(ngModel)]=\"sourceInterval.to\" [dateIntervalChange]=\"sourceInterval\"\r\n [end]=\"true\" #rangeTo2=\"ngModel\" name=\"rangeTo2\" placeholder=\"A data\">\r\n </mat-date-range-input>\r\n @if (sourceInterval.from || sourceInterval.to) {\r\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\r\n (click)=\"sourceInterval.clear()\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n }\r\n <mat-datepicker-toggle matSuffix [for]=\"picker2\"></mat-datepicker-toggle>\r\n <mat-date-range-picker #picker2></mat-date-range-picker>\r\n @if (rangeFrom2.invalid || rangeTo2.invalid) {\r\n <mat-error>Intervallo non valido.</mat-error>\r\n }\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>Tipo</mat-label>\r\n <mat-select [(ngModel)]=\"filterParams.source\" name=\"source\">\r\n @for (s of sources(); track $index) {\r\n <mat-option [value]=\"s.value\" [matTooltip]=\"s.name\">\r\n {{s.name}}\r\n </mat-option>\r\n }\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n </div>\r\n </mat-expansion-panel>\r\n <mat-expansion-panel #otherOptionsExpansionPanel class=\"accordion-panel mat-elevation-z0\">\r\n <mat-expansion-panel-header class=\"accordion-header\">\r\n <mat-panel-title>\r\n Altre opzioni\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n <div fxLayout=\"column\">\r\n @if(authors().length > 0 && !hasRegions()) {\r\n <mat-form-field>\r\n <mat-label>Autore</mat-label>\r\n <mat-select [(ngModel)]=\"filterParams.author\" name=\"author\">\r\n @for (a of authors(); track $index) {\r\n <mat-option [value]=\"a.value\" [matTooltip]=\"a.name\">\r\n {{a.name}}\r\n </mat-option>\r\n }\r\n </mat-select>\r\n </mat-form-field>\r\n }\r\n <mat-form-field>\r\n <mat-label>Tipo documento</mat-label>\r\n <mat-select [(ngModel)]=\"filterParams.type\" name=\"type\">\r\n @for (t of types(); track $index) {\r\n <mat-option [value]=\"t.value\" [matTooltip]=\"t.name\">\r\n {{t.name}}\r\n </mat-option>\r\n }\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n\r\n </mat-expansion-panel>\r\n }\r\n } @else {\r\n <mat-expansion-panel expanded class=\"accordion-panel mat-elevation-z0 \">\r\n <mat-expansion-panel-header class=\"accordion-header\">\r\n <mat-panel-title>\r\n Periodo\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n <mat-form-field style=\"width:100%\">\r\n <mat-label>Intervallo di pubblicazione</mat-label>\r\n <mat-date-range-input [rangePicker]=\"picker1\">\r\n <input matStartDate [(ngModel)]=\"interval.from\" [dateIntervalChange]=\"interval\"\r\n #rangeFrom1=\"ngModel\" name=\"rangeFrom1\" placeholder=\"Da data\">\r\n <input matEndDate [(ngModel)]=\"interval.to\" [dateIntervalChange]=\"interval\" [end]=\"true\"\r\n #rangeTo1=\"ngModel\" name=\"rangeTo1\" placeholder=\"A data\">\r\n </mat-date-range-input>\r\n @if (interval.from || interval.to) {\r\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\r\n (click)=\"interval.clear()\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n }\r\n <mat-datepicker-toggle matSuffix [for]=\"picker1\"></mat-datepicker-toggle>\r\n <mat-date-range-picker #picker1></mat-date-range-picker>\r\n @if (rangeFrom1.invalid || rangeTo1.invalid) {\r\n <mat-error>Intervallo non valido.</mat-error>\r\n }\r\n </mat-form-field>\r\n @if(isReadable()) {\r\n <div style=\"padding-bottom:10px\">\r\n <mat-slide-toggle [(ngModel)]=\"filterParams.showUnreadDocumentsOnly\"\r\n name=\"showUnreadDocumentsOnly\">Mostra solo elementi non letti</mat-slide-toggle>\r\n </div>\r\n }\r\n </mat-expansion-panel>\r\n <mat-expansion-panel expanded class=\"accordion-panel mat-elevation-z0 \">\r\n <mat-expansion-panel-header class=\"accordion-header\">\r\n <mat-panel-title>\r\n Documento modificato\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n <div fxLayout=\"column\">\r\n <div fxLayout=\"row wrap\" fxLayoutAlign=\"space-between center\" fxFill>\r\n <mat-form-field fxFlex=\"59\" fxFlex.xs=\"100\">\r\n <mat-label>Numero</mat-label>\r\n <input matInput maxlength=\"10\" [(ngModel)]=\"filterParams.changedNumber\" name=\"changedNumber\"\r\n #filterByChangeNumber=\"matInput\" />\r\n @if (filterParams.changedNumber) {\r\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\r\n (click)=\"filterParams.changedNumber = null\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n }\r\n </mat-form-field>\r\n <mat-form-field fxHide.xs fxFlex=\"39\" fxFlex.xs=\"100\">\r\n <mat-label>Anno</mat-label>\r\n <input type=\"number\" min=\"1750\" matInput maxlength=\"4\" [(ngModel)]=\"filterParams.changedYear\"\r\n name=\"changedYear\" />\r\n @if (filterParams.changedYear) {\r\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\r\n (click)=\"filterParams.changedYear = null\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n }\r\n </mat-form-field>\r\n </div>\r\n <mat-form-field>\r\n <mat-label>Titolo</mat-label>\r\n <input matInput maxlength=\"200\" [(ngModel)]=\"filterParams.changedTitle\" name=\"changedTitle\" />\r\n @if (filterParams.changedTitle) {\r\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\r\n (click)=\"filterParams.changedTitle = null\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n }\r\n </mat-form-field>\r\n </div>\r\n </mat-expansion-panel>\r\n <mat-expansion-panel #modifierOptionsExpansionPanel class=\"accordion-panel mat-elevation-z0 \">\r\n <mat-expansion-panel-header class=\"accordion-header\">\r\n <mat-panel-title>\r\n Documento modificante\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n <div fxLayout=\"column\">\r\n <div fxLayout=\"row wrap\" fxLayoutAlign=\"space-between center\" fxFill>\r\n <mat-form-field fxFlex=\"59\" fxFlex.xs=\"100\">\r\n <mat-label>Numero</mat-label>\r\n <input matInput maxlength=\"10\" [(ngModel)]=\"filterParams.modifierNumber\" name=\"modifierNumber\" />\r\n @if (filterParams.changedNumber) {\r\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\r\n (click)=\"filterParams.modifierNumber = null\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n }\r\n </mat-form-field>\r\n <mat-form-field fxHide.xs fxFlex=\"39\" fxFlex.xs=\"100\">\r\n <mat-label>Anno</mat-label>\r\n <input type=\"number\" min=\"1750\" matInput maxlength=\"4\" [(ngModel)]=\"filterParams.modifierYear\"\r\n name=\"modifierYear\" />\r\n @if (filterParams.modifierYear) {\r\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\r\n (click)=\"filterParams.modifierYear = null\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n }\r\n </mat-form-field>\r\n </div>\r\n <mat-form-field>\r\n <mat-label>Titolo</mat-label>\r\n <input matInput maxlength=\"200\" [(ngModel)]=\"filterParams.modifierTitle\" name=\"modifierTitle\" />\r\n @if (filterParams.modifierTitle) {\r\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\r\n (click)=\"filterParams.modifierTitle = null\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n }\r\n </mat-form-field>\r\n </div>\r\n </mat-expansion-panel>\r\n <mat-expansion-panel #otherOptionsExpansionPanel class=\"accordion-panel mat-elevation-z0\">\r\n <mat-expansion-panel-header class=\"accordion-header\">\r\n <mat-panel-title>\r\n Altre opzioni\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n <div fxLayout=\"column\">\r\n <mat-form-field>\r\n <mat-label>Motivo</mat-label>\r\n <mat-select [(ngModel)]=\"filterParams.changeReason\" name=\"changeReason\">\r\n @for (r of reasons(); track $index) {\r\n <mat-option [value]=\"r.value\" [matTooltip]=\"r.name\">\r\n {{r.name}}\r\n </mat-option>\r\n }\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n </mat-expansion-panel>\r\n }\r\n </mat-accordion>\r\n </form>\r\n </div>\r\n </div>\r\n @if(showChannels()) {\r\n <div style=\"padding:10px\">\r\n <div fxLayout=\"column\">\r\n <mat-expansion-panel class=\"accordion-panel mat-elevation-z0\" style=\"margin-bottom: 10px;\">\r\n <mat-expansion-panel-header class=\"accordion-header\">\r\n <mat-panel-title>\r\n Canali\r\n </mat-panel-title>\r\n <mat-panel-description>\r\n @for (c of clipperService.availableChannels(); track $index) {\r\n <div class=\"channel-box\" [class.channel-disabled]=\"!c.active || c.disabled\" [matTooltip]=\"c.name\">\r\n <span class=\"label\">{{c.header}}</span>\r\n </div>\r\n }\r\n </mat-panel-description>\r\n </mat-expansion-panel-header>\r\n <chips-selector [collapseAt]=\"599\" [(ngModel)]=\"filterParams.channels\" [multiple]=\"true\" name=\"channels\"\r\n label=\"Canali\" [options]=\"clipperService.availableChannels()\"\r\n (changed)=\"channelsChanged()\"></chips-selector>\r\n\r\n </mat-expansion-panel>\r\n <div fxLayout=\"row\" fxLayoutGap=\"10px\" fxFill>\r\n <div fxFlex=\"*\" fxFlexAlign=\"end\">\r\n <button mat-stroked-button (click)=\"clearFilter()\">Pulisci</button>\r\n <button mat-stroked-button (click)=\"saveFilter()\" style=\"margin-left: 10px;\">Salva</button>\r\n </div>\r\n <div fxLayoutAlign=\"end\">\r\n <button fxFlexAlign=\"end\" mat-flat-button (click)=\"applyFilter()\"\r\n [disabled]=\"!canSearch()\">Applica</button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </mat-drawer>\r\n <div fxLayout=\"column\" fxLayoutGap=\"10px\" fxFill class=\"drawer-content scroll-hidden\">\r\n <div class=\"module-toolbar \">\r\n <div fxLayout=\"row wrap\" fxLayoutAlign=\"space-between\" fxFill>\r\n <div fxFlex=\"49\" fxFlex.lt-md=\"100\" style=\"padding-left: 10px; padding-bottom: 5px;\">\r\n @if(!filterPane.opened) {\r\n <button-toggle cssClass=\"small\" cssClassSmall=\"x-small\" iconOn=\"left_panel_close\" iconOff=\"tune\"\r\n labelOn=\"Nascondi<br>filtri\" labelOff=\"Mostra<br>filtri\" [value]=\"filterPane.opened\"\r\n (changed)=\"toggleFilterPane()\"></button-toggle>\r\n }\r\n </div>\r\n <div fxFlex=\"49\" fxFlex.lt-md=\"100\" fxLayoutAlign=\"end\">\r\n <div fxLayout=\"row\" style=\"height:48px; padding-bottom: 5px;\">\r\n @if((snapshot?.total ?? 0) > 0) {\r\n @if(sortOptions && sortOptions.length > 0) {\r\n <button-selector [options]=\"sortOptions\" label=\"Ordina per:\" style=\"margin-right: 5px;\" [border]=\"0\"\r\n fxFlexAlign=\"center\" [(ngModel)]=\"sortMode\" name=\"sortMode\" (selected)=\"sort($event)\"></button-selector>\r\n }\r\n <button fxFlexAlign=\"center\" mat-icon-button matSuffix matTooltip=\"Opzioni sulla selezione\"\r\n aria-label=\"Opzioni sulla selezione\" [matMenuTriggerFor]=\"selectionOptionsMenu\"\r\n [matBadge]=\"countSelections()\"><mat-icon>checklist</mat-icon></button>\r\n <button fxFlexAlign=\"center\" mat-icon-button matTooltip=\"Salva elenco in Excel \"\r\n (click)=\"exportResults()\"><mat-icon>save_alt</mat-icon></button>\r\n @if (!filterPane2?.opened && hasFacets()){\r\n <button fxFlexAlign=\"center\" mat-icon-button matTooltip=\"Affina ricerca\"\r\n (click)=\"toggleFilterPane2()\"><mat-icon>right_panel_open</mat-icon></button>\r\n }\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div fxFlex=\"*\" class=\"module-content\">\r\n <mat-drawer-container [hasBackdrop]=\"filterPane2HasBackdrop\" class=\"fill\">\r\n <mat-drawer #filterPane2 class=\"drawer-small drawer-with-loader\" position=\"end\" opened=\"false\">\r\n @if (filterBusy()) {\r\n <div class=\"overlay\"></div>\r\n }\r\n <div fxLayout=\"column\" fxFill>\r\n <div fxFlex=\"6px\">\r\n @if (filterBusy()) {\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\">Affina ricerca</div>\r\n <div fxFlex=\"*\" fxLayoutAlign=\"end\">\r\n <button mat-icon-button (click)=\"toggleFilterPane2()\"\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=\"content scroll-hidden\" style=\"padding: 0 5px;\">\r\n <clipper-search-facets #facets></clipper-search-facets>\r\n\r\n </div>\r\n </div>\r\n </mat-drawer>\r\n <div fxLayout=\"column\" fxFill>\r\n <div fxFlex=\"*\" [id]=\"scrollerId\" cdkScrollable class=\"scroll-auto\" style=\"padding: 0 20px;\">\r\n @if (!snapshot?.total) {\r\n <div class=\"message-container\">\r\n @if(snapshot?.total === 0) {\r\n <p class=\"message\"><b>Nessun elemento da visualizzare.</b></p>\r\n } @else {\r\n <div class=\"message\">\r\n <p fxHide.xs><b>Esegui una ricerca compilando i campi necessari nella maschera di ricarca qui a\r\n fianco.</b></p>\r\n <p fxHide.gt-xs><b>Fai click sul bottone <span class=\"accent\"><mat-icon>tune</mat-icon></span> ed esegui\r\n una\r\n ricerca compilando i campi necessari.</b></p>\r\n <p>E' possibile salvare i parametri delle le ricerche pi\u00F9 utilizzate facendo clic su &nbsp;\r\n <mat-icon\r\n style=\"display: inline-flex; border-radius: 9999px; height: 25px; width: 25px; color: var(--ars-color-text-low); background-color: var(--ars-color-accent);\">add</mat-icon>.\r\n </p>\r\n </div>\r\n }\r\n </div>\r\n } @else {\r\n @if (snapshot && (snapshot.total ?? 0) > 0) {\r\n @for (item of snapshot.items; track $index; let i = $index) {\r\n @if (item.group && isSortedByDate()) {\r\n <div class=\"items-group-title\">\r\n <div [class.group-spaced]=\"i > 0\">{{item.group}}</div>\r\n </div>\r\n }\r\n <clipper-search-result-item [item]=\"item\" [parent]=\"this\" [displayModelName]=\"true\" [actions]=\"contextMenu\"\r\n [isReadable]=\"true\"></clipper-search-result-item>\r\n }\r\n }\r\n }\r\n </div>\r\n <!-- footer -->\r\n @if ((snapshot?.total ?? 0) > 0) {\r\n <div class=\"items-footer\">\r\n <div fxLayout=\"row wrap\" fxLayoutGap=\"10px\" fxLayoutAlign=\"space-between center\" fxFill>\r\n <!-- legend -->\r\n <div fxFlex.lt-md=\"100\" class=\"legend-container\">\r\n <div class=\"legend unread-bg\"></div>\r\n non letto\r\n <!--<div class=\"legend next very-popular-bg\"></div>\r\n molto citato\r\n <div class=\"legend next popular-bg\"></div>\r\n citato-->\r\n <div class=\"legend next expired-bg \"></div>\r\n non pi\u00F9 vigente\r\n </div>\r\n <div fxFlex.lt-md=\"100\" fxLayoutAlign=\"end\" [class.wide]=\"filterPane2?.opened\">\r\n <div fxLayout=\"row\">\r\n <mat-paginator fxFlexAlign=\"center\" #paginator class=\"paginator\" [hidePageSize]=\"true\"\r\n [length]=\"snapshot?.total ?? 0\" [pageSize]=\"filterParams.count\" [showFirstLastButtons]=\"true\"\r\n (page)=\"fetchMore($event)\">\r\n </mat-paginator>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </mat-drawer-container>\r\n </div>\r\n </div>\r\n</mat-drawer-container>\r\n<mat-menu #filterPaneOptionsMenu=\"matMenu\">\r\n <button mat-menu-item (click)=\"compose()\">\r\n <mat-icon>build</mat-icon>Componi\r\n </button>\r\n <button mat-menu-item (click)=\"help()\">\r\n <mat-icon>help</mat-icon>Come usare la ricerca in testo libero\r\n </button>\r\n</mat-menu>\r\n<mat-menu #selectionOptionsMenu=\"matMenu\">\r\n <button mat-menu-item (click)=\"selectAll()\">\r\n <mat-icon>select_all</mat-icon>Seleziona tutti\r\n </button>\r\n <clipper-document-menu [parent]=\"this\" [useSelections]=\"true\" [isReadable]=\"true\" [canUseArchive]=\"false\"\r\n [canUseCalendar]=\"false\" [canUseAIAssistant]=\"hasAIAssistant\" [canUseRS]=\"showRSOptions()\">\r\n </clipper-document-menu>\r\n</mat-menu>\r\n<mat-menu #contextMenu=\"matMenu\" (closed)=\"updateMenuButtonsVisibility()\">\r\n <ng-template matMenuContent let-item=\"item\">\r\n <clipper-document-menu [parent]=\"this\" [item]=\"item\" [isReadable]=\"true\" [canUseArchive]=\"false\"\r\n [canUseCalendar]=\"false\" [canUseAIAssistant]=\"hasAIAssistant\" [canUseRS]=\"showRSOptions()\">\r\n </clipper-document-menu>\r\n </ng-template>\r\n</mat-menu>", styles: [".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-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}.wide{min-width:100%!important;max-width:100%!important;width:100%!important}.fill{min-width:100%!important;max-width:100%!important;width:100%!important;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}.smaller{font-size:smaller!important}.small{font-size:small!important;line-height:16px!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:14px!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-small .title-container{padding:20px 5px 20px 0}.drawer .title-container-with-loader,.drawer-small .title-container-with-loader{padding:14px 5px 20px 0}.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}.expired{color:var(--app-color-expired, #ff5449)!important}.expiring{color:var(--app-color-warning, #FFC107)!important}.closed{color:var(--app-color-closed, #388E3C)!important}.unread-bg{background-color:var(--app-color-unread, #f7931c)!important}.error-bg{background-color:var(--ars-color-error, #ff5449)!important}.expired-bg{background-color:var(--app-color-expired, #ff5449)!important}.expiring-bg{background-color:var(--app-color-expiring, #FFC107)!important}.popular-bg,.closed-bg{background-color:var(--ars-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:600!important;color:var(--ars-color-text, #191c1b)}.item-content .details .links a{cursor:pointer!important;color:var(--ars-color-link, #03A9F4);font-weight:600!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-accent, #7894ae)}.tile .tile-date .date-divider,.tile .date .date-divider{width:1px;margin:0 8px;border-left:1px solid var(--ars-color-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-accent, #7894ae)}.stripe .stripe-date .date-divider,.stripe .date .date-divider{width:1px;margin:0 8px;border-left:1px solid var(--ars-color-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)}.message-container{font-size:large;display:flex;justify-content:center;align-items:center;height:50%}.message-container .message{color:var(--ars-color-secondary, #4a635f);text-align:center;padding:40px}.module-content{overflow-x:hidden!important}.module-toolbar{padding:0 5px 0 10px!important}.frame{height:100%!important;min-height:100%!important}.drawer,.drawer-small{background-color:var(--ars-drawer-background-color)!important}@media screen and (min-width:431px){.drawer-small{min-width:360px!important;max-width:360px!important}}.channel-box{border-radius:4px;border:2px solid var(--ars-color-primary);color:var(--ars-color-primary);text-align:center;min-width:28px;min-height:28px;margin-right:12px;display:flex;align-items:center;justify-content:center}.channel-box .label{font-size:15px;font-weight:700}.channel-disabled{opacity:.3}.command{line-height:16px;color:var(--ars-color-primary);font-weight:500;cursor:pointer!important;text-decoration:none}.command:hover{opacity:.8!important}.link{color:var(--ars-color-link);font-weight:500;cursor:pointer!important;text-decoration:none}.link:hover{opacity:.8}.no-spaced{padding-top:0!important;padding-bottom:0!important}.spaced{padding-top:20px!important;padding-bottom:20px!important}.spaced-bottom-20{padding-bottom:20px!important}.spaced-top-20{padding-top:20px!important}.section,.spaced-bottom-10{padding-bottom:10px!important}.spaced-top-10{padding-top:10px!important}.section-title{font-size:large;font-weight:500;padding-top:20px;padding-bottom:8px}.info-3{margin-top:6px;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}.info-4{margin-top:6px;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}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1$2.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1$2.NgForm, selector: "form:not([ngNoForm]):not([formGroup]):not([formArray]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FlexLayoutModule }, { kind: "directive", type: i1.DefaultLayoutDirective, 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]", inputs: ["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"] }, { kind: "directive", type: i1.DefaultLayoutGapDirective, 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]", inputs: ["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"] }, { kind: "directive", type: i1.DefaultLayoutAlignDirective, 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]", inputs: ["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"] }, { kind: "directive", type: i1.FlexFillDirective, selector: "[fxFill], [fxFlexFill]" }, { kind: "directive", type: i1.DefaultFlexAlignDirective, 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]", inputs: ["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"] }, { kind: "directive", type: i1.DefaultFlexDirective, 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]", inputs: ["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"] }, { kind: "directive", type: i2$2.DefaultShowHideDirective, selector: " [fxShow], [fxShow.print], [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], [fxHide.print], [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]", inputs: ["fxShow", "fxShow.print", "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", "fxHide.print", "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"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2$1.MatButton, 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] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i2$1.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: i7$1.CdkScrollable, selector: "[cdk-scrollable], [cdkScrollable]" }, { kind: "ngmodule", type: MatSidenavModule }, { kind: "component", type: i8.MatDrawer, selector: "mat-drawer", inputs: ["position", "mode", "disableClose", "autoFocus", "opened"], outputs: ["openedChange", "opened", "openedStart", "closed", "closedStart", "positionChanged"], exportAs: ["matDrawer"] }, { kind: "component", type: i8.MatDrawerContainer, selector: "mat-drawer-container", inputs: ["autosize", "hasBackdrop"], outputs: ["backdropClick"], exportAs: ["matDrawerContainer"] }, { kind: "ngmodule", type: MatExpansionModule }, { kind: "directive", type: i9.MatAccordion, selector: "mat-accordion", inputs: ["hideToggle", "displayMode", "togglePosition"], exportAs: ["matAccordion"] }, { kind: "component", type: i9.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["hideToggle", "togglePosition"], outputs: ["afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "component", type: i9.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["expandedHeight", "collapsedHeight", "tabIndex"] }, { kind: "directive", type: i9.MatExpansionPanelTitle, selector: "mat-panel-title" }, { kind: "directive", type: i9.MatExpansionPanelDescription, selector: "mat-panel-description" }, { kind: "ngmodule", type: MatDividerModule }, { kind: "component", type: i2.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i6.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i6.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i6.MatMenuContent, selector: "ng-template[matMenuContent]" }, { kind: "directive", type: i6.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3$1.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i3$1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i4$1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i14.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "component", type: i14.MatDateRangeInput, selector: "mat-date-range-input", inputs: ["rangePicker", "required", "dateFilter", "min", "max", "disabled", "separator", "comparisonStart", "comparisonEnd"], exportAs: ["matDateRangeInput"] }, { kind: "directive", type: i14.MatStartDate, selector: "input[matStartDate]", outputs: ["dateChange", "dateInput"] }, { kind: "directive", type: i14.MatEndDate, selector: "input[matEndDate]", outputs: ["dateChange", "dateInput"] }, { kind: "component", type: i14.MatDateRangePicker, selector: "mat-date-range-picker", exportAs: ["matDateRangePicker"] }, { kind: "directive", type: MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "ngmodule", type: ScrollingModule }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i15.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i15.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: MatChipsModule }, { kind: "component", type: i16.MatChipGrid, selector: "mat-chip-grid", inputs: ["disabled", "placeholder", "required", "value", "errorStateMatcher"], outputs: ["change", "valueChange"] }, { kind: "directive", type: i16.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled", "readonly", "matChipInputDisabledInteractive"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i16.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i16.MatChipRow, selector: "mat-chip-row, [mat-chip-row], mat-basic-chip-row, [mat-basic-chip-row]", inputs: ["editable"], outputs: ["edited"] }, { kind: "ngmodule", type: MatSlideToggleModule }, { kind: "component", type: i5.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon", "disabledInteractive"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "component", type: MatPaginator, selector: "mat-paginator", inputs: ["color", "pageIndex", "length", "pageSize", "pageSizeOptions", "hidePageSize", "showFirstLastButtons", "selectConfig", "disabled"], outputs: ["page"], exportAs: ["matPaginator"] }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "ngmodule", type: MatButtonToggleModule }, { kind: "ngmodule", type: MatProgressBarModule }, { kind: "component", type: i7.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "ngmodule", type: ArsCoreModule }, { kind: "directive", type: i19.DateIntervalChangeDirective, selector: "[dateIntervalChange]", inputs: ["dateIntervalChange", "end"] }, { kind: "component", type: ChipsSelectorComponent, selector: "chips-selector", inputs: ["options", "collapsedWidth", "collapsedDisplayMode", "collapseAt", "collapseAtContainer", "label", "multiple", "mustSelect", "mode", "stacked", "padAt", "required", "disabled", "placeholder"], outputs: ["changed"] }, { kind: "component", type: ButtonSelectorComponent, selector: "button-selector", inputs: ["disabled", "width", "border", "borderRadius", "label", "labelSelected", "options", "autoSelect"], outputs: ["changed", "selected"] }, { kind: "component", type: ButtonToggleComponent, selector: "button-toggle", inputs: ["value", "width", "border", "labelOn", "labelOff", "iconOn", "iconOff", "cssClass", "cssClassSmall"], outputs: ["changed"] }, { kind: "component", type: ClipperDocumentMenuComponent, selector: "clipper-document-menu", inputs: ["useSelections", "selectionSource", "parent", "item", "isReference", "isReadable", "isReadableModel", "isLawInForce", "canPrint", "canFind", "canUseCalendar", "canUseArchive", "canUseAIAssistant", "canUseRS", "canOpenDocument"] }, { kind: "component", type: ClipperSearchResultItemComponent, selector: "clipper-search-result-item", inputs: ["parent", "item", "actions", "tileNoPictureUrl", "tilePictureUrl", "isSelectable", "isReadable", "isReadableModel", "displayModifiedTitle", "displayModelName", "displayDate", "displayMode"] }, { kind: "component", type: ClipperSearchFacetsComponent, selector: "clipper-search-facets", inputs: ["handleTooManyResults"], outputs: ["changed"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4026
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: ClipperBrowserComponent, isStandalone: true, selector: "clipper-browser", inputs: { showChannels: { classPropertyName: "showChannels", publicName: "showChannels", isSignal: true, isRequired: false, transformFunction: null }, showRSOptions: { classPropertyName: "showRSOptions", publicName: "showRSOptions", isSignal: true, isRequired: false, transformFunction: null }, showAIAssistantOptions: { classPropertyName: "showAIAssistantOptions", publicName: "showAIAssistantOptions", isSignal: true, isRequired: false, transformFunction: null }, selectableModules: { classPropertyName: "selectableModules", publicName: "selectableModules", isSignal: true, isRequired: false, transformFunction: null }, initialModule: { classPropertyName: "initialModule", publicName: "initialModule", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "filterByNumber", first: true, predicate: ["filterByNumber"], descendants: true, isSignal: true }, { propertyName: "filterByText", first: true, predicate: ["filterByText"], descendants: true, isSignal: true }, { propertyName: "filterByChangeNumber", first: true, predicate: ["filterByChangeNumber"], descendants: true, isSignal: true }, { propertyName: "filterPane", first: true, predicate: ["filterPane"], descendants: true, isSignal: true }, { propertyName: "filterPane2", first: true, predicate: ["filterPane2"], descendants: true, isSignal: true }, { propertyName: "filterSelector", first: true, predicate: ["filterSelector"], descendants: true, isSignal: true }, { propertyName: "moduleSelector", first: true, predicate: ["moduleSelector"], descendants: true, isSignal: true }, { propertyName: "sourceExpansionPanel", first: true, predicate: ["sourceExpansionPanel"], descendants: true, isSignal: true }, { propertyName: "otherOptionsExpansionPanel", first: true, predicate: ["otherOptionsExpansionPanel"], descendants: true, isSignal: true }, { propertyName: "modifierExpansionPanel", first: true, predicate: ["modifierExpansionPanel"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<mat-drawer-container [hasBackdrop]=\"filterPaneHasBackdrop\" class=\"fill\">\r\n <mat-drawer #filterPane class=\"drawer\">\r\n <div fxLayout=\"column\" fxFill>\r\n <div fxFlex=\"78px\" class=\"title-container\">\r\n <div fxLayout=\"row\" fxLayoutGap=\"10px\" fxLayoutAlign=\"start center\" fxFill>\r\n <div class=\"title\">Filtro</div>\r\n <div fxFlex=\"*\" fxLayoutAlign=\"end\">\r\n <button fxFlexAlign=\"center\" mat-icon-button (click)=\"saveFilter(true)\"\r\n matTooltip=\"Crea una nuovo filtro con i parametri attuali \"><mat-icon>add</mat-icon></button>\r\n <button fxFlexAlign=\"center\" mat-icon-button (click)=\"toggleFilterPane()\"\r\n matTooltip=\"Nascondi\"><mat-icon>left_panel_close</mat-icon></button>\r\n </div>\r\n </div>\r\n </div>\r\n @if(hasFilters()) {\r\n <div style=\"padding:10px 20px\">\r\n <div fxLayout=\"row\" fxLayoutGap=\"10px\" fxFill>\r\n <div fxFlex=\"*\">\r\n <button-selector #filterSelector [options]=\"filters()\" label=\"Seleziona un filtro salvato\"\r\n labelSelected=\"Filtro in uso:\" fxFlexAlign=\"center\" (selected)=\"selectFilter($event)\"\r\n [matTooltip]=\"filterParams.searchName ?? ''\"></button-selector>\r\n </div>\r\n @if(filterParams.searchId) {\r\n <div fxFlex=\"40px\">\r\n <button fxFlexAlign=\"center\" mat-icon-button (click)=\"deleteFilter()\"\r\n matTooltip=\"Elimina il filtro in uso\"><mat-icon>delete</mat-icon></button>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n }\r\n <div fxFlex=\"*\" class=\"content scroll-hidden\" style=\"padding-bottom: 10px;\">\r\n <div class=\"scroll-auto\" style=\"padding: 0 10px;\">\r\n <form name=\"form\" #f=\"ngForm\" (keyup.Enter)=\"applyFilter()\" novalidate>\r\n <mat-accordion multi displayMode=\"flat\">\r\n <mat-expansion-panel expanded class=\"accordion-panel mat-elevation-z0 \">\r\n <mat-expansion-panel-header class=\"accordion-header\">\r\n <mat-panel-title>\r\n Cerca in..\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n\r\n <chips-selector #moduleSelector [(ngModel)]=\"filterParams.modules\" [collapseAt]=\"599\" [multiple]=\"true\"\r\n label=\"Sezioni\" name=\"modules\" [options]=\"modules()\" (changed)=\"modulesChanged()\">\r\n </chips-selector>\r\n </mat-expansion-panel>\r\n\r\n @if((hasTags() || hasTopics()) && !isCoordination()) {\r\n <mat-expansion-panel class=\"accordion-panel mat-elevation-z0\">\r\n <mat-expansion-panel-header class=\"accordion-header\">\r\n <mat-panel-title>\r\n Argomenti\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n @if(hasTags()) {\r\n <chips-selector [collapseAt]=\"599\" [(ngModel)]=\"filterParams.tags\" [multiple]=\"true\" name=\"tags\"\r\n label=\"Argomenti\" [options]=\"tags()\"></chips-selector>\r\n }\r\n @if(hasTopics()) {\r\n @if ((filterParams.topics?.length ?? 0) > 0) {\r\n <mat-chip-grid #topics [(ngModel)]=\"filterParams.topics\" name=\"topics\" style=\"padding-bottom: 5px;\">\r\n @for (o of filterParams.topics; track $index) {\r\n <mat-chip-row [value]=\"o\" (removed)=\"deleteTopic(o)\">\r\n {{o.name}}\r\n <button matChipRemove>\r\n <mat-icon>cancel</mat-icon>\r\n </button></mat-chip-row>\r\n }\r\n </mat-chip-grid>\r\n <input style=\"display: none;\" [matChipInputFor]=\"topics\" />\r\n }\r\n <div fxLayout=\"row\" fxLayoutAlign=\"end center\">\r\n <button mat-button type=\"button\" (click)=\"addTopic()\"><mat-icon>add</mat-icon> Aggiungi\r\n argomento</button>\r\n @if ((filterParams.topics?.length ?? 0) > 0) {\r\n <button mat-button type=\"button\" (click)=\"clearTopics()\"><mat-icon>delete</mat-icon> Azzera</button>\r\n }\r\n </div>\r\n }\r\n </mat-expansion-panel>\r\n }\r\n @if(hasSectors()) {\r\n <mat-expansion-panel class=\"accordion-panel mat-elevation-z0 \">\r\n <mat-expansion-panel-header class=\"accordion-header\">\r\n <mat-panel-title>\r\n Settori\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n <chips-selector [collapseAt]=\"599\" [(ngModel)]=\"filterParams.sectors\" [multiple]=\"true\" name=\"sectors\"\r\n label=\"Settori\" [options]=\"sectors()\" (changed)=\"sectorsChanged()\" />\r\n @if(hasRegions())\r\n {\r\n <mat-divider style=\"padding-top: 8px; margin-top:8px\"></mat-divider>\r\n <chips-selector [(ngModel)]=\"filterParams.authors\" [multiple]=\"true\" name=\"authors\" mode=\"collapsed\"\r\n label=\"Tutte le regioni\" [options]=\"regions()\" />\r\n }\r\n </mat-expansion-panel>\r\n }\r\n @if(!isCoordination()) {\r\n <mat-expansion-panel expanded class=\"accordion-panel mat-elevation-z0 \">\r\n <mat-expansion-panel-header class=\"accordion-header\">\r\n <mat-panel-title>\r\n Documento\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n <div fxLayout=\"column\">\r\n @if(isLaws()) {\r\n <div fxLayout=\"row wrap\" fxLayoutAlign=\"space-between center\" fxFill>\r\n <mat-form-field fxFlex=\"59\" fxFlex.xs=\"49\">\r\n <mat-label>Numero</mat-label>\r\n <input matInput maxlength=\"10\" [(ngModel)]=\"filterParams.number\" name=\"number\"\r\n #filterByNumber=\"matInput\" />\r\n @if (filterParams.number) {\r\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\r\n (click)=\"filterParams.number = null\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n }\r\n </mat-form-field>\r\n <mat-form-field fxFlex=\"39\" fxFlex.xs=\"49\">\r\n <mat-label>Anno</mat-label>\r\n <input type=\"number\" min=\"1750\" matInput maxlength=\"4\" [(ngModel)]=\"filterParams.year\"\r\n name=\"year\" />\r\n @if (filterParams.year) {\r\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\r\n (click)=\"filterParams.year = null\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n }\r\n </mat-form-field>\r\n </div>\r\n }\r\n <mat-form-field>\r\n <mat-label>Intervallo di pubblicazione</mat-label>\r\n <mat-date-range-input [rangePicker]=\"picker1\">\r\n <input matStartDate [(ngModel)]=\"interval.from\" [dateIntervalChange]=\"interval\"\r\n #rangeFrom1=\"ngModel\" name=\"rangeFrom1\" placeholder=\"Da data\">\r\n <input matEndDate [(ngModel)]=\"interval.to\" [dateIntervalChange]=\"interval\" [end]=\"true\"\r\n #rangeTo1=\"ngModel\" name=\"rangeTo1\" placeholder=\"A data\">\r\n </mat-date-range-input>\r\n @if (interval.from || interval.to) {\r\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\r\n (click)=\"interval.clear()\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n }\r\n <mat-datepicker-toggle matSuffix [for]=\"picker1\"></mat-datepicker-toggle>\r\n <mat-date-range-picker #picker1></mat-date-range-picker>\r\n @if (rangeFrom1.invalid || rangeTo1.invalid) {\r\n <mat-error>Intervallo non valido.</mat-error>\r\n }\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>Testo</mat-label>\r\n <input matInput maxlength=\"200\" [(ngModel)]=\"filterParams.text\" name=\"text\"\r\n #filterByText=\"matInput\" />\r\n @if (filterParams.text) {\r\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\r\n (click)=\"filterParams.text = null\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n }\r\n <button type=\"button\" tabindex=\"-1\" mat-icon-button matSuffix matTooltip=\"Opzioni\"\r\n aria-label=\"Opzioni\"\r\n [matMenuTriggerFor]=\"filterPaneOptionsMenu\"><mat-icon>more_vert</mat-icon></button>\r\n </mat-form-field>\r\n <div>\r\n @if(filterParams.text) {\r\n <div style=\"padding-bottom:10px\">\r\n <mat-slide-toggle [(ngModel)]=\"filterParams.titleOnly\" name=\"titleOnly\">Cerca solo nel\r\n titolo</mat-slide-toggle>\r\n </div>\r\n }\r\n @if(isLaws(false)) {\r\n <div style=\"padding-bottom:10px\">\r\n <mat-slide-toggle [(ngModel)]=\"filterParams.showNotAbrogatedDocumentsOnly\"\r\n name=\"showNotAbrogatedDocumentsOnly\">Mostra solo elementi non abrogati</mat-slide-toggle>\r\n </div>\r\n <div style=\"padding-bottom:10px\">\r\n <mat-slide-toggle [(ngModel)]=\"filterParams.showCommentedDocumentsOnly\"\r\n name=\"showCommentedDocumentsOnly\">Mostra solo elementi con commenti</mat-slide-toggle>\r\n </div>\r\n }\r\n @if(isReadable()) {\r\n <div style=\"padding-bottom:10px\">\r\n <mat-slide-toggle [(ngModel)]=\"filterParams.showUnreadDocumentsOnly\"\r\n name=\"showUnreadDocumentsOnly\">Mostra solo elementi non letti</mat-slide-toggle>\r\n </div>\r\n }\r\n\r\n </div>\r\n </div>\r\n </mat-expansion-panel>\r\n @if(isLaws(false)) {\r\n <mat-expansion-panel #sourceExpansionPanel class=\"accordion-panel mat-elevation-z0 \">\r\n <mat-expansion-panel-header class=\"accordion-header\">\r\n <mat-panel-title>\r\n Fonte\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n <div fxLayout=\"column\">\r\n <div fxLayout=\"row wrap\" fxLayoutAlign=\"space-between center\" fxFill>\r\n <mat-form-field fxFlex=\"59\" fxFlex.xs=\"100\">\r\n <mat-label>Numero</mat-label>\r\n <input matInput maxlength=\"10\" [(ngModel)]=\"filterParams.sourceNumber\" name=\"sourceNumber\" />\r\n @if (filterParams.sourceNumber) {\r\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\r\n (click)=\"filterParams.sourceNumber = null\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n }\r\n </mat-form-field>\r\n <mat-form-field fxHide.xs fxFlex=\"39\" fxFlex.xs=\"100\">\r\n <mat-label>Anno</mat-label>\r\n <input type=\"number\" min=\"1750\" matInput maxlength=\"4\" [(ngModel)]=\"filterParams.sourceYear\"\r\n name=\"sourceYear\" />\r\n @if (filterParams.sourceYear) {\r\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\r\n (click)=\"filterParams.sourceYear = null\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n }\r\n </mat-form-field>\r\n </div>\r\n <mat-form-field>\r\n <mat-label>Intervallo di pubblicazione</mat-label>\r\n <mat-date-range-input [rangePicker]=\"picker2\">\r\n <input matStartDate [(ngModel)]=\"sourceInterval.from\" [dateIntervalChange]=\"sourceInterval\"\r\n #rangeFrom2=\"ngModel\" name=\"rangeFrom2\" placeholder=\"Da data\">\r\n <input matEndDate [(ngModel)]=\"sourceInterval.to\" [dateIntervalChange]=\"sourceInterval\"\r\n [end]=\"true\" #rangeTo2=\"ngModel\" name=\"rangeTo2\" placeholder=\"A data\">\r\n </mat-date-range-input>\r\n @if (sourceInterval.from || sourceInterval.to) {\r\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\r\n (click)=\"sourceInterval.clear()\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n }\r\n <mat-datepicker-toggle matSuffix [for]=\"picker2\"></mat-datepicker-toggle>\r\n <mat-date-range-picker #picker2></mat-date-range-picker>\r\n @if (rangeFrom2.invalid || rangeTo2.invalid) {\r\n <mat-error>Intervallo non valido.</mat-error>\r\n }\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>Tipo</mat-label>\r\n <mat-select [(ngModel)]=\"filterParams.source\" name=\"source\">\r\n @for (s of sources(); track $index) {\r\n <mat-option [value]=\"s.value\" [matTooltip]=\"s.name\">\r\n {{s.name}}\r\n </mat-option>\r\n }\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n </div>\r\n </mat-expansion-panel>\r\n <mat-expansion-panel #otherOptionsExpansionPanel class=\"accordion-panel mat-elevation-z0\">\r\n <mat-expansion-panel-header class=\"accordion-header\">\r\n <mat-panel-title>\r\n Altre opzioni\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n <div fxLayout=\"column\">\r\n @if(authors().length > 0 && !hasRegions()) {\r\n <mat-form-field>\r\n <mat-label>Autore</mat-label>\r\n <mat-select [(ngModel)]=\"filterParams.author\" name=\"author\">\r\n @for (a of authors(); track $index) {\r\n <mat-option [value]=\"a.value\" [matTooltip]=\"a.name\">\r\n {{a.name}}\r\n </mat-option>\r\n }\r\n </mat-select>\r\n </mat-form-field>\r\n }\r\n <mat-form-field>\r\n <mat-label>Tipo documento</mat-label>\r\n <mat-select [(ngModel)]=\"filterParams.type\" name=\"type\">\r\n @for (t of types(); track $index) {\r\n <mat-option [value]=\"t.value\" [matTooltip]=\"t.name\">\r\n {{t.name}}\r\n </mat-option>\r\n }\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n\r\n </mat-expansion-panel>\r\n }\r\n } @else {\r\n <mat-expansion-panel expanded class=\"accordion-panel mat-elevation-z0 \">\r\n <mat-expansion-panel-header class=\"accordion-header\">\r\n <mat-panel-title>\r\n Periodo\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n <mat-form-field style=\"width:100%\">\r\n <mat-label>Intervallo di pubblicazione</mat-label>\r\n <mat-date-range-input [rangePicker]=\"picker1\">\r\n <input matStartDate [(ngModel)]=\"interval.from\" [dateIntervalChange]=\"interval\"\r\n #rangeFrom1=\"ngModel\" name=\"rangeFrom1\" placeholder=\"Da data\">\r\n <input matEndDate [(ngModel)]=\"interval.to\" [dateIntervalChange]=\"interval\" [end]=\"true\"\r\n #rangeTo1=\"ngModel\" name=\"rangeTo1\" placeholder=\"A data\">\r\n </mat-date-range-input>\r\n @if (interval.from || interval.to) {\r\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\r\n (click)=\"interval.clear()\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n }\r\n <mat-datepicker-toggle matSuffix [for]=\"picker1\"></mat-datepicker-toggle>\r\n <mat-date-range-picker #picker1></mat-date-range-picker>\r\n @if (rangeFrom1.invalid || rangeTo1.invalid) {\r\n <mat-error>Intervallo non valido.</mat-error>\r\n }\r\n </mat-form-field>\r\n @if(isReadable()) {\r\n <div style=\"padding-bottom:10px\">\r\n <mat-slide-toggle [(ngModel)]=\"filterParams.showUnreadDocumentsOnly\"\r\n name=\"showUnreadDocumentsOnly\">Mostra solo elementi non letti</mat-slide-toggle>\r\n </div>\r\n }\r\n </mat-expansion-panel>\r\n <mat-expansion-panel expanded class=\"accordion-panel mat-elevation-z0 \">\r\n <mat-expansion-panel-header class=\"accordion-header\">\r\n <mat-panel-title>\r\n Documento modificato\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n <div fxLayout=\"column\">\r\n <div fxLayout=\"row wrap\" fxLayoutAlign=\"space-between center\" fxFill>\r\n <mat-form-field fxFlex=\"59\" fxFlex.xs=\"100\">\r\n <mat-label>Numero</mat-label>\r\n <input matInput maxlength=\"10\" [(ngModel)]=\"filterParams.changedNumber\" name=\"changedNumber\"\r\n #filterByChangeNumber=\"matInput\" />\r\n @if (filterParams.changedNumber) {\r\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\r\n (click)=\"filterParams.changedNumber = null\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n }\r\n </mat-form-field>\r\n <mat-form-field fxHide.xs fxFlex=\"39\" fxFlex.xs=\"100\">\r\n <mat-label>Anno</mat-label>\r\n <input type=\"number\" min=\"1750\" matInput maxlength=\"4\" [(ngModel)]=\"filterParams.changedYear\"\r\n name=\"changedYear\" />\r\n @if (filterParams.changedYear) {\r\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\r\n (click)=\"filterParams.changedYear = null\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n }\r\n </mat-form-field>\r\n </div>\r\n <mat-form-field>\r\n <mat-label>Titolo</mat-label>\r\n <input matInput maxlength=\"200\" [(ngModel)]=\"filterParams.changedTitle\" name=\"changedTitle\" />\r\n @if (filterParams.changedTitle) {\r\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\r\n (click)=\"filterParams.changedTitle = null\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n }\r\n </mat-form-field>\r\n </div>\r\n </mat-expansion-panel>\r\n <mat-expansion-panel #modifierOptionsExpansionPanel class=\"accordion-panel mat-elevation-z0 \">\r\n <mat-expansion-panel-header class=\"accordion-header\">\r\n <mat-panel-title>\r\n Documento modificante\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n <div fxLayout=\"column\">\r\n <div fxLayout=\"row wrap\" fxLayoutAlign=\"space-between center\" fxFill>\r\n <mat-form-field fxFlex=\"59\" fxFlex.xs=\"100\">\r\n <mat-label>Numero</mat-label>\r\n <input matInput maxlength=\"10\" [(ngModel)]=\"filterParams.modifierNumber\" name=\"modifierNumber\" />\r\n @if (filterParams.changedNumber) {\r\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\r\n (click)=\"filterParams.modifierNumber = null\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n }\r\n </mat-form-field>\r\n <mat-form-field fxHide.xs fxFlex=\"39\" fxFlex.xs=\"100\">\r\n <mat-label>Anno</mat-label>\r\n <input type=\"number\" min=\"1750\" matInput maxlength=\"4\" [(ngModel)]=\"filterParams.modifierYear\"\r\n name=\"modifierYear\" />\r\n @if (filterParams.modifierYear) {\r\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\r\n (click)=\"filterParams.modifierYear = null\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n }\r\n </mat-form-field>\r\n </div>\r\n <mat-form-field>\r\n <mat-label>Titolo</mat-label>\r\n <input matInput maxlength=\"200\" [(ngModel)]=\"filterParams.modifierTitle\" name=\"modifierTitle\" />\r\n @if (filterParams.modifierTitle) {\r\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\r\n (click)=\"filterParams.modifierTitle = null\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n }\r\n </mat-form-field>\r\n </div>\r\n </mat-expansion-panel>\r\n <mat-expansion-panel #otherOptionsExpansionPanel class=\"accordion-panel mat-elevation-z0\">\r\n <mat-expansion-panel-header class=\"accordion-header\">\r\n <mat-panel-title>\r\n Altre opzioni\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n <div fxLayout=\"column\">\r\n <mat-form-field>\r\n <mat-label>Motivo</mat-label>\r\n <mat-select [(ngModel)]=\"filterParams.changeReason\" name=\"changeReason\">\r\n @for (r of reasons(); track $index) {\r\n <mat-option [value]=\"r.value\" [matTooltip]=\"r.name\">\r\n {{r.name}}\r\n </mat-option>\r\n }\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n </mat-expansion-panel>\r\n }\r\n </mat-accordion>\r\n </form>\r\n </div>\r\n </div>\r\n @if(showChannels()) {\r\n <div style=\"padding:10px\">\r\n <div fxLayout=\"column\">\r\n <mat-expansion-panel class=\"accordion-panel mat-elevation-z0\" style=\"margin-bottom: 10px;\">\r\n <mat-expansion-panel-header class=\"accordion-header\">\r\n <mat-panel-title>\r\n Canali\r\n </mat-panel-title>\r\n <mat-panel-description>\r\n @for (c of clipperService.availableChannels(); track $index) {\r\n <div class=\"channel-box\" [class.channel-disabled]=\"!c.active || c.disabled\" [matTooltip]=\"c.name\">\r\n <span class=\"label\">{{c.header}}</span>\r\n </div>\r\n }\r\n </mat-panel-description>\r\n </mat-expansion-panel-header>\r\n <chips-selector [collapseAt]=\"599\" [(ngModel)]=\"filterParams.channels\" [multiple]=\"true\" name=\"channels\"\r\n label=\"Canali\" [options]=\"clipperService.availableChannels()\"\r\n (changed)=\"channelsChanged()\"></chips-selector>\r\n\r\n </mat-expansion-panel>\r\n <div fxLayout=\"row\" fxLayoutGap=\"10px\" fxFill>\r\n <div fxFlex=\"*\" fxFlexAlign=\"end\">\r\n <button mat-stroked-button (click)=\"clearFilter()\">Pulisci</button>\r\n <button mat-stroked-button (click)=\"saveFilter()\" style=\"margin-left: 10px;\">Salva</button>\r\n </div>\r\n <div fxLayoutAlign=\"end\">\r\n <button fxFlexAlign=\"end\" mat-flat-button (click)=\"applyFilter()\"\r\n [disabled]=\"!canSearch()\">Applica</button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </mat-drawer>\r\n <div fxLayout=\"column\" fxLayoutGap=\"10px\" fxFill class=\"drawer-content scroll-hidden\">\r\n <div class=\"module-toolbar \">\r\n <div fxLayout=\"row wrap\" fxLayoutAlign=\"space-between\" fxFill>\r\n <div fxFlex=\"49\" fxFlex.lt-md=\"100\" style=\"padding-left: 10px; padding-bottom: 5px;\">\r\n @if(!filterPane.opened) {\r\n <button-toggle cssClass=\"small\" cssClassSmall=\"x-small\" iconOn=\"left_panel_close\" iconOff=\"tune\"\r\n labelOn=\"Nascondi<br>filtri\" labelOff=\"Mostra<br>filtri\" [value]=\"filterPane.opened\"\r\n (changed)=\"toggleFilterPane()\"></button-toggle>\r\n }\r\n </div>\r\n <div fxFlex=\"49\" fxFlex.lt-md=\"100\" fxLayoutAlign=\"end\">\r\n <div fxLayout=\"row\" style=\"height:48px; padding-bottom: 5px;\">\r\n @if((snapshot?.total ?? 0) > 0) {\r\n @if(sortOptions && sortOptions.length > 0) {\r\n <button-selector [options]=\"sortOptions\" label=\"Ordina per:\" style=\"margin-right: 5px;\" [border]=\"0\"\r\n fxFlexAlign=\"center\" [(ngModel)]=\"sortMode\" name=\"sortMode\" (selected)=\"sort($event)\"></button-selector>\r\n }\r\n <button fxFlexAlign=\"center\" mat-icon-button matSuffix matTooltip=\"Opzioni sulla selezione\"\r\n aria-label=\"Opzioni sulla selezione\" [matMenuTriggerFor]=\"selectionOptionsMenu\"\r\n [matBadge]=\"countSelections()\"><mat-icon>checklist</mat-icon></button>\r\n <button fxFlexAlign=\"center\" mat-icon-button matTooltip=\"Salva elenco in Excel \"\r\n (click)=\"exportResults()\"><mat-icon>save_alt</mat-icon></button>\r\n @if (!filterPane2?.opened && hasFacets()){\r\n <button fxFlexAlign=\"center\" mat-icon-button matTooltip=\"Affina ricerca\"\r\n (click)=\"toggleFilterPane2()\"><mat-icon>right_panel_open</mat-icon></button>\r\n }\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div fxFlex=\"*\" class=\"module-content\">\r\n <mat-drawer-container [hasBackdrop]=\"filterPane2HasBackdrop\" class=\"fill\">\r\n <mat-drawer #filterPane2 class=\"drawer-small drawer-with-loader\" position=\"end\" opened=\"false\">\r\n @if (filterBusy()) {\r\n <div class=\"overlay\"></div>\r\n }\r\n <div fxLayout=\"column\" fxFill>\r\n <div fxFlex=\"6px\">\r\n @if (filterBusy()) {\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\">Affina ricerca</div>\r\n <div fxFlex=\"*\" fxLayoutAlign=\"end\">\r\n <button mat-icon-button (click)=\"toggleFilterPane2()\"\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=\"content scroll-hidden\" style=\"padding: 0 5px;\">\r\n <clipper-search-facets #facets></clipper-search-facets>\r\n\r\n </div>\r\n </div>\r\n </mat-drawer>\r\n <div fxLayout=\"column\" fxFill>\r\n <div fxFlex=\"*\" [id]=\"scrollerId\" cdkScrollable class=\"scroll-auto\" style=\"padding: 0 20px;\">\r\n @if (!snapshot?.total) {\r\n <div class=\"message-container\">\r\n @if(snapshot?.total === 0) {\r\n <p class=\"message\"><b>Nessun elemento da visualizzare.</b></p>\r\n } @else {\r\n <div class=\"message\">\r\n <p fxHide.xs><b>Esegui una ricerca compilando i campi necessari nella maschera di ricarca qui a\r\n fianco.</b></p>\r\n <p fxHide.gt-xs><b>Fai click sul bottone <span class=\"accent\"><mat-icon>tune</mat-icon></span> ed esegui\r\n una\r\n ricerca compilando i campi necessari.</b></p>\r\n <p>E' possibile salvare i parametri delle le ricerche pi\u00F9 utilizzate facendo clic su &nbsp;\r\n <mat-icon\r\n style=\"display: inline-flex; border-radius: 9999px; height: 25px; width: 25px; color: var(--ars-color-text-low); background-color: var(--ars-color-accent);\">add</mat-icon>.\r\n </p>\r\n </div>\r\n }\r\n </div>\r\n } @else {\r\n @if (snapshot && (snapshot.total ?? 0) > 0) {\r\n @for (item of snapshot.items; track $index; let i = $index) {\r\n @if (item.group && isSortedByDate()) {\r\n <div class=\"items-group-title\">\r\n <div [class.group-spaced]=\"i > 0\">{{item.group}}</div>\r\n </div>\r\n }\r\n <clipper-search-result-item [item]=\"item\" [parent]=\"this\" [displayModelName]=\"true\" [actions]=\"contextMenu\"\r\n [isReadable]=\"true\"></clipper-search-result-item>\r\n }\r\n }\r\n }\r\n </div>\r\n <!-- footer -->\r\n @if ((snapshot?.total ?? 0) > 0) {\r\n <div class=\"items-footer\">\r\n <div fxLayout=\"row wrap\" fxLayoutGap=\"10px\" fxLayoutAlign=\"space-between center\" fxFill>\r\n <!-- legend -->\r\n <div fxFlex.lt-md=\"100\" class=\"legend-container\">\r\n <div class=\"legend unread-bg\"></div>\r\n non letto\r\n <!--<div class=\"legend next very-popular-bg\"></div>\r\n molto citato\r\n <div class=\"legend next popular-bg\"></div>\r\n citato-->\r\n <div class=\"legend next expired-bg \"></div>\r\n non pi\u00F9 vigente\r\n </div>\r\n <div fxFlex.lt-md=\"100\" fxLayoutAlign=\"end\" [class.wide]=\"filterPane2?.opened\">\r\n <div fxLayout=\"row\">\r\n <mat-paginator fxFlexAlign=\"center\" #paginator class=\"paginator\" [hidePageSize]=\"true\"\r\n [length]=\"snapshot?.total ?? 0\" [pageSize]=\"filterParams.count\" [showFirstLastButtons]=\"true\"\r\n (page)=\"fetchMore($event)\">\r\n </mat-paginator>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </mat-drawer-container>\r\n </div>\r\n </div>\r\n</mat-drawer-container>\r\n<mat-menu #filterPaneOptionsMenu=\"matMenu\">\r\n <button mat-menu-item (click)=\"compose()\">\r\n <mat-icon>build</mat-icon>Componi\r\n </button>\r\n <button mat-menu-item (click)=\"help()\">\r\n <mat-icon>help</mat-icon>Come usare la ricerca in testo libero\r\n </button>\r\n</mat-menu>\r\n<mat-menu #selectionOptionsMenu=\"matMenu\">\r\n <button mat-menu-item (click)=\"selectAll()\">\r\n <mat-icon>select_all</mat-icon>Seleziona tutti\r\n </button>\r\n <clipper-document-menu [parent]=\"this\" [useSelections]=\"true\" [isReadable]=\"true\" [canUseArchive]=\"false\"\r\n [canUseCalendar]=\"false\" [canUseAIAssistant]=\"hasAIAssistant\" [canUseRS]=\"showRSOptions()\">\r\n </clipper-document-menu>\r\n</mat-menu>\r\n<mat-menu #contextMenu=\"matMenu\" (closed)=\"updateMenuButtonsVisibility()\">\r\n <ng-template matMenuContent let-item=\"item\">\r\n <clipper-document-menu [parent]=\"this\" [item]=\"item\" [isReadable]=\"true\" [canUseArchive]=\"false\"\r\n [canUseCalendar]=\"false\" [canUseAIAssistant]=\"hasAIAssistant\" [canUseRS]=\"showRSOptions()\">\r\n </clipper-document-menu>\r\n </ng-template>\r\n</mat-menu>", styles: [".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-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}.wide{min-width:100%!important;max-width:100%!important;width:100%!important}.fill{min-width:100%!important;max-width:100%!important;width:100%!important;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}.smaller{font-size:smaller!important}.small{font-size:small!important;line-height:16px!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:14px!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-small .title-container{padding:20px 5px 20px 0}.drawer .title-container-with-loader,.drawer-small .title-container-with-loader{padding:14px 5px 20px 0}.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}.expired{color:var(--app-color-expired, #ff5449)!important}.expiring{color:var(--app-color-warning, #FFC107)!important}.closed{color:var(--app-color-closed, #388E3C)!important}.unread-bg{background-color:var(--app-color-unread, #f7931c)!important}.error-bg{background-color:var(--ars-color-error, #ff5449)!important}.expired-bg{background-color:var(--app-color-expired, #ff5449)!important}.expiring-bg{background-color:var(--app-color-expiring, #FFC107)!important}.popular-bg,.closed-bg{background-color:var(--ars-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:600!important;color:var(--ars-color-text, #191c1b)}.item-content .details .links a{cursor:pointer!important;color:var(--ars-color-link, #03A9F4);font-weight:600!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-accent, #7894ae)}.tile .tile-date .date-divider,.tile .date .date-divider{width:1px;margin:0 8px;border-left:1px solid var(--ars-color-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-accent, #7894ae)}.stripe .stripe-date .date-divider,.stripe .date .date-divider{width:1px;margin:0 8px;border-left:1px solid var(--ars-color-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)}.message-container{font-size:large;display:flex;justify-content:center;align-items:center;height:50%}.message-container .message{color:var(--ars-color-secondary, #4a635f);text-align:center;padding:40px}.module-content{overflow-x:hidden!important}.module-toolbar{padding:0 5px 0 10px!important}.frame{height:100%!important;min-height:100%!important}.drawer,.drawer-small{background-color:var(--ars-drawer-background-color)!important}@media screen and (min-width:431px){.drawer-small{min-width:360px!important;max-width:360px!important}}.channel-box{border-radius:4px;border:2px solid var(--ars-color-primary);color:var(--ars-color-primary);text-align:center;min-width:28px;min-height:28px;margin-right:12px;display:flex;align-items:center;justify-content:center}.channel-box .label{font-size:15px;font-weight:700}.channel-disabled{opacity:.3}.command{line-height:16px;color:var(--ars-color-primary);font-weight:500;cursor:pointer!important;text-decoration:none}.command:hover{opacity:.8!important}.link{color:var(--ars-color-link);font-weight:500;cursor:pointer!important;text-decoration:none}.link:hover{opacity:.8}.no-spaced{padding-top:0!important;padding-bottom:0!important}.spaced{padding-top:20px!important;padding-bottom:20px!important}.spaced-bottom-20{padding-bottom:20px!important}.spaced-top-20{padding-top:20px!important}.section,.spaced-bottom-10{padding-bottom:10px!important}.spaced-top-10{padding-top:10px!important}.section-title{font-size:large;font-weight:500;padding-top:20px;padding-bottom:8px}.info-3{margin-top:6px;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}.info-4{margin-top:6px;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}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1$2.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1$2.NgForm, selector: "form:not([ngNoForm]):not([formGroup]):not([formArray]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FlexLayoutModule }, { kind: "directive", type: i1.DefaultLayoutDirective, 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]", inputs: ["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"] }, { kind: "directive", type: i1.DefaultLayoutGapDirective, 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]", inputs: ["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"] }, { kind: "directive", type: i1.DefaultLayoutAlignDirective, 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]", inputs: ["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"] }, { kind: "directive", type: i1.FlexFillDirective, selector: "[fxFill], [fxFlexFill]" }, { kind: "directive", type: i1.DefaultFlexAlignDirective, 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]", inputs: ["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"] }, { kind: "directive", type: i1.DefaultFlexDirective, 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]", inputs: ["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"] }, { kind: "directive", type: i2$1.DefaultShowHideDirective, selector: " [fxShow], [fxShow.print], [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], [fxHide.print], [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]", inputs: ["fxShow", "fxShow.print", "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", "fxHide.print", "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"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i5.MatButton, 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] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i5.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: i7$1.CdkScrollable, selector: "[cdk-scrollable], [cdkScrollable]" }, { kind: "ngmodule", type: MatSidenavModule }, { kind: "component", type: i8.MatDrawer, selector: "mat-drawer", inputs: ["position", "mode", "disableClose", "autoFocus", "opened"], outputs: ["openedChange", "opened", "openedStart", "closed", "closedStart", "positionChanged"], exportAs: ["matDrawer"] }, { kind: "component", type: i8.MatDrawerContainer, selector: "mat-drawer-container", inputs: ["autosize", "hasBackdrop"], outputs: ["backdropClick"], exportAs: ["matDrawerContainer"] }, { kind: "ngmodule", type: MatExpansionModule }, { kind: "directive", type: i9.MatAccordion, selector: "mat-accordion", inputs: ["hideToggle", "displayMode", "togglePosition"], exportAs: ["matAccordion"] }, { kind: "component", type: i9.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["hideToggle", "togglePosition"], outputs: ["afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "component", type: i9.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["expandedHeight", "collapsedHeight", "tabIndex"] }, { kind: "directive", type: i9.MatExpansionPanelTitle, selector: "mat-panel-title" }, { kind: "directive", type: i9.MatExpansionPanelDescription, selector: "mat-panel-description" }, { kind: "ngmodule", type: MatDividerModule }, { kind: "component", type: i2.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i6.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i6.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i6.MatMenuContent, selector: "ng-template[matMenuContent]" }, { kind: "directive", type: i6.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3$1.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i3$1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i4$1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i14.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "component", type: i14.MatDateRangeInput, selector: "mat-date-range-input", inputs: ["rangePicker", "required", "dateFilter", "min", "max", "disabled", "separator", "comparisonStart", "comparisonEnd"], exportAs: ["matDateRangeInput"] }, { kind: "directive", type: i14.MatStartDate, selector: "input[matStartDate]", outputs: ["dateChange", "dateInput"] }, { kind: "directive", type: i14.MatEndDate, selector: "input[matEndDate]", outputs: ["dateChange", "dateInput"] }, { kind: "component", type: i14.MatDateRangePicker, selector: "mat-date-range-picker", exportAs: ["matDateRangePicker"] }, { kind: "directive", type: MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "ngmodule", type: ScrollingModule }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i15.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i15.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: MatChipsModule }, { kind: "component", type: i16.MatChipGrid, selector: "mat-chip-grid", inputs: ["disabled", "placeholder", "required", "value", "errorStateMatcher"], outputs: ["change", "valueChange"] }, { kind: "directive", type: i16.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled", "readonly", "matChipInputDisabledInteractive"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i16.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i16.MatChipRow, selector: "mat-chip-row, [mat-chip-row], mat-basic-chip-row, [mat-basic-chip-row]", inputs: ["editable"], outputs: ["edited"] }, { kind: "ngmodule", type: MatSlideToggleModule }, { kind: "component", type: i5$1.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon", "disabledInteractive"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "component", type: MatPaginator, selector: "mat-paginator", inputs: ["color", "pageIndex", "length", "pageSize", "pageSizeOptions", "hidePageSize", "showFirstLastButtons", "selectConfig", "disabled"], outputs: ["page"], exportAs: ["matPaginator"] }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "ngmodule", type: MatButtonToggleModule }, { kind: "ngmodule", type: MatProgressBarModule }, { kind: "component", type: i7.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "ngmodule", type: ArsCoreModule }, { kind: "directive", type: i19.DateIntervalChangeDirective, selector: "[dateIntervalChange]", inputs: ["dateIntervalChange", "end"] }, { kind: "component", type: ChipsSelectorComponent, selector: "chips-selector", inputs: ["options", "collapsedWidth", "collapsedDisplayMode", "collapseAt", "collapseAtContainer", "label", "multiple", "mustSelect", "mode", "stacked", "padAt", "required", "disabled", "placeholder"], outputs: ["changed"] }, { kind: "component", type: ButtonSelectorComponent, selector: "button-selector", inputs: ["disabled", "width", "border", "borderRadius", "label", "labelSelected", "options", "autoSelect"], outputs: ["changed", "selected"] }, { kind: "component", type: ButtonToggleComponent, selector: "button-toggle", inputs: ["value", "width", "border", "labelOn", "labelOff", "iconOn", "iconOff", "cssClass", "cssClassSmall"], outputs: ["changed"] }, { kind: "component", type: ClipperDocumentMenuComponent, selector: "clipper-document-menu", inputs: ["useSelections", "selectionSource", "parent", "item", "isReference", "isReadable", "isReadableModel", "isLawInForce", "canPrint", "canFind", "canUseCalendar", "canUseArchive", "canUseAIAssistant", "canUseRS", "canOpenDocument"] }, { kind: "component", type: ClipperSearchResultItemComponent, selector: "clipper-search-result-item", inputs: ["parent", "item", "actions", "tileNoPictureUrl", "tilePictureUrl", "isSelectable", "isReadable", "isReadableModel", "displayModifiedTitle", "displayModelName", "displayDate", "displayMode"] }, { kind: "component", type: ClipperSearchFacetsComponent, selector: "clipper-search-facets", inputs: ["handleTooManyResults"], outputs: ["changed"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4159
4027
  }
4160
4028
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ClipperBrowserComponent, decorators: [{
4161
4029
  type: Component,
@@ -4163,13 +4031,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
4163
4031
  MatExpansionModule, MatDividerModule, MatMenuModule, MatFormFieldModule, MatInputModule, MatDatepickerModule, MatBadge,
4164
4032
  ScrollingModule, MatSelectModule, MatChipsModule, MatSlideToggleModule, MatPaginator, MatCheckboxModule, MatButtonToggleModule, MatProgressBarModule,
4165
4033
  ArsCoreModule, ChipsSelectorComponent, ButtonSelectorComponent, ButtonToggleComponent,
4166
- ClipperDocumentMenuComponent, ClipperSearchResultManager, ClipperSearchResultItemComponent, ClipperSearchFacetsComponent,
4167
- ClipperSearchFreeTextHelpComponent, ClipperSearchFreeTextQueryBuilderComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-drawer-container [hasBackdrop]=\"filterPaneHasBackdrop\" class=\"fill\">\r\n <mat-drawer #filterPane class=\"drawer\">\r\n <div fxLayout=\"column\" fxFill>\r\n <div fxFlex=\"78px\" class=\"title-container\">\r\n <div fxLayout=\"row\" fxLayoutGap=\"10px\" fxLayoutAlign=\"start center\" fxFill>\r\n <div class=\"title\">Filtro</div>\r\n <div fxFlex=\"*\" fxLayoutAlign=\"end\">\r\n <button fxFlexAlign=\"center\" mat-icon-button (click)=\"saveFilter(true)\"\r\n matTooltip=\"Crea una nuovo filtro con i parametri attuali \"><mat-icon>add</mat-icon></button>\r\n <button fxFlexAlign=\"center\" mat-icon-button (click)=\"toggleFilterPane()\"\r\n matTooltip=\"Nascondi\"><mat-icon>left_panel_close</mat-icon></button>\r\n </div>\r\n </div>\r\n </div>\r\n @if(hasFilters()) {\r\n <div style=\"padding:10px 20px\">\r\n <div fxLayout=\"row\" fxLayoutGap=\"10px\" fxFill>\r\n <div fxFlex=\"*\">\r\n <button-selector #filterSelector [options]=\"filters()\" label=\"Seleziona un filtro salvato\"\r\n labelSelected=\"Filtro in uso:\" fxFlexAlign=\"center\" (selected)=\"selectFilter($event)\"\r\n [matTooltip]=\"filterParams.searchName ?? ''\"></button-selector>\r\n </div>\r\n @if(filterParams.searchId) {\r\n <div fxFlex=\"40px\">\r\n <button fxFlexAlign=\"center\" mat-icon-button (click)=\"deleteFilter()\"\r\n matTooltip=\"Elimina il filtro in uso\"><mat-icon>delete</mat-icon></button>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n }\r\n <div fxFlex=\"*\" class=\"content scroll-hidden\" style=\"padding-bottom: 10px;\">\r\n <div class=\"scroll-auto\" style=\"padding: 0 10px;\">\r\n <form name=\"form\" #f=\"ngForm\" (keyup.Enter)=\"applyFilter()\" novalidate>\r\n <mat-accordion multi displayMode=\"flat\">\r\n <mat-expansion-panel expanded class=\"accordion-panel mat-elevation-z0 \">\r\n <mat-expansion-panel-header class=\"accordion-header\">\r\n <mat-panel-title>\r\n Cerca in..\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n\r\n <chips-selector #moduleSelector [(ngModel)]=\"filterParams.modules\" [collapseAt]=\"599\" [multiple]=\"true\"\r\n label=\"Sezioni\" name=\"modules\" [options]=\"modules()\" (changed)=\"modulesChanged()\">\r\n </chips-selector>\r\n </mat-expansion-panel>\r\n\r\n @if((hasTags() || hasTopics()) && !isCoordination()) {\r\n <mat-expansion-panel class=\"accordion-panel mat-elevation-z0\">\r\n <mat-expansion-panel-header class=\"accordion-header\">\r\n <mat-panel-title>\r\n Argomenti\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n @if(hasTags()) {\r\n <chips-selector [collapseAt]=\"599\" [(ngModel)]=\"filterParams.tags\" [multiple]=\"true\" name=\"tags\"\r\n label=\"Argomenti\" [options]=\"tags()\"></chips-selector>\r\n }\r\n @if(hasTopics()) {\r\n @if ((filterParams.topics?.length ?? 0) > 0) {\r\n <mat-chip-grid #topics [(ngModel)]=\"filterParams.topics\" name=\"topics\" style=\"padding-bottom: 5px;\">\r\n @for (o of filterParams.topics; track $index) {\r\n <mat-chip-row [value]=\"o\" (removed)=\"deleteTopic(o)\">\r\n {{o.name}}\r\n <button matChipRemove>\r\n <mat-icon>cancel</mat-icon>\r\n </button></mat-chip-row>\r\n }\r\n </mat-chip-grid>\r\n <input style=\"display: none;\" [matChipInputFor]=\"topics\" />\r\n }\r\n <div fxLayout=\"row\" fxLayoutAlign=\"end center\">\r\n <button mat-button type=\"button\" (click)=\"addTopic()\"><mat-icon>add</mat-icon> Aggiungi\r\n argomento</button>\r\n @if ((filterParams.topics?.length ?? 0) > 0) {\r\n <button mat-button type=\"button\" (click)=\"clearTopics()\"><mat-icon>delete</mat-icon> Azzera</button>\r\n }\r\n </div>\r\n }\r\n </mat-expansion-panel>\r\n }\r\n @if(hasSectors()) {\r\n <mat-expansion-panel class=\"accordion-panel mat-elevation-z0 \">\r\n <mat-expansion-panel-header class=\"accordion-header\">\r\n <mat-panel-title>\r\n Settori\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n <chips-selector [collapseAt]=\"599\" [(ngModel)]=\"filterParams.sectors\" [multiple]=\"true\" name=\"sectors\"\r\n label=\"Settori\" [options]=\"sectors()\" (changed)=\"sectorsChanged()\" />\r\n @if(hasRegions())\r\n {\r\n <mat-divider style=\"padding-top: 8px; margin-top:8px\"></mat-divider>\r\n <chips-selector [(ngModel)]=\"filterParams.authors\" [multiple]=\"true\" name=\"authors\" mode=\"collapsed\"\r\n label=\"Tutte le regioni\" [options]=\"regions()\" />\r\n }\r\n </mat-expansion-panel>\r\n }\r\n @if(!isCoordination()) {\r\n <mat-expansion-panel expanded class=\"accordion-panel mat-elevation-z0 \">\r\n <mat-expansion-panel-header class=\"accordion-header\">\r\n <mat-panel-title>\r\n Documento\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n <div fxLayout=\"column\">\r\n @if(isLaws()) {\r\n <div fxLayout=\"row wrap\" fxLayoutAlign=\"space-between center\" fxFill>\r\n <mat-form-field fxFlex=\"59\" fxFlex.xs=\"49\">\r\n <mat-label>Numero</mat-label>\r\n <input matInput maxlength=\"10\" [(ngModel)]=\"filterParams.number\" name=\"number\"\r\n #filterByNumber=\"matInput\" />\r\n @if (filterParams.number) {\r\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\r\n (click)=\"filterParams.number = null\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n }\r\n </mat-form-field>\r\n <mat-form-field fxFlex=\"39\" fxFlex.xs=\"49\">\r\n <mat-label>Anno</mat-label>\r\n <input type=\"number\" min=\"1750\" matInput maxlength=\"4\" [(ngModel)]=\"filterParams.year\"\r\n name=\"year\" />\r\n @if (filterParams.year) {\r\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\r\n (click)=\"filterParams.year = null\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n }\r\n </mat-form-field>\r\n </div>\r\n }\r\n <mat-form-field>\r\n <mat-label>Intervallo di pubblicazione</mat-label>\r\n <mat-date-range-input [rangePicker]=\"picker1\">\r\n <input matStartDate [(ngModel)]=\"interval.from\" [dateIntervalChange]=\"interval\"\r\n #rangeFrom1=\"ngModel\" name=\"rangeFrom1\" placeholder=\"Da data\">\r\n <input matEndDate [(ngModel)]=\"interval.to\" [dateIntervalChange]=\"interval\" [end]=\"true\"\r\n #rangeTo1=\"ngModel\" name=\"rangeTo1\" placeholder=\"A data\">\r\n </mat-date-range-input>\r\n @if (interval.from || interval.to) {\r\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\r\n (click)=\"interval.clear()\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n }\r\n <mat-datepicker-toggle matSuffix [for]=\"picker1\"></mat-datepicker-toggle>\r\n <mat-date-range-picker #picker1></mat-date-range-picker>\r\n @if (rangeFrom1.invalid || rangeTo1.invalid) {\r\n <mat-error>Intervallo non valido.</mat-error>\r\n }\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>Testo</mat-label>\r\n <input matInput maxlength=\"200\" [(ngModel)]=\"filterParams.text\" name=\"text\"\r\n #filterByText=\"matInput\" />\r\n @if (filterParams.text) {\r\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\r\n (click)=\"filterParams.text = null\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n }\r\n <button type=\"button\" tabindex=\"-1\" mat-icon-button matSuffix matTooltip=\"Opzioni\"\r\n aria-label=\"Opzioni\"\r\n [matMenuTriggerFor]=\"filterPaneOptionsMenu\"><mat-icon>more_vert</mat-icon></button>\r\n </mat-form-field>\r\n <div>\r\n @if(filterParams.text) {\r\n <div style=\"padding-bottom:10px\">\r\n <mat-slide-toggle [(ngModel)]=\"filterParams.titleOnly\" name=\"titleOnly\">Cerca solo nel\r\n titolo</mat-slide-toggle>\r\n </div>\r\n }\r\n @if(isLaws(false)) {\r\n <div style=\"padding-bottom:10px\">\r\n <mat-slide-toggle [(ngModel)]=\"filterParams.showNotAbrogatedDocumentsOnly\"\r\n name=\"showNotAbrogatedDocumentsOnly\">Mostra solo elementi non abrogati</mat-slide-toggle>\r\n </div>\r\n <div style=\"padding-bottom:10px\">\r\n <mat-slide-toggle [(ngModel)]=\"filterParams.showCommentedDocumentsOnly\"\r\n name=\"showCommentedDocumentsOnly\">Mostra solo elementi con commenti</mat-slide-toggle>\r\n </div>\r\n }\r\n @if(isReadable()) {\r\n <div style=\"padding-bottom:10px\">\r\n <mat-slide-toggle [(ngModel)]=\"filterParams.showUnreadDocumentsOnly\"\r\n name=\"showUnreadDocumentsOnly\">Mostra solo elementi non letti</mat-slide-toggle>\r\n </div>\r\n }\r\n\r\n </div>\r\n </div>\r\n </mat-expansion-panel>\r\n @if(isLaws(false)) {\r\n <mat-expansion-panel #sourceExpansionPanel class=\"accordion-panel mat-elevation-z0 \">\r\n <mat-expansion-panel-header class=\"accordion-header\">\r\n <mat-panel-title>\r\n Fonte\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n <div fxLayout=\"column\">\r\n <div fxLayout=\"row wrap\" fxLayoutAlign=\"space-between center\" fxFill>\r\n <mat-form-field fxFlex=\"59\" fxFlex.xs=\"100\">\r\n <mat-label>Numero</mat-label>\r\n <input matInput maxlength=\"10\" [(ngModel)]=\"filterParams.sourceNumber\" name=\"sourceNumber\" />\r\n @if (filterParams.sourceNumber) {\r\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\r\n (click)=\"filterParams.sourceNumber = null\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n }\r\n </mat-form-field>\r\n <mat-form-field fxHide.xs fxFlex=\"39\" fxFlex.xs=\"100\">\r\n <mat-label>Anno</mat-label>\r\n <input type=\"number\" min=\"1750\" matInput maxlength=\"4\" [(ngModel)]=\"filterParams.sourceYear\"\r\n name=\"sourceYear\" />\r\n @if (filterParams.sourceYear) {\r\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\r\n (click)=\"filterParams.sourceYear = null\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n }\r\n </mat-form-field>\r\n </div>\r\n <mat-form-field>\r\n <mat-label>Intervallo di pubblicazione</mat-label>\r\n <mat-date-range-input [rangePicker]=\"picker2\">\r\n <input matStartDate [(ngModel)]=\"sourceInterval.from\" [dateIntervalChange]=\"sourceInterval\"\r\n #rangeFrom2=\"ngModel\" name=\"rangeFrom2\" placeholder=\"Da data\">\r\n <input matEndDate [(ngModel)]=\"sourceInterval.to\" [dateIntervalChange]=\"sourceInterval\"\r\n [end]=\"true\" #rangeTo2=\"ngModel\" name=\"rangeTo2\" placeholder=\"A data\">\r\n </mat-date-range-input>\r\n @if (sourceInterval.from || sourceInterval.to) {\r\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\r\n (click)=\"sourceInterval.clear()\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n }\r\n <mat-datepicker-toggle matSuffix [for]=\"picker2\"></mat-datepicker-toggle>\r\n <mat-date-range-picker #picker2></mat-date-range-picker>\r\n @if (rangeFrom2.invalid || rangeTo2.invalid) {\r\n <mat-error>Intervallo non valido.</mat-error>\r\n }\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>Tipo</mat-label>\r\n <mat-select [(ngModel)]=\"filterParams.source\" name=\"source\">\r\n @for (s of sources(); track $index) {\r\n <mat-option [value]=\"s.value\" [matTooltip]=\"s.name\">\r\n {{s.name}}\r\n </mat-option>\r\n }\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n </div>\r\n </mat-expansion-panel>\r\n <mat-expansion-panel #otherOptionsExpansionPanel class=\"accordion-panel mat-elevation-z0\">\r\n <mat-expansion-panel-header class=\"accordion-header\">\r\n <mat-panel-title>\r\n Altre opzioni\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n <div fxLayout=\"column\">\r\n @if(authors().length > 0 && !hasRegions()) {\r\n <mat-form-field>\r\n <mat-label>Autore</mat-label>\r\n <mat-select [(ngModel)]=\"filterParams.author\" name=\"author\">\r\n @for (a of authors(); track $index) {\r\n <mat-option [value]=\"a.value\" [matTooltip]=\"a.name\">\r\n {{a.name}}\r\n </mat-option>\r\n }\r\n </mat-select>\r\n </mat-form-field>\r\n }\r\n <mat-form-field>\r\n <mat-label>Tipo documento</mat-label>\r\n <mat-select [(ngModel)]=\"filterParams.type\" name=\"type\">\r\n @for (t of types(); track $index) {\r\n <mat-option [value]=\"t.value\" [matTooltip]=\"t.name\">\r\n {{t.name}}\r\n </mat-option>\r\n }\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n\r\n </mat-expansion-panel>\r\n }\r\n } @else {\r\n <mat-expansion-panel expanded class=\"accordion-panel mat-elevation-z0 \">\r\n <mat-expansion-panel-header class=\"accordion-header\">\r\n <mat-panel-title>\r\n Periodo\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n <mat-form-field style=\"width:100%\">\r\n <mat-label>Intervallo di pubblicazione</mat-label>\r\n <mat-date-range-input [rangePicker]=\"picker1\">\r\n <input matStartDate [(ngModel)]=\"interval.from\" [dateIntervalChange]=\"interval\"\r\n #rangeFrom1=\"ngModel\" name=\"rangeFrom1\" placeholder=\"Da data\">\r\n <input matEndDate [(ngModel)]=\"interval.to\" [dateIntervalChange]=\"interval\" [end]=\"true\"\r\n #rangeTo1=\"ngModel\" name=\"rangeTo1\" placeholder=\"A data\">\r\n </mat-date-range-input>\r\n @if (interval.from || interval.to) {\r\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\r\n (click)=\"interval.clear()\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n }\r\n <mat-datepicker-toggle matSuffix [for]=\"picker1\"></mat-datepicker-toggle>\r\n <mat-date-range-picker #picker1></mat-date-range-picker>\r\n @if (rangeFrom1.invalid || rangeTo1.invalid) {\r\n <mat-error>Intervallo non valido.</mat-error>\r\n }\r\n </mat-form-field>\r\n @if(isReadable()) {\r\n <div style=\"padding-bottom:10px\">\r\n <mat-slide-toggle [(ngModel)]=\"filterParams.showUnreadDocumentsOnly\"\r\n name=\"showUnreadDocumentsOnly\">Mostra solo elementi non letti</mat-slide-toggle>\r\n </div>\r\n }\r\n </mat-expansion-panel>\r\n <mat-expansion-panel expanded class=\"accordion-panel mat-elevation-z0 \">\r\n <mat-expansion-panel-header class=\"accordion-header\">\r\n <mat-panel-title>\r\n Documento modificato\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n <div fxLayout=\"column\">\r\n <div fxLayout=\"row wrap\" fxLayoutAlign=\"space-between center\" fxFill>\r\n <mat-form-field fxFlex=\"59\" fxFlex.xs=\"100\">\r\n <mat-label>Numero</mat-label>\r\n <input matInput maxlength=\"10\" [(ngModel)]=\"filterParams.changedNumber\" name=\"changedNumber\"\r\n #filterByChangeNumber=\"matInput\" />\r\n @if (filterParams.changedNumber) {\r\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\r\n (click)=\"filterParams.changedNumber = null\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n }\r\n </mat-form-field>\r\n <mat-form-field fxHide.xs fxFlex=\"39\" fxFlex.xs=\"100\">\r\n <mat-label>Anno</mat-label>\r\n <input type=\"number\" min=\"1750\" matInput maxlength=\"4\" [(ngModel)]=\"filterParams.changedYear\"\r\n name=\"changedYear\" />\r\n @if (filterParams.changedYear) {\r\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\r\n (click)=\"filterParams.changedYear = null\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n }\r\n </mat-form-field>\r\n </div>\r\n <mat-form-field>\r\n <mat-label>Titolo</mat-label>\r\n <input matInput maxlength=\"200\" [(ngModel)]=\"filterParams.changedTitle\" name=\"changedTitle\" />\r\n @if (filterParams.changedTitle) {\r\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\r\n (click)=\"filterParams.changedTitle = null\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n }\r\n </mat-form-field>\r\n </div>\r\n </mat-expansion-panel>\r\n <mat-expansion-panel #modifierOptionsExpansionPanel class=\"accordion-panel mat-elevation-z0 \">\r\n <mat-expansion-panel-header class=\"accordion-header\">\r\n <mat-panel-title>\r\n Documento modificante\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n <div fxLayout=\"column\">\r\n <div fxLayout=\"row wrap\" fxLayoutAlign=\"space-between center\" fxFill>\r\n <mat-form-field fxFlex=\"59\" fxFlex.xs=\"100\">\r\n <mat-label>Numero</mat-label>\r\n <input matInput maxlength=\"10\" [(ngModel)]=\"filterParams.modifierNumber\" name=\"modifierNumber\" />\r\n @if (filterParams.changedNumber) {\r\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\r\n (click)=\"filterParams.modifierNumber = null\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n }\r\n </mat-form-field>\r\n <mat-form-field fxHide.xs fxFlex=\"39\" fxFlex.xs=\"100\">\r\n <mat-label>Anno</mat-label>\r\n <input type=\"number\" min=\"1750\" matInput maxlength=\"4\" [(ngModel)]=\"filterParams.modifierYear\"\r\n name=\"modifierYear\" />\r\n @if (filterParams.modifierYear) {\r\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\r\n (click)=\"filterParams.modifierYear = null\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n }\r\n </mat-form-field>\r\n </div>\r\n <mat-form-field>\r\n <mat-label>Titolo</mat-label>\r\n <input matInput maxlength=\"200\" [(ngModel)]=\"filterParams.modifierTitle\" name=\"modifierTitle\" />\r\n @if (filterParams.modifierTitle) {\r\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\r\n (click)=\"filterParams.modifierTitle = null\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n }\r\n </mat-form-field>\r\n </div>\r\n </mat-expansion-panel>\r\n <mat-expansion-panel #otherOptionsExpansionPanel class=\"accordion-panel mat-elevation-z0\">\r\n <mat-expansion-panel-header class=\"accordion-header\">\r\n <mat-panel-title>\r\n Altre opzioni\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n <div fxLayout=\"column\">\r\n <mat-form-field>\r\n <mat-label>Motivo</mat-label>\r\n <mat-select [(ngModel)]=\"filterParams.changeReason\" name=\"changeReason\">\r\n @for (r of reasons(); track $index) {\r\n <mat-option [value]=\"r.value\" [matTooltip]=\"r.name\">\r\n {{r.name}}\r\n </mat-option>\r\n }\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n </mat-expansion-panel>\r\n }\r\n </mat-accordion>\r\n </form>\r\n </div>\r\n </div>\r\n @if(showChannels()) {\r\n <div style=\"padding:10px\">\r\n <div fxLayout=\"column\">\r\n <mat-expansion-panel class=\"accordion-panel mat-elevation-z0\" style=\"margin-bottom: 10px;\">\r\n <mat-expansion-panel-header class=\"accordion-header\">\r\n <mat-panel-title>\r\n Canali\r\n </mat-panel-title>\r\n <mat-panel-description>\r\n @for (c of clipperService.availableChannels(); track $index) {\r\n <div class=\"channel-box\" [class.channel-disabled]=\"!c.active || c.disabled\" [matTooltip]=\"c.name\">\r\n <span class=\"label\">{{c.header}}</span>\r\n </div>\r\n }\r\n </mat-panel-description>\r\n </mat-expansion-panel-header>\r\n <chips-selector [collapseAt]=\"599\" [(ngModel)]=\"filterParams.channels\" [multiple]=\"true\" name=\"channels\"\r\n label=\"Canali\" [options]=\"clipperService.availableChannels()\"\r\n (changed)=\"channelsChanged()\"></chips-selector>\r\n\r\n </mat-expansion-panel>\r\n <div fxLayout=\"row\" fxLayoutGap=\"10px\" fxFill>\r\n <div fxFlex=\"*\" fxFlexAlign=\"end\">\r\n <button mat-stroked-button (click)=\"clearFilter()\">Pulisci</button>\r\n <button mat-stroked-button (click)=\"saveFilter()\" style=\"margin-left: 10px;\">Salva</button>\r\n </div>\r\n <div fxLayoutAlign=\"end\">\r\n <button fxFlexAlign=\"end\" mat-flat-button (click)=\"applyFilter()\"\r\n [disabled]=\"!canSearch()\">Applica</button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </mat-drawer>\r\n <div fxLayout=\"column\" fxLayoutGap=\"10px\" fxFill class=\"drawer-content scroll-hidden\">\r\n <div class=\"module-toolbar \">\r\n <div fxLayout=\"row wrap\" fxLayoutAlign=\"space-between\" fxFill>\r\n <div fxFlex=\"49\" fxFlex.lt-md=\"100\" style=\"padding-left: 10px; padding-bottom: 5px;\">\r\n @if(!filterPane.opened) {\r\n <button-toggle cssClass=\"small\" cssClassSmall=\"x-small\" iconOn=\"left_panel_close\" iconOff=\"tune\"\r\n labelOn=\"Nascondi<br>filtri\" labelOff=\"Mostra<br>filtri\" [value]=\"filterPane.opened\"\r\n (changed)=\"toggleFilterPane()\"></button-toggle>\r\n }\r\n </div>\r\n <div fxFlex=\"49\" fxFlex.lt-md=\"100\" fxLayoutAlign=\"end\">\r\n <div fxLayout=\"row\" style=\"height:48px; padding-bottom: 5px;\">\r\n @if((snapshot?.total ?? 0) > 0) {\r\n @if(sortOptions && sortOptions.length > 0) {\r\n <button-selector [options]=\"sortOptions\" label=\"Ordina per:\" style=\"margin-right: 5px;\" [border]=\"0\"\r\n fxFlexAlign=\"center\" [(ngModel)]=\"sortMode\" name=\"sortMode\" (selected)=\"sort($event)\"></button-selector>\r\n }\r\n <button fxFlexAlign=\"center\" mat-icon-button matSuffix matTooltip=\"Opzioni sulla selezione\"\r\n aria-label=\"Opzioni sulla selezione\" [matMenuTriggerFor]=\"selectionOptionsMenu\"\r\n [matBadge]=\"countSelections()\"><mat-icon>checklist</mat-icon></button>\r\n <button fxFlexAlign=\"center\" mat-icon-button matTooltip=\"Salva elenco in Excel \"\r\n (click)=\"exportResults()\"><mat-icon>save_alt</mat-icon></button>\r\n @if (!filterPane2?.opened && hasFacets()){\r\n <button fxFlexAlign=\"center\" mat-icon-button matTooltip=\"Affina ricerca\"\r\n (click)=\"toggleFilterPane2()\"><mat-icon>right_panel_open</mat-icon></button>\r\n }\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div fxFlex=\"*\" class=\"module-content\">\r\n <mat-drawer-container [hasBackdrop]=\"filterPane2HasBackdrop\" class=\"fill\">\r\n <mat-drawer #filterPane2 class=\"drawer-small drawer-with-loader\" position=\"end\" opened=\"false\">\r\n @if (filterBusy()) {\r\n <div class=\"overlay\"></div>\r\n }\r\n <div fxLayout=\"column\" fxFill>\r\n <div fxFlex=\"6px\">\r\n @if (filterBusy()) {\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\">Affina ricerca</div>\r\n <div fxFlex=\"*\" fxLayoutAlign=\"end\">\r\n <button mat-icon-button (click)=\"toggleFilterPane2()\"\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=\"content scroll-hidden\" style=\"padding: 0 5px;\">\r\n <clipper-search-facets #facets></clipper-search-facets>\r\n\r\n </div>\r\n </div>\r\n </mat-drawer>\r\n <div fxLayout=\"column\" fxFill>\r\n <div fxFlex=\"*\" [id]=\"scrollerId\" cdkScrollable class=\"scroll-auto\" style=\"padding: 0 20px;\">\r\n @if (!snapshot?.total) {\r\n <div class=\"message-container\">\r\n @if(snapshot?.total === 0) {\r\n <p class=\"message\"><b>Nessun elemento da visualizzare.</b></p>\r\n } @else {\r\n <div class=\"message\">\r\n <p fxHide.xs><b>Esegui una ricerca compilando i campi necessari nella maschera di ricarca qui a\r\n fianco.</b></p>\r\n <p fxHide.gt-xs><b>Fai click sul bottone <span class=\"accent\"><mat-icon>tune</mat-icon></span> ed esegui\r\n una\r\n ricerca compilando i campi necessari.</b></p>\r\n <p>E' possibile salvare i parametri delle le ricerche pi\u00F9 utilizzate facendo clic su &nbsp;\r\n <mat-icon\r\n style=\"display: inline-flex; border-radius: 9999px; height: 25px; width: 25px; color: var(--ars-color-text-low); background-color: var(--ars-color-accent);\">add</mat-icon>.\r\n </p>\r\n </div>\r\n }\r\n </div>\r\n } @else {\r\n @if (snapshot && (snapshot.total ?? 0) > 0) {\r\n @for (item of snapshot.items; track $index; let i = $index) {\r\n @if (item.group && isSortedByDate()) {\r\n <div class=\"items-group-title\">\r\n <div [class.group-spaced]=\"i > 0\">{{item.group}}</div>\r\n </div>\r\n }\r\n <clipper-search-result-item [item]=\"item\" [parent]=\"this\" [displayModelName]=\"true\" [actions]=\"contextMenu\"\r\n [isReadable]=\"true\"></clipper-search-result-item>\r\n }\r\n }\r\n }\r\n </div>\r\n <!-- footer -->\r\n @if ((snapshot?.total ?? 0) > 0) {\r\n <div class=\"items-footer\">\r\n <div fxLayout=\"row wrap\" fxLayoutGap=\"10px\" fxLayoutAlign=\"space-between center\" fxFill>\r\n <!-- legend -->\r\n <div fxFlex.lt-md=\"100\" class=\"legend-container\">\r\n <div class=\"legend unread-bg\"></div>\r\n non letto\r\n <!--<div class=\"legend next very-popular-bg\"></div>\r\n molto citato\r\n <div class=\"legend next popular-bg\"></div>\r\n citato-->\r\n <div class=\"legend next expired-bg \"></div>\r\n non pi\u00F9 vigente\r\n </div>\r\n <div fxFlex.lt-md=\"100\" fxLayoutAlign=\"end\" [class.wide]=\"filterPane2?.opened\">\r\n <div fxLayout=\"row\">\r\n <mat-paginator fxFlexAlign=\"center\" #paginator class=\"paginator\" [hidePageSize]=\"true\"\r\n [length]=\"snapshot?.total ?? 0\" [pageSize]=\"filterParams.count\" [showFirstLastButtons]=\"true\"\r\n (page)=\"fetchMore($event)\">\r\n </mat-paginator>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </mat-drawer-container>\r\n </div>\r\n </div>\r\n</mat-drawer-container>\r\n<mat-menu #filterPaneOptionsMenu=\"matMenu\">\r\n <button mat-menu-item (click)=\"compose()\">\r\n <mat-icon>build</mat-icon>Componi\r\n </button>\r\n <button mat-menu-item (click)=\"help()\">\r\n <mat-icon>help</mat-icon>Come usare la ricerca in testo libero\r\n </button>\r\n</mat-menu>\r\n<mat-menu #selectionOptionsMenu=\"matMenu\">\r\n <button mat-menu-item (click)=\"selectAll()\">\r\n <mat-icon>select_all</mat-icon>Seleziona tutti\r\n </button>\r\n <clipper-document-menu [parent]=\"this\" [useSelections]=\"true\" [isReadable]=\"true\" [canUseArchive]=\"false\"\r\n [canUseCalendar]=\"false\" [canUseAIAssistant]=\"hasAIAssistant\" [canUseRS]=\"showRSOptions()\">\r\n </clipper-document-menu>\r\n</mat-menu>\r\n<mat-menu #contextMenu=\"matMenu\" (closed)=\"updateMenuButtonsVisibility()\">\r\n <ng-template matMenuContent let-item=\"item\">\r\n <clipper-document-menu [parent]=\"this\" [item]=\"item\" [isReadable]=\"true\" [canUseArchive]=\"false\"\r\n [canUseCalendar]=\"false\" [canUseAIAssistant]=\"hasAIAssistant\" [canUseRS]=\"showRSOptions()\">\r\n </clipper-document-menu>\r\n </ng-template>\r\n</mat-menu>", styles: [".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-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}.wide{min-width:100%!important;max-width:100%!important;width:100%!important}.fill{min-width:100%!important;max-width:100%!important;width:100%!important;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}.smaller{font-size:smaller!important}.small{font-size:small!important;line-height:16px!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:14px!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-small .title-container{padding:20px 5px 20px 0}.drawer .title-container-with-loader,.drawer-small .title-container-with-loader{padding:14px 5px 20px 0}.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}.expired{color:var(--app-color-expired, #ff5449)!important}.expiring{color:var(--app-color-warning, #FFC107)!important}.closed{color:var(--app-color-closed, #388E3C)!important}.unread-bg{background-color:var(--app-color-unread, #f7931c)!important}.error-bg{background-color:var(--ars-color-error, #ff5449)!important}.expired-bg{background-color:var(--app-color-expired, #ff5449)!important}.expiring-bg{background-color:var(--app-color-expiring, #FFC107)!important}.popular-bg,.closed-bg{background-color:var(--ars-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:600!important;color:var(--ars-color-text, #191c1b)}.item-content .details .links a{cursor:pointer!important;color:var(--ars-color-link, #03A9F4);font-weight:600!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-accent, #7894ae)}.tile .tile-date .date-divider,.tile .date .date-divider{width:1px;margin:0 8px;border-left:1px solid var(--ars-color-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-accent, #7894ae)}.stripe .stripe-date .date-divider,.stripe .date .date-divider{width:1px;margin:0 8px;border-left:1px solid var(--ars-color-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)}.message-container{font-size:large;display:flex;justify-content:center;align-items:center;height:50%}.message-container .message{color:var(--ars-color-secondary, #4a635f);text-align:center;padding:40px}.module-content{overflow-x:hidden!important}.module-toolbar{padding:0 5px 0 10px!important}.frame{height:100%!important;min-height:100%!important}.drawer,.drawer-small{background-color:var(--ars-drawer-background-color)!important}@media screen and (min-width:431px){.drawer-small{min-width:360px!important;max-width:360px!important}}.channel-box{border-radius:4px;border:2px solid var(--ars-color-primary);color:var(--ars-color-primary);text-align:center;min-width:28px;min-height:28px;margin-right:12px;display:flex;align-items:center;justify-content:center}.channel-box .label{font-size:15px;font-weight:700}.channel-disabled{opacity:.3}.command{line-height:16px;color:var(--ars-color-primary);font-weight:500;cursor:pointer!important;text-decoration:none}.command:hover{opacity:.8!important}.link{color:var(--ars-color-link);font-weight:500;cursor:pointer!important;text-decoration:none}.link:hover{opacity:.8}.no-spaced{padding-top:0!important;padding-bottom:0!important}.spaced{padding-top:20px!important;padding-bottom:20px!important}.spaced-bottom-20{padding-bottom:20px!important}.spaced-top-20{padding-top:20px!important}.section,.spaced-bottom-10{padding-bottom:10px!important}.spaced-top-10{padding-top:10px!important}.section-title{font-size:large;font-weight:500;padding-top:20px;padding-bottom:8px}.info-3{margin-top:6px;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}.info-4{margin-top:6px;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}\n"] }]
4034
+ ClipperDocumentMenuComponent, ClipperSearchResultItemComponent, ClipperSearchFacetsComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-drawer-container [hasBackdrop]=\"filterPaneHasBackdrop\" class=\"fill\">\r\n <mat-drawer #filterPane class=\"drawer\">\r\n <div fxLayout=\"column\" fxFill>\r\n <div fxFlex=\"78px\" class=\"title-container\">\r\n <div fxLayout=\"row\" fxLayoutGap=\"10px\" fxLayoutAlign=\"start center\" fxFill>\r\n <div class=\"title\">Filtro</div>\r\n <div fxFlex=\"*\" fxLayoutAlign=\"end\">\r\n <button fxFlexAlign=\"center\" mat-icon-button (click)=\"saveFilter(true)\"\r\n matTooltip=\"Crea una nuovo filtro con i parametri attuali \"><mat-icon>add</mat-icon></button>\r\n <button fxFlexAlign=\"center\" mat-icon-button (click)=\"toggleFilterPane()\"\r\n matTooltip=\"Nascondi\"><mat-icon>left_panel_close</mat-icon></button>\r\n </div>\r\n </div>\r\n </div>\r\n @if(hasFilters()) {\r\n <div style=\"padding:10px 20px\">\r\n <div fxLayout=\"row\" fxLayoutGap=\"10px\" fxFill>\r\n <div fxFlex=\"*\">\r\n <button-selector #filterSelector [options]=\"filters()\" label=\"Seleziona un filtro salvato\"\r\n labelSelected=\"Filtro in uso:\" fxFlexAlign=\"center\" (selected)=\"selectFilter($event)\"\r\n [matTooltip]=\"filterParams.searchName ?? ''\"></button-selector>\r\n </div>\r\n @if(filterParams.searchId) {\r\n <div fxFlex=\"40px\">\r\n <button fxFlexAlign=\"center\" mat-icon-button (click)=\"deleteFilter()\"\r\n matTooltip=\"Elimina il filtro in uso\"><mat-icon>delete</mat-icon></button>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n }\r\n <div fxFlex=\"*\" class=\"content scroll-hidden\" style=\"padding-bottom: 10px;\">\r\n <div class=\"scroll-auto\" style=\"padding: 0 10px;\">\r\n <form name=\"form\" #f=\"ngForm\" (keyup.Enter)=\"applyFilter()\" novalidate>\r\n <mat-accordion multi displayMode=\"flat\">\r\n <mat-expansion-panel expanded class=\"accordion-panel mat-elevation-z0 \">\r\n <mat-expansion-panel-header class=\"accordion-header\">\r\n <mat-panel-title>\r\n Cerca in..\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n\r\n <chips-selector #moduleSelector [(ngModel)]=\"filterParams.modules\" [collapseAt]=\"599\" [multiple]=\"true\"\r\n label=\"Sezioni\" name=\"modules\" [options]=\"modules()\" (changed)=\"modulesChanged()\">\r\n </chips-selector>\r\n </mat-expansion-panel>\r\n\r\n @if((hasTags() || hasTopics()) && !isCoordination()) {\r\n <mat-expansion-panel class=\"accordion-panel mat-elevation-z0\">\r\n <mat-expansion-panel-header class=\"accordion-header\">\r\n <mat-panel-title>\r\n Argomenti\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n @if(hasTags()) {\r\n <chips-selector [collapseAt]=\"599\" [(ngModel)]=\"filterParams.tags\" [multiple]=\"true\" name=\"tags\"\r\n label=\"Argomenti\" [options]=\"tags()\"></chips-selector>\r\n }\r\n @if(hasTopics()) {\r\n @if ((filterParams.topics?.length ?? 0) > 0) {\r\n <mat-chip-grid #topics [(ngModel)]=\"filterParams.topics\" name=\"topics\" style=\"padding-bottom: 5px;\">\r\n @for (o of filterParams.topics; track $index) {\r\n <mat-chip-row [value]=\"o\" (removed)=\"deleteTopic(o)\">\r\n {{o.name}}\r\n <button matChipRemove>\r\n <mat-icon>cancel</mat-icon>\r\n </button></mat-chip-row>\r\n }\r\n </mat-chip-grid>\r\n <input style=\"display: none;\" [matChipInputFor]=\"topics\" />\r\n }\r\n <div fxLayout=\"row\" fxLayoutAlign=\"end center\">\r\n <button mat-button type=\"button\" (click)=\"addTopic()\"><mat-icon>add</mat-icon> Aggiungi\r\n argomento</button>\r\n @if ((filterParams.topics?.length ?? 0) > 0) {\r\n <button mat-button type=\"button\" (click)=\"clearTopics()\"><mat-icon>delete</mat-icon> Azzera</button>\r\n }\r\n </div>\r\n }\r\n </mat-expansion-panel>\r\n }\r\n @if(hasSectors()) {\r\n <mat-expansion-panel class=\"accordion-panel mat-elevation-z0 \">\r\n <mat-expansion-panel-header class=\"accordion-header\">\r\n <mat-panel-title>\r\n Settori\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n <chips-selector [collapseAt]=\"599\" [(ngModel)]=\"filterParams.sectors\" [multiple]=\"true\" name=\"sectors\"\r\n label=\"Settori\" [options]=\"sectors()\" (changed)=\"sectorsChanged()\" />\r\n @if(hasRegions())\r\n {\r\n <mat-divider style=\"padding-top: 8px; margin-top:8px\"></mat-divider>\r\n <chips-selector [(ngModel)]=\"filterParams.authors\" [multiple]=\"true\" name=\"authors\" mode=\"collapsed\"\r\n label=\"Tutte le regioni\" [options]=\"regions()\" />\r\n }\r\n </mat-expansion-panel>\r\n }\r\n @if(!isCoordination()) {\r\n <mat-expansion-panel expanded class=\"accordion-panel mat-elevation-z0 \">\r\n <mat-expansion-panel-header class=\"accordion-header\">\r\n <mat-panel-title>\r\n Documento\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n <div fxLayout=\"column\">\r\n @if(isLaws()) {\r\n <div fxLayout=\"row wrap\" fxLayoutAlign=\"space-between center\" fxFill>\r\n <mat-form-field fxFlex=\"59\" fxFlex.xs=\"49\">\r\n <mat-label>Numero</mat-label>\r\n <input matInput maxlength=\"10\" [(ngModel)]=\"filterParams.number\" name=\"number\"\r\n #filterByNumber=\"matInput\" />\r\n @if (filterParams.number) {\r\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\r\n (click)=\"filterParams.number = null\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n }\r\n </mat-form-field>\r\n <mat-form-field fxFlex=\"39\" fxFlex.xs=\"49\">\r\n <mat-label>Anno</mat-label>\r\n <input type=\"number\" min=\"1750\" matInput maxlength=\"4\" [(ngModel)]=\"filterParams.year\"\r\n name=\"year\" />\r\n @if (filterParams.year) {\r\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\r\n (click)=\"filterParams.year = null\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n }\r\n </mat-form-field>\r\n </div>\r\n }\r\n <mat-form-field>\r\n <mat-label>Intervallo di pubblicazione</mat-label>\r\n <mat-date-range-input [rangePicker]=\"picker1\">\r\n <input matStartDate [(ngModel)]=\"interval.from\" [dateIntervalChange]=\"interval\"\r\n #rangeFrom1=\"ngModel\" name=\"rangeFrom1\" placeholder=\"Da data\">\r\n <input matEndDate [(ngModel)]=\"interval.to\" [dateIntervalChange]=\"interval\" [end]=\"true\"\r\n #rangeTo1=\"ngModel\" name=\"rangeTo1\" placeholder=\"A data\">\r\n </mat-date-range-input>\r\n @if (interval.from || interval.to) {\r\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\r\n (click)=\"interval.clear()\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n }\r\n <mat-datepicker-toggle matSuffix [for]=\"picker1\"></mat-datepicker-toggle>\r\n <mat-date-range-picker #picker1></mat-date-range-picker>\r\n @if (rangeFrom1.invalid || rangeTo1.invalid) {\r\n <mat-error>Intervallo non valido.</mat-error>\r\n }\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>Testo</mat-label>\r\n <input matInput maxlength=\"200\" [(ngModel)]=\"filterParams.text\" name=\"text\"\r\n #filterByText=\"matInput\" />\r\n @if (filterParams.text) {\r\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\r\n (click)=\"filterParams.text = null\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n }\r\n <button type=\"button\" tabindex=\"-1\" mat-icon-button matSuffix matTooltip=\"Opzioni\"\r\n aria-label=\"Opzioni\"\r\n [matMenuTriggerFor]=\"filterPaneOptionsMenu\"><mat-icon>more_vert</mat-icon></button>\r\n </mat-form-field>\r\n <div>\r\n @if(filterParams.text) {\r\n <div style=\"padding-bottom:10px\">\r\n <mat-slide-toggle [(ngModel)]=\"filterParams.titleOnly\" name=\"titleOnly\">Cerca solo nel\r\n titolo</mat-slide-toggle>\r\n </div>\r\n }\r\n @if(isLaws(false)) {\r\n <div style=\"padding-bottom:10px\">\r\n <mat-slide-toggle [(ngModel)]=\"filterParams.showNotAbrogatedDocumentsOnly\"\r\n name=\"showNotAbrogatedDocumentsOnly\">Mostra solo elementi non abrogati</mat-slide-toggle>\r\n </div>\r\n <div style=\"padding-bottom:10px\">\r\n <mat-slide-toggle [(ngModel)]=\"filterParams.showCommentedDocumentsOnly\"\r\n name=\"showCommentedDocumentsOnly\">Mostra solo elementi con commenti</mat-slide-toggle>\r\n </div>\r\n }\r\n @if(isReadable()) {\r\n <div style=\"padding-bottom:10px\">\r\n <mat-slide-toggle [(ngModel)]=\"filterParams.showUnreadDocumentsOnly\"\r\n name=\"showUnreadDocumentsOnly\">Mostra solo elementi non letti</mat-slide-toggle>\r\n </div>\r\n }\r\n\r\n </div>\r\n </div>\r\n </mat-expansion-panel>\r\n @if(isLaws(false)) {\r\n <mat-expansion-panel #sourceExpansionPanel class=\"accordion-panel mat-elevation-z0 \">\r\n <mat-expansion-panel-header class=\"accordion-header\">\r\n <mat-panel-title>\r\n Fonte\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n <div fxLayout=\"column\">\r\n <div fxLayout=\"row wrap\" fxLayoutAlign=\"space-between center\" fxFill>\r\n <mat-form-field fxFlex=\"59\" fxFlex.xs=\"100\">\r\n <mat-label>Numero</mat-label>\r\n <input matInput maxlength=\"10\" [(ngModel)]=\"filterParams.sourceNumber\" name=\"sourceNumber\" />\r\n @if (filterParams.sourceNumber) {\r\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\r\n (click)=\"filterParams.sourceNumber = null\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n }\r\n </mat-form-field>\r\n <mat-form-field fxHide.xs fxFlex=\"39\" fxFlex.xs=\"100\">\r\n <mat-label>Anno</mat-label>\r\n <input type=\"number\" min=\"1750\" matInput maxlength=\"4\" [(ngModel)]=\"filterParams.sourceYear\"\r\n name=\"sourceYear\" />\r\n @if (filterParams.sourceYear) {\r\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\r\n (click)=\"filterParams.sourceYear = null\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n }\r\n </mat-form-field>\r\n </div>\r\n <mat-form-field>\r\n <mat-label>Intervallo di pubblicazione</mat-label>\r\n <mat-date-range-input [rangePicker]=\"picker2\">\r\n <input matStartDate [(ngModel)]=\"sourceInterval.from\" [dateIntervalChange]=\"sourceInterval\"\r\n #rangeFrom2=\"ngModel\" name=\"rangeFrom2\" placeholder=\"Da data\">\r\n <input matEndDate [(ngModel)]=\"sourceInterval.to\" [dateIntervalChange]=\"sourceInterval\"\r\n [end]=\"true\" #rangeTo2=\"ngModel\" name=\"rangeTo2\" placeholder=\"A data\">\r\n </mat-date-range-input>\r\n @if (sourceInterval.from || sourceInterval.to) {\r\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\r\n (click)=\"sourceInterval.clear()\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n }\r\n <mat-datepicker-toggle matSuffix [for]=\"picker2\"></mat-datepicker-toggle>\r\n <mat-date-range-picker #picker2></mat-date-range-picker>\r\n @if (rangeFrom2.invalid || rangeTo2.invalid) {\r\n <mat-error>Intervallo non valido.</mat-error>\r\n }\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>Tipo</mat-label>\r\n <mat-select [(ngModel)]=\"filterParams.source\" name=\"source\">\r\n @for (s of sources(); track $index) {\r\n <mat-option [value]=\"s.value\" [matTooltip]=\"s.name\">\r\n {{s.name}}\r\n </mat-option>\r\n }\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n </div>\r\n </mat-expansion-panel>\r\n <mat-expansion-panel #otherOptionsExpansionPanel class=\"accordion-panel mat-elevation-z0\">\r\n <mat-expansion-panel-header class=\"accordion-header\">\r\n <mat-panel-title>\r\n Altre opzioni\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n <div fxLayout=\"column\">\r\n @if(authors().length > 0 && !hasRegions()) {\r\n <mat-form-field>\r\n <mat-label>Autore</mat-label>\r\n <mat-select [(ngModel)]=\"filterParams.author\" name=\"author\">\r\n @for (a of authors(); track $index) {\r\n <mat-option [value]=\"a.value\" [matTooltip]=\"a.name\">\r\n {{a.name}}\r\n </mat-option>\r\n }\r\n </mat-select>\r\n </mat-form-field>\r\n }\r\n <mat-form-field>\r\n <mat-label>Tipo documento</mat-label>\r\n <mat-select [(ngModel)]=\"filterParams.type\" name=\"type\">\r\n @for (t of types(); track $index) {\r\n <mat-option [value]=\"t.value\" [matTooltip]=\"t.name\">\r\n {{t.name}}\r\n </mat-option>\r\n }\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n\r\n </mat-expansion-panel>\r\n }\r\n } @else {\r\n <mat-expansion-panel expanded class=\"accordion-panel mat-elevation-z0 \">\r\n <mat-expansion-panel-header class=\"accordion-header\">\r\n <mat-panel-title>\r\n Periodo\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n <mat-form-field style=\"width:100%\">\r\n <mat-label>Intervallo di pubblicazione</mat-label>\r\n <mat-date-range-input [rangePicker]=\"picker1\">\r\n <input matStartDate [(ngModel)]=\"interval.from\" [dateIntervalChange]=\"interval\"\r\n #rangeFrom1=\"ngModel\" name=\"rangeFrom1\" placeholder=\"Da data\">\r\n <input matEndDate [(ngModel)]=\"interval.to\" [dateIntervalChange]=\"interval\" [end]=\"true\"\r\n #rangeTo1=\"ngModel\" name=\"rangeTo1\" placeholder=\"A data\">\r\n </mat-date-range-input>\r\n @if (interval.from || interval.to) {\r\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\r\n (click)=\"interval.clear()\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n }\r\n <mat-datepicker-toggle matSuffix [for]=\"picker1\"></mat-datepicker-toggle>\r\n <mat-date-range-picker #picker1></mat-date-range-picker>\r\n @if (rangeFrom1.invalid || rangeTo1.invalid) {\r\n <mat-error>Intervallo non valido.</mat-error>\r\n }\r\n </mat-form-field>\r\n @if(isReadable()) {\r\n <div style=\"padding-bottom:10px\">\r\n <mat-slide-toggle [(ngModel)]=\"filterParams.showUnreadDocumentsOnly\"\r\n name=\"showUnreadDocumentsOnly\">Mostra solo elementi non letti</mat-slide-toggle>\r\n </div>\r\n }\r\n </mat-expansion-panel>\r\n <mat-expansion-panel expanded class=\"accordion-panel mat-elevation-z0 \">\r\n <mat-expansion-panel-header class=\"accordion-header\">\r\n <mat-panel-title>\r\n Documento modificato\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n <div fxLayout=\"column\">\r\n <div fxLayout=\"row wrap\" fxLayoutAlign=\"space-between center\" fxFill>\r\n <mat-form-field fxFlex=\"59\" fxFlex.xs=\"100\">\r\n <mat-label>Numero</mat-label>\r\n <input matInput maxlength=\"10\" [(ngModel)]=\"filterParams.changedNumber\" name=\"changedNumber\"\r\n #filterByChangeNumber=\"matInput\" />\r\n @if (filterParams.changedNumber) {\r\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\r\n (click)=\"filterParams.changedNumber = null\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n }\r\n </mat-form-field>\r\n <mat-form-field fxHide.xs fxFlex=\"39\" fxFlex.xs=\"100\">\r\n <mat-label>Anno</mat-label>\r\n <input type=\"number\" min=\"1750\" matInput maxlength=\"4\" [(ngModel)]=\"filterParams.changedYear\"\r\n name=\"changedYear\" />\r\n @if (filterParams.changedYear) {\r\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\r\n (click)=\"filterParams.changedYear = null\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n }\r\n </mat-form-field>\r\n </div>\r\n <mat-form-field>\r\n <mat-label>Titolo</mat-label>\r\n <input matInput maxlength=\"200\" [(ngModel)]=\"filterParams.changedTitle\" name=\"changedTitle\" />\r\n @if (filterParams.changedTitle) {\r\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\r\n (click)=\"filterParams.changedTitle = null\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n }\r\n </mat-form-field>\r\n </div>\r\n </mat-expansion-panel>\r\n <mat-expansion-panel #modifierOptionsExpansionPanel class=\"accordion-panel mat-elevation-z0 \">\r\n <mat-expansion-panel-header class=\"accordion-header\">\r\n <mat-panel-title>\r\n Documento modificante\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n <div fxLayout=\"column\">\r\n <div fxLayout=\"row wrap\" fxLayoutAlign=\"space-between center\" fxFill>\r\n <mat-form-field fxFlex=\"59\" fxFlex.xs=\"100\">\r\n <mat-label>Numero</mat-label>\r\n <input matInput maxlength=\"10\" [(ngModel)]=\"filterParams.modifierNumber\" name=\"modifierNumber\" />\r\n @if (filterParams.changedNumber) {\r\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\r\n (click)=\"filterParams.modifierNumber = null\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n }\r\n </mat-form-field>\r\n <mat-form-field fxHide.xs fxFlex=\"39\" fxFlex.xs=\"100\">\r\n <mat-label>Anno</mat-label>\r\n <input type=\"number\" min=\"1750\" matInput maxlength=\"4\" [(ngModel)]=\"filterParams.modifierYear\"\r\n name=\"modifierYear\" />\r\n @if (filterParams.modifierYear) {\r\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\r\n (click)=\"filterParams.modifierYear = null\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n }\r\n </mat-form-field>\r\n </div>\r\n <mat-form-field>\r\n <mat-label>Titolo</mat-label>\r\n <input matInput maxlength=\"200\" [(ngModel)]=\"filterParams.modifierTitle\" name=\"modifierTitle\" />\r\n @if (filterParams.modifierTitle) {\r\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\r\n (click)=\"filterParams.modifierTitle = null\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n }\r\n </mat-form-field>\r\n </div>\r\n </mat-expansion-panel>\r\n <mat-expansion-panel #otherOptionsExpansionPanel class=\"accordion-panel mat-elevation-z0\">\r\n <mat-expansion-panel-header class=\"accordion-header\">\r\n <mat-panel-title>\r\n Altre opzioni\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n <div fxLayout=\"column\">\r\n <mat-form-field>\r\n <mat-label>Motivo</mat-label>\r\n <mat-select [(ngModel)]=\"filterParams.changeReason\" name=\"changeReason\">\r\n @for (r of reasons(); track $index) {\r\n <mat-option [value]=\"r.value\" [matTooltip]=\"r.name\">\r\n {{r.name}}\r\n </mat-option>\r\n }\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n </mat-expansion-panel>\r\n }\r\n </mat-accordion>\r\n </form>\r\n </div>\r\n </div>\r\n @if(showChannels()) {\r\n <div style=\"padding:10px\">\r\n <div fxLayout=\"column\">\r\n <mat-expansion-panel class=\"accordion-panel mat-elevation-z0\" style=\"margin-bottom: 10px;\">\r\n <mat-expansion-panel-header class=\"accordion-header\">\r\n <mat-panel-title>\r\n Canali\r\n </mat-panel-title>\r\n <mat-panel-description>\r\n @for (c of clipperService.availableChannels(); track $index) {\r\n <div class=\"channel-box\" [class.channel-disabled]=\"!c.active || c.disabled\" [matTooltip]=\"c.name\">\r\n <span class=\"label\">{{c.header}}</span>\r\n </div>\r\n }\r\n </mat-panel-description>\r\n </mat-expansion-panel-header>\r\n <chips-selector [collapseAt]=\"599\" [(ngModel)]=\"filterParams.channels\" [multiple]=\"true\" name=\"channels\"\r\n label=\"Canali\" [options]=\"clipperService.availableChannels()\"\r\n (changed)=\"channelsChanged()\"></chips-selector>\r\n\r\n </mat-expansion-panel>\r\n <div fxLayout=\"row\" fxLayoutGap=\"10px\" fxFill>\r\n <div fxFlex=\"*\" fxFlexAlign=\"end\">\r\n <button mat-stroked-button (click)=\"clearFilter()\">Pulisci</button>\r\n <button mat-stroked-button (click)=\"saveFilter()\" style=\"margin-left: 10px;\">Salva</button>\r\n </div>\r\n <div fxLayoutAlign=\"end\">\r\n <button fxFlexAlign=\"end\" mat-flat-button (click)=\"applyFilter()\"\r\n [disabled]=\"!canSearch()\">Applica</button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </mat-drawer>\r\n <div fxLayout=\"column\" fxLayoutGap=\"10px\" fxFill class=\"drawer-content scroll-hidden\">\r\n <div class=\"module-toolbar \">\r\n <div fxLayout=\"row wrap\" fxLayoutAlign=\"space-between\" fxFill>\r\n <div fxFlex=\"49\" fxFlex.lt-md=\"100\" style=\"padding-left: 10px; padding-bottom: 5px;\">\r\n @if(!filterPane.opened) {\r\n <button-toggle cssClass=\"small\" cssClassSmall=\"x-small\" iconOn=\"left_panel_close\" iconOff=\"tune\"\r\n labelOn=\"Nascondi<br>filtri\" labelOff=\"Mostra<br>filtri\" [value]=\"filterPane.opened\"\r\n (changed)=\"toggleFilterPane()\"></button-toggle>\r\n }\r\n </div>\r\n <div fxFlex=\"49\" fxFlex.lt-md=\"100\" fxLayoutAlign=\"end\">\r\n <div fxLayout=\"row\" style=\"height:48px; padding-bottom: 5px;\">\r\n @if((snapshot?.total ?? 0) > 0) {\r\n @if(sortOptions && sortOptions.length > 0) {\r\n <button-selector [options]=\"sortOptions\" label=\"Ordina per:\" style=\"margin-right: 5px;\" [border]=\"0\"\r\n fxFlexAlign=\"center\" [(ngModel)]=\"sortMode\" name=\"sortMode\" (selected)=\"sort($event)\"></button-selector>\r\n }\r\n <button fxFlexAlign=\"center\" mat-icon-button matSuffix matTooltip=\"Opzioni sulla selezione\"\r\n aria-label=\"Opzioni sulla selezione\" [matMenuTriggerFor]=\"selectionOptionsMenu\"\r\n [matBadge]=\"countSelections()\"><mat-icon>checklist</mat-icon></button>\r\n <button fxFlexAlign=\"center\" mat-icon-button matTooltip=\"Salva elenco in Excel \"\r\n (click)=\"exportResults()\"><mat-icon>save_alt</mat-icon></button>\r\n @if (!filterPane2?.opened && hasFacets()){\r\n <button fxFlexAlign=\"center\" mat-icon-button matTooltip=\"Affina ricerca\"\r\n (click)=\"toggleFilterPane2()\"><mat-icon>right_panel_open</mat-icon></button>\r\n }\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div fxFlex=\"*\" class=\"module-content\">\r\n <mat-drawer-container [hasBackdrop]=\"filterPane2HasBackdrop\" class=\"fill\">\r\n <mat-drawer #filterPane2 class=\"drawer-small drawer-with-loader\" position=\"end\" opened=\"false\">\r\n @if (filterBusy()) {\r\n <div class=\"overlay\"></div>\r\n }\r\n <div fxLayout=\"column\" fxFill>\r\n <div fxFlex=\"6px\">\r\n @if (filterBusy()) {\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\">Affina ricerca</div>\r\n <div fxFlex=\"*\" fxLayoutAlign=\"end\">\r\n <button mat-icon-button (click)=\"toggleFilterPane2()\"\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=\"content scroll-hidden\" style=\"padding: 0 5px;\">\r\n <clipper-search-facets #facets></clipper-search-facets>\r\n\r\n </div>\r\n </div>\r\n </mat-drawer>\r\n <div fxLayout=\"column\" fxFill>\r\n <div fxFlex=\"*\" [id]=\"scrollerId\" cdkScrollable class=\"scroll-auto\" style=\"padding: 0 20px;\">\r\n @if (!snapshot?.total) {\r\n <div class=\"message-container\">\r\n @if(snapshot?.total === 0) {\r\n <p class=\"message\"><b>Nessun elemento da visualizzare.</b></p>\r\n } @else {\r\n <div class=\"message\">\r\n <p fxHide.xs><b>Esegui una ricerca compilando i campi necessari nella maschera di ricarca qui a\r\n fianco.</b></p>\r\n <p fxHide.gt-xs><b>Fai click sul bottone <span class=\"accent\"><mat-icon>tune</mat-icon></span> ed esegui\r\n una\r\n ricerca compilando i campi necessari.</b></p>\r\n <p>E' possibile salvare i parametri delle le ricerche pi\u00F9 utilizzate facendo clic su &nbsp;\r\n <mat-icon\r\n style=\"display: inline-flex; border-radius: 9999px; height: 25px; width: 25px; color: var(--ars-color-text-low); background-color: var(--ars-color-accent);\">add</mat-icon>.\r\n </p>\r\n </div>\r\n }\r\n </div>\r\n } @else {\r\n @if (snapshot && (snapshot.total ?? 0) > 0) {\r\n @for (item of snapshot.items; track $index; let i = $index) {\r\n @if (item.group && isSortedByDate()) {\r\n <div class=\"items-group-title\">\r\n <div [class.group-spaced]=\"i > 0\">{{item.group}}</div>\r\n </div>\r\n }\r\n <clipper-search-result-item [item]=\"item\" [parent]=\"this\" [displayModelName]=\"true\" [actions]=\"contextMenu\"\r\n [isReadable]=\"true\"></clipper-search-result-item>\r\n }\r\n }\r\n }\r\n </div>\r\n <!-- footer -->\r\n @if ((snapshot?.total ?? 0) > 0) {\r\n <div class=\"items-footer\">\r\n <div fxLayout=\"row wrap\" fxLayoutGap=\"10px\" fxLayoutAlign=\"space-between center\" fxFill>\r\n <!-- legend -->\r\n <div fxFlex.lt-md=\"100\" class=\"legend-container\">\r\n <div class=\"legend unread-bg\"></div>\r\n non letto\r\n <!--<div class=\"legend next very-popular-bg\"></div>\r\n molto citato\r\n <div class=\"legend next popular-bg\"></div>\r\n citato-->\r\n <div class=\"legend next expired-bg \"></div>\r\n non pi\u00F9 vigente\r\n </div>\r\n <div fxFlex.lt-md=\"100\" fxLayoutAlign=\"end\" [class.wide]=\"filterPane2?.opened\">\r\n <div fxLayout=\"row\">\r\n <mat-paginator fxFlexAlign=\"center\" #paginator class=\"paginator\" [hidePageSize]=\"true\"\r\n [length]=\"snapshot?.total ?? 0\" [pageSize]=\"filterParams.count\" [showFirstLastButtons]=\"true\"\r\n (page)=\"fetchMore($event)\">\r\n </mat-paginator>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </mat-drawer-container>\r\n </div>\r\n </div>\r\n</mat-drawer-container>\r\n<mat-menu #filterPaneOptionsMenu=\"matMenu\">\r\n <button mat-menu-item (click)=\"compose()\">\r\n <mat-icon>build</mat-icon>Componi\r\n </button>\r\n <button mat-menu-item (click)=\"help()\">\r\n <mat-icon>help</mat-icon>Come usare la ricerca in testo libero\r\n </button>\r\n</mat-menu>\r\n<mat-menu #selectionOptionsMenu=\"matMenu\">\r\n <button mat-menu-item (click)=\"selectAll()\">\r\n <mat-icon>select_all</mat-icon>Seleziona tutti\r\n </button>\r\n <clipper-document-menu [parent]=\"this\" [useSelections]=\"true\" [isReadable]=\"true\" [canUseArchive]=\"false\"\r\n [canUseCalendar]=\"false\" [canUseAIAssistant]=\"hasAIAssistant\" [canUseRS]=\"showRSOptions()\">\r\n </clipper-document-menu>\r\n</mat-menu>\r\n<mat-menu #contextMenu=\"matMenu\" (closed)=\"updateMenuButtonsVisibility()\">\r\n <ng-template matMenuContent let-item=\"item\">\r\n <clipper-document-menu [parent]=\"this\" [item]=\"item\" [isReadable]=\"true\" [canUseArchive]=\"false\"\r\n [canUseCalendar]=\"false\" [canUseAIAssistant]=\"hasAIAssistant\" [canUseRS]=\"showRSOptions()\">\r\n </clipper-document-menu>\r\n </ng-template>\r\n</mat-menu>", styles: [".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-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}.wide{min-width:100%!important;max-width:100%!important;width:100%!important}.fill{min-width:100%!important;max-width:100%!important;width:100%!important;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}.smaller{font-size:smaller!important}.small{font-size:small!important;line-height:16px!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:14px!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-small .title-container{padding:20px 5px 20px 0}.drawer .title-container-with-loader,.drawer-small .title-container-with-loader{padding:14px 5px 20px 0}.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}.expired{color:var(--app-color-expired, #ff5449)!important}.expiring{color:var(--app-color-warning, #FFC107)!important}.closed{color:var(--app-color-closed, #388E3C)!important}.unread-bg{background-color:var(--app-color-unread, #f7931c)!important}.error-bg{background-color:var(--ars-color-error, #ff5449)!important}.expired-bg{background-color:var(--app-color-expired, #ff5449)!important}.expiring-bg{background-color:var(--app-color-expiring, #FFC107)!important}.popular-bg,.closed-bg{background-color:var(--ars-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:600!important;color:var(--ars-color-text, #191c1b)}.item-content .details .links a{cursor:pointer!important;color:var(--ars-color-link, #03A9F4);font-weight:600!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-accent, #7894ae)}.tile .tile-date .date-divider,.tile .date .date-divider{width:1px;margin:0 8px;border-left:1px solid var(--ars-color-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-accent, #7894ae)}.stripe .stripe-date .date-divider,.stripe .date .date-divider{width:1px;margin:0 8px;border-left:1px solid var(--ars-color-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)}.message-container{font-size:large;display:flex;justify-content:center;align-items:center;height:50%}.message-container .message{color:var(--ars-color-secondary, #4a635f);text-align:center;padding:40px}.module-content{overflow-x:hidden!important}.module-toolbar{padding:0 5px 0 10px!important}.frame{height:100%!important;min-height:100%!important}.drawer,.drawer-small{background-color:var(--ars-drawer-background-color)!important}@media screen and (min-width:431px){.drawer-small{min-width:360px!important;max-width:360px!important}}.channel-box{border-radius:4px;border:2px solid var(--ars-color-primary);color:var(--ars-color-primary);text-align:center;min-width:28px;min-height:28px;margin-right:12px;display:flex;align-items:center;justify-content:center}.channel-box .label{font-size:15px;font-weight:700}.channel-disabled{opacity:.3}.command{line-height:16px;color:var(--ars-color-primary);font-weight:500;cursor:pointer!important;text-decoration:none}.command:hover{opacity:.8!important}.link{color:var(--ars-color-link);font-weight:500;cursor:pointer!important;text-decoration:none}.link:hover{opacity:.8}.no-spaced{padding-top:0!important;padding-bottom:0!important}.spaced{padding-top:20px!important;padding-bottom:20px!important}.spaced-bottom-20{padding-bottom:20px!important}.spaced-top-20{padding-top:20px!important}.section,.spaced-bottom-10{padding-bottom:10px!important}.spaced-top-10{padding-top:10px!important}.section-title{font-size:large;font-weight:500;padding-top:20px;padding-bottom:8px}.info-3{margin-top:6px;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}.info-4{margin-top:6px;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}\n"] }]
4168
4035
  }], propDecorators: { filterByNumber: [{ type: i0.ViewChild, args: ['filterByNumber', { isSignal: true }] }], filterByText: [{ type: i0.ViewChild, args: ['filterByText', { isSignal: true }] }], filterByChangeNumber: [{ type: i0.ViewChild, args: ['filterByChangeNumber', { isSignal: true }] }], filterPane: [{ type: i0.ViewChild, args: ['filterPane', { isSignal: true }] }], filterPane2: [{ type: i0.ViewChild, args: ['filterPane2', { isSignal: true }] }], filterSelector: [{ type: i0.ViewChild, args: ['filterSelector', { isSignal: true }] }], moduleSelector: [{ type: i0.ViewChild, args: ['moduleSelector', { isSignal: true }] }], sourceExpansionPanel: [{ type: i0.ViewChild, args: ['sourceExpansionPanel', { isSignal: true }] }], otherOptionsExpansionPanel: [{ type: i0.ViewChild, args: ['otherOptionsExpansionPanel', { isSignal: true }] }], modifierExpansionPanel: [{ type: i0.ViewChild, args: ['modifierExpansionPanel', { isSignal: true }] }], showChannels: [{ type: i0.Input, args: [{ isSignal: true, alias: "showChannels", required: false }] }], showRSOptions: [{ type: i0.Input, args: [{ isSignal: true, alias: "showRSOptions", required: false }] }], showAIAssistantOptions: [{ type: i0.Input, args: [{ isSignal: true, alias: "showAIAssistantOptions", required: false }] }], selectableModules: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectableModules", required: false }] }], initialModule: [{ type: i0.Input, args: [{ isSignal: true, alias: "initialModule", required: false }] }] } });
4169
4036
 
4170
4037
  class ClipperBrowserDialogComponent {
4171
4038
  constructor() {
4172
- this.unsubscribe = new Subject();
4039
+ this.destroyRef = inject(DestroyRef);
4173
4040
  this.clipperBrowser = viewChild.required('clipperBrowser');
4174
4041
  this.clipperService = inject(ClipperService);
4175
4042
  this.changeDetector = inject(ChangeDetectorRef);
@@ -4179,7 +4046,7 @@ class ClipperBrowserDialogComponent {
4179
4046
  }
4180
4047
  ngOnInit() {
4181
4048
  this.broadcastService.getMessage()
4182
- .pipe(takeUntil(this.unsubscribe))
4049
+ .pipe(takeUntilDestroyed(this.destroyRef))
4183
4050
  .subscribe(message => {
4184
4051
  if (message.id === ClipperMessages.DOCUMENT_SELECTED_INNER) {
4185
4052
  const document = this.clipperBrowser().getSnapshotDocument(message.data.documentId || message.data.id);
@@ -4229,13 +4096,127 @@ class ClipperBrowserDialogComponent {
4229
4096
  }
4230
4097
  }
4231
4098
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ClipperBrowserDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
4232
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: ClipperBrowserDialogComponent, isStandalone: true, selector: "ng-component", host: { attributes: { "Bind": SystemUtils.generateUUID() } }, viewQueries: [{ propertyName: "clipperBrowser", first: true, predicate: ["clipperBrowser"], descendants: true, isSignal: true }], ngImport: i0, template: "<div style=\"padding:10px 0 10px 0\">\r\n <div fxLayout=\"row\" fxLayoutGap=\"20px\" fxLayoutAlign=\"start center\" fxFill>\r\n <div class=\"dialog-title\">\r\n <a href=\"https://clipper.arsedizioni.it\" matTooltip=\"Apri Clipper in un nuovo tab\" target=\"_blank\">\r\n <div class=\"clipper-logo\"></div>\r\n </a>\r\n </div>\r\n <div fxFlex=\"*\"></div>\r\n @if ((dialogData.selectionMode ?? 0) > 0 && canSelect()) {\r\n <div fxFlexAlign=\"center\" 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\">\r\n <span class=\"small bold\">Usa selezione</span>\r\n </button>\r\n <button fxHide.gt-sm fxFlexAlign=\"center\" type=\"button\" mat-icon-button (click)=\"select()\"\r\n matTooltip=\"Usa selezione\" aria-label=\"'Usa la selezione'\" class=\"clipper-selection-icon-button\">\r\n <mat-icon>check</mat-icon>\r\n </button>\r\n </div>\r\n }\r\n <div fxFlexAlign=\"center\" class=\"dialog-close\">\r\n <div fxLayout=\"row\" fxLayoutAlign=\"end center\" fxLayoutGap=\"5px\">\r\n @if (clipperService.bag.length > 0) {\r\n <button type=\"button\" mat-icon-button matTooltip=\"Documenti di lavoro\"\r\n aria-label=\"'Documenti di lavoro'\" (click)=\"clipperBrowser.openBag()\">\r\n <mat-icon aria-hidden=\"false\" [matBadge]=\"clipperService.bag.length\"\r\n >work_outline</mat-icon>\r\n </button>\r\n }\r\n <button type=\"button\" mat-icon-button matTooltip=\"Chiudi\" [mat-dialog-close]=\"true\" aria-label=\"Chiudi\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n<mat-dialog-content style=\"padding: 0\">\r\n <clipper-browser #clipperBrowser class=\"wide fill\" [showChannels]=\"dialogData.showChannels ?? true\"\r\n [selectableModules]=\"dialogData.selectableModules ?? []\"\r\n [initialModule]=\"dialogData.initialModule\" [showRSOptions]=\"false\" [showAIAssistantOptions]=\"false\"></clipper-browser>\r\n</mat-dialog-content>", styles: [".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-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}.wide{min-width:100%!important;max-width:100%!important;width:100%!important}.fill{min-width:100%!important;max-width:100%!important;width:100%!important;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}.smaller{font-size:smaller!important}.small{font-size:small!important;line-height:16px!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:14px!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-small .title-container{padding:20px 5px 20px 0}.drawer .title-container-with-loader,.drawer-small .title-container-with-loader{padding:14px 5px 20px 0}.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}.expired{color:var(--app-color-expired, #ff5449)!important}.expiring{color:var(--app-color-warning, #FFC107)!important}.closed{color:var(--app-color-closed, #388E3C)!important}.unread-bg{background-color:var(--app-color-unread, #f7931c)!important}.error-bg{background-color:var(--ars-color-error, #ff5449)!important}.expired-bg{background-color:var(--app-color-expired, #ff5449)!important}.expiring-bg{background-color:var(--app-color-expiring, #FFC107)!important}.popular-bg,.closed-bg{background-color:var(--ars-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:600!important;color:var(--ars-color-text, #191c1b)}.item-content .details .links a{cursor:pointer!important;color:var(--ars-color-link, #03A9F4);font-weight:600!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-accent, #7894ae)}.tile .tile-date .date-divider,.tile .date .date-divider{width:1px;margin:0 8px;border-left:1px solid var(--ars-color-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-accent, #7894ae)}.stripe .stripe-date .date-divider,.stripe .date .date-divider{width:1px;margin:0 8px;border-left:1px solid var(--ars-color-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)}.mat-mdc-dialog-content{max-height:unset!important;padding:0!important}\n"], dependencies: [{ kind: "directive", type: MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2$1.MatButton, 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] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i2$1.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatBadgeModule }, { kind: "directive", type: i8$1.MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: FlexLayoutModule }, { kind: "directive", type: i1.DefaultLayoutDirective, 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]", inputs: ["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"] }, { kind: "directive", type: i1.DefaultLayoutGapDirective, 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]", inputs: ["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"] }, { kind: "directive", type: i1.DefaultLayoutAlignDirective, 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]", inputs: ["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"] }, { kind: "directive", type: i1.FlexFillDirective, selector: "[fxFill], [fxFlexFill]" }, { kind: "directive", type: i1.DefaultFlexAlignDirective, 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]", inputs: ["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"] }, { kind: "directive", type: i1.DefaultFlexDirective, 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]", inputs: ["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"] }, { kind: "directive", type: i2$2.DefaultShowHideDirective, selector: " [fxShow], [fxShow.print], [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], [fxHide.print], [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]", inputs: ["fxShow", "fxShow.print", "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", "fxHide.print", "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"] }, { kind: "component", type: ClipperBrowserComponent, selector: "clipper-browser", inputs: ["showChannels", "showRSOptions", "showAIAssistantOptions", "selectableModules", "initialModule"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4099
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: ClipperBrowserDialogComponent, isStandalone: true, selector: "ng-component", host: { attributes: { "Bind": SystemUtils.generateUUID() } }, viewQueries: [{ propertyName: "clipperBrowser", first: true, predicate: ["clipperBrowser"], descendants: true, isSignal: true }], ngImport: i0, template: "<div style=\"padding:10px 0 10px 0\">\r\n <div fxLayout=\"row\" fxLayoutGap=\"20px\" fxLayoutAlign=\"start center\" fxFill>\r\n <div class=\"dialog-title\">\r\n <a href=\"https://clipper.arsedizioni.it\" matTooltip=\"Apri Clipper in un nuovo tab\" target=\"_blank\">\r\n <div class=\"clipper-logo\"></div>\r\n </a>\r\n </div>\r\n <div fxFlex=\"*\"></div>\r\n @if ((dialogData.selectionMode ?? 0) > 0 && canSelect()) {\r\n <div fxFlexAlign=\"center\" 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\">\r\n <span class=\"small bold\">Usa selezione</span>\r\n </button>\r\n <button fxHide.gt-sm fxFlexAlign=\"center\" type=\"button\" mat-icon-button (click)=\"select()\"\r\n matTooltip=\"Usa selezione\" aria-label=\"'Usa la selezione'\" class=\"clipper-selection-icon-button\">\r\n <mat-icon>check</mat-icon>\r\n </button>\r\n </div>\r\n }\r\n <div fxFlexAlign=\"center\" class=\"dialog-close\">\r\n <div fxLayout=\"row\" fxLayoutAlign=\"end center\" fxLayoutGap=\"5px\">\r\n @if (clipperService.bag.length > 0) {\r\n <button type=\"button\" mat-icon-button matTooltip=\"Documenti di lavoro\"\r\n aria-label=\"'Documenti di lavoro'\" (click)=\"clipperBrowser.openBag()\">\r\n <mat-icon aria-hidden=\"false\" [matBadge]=\"clipperService.bag.length\"\r\n >work_outline</mat-icon>\r\n </button>\r\n }\r\n <button type=\"button\" mat-icon-button matTooltip=\"Chiudi\" [mat-dialog-close]=\"true\" aria-label=\"Chiudi\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n<mat-dialog-content style=\"padding: 0\">\r\n <clipper-browser #clipperBrowser class=\"wide fill\" [showChannels]=\"dialogData.showChannels ?? true\"\r\n [selectableModules]=\"dialogData.selectableModules ?? []\"\r\n [initialModule]=\"dialogData.initialModule\" [showRSOptions]=\"false\" [showAIAssistantOptions]=\"false\"></clipper-browser>\r\n</mat-dialog-content>", styles: [".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-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}.wide{min-width:100%!important;max-width:100%!important;width:100%!important}.fill{min-width:100%!important;max-width:100%!important;width:100%!important;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}.smaller{font-size:smaller!important}.small{font-size:small!important;line-height:16px!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:14px!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-small .title-container{padding:20px 5px 20px 0}.drawer .title-container-with-loader,.drawer-small .title-container-with-loader{padding:14px 5px 20px 0}.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}.expired{color:var(--app-color-expired, #ff5449)!important}.expiring{color:var(--app-color-warning, #FFC107)!important}.closed{color:var(--app-color-closed, #388E3C)!important}.unread-bg{background-color:var(--app-color-unread, #f7931c)!important}.error-bg{background-color:var(--ars-color-error, #ff5449)!important}.expired-bg{background-color:var(--app-color-expired, #ff5449)!important}.expiring-bg{background-color:var(--app-color-expiring, #FFC107)!important}.popular-bg,.closed-bg{background-color:var(--ars-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:600!important;color:var(--ars-color-text, #191c1b)}.item-content .details .links a{cursor:pointer!important;color:var(--ars-color-link, #03A9F4);font-weight:600!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-accent, #7894ae)}.tile .tile-date .date-divider,.tile .date .date-divider{width:1px;margin:0 8px;border-left:1px solid var(--ars-color-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-accent, #7894ae)}.stripe .stripe-date .date-divider,.stripe .date .date-divider{width:1px;margin:0 8px;border-left:1px solid var(--ars-color-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)}.mat-mdc-dialog-content{max-height:unset!important;padding:0!important}\n"], dependencies: [{ kind: "directive", type: MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i5.MatButton, 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] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i5.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatBadgeModule }, { kind: "directive", type: i8$1.MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: FlexLayoutModule }, { kind: "directive", type: i1.DefaultLayoutDirective, 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]", inputs: ["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"] }, { kind: "directive", type: i1.DefaultLayoutGapDirective, 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]", inputs: ["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"] }, { kind: "directive", type: i1.DefaultLayoutAlignDirective, 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]", inputs: ["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"] }, { kind: "directive", type: i1.FlexFillDirective, selector: "[fxFill], [fxFlexFill]" }, { kind: "directive", type: i1.DefaultFlexAlignDirective, 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]", inputs: ["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"] }, { kind: "directive", type: i1.DefaultFlexDirective, 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]", inputs: ["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"] }, { kind: "directive", type: i2$1.DefaultShowHideDirective, selector: " [fxShow], [fxShow.print], [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], [fxHide.print], [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]", inputs: ["fxShow", "fxShow.print", "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", "fxHide.print", "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"] }, { kind: "component", type: ClipperBrowserComponent, selector: "clipper-browser", inputs: ["showChannels", "showRSOptions", "showAIAssistantOptions", "selectableModules", "initialModule"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4233
4100
  }
4234
4101
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ClipperBrowserDialogComponent, decorators: [{
4235
4102
  type: Component,
4236
4103
  args: [{ host: { 'Bind': SystemUtils.generateUUID() }, imports: [MatDialogClose, MatDialogContent, MatButtonModule, MatBadgeModule, MatIconModule, FlexLayoutModule, ClipperBrowserComponent], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div style=\"padding:10px 0 10px 0\">\r\n <div fxLayout=\"row\" fxLayoutGap=\"20px\" fxLayoutAlign=\"start center\" fxFill>\r\n <div class=\"dialog-title\">\r\n <a href=\"https://clipper.arsedizioni.it\" matTooltip=\"Apri Clipper in un nuovo tab\" target=\"_blank\">\r\n <div class=\"clipper-logo\"></div>\r\n </a>\r\n </div>\r\n <div fxFlex=\"*\"></div>\r\n @if ((dialogData.selectionMode ?? 0) > 0 && canSelect()) {\r\n <div fxFlexAlign=\"center\" 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\">\r\n <span class=\"small bold\">Usa selezione</span>\r\n </button>\r\n <button fxHide.gt-sm fxFlexAlign=\"center\" type=\"button\" mat-icon-button (click)=\"select()\"\r\n matTooltip=\"Usa selezione\" aria-label=\"'Usa la selezione'\" class=\"clipper-selection-icon-button\">\r\n <mat-icon>check</mat-icon>\r\n </button>\r\n </div>\r\n }\r\n <div fxFlexAlign=\"center\" class=\"dialog-close\">\r\n <div fxLayout=\"row\" fxLayoutAlign=\"end center\" fxLayoutGap=\"5px\">\r\n @if (clipperService.bag.length > 0) {\r\n <button type=\"button\" mat-icon-button matTooltip=\"Documenti di lavoro\"\r\n aria-label=\"'Documenti di lavoro'\" (click)=\"clipperBrowser.openBag()\">\r\n <mat-icon aria-hidden=\"false\" [matBadge]=\"clipperService.bag.length\"\r\n >work_outline</mat-icon>\r\n </button>\r\n }\r\n <button type=\"button\" mat-icon-button matTooltip=\"Chiudi\" [mat-dialog-close]=\"true\" aria-label=\"Chiudi\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n<mat-dialog-content style=\"padding: 0\">\r\n <clipper-browser #clipperBrowser class=\"wide fill\" [showChannels]=\"dialogData.showChannels ?? true\"\r\n [selectableModules]=\"dialogData.selectableModules ?? []\"\r\n [initialModule]=\"dialogData.initialModule\" [showRSOptions]=\"false\" [showAIAssistantOptions]=\"false\"></clipper-browser>\r\n</mat-dialog-content>", styles: [".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-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}.wide{min-width:100%!important;max-width:100%!important;width:100%!important}.fill{min-width:100%!important;max-width:100%!important;width:100%!important;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}.smaller{font-size:smaller!important}.small{font-size:small!important;line-height:16px!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:14px!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-small .title-container{padding:20px 5px 20px 0}.drawer .title-container-with-loader,.drawer-small .title-container-with-loader{padding:14px 5px 20px 0}.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}.expired{color:var(--app-color-expired, #ff5449)!important}.expiring{color:var(--app-color-warning, #FFC107)!important}.closed{color:var(--app-color-closed, #388E3C)!important}.unread-bg{background-color:var(--app-color-unread, #f7931c)!important}.error-bg{background-color:var(--ars-color-error, #ff5449)!important}.expired-bg{background-color:var(--app-color-expired, #ff5449)!important}.expiring-bg{background-color:var(--app-color-expiring, #FFC107)!important}.popular-bg,.closed-bg{background-color:var(--ars-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:600!important;color:var(--ars-color-text, #191c1b)}.item-content .details .links a{cursor:pointer!important;color:var(--ars-color-link, #03A9F4);font-weight:600!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-accent, #7894ae)}.tile .tile-date .date-divider,.tile .date .date-divider{width:1px;margin:0 8px;border-left:1px solid var(--ars-color-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-accent, #7894ae)}.stripe .stripe-date .date-divider,.stripe .date .date-divider{width:1px;margin:0 8px;border-left:1px solid var(--ars-color-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)}.mat-mdc-dialog-content{max-height:unset!important;padding:0!important}\n"] }]
4237
4104
  }], propDecorators: { clipperBrowser: [{ type: i0.ViewChild, args: ['clipperBrowser', { isSignal: true }] }] } });
4238
4105
 
4106
+ class ClipperSearchCalendarComponent {
4107
+ constructor() {
4108
+ this.calendar = viewChild.required('calendar');
4109
+ this.changed = output();
4110
+ this.changeDetector = inject(ChangeDetectorRef);
4111
+ this.busy = signal(false, ...(ngDevMode ? [{ debugName: "busy" }] : []));
4112
+ this.months = signal(undefined, ...(ngDevMode ? [{ debugName: "months" }] : []));
4113
+ this.calendarEmptyHeader = CalendarEmptyHeader;
4114
+ this.calendarDate = startOfToday();
4115
+ this.calendarDateClass = (cellDate) => {
4116
+ if (!this.calendarSpecialDays)
4117
+ return '';
4118
+ if (this.calendarSpecialDays[cellDate.getDate() - 1] > 0) {
4119
+ if (cellDate < startOfToday())
4120
+ return 'special-date-expired';
4121
+ else if (subDays(cellDate, 15) <= startOfToday())
4122
+ return 'special-date-expiring';
4123
+ else
4124
+ return 'special-date';
4125
+ }
4126
+ return '';
4127
+ };
4128
+ this.calendarDateFilter = (cellDate) => {
4129
+ return this.canFilter() && this.calendarSpecialDays != null && this.calendarSpecialDays[cellDate.getDate() - 1] > 0;
4130
+ };
4131
+ this.canFilter = input(false, ...(ngDevMode ? [{ debugName: "canFilter" }] : []));
4132
+ }
4133
+ /**
4134
+ * Update calendar
4135
+ * @param month : the month snapshot
4136
+ * @param months : the months snapshot
4137
+ * @param date : the new current date
4138
+ */
4139
+ update(month, months, date = startOfToday()) {
4140
+ if (months?.months) {
4141
+ this.months.set(months.months);
4142
+ }
4143
+ if (month && month.months && month.months.length > 0) {
4144
+ this.calendarSpecialDays = month.months[0].days;
4145
+ }
4146
+ const calendar = this.calendar();
4147
+ if (calendar) {
4148
+ calendar.activeDate = date;
4149
+ calendar.selected = date;
4150
+ calendar.updateTodaysDate();
4151
+ }
4152
+ this.calendarDate = date;
4153
+ this.changeDetector.markForCheck();
4154
+ }
4155
+ /**
4156
+ * Filter by date
4157
+ * @param date : the date to filter to or "month" to filter by the whole month.
4158
+ */
4159
+ filterByDate(date) {
4160
+ if (date === 'month') {
4161
+ if (this.calendarDate) {
4162
+ const today = new Date();
4163
+ const start = endOfDay(startOfMonth(this.calendarDate));
4164
+ const end = endOfMonth(this.calendarDate);
4165
+ this.changed.emit(new DateInterval(start, end));
4166
+ if (start <= today && end >= today) {
4167
+ const calendar = this.calendar();
4168
+ calendar.selected = today;
4169
+ calendar.updateTodaysDate();
4170
+ }
4171
+ }
4172
+ }
4173
+ else if (date) {
4174
+ this.changed.emit(new DateInterval(endOfDay(date), endOfDay(date)));
4175
+ this.calendarDate = date;
4176
+ const calendar = this.calendar();
4177
+ calendar.selected = date;
4178
+ calendar.updateTodaysDate();
4179
+ }
4180
+ else {
4181
+ this.changed.emit(undefined);
4182
+ }
4183
+ }
4184
+ /**
4185
+ * Filter by month
4186
+ * @param monthInfo: the month info
4187
+ */
4188
+ filterByMonth(monthInfo) {
4189
+ const newDate = new Date(monthInfo.year, monthInfo.month - 1, 1);
4190
+ const today = new Date();
4191
+ const start = endOfDay(startOfMonth(newDate));
4192
+ const end = endOfMonth(newDate);
4193
+ this.changed.emit(new DateInterval(start, end));
4194
+ this.calendarSpecialDays = monthInfo.days;
4195
+ const calendar = this.calendar();
4196
+ if (start <= today && end >= today) {
4197
+ calendar.selected = today;
4198
+ }
4199
+ calendar.activeDate = newDate;
4200
+ calendar.updateTodaysDate();
4201
+ this.calendarDate = newDate;
4202
+ }
4203
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ClipperSearchCalendarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
4204
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: ClipperSearchCalendarComponent, isStandalone: true, selector: "clipper-search-calendar", inputs: { canFilter: { classPropertyName: "canFilter", publicName: "canFilter", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { changed: "changed" }, viewQueries: [{ propertyName: "calendar", first: true, predicate: ["calendar"], descendants: true, isSignal: true }], ngImport: i0, template: "<div fxLayout=\"column\" fxFill class=\"calendar-container scroll-hidden\">\r\n <div class=\"calendar-months\">\r\n <div>\r\n <div fxLayout=\"row wrap\" fxLayoutAlign=\"center\" fxLayoutGap=\"8px\" fxFill>\r\n @for (m of months(); track $index) {\r\n <button fxFlex=\"37px\" mat-button class=\"small uppercase\" (click)=\"filterByMonth(m)\" [disabled]=\"m.total === 0\">\r\n @if (m.expired) {\r\n <span class=\"expired\" [matTooltip]=\"m.expired + ' elementi in ritardo'\">{{m.monthShortName}}</span>\r\n } @else {\r\n <span [matTooltip]=\"m.total + ' elementi'\">{{m.monthShortName}}</span>\r\n }\r\n </button>\r\n }\r\n </div>\r\n </div>\r\n <div class=\"separator\"></div>\r\n </div>\r\n <div fxFlex=\"*\" class=\"scroll-auto\">\r\n @if (!busy()) {\r\n <mat-calendar #calendar [headerComponent]=\"calendarEmptyHeader\" [dateClass]=\"calendarDateClass\"\r\n [dateFilter]=\"calendarDateFilter\" (selectedChange)=\"filterByDate($event)\" class=\"calendar-month\">\r\n </mat-calendar>\r\n <div fxLayout=\"row\" fxLayoutAlign=\"space-around\" style=\"padding:0 15px\">\r\n <button type=\"button\" mat-stroked-button (click)=\"filterByDate('month')\">Tutto il\r\n mese</button>\r\n </div>\r\n }\r\n </div>\r\n</div>", styles: [".calendar-container{padding-top:20px;padding-bottom:10px}.calendar-message{padding-top:10px;padding-left:15px}.calendar-months .separator{border-top:1px var(--ars-color-divider, #757d87) solid;margin-top:15px;padding-top:15px}.calendar-months .expired{color:var(--ars-color-error, #ff5449)!important}.calendar-month{padding:10px 0 30px;width:100%}\n"], dependencies: [{ kind: "ngmodule", type: FlexModule$1 }, { kind: "directive", type: i1.DefaultLayoutDirective, 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]", inputs: ["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"] }, { kind: "directive", type: i1.DefaultLayoutGapDirective, 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]", inputs: ["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"] }, { kind: "directive", type: i1.DefaultLayoutAlignDirective, 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]", inputs: ["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"] }, { kind: "directive", type: i1.FlexFillDirective, selector: "[fxFill], [fxFlexFill]" }, { kind: "directive", type: i1.DefaultFlexDirective, 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]", inputs: ["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"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i5.MatButton, 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] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: MatCalendar, selector: "mat-calendar", inputs: ["headerComponent", "startAt", "startView", "selected", "minDate", "maxDate", "dateFilter", "dateClass", "comparisonStart", "comparisonEnd", "startDateAccessibleName", "endDateAccessibleName"], outputs: ["selectedChange", "yearSelected", "monthSelected", "viewChanged", "_userSelection", "_userDragDrop"], exportAs: ["matCalendar"] }, { kind: "ngmodule", type: MatChipsModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: MatDividerModule }, { kind: "ngmodule", type: MatExpansionModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4205
+ }
4206
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ClipperSearchCalendarComponent, decorators: [{
4207
+ type: Component,
4208
+ args: [{ selector: 'clipper-search-calendar', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [
4209
+ FlexModule$1,
4210
+ MatButtonModule,
4211
+ MatTooltipModule,
4212
+ MatCalendar,
4213
+ MatChipsModule,
4214
+ MatIconModule,
4215
+ MatDividerModule,
4216
+ MatExpansionModule
4217
+ ], template: "<div fxLayout=\"column\" fxFill class=\"calendar-container scroll-hidden\">\r\n <div class=\"calendar-months\">\r\n <div>\r\n <div fxLayout=\"row wrap\" fxLayoutAlign=\"center\" fxLayoutGap=\"8px\" fxFill>\r\n @for (m of months(); track $index) {\r\n <button fxFlex=\"37px\" mat-button class=\"small uppercase\" (click)=\"filterByMonth(m)\" [disabled]=\"m.total === 0\">\r\n @if (m.expired) {\r\n <span class=\"expired\" [matTooltip]=\"m.expired + ' elementi in ritardo'\">{{m.monthShortName}}</span>\r\n } @else {\r\n <span [matTooltip]=\"m.total + ' elementi'\">{{m.monthShortName}}</span>\r\n }\r\n </button>\r\n }\r\n </div>\r\n </div>\r\n <div class=\"separator\"></div>\r\n </div>\r\n <div fxFlex=\"*\" class=\"scroll-auto\">\r\n @if (!busy()) {\r\n <mat-calendar #calendar [headerComponent]=\"calendarEmptyHeader\" [dateClass]=\"calendarDateClass\"\r\n [dateFilter]=\"calendarDateFilter\" (selectedChange)=\"filterByDate($event)\" class=\"calendar-month\">\r\n </mat-calendar>\r\n <div fxLayout=\"row\" fxLayoutAlign=\"space-around\" style=\"padding:0 15px\">\r\n <button type=\"button\" mat-stroked-button (click)=\"filterByDate('month')\">Tutto il\r\n mese</button>\r\n </div>\r\n }\r\n </div>\r\n</div>", styles: [".calendar-container{padding-top:20px;padding-bottom:10px}.calendar-message{padding-top:10px;padding-left:15px}.calendar-months .separator{border-top:1px var(--ars-color-divider, #757d87) solid;margin-top:15px;padding-top:15px}.calendar-months .expired{color:var(--ars-color-error, #ff5449)!important}.calendar-month{padding:10px 0 30px;width:100%}\n"] }]
4218
+ }], propDecorators: { calendar: [{ type: i0.ViewChild, args: ['calendar', { isSignal: true }] }], changed: [{ type: i0.Output, args: ["changed"] }], canFilter: [{ type: i0.Input, args: [{ isSignal: true, alias: "canFilter", required: false }] }] } });
4219
+
4239
4220
  /*
4240
4221
  * Public API Surface of ars-utils
4241
4222
  */