@arsedizioni/ars-utils 22.5.21 → 22.5.23

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.
@@ -4,7 +4,7 @@ import { ScrollDispatcher, ScrollingModule } from '@angular/cdk/scrolling';
4
4
  import * as i0 from '@angular/core';
5
5
  import { viewChild, inject, Renderer2, input, computed, ChangeDetectionStrategy, Component, output, ChangeDetectorRef, signal, Service, DestroyRef, model, afterNextRender, effect, untracked } from '@angular/core';
6
6
  import { toSignal, toObservable, takeUntilDestroyed, outputToObservable } from '@angular/core/rxjs-interop';
7
- import { form, min, maxLength, FormField } from '@angular/forms/signals';
7
+ import { form, min, maxLength, FormField, FormRoot } from '@angular/forms/signals';
8
8
  import * as i2$1 from '@angular/material/badge';
9
9
  import { MatBadge, MatBadgeModule } from '@angular/material/badge';
10
10
  import * as i2 from '@angular/material/button';
@@ -3205,16 +3205,16 @@ class ClipperBrowserComponent extends ClipperSearchResultManager {
3205
3205
  this.patchFilter({ topics: [] });
3206
3206
  }
3207
3207
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: ClipperBrowserComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3208
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.3", 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\">\n <mat-drawer #filterPane class=\"drawer\">\n <div fxLayout=\"column\" fxFill>\n <div fxFlex=\"78px\" class=\"title-container\">\n <div fxLayout=\"row\" fxLayoutGap=\"10px\" fxLayoutAlign=\"start center\" fxFill>\n <div class=\"title\">Filtro</div>\n <div fxFlex=\"*\" fxLayoutAlign=\"end\">\n <button fxFlexAlign=\"center\" mat-icon-button (click)=\"saveFilter(true)\"\n matTooltip=\"Crea una nuovo filtro con i parametri attuali \"><mat-icon>add</mat-icon></button>\n <button fxFlexAlign=\"center\" mat-icon-button (click)=\"toggleFilterPane()\"\n matTooltip=\"Nascondi\"><mat-icon>left_panel_close</mat-icon></button>\n </div>\n </div>\n </div>\n @if(hasFilters()) {\n <div style=\"padding:10px 20px\">\n <div fxLayout=\"row\" fxLayoutGap=\"10px\" fxFill>\n <div fxFlex=\"*\">\n <button-selector #filterSelector [options]=\"filters()\" label=\"Seleziona un filtro salvato\"\n labelSelected=\"Filtro in uso:\" fxFlexAlign=\"center\" (selected)=\"selectFilter($event)\"\n [matTooltip]=\"filterParams.searchName ?? ''\"></button-selector>\n </div>\n @if(filterParams.searchId) {\n <div fxFlex=\"40px\">\n <button fxFlexAlign=\"center\" mat-icon-button (click)=\"deleteFilter()\"\n matTooltip=\"Elimina il filtro in uso\"><mat-icon>delete</mat-icon></button>\n </div>\n }\n </div>\n </div>\n }\n <div fxFlex=\"*\" class=\"content scroll-hidden\" style=\"padding-bottom: 10px;\">\n <div class=\"scroll-auto\" style=\"padding: 0 10px;\">\n <form (keyup.enter)=\"applyFilter()\" novalidate>\n <mat-accordion multi displayMode=\"flat\">\n <mat-expansion-panel expanded class=\"accordion-panel mat-elevation-z0 \">\n <mat-expansion-panel-header class=\"accordion-header\">\n <mat-panel-title>\n Cerca in..\n </mat-panel-title>\n </mat-expansion-panel-header>\n\n <chips-selector #moduleSelector [formField]=\"filterForm.modules\" [collapseAt]=\"599\" [multiple]=\"true\"\n label=\"Sezioni\" name=\"modules\" [options]=\"filteredModules()\" (changed)=\"modulesChanged()\">\n </chips-selector>\n </mat-expansion-panel>\n\n @if((hasTags() || hasTopics()) && !isCoordination()) {\n <mat-expansion-panel class=\"accordion-panel mat-elevation-z0\">\n <mat-expansion-panel-header class=\"accordion-header\">\n <mat-panel-title>\n Argomenti\n </mat-panel-title>\n </mat-expansion-panel-header>\n @if(hasTags()) {\n <chips-selector [collapseAt]=\"599\" [formField]=\"filterForm.tags\" [multiple]=\"true\"\n label=\"Argomenti\" [options]=\"tags()\"></chips-selector>\n }\n @if(hasTopics()) {\n @if ((filterForm.topics().value()?.length ?? 0) > 0) {\n <mat-chip-grid #topics style=\"padding-bottom: 5px;\">\n @for (o of filterForm.topics().value(); track $index) {\n <mat-chip-row [value]=\"o\" (removed)=\"deleteTopic(o)\">\n {{o.name}}\n <button matChipRemove>\n <mat-icon>cancel</mat-icon>\n </button></mat-chip-row>\n }\n </mat-chip-grid>\n <input style=\"display: none;\" [matChipInputFor]=\"topics\" />\n }\n <div fxLayout=\"row\" fxLayoutAlign=\"end center\">\n <button mat-button type=\"button\" (click)=\"addTopic()\"><mat-icon>add</mat-icon> Aggiungi\n argomento</button>\n @if ((filterForm.topics().value()?.length ?? 0) > 0) {\n <button mat-button type=\"button\" (click)=\"clearTopics()\"><mat-icon>delete</mat-icon> Azzera</button>\n }\n </div>\n }\n </mat-expansion-panel>\n }\n @if(hasSectors()) {\n <mat-expansion-panel class=\"accordion-panel mat-elevation-z0 \">\n <mat-expansion-panel-header class=\"accordion-header\">\n <mat-panel-title>\n Settori\n </mat-panel-title>\n </mat-expansion-panel-header>\n <chips-selector [collapseAt]=\"599\" [formField]=\"filterForm.sectors\" [multiple]=\"true\"\n label=\"Settori\" [options]=\"sectors()\" (changed)=\"sectorsChanged()\" />\n @if(hasRegions())\n {\n <mat-divider style=\"padding-top: 8px; margin-top:8px\"></mat-divider>\n <chips-selector [formField]=\"filterForm.authors\" [multiple]=\"true\" mode=\"collapsed\"\n label=\"Tutte le regioni\" [options]=\"regions()\" />\n }\n </mat-expansion-panel>\n }\n @if(!isCoordination()) {\n <mat-expansion-panel expanded class=\"accordion-panel mat-elevation-z0 \">\n <mat-expansion-panel-header class=\"accordion-header\">\n <mat-panel-title>\n Documento\n </mat-panel-title>\n </mat-expansion-panel-header>\n <div fxLayout=\"column\">\n @if(isLaws()) {\n <div fxLayout=\"row wrap\" fxLayoutAlign=\"space-between center\" fxFill>\n <mat-form-field fxFlex=\"59\" fxFlex.xs=\"49\">\n <mat-label>Numero</mat-label>\n <input matInput [formField]=\"filterForm.number\"\n #filterByNumber=\"matInput\" />\n @if (filterForm.number().value()) {\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\n (click)=\"filterForm.number().value.set('')\">\n <mat-icon>close</mat-icon>\n </button>\n }\n </mat-form-field>\n <mat-form-field fxFlex=\"39\" fxFlex.xs=\"49\">\n <mat-label>Anno</mat-label>\n <input type=\"number\" matInput [formField]=\"filterForm.year\" />\n @if (filterForm.year().value()) {\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\n (click)=\"filterForm.year().value.set(null)\">\n <mat-icon>close</mat-icon>\n </button>\n }\n </mat-form-field>\n </div>\n }\n <mat-form-field>\n <mat-label>Intervallo di pubblicazione</mat-label>\n <mat-date-range-input [rangePicker]=\"picker1\">\n <input matStartDate [formField]=\"filterForm.from\" placeholder=\"Da data\"\n (keydown)=\"onIntervalKeydown($event)\" (keyup)=\"onIntervalKeyup($event, false, false)\">\n <input matEndDate [formField]=\"filterForm.to\" placeholder=\"A data\"\n (keydown)=\"onIntervalKeydown($event)\" (keyup)=\"onIntervalKeyup($event, false, true)\">\n </mat-date-range-input>\n @if (filterForm.from().value() || filterForm.to().value()) {\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\n (click)=\"clearInterval()\">\n <mat-icon>close</mat-icon>\n </button>\n }\n <mat-datepicker-toggle matSuffix [for]=\"picker1\"></mat-datepicker-toggle>\n <mat-date-range-picker #picker1></mat-date-range-picker>\n @if (filterForm.from().invalid() || filterForm.to().invalid()) {\n <mat-error>Intervallo non valido.</mat-error>\n }\n </mat-form-field>\n <mat-form-field>\n <mat-label>Testo</mat-label>\n <input matInput [formField]=\"filterForm.text\"\n #filterByText=\"matInput\" />\n @if (filterForm.text().value()) {\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\n (click)=\"filterForm.text().value.set('')\">\n <mat-icon>close</mat-icon>\n </button>\n }\n <button type=\"button\" tabindex=\"-1\" mat-icon-button matSuffix matTooltip=\"Opzioni\"\n aria-label=\"Opzioni\"\n [matMenuTriggerFor]=\"filterPaneOptionsMenu\"><mat-icon>more_vert</mat-icon></button>\n </mat-form-field>\n <div>\n @if(filterForm.text().value()) {\n <div style=\"padding-bottom:10px\">\n <mat-slide-toggle [formField]=\"filterForm.titleOnly\">Cerca solo nel\n titolo</mat-slide-toggle>\n </div>\n }\n @if(isLaws(false)) {\n <div style=\"padding-bottom:10px\">\n <mat-slide-toggle [formField]=\"filterForm.showNotAbrogatedDocumentsOnly\">Mostra solo elementi non abrogati</mat-slide-toggle>\n </div>\n <div style=\"padding-bottom:10px\">\n <mat-slide-toggle [formField]=\"filterForm.showCommentedDocumentsOnly\">Mostra solo elementi con commenti</mat-slide-toggle>\n </div>\n }\n @if(isReadable()) {\n <div style=\"padding-bottom:10px\">\n <mat-slide-toggle [formField]=\"filterForm.showUnreadDocumentsOnly\">Mostra solo elementi non letti</mat-slide-toggle>\n </div>\n }\n\n </div>\n </div>\n </mat-expansion-panel>\n @if(isLaws(false)) {\n <mat-expansion-panel #sourceExpansionPanel class=\"accordion-panel mat-elevation-z0 \">\n <mat-expansion-panel-header class=\"accordion-header\">\n <mat-panel-title>\n Fonte\n </mat-panel-title>\n </mat-expansion-panel-header>\n <div fxLayout=\"column\">\n <div fxLayout=\"row wrap\" fxLayoutAlign=\"space-between center\" fxFill>\n <mat-form-field fxFlex=\"59\" fxFlex.xs=\"100\">\n <mat-label>Numero</mat-label>\n <input matInput [formField]=\"filterForm.sourceNumber\" />\n @if (filterForm.sourceNumber().value()) {\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\n (click)=\"filterForm.sourceNumber().value.set('')\">\n <mat-icon>close</mat-icon>\n </button>\n }\n </mat-form-field>\n <mat-form-field fxHide.xs fxFlex=\"39\" fxFlex.xs=\"100\">\n <mat-label>Anno</mat-label>\n <input type=\"number\" matInput [formField]=\"filterForm.sourceYear\" />\n @if (filterForm.sourceYear().value()) {\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\n (click)=\"filterForm.sourceYear().value.set(null)\">\n <mat-icon>close</mat-icon>\n </button>\n }\n </mat-form-field>\n </div>\n <mat-form-field>\n <mat-label>Intervallo di pubblicazione</mat-label>\n <mat-date-range-input [rangePicker]=\"picker2\">\n <input matStartDate [formField]=\"filterForm.sourceFrom\" placeholder=\"Da data\"\n (keydown)=\"onIntervalKeydown($event)\" (keyup)=\"onIntervalKeyup($event, true, false)\">\n <input matEndDate [formField]=\"filterForm.sourceTo\" placeholder=\"A data\"\n (keydown)=\"onIntervalKeydown($event)\" (keyup)=\"onIntervalKeyup($event, true, true)\">\n </mat-date-range-input>\n @if (filterForm.sourceFrom().value() || filterForm.sourceTo().value()) {\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\n (click)=\"clearInterval(true)\">\n <mat-icon>close</mat-icon>\n </button>\n }\n <mat-datepicker-toggle matSuffix [for]=\"picker2\"></mat-datepicker-toggle>\n <mat-date-range-picker #picker2></mat-date-range-picker>\n @if (filterForm.sourceFrom().invalid() || filterForm.sourceTo().invalid()) {\n <mat-error>Intervallo non valido.</mat-error>\n }\n </mat-form-field>\n <mat-form-field>\n <mat-label>Tipo</mat-label>\n <mat-select [formField]=\"filterForm.source\">\n @for (s of sources(); track $index) {\n <mat-option [value]=\"s.value\" [matTooltip]=\"s.name\">\n {{s.name}}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n\n </div>\n </mat-expansion-panel>\n <mat-expansion-panel #otherOptionsExpansionPanel class=\"accordion-panel mat-elevation-z0\">\n <mat-expansion-panel-header class=\"accordion-header\">\n <mat-panel-title>\n Altre opzioni\n </mat-panel-title>\n </mat-expansion-panel-header>\n <div fxLayout=\"column\">\n @if(authors().length > 0 && !hasRegions()) {\n <mat-form-field>\n <mat-label>Autore</mat-label>\n <mat-select [formField]=\"filterForm.author\">\n @for (a of authors(); track $index) {\n <mat-option [value]=\"a.value\" [matTooltip]=\"a.name\">\n {{a.name}}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n <mat-form-field>\n <mat-label>Tipo documento</mat-label>\n <mat-select [formField]=\"filterForm.type\">\n @for (t of types(); track $index) {\n <mat-option [value]=\"t.value\" [matTooltip]=\"t.name\">\n {{t.name}}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n\n </mat-expansion-panel>\n }\n } @else {\n <mat-expansion-panel expanded class=\"accordion-panel mat-elevation-z0 \">\n <mat-expansion-panel-header class=\"accordion-header\">\n <mat-panel-title>\n Periodo\n </mat-panel-title>\n </mat-expansion-panel-header>\n <mat-form-field style=\"width:100%\">\n <mat-label>Intervallo di pubblicazione</mat-label>\n <mat-date-range-input [rangePicker]=\"picker1\">\n <input matStartDate [formField]=\"filterForm.from\" placeholder=\"Da data\"\n (keydown)=\"onIntervalKeydown($event)\" (keyup)=\"onIntervalKeyup($event, false, false)\">\n <input matEndDate [formField]=\"filterForm.to\" placeholder=\"A data\"\n (keydown)=\"onIntervalKeydown($event)\" (keyup)=\"onIntervalKeyup($event, false, true)\">\n </mat-date-range-input>\n @if (filterForm.from().value() || filterForm.to().value()) {\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\n (click)=\"clearInterval()\">\n <mat-icon>close</mat-icon>\n </button>\n }\n <mat-datepicker-toggle matSuffix [for]=\"picker1\"></mat-datepicker-toggle>\n <mat-date-range-picker #picker1></mat-date-range-picker>\n @if (filterForm.from().invalid() || filterForm.to().invalid()) {\n <mat-error>Intervallo non valido.</mat-error>\n }\n </mat-form-field>\n @if(isReadable()) {\n <div style=\"padding-bottom:10px\">\n <mat-slide-toggle [formField]=\"filterForm.showUnreadDocumentsOnly\">Mostra solo elementi non letti</mat-slide-toggle>\n </div>\n }\n </mat-expansion-panel>\n <mat-expansion-panel expanded class=\"accordion-panel mat-elevation-z0 \">\n <mat-expansion-panel-header class=\"accordion-header\">\n <mat-panel-title>\n Documento modificato\n </mat-panel-title>\n </mat-expansion-panel-header>\n <div fxLayout=\"column\">\n <div fxLayout=\"row wrap\" fxLayoutAlign=\"space-between center\" fxFill>\n <mat-form-field fxFlex=\"59\" fxFlex.xs=\"100\">\n <mat-label>Numero</mat-label>\n <input matInput [formField]=\"filterForm.changedNumber\"\n #filterByChangeNumber=\"matInput\" />\n @if (filterForm.changedNumber().value()) {\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\n (click)=\"filterForm.changedNumber().value.set('')\">\n <mat-icon>close</mat-icon>\n </button>\n }\n </mat-form-field>\n <mat-form-field fxHide.xs fxFlex=\"39\" fxFlex.xs=\"100\">\n <mat-label>Anno</mat-label>\n <input type=\"number\" matInput [formField]=\"filterForm.changedYear\" />\n @if (filterForm.changedYear().value()) {\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\n (click)=\"filterForm.changedYear().value.set(null)\">\n <mat-icon>close</mat-icon>\n </button>\n }\n </mat-form-field>\n </div>\n <mat-form-field>\n <mat-label>Titolo</mat-label>\n <input matInput [formField]=\"filterForm.changedTitle\" />\n @if (filterForm.changedTitle().value()) {\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\n (click)=\"filterForm.changedTitle().value.set('')\">\n <mat-icon>close</mat-icon>\n </button>\n }\n </mat-form-field>\n </div>\n </mat-expansion-panel>\n <mat-expansion-panel #modifierOptionsExpansionPanel class=\"accordion-panel mat-elevation-z0 \">\n <mat-expansion-panel-header class=\"accordion-header\">\n <mat-panel-title>\n Documento modificante\n </mat-panel-title>\n </mat-expansion-panel-header>\n <div fxLayout=\"column\">\n <div fxLayout=\"row wrap\" fxLayoutAlign=\"space-between center\" fxFill>\n <mat-form-field fxFlex=\"59\" fxFlex.xs=\"100\">\n <mat-label>Numero</mat-label>\n <input matInput [formField]=\"filterForm.modifierNumber\" />\n @if (filterForm.modifierNumber().value()) {\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\n (click)=\"filterForm.modifierNumber().value.set('')\">\n <mat-icon>close</mat-icon>\n </button>\n }\n </mat-form-field>\n <mat-form-field fxHide.xs fxFlex=\"39\" fxFlex.xs=\"100\">\n <mat-label>Anno</mat-label>\n <input type=\"number\" matInput [formField]=\"filterForm.modifierYear\" />\n @if (filterForm.modifierYear().value()) {\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\n (click)=\"filterForm.modifierYear().value.set(null)\">\n <mat-icon>close</mat-icon>\n </button>\n }\n </mat-form-field>\n </div>\n <mat-form-field>\n <mat-label>Titolo</mat-label>\n <input matInput [formField]=\"filterForm.modifierTitle\" />\n @if (filterForm.modifierTitle().value()) {\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\n (click)=\"filterForm.modifierTitle().value.set('')\">\n <mat-icon>close</mat-icon>\n </button>\n }\n </mat-form-field>\n </div>\n </mat-expansion-panel>\n <mat-expansion-panel #otherOptionsExpansionPanel class=\"accordion-panel mat-elevation-z0\">\n <mat-expansion-panel-header class=\"accordion-header\">\n <mat-panel-title>\n Altre opzioni\n </mat-panel-title>\n </mat-expansion-panel-header>\n <div fxLayout=\"column\">\n <mat-form-field>\n <mat-label>Motivo</mat-label>\n <mat-select [formField]=\"filterForm.changeReason\">\n @for (r of reasons(); track $index) {\n <mat-option [value]=\"r.value\" [matTooltip]=\"r.name\">\n {{r.name}}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n </mat-expansion-panel>\n }\n </mat-accordion>\n </form>\n </div>\n </div>\n @if(showChannels()) {\n <div style=\"padding:10px\">\n <div fxLayout=\"column\">\n <mat-expansion-panel class=\"accordion-panel mat-elevation-z0\" style=\"margin-bottom: 10px;\">\n <mat-expansion-panel-header class=\"accordion-header\">\n <mat-panel-title>\n Canali\n </mat-panel-title>\n <mat-panel-description>\n @for (c of clipperService.availableChannels(); track $index) {\n <div class=\"channel-box\" [class.channel-disabled]=\"!c.active || c.disabled\" [matTooltip]=\"c.name\">\n <span class=\"label\">{{c.header}}</span>\n </div>\n }\n </mat-panel-description>\n </mat-expansion-panel-header>\n <chips-selector [collapseAt]=\"599\" [formField]=\"filterForm.channels\" [multiple]=\"true\"\n label=\"Canali\" [options]=\"clipperService.availableChannels()\"\n (changed)=\"channelsChanged()\"></chips-selector>\n\n </mat-expansion-panel>\n <div fxLayout=\"row\" fxLayoutGap=\"10px\" fxFill>\n <div fxFlex=\"*\" fxFlexAlign=\"end\">\n <button mat-stroked-button (click)=\"clearFilter()\">Pulisci</button>\n <button mat-stroked-button (click)=\"saveFilter()\" style=\"margin-left: 10px;\">Salva</button>\n </div>\n <div fxLayoutAlign=\"end\">\n <button fxFlexAlign=\"end\" mat-flat-button (click)=\"applyFilter()\"\n [disabled]=\"!canSearch()\">Applica</button>\n </div>\n </div>\n </div>\n </div>\n }\n </div>\n </mat-drawer>\n <div fxLayout=\"column\" fxLayoutGap=\"10px\" fxFill class=\"drawer-content scroll-hidden\">\n <div class=\"module-toolbar \">\n <div fxLayout=\"row wrap\" fxLayoutAlign=\"space-between\" fxFill>\n <div fxFlex=\"49\" fxFlex.lt-md=\"100\" style=\"padding-left: 10px; padding-bottom: 5px;\">\n @if(!filterPane.opened) {\n <button-toggle cssClass=\"small\" cssClassSmall=\"x-small\" iconOn=\"left_panel_close\" iconOff=\"tune\"\n labelOn=\"Nascondi<br>filtri\" labelOff=\"Mostra<br>filtri\" [value]=\"filterPane.opened\"\n (changed)=\"toggleFilterPane()\"></button-toggle>\n }\n </div>\n <div fxFlex=\"49\" fxFlex.lt-md=\"100\" fxLayoutAlign=\"end\">\n <div fxLayout=\"row\" style=\"height:48px; padding-bottom: 5px;\">\n @if((snapshot?.total ?? 0) > 0) {\n @if(sortOptions().length > 0) {\n <button-selector [options]=\"sortOptions()\" label=\"Ordina per:\" style=\"margin-right: 5px;\" [border]=\"0\"\n fxFlexAlign=\"center\" [formField]=\"sortForm\" (selected)=\"sort($event)\"></button-selector>\n }\n <button fxFlexAlign=\"center\" mat-icon-button matSuffix matTooltip=\"Opzioni sulla selezione\"\n aria-label=\"Opzioni sulla selezione\" [matMenuTriggerFor]=\"selectionOptionsMenu\"\n [matBadge]=\"countSelections()\"><mat-icon>checklist</mat-icon></button>\n <button fxFlexAlign=\"center\" mat-icon-button matTooltip=\"Salva elenco in Excel \"\n (click)=\"exportResults()\"><mat-icon>save_alt</mat-icon></button>\n @if (!filterPane2?.opened && hasFacets()){\n <button fxFlexAlign=\"center\" mat-icon-button matTooltip=\"Affina ricerca\"\n (click)=\"toggleFilterPane2()\"><mat-icon>right_panel_open</mat-icon></button>\n }\n }\n </div>\n </div>\n </div>\n </div>\n <div fxFlex=\"*\" class=\"module-content\">\n <mat-drawer-container [hasBackdrop]=\"filterPane2HasBackdrop()\" class=\"fill\">\n <mat-drawer #filterPane2 class=\"drawer-small drawer-with-loader\" position=\"end\" opened=\"false\">\n @if (filterBusy()) {\n <div class=\"overlay\"></div>\n }\n <div fxLayout=\"column\" fxFill>\n <div fxFlex=\"6px\">\n @if (filterBusy()) {\n <mat-progress-bar style=\"z-index: 11;\" mode=\"indeterminate\">\n </mat-progress-bar>\n }\n </div>\n <div fxFlex=\"78px\" class=\"title-container-with-loader\">\n <div fxLayout=\"row\" fxLayoutAlign=\"start center\" fxFill>\n <div class=\"title\">Affina ricerca</div>\n <div fxFlex=\"*\" fxLayoutAlign=\"end\">\n <button mat-icon-button (click)=\"toggleFilterPane2()\"\n matTooltip=\"Nascondi\"><mat-icon>right_panel_close</mat-icon></button>\n </div>\n </div>\n </div>\n <div fxFlex=\"*\" class=\"content scroll-hidden\" style=\"padding: 0 5px;\">\n <clipper-search-facets #facets></clipper-search-facets>\n\n </div>\n </div>\n </mat-drawer>\n <div fxLayout=\"column\" fxFill>\n <div fxFlex=\"*\" [id]=\"scrollerId\" cdkScrollable class=\"scroll-auto\" style=\"padding: 0 20px;\">\n @if (!snapshot?.total) {\n <div class=\"message-container\">\n @if(snapshot?.total === 0) {\n <p class=\"message\"><b>Nessun elemento da visualizzare.</b></p>\n } @else {\n <div class=\"message\">\n <p fxHide.xs><b>Esegui una ricerca compilando i campi necessari nella maschera di ricarca qui a\n fianco.</b></p>\n <p fxHide.gt-xs><b>Fai click sul bottone <span class=\"accent\"><mat-icon>tune</mat-icon></span> ed esegui\n una\n ricerca compilando i campi necessari.</b></p>\n <p>E' possibile salvare i parametri delle le ricerche pi\u00F9 utilizzate facendo clic su &nbsp;\n <mat-icon\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>.\n </p>\n </div>\n }\n </div>\n } @else {\n @if (snapshot && (snapshot.total ?? 0) > 0) {\n @for (item of snapshot.items; track $index; let i = $index) {\n @if (item.group && isSortedByDate()) {\n <div class=\"items-group-title\">\n <div [class.group-spaced]=\"i > 0\">{{item.group}}</div>\n </div>\n }\n <clipper-search-result-item [item]=\"item\" [parent]=\"this\" [displayModelName]=\"true\" [actions]=\"contextMenu\"\n [isReadable]=\"true\"></clipper-search-result-item>\n }\n }\n }\n </div>\n <!-- footer -->\n @if ((snapshot?.total ?? 0) > 0) {\n <div class=\"items-footer\">\n <div fxLayout=\"row wrap\" fxLayoutGap=\"10px\" fxLayoutAlign=\"space-between center\" fxFill>\n <!-- legend -->\n <div fxFlex.lt-md=\"100\" class=\"legend-container\">\n <div class=\"legend unread-bg\"></div>\n non letto\n <!--<div class=\"legend next very-popular-bg\"></div>\n molto citato\n <div class=\"legend next popular-bg\"></div>\n citato-->\n <div class=\"legend next expired-bg \"></div>\n non pi\u00F9 vigente\n </div>\n <div fxFlex.lt-md=\"100\" fxLayoutAlign=\"end\" [class.wide]=\"filterPane2?.opened\">\n <div fxLayout=\"row\">\n <mat-paginator fxFlexAlign=\"center\" #paginator class=\"paginator\" [hidePageSize]=\"true\"\n [length]=\"snapshot?.total ?? 0\" [pageSize]=\"filterParams.count\" [showFirstLastButtons]=\"true\"\n (page)=\"fetchMore($event)\">\n </mat-paginator>\n </div>\n </div>\n </div>\n </div>\n }\n </div>\n </mat-drawer-container>\n </div>\n </div>\n</mat-drawer-container>\n<mat-menu #filterPaneOptionsMenu=\"matMenu\">\n <button mat-menu-item (click)=\"compose()\">\n <mat-icon>build</mat-icon>Componi\n </button>\n <button mat-menu-item (click)=\"help()\">\n <mat-icon>help</mat-icon>Come usare la ricerca in testo libero\n </button>\n</mat-menu>\n<mat-menu #selectionOptionsMenu=\"matMenu\">\n <button mat-menu-item (click)=\"selectAll()\">\n <mat-icon>select_all</mat-icon>Seleziona tutti\n </button>\n <clipper-document-menu [parent]=\"this\" [useSelections]=\"true\" [isReadable]=\"true\"\n [canUseAIAssistant]=\"hasAIAssistant()\" [canUseRS]=\"showRSOptions()\">\n </clipper-document-menu>\n</mat-menu>\n<mat-menu #contextMenu=\"matMenu\" (closed)=\"updateMenuButtonsVisibility()\">\n <ng-template matMenuContent let-item=\"item\">\n <clipper-document-menu [parent]=\"this\" [item]=\"item\" [isReadable]=\"true\"\n [canUseAIAssistant]=\"hasAIAssistant()\" [canUseRS]=\"showRSOptions()\">\n </clipper-document-menu>\n </ng-template>\n</mat-menu>", styles: [".fill,.wide{min-width:100%!important;max-width:100%!important;width:100%!important}.dialog-info{font-size:x-small;font-weight:700;text-align:right;padding:10px}.dialog-info-green,.dialog-info-ok{color:var(--ars-color-ok, #388E3C)}.dialog-info-red,.dialog-info-error{color:var(--mat-form-field-error-text-color, #a80710)}.dialog-header{padding-bottom:20px}.dialog-toolbar{padding:0 5px 0 24px;height:48px;min-height:48px}.dialog-close{margin-right:5px;margin-top:0}.dialog-menu{margin-left:10px;margin-top:10px}.dialog-title{padding:0 24px}.section-title{font-size:large;font-weight:600;padding-top:10px;padding-bottom:8px}.center{text-align:center}.fill{min-height:100%!important;max-height:100%!important;height:100%!important}.scroll-auto{overflow:auto;height:100%}.scroll-hidden{overflow:hidden;height:100%}b{font-weight:700}.large{font-size:large!important;line-height:1.2!important}.smaller{font-size:smaller!important;line-height:1.2!important}.small{font-size:small!important;line-height:1.2!important}.small-icon-button{width:1.5rem!important;height:1.5rem!important;padding:0!important;display:inline-flex!important;align-items:center;justify-content:center}.small-icon-button .mat-mdc-button-touch-target{width:1.5rem!important;height:1.5rem!important}.x-small{font-size:x-small!important;line-height:1.2!important}.bold{font-weight:700}.uppercase{text-transform:uppercase!important}.lowercase{text-transform:lowercase!important}.truncated{min-width:0;max-width:100%}@supports (-webkit-line-clamp: 2){.truncated{overflow:hidden;text-overflow:ellipsis;white-space:initial;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}}.truncated span,.truncated div{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@supports (-webkit-line-clamp: 2){.truncated span,.truncated div{overflow:hidden;text-overflow:ellipsis;white-space:initial;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}}.clipped{min-width:0;max-width:100%}.clipped span,.clipped div{white-space:nowrap;overflow:hidden;text-overflow:clip}.accent{color:var(--ars-color-accent, #7894ae)!important}.primary{color:var(--ars-color-primary, #00a293)!important}.secondary{color:var(--ars-color-secondary, #4a635f)!important}.error{color:var(--ars-color-error, #ff5449)!important}.success{color:var(--ars-color-ok, #388E3C)!important}.warning{color:var(--ars-color-warning, #FFC107)!important}.text{color:var(--ars-color-text, #191c1b)!important}.overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:10;background-color:var(--ars-color-overlay, rgba(255, 255, 255, .75))}.drawer-content{padding-top:10px}.drawer .title-container,.drawer .title-container-with-loader,.drawer-small .title-container,.drawer-small .title-container-with-loader{padding-right:5px;padding-bottom:20px;padding-left:0}.drawer .title-container,.drawer-small .title-container{padding-top:20px}.drawer .title-container-with-loader,.drawer-small .title-container-with-loader{padding-top:14px}.drawer .title,.drawer-small .title{font-size:19.2px!important;font-weight:600;padding-left:15px;min-width:150px;width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.drawer .accordion-panel,.drawer-small .accordion-panel{background-color:transparent!important}.drawer .accordion-header,.drawer-small .accordion-header{padding-left:10px;padding-right:10px;border-radius:var(--mat-expansion-container-shape)}.drawer .mat-expansion-panel-body,.drawer-small .mat-expansion-panel-body{padding-left:10px!important;padding-right:10px!important;padding-bottom:20px!important}@media screen and (min-width:0px)and (max-width:430px){.drawer,.drawer-small{border-radius:0!important;min-width:100%!important;max-width:100%!important}}@media screen and (min-width:431px){.drawer{min-width:420px!important;max-width:420px!important}.drawer .title{min-width:200px}.drawer .mat-expansion-panel-body{padding-left:15px!important;padding-right:15px!important;padding-bottom:20px!important}.drawer-small{min-width:360px!important;max-width:360px!important}}.drawer-with-loader{padding-top:0!important}.drawer-transparent{background-color:transparent}.fade-in{animation:fadein .5s linear}@keyframes fadein{0%{opacity:0}to{opacity:1}}.bright{filter:brightness(.7)!important}@media(prefers-color-scheme:dark){.dialog-info-green,.dialog-info-ok{color:var(--ars-color-ok, #4CAF50)}.dialog-info-red,.dialog-info-error{color:var(--mat-form-field-error-text-color, #ff5449)}b,.bold{font-weight:600}.bright{filter:brightness(1.5)!important}}.clipper-logo{background-size:110px 48px;width:110px;height:48px}.clipper-selection-button{width:150px;font-size:small;font-weight:600}.clipper-selection-icon-button{background-color:var(--ars-color-primary, #00a293);color:var(--ars-color-text-low, #e0e2e5)}.clipper-selection-icon-button:hover{background-color:var(--ars-color-primary-hi, #12c0ae)}.unread{color:var(--app-color-unread, #f7931c)!important}.unread-bg{background-color:var(--app-color-unread, #f7931c)!important}.expired{color:var(--app-color-expired, #ff5449)!important}.expired-bg{background-color:var(--app-color-expired, #ff5449)!important}.expiring{color:var(--app-color-expiring, #FFC107)!important}.expiring-bg{background-color:var(--app-color-expiring, #FFC107)!important}.closed{color:var(--app-color-closed, #388E3C)!important}.closed-bg{background-color:var(--app-color-closed, #388E3C)!important}.error-bg{background-color:var(--ars-color-error, #ff5449)!important}.popular-bg{background-color:var(--app-color-closed, #388E3C)!important}.very-popular-bg{background-color:#4caf50}.item-selected{background-color:var(--ars-item-selected-background-color, #ced1d2);border-radius:0!important}.item-unread{font-weight:bolder}.items-group-title{color:var(--ars-color-secondary, #4a635f);font-size:large;font-weight:700;padding-left:25px;padding-bottom:10px;padding-top:10px}.items-group-title .group-spaced{padding:10px 0 0!important}.items-footer{padding:10px}.item{border-radius:12px;padding:10px 10px 10px 0;min-height:68px!important;margin-bottom:2px}.item:hover{background-color:var(--ars-item-hover-background-color, #eaecef)}.item:hover .item-content{-webkit-mask-image:linear-gradient(to right,black 85%,transparent 100%);mask-image:linear-gradient(to right,black 85%,transparent 100%)}@media screen and (min-width:0px)and (max-width:430px){.item:hover{background-color:var(--ars-item-hover-background-color)}.item:hover .item-content{-webkit-mask-image:linear-gradient(to right,black 55%,transparent 100%);mask-image:linear-gradient(to right,black 55%,transparent 100%)}}.item-content .item-info-1,.item-content .info-1{font-size:x-small!important;font-weight:700!important;line-height:18px;text-transform:uppercase!important;color:var(--ars-color-accent, #7894ae)}.item-content .item-info-2,.item-content .info-2{font-size:x-small!important;font-weight:700!important;line-height:18px;text-transform:uppercase!important;color:var(--ars-color-accent-low, #456179)}.item-content .item-info-3,.item-content .info-3{font-size:x-small!important;font-weight:700!important;line-height:18px;text-transform:uppercase!important;color:var(--ars-color-error, #ff5449)}.item-content .item-title,.item-content .title{font-size:small!important;line-height:18px;text-decoration:none!important;font-weight:400;min-height:unset;min-width:unset;white-space:initial!important}@supports (-webkit-line-clamp: 3){.item-content .item-title,.item-content .title{overflow:hidden;text-overflow:ellipsis;white-space:initial;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}}.item-content .details{margin-top:4px;font-size:x-small!important;font-weight:700;line-height:15px;color:var(--ars-color-accent-low, #456179);text-transform:uppercase!important;border-left:4px solid var(--ars-color-accent-low, #456179);padding-left:10px}.item-content .details .links{text-transform:none;text-decoration:none}.item-content .details .links a,.item-content .details .links span,.item-content .details .links div{margin-right:8px;font-weight:500!important;font-size:11px!important;color:var(--ars-color-text, #191c1b)}.item-content .details .links a{cursor:pointer!important;color:var(--ars-color-link, #03A9F4);font-size:11px!important;font-weight:500!important}.item-content a.link{color:var(--ars-color-link, #03A9F4);cursor:pointer!important;text-decoration:none!important}.tile:hover{background-color:var(--ars-item-hover-background-color, #eaecef);border-radius:12px}.tile{cursor:pointer!important;padding:10px 13px!important;margin-bottom:20px!important}.tile .body{padding:4px 6px}.tile .image-mark{border-top:6px solid transparent;margin:0 8px}.tile .image-mark-unread{border-top-color:var(--app-color-unread, #f7931c);margin:0 8px}.tile .tile-image,.tile .image{height:125px;position:relative;background-color:transparent;overflow:hidden;display:flex;justify-content:center;align-items:center;border-radius:8px}.tile .tile-image img,.tile .image img{object-fit:cover;width:100%;height:100%}.tile .tile-image .tile-info-1,.tile .tile-image .info-1,.tile .image .tile-info-1,.tile .image .info-1{position:absolute;left:0;bottom:0;padding:4px 8px;background-color:var(--ars-color-overlay, rgba(255, 255, 255, .75));color:var(--ars-color-text, #191c1b);font-size:small!important;font-weight:700!important;text-transform:uppercase!important}.tile .tile-image .tile-info-2,.tile .tile-image .info-2,.tile .image .tile-info-2,.tile .image .info-2{position:absolute;right:0;top:0;padding:4px 8px;background-color:var(--ars-color-overlay, rgba(255, 255, 255, .75));color:var(--ars-color-accent, #7894ae);font-size:small!important;font-weight:700!important;text-transform:uppercase!important}.tile .tile-image .buttons,.tile .image .buttons{position:absolute;left:0;top:0;height:42px}.tile .tile-image .buttons .check,.tile .tile-image .buttons .read-button,.tile .image .buttons .check,.tile .image .buttons .read-button{background-color:var(--ars-color-primary, #00a293)!important;color:var(--ars-color-text-low, #e0e2e5)!important}.tile .tile-image .buttons .unread-button,.tile .image .buttons .unread-button{background-color:var(--app-color-unread, #f7931c)!important;color:var(--ars-color-text-low, #e0e2e5)!important}.tile .tile-image .buttons .check-selected,.tile .image .buttons .check-selected{background-color:var(--ars-color-primary-hi, #12c0ae)!important}.tile .tile-date,.tile .date{padding:8px 0 6px!important;font-weight:700!important;text-transform:uppercase!important}.tile .tile-date .date-day,.tile .date .date-day{color:var(--ars-color-accent, #7894ae)}.tile .tile-date .date-divider,.tile .date .date-divider{width:1px;margin:0 8px;border-left:1px solid var(--ars-color-divider, #757d87)}.tile .tile-time,.tile .time{font-size:small!important;font-weight:700!important}.tile .tile-title,.tile .title{text-decoration:none!important;font-size:16px!important;font-weight:600;min-height:50px!important;max-height:70px!important;min-width:100%;white-space:initial!important;overflow:hidden!important}@supports (-webkit-line-clamp: 3){.tile .tile-title,.tile .title{overflow:hidden;text-overflow:ellipsis;white-space:initial;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}}.stripe:hover{background-color:var(--ars-item-hover-background-color, #eaecef);border-radius:12px}.stripe{cursor:pointer!important;padding:5px 10px!important;margin-bottom:10px!important}.stripe .body{padding:5px 15px!important}.stripe .image-mark{min-height:100%!important;border-left:6px solid transparent;margin:8px 0}.stripe .image-mark-unread{min-height:100%!important;border-left-color:var(--ars-color-error, #ff5449)!important;margin:8px 0}.stripe .stripe-image,.stripe .image{width:150px!important;height:70px!important;position:relative;background-color:transparent;overflow:hidden;display:flex;justify-content:center;align-items:center;border-radius:8px}.stripe .stripe-image img,.stripe .image img{object-fit:cover;width:100%;height:100%}.stripe .stripe-info-1,.stripe .info-1{margin-top:8px;padding:4px 8px!important;background-color:var(--ars-color-overlay, rgba(255, 255, 255, .75))!important;color:var(--ars-color-text, #191c1b)!important;font-size:small!important;font-weight:700!important;text-transform:uppercase!important}.stripe .stripe-info-2,.stripe .info-2{margin-top:8px;padding:4px 8px!important;background-color:var(--ars-color-overlay, rgba(255, 255, 255, .75))!important;color:var(--ars-color-accent, #7894ae)!important;font-size:small!important;font-weight:700!important;text-transform:uppercase!important}.stripe .buttons{position:absolute;left:0;top:0;height:42px}.stripe .buttons .check,.stripe .buttons .read{background-color:var(--ars-color-primary, #00a293);color:var(--ars-color-text-low, #e0e2e5)}.stripe .buttons .check-selected{background-color:var(--ars-color-primary-hi, #12c0ae)}.stripe .stripe-date,.stripe .date{padding:0!important;font-weight:700!important;text-transform:uppercase!important}.stripe .stripe-date .date-day,.stripe .date .date-day{color:var(--ars-color-accent, #7894ae)}.stripe .stripe-date .date-divider,.stripe .date .date-divider{width:1px;margin:0 8px;border-left:1px solid var(--ars-color-divider, #757d87)}.stripe .stripe-time,.stripe .time{font-size:small!important;font-weight:700!important}.stripe .stripe-title,.stripe .title{text-decoration:none!important;font-size:16px!important;font-weight:600;min-width:100%;white-space:initial!important;overflow:hidden!important}@supports (-webkit-line-clamp: 3){.stripe .stripe-title,.stripe .title{overflow:hidden;text-overflow:ellipsis;white-space:initial;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}}.badge,.badge-red{margin-left:10px;padding:1px 4px;border-radius:3px;font-size:x-small;font-weight:600;text-align:center;background-color:#427505;text-transform:uppercase;white-space:nowrap;color:#e0e2e5}.badge-red{background-color:#a80710}.busy-backdrop{background-color:#0000006b!important}.legend-container{display:flex;flex-direction:row;align-items:center;font-size:x-small;text-transform:uppercase;font-weight:500;margin-left:10px}.legend-container .legend{display:inline-block;height:8px;width:8px;margin-right:4px}.legend-container .legend:not(:first-of-type){margin-left:10px}@media screen and (max-width:431px){.legend-container{font-size:9px!important}}.special-date,.special-date-expired,.special-date-expiring{border:2px var(--ars-color-accent, #7894ae) solid!important;border-radius:100%!important}.special-date-expired{border:2px var(--ars-color-error, #ff5449) solid!important}.special-date-expiring{border:2px var(--ars-color-warning, #FFC107) solid!important}.word-hit-chunk,.word-hit{display:inline-block;font-size:inherit;background-color:var(--ars-word-hit-background-color, #FFEB3B);color:var(--ars-word-hit-color, #191c1b);padding:0 4px;margin:0 4px;border-radius:4px}.word-hit-chunk{background-color:var(--ars-word-chunk-hit-background-color, #8AFF59);color:var(--ars-word-hit-chunk-color, #191c1b)}.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: "directive", type: FormField, selector: "[formField]", inputs: ["formField"], exportAs: ["formField"] }, { kind: "ngmodule", type: FlexLayoutModule }, { kind: "directive", type: i1.FxLayoutDirective, 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.FxFlexDirective, 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: i1.FxShowHideDirective, selector: " [fxShow], [fxHide], [fxShow.xs], [fxShow.sm], [fxShow.md], [fxShow.lg], [fxShow.xl], [fxShow.lt-sm], [fxShow.lt-md], [fxShow.lt-lg], [fxShow.lt-xl], [fxShow.gt-xs], [fxShow.gt-sm], [fxShow.gt-md], [fxShow.gt-lg], [fxHide.xs], [fxHide.sm], [fxHide.md], [fxHide.lg], [fxHide.xl], [fxHide.lt-sm], [fxHide.lt-md], [fxHide.lt-lg], [fxHide.lt-xl], [fxHide.gt-xs], [fxHide.gt-sm], [fxHide.gt-md], [fxHide.gt-lg] ", inputs: ["fxShow", "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.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: "directive", type: i1.FxLayoutAlignDirective, 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.FxLayoutGapDirective, 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.FxFlexAlignDirective, 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.FxFlexFillDirective, selector: " [fxFlexFill], [fxFill], [fxFlexFill.xs], [fxFlexFill.sm], [fxFlexFill.md], [fxFlexFill.lg], [fxFlexFill.xl], [fxFlexFill.lt-sm], [fxFlexFill.lt-md], [fxFlexFill.lt-lg], [fxFlexFill.lt-xl], [fxFlexFill.gt-xs], [fxFlexFill.gt-sm], [fxFlexFill.gt-md], [fxFlexFill.gt-lg] ", inputs: ["fxFlexFill", "fxFill", "fxFlexFill.xs", "fxFlexFill.sm", "fxFlexFill.md", "fxFlexFill.lg", "fxFlexFill.xl", "fxFlexFill.lt-sm", "fxFlexFill.lt-md", "fxFlexFill.lt-lg", "fxFlexFill.lt-xl", "fxFlexFill.gt-xs", "fxFlexFill.gt-sm", "fxFlexFill.gt-md", "fxFlexFill.gt-lg"] }, { 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.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.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: i5$1.CdkScrollable, selector: "[cdk-scrollable], [cdkScrollable]" }, { kind: "ngmodule", type: MatSidenavModule }, { kind: "component", type: i6.MatDrawer, selector: "mat-drawer", inputs: ["position", "mode", "disableClose", "autoFocus", "opened"], outputs: ["openedChange", "opened", "openedStart", "closed", "closedStart", "positionChanged"], exportAs: ["matDrawer"] }, { kind: "component", type: i6.MatDrawerContainer, selector: "mat-drawer-container", inputs: ["autosize", "hasBackdrop"], outputs: ["backdropClick"], exportAs: ["matDrawerContainer"] }, { kind: "ngmodule", type: MatExpansionModule }, { kind: "directive", type: i7.MatAccordion, selector: "mat-accordion", inputs: ["hideToggle", "displayMode", "togglePosition"], exportAs: ["matAccordion"] }, { kind: "component", type: i7.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["hideToggle", "togglePosition"], outputs: ["afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "component", type: i7.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["expandedHeight", "collapsedHeight", "tabIndex"] }, { kind: "directive", type: i7.MatExpansionPanelTitle, selector: "mat-panel-title" }, { kind: "directive", type: i7.MatExpansionPanelDescription, selector: "mat-panel-description" }, { kind: "ngmodule", type: MatDividerModule }, { kind: "component", type: i4$1.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i5.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: i5.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i5.MatMenuContent, selector: "ng-template[matMenuContent]" }, { kind: "directive", type: i5.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: i10.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i10.MatLabel, selector: "mat-label" }, { kind: "directive", type: i10.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i10.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i11.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: i12.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "component", type: i12.MatDateRangeInput, selector: "mat-date-range-input", inputs: ["rangePicker", "required", "dateFilter", "min", "max", "disabled", "separator", "comparisonStart", "comparisonEnd"], exportAs: ["matDateRangeInput"] }, { kind: "directive", type: i12.MatStartDate, selector: "input[matStartDate]", outputs: ["dateChange", "dateInput"] }, { kind: "directive", type: i12.MatEndDate, selector: "input[matEndDate]", outputs: ["dateChange", "dateInput"] }, { kind: "component", type: i12.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: i13.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: i13.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: MatChipsModule }, { kind: "component", type: i14.MatChipGrid, selector: "mat-chip-grid", inputs: ["disabled", "placeholder", "required", "value", "errorStateMatcher"], outputs: ["change", "valueChange"] }, { kind: "directive", type: i14.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled", "readonly", "matChipInputDisabledInteractive"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i14.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i14.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: i15.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "fullWidth", "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: i16.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: ChipsSelectorComponent, selector: "chips-selector", inputs: ["options", "collapsedWidth", "collapsedDisplayMode", "collapseAt", "collapseAtContainer", "label", "multiple", "mustSelect", "mode", "stacked", "padAt", "required", "placeholder", "disabled"], 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: ClipperSearchResultItemComponent, selector: "clipper-search-result-item", inputs: ["parent", "item", "actions", "tileNoPictureUrl", "tilePictureUrl", "isSelectable", "isReadable", "isReadableModel", "displayModifiedTitle", "displayModelName", "displayDate", "displayMode"], outputs: ["itemChange"] }, { kind: "component", type: ClipperDocumentMenuComponent, selector: "clipper-document-menu", inputs: ["useSelections", "selectionSource", "parent", "item", "isReference", "isReadable", "isReadableModel", "isLawInForce", "canPrint", "canFind", "canUseAIAssistant", "canUseRS", "canOpenDocument"] }, { kind: "component", type: ClipperSearchFacetsComponent, selector: "clipper-search-facets", inputs: ["handleTooManyResults"], outputs: ["changed"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3208
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.3", 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\">\n <mat-drawer #filterPane class=\"drawer\">\n <div fxLayout=\"column\" fxFill>\n <div fxFlex=\"78px\" class=\"title-container\">\n <div fxLayout=\"row\" fxLayoutGap=\"10px\" fxLayoutAlign=\"start center\" fxFill>\n <div class=\"title\">Filtro</div>\n <div fxFlex=\"*\" fxLayoutAlign=\"end\">\n <button fxFlexAlign=\"center\" mat-icon-button (click)=\"saveFilter(true)\"\n matTooltip=\"Crea una nuovo filtro con i parametri attuali \"><mat-icon>add</mat-icon></button>\n <button fxFlexAlign=\"center\" mat-icon-button (click)=\"toggleFilterPane()\"\n matTooltip=\"Nascondi\"><mat-icon>left_panel_close</mat-icon></button>\n </div>\n </div>\n </div>\n @if(hasFilters()) {\n <div style=\"padding:10px 20px\">\n <div fxLayout=\"row\" fxLayoutGap=\"10px\" fxFill>\n <div fxFlex=\"*\">\n <button-selector #filterSelector [options]=\"filters()\" label=\"Seleziona un filtro salvato\"\n labelSelected=\"Filtro in uso:\" fxFlexAlign=\"center\" (selected)=\"selectFilter($event)\"\n [matTooltip]=\"filterParams.searchName ?? ''\"></button-selector>\n </div>\n @if(filterParams.searchId) {\n <div fxFlex=\"40px\">\n <button fxFlexAlign=\"center\" mat-icon-button (click)=\"deleteFilter()\"\n matTooltip=\"Elimina il filtro in uso\"><mat-icon>delete</mat-icon></button>\n </div>\n }\n </div>\n </div>\n }\n <div fxFlex=\"*\" class=\"content scroll-hidden\" style=\"padding-bottom: 10px;\">\n <div class=\"scroll-auto\" style=\"padding: 0 10px;\">\n <form [formRoot]=\"filterForm\" (keyup.enter)=\"applyFilter()\" novalidate>\n <mat-accordion multi displayMode=\"flat\">\n <mat-expansion-panel expanded class=\"accordion-panel mat-elevation-z0 \">\n <mat-expansion-panel-header class=\"accordion-header\">\n <mat-panel-title>\n Cerca in..\n </mat-panel-title>\n </mat-expansion-panel-header>\n\n <chips-selector #moduleSelector [formField]=\"filterForm.modules\" [collapseAt]=\"599\" [multiple]=\"true\"\n label=\"Sezioni\" name=\"modules\" [options]=\"filteredModules()\" (changed)=\"modulesChanged()\">\n </chips-selector>\n </mat-expansion-panel>\n\n @if((hasTags() || hasTopics()) && !isCoordination()) {\n <mat-expansion-panel class=\"accordion-panel mat-elevation-z0\">\n <mat-expansion-panel-header class=\"accordion-header\">\n <mat-panel-title>\n Argomenti\n </mat-panel-title>\n </mat-expansion-panel-header>\n @if(hasTags()) {\n <chips-selector [collapseAt]=\"599\" [formField]=\"filterForm.tags\" [multiple]=\"true\"\n label=\"Argomenti\" [options]=\"tags()\"></chips-selector>\n }\n @if(hasTopics()) {\n @if ((filterForm.topics().value()?.length ?? 0) > 0) {\n <mat-chip-grid #topics style=\"padding-bottom: 5px;\">\n @for (o of filterForm.topics().value(); track $index) {\n <mat-chip-row [value]=\"o\" (removed)=\"deleteTopic(o)\">\n {{o.name}}\n <button matChipRemove>\n <mat-icon>cancel</mat-icon>\n </button></mat-chip-row>\n }\n </mat-chip-grid>\n <input style=\"display: none;\" [matChipInputFor]=\"topics\" />\n }\n <div fxLayout=\"row\" fxLayoutAlign=\"end center\">\n <button mat-button type=\"button\" (click)=\"addTopic()\"><mat-icon>add</mat-icon> Aggiungi\n argomento</button>\n @if ((filterForm.topics().value()?.length ?? 0) > 0) {\n <button mat-button type=\"button\" (click)=\"clearTopics()\"><mat-icon>delete</mat-icon> Azzera</button>\n }\n </div>\n }\n </mat-expansion-panel>\n }\n @if(hasSectors()) {\n <mat-expansion-panel class=\"accordion-panel mat-elevation-z0 \">\n <mat-expansion-panel-header class=\"accordion-header\">\n <mat-panel-title>\n Settori\n </mat-panel-title>\n </mat-expansion-panel-header>\n <chips-selector [collapseAt]=\"599\" [formField]=\"filterForm.sectors\" [multiple]=\"true\"\n label=\"Settori\" [options]=\"sectors()\" (changed)=\"sectorsChanged()\" />\n @if(hasRegions())\n {\n <mat-divider style=\"padding-top: 8px; margin-top:8px\"></mat-divider>\n <chips-selector [formField]=\"filterForm.authors\" [multiple]=\"true\" mode=\"collapsed\"\n label=\"Tutte le regioni\" [options]=\"regions()\" />\n }\n </mat-expansion-panel>\n }\n @if(!isCoordination()) {\n <mat-expansion-panel expanded class=\"accordion-panel mat-elevation-z0 \">\n <mat-expansion-panel-header class=\"accordion-header\">\n <mat-panel-title>\n Documento\n </mat-panel-title>\n </mat-expansion-panel-header>\n <div fxLayout=\"column\">\n @if(isLaws()) {\n <div fxLayout=\"row wrap\" fxLayoutAlign=\"space-between center\" fxFill>\n <mat-form-field fxFlex=\"59\" fxFlex.xs=\"49\">\n <mat-label>Numero</mat-label>\n <input matInput [formField]=\"filterForm.number\"\n #filterByNumber=\"matInput\" />\n @if (filterForm.number().value()) {\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\n (click)=\"filterForm.number().value.set('')\">\n <mat-icon>close</mat-icon>\n </button>\n }\n </mat-form-field>\n <mat-form-field fxFlex=\"39\" fxFlex.xs=\"49\">\n <mat-label>Anno</mat-label>\n <input type=\"number\" matInput [formField]=\"filterForm.year\" />\n @if (filterForm.year().value()) {\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\n (click)=\"filterForm.year().value.set(null)\">\n <mat-icon>close</mat-icon>\n </button>\n }\n </mat-form-field>\n </div>\n }\n <mat-form-field>\n <mat-label>Intervallo di pubblicazione</mat-label>\n <mat-date-range-input [rangePicker]=\"picker1\">\n <input matStartDate [formField]=\"filterForm.from\" placeholder=\"Da data\"\n (keydown)=\"onIntervalKeydown($event)\" (keyup)=\"onIntervalKeyup($event, false, false)\">\n <input matEndDate [formField]=\"filterForm.to\" placeholder=\"A data\"\n (keydown)=\"onIntervalKeydown($event)\" (keyup)=\"onIntervalKeyup($event, false, true)\">\n </mat-date-range-input>\n @if (filterForm.from().value() || filterForm.to().value()) {\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\n (click)=\"clearInterval()\">\n <mat-icon>close</mat-icon>\n </button>\n }\n <mat-datepicker-toggle matSuffix [for]=\"picker1\"></mat-datepicker-toggle>\n <mat-date-range-picker #picker1></mat-date-range-picker>\n @if (filterForm.from().invalid() || filterForm.to().invalid()) {\n <mat-error>Intervallo non valido.</mat-error>\n }\n </mat-form-field>\n <mat-form-field>\n <mat-label>Testo</mat-label>\n <input matInput [formField]=\"filterForm.text\"\n #filterByText=\"matInput\" />\n @if (filterForm.text().value()) {\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\n (click)=\"filterForm.text().value.set('')\">\n <mat-icon>close</mat-icon>\n </button>\n }\n <button type=\"button\" tabindex=\"-1\" mat-icon-button matSuffix matTooltip=\"Opzioni\"\n aria-label=\"Opzioni\"\n [matMenuTriggerFor]=\"filterPaneOptionsMenu\"><mat-icon>more_vert</mat-icon></button>\n </mat-form-field>\n <div>\n @if(filterForm.text().value()) {\n <div style=\"padding-bottom:10px\">\n <mat-slide-toggle [formField]=\"filterForm.titleOnly\">Cerca solo nel\n titolo</mat-slide-toggle>\n </div>\n }\n @if(isLaws(false)) {\n <div style=\"padding-bottom:10px\">\n <mat-slide-toggle [formField]=\"filterForm.showNotAbrogatedDocumentsOnly\">Mostra solo elementi non abrogati</mat-slide-toggle>\n </div>\n <div style=\"padding-bottom:10px\">\n <mat-slide-toggle [formField]=\"filterForm.showCommentedDocumentsOnly\">Mostra solo elementi con commenti</mat-slide-toggle>\n </div>\n }\n @if(isReadable()) {\n <div style=\"padding-bottom:10px\">\n <mat-slide-toggle [formField]=\"filterForm.showUnreadDocumentsOnly\">Mostra solo elementi non letti</mat-slide-toggle>\n </div>\n }\n\n </div>\n </div>\n </mat-expansion-panel>\n @if(isLaws(false)) {\n <mat-expansion-panel #sourceExpansionPanel class=\"accordion-panel mat-elevation-z0 \">\n <mat-expansion-panel-header class=\"accordion-header\">\n <mat-panel-title>\n Fonte\n </mat-panel-title>\n </mat-expansion-panel-header>\n <div fxLayout=\"column\">\n <div fxLayout=\"row wrap\" fxLayoutAlign=\"space-between center\" fxFill>\n <mat-form-field fxFlex=\"59\" fxFlex.xs=\"100\">\n <mat-label>Numero</mat-label>\n <input matInput [formField]=\"filterForm.sourceNumber\" />\n @if (filterForm.sourceNumber().value()) {\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\n (click)=\"filterForm.sourceNumber().value.set('')\">\n <mat-icon>close</mat-icon>\n </button>\n }\n </mat-form-field>\n <mat-form-field fxHide.xs fxFlex=\"39\" fxFlex.xs=\"100\">\n <mat-label>Anno</mat-label>\n <input type=\"number\" matInput [formField]=\"filterForm.sourceYear\" />\n @if (filterForm.sourceYear().value()) {\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\n (click)=\"filterForm.sourceYear().value.set(null)\">\n <mat-icon>close</mat-icon>\n </button>\n }\n </mat-form-field>\n </div>\n <mat-form-field>\n <mat-label>Intervallo di pubblicazione</mat-label>\n <mat-date-range-input [rangePicker]=\"picker2\">\n <input matStartDate [formField]=\"filterForm.sourceFrom\" placeholder=\"Da data\"\n (keydown)=\"onIntervalKeydown($event)\" (keyup)=\"onIntervalKeyup($event, true, false)\">\n <input matEndDate [formField]=\"filterForm.sourceTo\" placeholder=\"A data\"\n (keydown)=\"onIntervalKeydown($event)\" (keyup)=\"onIntervalKeyup($event, true, true)\">\n </mat-date-range-input>\n @if (filterForm.sourceFrom().value() || filterForm.sourceTo().value()) {\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\n (click)=\"clearInterval(true)\">\n <mat-icon>close</mat-icon>\n </button>\n }\n <mat-datepicker-toggle matSuffix [for]=\"picker2\"></mat-datepicker-toggle>\n <mat-date-range-picker #picker2></mat-date-range-picker>\n @if (filterForm.sourceFrom().invalid() || filterForm.sourceTo().invalid()) {\n <mat-error>Intervallo non valido.</mat-error>\n }\n </mat-form-field>\n <mat-form-field>\n <mat-label>Tipo</mat-label>\n <mat-select [formField]=\"filterForm.source\">\n @for (s of sources(); track $index) {\n <mat-option [value]=\"s.value\" [matTooltip]=\"s.name\">\n {{s.name}}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n\n </div>\n </mat-expansion-panel>\n <mat-expansion-panel #otherOptionsExpansionPanel class=\"accordion-panel mat-elevation-z0\">\n <mat-expansion-panel-header class=\"accordion-header\">\n <mat-panel-title>\n Altre opzioni\n </mat-panel-title>\n </mat-expansion-panel-header>\n <div fxLayout=\"column\">\n @if(authors().length > 0 && !hasRegions()) {\n <mat-form-field>\n <mat-label>Autore</mat-label>\n <mat-select [formField]=\"filterForm.author\">\n @for (a of authors(); track $index) {\n <mat-option [value]=\"a.value\" [matTooltip]=\"a.name\">\n {{a.name}}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n <mat-form-field>\n <mat-label>Tipo documento</mat-label>\n <mat-select [formField]=\"filterForm.type\">\n @for (t of types(); track $index) {\n <mat-option [value]=\"t.value\" [matTooltip]=\"t.name\">\n {{t.name}}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n\n </mat-expansion-panel>\n }\n } @else {\n <mat-expansion-panel expanded class=\"accordion-panel mat-elevation-z0 \">\n <mat-expansion-panel-header class=\"accordion-header\">\n <mat-panel-title>\n Periodo\n </mat-panel-title>\n </mat-expansion-panel-header>\n <mat-form-field style=\"width:100%\">\n <mat-label>Intervallo di pubblicazione</mat-label>\n <mat-date-range-input [rangePicker]=\"picker1\">\n <input matStartDate [formField]=\"filterForm.from\" placeholder=\"Da data\"\n (keydown)=\"onIntervalKeydown($event)\" (keyup)=\"onIntervalKeyup($event, false, false)\">\n <input matEndDate [formField]=\"filterForm.to\" placeholder=\"A data\"\n (keydown)=\"onIntervalKeydown($event)\" (keyup)=\"onIntervalKeyup($event, false, true)\">\n </mat-date-range-input>\n @if (filterForm.from().value() || filterForm.to().value()) {\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\n (click)=\"clearInterval()\">\n <mat-icon>close</mat-icon>\n </button>\n }\n <mat-datepicker-toggle matSuffix [for]=\"picker1\"></mat-datepicker-toggle>\n <mat-date-range-picker #picker1></mat-date-range-picker>\n @if (filterForm.from().invalid() || filterForm.to().invalid()) {\n <mat-error>Intervallo non valido.</mat-error>\n }\n </mat-form-field>\n @if(isReadable()) {\n <div style=\"padding-bottom:10px\">\n <mat-slide-toggle [formField]=\"filterForm.showUnreadDocumentsOnly\">Mostra solo elementi non letti</mat-slide-toggle>\n </div>\n }\n </mat-expansion-panel>\n <mat-expansion-panel expanded class=\"accordion-panel mat-elevation-z0 \">\n <mat-expansion-panel-header class=\"accordion-header\">\n <mat-panel-title>\n Documento modificato\n </mat-panel-title>\n </mat-expansion-panel-header>\n <div fxLayout=\"column\">\n <div fxLayout=\"row wrap\" fxLayoutAlign=\"space-between center\" fxFill>\n <mat-form-field fxFlex=\"59\" fxFlex.xs=\"100\">\n <mat-label>Numero</mat-label>\n <input matInput [formField]=\"filterForm.changedNumber\"\n #filterByChangeNumber=\"matInput\" />\n @if (filterForm.changedNumber().value()) {\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\n (click)=\"filterForm.changedNumber().value.set('')\">\n <mat-icon>close</mat-icon>\n </button>\n }\n </mat-form-field>\n <mat-form-field fxHide.xs fxFlex=\"39\" fxFlex.xs=\"100\">\n <mat-label>Anno</mat-label>\n <input type=\"number\" matInput [formField]=\"filterForm.changedYear\" />\n @if (filterForm.changedYear().value()) {\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\n (click)=\"filterForm.changedYear().value.set(null)\">\n <mat-icon>close</mat-icon>\n </button>\n }\n </mat-form-field>\n </div>\n <mat-form-field>\n <mat-label>Titolo</mat-label>\n <input matInput [formField]=\"filterForm.changedTitle\" />\n @if (filterForm.changedTitle().value()) {\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\n (click)=\"filterForm.changedTitle().value.set('')\">\n <mat-icon>close</mat-icon>\n </button>\n }\n </mat-form-field>\n </div>\n </mat-expansion-panel>\n <mat-expansion-panel #modifierOptionsExpansionPanel class=\"accordion-panel mat-elevation-z0 \">\n <mat-expansion-panel-header class=\"accordion-header\">\n <mat-panel-title>\n Documento modificante\n </mat-panel-title>\n </mat-expansion-panel-header>\n <div fxLayout=\"column\">\n <div fxLayout=\"row wrap\" fxLayoutAlign=\"space-between center\" fxFill>\n <mat-form-field fxFlex=\"59\" fxFlex.xs=\"100\">\n <mat-label>Numero</mat-label>\n <input matInput [formField]=\"filterForm.modifierNumber\" />\n @if (filterForm.modifierNumber().value()) {\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\n (click)=\"filterForm.modifierNumber().value.set('')\">\n <mat-icon>close</mat-icon>\n </button>\n }\n </mat-form-field>\n <mat-form-field fxHide.xs fxFlex=\"39\" fxFlex.xs=\"100\">\n <mat-label>Anno</mat-label>\n <input type=\"number\" matInput [formField]=\"filterForm.modifierYear\" />\n @if (filterForm.modifierYear().value()) {\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\n (click)=\"filterForm.modifierYear().value.set(null)\">\n <mat-icon>close</mat-icon>\n </button>\n }\n </mat-form-field>\n </div>\n <mat-form-field>\n <mat-label>Titolo</mat-label>\n <input matInput [formField]=\"filterForm.modifierTitle\" />\n @if (filterForm.modifierTitle().value()) {\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\n (click)=\"filterForm.modifierTitle().value.set('')\">\n <mat-icon>close</mat-icon>\n </button>\n }\n </mat-form-field>\n </div>\n </mat-expansion-panel>\n <mat-expansion-panel #otherOptionsExpansionPanel class=\"accordion-panel mat-elevation-z0\">\n <mat-expansion-panel-header class=\"accordion-header\">\n <mat-panel-title>\n Altre opzioni\n </mat-panel-title>\n </mat-expansion-panel-header>\n <div fxLayout=\"column\">\n <mat-form-field>\n <mat-label>Motivo</mat-label>\n <mat-select [formField]=\"filterForm.changeReason\">\n @for (r of reasons(); track $index) {\n <mat-option [value]=\"r.value\" [matTooltip]=\"r.name\">\n {{r.name}}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n </mat-expansion-panel>\n }\n </mat-accordion>\n </form>\n </div>\n </div>\n @if(showChannels()) {\n <div style=\"padding:10px\">\n <div fxLayout=\"column\">\n <mat-expansion-panel class=\"accordion-panel mat-elevation-z0\" style=\"margin-bottom: 10px;\">\n <mat-expansion-panel-header class=\"accordion-header\">\n <mat-panel-title>\n Canali\n </mat-panel-title>\n <mat-panel-description>\n @for (c of clipperService.availableChannels(); track $index) {\n <div class=\"channel-box\" [class.channel-disabled]=\"!c.active || c.disabled\" [matTooltip]=\"c.name\">\n <span class=\"label\">{{c.header}}</span>\n </div>\n }\n </mat-panel-description>\n </mat-expansion-panel-header>\n <chips-selector [collapseAt]=\"599\" [formField]=\"filterForm.channels\" [multiple]=\"true\"\n label=\"Canali\" [options]=\"clipperService.availableChannels()\"\n (changed)=\"channelsChanged()\"></chips-selector>\n\n </mat-expansion-panel>\n <div fxLayout=\"row\" fxLayoutGap=\"10px\" fxFill>\n <div fxFlex=\"*\" fxFlexAlign=\"end\">\n <button mat-stroked-button (click)=\"clearFilter()\">Pulisci</button>\n <button mat-stroked-button (click)=\"saveFilter()\" style=\"margin-left: 10px;\">Salva</button>\n </div>\n <div fxLayoutAlign=\"end\">\n <button fxFlexAlign=\"end\" mat-flat-button (click)=\"applyFilter()\"\n [disabled]=\"!canSearch()\">Applica</button>\n </div>\n </div>\n </div>\n </div>\n }\n </div>\n </mat-drawer>\n <div fxLayout=\"column\" fxLayoutGap=\"10px\" fxFill class=\"drawer-content scroll-hidden\">\n <div class=\"module-toolbar \">\n <div fxLayout=\"row wrap\" fxLayoutAlign=\"space-between\" fxFill>\n <div fxFlex=\"49\" fxFlex.lt-md=\"100\" style=\"padding-left: 10px; padding-bottom: 5px;\">\n @if(!filterPane.opened) {\n <button-toggle cssClass=\"small\" cssClassSmall=\"x-small\" iconOn=\"left_panel_close\" iconOff=\"tune\"\n labelOn=\"Nascondi<br>filtri\" labelOff=\"Mostra<br>filtri\" [value]=\"filterPane.opened\"\n (changed)=\"toggleFilterPane()\"></button-toggle>\n }\n </div>\n <div fxFlex=\"49\" fxFlex.lt-md=\"100\" fxLayoutAlign=\"end\">\n <div fxLayout=\"row\" style=\"height:48px; padding-bottom: 5px;\">\n @if((snapshot?.total ?? 0) > 0) {\n @if(sortOptions().length > 0) {\n <button-selector [options]=\"sortOptions()\" label=\"Ordina per:\" style=\"margin-right: 5px;\" [border]=\"0\"\n fxFlexAlign=\"center\" [formField]=\"sortForm\" (selected)=\"sort($event)\"></button-selector>\n }\n <button fxFlexAlign=\"center\" mat-icon-button matSuffix matTooltip=\"Opzioni sulla selezione\"\n aria-label=\"Opzioni sulla selezione\" [matMenuTriggerFor]=\"selectionOptionsMenu\"\n [matBadge]=\"countSelections()\"><mat-icon>checklist</mat-icon></button>\n <button fxFlexAlign=\"center\" mat-icon-button matTooltip=\"Salva elenco in Excel \"\n (click)=\"exportResults()\"><mat-icon>save_alt</mat-icon></button>\n @if (!filterPane2?.opened && hasFacets()){\n <button fxFlexAlign=\"center\" mat-icon-button matTooltip=\"Affina ricerca\"\n (click)=\"toggleFilterPane2()\"><mat-icon>right_panel_open</mat-icon></button>\n }\n }\n </div>\n </div>\n </div>\n </div>\n <div fxFlex=\"*\" class=\"module-content\">\n <mat-drawer-container [hasBackdrop]=\"filterPane2HasBackdrop()\" class=\"fill\">\n <mat-drawer #filterPane2 class=\"drawer-small drawer-with-loader\" position=\"end\" opened=\"false\">\n @if (filterBusy()) {\n <div class=\"overlay\"></div>\n }\n <div fxLayout=\"column\" fxFill>\n <div fxFlex=\"6px\">\n @if (filterBusy()) {\n <mat-progress-bar style=\"z-index: 11;\" mode=\"indeterminate\">\n </mat-progress-bar>\n }\n </div>\n <div fxFlex=\"78px\" class=\"title-container-with-loader\">\n <div fxLayout=\"row\" fxLayoutAlign=\"start center\" fxFill>\n <div class=\"title\">Affina ricerca</div>\n <div fxFlex=\"*\" fxLayoutAlign=\"end\">\n <button mat-icon-button (click)=\"toggleFilterPane2()\"\n matTooltip=\"Nascondi\"><mat-icon>right_panel_close</mat-icon></button>\n </div>\n </div>\n </div>\n <div fxFlex=\"*\" class=\"content scroll-hidden\" style=\"padding: 0 5px;\">\n <clipper-search-facets #facets></clipper-search-facets>\n\n </div>\n </div>\n </mat-drawer>\n <div fxLayout=\"column\" fxFill>\n <div fxFlex=\"*\" [id]=\"scrollerId\" cdkScrollable class=\"scroll-auto\" style=\"padding: 0 20px;\">\n @if (!snapshot?.total) {\n <div class=\"message-container\">\n @if(snapshot?.total === 0) {\n <p class=\"message\"><b>Nessun elemento da visualizzare.</b></p>\n } @else {\n <div class=\"message\">\n <p fxHide.xs><b>Esegui una ricerca compilando i campi necessari nella maschera di ricarca qui a\n fianco.</b></p>\n <p fxHide.gt-xs><b>Fai click sul bottone <span class=\"accent\"><mat-icon>tune</mat-icon></span> ed esegui\n una\n ricerca compilando i campi necessari.</b></p>\n <p>E' possibile salvare i parametri delle le ricerche pi\u00F9 utilizzate facendo clic su &nbsp;\n <mat-icon\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>.\n </p>\n </div>\n }\n </div>\n } @else {\n @if (snapshot && (snapshot.total ?? 0) > 0) {\n @for (item of snapshot.items; track $index; let i = $index) {\n @if (item.group && isSortedByDate()) {\n <div class=\"items-group-title\">\n <div [class.group-spaced]=\"i > 0\">{{item.group}}</div>\n </div>\n }\n <clipper-search-result-item [item]=\"item\" [parent]=\"this\" [displayModelName]=\"true\" [actions]=\"contextMenu\"\n [isReadable]=\"true\"></clipper-search-result-item>\n }\n }\n }\n </div>\n <!-- footer -->\n @if ((snapshot?.total ?? 0) > 0) {\n <div class=\"items-footer\">\n <div fxLayout=\"row wrap\" fxLayoutGap=\"10px\" fxLayoutAlign=\"space-between center\" fxFill>\n <!-- legend -->\n <div fxFlex.lt-md=\"100\" class=\"legend-container\">\n <div class=\"legend unread-bg\"></div>\n non letto\n <!--<div class=\"legend next very-popular-bg\"></div>\n molto citato\n <div class=\"legend next popular-bg\"></div>\n citato-->\n <div class=\"legend next expired-bg \"></div>\n non pi\u00F9 vigente\n </div>\n <div fxFlex.lt-md=\"100\" fxLayoutAlign=\"end\" [class.wide]=\"filterPane2?.opened\">\n <div fxLayout=\"row\">\n <mat-paginator fxFlexAlign=\"center\" #paginator class=\"paginator\" [hidePageSize]=\"true\"\n [length]=\"snapshot?.total ?? 0\" [pageSize]=\"filterParams.count\" [showFirstLastButtons]=\"true\"\n (page)=\"fetchMore($event)\">\n </mat-paginator>\n </div>\n </div>\n </div>\n </div>\n }\n </div>\n </mat-drawer-container>\n </div>\n </div>\n</mat-drawer-container>\n<mat-menu #filterPaneOptionsMenu=\"matMenu\">\n <button mat-menu-item (click)=\"compose()\">\n <mat-icon>build</mat-icon>Componi\n </button>\n <button mat-menu-item (click)=\"help()\">\n <mat-icon>help</mat-icon>Come usare la ricerca in testo libero\n </button>\n</mat-menu>\n<mat-menu #selectionOptionsMenu=\"matMenu\">\n <button mat-menu-item (click)=\"selectAll()\">\n <mat-icon>select_all</mat-icon>Seleziona tutti\n </button>\n <clipper-document-menu [parent]=\"this\" [useSelections]=\"true\" [isReadable]=\"true\"\n [canUseAIAssistant]=\"hasAIAssistant()\" [canUseRS]=\"showRSOptions()\">\n </clipper-document-menu>\n</mat-menu>\n<mat-menu #contextMenu=\"matMenu\" (closed)=\"updateMenuButtonsVisibility()\">\n <ng-template matMenuContent let-item=\"item\">\n <clipper-document-menu [parent]=\"this\" [item]=\"item\" [isReadable]=\"true\"\n [canUseAIAssistant]=\"hasAIAssistant()\" [canUseRS]=\"showRSOptions()\">\n </clipper-document-menu>\n </ng-template>\n</mat-menu>", styles: [".fill,.wide{min-width:100%!important;max-width:100%!important;width:100%!important}.dialog-info{font-size:x-small;font-weight:700;text-align:right;padding:10px}.dialog-info-green,.dialog-info-ok{color:var(--ars-color-ok, #388E3C)}.dialog-info-red,.dialog-info-error{color:var(--mat-form-field-error-text-color, #a80710)}.dialog-header{padding-bottom:20px}.dialog-toolbar{padding:0 5px 0 24px;height:48px;min-height:48px}.dialog-close{margin-right:5px;margin-top:0}.dialog-menu{margin-left:10px;margin-top:10px}.dialog-title{padding:0 24px}.section-title{font-size:large;font-weight:600;padding-top:10px;padding-bottom:8px}.center{text-align:center}.fill{min-height:100%!important;max-height:100%!important;height:100%!important}.scroll-auto{overflow:auto;height:100%}.scroll-hidden{overflow:hidden;height:100%}b{font-weight:700}.large{font-size:large!important;line-height:1.2!important}.smaller{font-size:smaller!important;line-height:1.2!important}.small{font-size:small!important;line-height:1.2!important}.small-icon-button{width:1.5rem!important;height:1.5rem!important;padding:0!important;display:inline-flex!important;align-items:center;justify-content:center}.small-icon-button .mat-mdc-button-touch-target{width:1.5rem!important;height:1.5rem!important}.x-small{font-size:x-small!important;line-height:1.2!important}.bold{font-weight:700}.uppercase{text-transform:uppercase!important}.lowercase{text-transform:lowercase!important}.truncated{min-width:0;max-width:100%}@supports (-webkit-line-clamp: 2){.truncated{overflow:hidden;text-overflow:ellipsis;white-space:initial;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}}.truncated span,.truncated div{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@supports (-webkit-line-clamp: 2){.truncated span,.truncated div{overflow:hidden;text-overflow:ellipsis;white-space:initial;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}}.clipped{min-width:0;max-width:100%}.clipped span,.clipped div{white-space:nowrap;overflow:hidden;text-overflow:clip}.accent{color:var(--ars-color-accent, #7894ae)!important}.primary{color:var(--ars-color-primary, #00a293)!important}.secondary{color:var(--ars-color-secondary, #4a635f)!important}.error{color:var(--ars-color-error, #ff5449)!important}.success{color:var(--ars-color-ok, #388E3C)!important}.warning{color:var(--ars-color-warning, #FFC107)!important}.text{color:var(--ars-color-text, #191c1b)!important}.overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:10;background-color:var(--ars-color-overlay, rgba(255, 255, 255, .75))}.drawer-content{padding-top:10px}.drawer .title-container,.drawer .title-container-with-loader,.drawer-small .title-container,.drawer-small .title-container-with-loader{padding-right:5px;padding-bottom:20px;padding-left:0}.drawer .title-container,.drawer-small .title-container{padding-top:20px}.drawer .title-container-with-loader,.drawer-small .title-container-with-loader{padding-top:14px}.drawer .title,.drawer-small .title{font-size:19.2px!important;font-weight:600;padding-left:15px;min-width:150px;width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.drawer .accordion-panel,.drawer-small .accordion-panel{background-color:transparent!important}.drawer .accordion-header,.drawer-small .accordion-header{padding-left:10px;padding-right:10px;border-radius:var(--mat-expansion-container-shape)}.drawer .mat-expansion-panel-body,.drawer-small .mat-expansion-panel-body{padding-left:10px!important;padding-right:10px!important;padding-bottom:20px!important}@media screen and (min-width:0px)and (max-width:430px){.drawer,.drawer-small{border-radius:0!important;min-width:100%!important;max-width:100%!important}}@media screen and (min-width:431px){.drawer{min-width:420px!important;max-width:420px!important}.drawer .title{min-width:200px}.drawer .mat-expansion-panel-body{padding-left:15px!important;padding-right:15px!important;padding-bottom:20px!important}.drawer-small{min-width:360px!important;max-width:360px!important}}.drawer-with-loader{padding-top:0!important}.drawer-transparent{background-color:transparent}.fade-in{animation:fadein .5s linear}@keyframes fadein{0%{opacity:0}to{opacity:1}}.bright{filter:brightness(.7)!important}@media(prefers-color-scheme:dark){.dialog-info-green,.dialog-info-ok{color:var(--ars-color-ok, #4CAF50)}.dialog-info-red,.dialog-info-error{color:var(--mat-form-field-error-text-color, #ff5449)}b,.bold{font-weight:600}.bright{filter:brightness(1.5)!important}}.clipper-logo{background-size:110px 48px;width:110px;height:48px}.clipper-selection-button{width:150px;font-size:small;font-weight:600}.clipper-selection-icon-button{background-color:var(--ars-color-primary, #00a293);color:var(--ars-color-text-low, #e0e2e5)}.clipper-selection-icon-button:hover{background-color:var(--ars-color-primary-hi, #12c0ae)}.unread{color:var(--app-color-unread, #f7931c)!important}.unread-bg{background-color:var(--app-color-unread, #f7931c)!important}.expired{color:var(--app-color-expired, #ff5449)!important}.expired-bg{background-color:var(--app-color-expired, #ff5449)!important}.expiring{color:var(--app-color-expiring, #FFC107)!important}.expiring-bg{background-color:var(--app-color-expiring, #FFC107)!important}.closed{color:var(--app-color-closed, #388E3C)!important}.closed-bg{background-color:var(--app-color-closed, #388E3C)!important}.error-bg{background-color:var(--ars-color-error, #ff5449)!important}.popular-bg{background-color:var(--app-color-closed, #388E3C)!important}.very-popular-bg{background-color:#4caf50}.item-selected{background-color:var(--ars-item-selected-background-color, #ced1d2);border-radius:0!important}.item-unread{font-weight:bolder}.items-group-title{color:var(--ars-color-secondary, #4a635f);font-size:large;font-weight:700;padding-left:25px;padding-bottom:10px;padding-top:10px}.items-group-title .group-spaced{padding:10px 0 0!important}.items-footer{padding:10px}.item{border-radius:12px;padding:10px 10px 10px 0;min-height:68px!important;margin-bottom:2px}.item:hover{background-color:var(--ars-item-hover-background-color, #eaecef)}.item:hover .item-content{-webkit-mask-image:linear-gradient(to right,black 85%,transparent 100%);mask-image:linear-gradient(to right,black 85%,transparent 100%)}@media screen and (min-width:0px)and (max-width:430px){.item:hover{background-color:var(--ars-item-hover-background-color)}.item:hover .item-content{-webkit-mask-image:linear-gradient(to right,black 55%,transparent 100%);mask-image:linear-gradient(to right,black 55%,transparent 100%)}}.item-content .item-info-1,.item-content .info-1{font-size:x-small!important;font-weight:700!important;line-height:18px;text-transform:uppercase!important;color:var(--ars-color-accent, #7894ae)}.item-content .item-info-2,.item-content .info-2{font-size:x-small!important;font-weight:700!important;line-height:18px;text-transform:uppercase!important;color:var(--ars-color-accent-low, #456179)}.item-content .item-info-3,.item-content .info-3{font-size:x-small!important;font-weight:700!important;line-height:18px;text-transform:uppercase!important;color:var(--ars-color-error, #ff5449)}.item-content .item-title,.item-content .title{font-size:small!important;line-height:18px;text-decoration:none!important;font-weight:400;min-height:unset;min-width:unset;white-space:initial!important}@supports (-webkit-line-clamp: 3){.item-content .item-title,.item-content .title{overflow:hidden;text-overflow:ellipsis;white-space:initial;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}}.item-content .details{margin-top:4px;font-size:x-small!important;font-weight:700;line-height:15px;color:var(--ars-color-accent-low, #456179);text-transform:uppercase!important;border-left:4px solid var(--ars-color-accent-low, #456179);padding-left:10px}.item-content .details .links{text-transform:none;text-decoration:none}.item-content .details .links a,.item-content .details .links span,.item-content .details .links div{margin-right:8px;font-weight:500!important;font-size:11px!important;color:var(--ars-color-text, #191c1b)}.item-content .details .links a{cursor:pointer!important;color:var(--ars-color-link, #03A9F4);font-size:11px!important;font-weight:500!important}.item-content a.link{color:var(--ars-color-link, #03A9F4);cursor:pointer!important;text-decoration:none!important}.tile:hover{background-color:var(--ars-item-hover-background-color, #eaecef);border-radius:12px}.tile{cursor:pointer!important;padding:10px 13px!important;margin-bottom:20px!important}.tile .body{padding:4px 6px}.tile .image-mark{border-top:6px solid transparent;margin:0 8px}.tile .image-mark-unread{border-top-color:var(--app-color-unread, #f7931c);margin:0 8px}.tile .tile-image,.tile .image{height:125px;position:relative;background-color:transparent;overflow:hidden;display:flex;justify-content:center;align-items:center;border-radius:8px}.tile .tile-image img,.tile .image img{object-fit:cover;width:100%;height:100%}.tile .tile-image .tile-info-1,.tile .tile-image .info-1,.tile .image .tile-info-1,.tile .image .info-1{position:absolute;left:0;bottom:0;padding:4px 8px;background-color:var(--ars-color-overlay, rgba(255, 255, 255, .75));color:var(--ars-color-text, #191c1b);font-size:small!important;font-weight:700!important;text-transform:uppercase!important}.tile .tile-image .tile-info-2,.tile .tile-image .info-2,.tile .image .tile-info-2,.tile .image .info-2{position:absolute;right:0;top:0;padding:4px 8px;background-color:var(--ars-color-overlay, rgba(255, 255, 255, .75));color:var(--ars-color-accent, #7894ae);font-size:small!important;font-weight:700!important;text-transform:uppercase!important}.tile .tile-image .buttons,.tile .image .buttons{position:absolute;left:0;top:0;height:42px}.tile .tile-image .buttons .check,.tile .tile-image .buttons .read-button,.tile .image .buttons .check,.tile .image .buttons .read-button{background-color:var(--ars-color-primary, #00a293)!important;color:var(--ars-color-text-low, #e0e2e5)!important}.tile .tile-image .buttons .unread-button,.tile .image .buttons .unread-button{background-color:var(--app-color-unread, #f7931c)!important;color:var(--ars-color-text-low, #e0e2e5)!important}.tile .tile-image .buttons .check-selected,.tile .image .buttons .check-selected{background-color:var(--ars-color-primary-hi, #12c0ae)!important}.tile .tile-date,.tile .date{padding:8px 0 6px!important;font-weight:700!important;text-transform:uppercase!important}.tile .tile-date .date-day,.tile .date .date-day{color:var(--ars-color-accent, #7894ae)}.tile .tile-date .date-divider,.tile .date .date-divider{width:1px;margin:0 8px;border-left:1px solid var(--ars-color-divider, #757d87)}.tile .tile-time,.tile .time{font-size:small!important;font-weight:700!important}.tile .tile-title,.tile .title{text-decoration:none!important;font-size:16px!important;font-weight:600;min-height:50px!important;max-height:70px!important;min-width:100%;white-space:initial!important;overflow:hidden!important}@supports (-webkit-line-clamp: 3){.tile .tile-title,.tile .title{overflow:hidden;text-overflow:ellipsis;white-space:initial;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}}.stripe:hover{background-color:var(--ars-item-hover-background-color, #eaecef);border-radius:12px}.stripe{cursor:pointer!important;padding:5px 10px!important;margin-bottom:10px!important}.stripe .body{padding:5px 15px!important}.stripe .image-mark{min-height:100%!important;border-left:6px solid transparent;margin:8px 0}.stripe .image-mark-unread{min-height:100%!important;border-left-color:var(--ars-color-error, #ff5449)!important;margin:8px 0}.stripe .stripe-image,.stripe .image{width:150px!important;height:70px!important;position:relative;background-color:transparent;overflow:hidden;display:flex;justify-content:center;align-items:center;border-radius:8px}.stripe .stripe-image img,.stripe .image img{object-fit:cover;width:100%;height:100%}.stripe .stripe-info-1,.stripe .info-1{margin-top:8px;padding:4px 8px!important;background-color:var(--ars-color-overlay, rgba(255, 255, 255, .75))!important;color:var(--ars-color-text, #191c1b)!important;font-size:small!important;font-weight:700!important;text-transform:uppercase!important}.stripe .stripe-info-2,.stripe .info-2{margin-top:8px;padding:4px 8px!important;background-color:var(--ars-color-overlay, rgba(255, 255, 255, .75))!important;color:var(--ars-color-accent, #7894ae)!important;font-size:small!important;font-weight:700!important;text-transform:uppercase!important}.stripe .buttons{position:absolute;left:0;top:0;height:42px}.stripe .buttons .check,.stripe .buttons .read{background-color:var(--ars-color-primary, #00a293);color:var(--ars-color-text-low, #e0e2e5)}.stripe .buttons .check-selected{background-color:var(--ars-color-primary-hi, #12c0ae)}.stripe .stripe-date,.stripe .date{padding:0!important;font-weight:700!important;text-transform:uppercase!important}.stripe .stripe-date .date-day,.stripe .date .date-day{color:var(--ars-color-accent, #7894ae)}.stripe .stripe-date .date-divider,.stripe .date .date-divider{width:1px;margin:0 8px;border-left:1px solid var(--ars-color-divider, #757d87)}.stripe .stripe-time,.stripe .time{font-size:small!important;font-weight:700!important}.stripe .stripe-title,.stripe .title{text-decoration:none!important;font-size:16px!important;font-weight:600;min-width:100%;white-space:initial!important;overflow:hidden!important}@supports (-webkit-line-clamp: 3){.stripe .stripe-title,.stripe .title{overflow:hidden;text-overflow:ellipsis;white-space:initial;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}}.badge,.badge-red{margin-left:10px;padding:1px 4px;border-radius:3px;font-size:x-small;font-weight:600;text-align:center;background-color:#427505;text-transform:uppercase;white-space:nowrap;color:#e0e2e5}.badge-red{background-color:#a80710}.busy-backdrop{background-color:#0000006b!important}.legend-container{display:flex;flex-direction:row;align-items:center;font-size:x-small;text-transform:uppercase;font-weight:500;margin-left:10px}.legend-container .legend{display:inline-block;height:8px;width:8px;margin-right:4px}.legend-container .legend:not(:first-of-type){margin-left:10px}@media screen and (max-width:431px){.legend-container{font-size:9px!important}}.special-date,.special-date-expired,.special-date-expiring{border:2px var(--ars-color-accent, #7894ae) solid!important;border-radius:100%!important}.special-date-expired{border:2px var(--ars-color-error, #ff5449) solid!important}.special-date-expiring{border:2px var(--ars-color-warning, #FFC107) solid!important}.word-hit-chunk,.word-hit{display:inline-block;font-size:inherit;background-color:var(--ars-word-hit-background-color, #FFEB3B);color:var(--ars-word-hit-color, #191c1b);padding:0 4px;margin:0 4px;border-radius:4px}.word-hit-chunk{background-color:var(--ars-word-chunk-hit-background-color, #8AFF59);color:var(--ars-word-hit-chunk-color, #191c1b)}.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: "directive", type: FormField, selector: "[formField]", inputs: ["formField"], exportAs: ["formField"] }, { kind: "directive", type: FormRoot, selector: "form[formRoot]", inputs: ["formRoot"] }, { kind: "ngmodule", type: FlexLayoutModule }, { kind: "directive", type: i1.FxLayoutDirective, 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.FxFlexDirective, 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: i1.FxShowHideDirective, selector: " [fxShow], [fxHide], [fxShow.xs], [fxShow.sm], [fxShow.md], [fxShow.lg], [fxShow.xl], [fxShow.lt-sm], [fxShow.lt-md], [fxShow.lt-lg], [fxShow.lt-xl], [fxShow.gt-xs], [fxShow.gt-sm], [fxShow.gt-md], [fxShow.gt-lg], [fxHide.xs], [fxHide.sm], [fxHide.md], [fxHide.lg], [fxHide.xl], [fxHide.lt-sm], [fxHide.lt-md], [fxHide.lt-lg], [fxHide.lt-xl], [fxHide.gt-xs], [fxHide.gt-sm], [fxHide.gt-md], [fxHide.gt-lg] ", inputs: ["fxShow", "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.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: "directive", type: i1.FxLayoutAlignDirective, 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.FxLayoutGapDirective, 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.FxFlexAlignDirective, 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.FxFlexFillDirective, selector: " [fxFlexFill], [fxFill], [fxFlexFill.xs], [fxFlexFill.sm], [fxFlexFill.md], [fxFlexFill.lg], [fxFlexFill.xl], [fxFlexFill.lt-sm], [fxFlexFill.lt-md], [fxFlexFill.lt-lg], [fxFlexFill.lt-xl], [fxFlexFill.gt-xs], [fxFlexFill.gt-sm], [fxFlexFill.gt-md], [fxFlexFill.gt-lg] ", inputs: ["fxFlexFill", "fxFill", "fxFlexFill.xs", "fxFlexFill.sm", "fxFlexFill.md", "fxFlexFill.lg", "fxFlexFill.xl", "fxFlexFill.lt-sm", "fxFlexFill.lt-md", "fxFlexFill.lt-lg", "fxFlexFill.lt-xl", "fxFlexFill.gt-xs", "fxFlexFill.gt-sm", "fxFlexFill.gt-md", "fxFlexFill.gt-lg"] }, { 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.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.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: i5$1.CdkScrollable, selector: "[cdk-scrollable], [cdkScrollable]" }, { kind: "ngmodule", type: MatSidenavModule }, { kind: "component", type: i6.MatDrawer, selector: "mat-drawer", inputs: ["position", "mode", "disableClose", "autoFocus", "opened"], outputs: ["openedChange", "opened", "openedStart", "closed", "closedStart", "positionChanged"], exportAs: ["matDrawer"] }, { kind: "component", type: i6.MatDrawerContainer, selector: "mat-drawer-container", inputs: ["autosize", "hasBackdrop"], outputs: ["backdropClick"], exportAs: ["matDrawerContainer"] }, { kind: "ngmodule", type: MatExpansionModule }, { kind: "directive", type: i7.MatAccordion, selector: "mat-accordion", inputs: ["hideToggle", "displayMode", "togglePosition"], exportAs: ["matAccordion"] }, { kind: "component", type: i7.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["hideToggle", "togglePosition"], outputs: ["afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "component", type: i7.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["expandedHeight", "collapsedHeight", "tabIndex"] }, { kind: "directive", type: i7.MatExpansionPanelTitle, selector: "mat-panel-title" }, { kind: "directive", type: i7.MatExpansionPanelDescription, selector: "mat-panel-description" }, { kind: "ngmodule", type: MatDividerModule }, { kind: "component", type: i4$1.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i5.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: i5.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i5.MatMenuContent, selector: "ng-template[matMenuContent]" }, { kind: "directive", type: i5.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: i10.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i10.MatLabel, selector: "mat-label" }, { kind: "directive", type: i10.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i10.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i11.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: i12.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "component", type: i12.MatDateRangeInput, selector: "mat-date-range-input", inputs: ["rangePicker", "required", "dateFilter", "min", "max", "disabled", "separator", "comparisonStart", "comparisonEnd"], exportAs: ["matDateRangeInput"] }, { kind: "directive", type: i12.MatStartDate, selector: "input[matStartDate]", outputs: ["dateChange", "dateInput"] }, { kind: "directive", type: i12.MatEndDate, selector: "input[matEndDate]", outputs: ["dateChange", "dateInput"] }, { kind: "component", type: i12.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: i13.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: i13.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: MatChipsModule }, { kind: "component", type: i14.MatChipGrid, selector: "mat-chip-grid", inputs: ["disabled", "placeholder", "required", "value", "errorStateMatcher"], outputs: ["change", "valueChange"] }, { kind: "directive", type: i14.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled", "readonly", "matChipInputDisabledInteractive"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i14.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i14.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: i15.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "fullWidth", "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: i16.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: ChipsSelectorComponent, selector: "chips-selector", inputs: ["options", "collapsedWidth", "collapsedDisplayMode", "collapseAt", "collapseAtContainer", "label", "multiple", "mustSelect", "mode", "stacked", "padAt", "required", "placeholder", "disabled"], 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: ClipperSearchResultItemComponent, selector: "clipper-search-result-item", inputs: ["parent", "item", "actions", "tileNoPictureUrl", "tilePictureUrl", "isSelectable", "isReadable", "isReadableModel", "displayModifiedTitle", "displayModelName", "displayDate", "displayMode"], outputs: ["itemChange"] }, { kind: "component", type: ClipperDocumentMenuComponent, selector: "clipper-document-menu", inputs: ["useSelections", "selectionSource", "parent", "item", "isReference", "isReadable", "isReadableModel", "isLawInForce", "canPrint", "canFind", "canUseAIAssistant", "canUseRS", "canOpenDocument"] }, { kind: "component", type: ClipperSearchFacetsComponent, selector: "clipper-search-facets", inputs: ["handleTooManyResults"], outputs: ["changed"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3209
3209
  }
3210
3210
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: ClipperBrowserComponent, decorators: [{
3211
3211
  type: Component,
3212
- args: [{ selector: 'clipper-browser', standalone: true, imports: [FormField, FlexLayoutModule, MatIconModule, MatButtonModule, MatTooltipModule, MatSidenavModule,
3212
+ args: [{ selector: 'clipper-browser', standalone: true, imports: [FormField, FormRoot, FlexLayoutModule, MatIconModule, MatButtonModule, MatTooltipModule, MatSidenavModule,
3213
3213
  MatExpansionModule, MatDividerModule, MatMenuModule, MatFormFieldModule, MatInputModule, MatDatepickerModule, MatBadge,
3214
3214
  ScrollingModule, MatSelectModule, MatChipsModule, MatSlideToggleModule, MatPaginator, MatCheckboxModule, MatButtonToggleModule, MatProgressBarModule,
3215
3215
  ChipsSelectorComponent, ButtonSelectorComponent, ButtonToggleComponent,
3216
3216
  ClipperSearchResultItemComponent,
3217
- ClipperDocumentMenuComponent, ClipperSearchFacetsComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-drawer-container [hasBackdrop]=\"filterPaneHasBackdrop()\" class=\"fill\">\n <mat-drawer #filterPane class=\"drawer\">\n <div fxLayout=\"column\" fxFill>\n <div fxFlex=\"78px\" class=\"title-container\">\n <div fxLayout=\"row\" fxLayoutGap=\"10px\" fxLayoutAlign=\"start center\" fxFill>\n <div class=\"title\">Filtro</div>\n <div fxFlex=\"*\" fxLayoutAlign=\"end\">\n <button fxFlexAlign=\"center\" mat-icon-button (click)=\"saveFilter(true)\"\n matTooltip=\"Crea una nuovo filtro con i parametri attuali \"><mat-icon>add</mat-icon></button>\n <button fxFlexAlign=\"center\" mat-icon-button (click)=\"toggleFilterPane()\"\n matTooltip=\"Nascondi\"><mat-icon>left_panel_close</mat-icon></button>\n </div>\n </div>\n </div>\n @if(hasFilters()) {\n <div style=\"padding:10px 20px\">\n <div fxLayout=\"row\" fxLayoutGap=\"10px\" fxFill>\n <div fxFlex=\"*\">\n <button-selector #filterSelector [options]=\"filters()\" label=\"Seleziona un filtro salvato\"\n labelSelected=\"Filtro in uso:\" fxFlexAlign=\"center\" (selected)=\"selectFilter($event)\"\n [matTooltip]=\"filterParams.searchName ?? ''\"></button-selector>\n </div>\n @if(filterParams.searchId) {\n <div fxFlex=\"40px\">\n <button fxFlexAlign=\"center\" mat-icon-button (click)=\"deleteFilter()\"\n matTooltip=\"Elimina il filtro in uso\"><mat-icon>delete</mat-icon></button>\n </div>\n }\n </div>\n </div>\n }\n <div fxFlex=\"*\" class=\"content scroll-hidden\" style=\"padding-bottom: 10px;\">\n <div class=\"scroll-auto\" style=\"padding: 0 10px;\">\n <form (keyup.enter)=\"applyFilter()\" novalidate>\n <mat-accordion multi displayMode=\"flat\">\n <mat-expansion-panel expanded class=\"accordion-panel mat-elevation-z0 \">\n <mat-expansion-panel-header class=\"accordion-header\">\n <mat-panel-title>\n Cerca in..\n </mat-panel-title>\n </mat-expansion-panel-header>\n\n <chips-selector #moduleSelector [formField]=\"filterForm.modules\" [collapseAt]=\"599\" [multiple]=\"true\"\n label=\"Sezioni\" name=\"modules\" [options]=\"filteredModules()\" (changed)=\"modulesChanged()\">\n </chips-selector>\n </mat-expansion-panel>\n\n @if((hasTags() || hasTopics()) && !isCoordination()) {\n <mat-expansion-panel class=\"accordion-panel mat-elevation-z0\">\n <mat-expansion-panel-header class=\"accordion-header\">\n <mat-panel-title>\n Argomenti\n </mat-panel-title>\n </mat-expansion-panel-header>\n @if(hasTags()) {\n <chips-selector [collapseAt]=\"599\" [formField]=\"filterForm.tags\" [multiple]=\"true\"\n label=\"Argomenti\" [options]=\"tags()\"></chips-selector>\n }\n @if(hasTopics()) {\n @if ((filterForm.topics().value()?.length ?? 0) > 0) {\n <mat-chip-grid #topics style=\"padding-bottom: 5px;\">\n @for (o of filterForm.topics().value(); track $index) {\n <mat-chip-row [value]=\"o\" (removed)=\"deleteTopic(o)\">\n {{o.name}}\n <button matChipRemove>\n <mat-icon>cancel</mat-icon>\n </button></mat-chip-row>\n }\n </mat-chip-grid>\n <input style=\"display: none;\" [matChipInputFor]=\"topics\" />\n }\n <div fxLayout=\"row\" fxLayoutAlign=\"end center\">\n <button mat-button type=\"button\" (click)=\"addTopic()\"><mat-icon>add</mat-icon> Aggiungi\n argomento</button>\n @if ((filterForm.topics().value()?.length ?? 0) > 0) {\n <button mat-button type=\"button\" (click)=\"clearTopics()\"><mat-icon>delete</mat-icon> Azzera</button>\n }\n </div>\n }\n </mat-expansion-panel>\n }\n @if(hasSectors()) {\n <mat-expansion-panel class=\"accordion-panel mat-elevation-z0 \">\n <mat-expansion-panel-header class=\"accordion-header\">\n <mat-panel-title>\n Settori\n </mat-panel-title>\n </mat-expansion-panel-header>\n <chips-selector [collapseAt]=\"599\" [formField]=\"filterForm.sectors\" [multiple]=\"true\"\n label=\"Settori\" [options]=\"sectors()\" (changed)=\"sectorsChanged()\" />\n @if(hasRegions())\n {\n <mat-divider style=\"padding-top: 8px; margin-top:8px\"></mat-divider>\n <chips-selector [formField]=\"filterForm.authors\" [multiple]=\"true\" mode=\"collapsed\"\n label=\"Tutte le regioni\" [options]=\"regions()\" />\n }\n </mat-expansion-panel>\n }\n @if(!isCoordination()) {\n <mat-expansion-panel expanded class=\"accordion-panel mat-elevation-z0 \">\n <mat-expansion-panel-header class=\"accordion-header\">\n <mat-panel-title>\n Documento\n </mat-panel-title>\n </mat-expansion-panel-header>\n <div fxLayout=\"column\">\n @if(isLaws()) {\n <div fxLayout=\"row wrap\" fxLayoutAlign=\"space-between center\" fxFill>\n <mat-form-field fxFlex=\"59\" fxFlex.xs=\"49\">\n <mat-label>Numero</mat-label>\n <input matInput [formField]=\"filterForm.number\"\n #filterByNumber=\"matInput\" />\n @if (filterForm.number().value()) {\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\n (click)=\"filterForm.number().value.set('')\">\n <mat-icon>close</mat-icon>\n </button>\n }\n </mat-form-field>\n <mat-form-field fxFlex=\"39\" fxFlex.xs=\"49\">\n <mat-label>Anno</mat-label>\n <input type=\"number\" matInput [formField]=\"filterForm.year\" />\n @if (filterForm.year().value()) {\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\n (click)=\"filterForm.year().value.set(null)\">\n <mat-icon>close</mat-icon>\n </button>\n }\n </mat-form-field>\n </div>\n }\n <mat-form-field>\n <mat-label>Intervallo di pubblicazione</mat-label>\n <mat-date-range-input [rangePicker]=\"picker1\">\n <input matStartDate [formField]=\"filterForm.from\" placeholder=\"Da data\"\n (keydown)=\"onIntervalKeydown($event)\" (keyup)=\"onIntervalKeyup($event, false, false)\">\n <input matEndDate [formField]=\"filterForm.to\" placeholder=\"A data\"\n (keydown)=\"onIntervalKeydown($event)\" (keyup)=\"onIntervalKeyup($event, false, true)\">\n </mat-date-range-input>\n @if (filterForm.from().value() || filterForm.to().value()) {\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\n (click)=\"clearInterval()\">\n <mat-icon>close</mat-icon>\n </button>\n }\n <mat-datepicker-toggle matSuffix [for]=\"picker1\"></mat-datepicker-toggle>\n <mat-date-range-picker #picker1></mat-date-range-picker>\n @if (filterForm.from().invalid() || filterForm.to().invalid()) {\n <mat-error>Intervallo non valido.</mat-error>\n }\n </mat-form-field>\n <mat-form-field>\n <mat-label>Testo</mat-label>\n <input matInput [formField]=\"filterForm.text\"\n #filterByText=\"matInput\" />\n @if (filterForm.text().value()) {\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\n (click)=\"filterForm.text().value.set('')\">\n <mat-icon>close</mat-icon>\n </button>\n }\n <button type=\"button\" tabindex=\"-1\" mat-icon-button matSuffix matTooltip=\"Opzioni\"\n aria-label=\"Opzioni\"\n [matMenuTriggerFor]=\"filterPaneOptionsMenu\"><mat-icon>more_vert</mat-icon></button>\n </mat-form-field>\n <div>\n @if(filterForm.text().value()) {\n <div style=\"padding-bottom:10px\">\n <mat-slide-toggle [formField]=\"filterForm.titleOnly\">Cerca solo nel\n titolo</mat-slide-toggle>\n </div>\n }\n @if(isLaws(false)) {\n <div style=\"padding-bottom:10px\">\n <mat-slide-toggle [formField]=\"filterForm.showNotAbrogatedDocumentsOnly\">Mostra solo elementi non abrogati</mat-slide-toggle>\n </div>\n <div style=\"padding-bottom:10px\">\n <mat-slide-toggle [formField]=\"filterForm.showCommentedDocumentsOnly\">Mostra solo elementi con commenti</mat-slide-toggle>\n </div>\n }\n @if(isReadable()) {\n <div style=\"padding-bottom:10px\">\n <mat-slide-toggle [formField]=\"filterForm.showUnreadDocumentsOnly\">Mostra solo elementi non letti</mat-slide-toggle>\n </div>\n }\n\n </div>\n </div>\n </mat-expansion-panel>\n @if(isLaws(false)) {\n <mat-expansion-panel #sourceExpansionPanel class=\"accordion-panel mat-elevation-z0 \">\n <mat-expansion-panel-header class=\"accordion-header\">\n <mat-panel-title>\n Fonte\n </mat-panel-title>\n </mat-expansion-panel-header>\n <div fxLayout=\"column\">\n <div fxLayout=\"row wrap\" fxLayoutAlign=\"space-between center\" fxFill>\n <mat-form-field fxFlex=\"59\" fxFlex.xs=\"100\">\n <mat-label>Numero</mat-label>\n <input matInput [formField]=\"filterForm.sourceNumber\" />\n @if (filterForm.sourceNumber().value()) {\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\n (click)=\"filterForm.sourceNumber().value.set('')\">\n <mat-icon>close</mat-icon>\n </button>\n }\n </mat-form-field>\n <mat-form-field fxHide.xs fxFlex=\"39\" fxFlex.xs=\"100\">\n <mat-label>Anno</mat-label>\n <input type=\"number\" matInput [formField]=\"filterForm.sourceYear\" />\n @if (filterForm.sourceYear().value()) {\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\n (click)=\"filterForm.sourceYear().value.set(null)\">\n <mat-icon>close</mat-icon>\n </button>\n }\n </mat-form-field>\n </div>\n <mat-form-field>\n <mat-label>Intervallo di pubblicazione</mat-label>\n <mat-date-range-input [rangePicker]=\"picker2\">\n <input matStartDate [formField]=\"filterForm.sourceFrom\" placeholder=\"Da data\"\n (keydown)=\"onIntervalKeydown($event)\" (keyup)=\"onIntervalKeyup($event, true, false)\">\n <input matEndDate [formField]=\"filterForm.sourceTo\" placeholder=\"A data\"\n (keydown)=\"onIntervalKeydown($event)\" (keyup)=\"onIntervalKeyup($event, true, true)\">\n </mat-date-range-input>\n @if (filterForm.sourceFrom().value() || filterForm.sourceTo().value()) {\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\n (click)=\"clearInterval(true)\">\n <mat-icon>close</mat-icon>\n </button>\n }\n <mat-datepicker-toggle matSuffix [for]=\"picker2\"></mat-datepicker-toggle>\n <mat-date-range-picker #picker2></mat-date-range-picker>\n @if (filterForm.sourceFrom().invalid() || filterForm.sourceTo().invalid()) {\n <mat-error>Intervallo non valido.</mat-error>\n }\n </mat-form-field>\n <mat-form-field>\n <mat-label>Tipo</mat-label>\n <mat-select [formField]=\"filterForm.source\">\n @for (s of sources(); track $index) {\n <mat-option [value]=\"s.value\" [matTooltip]=\"s.name\">\n {{s.name}}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n\n </div>\n </mat-expansion-panel>\n <mat-expansion-panel #otherOptionsExpansionPanel class=\"accordion-panel mat-elevation-z0\">\n <mat-expansion-panel-header class=\"accordion-header\">\n <mat-panel-title>\n Altre opzioni\n </mat-panel-title>\n </mat-expansion-panel-header>\n <div fxLayout=\"column\">\n @if(authors().length > 0 && !hasRegions()) {\n <mat-form-field>\n <mat-label>Autore</mat-label>\n <mat-select [formField]=\"filterForm.author\">\n @for (a of authors(); track $index) {\n <mat-option [value]=\"a.value\" [matTooltip]=\"a.name\">\n {{a.name}}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n <mat-form-field>\n <mat-label>Tipo documento</mat-label>\n <mat-select [formField]=\"filterForm.type\">\n @for (t of types(); track $index) {\n <mat-option [value]=\"t.value\" [matTooltip]=\"t.name\">\n {{t.name}}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n\n </mat-expansion-panel>\n }\n } @else {\n <mat-expansion-panel expanded class=\"accordion-panel mat-elevation-z0 \">\n <mat-expansion-panel-header class=\"accordion-header\">\n <mat-panel-title>\n Periodo\n </mat-panel-title>\n </mat-expansion-panel-header>\n <mat-form-field style=\"width:100%\">\n <mat-label>Intervallo di pubblicazione</mat-label>\n <mat-date-range-input [rangePicker]=\"picker1\">\n <input matStartDate [formField]=\"filterForm.from\" placeholder=\"Da data\"\n (keydown)=\"onIntervalKeydown($event)\" (keyup)=\"onIntervalKeyup($event, false, false)\">\n <input matEndDate [formField]=\"filterForm.to\" placeholder=\"A data\"\n (keydown)=\"onIntervalKeydown($event)\" (keyup)=\"onIntervalKeyup($event, false, true)\">\n </mat-date-range-input>\n @if (filterForm.from().value() || filterForm.to().value()) {\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\n (click)=\"clearInterval()\">\n <mat-icon>close</mat-icon>\n </button>\n }\n <mat-datepicker-toggle matSuffix [for]=\"picker1\"></mat-datepicker-toggle>\n <mat-date-range-picker #picker1></mat-date-range-picker>\n @if (filterForm.from().invalid() || filterForm.to().invalid()) {\n <mat-error>Intervallo non valido.</mat-error>\n }\n </mat-form-field>\n @if(isReadable()) {\n <div style=\"padding-bottom:10px\">\n <mat-slide-toggle [formField]=\"filterForm.showUnreadDocumentsOnly\">Mostra solo elementi non letti</mat-slide-toggle>\n </div>\n }\n </mat-expansion-panel>\n <mat-expansion-panel expanded class=\"accordion-panel mat-elevation-z0 \">\n <mat-expansion-panel-header class=\"accordion-header\">\n <mat-panel-title>\n Documento modificato\n </mat-panel-title>\n </mat-expansion-panel-header>\n <div fxLayout=\"column\">\n <div fxLayout=\"row wrap\" fxLayoutAlign=\"space-between center\" fxFill>\n <mat-form-field fxFlex=\"59\" fxFlex.xs=\"100\">\n <mat-label>Numero</mat-label>\n <input matInput [formField]=\"filterForm.changedNumber\"\n #filterByChangeNumber=\"matInput\" />\n @if (filterForm.changedNumber().value()) {\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\n (click)=\"filterForm.changedNumber().value.set('')\">\n <mat-icon>close</mat-icon>\n </button>\n }\n </mat-form-field>\n <mat-form-field fxHide.xs fxFlex=\"39\" fxFlex.xs=\"100\">\n <mat-label>Anno</mat-label>\n <input type=\"number\" matInput [formField]=\"filterForm.changedYear\" />\n @if (filterForm.changedYear().value()) {\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\n (click)=\"filterForm.changedYear().value.set(null)\">\n <mat-icon>close</mat-icon>\n </button>\n }\n </mat-form-field>\n </div>\n <mat-form-field>\n <mat-label>Titolo</mat-label>\n <input matInput [formField]=\"filterForm.changedTitle\" />\n @if (filterForm.changedTitle().value()) {\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\n (click)=\"filterForm.changedTitle().value.set('')\">\n <mat-icon>close</mat-icon>\n </button>\n }\n </mat-form-field>\n </div>\n </mat-expansion-panel>\n <mat-expansion-panel #modifierOptionsExpansionPanel class=\"accordion-panel mat-elevation-z0 \">\n <mat-expansion-panel-header class=\"accordion-header\">\n <mat-panel-title>\n Documento modificante\n </mat-panel-title>\n </mat-expansion-panel-header>\n <div fxLayout=\"column\">\n <div fxLayout=\"row wrap\" fxLayoutAlign=\"space-between center\" fxFill>\n <mat-form-field fxFlex=\"59\" fxFlex.xs=\"100\">\n <mat-label>Numero</mat-label>\n <input matInput [formField]=\"filterForm.modifierNumber\" />\n @if (filterForm.modifierNumber().value()) {\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\n (click)=\"filterForm.modifierNumber().value.set('')\">\n <mat-icon>close</mat-icon>\n </button>\n }\n </mat-form-field>\n <mat-form-field fxHide.xs fxFlex=\"39\" fxFlex.xs=\"100\">\n <mat-label>Anno</mat-label>\n <input type=\"number\" matInput [formField]=\"filterForm.modifierYear\" />\n @if (filterForm.modifierYear().value()) {\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\n (click)=\"filterForm.modifierYear().value.set(null)\">\n <mat-icon>close</mat-icon>\n </button>\n }\n </mat-form-field>\n </div>\n <mat-form-field>\n <mat-label>Titolo</mat-label>\n <input matInput [formField]=\"filterForm.modifierTitle\" />\n @if (filterForm.modifierTitle().value()) {\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\n (click)=\"filterForm.modifierTitle().value.set('')\">\n <mat-icon>close</mat-icon>\n </button>\n }\n </mat-form-field>\n </div>\n </mat-expansion-panel>\n <mat-expansion-panel #otherOptionsExpansionPanel class=\"accordion-panel mat-elevation-z0\">\n <mat-expansion-panel-header class=\"accordion-header\">\n <mat-panel-title>\n Altre opzioni\n </mat-panel-title>\n </mat-expansion-panel-header>\n <div fxLayout=\"column\">\n <mat-form-field>\n <mat-label>Motivo</mat-label>\n <mat-select [formField]=\"filterForm.changeReason\">\n @for (r of reasons(); track $index) {\n <mat-option [value]=\"r.value\" [matTooltip]=\"r.name\">\n {{r.name}}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n </mat-expansion-panel>\n }\n </mat-accordion>\n </form>\n </div>\n </div>\n @if(showChannels()) {\n <div style=\"padding:10px\">\n <div fxLayout=\"column\">\n <mat-expansion-panel class=\"accordion-panel mat-elevation-z0\" style=\"margin-bottom: 10px;\">\n <mat-expansion-panel-header class=\"accordion-header\">\n <mat-panel-title>\n Canali\n </mat-panel-title>\n <mat-panel-description>\n @for (c of clipperService.availableChannels(); track $index) {\n <div class=\"channel-box\" [class.channel-disabled]=\"!c.active || c.disabled\" [matTooltip]=\"c.name\">\n <span class=\"label\">{{c.header}}</span>\n </div>\n }\n </mat-panel-description>\n </mat-expansion-panel-header>\n <chips-selector [collapseAt]=\"599\" [formField]=\"filterForm.channels\" [multiple]=\"true\"\n label=\"Canali\" [options]=\"clipperService.availableChannels()\"\n (changed)=\"channelsChanged()\"></chips-selector>\n\n </mat-expansion-panel>\n <div fxLayout=\"row\" fxLayoutGap=\"10px\" fxFill>\n <div fxFlex=\"*\" fxFlexAlign=\"end\">\n <button mat-stroked-button (click)=\"clearFilter()\">Pulisci</button>\n <button mat-stroked-button (click)=\"saveFilter()\" style=\"margin-left: 10px;\">Salva</button>\n </div>\n <div fxLayoutAlign=\"end\">\n <button fxFlexAlign=\"end\" mat-flat-button (click)=\"applyFilter()\"\n [disabled]=\"!canSearch()\">Applica</button>\n </div>\n </div>\n </div>\n </div>\n }\n </div>\n </mat-drawer>\n <div fxLayout=\"column\" fxLayoutGap=\"10px\" fxFill class=\"drawer-content scroll-hidden\">\n <div class=\"module-toolbar \">\n <div fxLayout=\"row wrap\" fxLayoutAlign=\"space-between\" fxFill>\n <div fxFlex=\"49\" fxFlex.lt-md=\"100\" style=\"padding-left: 10px; padding-bottom: 5px;\">\n @if(!filterPane.opened) {\n <button-toggle cssClass=\"small\" cssClassSmall=\"x-small\" iconOn=\"left_panel_close\" iconOff=\"tune\"\n labelOn=\"Nascondi<br>filtri\" labelOff=\"Mostra<br>filtri\" [value]=\"filterPane.opened\"\n (changed)=\"toggleFilterPane()\"></button-toggle>\n }\n </div>\n <div fxFlex=\"49\" fxFlex.lt-md=\"100\" fxLayoutAlign=\"end\">\n <div fxLayout=\"row\" style=\"height:48px; padding-bottom: 5px;\">\n @if((snapshot?.total ?? 0) > 0) {\n @if(sortOptions().length > 0) {\n <button-selector [options]=\"sortOptions()\" label=\"Ordina per:\" style=\"margin-right: 5px;\" [border]=\"0\"\n fxFlexAlign=\"center\" [formField]=\"sortForm\" (selected)=\"sort($event)\"></button-selector>\n }\n <button fxFlexAlign=\"center\" mat-icon-button matSuffix matTooltip=\"Opzioni sulla selezione\"\n aria-label=\"Opzioni sulla selezione\" [matMenuTriggerFor]=\"selectionOptionsMenu\"\n [matBadge]=\"countSelections()\"><mat-icon>checklist</mat-icon></button>\n <button fxFlexAlign=\"center\" mat-icon-button matTooltip=\"Salva elenco in Excel \"\n (click)=\"exportResults()\"><mat-icon>save_alt</mat-icon></button>\n @if (!filterPane2?.opened && hasFacets()){\n <button fxFlexAlign=\"center\" mat-icon-button matTooltip=\"Affina ricerca\"\n (click)=\"toggleFilterPane2()\"><mat-icon>right_panel_open</mat-icon></button>\n }\n }\n </div>\n </div>\n </div>\n </div>\n <div fxFlex=\"*\" class=\"module-content\">\n <mat-drawer-container [hasBackdrop]=\"filterPane2HasBackdrop()\" class=\"fill\">\n <mat-drawer #filterPane2 class=\"drawer-small drawer-with-loader\" position=\"end\" opened=\"false\">\n @if (filterBusy()) {\n <div class=\"overlay\"></div>\n }\n <div fxLayout=\"column\" fxFill>\n <div fxFlex=\"6px\">\n @if (filterBusy()) {\n <mat-progress-bar style=\"z-index: 11;\" mode=\"indeterminate\">\n </mat-progress-bar>\n }\n </div>\n <div fxFlex=\"78px\" class=\"title-container-with-loader\">\n <div fxLayout=\"row\" fxLayoutAlign=\"start center\" fxFill>\n <div class=\"title\">Affina ricerca</div>\n <div fxFlex=\"*\" fxLayoutAlign=\"end\">\n <button mat-icon-button (click)=\"toggleFilterPane2()\"\n matTooltip=\"Nascondi\"><mat-icon>right_panel_close</mat-icon></button>\n </div>\n </div>\n </div>\n <div fxFlex=\"*\" class=\"content scroll-hidden\" style=\"padding: 0 5px;\">\n <clipper-search-facets #facets></clipper-search-facets>\n\n </div>\n </div>\n </mat-drawer>\n <div fxLayout=\"column\" fxFill>\n <div fxFlex=\"*\" [id]=\"scrollerId\" cdkScrollable class=\"scroll-auto\" style=\"padding: 0 20px;\">\n @if (!snapshot?.total) {\n <div class=\"message-container\">\n @if(snapshot?.total === 0) {\n <p class=\"message\"><b>Nessun elemento da visualizzare.</b></p>\n } @else {\n <div class=\"message\">\n <p fxHide.xs><b>Esegui una ricerca compilando i campi necessari nella maschera di ricarca qui a\n fianco.</b></p>\n <p fxHide.gt-xs><b>Fai click sul bottone <span class=\"accent\"><mat-icon>tune</mat-icon></span> ed esegui\n una\n ricerca compilando i campi necessari.</b></p>\n <p>E' possibile salvare i parametri delle le ricerche pi\u00F9 utilizzate facendo clic su &nbsp;\n <mat-icon\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>.\n </p>\n </div>\n }\n </div>\n } @else {\n @if (snapshot && (snapshot.total ?? 0) > 0) {\n @for (item of snapshot.items; track $index; let i = $index) {\n @if (item.group && isSortedByDate()) {\n <div class=\"items-group-title\">\n <div [class.group-spaced]=\"i > 0\">{{item.group}}</div>\n </div>\n }\n <clipper-search-result-item [item]=\"item\" [parent]=\"this\" [displayModelName]=\"true\" [actions]=\"contextMenu\"\n [isReadable]=\"true\"></clipper-search-result-item>\n }\n }\n }\n </div>\n <!-- footer -->\n @if ((snapshot?.total ?? 0) > 0) {\n <div class=\"items-footer\">\n <div fxLayout=\"row wrap\" fxLayoutGap=\"10px\" fxLayoutAlign=\"space-between center\" fxFill>\n <!-- legend -->\n <div fxFlex.lt-md=\"100\" class=\"legend-container\">\n <div class=\"legend unread-bg\"></div>\n non letto\n <!--<div class=\"legend next very-popular-bg\"></div>\n molto citato\n <div class=\"legend next popular-bg\"></div>\n citato-->\n <div class=\"legend next expired-bg \"></div>\n non pi\u00F9 vigente\n </div>\n <div fxFlex.lt-md=\"100\" fxLayoutAlign=\"end\" [class.wide]=\"filterPane2?.opened\">\n <div fxLayout=\"row\">\n <mat-paginator fxFlexAlign=\"center\" #paginator class=\"paginator\" [hidePageSize]=\"true\"\n [length]=\"snapshot?.total ?? 0\" [pageSize]=\"filterParams.count\" [showFirstLastButtons]=\"true\"\n (page)=\"fetchMore($event)\">\n </mat-paginator>\n </div>\n </div>\n </div>\n </div>\n }\n </div>\n </mat-drawer-container>\n </div>\n </div>\n</mat-drawer-container>\n<mat-menu #filterPaneOptionsMenu=\"matMenu\">\n <button mat-menu-item (click)=\"compose()\">\n <mat-icon>build</mat-icon>Componi\n </button>\n <button mat-menu-item (click)=\"help()\">\n <mat-icon>help</mat-icon>Come usare la ricerca in testo libero\n </button>\n</mat-menu>\n<mat-menu #selectionOptionsMenu=\"matMenu\">\n <button mat-menu-item (click)=\"selectAll()\">\n <mat-icon>select_all</mat-icon>Seleziona tutti\n </button>\n <clipper-document-menu [parent]=\"this\" [useSelections]=\"true\" [isReadable]=\"true\"\n [canUseAIAssistant]=\"hasAIAssistant()\" [canUseRS]=\"showRSOptions()\">\n </clipper-document-menu>\n</mat-menu>\n<mat-menu #contextMenu=\"matMenu\" (closed)=\"updateMenuButtonsVisibility()\">\n <ng-template matMenuContent let-item=\"item\">\n <clipper-document-menu [parent]=\"this\" [item]=\"item\" [isReadable]=\"true\"\n [canUseAIAssistant]=\"hasAIAssistant()\" [canUseRS]=\"showRSOptions()\">\n </clipper-document-menu>\n </ng-template>\n</mat-menu>", styles: [".fill,.wide{min-width:100%!important;max-width:100%!important;width:100%!important}.dialog-info{font-size:x-small;font-weight:700;text-align:right;padding:10px}.dialog-info-green,.dialog-info-ok{color:var(--ars-color-ok, #388E3C)}.dialog-info-red,.dialog-info-error{color:var(--mat-form-field-error-text-color, #a80710)}.dialog-header{padding-bottom:20px}.dialog-toolbar{padding:0 5px 0 24px;height:48px;min-height:48px}.dialog-close{margin-right:5px;margin-top:0}.dialog-menu{margin-left:10px;margin-top:10px}.dialog-title{padding:0 24px}.section-title{font-size:large;font-weight:600;padding-top:10px;padding-bottom:8px}.center{text-align:center}.fill{min-height:100%!important;max-height:100%!important;height:100%!important}.scroll-auto{overflow:auto;height:100%}.scroll-hidden{overflow:hidden;height:100%}b{font-weight:700}.large{font-size:large!important;line-height:1.2!important}.smaller{font-size:smaller!important;line-height:1.2!important}.small{font-size:small!important;line-height:1.2!important}.small-icon-button{width:1.5rem!important;height:1.5rem!important;padding:0!important;display:inline-flex!important;align-items:center;justify-content:center}.small-icon-button .mat-mdc-button-touch-target{width:1.5rem!important;height:1.5rem!important}.x-small{font-size:x-small!important;line-height:1.2!important}.bold{font-weight:700}.uppercase{text-transform:uppercase!important}.lowercase{text-transform:lowercase!important}.truncated{min-width:0;max-width:100%}@supports (-webkit-line-clamp: 2){.truncated{overflow:hidden;text-overflow:ellipsis;white-space:initial;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}}.truncated span,.truncated div{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@supports (-webkit-line-clamp: 2){.truncated span,.truncated div{overflow:hidden;text-overflow:ellipsis;white-space:initial;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}}.clipped{min-width:0;max-width:100%}.clipped span,.clipped div{white-space:nowrap;overflow:hidden;text-overflow:clip}.accent{color:var(--ars-color-accent, #7894ae)!important}.primary{color:var(--ars-color-primary, #00a293)!important}.secondary{color:var(--ars-color-secondary, #4a635f)!important}.error{color:var(--ars-color-error, #ff5449)!important}.success{color:var(--ars-color-ok, #388E3C)!important}.warning{color:var(--ars-color-warning, #FFC107)!important}.text{color:var(--ars-color-text, #191c1b)!important}.overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:10;background-color:var(--ars-color-overlay, rgba(255, 255, 255, .75))}.drawer-content{padding-top:10px}.drawer .title-container,.drawer .title-container-with-loader,.drawer-small .title-container,.drawer-small .title-container-with-loader{padding-right:5px;padding-bottom:20px;padding-left:0}.drawer .title-container,.drawer-small .title-container{padding-top:20px}.drawer .title-container-with-loader,.drawer-small .title-container-with-loader{padding-top:14px}.drawer .title,.drawer-small .title{font-size:19.2px!important;font-weight:600;padding-left:15px;min-width:150px;width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.drawer .accordion-panel,.drawer-small .accordion-panel{background-color:transparent!important}.drawer .accordion-header,.drawer-small .accordion-header{padding-left:10px;padding-right:10px;border-radius:var(--mat-expansion-container-shape)}.drawer .mat-expansion-panel-body,.drawer-small .mat-expansion-panel-body{padding-left:10px!important;padding-right:10px!important;padding-bottom:20px!important}@media screen and (min-width:0px)and (max-width:430px){.drawer,.drawer-small{border-radius:0!important;min-width:100%!important;max-width:100%!important}}@media screen and (min-width:431px){.drawer{min-width:420px!important;max-width:420px!important}.drawer .title{min-width:200px}.drawer .mat-expansion-panel-body{padding-left:15px!important;padding-right:15px!important;padding-bottom:20px!important}.drawer-small{min-width:360px!important;max-width:360px!important}}.drawer-with-loader{padding-top:0!important}.drawer-transparent{background-color:transparent}.fade-in{animation:fadein .5s linear}@keyframes fadein{0%{opacity:0}to{opacity:1}}.bright{filter:brightness(.7)!important}@media(prefers-color-scheme:dark){.dialog-info-green,.dialog-info-ok{color:var(--ars-color-ok, #4CAF50)}.dialog-info-red,.dialog-info-error{color:var(--mat-form-field-error-text-color, #ff5449)}b,.bold{font-weight:600}.bright{filter:brightness(1.5)!important}}.clipper-logo{background-size:110px 48px;width:110px;height:48px}.clipper-selection-button{width:150px;font-size:small;font-weight:600}.clipper-selection-icon-button{background-color:var(--ars-color-primary, #00a293);color:var(--ars-color-text-low, #e0e2e5)}.clipper-selection-icon-button:hover{background-color:var(--ars-color-primary-hi, #12c0ae)}.unread{color:var(--app-color-unread, #f7931c)!important}.unread-bg{background-color:var(--app-color-unread, #f7931c)!important}.expired{color:var(--app-color-expired, #ff5449)!important}.expired-bg{background-color:var(--app-color-expired, #ff5449)!important}.expiring{color:var(--app-color-expiring, #FFC107)!important}.expiring-bg{background-color:var(--app-color-expiring, #FFC107)!important}.closed{color:var(--app-color-closed, #388E3C)!important}.closed-bg{background-color:var(--app-color-closed, #388E3C)!important}.error-bg{background-color:var(--ars-color-error, #ff5449)!important}.popular-bg{background-color:var(--app-color-closed, #388E3C)!important}.very-popular-bg{background-color:#4caf50}.item-selected{background-color:var(--ars-item-selected-background-color, #ced1d2);border-radius:0!important}.item-unread{font-weight:bolder}.items-group-title{color:var(--ars-color-secondary, #4a635f);font-size:large;font-weight:700;padding-left:25px;padding-bottom:10px;padding-top:10px}.items-group-title .group-spaced{padding:10px 0 0!important}.items-footer{padding:10px}.item{border-radius:12px;padding:10px 10px 10px 0;min-height:68px!important;margin-bottom:2px}.item:hover{background-color:var(--ars-item-hover-background-color, #eaecef)}.item:hover .item-content{-webkit-mask-image:linear-gradient(to right,black 85%,transparent 100%);mask-image:linear-gradient(to right,black 85%,transparent 100%)}@media screen and (min-width:0px)and (max-width:430px){.item:hover{background-color:var(--ars-item-hover-background-color)}.item:hover .item-content{-webkit-mask-image:linear-gradient(to right,black 55%,transparent 100%);mask-image:linear-gradient(to right,black 55%,transparent 100%)}}.item-content .item-info-1,.item-content .info-1{font-size:x-small!important;font-weight:700!important;line-height:18px;text-transform:uppercase!important;color:var(--ars-color-accent, #7894ae)}.item-content .item-info-2,.item-content .info-2{font-size:x-small!important;font-weight:700!important;line-height:18px;text-transform:uppercase!important;color:var(--ars-color-accent-low, #456179)}.item-content .item-info-3,.item-content .info-3{font-size:x-small!important;font-weight:700!important;line-height:18px;text-transform:uppercase!important;color:var(--ars-color-error, #ff5449)}.item-content .item-title,.item-content .title{font-size:small!important;line-height:18px;text-decoration:none!important;font-weight:400;min-height:unset;min-width:unset;white-space:initial!important}@supports (-webkit-line-clamp: 3){.item-content .item-title,.item-content .title{overflow:hidden;text-overflow:ellipsis;white-space:initial;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}}.item-content .details{margin-top:4px;font-size:x-small!important;font-weight:700;line-height:15px;color:var(--ars-color-accent-low, #456179);text-transform:uppercase!important;border-left:4px solid var(--ars-color-accent-low, #456179);padding-left:10px}.item-content .details .links{text-transform:none;text-decoration:none}.item-content .details .links a,.item-content .details .links span,.item-content .details .links div{margin-right:8px;font-weight:500!important;font-size:11px!important;color:var(--ars-color-text, #191c1b)}.item-content .details .links a{cursor:pointer!important;color:var(--ars-color-link, #03A9F4);font-size:11px!important;font-weight:500!important}.item-content a.link{color:var(--ars-color-link, #03A9F4);cursor:pointer!important;text-decoration:none!important}.tile:hover{background-color:var(--ars-item-hover-background-color, #eaecef);border-radius:12px}.tile{cursor:pointer!important;padding:10px 13px!important;margin-bottom:20px!important}.tile .body{padding:4px 6px}.tile .image-mark{border-top:6px solid transparent;margin:0 8px}.tile .image-mark-unread{border-top-color:var(--app-color-unread, #f7931c);margin:0 8px}.tile .tile-image,.tile .image{height:125px;position:relative;background-color:transparent;overflow:hidden;display:flex;justify-content:center;align-items:center;border-radius:8px}.tile .tile-image img,.tile .image img{object-fit:cover;width:100%;height:100%}.tile .tile-image .tile-info-1,.tile .tile-image .info-1,.tile .image .tile-info-1,.tile .image .info-1{position:absolute;left:0;bottom:0;padding:4px 8px;background-color:var(--ars-color-overlay, rgba(255, 255, 255, .75));color:var(--ars-color-text, #191c1b);font-size:small!important;font-weight:700!important;text-transform:uppercase!important}.tile .tile-image .tile-info-2,.tile .tile-image .info-2,.tile .image .tile-info-2,.tile .image .info-2{position:absolute;right:0;top:0;padding:4px 8px;background-color:var(--ars-color-overlay, rgba(255, 255, 255, .75));color:var(--ars-color-accent, #7894ae);font-size:small!important;font-weight:700!important;text-transform:uppercase!important}.tile .tile-image .buttons,.tile .image .buttons{position:absolute;left:0;top:0;height:42px}.tile .tile-image .buttons .check,.tile .tile-image .buttons .read-button,.tile .image .buttons .check,.tile .image .buttons .read-button{background-color:var(--ars-color-primary, #00a293)!important;color:var(--ars-color-text-low, #e0e2e5)!important}.tile .tile-image .buttons .unread-button,.tile .image .buttons .unread-button{background-color:var(--app-color-unread, #f7931c)!important;color:var(--ars-color-text-low, #e0e2e5)!important}.tile .tile-image .buttons .check-selected,.tile .image .buttons .check-selected{background-color:var(--ars-color-primary-hi, #12c0ae)!important}.tile .tile-date,.tile .date{padding:8px 0 6px!important;font-weight:700!important;text-transform:uppercase!important}.tile .tile-date .date-day,.tile .date .date-day{color:var(--ars-color-accent, #7894ae)}.tile .tile-date .date-divider,.tile .date .date-divider{width:1px;margin:0 8px;border-left:1px solid var(--ars-color-divider, #757d87)}.tile .tile-time,.tile .time{font-size:small!important;font-weight:700!important}.tile .tile-title,.tile .title{text-decoration:none!important;font-size:16px!important;font-weight:600;min-height:50px!important;max-height:70px!important;min-width:100%;white-space:initial!important;overflow:hidden!important}@supports (-webkit-line-clamp: 3){.tile .tile-title,.tile .title{overflow:hidden;text-overflow:ellipsis;white-space:initial;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}}.stripe:hover{background-color:var(--ars-item-hover-background-color, #eaecef);border-radius:12px}.stripe{cursor:pointer!important;padding:5px 10px!important;margin-bottom:10px!important}.stripe .body{padding:5px 15px!important}.stripe .image-mark{min-height:100%!important;border-left:6px solid transparent;margin:8px 0}.stripe .image-mark-unread{min-height:100%!important;border-left-color:var(--ars-color-error, #ff5449)!important;margin:8px 0}.stripe .stripe-image,.stripe .image{width:150px!important;height:70px!important;position:relative;background-color:transparent;overflow:hidden;display:flex;justify-content:center;align-items:center;border-radius:8px}.stripe .stripe-image img,.stripe .image img{object-fit:cover;width:100%;height:100%}.stripe .stripe-info-1,.stripe .info-1{margin-top:8px;padding:4px 8px!important;background-color:var(--ars-color-overlay, rgba(255, 255, 255, .75))!important;color:var(--ars-color-text, #191c1b)!important;font-size:small!important;font-weight:700!important;text-transform:uppercase!important}.stripe .stripe-info-2,.stripe .info-2{margin-top:8px;padding:4px 8px!important;background-color:var(--ars-color-overlay, rgba(255, 255, 255, .75))!important;color:var(--ars-color-accent, #7894ae)!important;font-size:small!important;font-weight:700!important;text-transform:uppercase!important}.stripe .buttons{position:absolute;left:0;top:0;height:42px}.stripe .buttons .check,.stripe .buttons .read{background-color:var(--ars-color-primary, #00a293);color:var(--ars-color-text-low, #e0e2e5)}.stripe .buttons .check-selected{background-color:var(--ars-color-primary-hi, #12c0ae)}.stripe .stripe-date,.stripe .date{padding:0!important;font-weight:700!important;text-transform:uppercase!important}.stripe .stripe-date .date-day,.stripe .date .date-day{color:var(--ars-color-accent, #7894ae)}.stripe .stripe-date .date-divider,.stripe .date .date-divider{width:1px;margin:0 8px;border-left:1px solid var(--ars-color-divider, #757d87)}.stripe .stripe-time,.stripe .time{font-size:small!important;font-weight:700!important}.stripe .stripe-title,.stripe .title{text-decoration:none!important;font-size:16px!important;font-weight:600;min-width:100%;white-space:initial!important;overflow:hidden!important}@supports (-webkit-line-clamp: 3){.stripe .stripe-title,.stripe .title{overflow:hidden;text-overflow:ellipsis;white-space:initial;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}}.badge,.badge-red{margin-left:10px;padding:1px 4px;border-radius:3px;font-size:x-small;font-weight:600;text-align:center;background-color:#427505;text-transform:uppercase;white-space:nowrap;color:#e0e2e5}.badge-red{background-color:#a80710}.busy-backdrop{background-color:#0000006b!important}.legend-container{display:flex;flex-direction:row;align-items:center;font-size:x-small;text-transform:uppercase;font-weight:500;margin-left:10px}.legend-container .legend{display:inline-block;height:8px;width:8px;margin-right:4px}.legend-container .legend:not(:first-of-type){margin-left:10px}@media screen and (max-width:431px){.legend-container{font-size:9px!important}}.special-date,.special-date-expired,.special-date-expiring{border:2px var(--ars-color-accent, #7894ae) solid!important;border-radius:100%!important}.special-date-expired{border:2px var(--ars-color-error, #ff5449) solid!important}.special-date-expiring{border:2px var(--ars-color-warning, #FFC107) solid!important}.word-hit-chunk,.word-hit{display:inline-block;font-size:inherit;background-color:var(--ars-word-hit-background-color, #FFEB3B);color:var(--ars-word-hit-color, #191c1b);padding:0 4px;margin:0 4px;border-radius:4px}.word-hit-chunk{background-color:var(--ars-word-chunk-hit-background-color, #8AFF59);color:var(--ars-word-hit-chunk-color, #191c1b)}.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"] }]
3217
+ ClipperDocumentMenuComponent, ClipperSearchFacetsComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-drawer-container [hasBackdrop]=\"filterPaneHasBackdrop()\" class=\"fill\">\n <mat-drawer #filterPane class=\"drawer\">\n <div fxLayout=\"column\" fxFill>\n <div fxFlex=\"78px\" class=\"title-container\">\n <div fxLayout=\"row\" fxLayoutGap=\"10px\" fxLayoutAlign=\"start center\" fxFill>\n <div class=\"title\">Filtro</div>\n <div fxFlex=\"*\" fxLayoutAlign=\"end\">\n <button fxFlexAlign=\"center\" mat-icon-button (click)=\"saveFilter(true)\"\n matTooltip=\"Crea una nuovo filtro con i parametri attuali \"><mat-icon>add</mat-icon></button>\n <button fxFlexAlign=\"center\" mat-icon-button (click)=\"toggleFilterPane()\"\n matTooltip=\"Nascondi\"><mat-icon>left_panel_close</mat-icon></button>\n </div>\n </div>\n </div>\n @if(hasFilters()) {\n <div style=\"padding:10px 20px\">\n <div fxLayout=\"row\" fxLayoutGap=\"10px\" fxFill>\n <div fxFlex=\"*\">\n <button-selector #filterSelector [options]=\"filters()\" label=\"Seleziona un filtro salvato\"\n labelSelected=\"Filtro in uso:\" fxFlexAlign=\"center\" (selected)=\"selectFilter($event)\"\n [matTooltip]=\"filterParams.searchName ?? ''\"></button-selector>\n </div>\n @if(filterParams.searchId) {\n <div fxFlex=\"40px\">\n <button fxFlexAlign=\"center\" mat-icon-button (click)=\"deleteFilter()\"\n matTooltip=\"Elimina il filtro in uso\"><mat-icon>delete</mat-icon></button>\n </div>\n }\n </div>\n </div>\n }\n <div fxFlex=\"*\" class=\"content scroll-hidden\" style=\"padding-bottom: 10px;\">\n <div class=\"scroll-auto\" style=\"padding: 0 10px;\">\n <form [formRoot]=\"filterForm\" (keyup.enter)=\"applyFilter()\" novalidate>\n <mat-accordion multi displayMode=\"flat\">\n <mat-expansion-panel expanded class=\"accordion-panel mat-elevation-z0 \">\n <mat-expansion-panel-header class=\"accordion-header\">\n <mat-panel-title>\n Cerca in..\n </mat-panel-title>\n </mat-expansion-panel-header>\n\n <chips-selector #moduleSelector [formField]=\"filterForm.modules\" [collapseAt]=\"599\" [multiple]=\"true\"\n label=\"Sezioni\" name=\"modules\" [options]=\"filteredModules()\" (changed)=\"modulesChanged()\">\n </chips-selector>\n </mat-expansion-panel>\n\n @if((hasTags() || hasTopics()) && !isCoordination()) {\n <mat-expansion-panel class=\"accordion-panel mat-elevation-z0\">\n <mat-expansion-panel-header class=\"accordion-header\">\n <mat-panel-title>\n Argomenti\n </mat-panel-title>\n </mat-expansion-panel-header>\n @if(hasTags()) {\n <chips-selector [collapseAt]=\"599\" [formField]=\"filterForm.tags\" [multiple]=\"true\"\n label=\"Argomenti\" [options]=\"tags()\"></chips-selector>\n }\n @if(hasTopics()) {\n @if ((filterForm.topics().value()?.length ?? 0) > 0) {\n <mat-chip-grid #topics style=\"padding-bottom: 5px;\">\n @for (o of filterForm.topics().value(); track $index) {\n <mat-chip-row [value]=\"o\" (removed)=\"deleteTopic(o)\">\n {{o.name}}\n <button matChipRemove>\n <mat-icon>cancel</mat-icon>\n </button></mat-chip-row>\n }\n </mat-chip-grid>\n <input style=\"display: none;\" [matChipInputFor]=\"topics\" />\n }\n <div fxLayout=\"row\" fxLayoutAlign=\"end center\">\n <button mat-button type=\"button\" (click)=\"addTopic()\"><mat-icon>add</mat-icon> Aggiungi\n argomento</button>\n @if ((filterForm.topics().value()?.length ?? 0) > 0) {\n <button mat-button type=\"button\" (click)=\"clearTopics()\"><mat-icon>delete</mat-icon> Azzera</button>\n }\n </div>\n }\n </mat-expansion-panel>\n }\n @if(hasSectors()) {\n <mat-expansion-panel class=\"accordion-panel mat-elevation-z0 \">\n <mat-expansion-panel-header class=\"accordion-header\">\n <mat-panel-title>\n Settori\n </mat-panel-title>\n </mat-expansion-panel-header>\n <chips-selector [collapseAt]=\"599\" [formField]=\"filterForm.sectors\" [multiple]=\"true\"\n label=\"Settori\" [options]=\"sectors()\" (changed)=\"sectorsChanged()\" />\n @if(hasRegions())\n {\n <mat-divider style=\"padding-top: 8px; margin-top:8px\"></mat-divider>\n <chips-selector [formField]=\"filterForm.authors\" [multiple]=\"true\" mode=\"collapsed\"\n label=\"Tutte le regioni\" [options]=\"regions()\" />\n }\n </mat-expansion-panel>\n }\n @if(!isCoordination()) {\n <mat-expansion-panel expanded class=\"accordion-panel mat-elevation-z0 \">\n <mat-expansion-panel-header class=\"accordion-header\">\n <mat-panel-title>\n Documento\n </mat-panel-title>\n </mat-expansion-panel-header>\n <div fxLayout=\"column\">\n @if(isLaws()) {\n <div fxLayout=\"row wrap\" fxLayoutAlign=\"space-between center\" fxFill>\n <mat-form-field fxFlex=\"59\" fxFlex.xs=\"49\">\n <mat-label>Numero</mat-label>\n <input matInput [formField]=\"filterForm.number\"\n #filterByNumber=\"matInput\" />\n @if (filterForm.number().value()) {\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\n (click)=\"filterForm.number().value.set('')\">\n <mat-icon>close</mat-icon>\n </button>\n }\n </mat-form-field>\n <mat-form-field fxFlex=\"39\" fxFlex.xs=\"49\">\n <mat-label>Anno</mat-label>\n <input type=\"number\" matInput [formField]=\"filterForm.year\" />\n @if (filterForm.year().value()) {\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\n (click)=\"filterForm.year().value.set(null)\">\n <mat-icon>close</mat-icon>\n </button>\n }\n </mat-form-field>\n </div>\n }\n <mat-form-field>\n <mat-label>Intervallo di pubblicazione</mat-label>\n <mat-date-range-input [rangePicker]=\"picker1\">\n <input matStartDate [formField]=\"filterForm.from\" placeholder=\"Da data\"\n (keydown)=\"onIntervalKeydown($event)\" (keyup)=\"onIntervalKeyup($event, false, false)\">\n <input matEndDate [formField]=\"filterForm.to\" placeholder=\"A data\"\n (keydown)=\"onIntervalKeydown($event)\" (keyup)=\"onIntervalKeyup($event, false, true)\">\n </mat-date-range-input>\n @if (filterForm.from().value() || filterForm.to().value()) {\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\n (click)=\"clearInterval()\">\n <mat-icon>close</mat-icon>\n </button>\n }\n <mat-datepicker-toggle matSuffix [for]=\"picker1\"></mat-datepicker-toggle>\n <mat-date-range-picker #picker1></mat-date-range-picker>\n @if (filterForm.from().invalid() || filterForm.to().invalid()) {\n <mat-error>Intervallo non valido.</mat-error>\n }\n </mat-form-field>\n <mat-form-field>\n <mat-label>Testo</mat-label>\n <input matInput [formField]=\"filterForm.text\"\n #filterByText=\"matInput\" />\n @if (filterForm.text().value()) {\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\n (click)=\"filterForm.text().value.set('')\">\n <mat-icon>close</mat-icon>\n </button>\n }\n <button type=\"button\" tabindex=\"-1\" mat-icon-button matSuffix matTooltip=\"Opzioni\"\n aria-label=\"Opzioni\"\n [matMenuTriggerFor]=\"filterPaneOptionsMenu\"><mat-icon>more_vert</mat-icon></button>\n </mat-form-field>\n <div>\n @if(filterForm.text().value()) {\n <div style=\"padding-bottom:10px\">\n <mat-slide-toggle [formField]=\"filterForm.titleOnly\">Cerca solo nel\n titolo</mat-slide-toggle>\n </div>\n }\n @if(isLaws(false)) {\n <div style=\"padding-bottom:10px\">\n <mat-slide-toggle [formField]=\"filterForm.showNotAbrogatedDocumentsOnly\">Mostra solo elementi non abrogati</mat-slide-toggle>\n </div>\n <div style=\"padding-bottom:10px\">\n <mat-slide-toggle [formField]=\"filterForm.showCommentedDocumentsOnly\">Mostra solo elementi con commenti</mat-slide-toggle>\n </div>\n }\n @if(isReadable()) {\n <div style=\"padding-bottom:10px\">\n <mat-slide-toggle [formField]=\"filterForm.showUnreadDocumentsOnly\">Mostra solo elementi non letti</mat-slide-toggle>\n </div>\n }\n\n </div>\n </div>\n </mat-expansion-panel>\n @if(isLaws(false)) {\n <mat-expansion-panel #sourceExpansionPanel class=\"accordion-panel mat-elevation-z0 \">\n <mat-expansion-panel-header class=\"accordion-header\">\n <mat-panel-title>\n Fonte\n </mat-panel-title>\n </mat-expansion-panel-header>\n <div fxLayout=\"column\">\n <div fxLayout=\"row wrap\" fxLayoutAlign=\"space-between center\" fxFill>\n <mat-form-field fxFlex=\"59\" fxFlex.xs=\"100\">\n <mat-label>Numero</mat-label>\n <input matInput [formField]=\"filterForm.sourceNumber\" />\n @if (filterForm.sourceNumber().value()) {\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\n (click)=\"filterForm.sourceNumber().value.set('')\">\n <mat-icon>close</mat-icon>\n </button>\n }\n </mat-form-field>\n <mat-form-field fxHide.xs fxFlex=\"39\" fxFlex.xs=\"100\">\n <mat-label>Anno</mat-label>\n <input type=\"number\" matInput [formField]=\"filterForm.sourceYear\" />\n @if (filterForm.sourceYear().value()) {\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\n (click)=\"filterForm.sourceYear().value.set(null)\">\n <mat-icon>close</mat-icon>\n </button>\n }\n </mat-form-field>\n </div>\n <mat-form-field>\n <mat-label>Intervallo di pubblicazione</mat-label>\n <mat-date-range-input [rangePicker]=\"picker2\">\n <input matStartDate [formField]=\"filterForm.sourceFrom\" placeholder=\"Da data\"\n (keydown)=\"onIntervalKeydown($event)\" (keyup)=\"onIntervalKeyup($event, true, false)\">\n <input matEndDate [formField]=\"filterForm.sourceTo\" placeholder=\"A data\"\n (keydown)=\"onIntervalKeydown($event)\" (keyup)=\"onIntervalKeyup($event, true, true)\">\n </mat-date-range-input>\n @if (filterForm.sourceFrom().value() || filterForm.sourceTo().value()) {\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\n (click)=\"clearInterval(true)\">\n <mat-icon>close</mat-icon>\n </button>\n }\n <mat-datepicker-toggle matSuffix [for]=\"picker2\"></mat-datepicker-toggle>\n <mat-date-range-picker #picker2></mat-date-range-picker>\n @if (filterForm.sourceFrom().invalid() || filterForm.sourceTo().invalid()) {\n <mat-error>Intervallo non valido.</mat-error>\n }\n </mat-form-field>\n <mat-form-field>\n <mat-label>Tipo</mat-label>\n <mat-select [formField]=\"filterForm.source\">\n @for (s of sources(); track $index) {\n <mat-option [value]=\"s.value\" [matTooltip]=\"s.name\">\n {{s.name}}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n\n </div>\n </mat-expansion-panel>\n <mat-expansion-panel #otherOptionsExpansionPanel class=\"accordion-panel mat-elevation-z0\">\n <mat-expansion-panel-header class=\"accordion-header\">\n <mat-panel-title>\n Altre opzioni\n </mat-panel-title>\n </mat-expansion-panel-header>\n <div fxLayout=\"column\">\n @if(authors().length > 0 && !hasRegions()) {\n <mat-form-field>\n <mat-label>Autore</mat-label>\n <mat-select [formField]=\"filterForm.author\">\n @for (a of authors(); track $index) {\n <mat-option [value]=\"a.value\" [matTooltip]=\"a.name\">\n {{a.name}}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n <mat-form-field>\n <mat-label>Tipo documento</mat-label>\n <mat-select [formField]=\"filterForm.type\">\n @for (t of types(); track $index) {\n <mat-option [value]=\"t.value\" [matTooltip]=\"t.name\">\n {{t.name}}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n\n </mat-expansion-panel>\n }\n } @else {\n <mat-expansion-panel expanded class=\"accordion-panel mat-elevation-z0 \">\n <mat-expansion-panel-header class=\"accordion-header\">\n <mat-panel-title>\n Periodo\n </mat-panel-title>\n </mat-expansion-panel-header>\n <mat-form-field style=\"width:100%\">\n <mat-label>Intervallo di pubblicazione</mat-label>\n <mat-date-range-input [rangePicker]=\"picker1\">\n <input matStartDate [formField]=\"filterForm.from\" placeholder=\"Da data\"\n (keydown)=\"onIntervalKeydown($event)\" (keyup)=\"onIntervalKeyup($event, false, false)\">\n <input matEndDate [formField]=\"filterForm.to\" placeholder=\"A data\"\n (keydown)=\"onIntervalKeydown($event)\" (keyup)=\"onIntervalKeyup($event, false, true)\">\n </mat-date-range-input>\n @if (filterForm.from().value() || filterForm.to().value()) {\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\n (click)=\"clearInterval()\">\n <mat-icon>close</mat-icon>\n </button>\n }\n <mat-datepicker-toggle matSuffix [for]=\"picker1\"></mat-datepicker-toggle>\n <mat-date-range-picker #picker1></mat-date-range-picker>\n @if (filterForm.from().invalid() || filterForm.to().invalid()) {\n <mat-error>Intervallo non valido.</mat-error>\n }\n </mat-form-field>\n @if(isReadable()) {\n <div style=\"padding-bottom:10px\">\n <mat-slide-toggle [formField]=\"filterForm.showUnreadDocumentsOnly\">Mostra solo elementi non letti</mat-slide-toggle>\n </div>\n }\n </mat-expansion-panel>\n <mat-expansion-panel expanded class=\"accordion-panel mat-elevation-z0 \">\n <mat-expansion-panel-header class=\"accordion-header\">\n <mat-panel-title>\n Documento modificato\n </mat-panel-title>\n </mat-expansion-panel-header>\n <div fxLayout=\"column\">\n <div fxLayout=\"row wrap\" fxLayoutAlign=\"space-between center\" fxFill>\n <mat-form-field fxFlex=\"59\" fxFlex.xs=\"100\">\n <mat-label>Numero</mat-label>\n <input matInput [formField]=\"filterForm.changedNumber\"\n #filterByChangeNumber=\"matInput\" />\n @if (filterForm.changedNumber().value()) {\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\n (click)=\"filterForm.changedNumber().value.set('')\">\n <mat-icon>close</mat-icon>\n </button>\n }\n </mat-form-field>\n <mat-form-field fxHide.xs fxFlex=\"39\" fxFlex.xs=\"100\">\n <mat-label>Anno</mat-label>\n <input type=\"number\" matInput [formField]=\"filterForm.changedYear\" />\n @if (filterForm.changedYear().value()) {\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\n (click)=\"filterForm.changedYear().value.set(null)\">\n <mat-icon>close</mat-icon>\n </button>\n }\n </mat-form-field>\n </div>\n <mat-form-field>\n <mat-label>Titolo</mat-label>\n <input matInput [formField]=\"filterForm.changedTitle\" />\n @if (filterForm.changedTitle().value()) {\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\n (click)=\"filterForm.changedTitle().value.set('')\">\n <mat-icon>close</mat-icon>\n </button>\n }\n </mat-form-field>\n </div>\n </mat-expansion-panel>\n <mat-expansion-panel #modifierOptionsExpansionPanel class=\"accordion-panel mat-elevation-z0 \">\n <mat-expansion-panel-header class=\"accordion-header\">\n <mat-panel-title>\n Documento modificante\n </mat-panel-title>\n </mat-expansion-panel-header>\n <div fxLayout=\"column\">\n <div fxLayout=\"row wrap\" fxLayoutAlign=\"space-between center\" fxFill>\n <mat-form-field fxFlex=\"59\" fxFlex.xs=\"100\">\n <mat-label>Numero</mat-label>\n <input matInput [formField]=\"filterForm.modifierNumber\" />\n @if (filterForm.modifierNumber().value()) {\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\n (click)=\"filterForm.modifierNumber().value.set('')\">\n <mat-icon>close</mat-icon>\n </button>\n }\n </mat-form-field>\n <mat-form-field fxHide.xs fxFlex=\"39\" fxFlex.xs=\"100\">\n <mat-label>Anno</mat-label>\n <input type=\"number\" matInput [formField]=\"filterForm.modifierYear\" />\n @if (filterForm.modifierYear().value()) {\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\n (click)=\"filterForm.modifierYear().value.set(null)\">\n <mat-icon>close</mat-icon>\n </button>\n }\n </mat-form-field>\n </div>\n <mat-form-field>\n <mat-label>Titolo</mat-label>\n <input matInput [formField]=\"filterForm.modifierTitle\" />\n @if (filterForm.modifierTitle().value()) {\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\n (click)=\"filterForm.modifierTitle().value.set('')\">\n <mat-icon>close</mat-icon>\n </button>\n }\n </mat-form-field>\n </div>\n </mat-expansion-panel>\n <mat-expansion-panel #otherOptionsExpansionPanel class=\"accordion-panel mat-elevation-z0\">\n <mat-expansion-panel-header class=\"accordion-header\">\n <mat-panel-title>\n Altre opzioni\n </mat-panel-title>\n </mat-expansion-panel-header>\n <div fxLayout=\"column\">\n <mat-form-field>\n <mat-label>Motivo</mat-label>\n <mat-select [formField]=\"filterForm.changeReason\">\n @for (r of reasons(); track $index) {\n <mat-option [value]=\"r.value\" [matTooltip]=\"r.name\">\n {{r.name}}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n </mat-expansion-panel>\n }\n </mat-accordion>\n </form>\n </div>\n </div>\n @if(showChannels()) {\n <div style=\"padding:10px\">\n <div fxLayout=\"column\">\n <mat-expansion-panel class=\"accordion-panel mat-elevation-z0\" style=\"margin-bottom: 10px;\">\n <mat-expansion-panel-header class=\"accordion-header\">\n <mat-panel-title>\n Canali\n </mat-panel-title>\n <mat-panel-description>\n @for (c of clipperService.availableChannels(); track $index) {\n <div class=\"channel-box\" [class.channel-disabled]=\"!c.active || c.disabled\" [matTooltip]=\"c.name\">\n <span class=\"label\">{{c.header}}</span>\n </div>\n }\n </mat-panel-description>\n </mat-expansion-panel-header>\n <chips-selector [collapseAt]=\"599\" [formField]=\"filterForm.channels\" [multiple]=\"true\"\n label=\"Canali\" [options]=\"clipperService.availableChannels()\"\n (changed)=\"channelsChanged()\"></chips-selector>\n\n </mat-expansion-panel>\n <div fxLayout=\"row\" fxLayoutGap=\"10px\" fxFill>\n <div fxFlex=\"*\" fxFlexAlign=\"end\">\n <button mat-stroked-button (click)=\"clearFilter()\">Pulisci</button>\n <button mat-stroked-button (click)=\"saveFilter()\" style=\"margin-left: 10px;\">Salva</button>\n </div>\n <div fxLayoutAlign=\"end\">\n <button fxFlexAlign=\"end\" mat-flat-button (click)=\"applyFilter()\"\n [disabled]=\"!canSearch()\">Applica</button>\n </div>\n </div>\n </div>\n </div>\n }\n </div>\n </mat-drawer>\n <div fxLayout=\"column\" fxLayoutGap=\"10px\" fxFill class=\"drawer-content scroll-hidden\">\n <div class=\"module-toolbar \">\n <div fxLayout=\"row wrap\" fxLayoutAlign=\"space-between\" fxFill>\n <div fxFlex=\"49\" fxFlex.lt-md=\"100\" style=\"padding-left: 10px; padding-bottom: 5px;\">\n @if(!filterPane.opened) {\n <button-toggle cssClass=\"small\" cssClassSmall=\"x-small\" iconOn=\"left_panel_close\" iconOff=\"tune\"\n labelOn=\"Nascondi<br>filtri\" labelOff=\"Mostra<br>filtri\" [value]=\"filterPane.opened\"\n (changed)=\"toggleFilterPane()\"></button-toggle>\n }\n </div>\n <div fxFlex=\"49\" fxFlex.lt-md=\"100\" fxLayoutAlign=\"end\">\n <div fxLayout=\"row\" style=\"height:48px; padding-bottom: 5px;\">\n @if((snapshot?.total ?? 0) > 0) {\n @if(sortOptions().length > 0) {\n <button-selector [options]=\"sortOptions()\" label=\"Ordina per:\" style=\"margin-right: 5px;\" [border]=\"0\"\n fxFlexAlign=\"center\" [formField]=\"sortForm\" (selected)=\"sort($event)\"></button-selector>\n }\n <button fxFlexAlign=\"center\" mat-icon-button matSuffix matTooltip=\"Opzioni sulla selezione\"\n aria-label=\"Opzioni sulla selezione\" [matMenuTriggerFor]=\"selectionOptionsMenu\"\n [matBadge]=\"countSelections()\"><mat-icon>checklist</mat-icon></button>\n <button fxFlexAlign=\"center\" mat-icon-button matTooltip=\"Salva elenco in Excel \"\n (click)=\"exportResults()\"><mat-icon>save_alt</mat-icon></button>\n @if (!filterPane2?.opened && hasFacets()){\n <button fxFlexAlign=\"center\" mat-icon-button matTooltip=\"Affina ricerca\"\n (click)=\"toggleFilterPane2()\"><mat-icon>right_panel_open</mat-icon></button>\n }\n }\n </div>\n </div>\n </div>\n </div>\n <div fxFlex=\"*\" class=\"module-content\">\n <mat-drawer-container [hasBackdrop]=\"filterPane2HasBackdrop()\" class=\"fill\">\n <mat-drawer #filterPane2 class=\"drawer-small drawer-with-loader\" position=\"end\" opened=\"false\">\n @if (filterBusy()) {\n <div class=\"overlay\"></div>\n }\n <div fxLayout=\"column\" fxFill>\n <div fxFlex=\"6px\">\n @if (filterBusy()) {\n <mat-progress-bar style=\"z-index: 11;\" mode=\"indeterminate\">\n </mat-progress-bar>\n }\n </div>\n <div fxFlex=\"78px\" class=\"title-container-with-loader\">\n <div fxLayout=\"row\" fxLayoutAlign=\"start center\" fxFill>\n <div class=\"title\">Affina ricerca</div>\n <div fxFlex=\"*\" fxLayoutAlign=\"end\">\n <button mat-icon-button (click)=\"toggleFilterPane2()\"\n matTooltip=\"Nascondi\"><mat-icon>right_panel_close</mat-icon></button>\n </div>\n </div>\n </div>\n <div fxFlex=\"*\" class=\"content scroll-hidden\" style=\"padding: 0 5px;\">\n <clipper-search-facets #facets></clipper-search-facets>\n\n </div>\n </div>\n </mat-drawer>\n <div fxLayout=\"column\" fxFill>\n <div fxFlex=\"*\" [id]=\"scrollerId\" cdkScrollable class=\"scroll-auto\" style=\"padding: 0 20px;\">\n @if (!snapshot?.total) {\n <div class=\"message-container\">\n @if(snapshot?.total === 0) {\n <p class=\"message\"><b>Nessun elemento da visualizzare.</b></p>\n } @else {\n <div class=\"message\">\n <p fxHide.xs><b>Esegui una ricerca compilando i campi necessari nella maschera di ricarca qui a\n fianco.</b></p>\n <p fxHide.gt-xs><b>Fai click sul bottone <span class=\"accent\"><mat-icon>tune</mat-icon></span> ed esegui\n una\n ricerca compilando i campi necessari.</b></p>\n <p>E' possibile salvare i parametri delle le ricerche pi\u00F9 utilizzate facendo clic su &nbsp;\n <mat-icon\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>.\n </p>\n </div>\n }\n </div>\n } @else {\n @if (snapshot && (snapshot.total ?? 0) > 0) {\n @for (item of snapshot.items; track $index; let i = $index) {\n @if (item.group && isSortedByDate()) {\n <div class=\"items-group-title\">\n <div [class.group-spaced]=\"i > 0\">{{item.group}}</div>\n </div>\n }\n <clipper-search-result-item [item]=\"item\" [parent]=\"this\" [displayModelName]=\"true\" [actions]=\"contextMenu\"\n [isReadable]=\"true\"></clipper-search-result-item>\n }\n }\n }\n </div>\n <!-- footer -->\n @if ((snapshot?.total ?? 0) > 0) {\n <div class=\"items-footer\">\n <div fxLayout=\"row wrap\" fxLayoutGap=\"10px\" fxLayoutAlign=\"space-between center\" fxFill>\n <!-- legend -->\n <div fxFlex.lt-md=\"100\" class=\"legend-container\">\n <div class=\"legend unread-bg\"></div>\n non letto\n <!--<div class=\"legend next very-popular-bg\"></div>\n molto citato\n <div class=\"legend next popular-bg\"></div>\n citato-->\n <div class=\"legend next expired-bg \"></div>\n non pi\u00F9 vigente\n </div>\n <div fxFlex.lt-md=\"100\" fxLayoutAlign=\"end\" [class.wide]=\"filterPane2?.opened\">\n <div fxLayout=\"row\">\n <mat-paginator fxFlexAlign=\"center\" #paginator class=\"paginator\" [hidePageSize]=\"true\"\n [length]=\"snapshot?.total ?? 0\" [pageSize]=\"filterParams.count\" [showFirstLastButtons]=\"true\"\n (page)=\"fetchMore($event)\">\n </mat-paginator>\n </div>\n </div>\n </div>\n </div>\n }\n </div>\n </mat-drawer-container>\n </div>\n </div>\n</mat-drawer-container>\n<mat-menu #filterPaneOptionsMenu=\"matMenu\">\n <button mat-menu-item (click)=\"compose()\">\n <mat-icon>build</mat-icon>Componi\n </button>\n <button mat-menu-item (click)=\"help()\">\n <mat-icon>help</mat-icon>Come usare la ricerca in testo libero\n </button>\n</mat-menu>\n<mat-menu #selectionOptionsMenu=\"matMenu\">\n <button mat-menu-item (click)=\"selectAll()\">\n <mat-icon>select_all</mat-icon>Seleziona tutti\n </button>\n <clipper-document-menu [parent]=\"this\" [useSelections]=\"true\" [isReadable]=\"true\"\n [canUseAIAssistant]=\"hasAIAssistant()\" [canUseRS]=\"showRSOptions()\">\n </clipper-document-menu>\n</mat-menu>\n<mat-menu #contextMenu=\"matMenu\" (closed)=\"updateMenuButtonsVisibility()\">\n <ng-template matMenuContent let-item=\"item\">\n <clipper-document-menu [parent]=\"this\" [item]=\"item\" [isReadable]=\"true\"\n [canUseAIAssistant]=\"hasAIAssistant()\" [canUseRS]=\"showRSOptions()\">\n </clipper-document-menu>\n </ng-template>\n</mat-menu>", styles: [".fill,.wide{min-width:100%!important;max-width:100%!important;width:100%!important}.dialog-info{font-size:x-small;font-weight:700;text-align:right;padding:10px}.dialog-info-green,.dialog-info-ok{color:var(--ars-color-ok, #388E3C)}.dialog-info-red,.dialog-info-error{color:var(--mat-form-field-error-text-color, #a80710)}.dialog-header{padding-bottom:20px}.dialog-toolbar{padding:0 5px 0 24px;height:48px;min-height:48px}.dialog-close{margin-right:5px;margin-top:0}.dialog-menu{margin-left:10px;margin-top:10px}.dialog-title{padding:0 24px}.section-title{font-size:large;font-weight:600;padding-top:10px;padding-bottom:8px}.center{text-align:center}.fill{min-height:100%!important;max-height:100%!important;height:100%!important}.scroll-auto{overflow:auto;height:100%}.scroll-hidden{overflow:hidden;height:100%}b{font-weight:700}.large{font-size:large!important;line-height:1.2!important}.smaller{font-size:smaller!important;line-height:1.2!important}.small{font-size:small!important;line-height:1.2!important}.small-icon-button{width:1.5rem!important;height:1.5rem!important;padding:0!important;display:inline-flex!important;align-items:center;justify-content:center}.small-icon-button .mat-mdc-button-touch-target{width:1.5rem!important;height:1.5rem!important}.x-small{font-size:x-small!important;line-height:1.2!important}.bold{font-weight:700}.uppercase{text-transform:uppercase!important}.lowercase{text-transform:lowercase!important}.truncated{min-width:0;max-width:100%}@supports (-webkit-line-clamp: 2){.truncated{overflow:hidden;text-overflow:ellipsis;white-space:initial;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}}.truncated span,.truncated div{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@supports (-webkit-line-clamp: 2){.truncated span,.truncated div{overflow:hidden;text-overflow:ellipsis;white-space:initial;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}}.clipped{min-width:0;max-width:100%}.clipped span,.clipped div{white-space:nowrap;overflow:hidden;text-overflow:clip}.accent{color:var(--ars-color-accent, #7894ae)!important}.primary{color:var(--ars-color-primary, #00a293)!important}.secondary{color:var(--ars-color-secondary, #4a635f)!important}.error{color:var(--ars-color-error, #ff5449)!important}.success{color:var(--ars-color-ok, #388E3C)!important}.warning{color:var(--ars-color-warning, #FFC107)!important}.text{color:var(--ars-color-text, #191c1b)!important}.overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:10;background-color:var(--ars-color-overlay, rgba(255, 255, 255, .75))}.drawer-content{padding-top:10px}.drawer .title-container,.drawer .title-container-with-loader,.drawer-small .title-container,.drawer-small .title-container-with-loader{padding-right:5px;padding-bottom:20px;padding-left:0}.drawer .title-container,.drawer-small .title-container{padding-top:20px}.drawer .title-container-with-loader,.drawer-small .title-container-with-loader{padding-top:14px}.drawer .title,.drawer-small .title{font-size:19.2px!important;font-weight:600;padding-left:15px;min-width:150px;width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.drawer .accordion-panel,.drawer-small .accordion-panel{background-color:transparent!important}.drawer .accordion-header,.drawer-small .accordion-header{padding-left:10px;padding-right:10px;border-radius:var(--mat-expansion-container-shape)}.drawer .mat-expansion-panel-body,.drawer-small .mat-expansion-panel-body{padding-left:10px!important;padding-right:10px!important;padding-bottom:20px!important}@media screen and (min-width:0px)and (max-width:430px){.drawer,.drawer-small{border-radius:0!important;min-width:100%!important;max-width:100%!important}}@media screen and (min-width:431px){.drawer{min-width:420px!important;max-width:420px!important}.drawer .title{min-width:200px}.drawer .mat-expansion-panel-body{padding-left:15px!important;padding-right:15px!important;padding-bottom:20px!important}.drawer-small{min-width:360px!important;max-width:360px!important}}.drawer-with-loader{padding-top:0!important}.drawer-transparent{background-color:transparent}.fade-in{animation:fadein .5s linear}@keyframes fadein{0%{opacity:0}to{opacity:1}}.bright{filter:brightness(.7)!important}@media(prefers-color-scheme:dark){.dialog-info-green,.dialog-info-ok{color:var(--ars-color-ok, #4CAF50)}.dialog-info-red,.dialog-info-error{color:var(--mat-form-field-error-text-color, #ff5449)}b,.bold{font-weight:600}.bright{filter:brightness(1.5)!important}}.clipper-logo{background-size:110px 48px;width:110px;height:48px}.clipper-selection-button{width:150px;font-size:small;font-weight:600}.clipper-selection-icon-button{background-color:var(--ars-color-primary, #00a293);color:var(--ars-color-text-low, #e0e2e5)}.clipper-selection-icon-button:hover{background-color:var(--ars-color-primary-hi, #12c0ae)}.unread{color:var(--app-color-unread, #f7931c)!important}.unread-bg{background-color:var(--app-color-unread, #f7931c)!important}.expired{color:var(--app-color-expired, #ff5449)!important}.expired-bg{background-color:var(--app-color-expired, #ff5449)!important}.expiring{color:var(--app-color-expiring, #FFC107)!important}.expiring-bg{background-color:var(--app-color-expiring, #FFC107)!important}.closed{color:var(--app-color-closed, #388E3C)!important}.closed-bg{background-color:var(--app-color-closed, #388E3C)!important}.error-bg{background-color:var(--ars-color-error, #ff5449)!important}.popular-bg{background-color:var(--app-color-closed, #388E3C)!important}.very-popular-bg{background-color:#4caf50}.item-selected{background-color:var(--ars-item-selected-background-color, #ced1d2);border-radius:0!important}.item-unread{font-weight:bolder}.items-group-title{color:var(--ars-color-secondary, #4a635f);font-size:large;font-weight:700;padding-left:25px;padding-bottom:10px;padding-top:10px}.items-group-title .group-spaced{padding:10px 0 0!important}.items-footer{padding:10px}.item{border-radius:12px;padding:10px 10px 10px 0;min-height:68px!important;margin-bottom:2px}.item:hover{background-color:var(--ars-item-hover-background-color, #eaecef)}.item:hover .item-content{-webkit-mask-image:linear-gradient(to right,black 85%,transparent 100%);mask-image:linear-gradient(to right,black 85%,transparent 100%)}@media screen and (min-width:0px)and (max-width:430px){.item:hover{background-color:var(--ars-item-hover-background-color)}.item:hover .item-content{-webkit-mask-image:linear-gradient(to right,black 55%,transparent 100%);mask-image:linear-gradient(to right,black 55%,transparent 100%)}}.item-content .item-info-1,.item-content .info-1{font-size:x-small!important;font-weight:700!important;line-height:18px;text-transform:uppercase!important;color:var(--ars-color-accent, #7894ae)}.item-content .item-info-2,.item-content .info-2{font-size:x-small!important;font-weight:700!important;line-height:18px;text-transform:uppercase!important;color:var(--ars-color-accent-low, #456179)}.item-content .item-info-3,.item-content .info-3{font-size:x-small!important;font-weight:700!important;line-height:18px;text-transform:uppercase!important;color:var(--ars-color-error, #ff5449)}.item-content .item-title,.item-content .title{font-size:small!important;line-height:18px;text-decoration:none!important;font-weight:400;min-height:unset;min-width:unset;white-space:initial!important}@supports (-webkit-line-clamp: 3){.item-content .item-title,.item-content .title{overflow:hidden;text-overflow:ellipsis;white-space:initial;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}}.item-content .details{margin-top:4px;font-size:x-small!important;font-weight:700;line-height:15px;color:var(--ars-color-accent-low, #456179);text-transform:uppercase!important;border-left:4px solid var(--ars-color-accent-low, #456179);padding-left:10px}.item-content .details .links{text-transform:none;text-decoration:none}.item-content .details .links a,.item-content .details .links span,.item-content .details .links div{margin-right:8px;font-weight:500!important;font-size:11px!important;color:var(--ars-color-text, #191c1b)}.item-content .details .links a{cursor:pointer!important;color:var(--ars-color-link, #03A9F4);font-size:11px!important;font-weight:500!important}.item-content a.link{color:var(--ars-color-link, #03A9F4);cursor:pointer!important;text-decoration:none!important}.tile:hover{background-color:var(--ars-item-hover-background-color, #eaecef);border-radius:12px}.tile{cursor:pointer!important;padding:10px 13px!important;margin-bottom:20px!important}.tile .body{padding:4px 6px}.tile .image-mark{border-top:6px solid transparent;margin:0 8px}.tile .image-mark-unread{border-top-color:var(--app-color-unread, #f7931c);margin:0 8px}.tile .tile-image,.tile .image{height:125px;position:relative;background-color:transparent;overflow:hidden;display:flex;justify-content:center;align-items:center;border-radius:8px}.tile .tile-image img,.tile .image img{object-fit:cover;width:100%;height:100%}.tile .tile-image .tile-info-1,.tile .tile-image .info-1,.tile .image .tile-info-1,.tile .image .info-1{position:absolute;left:0;bottom:0;padding:4px 8px;background-color:var(--ars-color-overlay, rgba(255, 255, 255, .75));color:var(--ars-color-text, #191c1b);font-size:small!important;font-weight:700!important;text-transform:uppercase!important}.tile .tile-image .tile-info-2,.tile .tile-image .info-2,.tile .image .tile-info-2,.tile .image .info-2{position:absolute;right:0;top:0;padding:4px 8px;background-color:var(--ars-color-overlay, rgba(255, 255, 255, .75));color:var(--ars-color-accent, #7894ae);font-size:small!important;font-weight:700!important;text-transform:uppercase!important}.tile .tile-image .buttons,.tile .image .buttons{position:absolute;left:0;top:0;height:42px}.tile .tile-image .buttons .check,.tile .tile-image .buttons .read-button,.tile .image .buttons .check,.tile .image .buttons .read-button{background-color:var(--ars-color-primary, #00a293)!important;color:var(--ars-color-text-low, #e0e2e5)!important}.tile .tile-image .buttons .unread-button,.tile .image .buttons .unread-button{background-color:var(--app-color-unread, #f7931c)!important;color:var(--ars-color-text-low, #e0e2e5)!important}.tile .tile-image .buttons .check-selected,.tile .image .buttons .check-selected{background-color:var(--ars-color-primary-hi, #12c0ae)!important}.tile .tile-date,.tile .date{padding:8px 0 6px!important;font-weight:700!important;text-transform:uppercase!important}.tile .tile-date .date-day,.tile .date .date-day{color:var(--ars-color-accent, #7894ae)}.tile .tile-date .date-divider,.tile .date .date-divider{width:1px;margin:0 8px;border-left:1px solid var(--ars-color-divider, #757d87)}.tile .tile-time,.tile .time{font-size:small!important;font-weight:700!important}.tile .tile-title,.tile .title{text-decoration:none!important;font-size:16px!important;font-weight:600;min-height:50px!important;max-height:70px!important;min-width:100%;white-space:initial!important;overflow:hidden!important}@supports (-webkit-line-clamp: 3){.tile .tile-title,.tile .title{overflow:hidden;text-overflow:ellipsis;white-space:initial;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}}.stripe:hover{background-color:var(--ars-item-hover-background-color, #eaecef);border-radius:12px}.stripe{cursor:pointer!important;padding:5px 10px!important;margin-bottom:10px!important}.stripe .body{padding:5px 15px!important}.stripe .image-mark{min-height:100%!important;border-left:6px solid transparent;margin:8px 0}.stripe .image-mark-unread{min-height:100%!important;border-left-color:var(--ars-color-error, #ff5449)!important;margin:8px 0}.stripe .stripe-image,.stripe .image{width:150px!important;height:70px!important;position:relative;background-color:transparent;overflow:hidden;display:flex;justify-content:center;align-items:center;border-radius:8px}.stripe .stripe-image img,.stripe .image img{object-fit:cover;width:100%;height:100%}.stripe .stripe-info-1,.stripe .info-1{margin-top:8px;padding:4px 8px!important;background-color:var(--ars-color-overlay, rgba(255, 255, 255, .75))!important;color:var(--ars-color-text, #191c1b)!important;font-size:small!important;font-weight:700!important;text-transform:uppercase!important}.stripe .stripe-info-2,.stripe .info-2{margin-top:8px;padding:4px 8px!important;background-color:var(--ars-color-overlay, rgba(255, 255, 255, .75))!important;color:var(--ars-color-accent, #7894ae)!important;font-size:small!important;font-weight:700!important;text-transform:uppercase!important}.stripe .buttons{position:absolute;left:0;top:0;height:42px}.stripe .buttons .check,.stripe .buttons .read{background-color:var(--ars-color-primary, #00a293);color:var(--ars-color-text-low, #e0e2e5)}.stripe .buttons .check-selected{background-color:var(--ars-color-primary-hi, #12c0ae)}.stripe .stripe-date,.stripe .date{padding:0!important;font-weight:700!important;text-transform:uppercase!important}.stripe .stripe-date .date-day,.stripe .date .date-day{color:var(--ars-color-accent, #7894ae)}.stripe .stripe-date .date-divider,.stripe .date .date-divider{width:1px;margin:0 8px;border-left:1px solid var(--ars-color-divider, #757d87)}.stripe .stripe-time,.stripe .time{font-size:small!important;font-weight:700!important}.stripe .stripe-title,.stripe .title{text-decoration:none!important;font-size:16px!important;font-weight:600;min-width:100%;white-space:initial!important;overflow:hidden!important}@supports (-webkit-line-clamp: 3){.stripe .stripe-title,.stripe .title{overflow:hidden;text-overflow:ellipsis;white-space:initial;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}}.badge,.badge-red{margin-left:10px;padding:1px 4px;border-radius:3px;font-size:x-small;font-weight:600;text-align:center;background-color:#427505;text-transform:uppercase;white-space:nowrap;color:#e0e2e5}.badge-red{background-color:#a80710}.busy-backdrop{background-color:#0000006b!important}.legend-container{display:flex;flex-direction:row;align-items:center;font-size:x-small;text-transform:uppercase;font-weight:500;margin-left:10px}.legend-container .legend{display:inline-block;height:8px;width:8px;margin-right:4px}.legend-container .legend:not(:first-of-type){margin-left:10px}@media screen and (max-width:431px){.legend-container{font-size:9px!important}}.special-date,.special-date-expired,.special-date-expiring{border:2px var(--ars-color-accent, #7894ae) solid!important;border-radius:100%!important}.special-date-expired{border:2px var(--ars-color-error, #ff5449) solid!important}.special-date-expiring{border:2px var(--ars-color-warning, #FFC107) solid!important}.word-hit-chunk,.word-hit{display:inline-block;font-size:inherit;background-color:var(--ars-word-hit-background-color, #FFEB3B);color:var(--ars-word-hit-color, #191c1b);padding:0 4px;margin:0 4px;border-radius:4px}.word-hit-chunk{background-color:var(--ars-word-chunk-hit-background-color, #8AFF59);color:var(--ars-word-hit-chunk-color, #191c1b)}.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"] }]
3218
3218
  }], ctorParameters: () => [], 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 }] }] } });
3219
3219
 
3220
3220
  class ClipperBrowserDialogComponent {
@@ -4726,12 +4726,12 @@ class ClipperSearchFreeTextQueryBuilderComponent {
4726
4726
  this.done.emit({ query: query.trim() });
4727
4727
  }
4728
4728
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: ClipperSearchFreeTextQueryBuilderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
4729
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.3", type: ClipperSearchFreeTextQueryBuilderComponent, isStandalone: true, selector: "ng-component", outputs: { done: "done" }, host: { attributes: { "Bind": SystemUtils.generateUUID() } }, ngImport: i0, template: "<div mat-dialog-title>Trova gli elementi che contengono...</div>\n<mat-dialog-content>\n <form (keyup.enter)=\"!form().invalid() ? ok() : undefined\" novalidate>\n <div fxLayout=\"column\" style=\"padding-bottom: 20px;\">\n <mat-form-field>\n <mat-label>Questa esatta parola o frase</mat-label>\n <input matInput [formField]=\"form.queryPhrase\" />\n @if (form.queryPhrase().value()) {\n <a matSuffix mat-icon-button aria-label=\"Azzera\" (click)=\"form.queryPhrase().value.set('')\">\n <mat-icon>close</mat-icon>\n </a>\n }\n </mat-form-field>\n <mat-form-field>\n <mat-label>Tutte queste parole</mat-label>\n <input matInput [formField]=\"form.queryAnd\" />\n @if (form.queryAnd().value()) {\n <a matSuffix mat-icon-button aria-label=\"Azzera\" (click)=\"form.queryAnd().value.set('')\">\n <mat-icon>close</mat-icon>\n </a>\n }\n <mat-hint>Separate da virgola</mat-hint>\n </mat-form-field>\n <mat-form-field>\n <mat-label>Una qualunque di queste parole</mat-label>\n <input matInput [formField]=\"form.queryOr\" />\n @if (form.queryOr().value()) {\n <a matSuffix mat-icon-button aria-label=\"Azzera\" (click)=\"form.queryOr().value.set('')\">\n <mat-icon>close</mat-icon>\n </a>\n }\n <mat-hint>Separate da virgola</mat-hint>\n </mat-form-field>\n <!--\n <mat-form-field>\n <mat-label>Parole che iniziano con</mat-label>\n <input matInput [formField]=\"form.queryStart\" />\n @if (form.queryStart().value()) {\n <a matSuffix mat-icon-button aria-label=\"Azzera\" (click)=\"form.queryStart().value.set('')\">\n <mat-icon>close</mat-icon>\n </a>\n }\n <mat-hint>Separate da virgola</mat-hint>\n </mat-form-field>\n -->\n <mat-form-field>\n <mat-label>Nessuna qualunque di queste parole</mat-label>\n <input matInput [formField]=\"form.queryNot\" />\n @if (form.queryNot().value()) {\n <a matSuffix mat-icon-button aria-label=\"Azzera\" (click)=\"form.queryNot().value.set('')\">\n <mat-icon>close</mat-icon>\n </a>\n }\n <mat-hint>Separate da virgola. L'operatore di esclusione funziona solo se prima \u00E8 stato inserito un valore in\n almeno uno degli altri quattro campi. </mat-hint>\n </mat-form-field>\n </div>\n </form>\n</mat-dialog-content>\n<mat-dialog-actions>\n <div fxLayout=\"row\" fxLayoutGap=\"10px\" fxFill>\n <div fxFlex=\"30\" fxLayoutAlign=\"start\">\n <button type=\"button\" mat-stroked-button (click)=\"clear()\">Pulisci</button>\n </div>\n <div fxFlex=\"70\" fxLayoutAlign=\"end\">\n <button mat-flat-button (click)=\"ok()\">Ok</button>\n <button mat-stroked-button [mat-dialog-close]=\"true\">Annulla</button>\n </div>\n </div>\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: "directive", type: FormField, selector: "[formField]", inputs: ["formField"], exportAs: ["formField"] }, { kind: "ngmodule", type: FlexLayoutModule }, { kind: "directive", type: i1.FxLayoutDirective, 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.FxFlexDirective, 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: i1.FxLayoutAlignDirective, 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.FxLayoutGapDirective, 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.FxFlexFillDirective, selector: " [fxFlexFill], [fxFill], [fxFlexFill.xs], [fxFlexFill.sm], [fxFlexFill.md], [fxFlexFill.lg], [fxFlexFill.xl], [fxFlexFill.lt-sm], [fxFlexFill.lt-md], [fxFlexFill.lt-lg], [fxFlexFill.lt-xl], [fxFlexFill.gt-xs], [fxFlexFill.gt-sm], [fxFlexFill.gt-md], [fxFlexFill.gt-lg] ", inputs: ["fxFlexFill", "fxFill", "fxFlexFill.xs", "fxFlexFill.sm", "fxFlexFill.md", "fxFlexFill.lg", "fxFlexFill.xl", "fxFlexFill.lt-sm", "fxFlexFill.lt-md", "fxFlexFill.lt-lg", "fxFlexFill.lt-xl", "fxFlexFill.gt-xs", "fxFlexFill.gt-sm", "fxFlexFill.gt-md", "fxFlexFill.gt-lg"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i10.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i10.MatLabel, selector: "mat-label" }, { kind: "directive", type: i10.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i10.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i11.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.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.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 }); }
4729
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.3", type: ClipperSearchFreeTextQueryBuilderComponent, isStandalone: true, selector: "ng-component", outputs: { done: "done" }, host: { attributes: { "Bind": SystemUtils.generateUUID() } }, ngImport: i0, template: "<div mat-dialog-title>Trova gli elementi che contengono...</div>\n<mat-dialog-content>\n <form [formRoot]=\"form\" (keyup.enter)=\"!form().invalid() ? ok() : undefined\" novalidate>\n <div fxLayout=\"column\" style=\"padding-bottom: 20px;\">\n <mat-form-field>\n <mat-label>Questa esatta parola o frase</mat-label>\n <input matInput [formField]=\"form.queryPhrase\" />\n @if (form.queryPhrase().value()) {\n <a matSuffix mat-icon-button aria-label=\"Azzera\" (click)=\"form.queryPhrase().value.set('')\">\n <mat-icon>close</mat-icon>\n </a>\n }\n </mat-form-field>\n <mat-form-field>\n <mat-label>Tutte queste parole</mat-label>\n <input matInput [formField]=\"form.queryAnd\" />\n @if (form.queryAnd().value()) {\n <a matSuffix mat-icon-button aria-label=\"Azzera\" (click)=\"form.queryAnd().value.set('')\">\n <mat-icon>close</mat-icon>\n </a>\n }\n <mat-hint>Separate da virgola</mat-hint>\n </mat-form-field>\n <mat-form-field>\n <mat-label>Una qualunque di queste parole</mat-label>\n <input matInput [formField]=\"form.queryOr\" />\n @if (form.queryOr().value()) {\n <a matSuffix mat-icon-button aria-label=\"Azzera\" (click)=\"form.queryOr().value.set('')\">\n <mat-icon>close</mat-icon>\n </a>\n }\n <mat-hint>Separate da virgola</mat-hint>\n </mat-form-field>\n <!--\n <mat-form-field>\n <mat-label>Parole che iniziano con</mat-label>\n <input matInput [formField]=\"form.queryStart\" />\n @if (form.queryStart().value()) {\n <a matSuffix mat-icon-button aria-label=\"Azzera\" (click)=\"form.queryStart().value.set('')\">\n <mat-icon>close</mat-icon>\n </a>\n }\n <mat-hint>Separate da virgola</mat-hint>\n </mat-form-field>\n -->\n <mat-form-field>\n <mat-label>Nessuna qualunque di queste parole</mat-label>\n <input matInput [formField]=\"form.queryNot\" />\n @if (form.queryNot().value()) {\n <a matSuffix mat-icon-button aria-label=\"Azzera\" (click)=\"form.queryNot().value.set('')\">\n <mat-icon>close</mat-icon>\n </a>\n }\n <mat-hint>Separate da virgola. L'operatore di esclusione funziona solo se prima \u00E8 stato inserito un valore in\n almeno uno degli altri quattro campi. </mat-hint>\n </mat-form-field>\n </div>\n </form>\n</mat-dialog-content>\n<mat-dialog-actions>\n <div fxLayout=\"row\" fxLayoutGap=\"10px\" fxFill>\n <div fxFlex=\"30\" fxLayoutAlign=\"start\">\n <button type=\"button\" mat-stroked-button (click)=\"clear()\">Pulisci</button>\n </div>\n <div fxFlex=\"70\" fxLayoutAlign=\"end\">\n <button mat-flat-button (click)=\"ok()\">Ok</button>\n <button mat-stroked-button [mat-dialog-close]=\"true\">Annulla</button>\n </div>\n </div>\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: "directive", type: FormField, selector: "[formField]", inputs: ["formField"], exportAs: ["formField"] }, { kind: "directive", type: FormRoot, selector: "form[formRoot]", inputs: ["formRoot"] }, { kind: "ngmodule", type: FlexLayoutModule }, { kind: "directive", type: i1.FxLayoutDirective, 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.FxFlexDirective, 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: i1.FxLayoutAlignDirective, 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.FxLayoutGapDirective, 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.FxFlexFillDirective, selector: " [fxFlexFill], [fxFill], [fxFlexFill.xs], [fxFlexFill.sm], [fxFlexFill.md], [fxFlexFill.lg], [fxFlexFill.xl], [fxFlexFill.lt-sm], [fxFlexFill.lt-md], [fxFlexFill.lt-lg], [fxFlexFill.lt-xl], [fxFlexFill.gt-xs], [fxFlexFill.gt-sm], [fxFlexFill.gt-md], [fxFlexFill.gt-lg] ", inputs: ["fxFlexFill", "fxFill", "fxFlexFill.xs", "fxFlexFill.sm", "fxFlexFill.md", "fxFlexFill.lg", "fxFlexFill.xl", "fxFlexFill.lt-sm", "fxFlexFill.lt-md", "fxFlexFill.lt-lg", "fxFlexFill.lt-xl", "fxFlexFill.gt-xs", "fxFlexFill.gt-sm", "fxFlexFill.gt-md", "fxFlexFill.gt-lg"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i10.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i10.MatLabel, selector: "mat-label" }, { kind: "directive", type: i10.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i10.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i11.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.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.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 }); }
4730
4730
  }
4731
4731
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: ClipperSearchFreeTextQueryBuilderComponent, decorators: [{
4732
4732
  type: Component,
4733
- args: [{ host: { 'Bind': SystemUtils.generateUUID() }, standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [MatDialogTitle, MatDialogContent, FormField, FlexLayoutModule, MatFormFieldModule, MatInputModule,
4734
- MatButtonModule, MatIconModule, MatDialogActions, MatDialogClose], template: "<div mat-dialog-title>Trova gli elementi che contengono...</div>\n<mat-dialog-content>\n <form (keyup.enter)=\"!form().invalid() ? ok() : undefined\" novalidate>\n <div fxLayout=\"column\" style=\"padding-bottom: 20px;\">\n <mat-form-field>\n <mat-label>Questa esatta parola o frase</mat-label>\n <input matInput [formField]=\"form.queryPhrase\" />\n @if (form.queryPhrase().value()) {\n <a matSuffix mat-icon-button aria-label=\"Azzera\" (click)=\"form.queryPhrase().value.set('')\">\n <mat-icon>close</mat-icon>\n </a>\n }\n </mat-form-field>\n <mat-form-field>\n <mat-label>Tutte queste parole</mat-label>\n <input matInput [formField]=\"form.queryAnd\" />\n @if (form.queryAnd().value()) {\n <a matSuffix mat-icon-button aria-label=\"Azzera\" (click)=\"form.queryAnd().value.set('')\">\n <mat-icon>close</mat-icon>\n </a>\n }\n <mat-hint>Separate da virgola</mat-hint>\n </mat-form-field>\n <mat-form-field>\n <mat-label>Una qualunque di queste parole</mat-label>\n <input matInput [formField]=\"form.queryOr\" />\n @if (form.queryOr().value()) {\n <a matSuffix mat-icon-button aria-label=\"Azzera\" (click)=\"form.queryOr().value.set('')\">\n <mat-icon>close</mat-icon>\n </a>\n }\n <mat-hint>Separate da virgola</mat-hint>\n </mat-form-field>\n <!--\n <mat-form-field>\n <mat-label>Parole che iniziano con</mat-label>\n <input matInput [formField]=\"form.queryStart\" />\n @if (form.queryStart().value()) {\n <a matSuffix mat-icon-button aria-label=\"Azzera\" (click)=\"form.queryStart().value.set('')\">\n <mat-icon>close</mat-icon>\n </a>\n }\n <mat-hint>Separate da virgola</mat-hint>\n </mat-form-field>\n -->\n <mat-form-field>\n <mat-label>Nessuna qualunque di queste parole</mat-label>\n <input matInput [formField]=\"form.queryNot\" />\n @if (form.queryNot().value()) {\n <a matSuffix mat-icon-button aria-label=\"Azzera\" (click)=\"form.queryNot().value.set('')\">\n <mat-icon>close</mat-icon>\n </a>\n }\n <mat-hint>Separate da virgola. L'operatore di esclusione funziona solo se prima \u00E8 stato inserito un valore in\n almeno uno degli altri quattro campi. </mat-hint>\n </mat-form-field>\n </div>\n </form>\n</mat-dialog-content>\n<mat-dialog-actions>\n <div fxLayout=\"row\" fxLayoutGap=\"10px\" fxFill>\n <div fxFlex=\"30\" fxLayoutAlign=\"start\">\n <button type=\"button\" mat-stroked-button (click)=\"clear()\">Pulisci</button>\n </div>\n <div fxFlex=\"70\" fxLayoutAlign=\"end\">\n <button mat-flat-button (click)=\"ok()\">Ok</button>\n <button mat-stroked-button [mat-dialog-close]=\"true\">Annulla</button>\n </div>\n </div>\n</mat-dialog-actions>" }]
4733
+ args: [{ host: { 'Bind': SystemUtils.generateUUID() }, standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [MatDialogTitle, MatDialogContent, FormField, FormRoot, FlexLayoutModule, MatFormFieldModule, MatInputModule,
4734
+ MatButtonModule, MatIconModule, MatDialogActions, MatDialogClose], template: "<div mat-dialog-title>Trova gli elementi che contengono...</div>\n<mat-dialog-content>\n <form [formRoot]=\"form\" (keyup.enter)=\"!form().invalid() ? ok() : undefined\" novalidate>\n <div fxLayout=\"column\" style=\"padding-bottom: 20px;\">\n <mat-form-field>\n <mat-label>Questa esatta parola o frase</mat-label>\n <input matInput [formField]=\"form.queryPhrase\" />\n @if (form.queryPhrase().value()) {\n <a matSuffix mat-icon-button aria-label=\"Azzera\" (click)=\"form.queryPhrase().value.set('')\">\n <mat-icon>close</mat-icon>\n </a>\n }\n </mat-form-field>\n <mat-form-field>\n <mat-label>Tutte queste parole</mat-label>\n <input matInput [formField]=\"form.queryAnd\" />\n @if (form.queryAnd().value()) {\n <a matSuffix mat-icon-button aria-label=\"Azzera\" (click)=\"form.queryAnd().value.set('')\">\n <mat-icon>close</mat-icon>\n </a>\n }\n <mat-hint>Separate da virgola</mat-hint>\n </mat-form-field>\n <mat-form-field>\n <mat-label>Una qualunque di queste parole</mat-label>\n <input matInput [formField]=\"form.queryOr\" />\n @if (form.queryOr().value()) {\n <a matSuffix mat-icon-button aria-label=\"Azzera\" (click)=\"form.queryOr().value.set('')\">\n <mat-icon>close</mat-icon>\n </a>\n }\n <mat-hint>Separate da virgola</mat-hint>\n </mat-form-field>\n <!--\n <mat-form-field>\n <mat-label>Parole che iniziano con</mat-label>\n <input matInput [formField]=\"form.queryStart\" />\n @if (form.queryStart().value()) {\n <a matSuffix mat-icon-button aria-label=\"Azzera\" (click)=\"form.queryStart().value.set('')\">\n <mat-icon>close</mat-icon>\n </a>\n }\n <mat-hint>Separate da virgola</mat-hint>\n </mat-form-field>\n -->\n <mat-form-field>\n <mat-label>Nessuna qualunque di queste parole</mat-label>\n <input matInput [formField]=\"form.queryNot\" />\n @if (form.queryNot().value()) {\n <a matSuffix mat-icon-button aria-label=\"Azzera\" (click)=\"form.queryNot().value.set('')\">\n <mat-icon>close</mat-icon>\n </a>\n }\n <mat-hint>Separate da virgola. L'operatore di esclusione funziona solo se prima \u00E8 stato inserito un valore in\n almeno uno degli altri quattro campi. </mat-hint>\n </mat-form-field>\n </div>\n </form>\n</mat-dialog-content>\n<mat-dialog-actions>\n <div fxLayout=\"row\" fxLayoutGap=\"10px\" fxFill>\n <div fxFlex=\"30\" fxLayoutAlign=\"start\">\n <button type=\"button\" mat-stroked-button (click)=\"clear()\">Pulisci</button>\n </div>\n <div fxFlex=\"70\" fxLayoutAlign=\"end\">\n <button mat-flat-button (click)=\"ok()\">Ok</button>\n <button mat-stroked-button [mat-dialog-close]=\"true\">Annulla</button>\n </div>\n </div>\n</mat-dialog-actions>" }]
4735
4735
  }], propDecorators: { done: [{ type: i0.Output, args: ["done"] }] } });
4736
4736
 
4737
4737
  var searchFreeTextQueryBuilder_component = /*#__PURE__*/Object.freeze({