@arsedizioni/ars-utils 18.2.1 → 18.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/ui.application/ui/dialogs/select/select-dialog.component.mjs +14 -5
- package/fesm2022/arsedizioni-ars-utils-ui.application.mjs +13 -4
- package/fesm2022/arsedizioni-ars-utils-ui.application.mjs.map +1 -1
- package/package.json +12 -12
- package/ui.application/ui/components/file-input/file-input.component.d.ts +1 -1
- package/ui.application/ui/components/filter-bar/filter-bar.component.d.ts +1 -1
- package/ui.application/ui/dialogs/select/select-dialog.component.d.ts +1 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { inject, Renderer2, ElementRef, Directive, Input, EventEmitter, Component, ChangeDetectionStrategy, Output, Injectable, signal, ViewChild, NgModule, input, Optional, Self, HostBinding,
|
|
2
|
+
import { inject, Renderer2, ElementRef, Directive, Input, EventEmitter, Component, ChangeDetectionStrategy, Output, Injectable, signal, ViewChild, ChangeDetectorRef, NgModule, input, Optional, Self, HostBinding, computed } from '@angular/core';
|
|
3
3
|
import * as i14 from '@angular/material/paginator';
|
|
4
4
|
import { MatPaginatorModule, MatPaginatorIntl } from '@angular/material/paginator';
|
|
5
5
|
import { DialogService, PaginatorIntl, UIService } from '@arsedizioni/ars-utils/ui';
|
|
@@ -660,6 +660,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImpor
|
|
|
660
660
|
|
|
661
661
|
class SelectDialogComponent {
|
|
662
662
|
constructor() {
|
|
663
|
+
this.changeDetector = inject(ChangeDetectorRef);
|
|
663
664
|
this.dialogRef = inject((MatDialogRef));
|
|
664
665
|
this.dialogData = inject(MAT_DIALOG_DATA) ?? { appearance: 'outline', title: 'Seleziona' };
|
|
665
666
|
this.done = new EventEmitter();
|
|
@@ -785,6 +786,7 @@ class SelectDialogComponent {
|
|
|
785
786
|
this.selectionMasterIndeterminate.set(!this.isAllSelected() && this.hasSelection());
|
|
786
787
|
this.selectionMasterChecked.set(this.hasSelection());
|
|
787
788
|
this.updateSelectionInfo();
|
|
789
|
+
this.changeDetector.markForCheck();
|
|
788
790
|
}
|
|
789
791
|
/**
|
|
790
792
|
* Update selection info
|
|
@@ -814,7 +816,7 @@ class SelectDialogComponent {
|
|
|
814
816
|
* Submit selection
|
|
815
817
|
*/
|
|
816
818
|
ok() {
|
|
817
|
-
if (!this.okDisabled) {
|
|
819
|
+
if (!this.okDisabled()) {
|
|
818
820
|
// Multi selection
|
|
819
821
|
const selectedItems = [];
|
|
820
822
|
this.selection.selectedOptions.selected.forEach((element) => {
|
|
@@ -838,6 +840,7 @@ class SelectDialogComponent {
|
|
|
838
840
|
showFilterOptions() {
|
|
839
841
|
if (this.lookupOptions) {
|
|
840
842
|
this.lookupOptions.emit();
|
|
843
|
+
this.changeDetector.markForCheck();
|
|
841
844
|
}
|
|
842
845
|
}
|
|
843
846
|
/**
|
|
@@ -851,6 +854,7 @@ class SelectDialogComponent {
|
|
|
851
854
|
if (this.dialogData.canLookup) {
|
|
852
855
|
if (!e || e.keyCode === 13) {
|
|
853
856
|
this.lookup.emit({ items: this.dialogData.items, filter: this.filterText });
|
|
857
|
+
this.changeDetector.markForCheck();
|
|
854
858
|
}
|
|
855
859
|
}
|
|
856
860
|
}
|
|
@@ -877,6 +881,7 @@ class SelectDialogComponent {
|
|
|
877
881
|
this.lookupParams = params;
|
|
878
882
|
this.lookupParams.first = 0;
|
|
879
883
|
this.lookup.emit({ items: this.dialogData.items, params: this.lookupParams, owner: this });
|
|
884
|
+
this.changeDetector.markForCheck();
|
|
880
885
|
}
|
|
881
886
|
}
|
|
882
887
|
/**
|
|
@@ -900,6 +905,7 @@ class SelectDialogComponent {
|
|
|
900
905
|
this.clearSelection();
|
|
901
906
|
this.lookupParams.first = e.pageIndex * (this.dialogData.pageSize ?? 0);
|
|
902
907
|
this.lookup.emit({ items: this.dialogData.items, params: this.lookupParams, owner: this });
|
|
908
|
+
this.changeDetector.markForCheck();
|
|
903
909
|
}
|
|
904
910
|
}
|
|
905
911
|
/**
|
|
@@ -907,6 +913,7 @@ class SelectDialogComponent {
|
|
|
907
913
|
*/
|
|
908
914
|
doAppend() {
|
|
909
915
|
this.append.emit({ items: this.dialogData.items });
|
|
916
|
+
this.changeDetector.markForCheck();
|
|
910
917
|
}
|
|
911
918
|
/**
|
|
912
919
|
* Edit
|
|
@@ -914,6 +921,7 @@ class SelectDialogComponent {
|
|
|
914
921
|
doEdit() {
|
|
915
922
|
if (this.selection.selectedOptions.selected) {
|
|
916
923
|
this.edit.emit(this.selection.selectedOptions.selected[0].value);
|
|
924
|
+
this.changeDetector.markForCheck();
|
|
917
925
|
}
|
|
918
926
|
}
|
|
919
927
|
/**
|
|
@@ -922,6 +930,7 @@ class SelectDialogComponent {
|
|
|
922
930
|
doView() {
|
|
923
931
|
if (this.selection.selectedOptions.selected) {
|
|
924
932
|
this.view.emit(this.selection.selectedOptions.selected[0].value);
|
|
933
|
+
this.changeDetector.markForCheck();
|
|
925
934
|
}
|
|
926
935
|
}
|
|
927
936
|
/**
|
|
@@ -939,7 +948,7 @@ class SelectDialogComponent {
|
|
|
939
948
|
this.canDelete.set(false);
|
|
940
949
|
}
|
|
941
950
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: SelectDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
942
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.6", type: SelectDialogComponent, isStandalone: true, selector: "ng-component", outputs: { done: "done", edit: "edit", view: "view", append: "append", delete: "delete", lookup: "lookup", lookupOptions: "lookupOptions", filter: "filter" }, host: { attributes: { "Bind": SystemUtils.generateUUID() } }, viewQueries: [{ propertyName: "paginator", first: true, predicate: ["paginator"], descendants: true }, { propertyName: "selection", first: true, predicate: ["selection"], descendants: true }], ngImport: i0, template: "<h2 mat-dialog-title>{{dialogData.title}}</h2>\r\n<div style=\"padding: 0 24px\">\r\n @if (dialogData.description) {\r\n <div class=\"selectfile-description\" [innerHtml]=\"dialogData.description | safeHtml\"></div>\r\n }\r\n <div>\r\n <div fxLayout=\"row\" fxLayoutGap=\"20px\" fxFill>\r\n @if (!dialogData.canLookupWithOptions) {\r\n <div fxFlex=\"100\">\r\n <mat-form-field style='width:100%' [appearance]=\"dialogData.appearance\" subscriptSizing=\"dynamic\">\r\n <mat-label>Cerca...</mat-label>\r\n <input type=\"text\" cdkFocusInitial (keyup.Enter)=\"doFilter()\" matInput\r\n title=\"{{dialogData.canLookup ? 'Digita il testo e premi invio' : 'Digita il testo'}}\" [(ngModel)]=\"filterText\">\r\n @if (filterText) {\r\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Clear\" (click)=\"clearFilter()\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n }\r\n </mat-form-field>\r\n </div>\r\n }\r\n @if (!dialogData.canLookupWithOptions && dialogData.canLookup && dialogData.lookupFields) {\r\n <div fxFlex=\"100\">\r\n <mat-form-field style='width:100%' [appearance]=\"dialogData.appearance\" subscriptSizing=\"dynamic\">\r\n <mat-label>Come...</mat-label>\r\n <mat-select [(value)]=\"lookupField\">\r\n @for (field of dialogData.lookupFields; track field) {\r\n <mat-option [value]=\"field.value\">\r\n {{field.name}}\r\n </mat-option>\r\n }\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n }\r\n @if (dialogData.canLookupWithOptions) {\r\n <div fxFlex=\"*\" fxFlexAlign=\"center\">\r\n <button fxFlexAlign=\"center\" type=\"button\" mat-button aria-label=\"Ricerca\" (click)=\"showFilterOptions()\">\r\n <mat-icon>search</mat-icon>Ricerca\r\n </button>\r\n </div>\r\n }\r\n @if (dialogData.canLookup && dialogData.canFilter) {\r\n <div fxFlex=\"*\" fxFlexAlign=\"center\" style=\"white-space:nowrap\">\r\n <button fxFlexAlign=\"center\" type=\"button\" mat-button matTooltip=\"Filtra\" [attr.aria-label]=\"'Filtra'\"\r\n [matMenuTriggerFor]=\"menuFilter\" color=\"primary\">\r\n <mat-icon>filter_alt</mat-icon> {{filterOptionsInfo}} <mat-icon class=\"icon-menu-drop-down\">\r\n arrow_drop_down</mat-icon>\r\n </button>\r\n <mat-menu #menuFilter=\"matMenu\" class=\"mat-menu-300\">\r\n @for (f of filterOptions; track f) {\r\n\r\n @if (f.divider) {\r\n <mat-divider></mat-divider>\r\n }\r\n @if (f.groupName) {\r\n <span style='font-size:small; padding: 2px 4px;'><i><b>{{f.groupName}}</b></i></span>\r\n }\r\n @if (!f.groupName && !f.divider) {\r\n <button mat-menu-item (click)=\"doFilterByOptions(f)\" [attr.aria-label]=\"f.description\">\r\n @if (f.radio && f.value) {\r\n <span style=\"padding-left:40px\"></span>\r\n }\r\n <mat-icon>{{f.icon}}</mat-icon> {{f.title}}\r\n </button>\r\n }\r\n\r\n }\r\n </mat-menu>\r\n </div>\r\n }\r\n @if (canEdit() || canAppend() || canView() || canDelete()) {\r\n <div fxFlex=\"*\" fxLayoutAlign=\"end\" style=\"white-space:nowrap\">\r\n @if (canAppend()) {\r\n <button fxFlexAlign=\"center\" type=\"button\" mat-icon-button color=\"primary\"\r\n (click)=\"doAppend()\">\r\n <mat-icon aria-label=\"Aggiungi\" matTooltip=\"Aggiungi\">add</mat-icon>\r\n </button>\r\n }\r\n @if (canEdit()) {\r\n <button fxFlexAlign=\"center\" type=\"button\" mat-icon-button color=\"primary\"\r\n (click)=\"doEdit()\">\r\n <mat-icon aria-label=\"Modifica\" matTooltip=\"Modifica\">edit</mat-icon>\r\n </button>\r\n }\r\n @if (canView()) {\r\n <button fxFlexAlign=\"center\" type=\"button\" mat-icon-button color=\"primary\"\r\n (click)=\"doView()\">\r\n <mat-icon aria-label=\"Mostra\" matTooltip=\"Mostra\">visibility</mat-icon>\r\n </button>\r\n }\r\n @if (canDelete()) {\r\n <button fxFlexAlign=\"center\" type=\"button\" mat-icon-button color=\"primary\"\r\n (click)=\"doDelete()\">\r\n <mat-icon aria-label=\"Elimina\" matTooltip=\"Elimina\">delete</mat-icon>\r\n </button>\r\n }\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n @if ((dialogData.multi || dialogData.header) && dialogData.items?.length > 0) {\r\n <div>\r\n <div fxLayout=\"row\" fxFalyoutGap=\"10px\" fxFill style=\"padding-top: 10px;\">\r\n <div fxFlex=\"72px\" fxFlexAlign=\"center\" style=\"padding-left: 8px;\">\r\n @if (dialogData.multi) {\r\n <mat-checkbox color=\"primary\" (change)=\"$event ? masterSelectionToggle($event) : null\"\r\n [indeterminate]=\"selectionMasterIndeterminate()\" [checked]=\"selectionMasterChecked()\"\r\n [attr.aria-label]=\"'Seleziona/deseleziona tutto'\" matTooltip=\"Seleziona/deseleziona tutto\">\r\n </mat-checkbox>\r\n }\r\n </div>\r\n <div fxFlex=\"100\" fxFlexAlign=\"center\">\r\n @if (dialogData.header) {\r\n <div [innerHtml]=\"dialogData.header | safeHtml\"></div>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n</div>\r\n<div mat-dialog-content>\r\n <div fxLayout=\"column\" fxFill>\r\n @if (dialogData.canLookup && (!dialogData.items || dialogData.items.length == 0)) {\r\n <div class=\"message\"><i>\r\n @if (!dialogData.emptyMessage) {\r\n <span>Nessun elemento da visualizzare.<br>Esegui una nuova ricerca o modifica quella\r\n esistente.\r\n @if (dialogData.maxItems > 0) {\r\n <span>Saranno mostrati al massimo {{dialogData.maxItems}} elementi.</span>\r\n }\r\n </span>\r\n } @else {\r\n <span [innerHtml]=\"dialogData.emptyMessage | safeHtml\"></span>\r\n }\r\n </i>\r\n </div>\r\n }\r\n <mat-selection-list #selection (selectionChange)=\"select($event)\" dense hideSingleSelectionIndicator=\"true\">\r\n @for (item of (dialogData.items | search: (!dialogData.canLookup ? filterText : '')); track item) {\r\n <mat-list-option [value]=\"item\" [selected]=\"item.selected\" checkboxPosition=\"before\" color=\"primary\">\r\n <div [innerHtml]=\"item.template | safeHtml\"></div>\r\n </mat-list-option>\r\n }\r\n </mat-selection-list>\r\n </div>\r\n</div>\r\n<div mat-dialog-actions>\r\n <div fxLayout=\"column\" fxFill>\r\n <div fxLayout=\"row\" fxLayoutAlign=\"space-between center\" fxLayoutGap=\"10px\" fxFill>\r\n <div style=\"padding-left:20px\">\r\n @if (selectionInfo) {\r\n <span class=\"small\">selezione: </span><span class=\"bold\">{{selectionInfo}}</span>\r\n }\r\n </div>\r\n <div fxFlexAlign=\"center\">\r\n @if (canPaginate) {\r\n <div [hidden]=\"!dialogData.items || dialogData.items.length === 0\">\r\n <mat-paginator #paginator [hidePageSize]=\"true\" [pageSize]=\"dialogData.pageSize\" [showFirstLastButtons]=\"true\"\r\n (page)=\"doLookupPage($event)\"></mat-paginator>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n <div fxLayout=\"row\" fxLayoutAlign=\"end\" fxFill>\r\n <button mat-flat-button color=\"primary\" (click)=\"ok()\" [disabled]=\"okDisabled\">\r\n <span>{{dialogData.mustSelect ? dialogData.okCaption : 'Chiudi'}}</span>\r\n </button>\r\n @if (dialogData.mustSelect) {\r\n <button mat-button mat-dialog-close cdkFocusInitial color=\"primary\">\r\n <span>Annulla</span>\r\n </button>\r\n }\r\n </div>\r\n </div>\r\n</div>", styles: [".dialog-info{font-size:x-small;font-weight:700;text-align:right;padding:10px}.dialog-info-green,.dialog-info-ok{color:var(--ars-color-ok, #388E3C)}.dialog-info-red,.dialog-info-error{color:var(--mat-form-field-error-text-color, #a80710)}.dialog-header{padding-bottom:20px}.dialog-close{margin-right:10px;margin-top:10px}.dialog-menu{margin-left:10px;margin-top:10px}.dialog-title{padding:0 24px}.section-title{font-size:large;font-weight:600;padding-top:10px;padding-bottom:8px}.center{text-align:center}.wide{min-width:100%!important;max-width:100%!important;width:100%!important}.fill{min-width:100%!important;max-width:100%!important;width:100%!important;min-height:100%!important;max-height:100%!important;height:100%!important}.scroll-auto{overflow:auto}.scroll-hidden{overflow:hidden}b{font-weight:700}.large{font-size:large!important}.smaller{font-size:smaller}.small{font-size:small!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}.bold{font-weight:700}.uppercase{text-transform:uppercase!important}.lowercase{text-transform:lowercase!important}.truncated{min-width:0;max-width:100%}.truncated span,.truncated div{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.clipped{min-width:0;max-width:100%}.clipped span,.clipped div{white-space:nowrap;overflow:hidden;text-overflow:clip}.accent{color:var(--ars-accent, #7894ae)!important}.primary{color:var(--ars-primary, #00a293)!important}.secondary{color:var(--ars-secondary, #4a635f)!important}.error{color:var(--ars-error, #ff5449)!important}.warning{color:var(--ars-warning, #FFC107)!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,.drawer-small{min-width:420px!important;max-width:420px!important;padding:20px 0 0}.drawer .title-container,.drawer-small .title-container{padding:20px 10px}.drawer .title-container-with-loader,.drawer-small .title-container-with-loader{padding:14px 10px 20px}.drawer .title,.drawer-small .title{font-size:1.2em;font-weight:600;padding-left:10px;min-width:200px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.drawer .content,.drawer-small .content{padding:10px 0!important}.drawer .fixed,.drawer-small .fixed{padding:0 4px!important}.drawer .accordion-panel,.drawer-small .accordion-panel{background-color:transparent!important}.drawer .accordion-header,.drawer-small .accordion-header{padding-left:15px;padding-right:20px;border-radius:var(--mat-expansion-container-shape)}.drawer .mat-expansion-panel-body,.drawer-small .mat-expansion-panel-body{padding-bottom:20px!important}.drawer-with-loader{padding-top:0!important}.drawer-transparent{background-color:transparent}.drawer-small{min-width:360px!important;max-width:360px!important}.drawer-small .title{min-width:150px}.drawer-small .content{padding:20px 0 10px}@media screen and (min-width: 0px) and (max-width: 359px){.drawer{min-width:360px!important;max-width:360px!important}.drawer .title{min-width:150px}}.fade-in{animation:fadein .5s linear}@keyframes fadein{0%{opacity:0}to{opacity:1}}@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{font-weight:600}}.message{color:var(--ars-color-secondary, #4a635f);padding:20px;text-align:center}\n"], dependencies: [{ kind: "directive", type: MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "ngmodule", type: FlexModule }, { kind: "directive", type: i1$1.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i1$1.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i1$1.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i1$1.FlexFillDirective, selector: "[fxFill], [fxFlexFill]" }, { kind: "directive", type: i1$1.DefaultFlexAlignDirective, selector: " [fxFlexAlign], [fxFlexAlign.xs], [fxFlexAlign.sm], [fxFlexAlign.md], [fxFlexAlign.lg], [fxFlexAlign.xl], [fxFlexAlign.lt-sm], [fxFlexAlign.lt-md], [fxFlexAlign.lt-lg], [fxFlexAlign.lt-xl], [fxFlexAlign.gt-xs], [fxFlexAlign.gt-sm], [fxFlexAlign.gt-md], [fxFlexAlign.gt-lg]", inputs: ["fxFlexAlign", "fxFlexAlign.xs", "fxFlexAlign.sm", "fxFlexAlign.md", "fxFlexAlign.lg", "fxFlexAlign.xl", "fxFlexAlign.lt-sm", "fxFlexAlign.lt-md", "fxFlexAlign.lt-lg", "fxFlexAlign.lt-xl", "fxFlexAlign.gt-xs", "fxFlexAlign.gt-sm", "fxFlexAlign.gt-md", "fxFlexAlign.gt-lg"] }, { kind: "directive", type: i1$1.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "ngmodule", type: ExtendedModule$1 }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i6.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i4$1.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"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i9.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: MatOptionModule }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i6$1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i10.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: i10.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i10.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "ngmodule", type: MatDividerModule }, { kind: "component", type: i11.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i3$1.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "directive", type: MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "ngmodule", type: MatListModule }, { kind: "component", type: i13.MatSelectionList, selector: "mat-selection-list", inputs: ["color", "compareWith", "multiple", "hideSingleSelectionIndicator", "disabled"], outputs: ["selectionChange"], exportAs: ["matSelectionList"] }, { kind: "component", type: i13.MatListOption, selector: "mat-list-option", inputs: ["togglePosition", "checkboxPosition", "color", "value", "selected"], outputs: ["selectedChange"], exportAs: ["matListOption"] }, { 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"] }, { kind: "ngmodule", type: MatPaginatorModule }, { kind: "component", type: i14.MatPaginator, selector: "mat-paginator", inputs: ["color", "pageIndex", "length", "pageSize", "pageSizeOptions", "hidePageSize", "showFirstLastButtons", "selectConfig", "disabled"], outputs: ["page"], exportAs: ["matPaginator"] }, { kind: "pipe", type: SearchFilterPipe, name: "search" }, { kind: "pipe", type: SafeHtmlPipe, name: "safeHtml" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
951
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.6", type: SelectDialogComponent, isStandalone: true, selector: "ng-component", outputs: { done: "done", edit: "edit", view: "view", append: "append", delete: "delete", lookup: "lookup", lookupOptions: "lookupOptions", filter: "filter" }, host: { attributes: { "Bind": SystemUtils.generateUUID() } }, viewQueries: [{ propertyName: "paginator", first: true, predicate: ["paginator"], descendants: true }, { propertyName: "selection", first: true, predicate: ["selection"], descendants: true }], ngImport: i0, template: "<h2 mat-dialog-title>{{dialogData.title}}</h2>\r\n<div style=\"padding: 0 24px\">\r\n @if (dialogData.description) {\r\n <div class=\"selectfile-description\" [innerHtml]=\"dialogData.description | safeHtml\"></div>\r\n }\r\n <div>\r\n <div fxLayout=\"row\" fxLayoutGap=\"20px\" fxFill>\r\n @if (!dialogData.canLookupWithOptions) {\r\n <div fxFlex=\"100\">\r\n <mat-form-field style='width:100%' [appearance]=\"dialogData.appearance\" subscriptSizing=\"dynamic\">\r\n <mat-label>Cerca...</mat-label>\r\n <input type=\"text\" cdkFocusInitial (keyup.Enter)=\"doFilter()\" matInput\r\n title=\"{{dialogData.canLookup ? 'Digita il testo e premi invio' : 'Digita il testo'}}\" [(ngModel)]=\"filterText\">\r\n @if (filterText) {\r\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Clear\" (click)=\"clearFilter()\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n }\r\n </mat-form-field>\r\n </div>\r\n }\r\n @if (!dialogData.canLookupWithOptions && dialogData.canLookup && dialogData.lookupFields) {\r\n <div fxFlex=\"100\">\r\n <mat-form-field style='width:100%' [appearance]=\"dialogData.appearance\" subscriptSizing=\"dynamic\">\r\n <mat-label>Come...</mat-label>\r\n <mat-select [(value)]=\"lookupField\">\r\n @for (field of dialogData.lookupFields; track field) {\r\n <mat-option [value]=\"field.value\">\r\n {{field.name}}\r\n </mat-option>\r\n }\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n }\r\n @if (dialogData.canLookupWithOptions) {\r\n <div fxFlex=\"*\" fxFlexAlign=\"center\">\r\n <button fxFlexAlign=\"center\" type=\"button\" mat-button aria-label=\"Ricerca\" (click)=\"showFilterOptions()\">\r\n <mat-icon>search</mat-icon>Ricerca\r\n </button>\r\n </div>\r\n }\r\n @if (dialogData.canLookup && dialogData.canFilter) {\r\n <div fxFlex=\"*\" fxFlexAlign=\"center\" style=\"white-space:nowrap\">\r\n <button fxFlexAlign=\"center\" type=\"button\" mat-button matTooltip=\"Filtra\" [attr.aria-label]=\"'Filtra'\"\r\n [matMenuTriggerFor]=\"menuFilter\" color=\"primary\">\r\n <mat-icon>filter_alt</mat-icon> {{filterOptionsInfo}} <mat-icon class=\"icon-menu-drop-down\">\r\n arrow_drop_down</mat-icon>\r\n </button>\r\n <mat-menu #menuFilter=\"matMenu\" class=\"mat-menu-300\">\r\n @for (f of filterOptions; track f) {\r\n\r\n @if (f.divider) {\r\n <mat-divider></mat-divider>\r\n }\r\n @if (f.groupName) {\r\n <span style='font-size:small; padding: 2px 4px;'><i><b>{{f.groupName}}</b></i></span>\r\n }\r\n @if (!f.groupName && !f.divider) {\r\n <button mat-menu-item (click)=\"doFilterByOptions(f)\" [attr.aria-label]=\"f.description\">\r\n @if (f.radio && f.value) {\r\n <span style=\"padding-left:40px\"></span>\r\n }\r\n <mat-icon>{{f.icon}}</mat-icon> {{f.title}}\r\n </button>\r\n }\r\n\r\n }\r\n </mat-menu>\r\n </div>\r\n }\r\n @if (canEdit() || canAppend() || canView() || canDelete()) {\r\n <div fxFlex=\"*\" fxLayoutAlign=\"end\" style=\"white-space:nowrap\">\r\n @if (canAppend()) {\r\n <button fxFlexAlign=\"center\" type=\"button\" mat-icon-button color=\"primary\"\r\n (click)=\"doAppend()\">\r\n <mat-icon aria-label=\"Aggiungi\" matTooltip=\"Aggiungi\">add</mat-icon>\r\n </button>\r\n }\r\n @if (canEdit()) {\r\n <button fxFlexAlign=\"center\" type=\"button\" mat-icon-button color=\"primary\"\r\n (click)=\"doEdit()\">\r\n <mat-icon aria-label=\"Modifica\" matTooltip=\"Modifica\">edit</mat-icon>\r\n </button>\r\n }\r\n @if (canView()) {\r\n <button fxFlexAlign=\"center\" type=\"button\" mat-icon-button color=\"primary\"\r\n (click)=\"doView()\">\r\n <mat-icon aria-label=\"Mostra\" matTooltip=\"Mostra\">visibility</mat-icon>\r\n </button>\r\n }\r\n @if (canDelete()) {\r\n <button fxFlexAlign=\"center\" type=\"button\" mat-icon-button color=\"primary\"\r\n (click)=\"doDelete()\">\r\n <mat-icon aria-label=\"Elimina\" matTooltip=\"Elimina\">delete</mat-icon>\r\n </button>\r\n }\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n @if ((dialogData.multi || dialogData.header) && dialogData.items?.length > 0) {\r\n <div>\r\n <div fxLayout=\"row\" fxFalyoutGap=\"10px\" fxFill style=\"padding-top: 10px;\">\r\n <div fxFlex=\"72px\" fxFlexAlign=\"center\" style=\"padding-left: 8px;\">\r\n @if (dialogData.multi) {\r\n <mat-checkbox color=\"primary\" (change)=\"$event ? masterSelectionToggle($event) : null\"\r\n [indeterminate]=\"selectionMasterIndeterminate()\" [checked]=\"selectionMasterChecked()\"\r\n [attr.aria-label]=\"'Seleziona/deseleziona tutto'\" matTooltip=\"Seleziona/deseleziona tutto\">\r\n </mat-checkbox>\r\n }\r\n </div>\r\n <div fxFlex=\"100\" fxFlexAlign=\"center\">\r\n @if (dialogData.header) {\r\n <div [innerHtml]=\"dialogData.header | safeHtml\"></div>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n</div>\r\n<div mat-dialog-content>\r\n <div fxLayout=\"column\" fxFill>\r\n @if (dialogData.canLookup && (!dialogData.items || dialogData.items.length == 0)) {\r\n <div class=\"message\"><i>\r\n @if (!dialogData.emptyMessage) {\r\n <span>Nessun elemento da visualizzare.<br>Esegui una nuova ricerca o modifica quella\r\n esistente.\r\n @if (dialogData.maxItems > 0) {\r\n <span>Saranno mostrati al massimo {{dialogData.maxItems}} elementi.</span>\r\n }\r\n </span>\r\n } @else {\r\n <span [innerHtml]=\"dialogData.emptyMessage | safeHtml\"></span>\r\n }\r\n </i>\r\n </div>\r\n }\r\n <mat-selection-list #selection (selectionChange)=\"select($event)\" dense hideSingleSelectionIndicator=\"true\">\r\n @for (item of (dialogData.items | search: (!dialogData.canLookup ? filterText : '')); track item) {\r\n <mat-list-option [value]=\"item\" [selected]=\"item.selected\" checkboxPosition=\"before\" color=\"primary\">\r\n <div [innerHtml]=\"item.template | safeHtml\"></div>\r\n </mat-list-option>\r\n }\r\n </mat-selection-list>\r\n </div>\r\n</div>\r\n<div mat-dialog-actions>\r\n <div fxLayout=\"column\" fxFill>\r\n <div fxLayout=\"row\" fxLayoutAlign=\"space-between center\" fxLayoutGap=\"10px\" fxFill>\r\n <div style=\"padding-left:20px\">\r\n @if (selectionInfo) {\r\n <span class=\"small\">selezione: </span><span class=\"bold\">{{selectionInfo}}</span>\r\n }\r\n </div>\r\n <div fxFlexAlign=\"center\">\r\n @if (canPaginate) {\r\n <div [hidden]=\"!dialogData.items || dialogData.items.length === 0\">\r\n <mat-paginator #paginator [hidePageSize]=\"true\" [pageSize]=\"dialogData.pageSize\" [showFirstLastButtons]=\"true\"\r\n (page)=\"doLookupPage($event)\"></mat-paginator>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n <div fxLayout=\"row\" fxLayoutAlign=\"end\" fxFill>\r\n <button mat-flat-button color=\"primary\" (click)=\"ok()\" [disabled]=\"okDisabled()\">\r\n <span>{{dialogData.mustSelect ? dialogData.okCaption : 'Chiudi'}}</span>\r\n </button>\r\n @if (dialogData.mustSelect) {\r\n <button mat-button mat-dialog-close cdkFocusInitial color=\"primary\">\r\n <span>Annulla</span>\r\n </button>\r\n }\r\n </div>\r\n </div>\r\n</div>", styles: [".dialog-info{font-size:x-small;font-weight:700;text-align:right;padding:10px}.dialog-info-green,.dialog-info-ok{color:var(--ars-color-ok, #388E3C)}.dialog-info-red,.dialog-info-error{color:var(--mat-form-field-error-text-color, #a80710)}.dialog-header{padding-bottom:20px}.dialog-close{margin-right:10px;margin-top:10px}.dialog-menu{margin-left:10px;margin-top:10px}.dialog-title{padding:0 24px}.section-title{font-size:large;font-weight:600;padding-top:10px;padding-bottom:8px}.center{text-align:center}.wide{min-width:100%!important;max-width:100%!important;width:100%!important}.fill{min-width:100%!important;max-width:100%!important;width:100%!important;min-height:100%!important;max-height:100%!important;height:100%!important}.scroll-auto{overflow:auto}.scroll-hidden{overflow:hidden}b{font-weight:700}.large{font-size:large!important}.smaller{font-size:smaller}.small{font-size:small!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}.bold{font-weight:700}.uppercase{text-transform:uppercase!important}.lowercase{text-transform:lowercase!important}.truncated{min-width:0;max-width:100%}.truncated span,.truncated div{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.clipped{min-width:0;max-width:100%}.clipped span,.clipped div{white-space:nowrap;overflow:hidden;text-overflow:clip}.accent{color:var(--ars-accent, #7894ae)!important}.primary{color:var(--ars-primary, #00a293)!important}.secondary{color:var(--ars-secondary, #4a635f)!important}.error{color:var(--ars-error, #ff5449)!important}.warning{color:var(--ars-warning, #FFC107)!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,.drawer-small{min-width:420px!important;max-width:420px!important;padding:20px 0 0}.drawer .title-container,.drawer-small .title-container{padding:20px 10px}.drawer .title-container-with-loader,.drawer-small .title-container-with-loader{padding:14px 10px 20px}.drawer .title,.drawer-small .title{font-size:1.2em;font-weight:600;padding-left:10px;min-width:200px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.drawer .content,.drawer-small .content{padding:10px 0!important}.drawer .fixed,.drawer-small .fixed{padding:0 4px!important}.drawer .accordion-panel,.drawer-small .accordion-panel{background-color:transparent!important}.drawer .accordion-header,.drawer-small .accordion-header{padding-left:15px;padding-right:20px;border-radius:var(--mat-expansion-container-shape)}.drawer .mat-expansion-panel-body,.drawer-small .mat-expansion-panel-body{padding-bottom:20px!important}.drawer-with-loader{padding-top:0!important}.drawer-transparent{background-color:transparent}.drawer-small{min-width:360px!important;max-width:360px!important}.drawer-small .title{min-width:150px}.drawer-small .content{padding:20px 0 10px}@media screen and (min-width: 0px) and (max-width: 359px){.drawer{min-width:360px!important;max-width:360px!important}.drawer .title{min-width:150px}}.fade-in{animation:fadein .5s linear}@keyframes fadein{0%{opacity:0}to{opacity:1}}@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{font-weight:600}}.message{color:var(--ars-color-secondary, #4a635f);padding:20px;text-align:center}\n"], dependencies: [{ kind: "directive", type: MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "ngmodule", type: FlexModule }, { kind: "directive", type: i1$1.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i1$1.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i1$1.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i1$1.FlexFillDirective, selector: "[fxFill], [fxFlexFill]" }, { kind: "directive", type: i1$1.DefaultFlexAlignDirective, selector: " [fxFlexAlign], [fxFlexAlign.xs], [fxFlexAlign.sm], [fxFlexAlign.md], [fxFlexAlign.lg], [fxFlexAlign.xl], [fxFlexAlign.lt-sm], [fxFlexAlign.lt-md], [fxFlexAlign.lt-lg], [fxFlexAlign.lt-xl], [fxFlexAlign.gt-xs], [fxFlexAlign.gt-sm], [fxFlexAlign.gt-md], [fxFlexAlign.gt-lg]", inputs: ["fxFlexAlign", "fxFlexAlign.xs", "fxFlexAlign.sm", "fxFlexAlign.md", "fxFlexAlign.lg", "fxFlexAlign.xl", "fxFlexAlign.lt-sm", "fxFlexAlign.lt-md", "fxFlexAlign.lt-lg", "fxFlexAlign.lt-xl", "fxFlexAlign.gt-xs", "fxFlexAlign.gt-sm", "fxFlexAlign.gt-md", "fxFlexAlign.gt-lg"] }, { kind: "directive", type: i1$1.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "ngmodule", type: ExtendedModule$1 }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i6.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i4$1.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"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i9.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: MatOptionModule }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i6$1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i10.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: i10.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i10.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "ngmodule", type: MatDividerModule }, { kind: "component", type: i11.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i3$1.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "directive", type: MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "ngmodule", type: MatListModule }, { kind: "component", type: i13.MatSelectionList, selector: "mat-selection-list", inputs: ["color", "compareWith", "multiple", "hideSingleSelectionIndicator", "disabled"], outputs: ["selectionChange"], exportAs: ["matSelectionList"] }, { kind: "component", type: i13.MatListOption, selector: "mat-list-option", inputs: ["togglePosition", "checkboxPosition", "color", "value", "selected"], outputs: ["selectedChange"], exportAs: ["matListOption"] }, { 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"] }, { kind: "ngmodule", type: MatPaginatorModule }, { kind: "component", type: i14.MatPaginator, selector: "mat-paginator", inputs: ["color", "pageIndex", "length", "pageSize", "pageSizeOptions", "hidePageSize", "showFirstLastButtons", "selectConfig", "disabled"], outputs: ["page"], exportAs: ["matPaginator"] }, { kind: "pipe", type: SearchFilterPipe, name: "search" }, { kind: "pipe", type: SafeHtmlPipe, name: "safeHtml" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
943
952
|
}
|
|
944
953
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: SelectDialogComponent, decorators: [{
|
|
945
954
|
type: Component,
|
|
@@ -965,7 +974,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImpor
|
|
|
965
974
|
MatPaginatorModule,
|
|
966
975
|
SearchFilterPipe,
|
|
967
976
|
SafeHtmlPipe
|
|
968
|
-
], template: "<h2 mat-dialog-title>{{dialogData.title}}</h2>\r\n<div style=\"padding: 0 24px\">\r\n @if (dialogData.description) {\r\n <div class=\"selectfile-description\" [innerHtml]=\"dialogData.description | safeHtml\"></div>\r\n }\r\n <div>\r\n <div fxLayout=\"row\" fxLayoutGap=\"20px\" fxFill>\r\n @if (!dialogData.canLookupWithOptions) {\r\n <div fxFlex=\"100\">\r\n <mat-form-field style='width:100%' [appearance]=\"dialogData.appearance\" subscriptSizing=\"dynamic\">\r\n <mat-label>Cerca...</mat-label>\r\n <input type=\"text\" cdkFocusInitial (keyup.Enter)=\"doFilter()\" matInput\r\n title=\"{{dialogData.canLookup ? 'Digita il testo e premi invio' : 'Digita il testo'}}\" [(ngModel)]=\"filterText\">\r\n @if (filterText) {\r\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Clear\" (click)=\"clearFilter()\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n }\r\n </mat-form-field>\r\n </div>\r\n }\r\n @if (!dialogData.canLookupWithOptions && dialogData.canLookup && dialogData.lookupFields) {\r\n <div fxFlex=\"100\">\r\n <mat-form-field style='width:100%' [appearance]=\"dialogData.appearance\" subscriptSizing=\"dynamic\">\r\n <mat-label>Come...</mat-label>\r\n <mat-select [(value)]=\"lookupField\">\r\n @for (field of dialogData.lookupFields; track field) {\r\n <mat-option [value]=\"field.value\">\r\n {{field.name}}\r\n </mat-option>\r\n }\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n }\r\n @if (dialogData.canLookupWithOptions) {\r\n <div fxFlex=\"*\" fxFlexAlign=\"center\">\r\n <button fxFlexAlign=\"center\" type=\"button\" mat-button aria-label=\"Ricerca\" (click)=\"showFilterOptions()\">\r\n <mat-icon>search</mat-icon>Ricerca\r\n </button>\r\n </div>\r\n }\r\n @if (dialogData.canLookup && dialogData.canFilter) {\r\n <div fxFlex=\"*\" fxFlexAlign=\"center\" style=\"white-space:nowrap\">\r\n <button fxFlexAlign=\"center\" type=\"button\" mat-button matTooltip=\"Filtra\" [attr.aria-label]=\"'Filtra'\"\r\n [matMenuTriggerFor]=\"menuFilter\" color=\"primary\">\r\n <mat-icon>filter_alt</mat-icon> {{filterOptionsInfo}} <mat-icon class=\"icon-menu-drop-down\">\r\n arrow_drop_down</mat-icon>\r\n </button>\r\n <mat-menu #menuFilter=\"matMenu\" class=\"mat-menu-300\">\r\n @for (f of filterOptions; track f) {\r\n\r\n @if (f.divider) {\r\n <mat-divider></mat-divider>\r\n }\r\n @if (f.groupName) {\r\n <span style='font-size:small; padding: 2px 4px;'><i><b>{{f.groupName}}</b></i></span>\r\n }\r\n @if (!f.groupName && !f.divider) {\r\n <button mat-menu-item (click)=\"doFilterByOptions(f)\" [attr.aria-label]=\"f.description\">\r\n @if (f.radio && f.value) {\r\n <span style=\"padding-left:40px\"></span>\r\n }\r\n <mat-icon>{{f.icon}}</mat-icon> {{f.title}}\r\n </button>\r\n }\r\n\r\n }\r\n </mat-menu>\r\n </div>\r\n }\r\n @if (canEdit() || canAppend() || canView() || canDelete()) {\r\n <div fxFlex=\"*\" fxLayoutAlign=\"end\" style=\"white-space:nowrap\">\r\n @if (canAppend()) {\r\n <button fxFlexAlign=\"center\" type=\"button\" mat-icon-button color=\"primary\"\r\n (click)=\"doAppend()\">\r\n <mat-icon aria-label=\"Aggiungi\" matTooltip=\"Aggiungi\">add</mat-icon>\r\n </button>\r\n }\r\n @if (canEdit()) {\r\n <button fxFlexAlign=\"center\" type=\"button\" mat-icon-button color=\"primary\"\r\n (click)=\"doEdit()\">\r\n <mat-icon aria-label=\"Modifica\" matTooltip=\"Modifica\">edit</mat-icon>\r\n </button>\r\n }\r\n @if (canView()) {\r\n <button fxFlexAlign=\"center\" type=\"button\" mat-icon-button color=\"primary\"\r\n (click)=\"doView()\">\r\n <mat-icon aria-label=\"Mostra\" matTooltip=\"Mostra\">visibility</mat-icon>\r\n </button>\r\n }\r\n @if (canDelete()) {\r\n <button fxFlexAlign=\"center\" type=\"button\" mat-icon-button color=\"primary\"\r\n (click)=\"doDelete()\">\r\n <mat-icon aria-label=\"Elimina\" matTooltip=\"Elimina\">delete</mat-icon>\r\n </button>\r\n }\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n @if ((dialogData.multi || dialogData.header) && dialogData.items?.length > 0) {\r\n <div>\r\n <div fxLayout=\"row\" fxFalyoutGap=\"10px\" fxFill style=\"padding-top: 10px;\">\r\n <div fxFlex=\"72px\" fxFlexAlign=\"center\" style=\"padding-left: 8px;\">\r\n @if (dialogData.multi) {\r\n <mat-checkbox color=\"primary\" (change)=\"$event ? masterSelectionToggle($event) : null\"\r\n [indeterminate]=\"selectionMasterIndeterminate()\" [checked]=\"selectionMasterChecked()\"\r\n [attr.aria-label]=\"'Seleziona/deseleziona tutto'\" matTooltip=\"Seleziona/deseleziona tutto\">\r\n </mat-checkbox>\r\n }\r\n </div>\r\n <div fxFlex=\"100\" fxFlexAlign=\"center\">\r\n @if (dialogData.header) {\r\n <div [innerHtml]=\"dialogData.header | safeHtml\"></div>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n</div>\r\n<div mat-dialog-content>\r\n <div fxLayout=\"column\" fxFill>\r\n @if (dialogData.canLookup && (!dialogData.items || dialogData.items.length == 0)) {\r\n <div class=\"message\"><i>\r\n @if (!dialogData.emptyMessage) {\r\n <span>Nessun elemento da visualizzare.<br>Esegui una nuova ricerca o modifica quella\r\n esistente.\r\n @if (dialogData.maxItems > 0) {\r\n <span>Saranno mostrati al massimo {{dialogData.maxItems}} elementi.</span>\r\n }\r\n </span>\r\n } @else {\r\n <span [innerHtml]=\"dialogData.emptyMessage | safeHtml\"></span>\r\n }\r\n </i>\r\n </div>\r\n }\r\n <mat-selection-list #selection (selectionChange)=\"select($event)\" dense hideSingleSelectionIndicator=\"true\">\r\n @for (item of (dialogData.items | search: (!dialogData.canLookup ? filterText : '')); track item) {\r\n <mat-list-option [value]=\"item\" [selected]=\"item.selected\" checkboxPosition=\"before\" color=\"primary\">\r\n <div [innerHtml]=\"item.template | safeHtml\"></div>\r\n </mat-list-option>\r\n }\r\n </mat-selection-list>\r\n </div>\r\n</div>\r\n<div mat-dialog-actions>\r\n <div fxLayout=\"column\" fxFill>\r\n <div fxLayout=\"row\" fxLayoutAlign=\"space-between center\" fxLayoutGap=\"10px\" fxFill>\r\n <div style=\"padding-left:20px\">\r\n @if (selectionInfo) {\r\n <span class=\"small\">selezione: </span><span class=\"bold\">{{selectionInfo}}</span>\r\n }\r\n </div>\r\n <div fxFlexAlign=\"center\">\r\n @if (canPaginate) {\r\n <div [hidden]=\"!dialogData.items || dialogData.items.length === 0\">\r\n <mat-paginator #paginator [hidePageSize]=\"true\" [pageSize]=\"dialogData.pageSize\" [showFirstLastButtons]=\"true\"\r\n (page)=\"doLookupPage($event)\"></mat-paginator>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n <div fxLayout=\"row\" fxLayoutAlign=\"end\" fxFill>\r\n <button mat-flat-button color=\"primary\" (click)=\"ok()\" [disabled]=\"okDisabled\">\r\n <span>{{dialogData.mustSelect ? dialogData.okCaption : 'Chiudi'}}</span>\r\n </button>\r\n @if (dialogData.mustSelect) {\r\n <button mat-button mat-dialog-close cdkFocusInitial color=\"primary\">\r\n <span>Annulla</span>\r\n </button>\r\n }\r\n </div>\r\n </div>\r\n</div>", styles: [".dialog-info{font-size:x-small;font-weight:700;text-align:right;padding:10px}.dialog-info-green,.dialog-info-ok{color:var(--ars-color-ok, #388E3C)}.dialog-info-red,.dialog-info-error{color:var(--mat-form-field-error-text-color, #a80710)}.dialog-header{padding-bottom:20px}.dialog-close{margin-right:10px;margin-top:10px}.dialog-menu{margin-left:10px;margin-top:10px}.dialog-title{padding:0 24px}.section-title{font-size:large;font-weight:600;padding-top:10px;padding-bottom:8px}.center{text-align:center}.wide{min-width:100%!important;max-width:100%!important;width:100%!important}.fill{min-width:100%!important;max-width:100%!important;width:100%!important;min-height:100%!important;max-height:100%!important;height:100%!important}.scroll-auto{overflow:auto}.scroll-hidden{overflow:hidden}b{font-weight:700}.large{font-size:large!important}.smaller{font-size:smaller}.small{font-size:small!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}.bold{font-weight:700}.uppercase{text-transform:uppercase!important}.lowercase{text-transform:lowercase!important}.truncated{min-width:0;max-width:100%}.truncated span,.truncated div{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.clipped{min-width:0;max-width:100%}.clipped span,.clipped div{white-space:nowrap;overflow:hidden;text-overflow:clip}.accent{color:var(--ars-accent, #7894ae)!important}.primary{color:var(--ars-primary, #00a293)!important}.secondary{color:var(--ars-secondary, #4a635f)!important}.error{color:var(--ars-error, #ff5449)!important}.warning{color:var(--ars-warning, #FFC107)!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,.drawer-small{min-width:420px!important;max-width:420px!important;padding:20px 0 0}.drawer .title-container,.drawer-small .title-container{padding:20px 10px}.drawer .title-container-with-loader,.drawer-small .title-container-with-loader{padding:14px 10px 20px}.drawer .title,.drawer-small .title{font-size:1.2em;font-weight:600;padding-left:10px;min-width:200px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.drawer .content,.drawer-small .content{padding:10px 0!important}.drawer .fixed,.drawer-small .fixed{padding:0 4px!important}.drawer .accordion-panel,.drawer-small .accordion-panel{background-color:transparent!important}.drawer .accordion-header,.drawer-small .accordion-header{padding-left:15px;padding-right:20px;border-radius:var(--mat-expansion-container-shape)}.drawer .mat-expansion-panel-body,.drawer-small .mat-expansion-panel-body{padding-bottom:20px!important}.drawer-with-loader{padding-top:0!important}.drawer-transparent{background-color:transparent}.drawer-small{min-width:360px!important;max-width:360px!important}.drawer-small .title{min-width:150px}.drawer-small .content{padding:20px 0 10px}@media screen and (min-width: 0px) and (max-width: 359px){.drawer{min-width:360px!important;max-width:360px!important}.drawer .title{min-width:150px}}.fade-in{animation:fadein .5s linear}@keyframes fadein{0%{opacity:0}to{opacity:1}}@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{font-weight:600}}.message{color:var(--ars-color-secondary, #4a635f);padding:20px;text-align:center}\n"] }]
|
|
977
|
+
], template: "<h2 mat-dialog-title>{{dialogData.title}}</h2>\r\n<div style=\"padding: 0 24px\">\r\n @if (dialogData.description) {\r\n <div class=\"selectfile-description\" [innerHtml]=\"dialogData.description | safeHtml\"></div>\r\n }\r\n <div>\r\n <div fxLayout=\"row\" fxLayoutGap=\"20px\" fxFill>\r\n @if (!dialogData.canLookupWithOptions) {\r\n <div fxFlex=\"100\">\r\n <mat-form-field style='width:100%' [appearance]=\"dialogData.appearance\" subscriptSizing=\"dynamic\">\r\n <mat-label>Cerca...</mat-label>\r\n <input type=\"text\" cdkFocusInitial (keyup.Enter)=\"doFilter()\" matInput\r\n title=\"{{dialogData.canLookup ? 'Digita il testo e premi invio' : 'Digita il testo'}}\" [(ngModel)]=\"filterText\">\r\n @if (filterText) {\r\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Clear\" (click)=\"clearFilter()\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n }\r\n </mat-form-field>\r\n </div>\r\n }\r\n @if (!dialogData.canLookupWithOptions && dialogData.canLookup && dialogData.lookupFields) {\r\n <div fxFlex=\"100\">\r\n <mat-form-field style='width:100%' [appearance]=\"dialogData.appearance\" subscriptSizing=\"dynamic\">\r\n <mat-label>Come...</mat-label>\r\n <mat-select [(value)]=\"lookupField\">\r\n @for (field of dialogData.lookupFields; track field) {\r\n <mat-option [value]=\"field.value\">\r\n {{field.name}}\r\n </mat-option>\r\n }\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n }\r\n @if (dialogData.canLookupWithOptions) {\r\n <div fxFlex=\"*\" fxFlexAlign=\"center\">\r\n <button fxFlexAlign=\"center\" type=\"button\" mat-button aria-label=\"Ricerca\" (click)=\"showFilterOptions()\">\r\n <mat-icon>search</mat-icon>Ricerca\r\n </button>\r\n </div>\r\n }\r\n @if (dialogData.canLookup && dialogData.canFilter) {\r\n <div fxFlex=\"*\" fxFlexAlign=\"center\" style=\"white-space:nowrap\">\r\n <button fxFlexAlign=\"center\" type=\"button\" mat-button matTooltip=\"Filtra\" [attr.aria-label]=\"'Filtra'\"\r\n [matMenuTriggerFor]=\"menuFilter\" color=\"primary\">\r\n <mat-icon>filter_alt</mat-icon> {{filterOptionsInfo}} <mat-icon class=\"icon-menu-drop-down\">\r\n arrow_drop_down</mat-icon>\r\n </button>\r\n <mat-menu #menuFilter=\"matMenu\" class=\"mat-menu-300\">\r\n @for (f of filterOptions; track f) {\r\n\r\n @if (f.divider) {\r\n <mat-divider></mat-divider>\r\n }\r\n @if (f.groupName) {\r\n <span style='font-size:small; padding: 2px 4px;'><i><b>{{f.groupName}}</b></i></span>\r\n }\r\n @if (!f.groupName && !f.divider) {\r\n <button mat-menu-item (click)=\"doFilterByOptions(f)\" [attr.aria-label]=\"f.description\">\r\n @if (f.radio && f.value) {\r\n <span style=\"padding-left:40px\"></span>\r\n }\r\n <mat-icon>{{f.icon}}</mat-icon> {{f.title}}\r\n </button>\r\n }\r\n\r\n }\r\n </mat-menu>\r\n </div>\r\n }\r\n @if (canEdit() || canAppend() || canView() || canDelete()) {\r\n <div fxFlex=\"*\" fxLayoutAlign=\"end\" style=\"white-space:nowrap\">\r\n @if (canAppend()) {\r\n <button fxFlexAlign=\"center\" type=\"button\" mat-icon-button color=\"primary\"\r\n (click)=\"doAppend()\">\r\n <mat-icon aria-label=\"Aggiungi\" matTooltip=\"Aggiungi\">add</mat-icon>\r\n </button>\r\n }\r\n @if (canEdit()) {\r\n <button fxFlexAlign=\"center\" type=\"button\" mat-icon-button color=\"primary\"\r\n (click)=\"doEdit()\">\r\n <mat-icon aria-label=\"Modifica\" matTooltip=\"Modifica\">edit</mat-icon>\r\n </button>\r\n }\r\n @if (canView()) {\r\n <button fxFlexAlign=\"center\" type=\"button\" mat-icon-button color=\"primary\"\r\n (click)=\"doView()\">\r\n <mat-icon aria-label=\"Mostra\" matTooltip=\"Mostra\">visibility</mat-icon>\r\n </button>\r\n }\r\n @if (canDelete()) {\r\n <button fxFlexAlign=\"center\" type=\"button\" mat-icon-button color=\"primary\"\r\n (click)=\"doDelete()\">\r\n <mat-icon aria-label=\"Elimina\" matTooltip=\"Elimina\">delete</mat-icon>\r\n </button>\r\n }\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n @if ((dialogData.multi || dialogData.header) && dialogData.items?.length > 0) {\r\n <div>\r\n <div fxLayout=\"row\" fxFalyoutGap=\"10px\" fxFill style=\"padding-top: 10px;\">\r\n <div fxFlex=\"72px\" fxFlexAlign=\"center\" style=\"padding-left: 8px;\">\r\n @if (dialogData.multi) {\r\n <mat-checkbox color=\"primary\" (change)=\"$event ? masterSelectionToggle($event) : null\"\r\n [indeterminate]=\"selectionMasterIndeterminate()\" [checked]=\"selectionMasterChecked()\"\r\n [attr.aria-label]=\"'Seleziona/deseleziona tutto'\" matTooltip=\"Seleziona/deseleziona tutto\">\r\n </mat-checkbox>\r\n }\r\n </div>\r\n <div fxFlex=\"100\" fxFlexAlign=\"center\">\r\n @if (dialogData.header) {\r\n <div [innerHtml]=\"dialogData.header | safeHtml\"></div>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n</div>\r\n<div mat-dialog-content>\r\n <div fxLayout=\"column\" fxFill>\r\n @if (dialogData.canLookup && (!dialogData.items || dialogData.items.length == 0)) {\r\n <div class=\"message\"><i>\r\n @if (!dialogData.emptyMessage) {\r\n <span>Nessun elemento da visualizzare.<br>Esegui una nuova ricerca o modifica quella\r\n esistente.\r\n @if (dialogData.maxItems > 0) {\r\n <span>Saranno mostrati al massimo {{dialogData.maxItems}} elementi.</span>\r\n }\r\n </span>\r\n } @else {\r\n <span [innerHtml]=\"dialogData.emptyMessage | safeHtml\"></span>\r\n }\r\n </i>\r\n </div>\r\n }\r\n <mat-selection-list #selection (selectionChange)=\"select($event)\" dense hideSingleSelectionIndicator=\"true\">\r\n @for (item of (dialogData.items | search: (!dialogData.canLookup ? filterText : '')); track item) {\r\n <mat-list-option [value]=\"item\" [selected]=\"item.selected\" checkboxPosition=\"before\" color=\"primary\">\r\n <div [innerHtml]=\"item.template | safeHtml\"></div>\r\n </mat-list-option>\r\n }\r\n </mat-selection-list>\r\n </div>\r\n</div>\r\n<div mat-dialog-actions>\r\n <div fxLayout=\"column\" fxFill>\r\n <div fxLayout=\"row\" fxLayoutAlign=\"space-between center\" fxLayoutGap=\"10px\" fxFill>\r\n <div style=\"padding-left:20px\">\r\n @if (selectionInfo) {\r\n <span class=\"small\">selezione: </span><span class=\"bold\">{{selectionInfo}}</span>\r\n }\r\n </div>\r\n <div fxFlexAlign=\"center\">\r\n @if (canPaginate) {\r\n <div [hidden]=\"!dialogData.items || dialogData.items.length === 0\">\r\n <mat-paginator #paginator [hidePageSize]=\"true\" [pageSize]=\"dialogData.pageSize\" [showFirstLastButtons]=\"true\"\r\n (page)=\"doLookupPage($event)\"></mat-paginator>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n <div fxLayout=\"row\" fxLayoutAlign=\"end\" fxFill>\r\n <button mat-flat-button color=\"primary\" (click)=\"ok()\" [disabled]=\"okDisabled()\">\r\n <span>{{dialogData.mustSelect ? dialogData.okCaption : 'Chiudi'}}</span>\r\n </button>\r\n @if (dialogData.mustSelect) {\r\n <button mat-button mat-dialog-close cdkFocusInitial color=\"primary\">\r\n <span>Annulla</span>\r\n </button>\r\n }\r\n </div>\r\n </div>\r\n</div>", styles: [".dialog-info{font-size:x-small;font-weight:700;text-align:right;padding:10px}.dialog-info-green,.dialog-info-ok{color:var(--ars-color-ok, #388E3C)}.dialog-info-red,.dialog-info-error{color:var(--mat-form-field-error-text-color, #a80710)}.dialog-header{padding-bottom:20px}.dialog-close{margin-right:10px;margin-top:10px}.dialog-menu{margin-left:10px;margin-top:10px}.dialog-title{padding:0 24px}.section-title{font-size:large;font-weight:600;padding-top:10px;padding-bottom:8px}.center{text-align:center}.wide{min-width:100%!important;max-width:100%!important;width:100%!important}.fill{min-width:100%!important;max-width:100%!important;width:100%!important;min-height:100%!important;max-height:100%!important;height:100%!important}.scroll-auto{overflow:auto}.scroll-hidden{overflow:hidden}b{font-weight:700}.large{font-size:large!important}.smaller{font-size:smaller}.small{font-size:small!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}.bold{font-weight:700}.uppercase{text-transform:uppercase!important}.lowercase{text-transform:lowercase!important}.truncated{min-width:0;max-width:100%}.truncated span,.truncated div{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.clipped{min-width:0;max-width:100%}.clipped span,.clipped div{white-space:nowrap;overflow:hidden;text-overflow:clip}.accent{color:var(--ars-accent, #7894ae)!important}.primary{color:var(--ars-primary, #00a293)!important}.secondary{color:var(--ars-secondary, #4a635f)!important}.error{color:var(--ars-error, #ff5449)!important}.warning{color:var(--ars-warning, #FFC107)!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,.drawer-small{min-width:420px!important;max-width:420px!important;padding:20px 0 0}.drawer .title-container,.drawer-small .title-container{padding:20px 10px}.drawer .title-container-with-loader,.drawer-small .title-container-with-loader{padding:14px 10px 20px}.drawer .title,.drawer-small .title{font-size:1.2em;font-weight:600;padding-left:10px;min-width:200px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.drawer .content,.drawer-small .content{padding:10px 0!important}.drawer .fixed,.drawer-small .fixed{padding:0 4px!important}.drawer .accordion-panel,.drawer-small .accordion-panel{background-color:transparent!important}.drawer .accordion-header,.drawer-small .accordion-header{padding-left:15px;padding-right:20px;border-radius:var(--mat-expansion-container-shape)}.drawer .mat-expansion-panel-body,.drawer-small .mat-expansion-panel-body{padding-bottom:20px!important}.drawer-with-loader{padding-top:0!important}.drawer-transparent{background-color:transparent}.drawer-small{min-width:360px!important;max-width:360px!important}.drawer-small .title{min-width:150px}.drawer-small .content{padding:20px 0 10px}@media screen and (min-width: 0px) and (max-width: 359px){.drawer{min-width:360px!important;max-width:360px!important}.drawer .title{min-width:150px}}.fade-in{animation:fadein .5s linear}@keyframes fadein{0%{opacity:0}to{opacity:1}}@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{font-weight:600}}.message{color:var(--ars-color-secondary, #4a635f);padding:20px;text-align:center}\n"] }]
|
|
969
978
|
}], propDecorators: { paginator: [{
|
|
970
979
|
type: ViewChild,
|
|
971
980
|
args: ['paginator']
|