@arsedizioni/ars-utils 21.2.275 → 21.2.277

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.
@@ -2049,7 +2049,7 @@ class ClipperNoteBadgeComponent {
2049
2049
  });
2050
2050
  }
2051
2051
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: ClipperNoteBadgeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2052
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.10", type: ClipperNoteBadgeComponent, isStandalone: true, selector: "clipper-note-badge", inputs: { note: { classPropertyName: "note", publicName: "note", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { populateContacts: "populateContacts", note: "noteChange" }, viewQueries: [{ propertyName: "popupTpl", first: true, predicate: ["popupTpl"], descendants: true, isSignal: true }], ngImport: i0, template: "<div class=\"note-wrapper\">\r\n <div class=\"note\" [style.border-left-color]=\"note().color\" [style.background-color]=\"backgroundColor()\"\r\n (click)=\"showPopup($event)\">\r\n {{note().name}}\r\n @if (trackingUnopenedCount() >= 0) {\r\n @if (trackingUnopenedCount() === 0) {\r\n <span class=\"tracking-badge tracking-badge--all-open\"\r\n [matTooltip]=\"'Mail tutte aperte'\"><mat-icon>check_circle</mat-icon></span>\r\n } @else {\r\n <span class=\"tracking-badge tracking-badge--missing\"\r\n [matTooltip]=\"'Mail non aperte: ' + trackingUnopenedCount()\">{{-trackingUnopenedCount()}}</span>\r\n }\r\n }\r\n </div>\r\n</div>\r\n\r\n<ng-template #popupTpl>\r\n <div class=\"popup\">\r\n <div class=\"popup-header\" [style.border-left-color]=\"note().color\">\r\n <span class=\"popup-name\">{{note().name}}</span>\r\n <button mat-icon-button (click)=\"closePopup($event)\" aria-label=\"Chiudi\" matTooltip=\"Chiudi\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </div>\r\n <div class=\"popup-content\">\r\n @if (note().note) {\r\n <div class=\"popup-note\">{{note().note}}</div>\r\n }\r\n @if (totalTrackings() > 0) {\r\n <div class=\"popup-toolbar\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\" fxFill>\r\n <div class=\"tracking-summary\" matTooltip=\"Aperture mail\">\r\n <mat-icon class=\"open-yes\">mark_email_read</mat-icon>\r\n {{trackingOpenedCount()}} / {{totalTrackings()}}\r\n </div>\r\n <div>\r\n <button mat-icon-button (click)=\"refresh($event)\" aria-label=\"Aggiorna\" matTooltip=\"Aggiorna stato aperture\">\r\n <mat-icon>refresh</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <div class=\"tracking-table-wrapper\">\r\n <table class=\"tracking-table\">\r\n <thead>\r\n <tr>\r\n <th>Destinatario</th>\r\n <th fxHide.xs>Inviato il</th>\r\n <th>Apertura</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n @for (t of note().trackings; track t.id) {\r\n <tr>\r\n <td>{{t.email ?? '-'}}</td>\r\n <td fxHide.xs class=\"center\">{{t.sentDate | format:'D':'dd/MM/yyyy HH:mm'}}</td>\r\n <td class=\"open-cell\">\r\n @if (t.openDate) {\r\n <mat-icon class=\"open-yes\"\r\n [matTooltip]=\"t.openDate | format:'D':'dd/MM/yyyy HH:mm'\">check_circle</mat-icon>\r\n } @else {\r\n <mat-icon class=\"open-no\">radio_button_unchecked</mat-icon>\r\n }\r\n </td>\r\n </tr>\r\n }\r\n </tbody>\r\n </table>\r\n </div>\r\n }\r\n <div class=\"popup-footer\">\r\n <button mat-icon-button (click)=\"edit($event)\" aria-label=\"Modifica\" matTooltip=\"Modifica\">\r\n <mat-icon>edit</mat-icon>\r\n </button>\r\n <button mat-icon-button (click)=\"delete($event)\" aria-label=\"Elimina\" matTooltip=\"Elimina\">\r\n <mat-icon>delete</mat-icon>\r\n </button>\r\n <button mat-icon-button (click)=\"sendTo($event)\" aria-label=\"Invia\" matTooltip=\"Invia per email\">\r\n <mat-icon>send</mat-icon>\r\n </button>\r\n @if(totalTrackings() > 0) {\r\n <button mat-icon-button (click)=\"sendAgain($event, false)\" aria-label=\"Invia di nuovo\"\r\n matTooltip=\"Invia di nuovo per email\">\r\n <mat-icon>forward</mat-icon>\r\n </button>\r\n @if (trackingUnopenedCount() > 0) {\r\n <button mat-icon-button (click)=\"sendAgain($event, true)\" aria-label=\"Invia se non aperto\"\r\n matTooltip=\"Invia una nuova mail a coloro che non hanno ancora aperto la mail precedente.\">\r\n <mat-icon>notifications_active</mat-icon>\r\n </button>\r\n }\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n</ng-template>", styles: [".note-wrapper{display:inline-flex;align-items:center;gap:3px}.tracking-badge{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;color:#fff;flex-shrink:0}.tracking-badge--all-open{background:#2e7d32;width:16px;height:16px}.tracking-badge--all-open mat-icon{font-size:16px;width:16px;height:16px;line-height:16px}.tracking-badge--missing{background:#c62828;font-size:10px;font-weight:700;min-width:16px;height:16px;border-radius:8px;padding:0 3px}.note{display:inline-flex;align-items:center;gap:10px;padding:2px 6px;border-radius:4px;border-left:4px solid;font-size:10px;cursor:pointer;-webkit-user-select:none;user-select:none;max-width:250px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;vertical-align:bottom;transition:filter .15s ease,box-shadow .15s ease}.note:hover{filter:brightness(.92);box-shadow:0 1px 4px #0000002e}:host-context(.dark) .note:hover{filter:brightness(1.15);box-shadow:0 1px 4px #0006}.popup{background:var(--ars-drawer-background-color);border-radius:6px;box-shadow:0 4px 16px #00000038;min-width:300px;max-width:600px;width:100%;padding:12px 0 4px 12px}.popup .popup-header{display:flex;align-items:center;justify-content:space-between;border-left:6px solid;padding-left:8px;padding-right:4px}.popup .popup-header .popup-name{font-weight:600;font-size:14px;flex:1;color:var(--ars-color-accent)}.popup .popup-toolbar{padding-right:4px}.popup .popup-footer{display:flex;justify-content:center;column-gap:6px;align-items:center;padding-top:30px;padding-bottom:8px;padding-right:26px}.popup .popup-content{font-size:13px;padding:12px 0 0 14px}.popup .popup-note{white-space:pre-wrap;margin:10px 12px 10px 0}.popup .tracking-summary{display:inline-flex;align-items:center;gap:6px;color:var(--ars-color-secondary);margin-top:10px;font-weight:700}.popup .tracking-summary mat-icon{font-size:16px;font-weight:700;width:16px;height:16px}.popup .tracking-table-wrapper{max-height:300px;overflow-y:auto;margin-top:10px;padding-right:26px}.popup .tracking-table{width:100%;border-collapse:collapse;font-size:12px}.popup .tracking-table th{position:sticky;top:0;background:var(--ars-drawer-background-color);z-index:1;box-shadow:inset 0 -1px 0 var(--ars-color-divider);text-align:left;padding:0 8px 8px;font-weight:600;color:var(--ars-color-secondary);white-space:nowrap}.popup .tracking-table th:last-child{text-align:center}.popup .tracking-table td{padding:8px 8px 0;vertical-align:middle;text-align:left}.popup .tracking-table tbody tr:nth-child(2n){background:#00000008}.popup .tracking-table .open-cell{text-align:center}.popup .tracking-table .open-yes{font-size:16px;width:16px;height:16px;color:#4caf50}.popup .tracking-table .open-no{font-size:16px;width:16px;height:16px;color:#bdbdbd}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { 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: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: FlexLayoutModule }, { kind: "directive", type: i1.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i1.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i1.FlexFillDirective, selector: "[fxFill], [fxFlexFill]" }, { kind: "directive", type: i5.DefaultShowHideDirective, selector: " [fxShow], [fxShow.print], [fxShow.xs], [fxShow.sm], [fxShow.md], [fxShow.lg], [fxShow.xl], [fxShow.lt-sm], [fxShow.lt-md], [fxShow.lt-lg], [fxShow.lt-xl], [fxShow.gt-xs], [fxShow.gt-sm], [fxShow.gt-md], [fxShow.gt-lg], [fxHide], [fxHide.print], [fxHide.xs], [fxHide.sm], [fxHide.md], [fxHide.lg], [fxHide.xl], [fxHide.lt-sm], [fxHide.lt-md], [fxHide.lt-lg], [fxHide.lt-xl], [fxHide.gt-xs], [fxHide.gt-sm], [fxHide.gt-md], [fxHide.gt-lg]", inputs: ["fxShow", "fxShow.print", "fxShow.xs", "fxShow.sm", "fxShow.md", "fxShow.lg", "fxShow.xl", "fxShow.lt-sm", "fxShow.lt-md", "fxShow.lt-lg", "fxShow.lt-xl", "fxShow.gt-xs", "fxShow.gt-sm", "fxShow.gt-md", "fxShow.gt-lg", "fxHide", "fxHide.print", "fxHide.xs", "fxHide.sm", "fxHide.md", "fxHide.lg", "fxHide.xl", "fxHide.lt-sm", "fxHide.lt-md", "fxHide.lt-lg", "fxHide.lt-xl", "fxHide.gt-xs", "fxHide.gt-sm", "fxHide.gt-md", "fxHide.gt-lg"] }, { kind: "ngmodule", type: OverlayModule }, { kind: "pipe", type: FormatPipe, name: "format" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2052
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.10", type: ClipperNoteBadgeComponent, isStandalone: true, selector: "clipper-note-badge", inputs: { note: { classPropertyName: "note", publicName: "note", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { populateContacts: "populateContacts", note: "noteChange" }, viewQueries: [{ propertyName: "popupTpl", first: true, predicate: ["popupTpl"], descendants: true, isSignal: true }], ngImport: i0, template: "<div class=\"note-wrapper\">\r\n <div class=\"note\" [style.border-left-color]=\"note().color\" [style.background-color]=\"backgroundColor()\"\r\n (click)=\"showPopup($event)\">\r\n {{note().name}}\r\n @if (trackingUnopenedCount() >= 0) {\r\n @if (trackingUnopenedCount() === 0) {\r\n <span class=\"tracking-badge tracking-badge--all-open\"\r\n [matTooltip]=\"'Mail tutte aperte'\"><mat-icon>check_circle</mat-icon></span>\r\n } @else {\r\n <span class=\"tracking-badge tracking-badge--missing\"\r\n [matTooltip]=\"'Mail non aperte: ' + trackingUnopenedCount()\">{{-trackingUnopenedCount()}}</span>\r\n }\r\n }\r\n </div>\r\n</div>\r\n\r\n<ng-template #popupTpl>\r\n <div class=\"popup\">\r\n <div class=\"popup-header\" [style.border-left-color]=\"note().color\">\r\n <span class=\"popup-name\">{{note().name}}</span>\r\n <button mat-icon-button (click)=\"closePopup($event)\" aria-label=\"Chiudi\" matTooltip=\"Chiudi\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </div>\r\n <div class=\"popup-content\">\r\n @if (note().note) {\r\n <div class=\"popup-note\">{{note().note}}</div>\r\n }\r\n @if (totalTrackings() > 0) {\r\n <div class=\"popup-toolbar\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\" fxFill>\r\n <div class=\"tracking-summary\" matTooltip=\"Aperture mail\">\r\n <mat-icon class=\"open-yes\">mark_email_read</mat-icon>\r\n {{trackingOpenedCount()}} / {{totalTrackings()}}\r\n </div>\r\n <div>\r\n <button mat-icon-button (click)=\"refresh($event)\" aria-label=\"Aggiorna\" matTooltip=\"Aggiorna stato aperture\">\r\n <mat-icon>refresh</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <div class=\"tracking-table-wrapper\">\r\n <table class=\"tracking-table\">\r\n <thead>\r\n <tr>\r\n <th>Destinatario</th>\r\n <th fxHide.xs>Inviato il</th>\r\n <th>Apertura</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n @for (t of note().trackings; track t.id) {\r\n <tr>\r\n <td>{{t.email ?? '-'}}</td>\r\n <td fxHide.xs class=\"center\">{{t.sentDate | format:'D':'dd/MM/yyyy HH:mm'}}</td>\r\n <td fxHide.xs class=\"open-cell\">\r\n @if (t.openDate) {\r\n <span class=\"open-yes\" [matTooltip]=\"t.openDate | format:'D':'dd/MM/yyyy HH:mm'\">SI</span>\r\n } @else {\r\n <span class=\"open-no\">NO</span>\r\n }\r\n </td>\r\n </tr>\r\n }\r\n </tbody>\r\n </table>\r\n </div>\r\n }\r\n <div class=\"popup-footer\">\r\n <button mat-icon-button (click)=\"edit($event)\" aria-label=\"Modifica\" matTooltip=\"Modifica\">\r\n <mat-icon>edit</mat-icon>\r\n </button>\r\n <button mat-icon-button (click)=\"delete($event)\" aria-label=\"Elimina\" matTooltip=\"Elimina\">\r\n <mat-icon>delete</mat-icon>\r\n </button>\r\n <button mat-icon-button (click)=\"sendTo($event)\" aria-label=\"Invia\" matTooltip=\"Invia per email\">\r\n <mat-icon>send</mat-icon>\r\n </button>\r\n @if(totalTrackings() > 0) {\r\n <button mat-icon-button (click)=\"sendAgain($event, false)\" aria-label=\"Invia di nuovo\"\r\n matTooltip=\"Invia di nuovo per email\">\r\n <mat-icon>forward</mat-icon>\r\n </button>\r\n @if (trackingUnopenedCount() > 0) {\r\n <button mat-icon-button (click)=\"sendAgain($event, true)\" aria-label=\"Invia se non aperto\"\r\n matTooltip=\"Invia una nuova mail a coloro che non hanno ancora aperto la mail precedente.\">\r\n <mat-icon>notifications_active</mat-icon>\r\n </button>\r\n }\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n</ng-template>", styles: [".note-wrapper{display:inline-flex;align-items:center;gap:3px}.tracking-badge{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;color:#fff;flex-shrink:0}.tracking-badge--all-open{background:#2e7d32;width:16px;height:16px}.tracking-badge--all-open mat-icon{font-size:16px;width:16px;height:16px;line-height:16px}.tracking-badge--missing{background:#c62828;font-size:10px;font-weight:700;min-width:16px;height:16px;border-radius:8px;padding:0 3px}.note{display:inline-flex;align-items:center;gap:10px;padding:2px 6px;border-radius:4px;border-left:4px solid;font-size:10px;cursor:pointer;-webkit-user-select:none;user-select:none;max-width:250px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;vertical-align:bottom;transition:filter .15s ease,box-shadow .15s ease}.note:hover{filter:brightness(.92);box-shadow:0 1px 4px #0000002e}:host-context(.dark) .note:hover{filter:brightness(1.15);box-shadow:0 1px 4px #0006}.popup{background:var(--ars-drawer-background-color);border-radius:6px;box-shadow:0 4px 16px #00000038;min-width:300px;max-width:600px;width:100%;padding:12px 0 4px 12px}.popup .popup-header{display:flex;align-items:center;justify-content:space-between;border-left:6px solid;padding-left:8px;padding-right:4px}.popup .popup-header .popup-name{font-weight:600;font-size:14px;flex:1;color:var(--ars-color-accent)}.popup .popup-toolbar{padding-right:4px}.popup .popup-footer{display:flex;justify-content:center;column-gap:6px;align-items:center;padding-top:30px;padding-bottom:8px;padding-right:26px}.popup .popup-content{font-size:13px;padding:12px 0 0 14px}.popup .popup-note{white-space:pre-wrap;margin:10px 12px 10px 0}.popup .tracking-summary{display:inline-flex;align-items:center;gap:6px;color:var(--ars-color-secondary);margin-top:10px;font-weight:700}.popup .tracking-summary mat-icon{font-size:16px;font-weight:700;width:16px;height:16px}.popup .tracking-table-wrapper{max-height:300px;overflow-y:auto;margin-top:10px;margin-right:10px}.popup .tracking-table{width:100%;border-collapse:collapse;font-size:12px}.popup .tracking-table tr:first-child td{padding-top:8px}.popup .tracking-table th{position:sticky;top:0;background:var(--ars-drawer-background-color);z-index:1;box-shadow:inset 0 -1px 0 var(--ars-color-divider);text-align:left;padding:6px;font-weight:600;color:var(--ars-color-secondary);white-space:nowrap}.popup .tracking-table th:last-child{text-align:center}.popup .tracking-table td{padding:0 6px;vertical-align:middle;text-align:left}.popup .tracking-table tbody tr:nth-child(2n){background:#00000008}.popup .tracking-table .open-cell{text-align:center}.popup .tracking-table .open-yes-color{color:#4caf50}.popup .tracking-table .open-yes{font-size:16px;width:16px;height:16px;color:#4caf50}.popup .tracking-table .open-no{font-size:16px;width:16px;height:16px;color:#bdbdbd}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { 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: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: FlexLayoutModule }, { kind: "directive", type: i1.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i1.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i1.FlexFillDirective, selector: "[fxFill], [fxFlexFill]" }, { kind: "directive", type: i5.DefaultShowHideDirective, selector: " [fxShow], [fxShow.print], [fxShow.xs], [fxShow.sm], [fxShow.md], [fxShow.lg], [fxShow.xl], [fxShow.lt-sm], [fxShow.lt-md], [fxShow.lt-lg], [fxShow.lt-xl], [fxShow.gt-xs], [fxShow.gt-sm], [fxShow.gt-md], [fxShow.gt-lg], [fxHide], [fxHide.print], [fxHide.xs], [fxHide.sm], [fxHide.md], [fxHide.lg], [fxHide.xl], [fxHide.lt-sm], [fxHide.lt-md], [fxHide.lt-lg], [fxHide.lt-xl], [fxHide.gt-xs], [fxHide.gt-sm], [fxHide.gt-md], [fxHide.gt-lg]", inputs: ["fxShow", "fxShow.print", "fxShow.xs", "fxShow.sm", "fxShow.md", "fxShow.lg", "fxShow.xl", "fxShow.lt-sm", "fxShow.lt-md", "fxShow.lt-lg", "fxShow.lt-xl", "fxShow.gt-xs", "fxShow.gt-sm", "fxShow.gt-md", "fxShow.gt-lg", "fxHide", "fxHide.print", "fxHide.xs", "fxHide.sm", "fxHide.md", "fxHide.lg", "fxHide.xl", "fxHide.lt-sm", "fxHide.lt-md", "fxHide.lt-lg", "fxHide.lt-xl", "fxHide.gt-xs", "fxHide.gt-sm", "fxHide.gt-md", "fxHide.gt-lg"] }, { kind: "ngmodule", type: OverlayModule }, { kind: "pipe", type: FormatPipe, name: "format" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2053
2053
  }
2054
2054
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: ClipperNoteBadgeComponent, decorators: [{
2055
2055
  type: Component,
@@ -2058,7 +2058,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImpo
2058
2058
  MatTooltipModule,
2059
2059
  FormatPipe,
2060
2060
  FlexLayoutModule,
2061
- OverlayModule], template: "<div class=\"note-wrapper\">\r\n <div class=\"note\" [style.border-left-color]=\"note().color\" [style.background-color]=\"backgroundColor()\"\r\n (click)=\"showPopup($event)\">\r\n {{note().name}}\r\n @if (trackingUnopenedCount() >= 0) {\r\n @if (trackingUnopenedCount() === 0) {\r\n <span class=\"tracking-badge tracking-badge--all-open\"\r\n [matTooltip]=\"'Mail tutte aperte'\"><mat-icon>check_circle</mat-icon></span>\r\n } @else {\r\n <span class=\"tracking-badge tracking-badge--missing\"\r\n [matTooltip]=\"'Mail non aperte: ' + trackingUnopenedCount()\">{{-trackingUnopenedCount()}}</span>\r\n }\r\n }\r\n </div>\r\n</div>\r\n\r\n<ng-template #popupTpl>\r\n <div class=\"popup\">\r\n <div class=\"popup-header\" [style.border-left-color]=\"note().color\">\r\n <span class=\"popup-name\">{{note().name}}</span>\r\n <button mat-icon-button (click)=\"closePopup($event)\" aria-label=\"Chiudi\" matTooltip=\"Chiudi\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </div>\r\n <div class=\"popup-content\">\r\n @if (note().note) {\r\n <div class=\"popup-note\">{{note().note}}</div>\r\n }\r\n @if (totalTrackings() > 0) {\r\n <div class=\"popup-toolbar\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\" fxFill>\r\n <div class=\"tracking-summary\" matTooltip=\"Aperture mail\">\r\n <mat-icon class=\"open-yes\">mark_email_read</mat-icon>\r\n {{trackingOpenedCount()}} / {{totalTrackings()}}\r\n </div>\r\n <div>\r\n <button mat-icon-button (click)=\"refresh($event)\" aria-label=\"Aggiorna\" matTooltip=\"Aggiorna stato aperture\">\r\n <mat-icon>refresh</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <div class=\"tracking-table-wrapper\">\r\n <table class=\"tracking-table\">\r\n <thead>\r\n <tr>\r\n <th>Destinatario</th>\r\n <th fxHide.xs>Inviato il</th>\r\n <th>Apertura</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n @for (t of note().trackings; track t.id) {\r\n <tr>\r\n <td>{{t.email ?? '-'}}</td>\r\n <td fxHide.xs class=\"center\">{{t.sentDate | format:'D':'dd/MM/yyyy HH:mm'}}</td>\r\n <td class=\"open-cell\">\r\n @if (t.openDate) {\r\n <mat-icon class=\"open-yes\"\r\n [matTooltip]=\"t.openDate | format:'D':'dd/MM/yyyy HH:mm'\">check_circle</mat-icon>\r\n } @else {\r\n <mat-icon class=\"open-no\">radio_button_unchecked</mat-icon>\r\n }\r\n </td>\r\n </tr>\r\n }\r\n </tbody>\r\n </table>\r\n </div>\r\n }\r\n <div class=\"popup-footer\">\r\n <button mat-icon-button (click)=\"edit($event)\" aria-label=\"Modifica\" matTooltip=\"Modifica\">\r\n <mat-icon>edit</mat-icon>\r\n </button>\r\n <button mat-icon-button (click)=\"delete($event)\" aria-label=\"Elimina\" matTooltip=\"Elimina\">\r\n <mat-icon>delete</mat-icon>\r\n </button>\r\n <button mat-icon-button (click)=\"sendTo($event)\" aria-label=\"Invia\" matTooltip=\"Invia per email\">\r\n <mat-icon>send</mat-icon>\r\n </button>\r\n @if(totalTrackings() > 0) {\r\n <button mat-icon-button (click)=\"sendAgain($event, false)\" aria-label=\"Invia di nuovo\"\r\n matTooltip=\"Invia di nuovo per email\">\r\n <mat-icon>forward</mat-icon>\r\n </button>\r\n @if (trackingUnopenedCount() > 0) {\r\n <button mat-icon-button (click)=\"sendAgain($event, true)\" aria-label=\"Invia se non aperto\"\r\n matTooltip=\"Invia una nuova mail a coloro che non hanno ancora aperto la mail precedente.\">\r\n <mat-icon>notifications_active</mat-icon>\r\n </button>\r\n }\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n</ng-template>", styles: [".note-wrapper{display:inline-flex;align-items:center;gap:3px}.tracking-badge{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;color:#fff;flex-shrink:0}.tracking-badge--all-open{background:#2e7d32;width:16px;height:16px}.tracking-badge--all-open mat-icon{font-size:16px;width:16px;height:16px;line-height:16px}.tracking-badge--missing{background:#c62828;font-size:10px;font-weight:700;min-width:16px;height:16px;border-radius:8px;padding:0 3px}.note{display:inline-flex;align-items:center;gap:10px;padding:2px 6px;border-radius:4px;border-left:4px solid;font-size:10px;cursor:pointer;-webkit-user-select:none;user-select:none;max-width:250px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;vertical-align:bottom;transition:filter .15s ease,box-shadow .15s ease}.note:hover{filter:brightness(.92);box-shadow:0 1px 4px #0000002e}:host-context(.dark) .note:hover{filter:brightness(1.15);box-shadow:0 1px 4px #0006}.popup{background:var(--ars-drawer-background-color);border-radius:6px;box-shadow:0 4px 16px #00000038;min-width:300px;max-width:600px;width:100%;padding:12px 0 4px 12px}.popup .popup-header{display:flex;align-items:center;justify-content:space-between;border-left:6px solid;padding-left:8px;padding-right:4px}.popup .popup-header .popup-name{font-weight:600;font-size:14px;flex:1;color:var(--ars-color-accent)}.popup .popup-toolbar{padding-right:4px}.popup .popup-footer{display:flex;justify-content:center;column-gap:6px;align-items:center;padding-top:30px;padding-bottom:8px;padding-right:26px}.popup .popup-content{font-size:13px;padding:12px 0 0 14px}.popup .popup-note{white-space:pre-wrap;margin:10px 12px 10px 0}.popup .tracking-summary{display:inline-flex;align-items:center;gap:6px;color:var(--ars-color-secondary);margin-top:10px;font-weight:700}.popup .tracking-summary mat-icon{font-size:16px;font-weight:700;width:16px;height:16px}.popup .tracking-table-wrapper{max-height:300px;overflow-y:auto;margin-top:10px;padding-right:26px}.popup .tracking-table{width:100%;border-collapse:collapse;font-size:12px}.popup .tracking-table th{position:sticky;top:0;background:var(--ars-drawer-background-color);z-index:1;box-shadow:inset 0 -1px 0 var(--ars-color-divider);text-align:left;padding:0 8px 8px;font-weight:600;color:var(--ars-color-secondary);white-space:nowrap}.popup .tracking-table th:last-child{text-align:center}.popup .tracking-table td{padding:8px 8px 0;vertical-align:middle;text-align:left}.popup .tracking-table tbody tr:nth-child(2n){background:#00000008}.popup .tracking-table .open-cell{text-align:center}.popup .tracking-table .open-yes{font-size:16px;width:16px;height:16px;color:#4caf50}.popup .tracking-table .open-no{font-size:16px;width:16px;height:16px;color:#bdbdbd}\n"] }]
2061
+ OverlayModule], template: "<div class=\"note-wrapper\">\r\n <div class=\"note\" [style.border-left-color]=\"note().color\" [style.background-color]=\"backgroundColor()\"\r\n (click)=\"showPopup($event)\">\r\n {{note().name}}\r\n @if (trackingUnopenedCount() >= 0) {\r\n @if (trackingUnopenedCount() === 0) {\r\n <span class=\"tracking-badge tracking-badge--all-open\"\r\n [matTooltip]=\"'Mail tutte aperte'\"><mat-icon>check_circle</mat-icon></span>\r\n } @else {\r\n <span class=\"tracking-badge tracking-badge--missing\"\r\n [matTooltip]=\"'Mail non aperte: ' + trackingUnopenedCount()\">{{-trackingUnopenedCount()}}</span>\r\n }\r\n }\r\n </div>\r\n</div>\r\n\r\n<ng-template #popupTpl>\r\n <div class=\"popup\">\r\n <div class=\"popup-header\" [style.border-left-color]=\"note().color\">\r\n <span class=\"popup-name\">{{note().name}}</span>\r\n <button mat-icon-button (click)=\"closePopup($event)\" aria-label=\"Chiudi\" matTooltip=\"Chiudi\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </div>\r\n <div class=\"popup-content\">\r\n @if (note().note) {\r\n <div class=\"popup-note\">{{note().note}}</div>\r\n }\r\n @if (totalTrackings() > 0) {\r\n <div class=\"popup-toolbar\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\" fxFill>\r\n <div class=\"tracking-summary\" matTooltip=\"Aperture mail\">\r\n <mat-icon class=\"open-yes\">mark_email_read</mat-icon>\r\n {{trackingOpenedCount()}} / {{totalTrackings()}}\r\n </div>\r\n <div>\r\n <button mat-icon-button (click)=\"refresh($event)\" aria-label=\"Aggiorna\" matTooltip=\"Aggiorna stato aperture\">\r\n <mat-icon>refresh</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <div class=\"tracking-table-wrapper\">\r\n <table class=\"tracking-table\">\r\n <thead>\r\n <tr>\r\n <th>Destinatario</th>\r\n <th fxHide.xs>Inviato il</th>\r\n <th>Apertura</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n @for (t of note().trackings; track t.id) {\r\n <tr>\r\n <td>{{t.email ?? '-'}}</td>\r\n <td fxHide.xs class=\"center\">{{t.sentDate | format:'D':'dd/MM/yyyy HH:mm'}}</td>\r\n <td fxHide.xs class=\"open-cell\">\r\n @if (t.openDate) {\r\n <span class=\"open-yes\" [matTooltip]=\"t.openDate | format:'D':'dd/MM/yyyy HH:mm'\">SI</span>\r\n } @else {\r\n <span class=\"open-no\">NO</span>\r\n }\r\n </td>\r\n </tr>\r\n }\r\n </tbody>\r\n </table>\r\n </div>\r\n }\r\n <div class=\"popup-footer\">\r\n <button mat-icon-button (click)=\"edit($event)\" aria-label=\"Modifica\" matTooltip=\"Modifica\">\r\n <mat-icon>edit</mat-icon>\r\n </button>\r\n <button mat-icon-button (click)=\"delete($event)\" aria-label=\"Elimina\" matTooltip=\"Elimina\">\r\n <mat-icon>delete</mat-icon>\r\n </button>\r\n <button mat-icon-button (click)=\"sendTo($event)\" aria-label=\"Invia\" matTooltip=\"Invia per email\">\r\n <mat-icon>send</mat-icon>\r\n </button>\r\n @if(totalTrackings() > 0) {\r\n <button mat-icon-button (click)=\"sendAgain($event, false)\" aria-label=\"Invia di nuovo\"\r\n matTooltip=\"Invia di nuovo per email\">\r\n <mat-icon>forward</mat-icon>\r\n </button>\r\n @if (trackingUnopenedCount() > 0) {\r\n <button mat-icon-button (click)=\"sendAgain($event, true)\" aria-label=\"Invia se non aperto\"\r\n matTooltip=\"Invia una nuova mail a coloro che non hanno ancora aperto la mail precedente.\">\r\n <mat-icon>notifications_active</mat-icon>\r\n </button>\r\n }\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n</ng-template>", styles: [".note-wrapper{display:inline-flex;align-items:center;gap:3px}.tracking-badge{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;color:#fff;flex-shrink:0}.tracking-badge--all-open{background:#2e7d32;width:16px;height:16px}.tracking-badge--all-open mat-icon{font-size:16px;width:16px;height:16px;line-height:16px}.tracking-badge--missing{background:#c62828;font-size:10px;font-weight:700;min-width:16px;height:16px;border-radius:8px;padding:0 3px}.note{display:inline-flex;align-items:center;gap:10px;padding:2px 6px;border-radius:4px;border-left:4px solid;font-size:10px;cursor:pointer;-webkit-user-select:none;user-select:none;max-width:250px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;vertical-align:bottom;transition:filter .15s ease,box-shadow .15s ease}.note:hover{filter:brightness(.92);box-shadow:0 1px 4px #0000002e}:host-context(.dark) .note:hover{filter:brightness(1.15);box-shadow:0 1px 4px #0006}.popup{background:var(--ars-drawer-background-color);border-radius:6px;box-shadow:0 4px 16px #00000038;min-width:300px;max-width:600px;width:100%;padding:12px 0 4px 12px}.popup .popup-header{display:flex;align-items:center;justify-content:space-between;border-left:6px solid;padding-left:8px;padding-right:4px}.popup .popup-header .popup-name{font-weight:600;font-size:14px;flex:1;color:var(--ars-color-accent)}.popup .popup-toolbar{padding-right:4px}.popup .popup-footer{display:flex;justify-content:center;column-gap:6px;align-items:center;padding-top:30px;padding-bottom:8px;padding-right:26px}.popup .popup-content{font-size:13px;padding:12px 0 0 14px}.popup .popup-note{white-space:pre-wrap;margin:10px 12px 10px 0}.popup .tracking-summary{display:inline-flex;align-items:center;gap:6px;color:var(--ars-color-secondary);margin-top:10px;font-weight:700}.popup .tracking-summary mat-icon{font-size:16px;font-weight:700;width:16px;height:16px}.popup .tracking-table-wrapper{max-height:300px;overflow-y:auto;margin-top:10px;margin-right:10px}.popup .tracking-table{width:100%;border-collapse:collapse;font-size:12px}.popup .tracking-table tr:first-child td{padding-top:8px}.popup .tracking-table th{position:sticky;top:0;background:var(--ars-drawer-background-color);z-index:1;box-shadow:inset 0 -1px 0 var(--ars-color-divider);text-align:left;padding:6px;font-weight:600;color:var(--ars-color-secondary);white-space:nowrap}.popup .tracking-table th:last-child{text-align:center}.popup .tracking-table td{padding:0 6px;vertical-align:middle;text-align:left}.popup .tracking-table tbody tr:nth-child(2n){background:#00000008}.popup .tracking-table .open-cell{text-align:center}.popup .tracking-table .open-yes-color{color:#4caf50}.popup .tracking-table .open-yes{font-size:16px;width:16px;height:16px;color:#4caf50}.popup .tracking-table .open-no{font-size:16px;width:16px;height:16px;color:#bdbdbd}\n"] }]
2062
2062
  }], ctorParameters: () => [], propDecorators: { populateContacts: [{ type: i0.Output, args: ["populateContacts"] }], popupTpl: [{ type: i0.ViewChild, args: ['popupTpl', { isSignal: true }] }], note: [{ type: i0.Input, args: [{ isSignal: true, alias: "note", required: true }] }, { type: i0.Output, args: ["noteChange"] }] } });
2063
2063
 
2064
2064
  var ClipperSearchResultItemDisplayMode;
@@ -4335,7 +4335,7 @@ class ClipperNoteEditComponent {
4335
4335
  this.colors = NotesColors;
4336
4336
  this.isNew = signal(!this.dialogData?.currentItem?.id, ...(ngDevMode ? [{ debugName: "isNew" }] : /* istanbul ignore next */ []));
4337
4337
  this.availableTeams = signal([], ...(ngDevMode ? [{ debugName: "availableTeams" }] : /* istanbul ignore next */ []));
4338
- this.selectedTeam = { name: 'Personale', value: SystemUtils.emptyUUID() };
4338
+ this.selectedTeam = { name: 'Nessuno, usa note personali', value: SystemUtils.emptyUUID() };
4339
4339
  this.item = this.dialogData.currentItem?.id
4340
4340
  ? this.dialogData.currentItem
4341
4341
  : { color: this.colors[0].value };
@@ -4399,7 +4399,7 @@ class ClipperNoteEditComponent {
4399
4399
  });
4400
4400
  }
4401
4401
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: ClipperNoteEditComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
4402
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.10", type: ClipperNoteEditComponent, isStandalone: true, selector: "ng-component", outputs: { done: "done" }, host: { attributes: { "Bind": SystemUtils.generateUUID() } }, ngImport: i0, template: "<div class=\"dialog-info\">\r\n @if (f.form.invalid) {\r\n <span class=\"dialog-info-error\">Ci sono ancora dei campi obbligatori (*) non compilati.</span>\r\n } @else {\r\n <span class=\"dialog-info-ok\">Tutti i campi obbligatori (*) sono compilati.</span>\r\n }\r\n</div>\r\n<h2 mat-dialog-title [innerHTML]=\"dialogTitle() | safeHtml\"></h2>\r\n<mat-dialog-content>\r\n <form name=\"form\" #f=\"ngForm\" novalidate>\r\n <div fxLayout=\"column\" class=\"spaced\">\r\n @if (availableTeams() && availableTeams().length > 1) {\r\n <mat-form-field>\r\n <mat-label>Team</mat-label>\r\n <mat-select [(ngModel)]=\"selectedTeam\" #team=\"ngModel\" name=\"team\" required [disabled]=\"!isNew()\">\r\n @for (t of availableTeams(); track $index;) {\r\n <mat-option [value]=\"t\">\r\n {{t.name}}\r\n </mat-option>\r\n }\r\n </mat-select>\r\n @if (team.invalid) {\r\n <mat-error>Obbligatorio.</mat-error>\r\n }\r\n </mat-form-field>\r\n }\r\n <div fxLayout=\"row wrap\" fxLayoutAlign=\"space-between center\" fxFill>\r\n <div fxFlex=\"29\" fxFlex.xs=\"100\">\r\n <mat-form-field class=\"wide\">\r\n <mat-label>Colore</mat-label>\r\n <mat-select name=\"color\" [(ngModel)]=\"item.color\" #color=\"ngModel\" name=\"color\" required>\r\n <mat-select-trigger>\r\n @if (item.color) {\r\n <span style=\"display:inline-flex;align-items:center;gap:8px;\">\r\n <span [style.background]=\"item.color\" style=\"width:14px;height:14px;border-radius:50%;display:inline-block;flex-shrink:0;\"></span>\r\n {{ colorName(item.color) }}\r\n </span>\r\n }\r\n </mat-select-trigger>\r\n @for (c of colors; track c) {\r\n <mat-option [value]=\"c.value\">\r\n <span style=\"display:inline-flex;align-items:center;gap:8px;\">\r\n <span [style.background]=\"c.value\"\r\n style=\"width:16px;height:16px;border-radius:50%;display:inline-block;\"></span>\r\n {{ c.name }}\r\n </span>\r\n </mat-option>\r\n }\r\n </mat-select>\r\n @if (color.invalid) {\r\n <mat-error>Obbligatorio.</mat-error>\r\n }\r\n </mat-form-field>\r\n </div>\r\n <div fxFlex=\"69\" fxFlex.xs=\"100\">\r\n <mat-form-field class=\"wide\">\r\n <mat-label>Nome</mat-label>\r\n <input matInput name=\"name\" [(ngModel)]=\"item.name\" #name=\"ngModel\" maxlength=\"100\" required />\r\n @if (name.invalid) {\r\n <mat-error>Obbligatorio.</mat-error>\r\n }\r\n <mat-hint align=\"end\">{{name.value?.length || 0}}/100 </mat-hint>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n\r\n <mat-form-field>\r\n <mat-label>Note</mat-label>\r\n <textarea matInput [(ngModel)]=\"item.note\" name=\"note\" maxlength=\"1000\" #text=\"ngModel\" cdkTextareaAutosize\r\n cdkAutosizeMinRows=\"1\" cdkAutosizeMaxRows=\"10\"></textarea>\r\n <mat-hint align=\"end\">{{text.value?.length || 0}}/1000 </mat-hint>\r\n </mat-form-field>\r\n </div>\r\n\r\n </form>\r\n</mat-dialog-content>\r\n<mat-dialog-actions>\r\n <div fxLayout=\"row\" fxLayoutGap=\"10px\" fxFill>\r\n <div fxLayoutAlign=\"end\" fxFill>\r\n <button mat-flat-button [disabled]=\"f.form.invalid\" (click)=\"ok()\">Salva</button>\r\n <button mat-stroked-button [mat-dialog-close]=\"true\">Annulla</button>\r\n </div>\r\n </div>\r\n</mat-dialog-actions>", styles: [""], dependencies: [{ kind: "directive", type: MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1$2.NgForm, selector: "form:not([ngNoForm]):not([formGroup]):not([formArray]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FlexModule$1 }, { kind: "directive", type: i1.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i1.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i1.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i1.FlexFillDirective, selector: "[fxFill], [fxFlexFill]" }, { kind: "directive", type: i1.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3$1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i3$1.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i4$2.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: "directive", type: i6.CdkTextareaAutosize, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMinRows", "cdkAutosizeMaxRows", "cdkTextareaAutosize", "placeholder"], exportAs: ["cdkTextareaAutosize"] }, { kind: "ngmodule", type: TextFieldModule }, { 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: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "ngmodule", type: MatCheckboxModule }, { 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: MatSelectModule }, { kind: "component", type: i7$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", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "directive", type: i7$1.MatSelectTrigger, selector: "mat-select-trigger" }, { kind: "component", type: i7$1.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "pipe", type: SafeHtmlPipe, name: "safeHtml" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4402
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.10", type: ClipperNoteEditComponent, isStandalone: true, selector: "ng-component", outputs: { done: "done" }, host: { attributes: { "Bind": SystemUtils.generateUUID() } }, ngImport: i0, template: "<div class=\"dialog-info\">\r\n @if (f.form.invalid) {\r\n <span class=\"dialog-info-error\">Ci sono ancora dei campi obbligatori (*) non compilati.</span>\r\n } @else {\r\n <span class=\"dialog-info-ok\">Tutti i campi obbligatori (*) sono compilati.</span>\r\n }\r\n</div>\r\n<h2 mat-dialog-title [innerHTML]=\"dialogTitle() | safeHtml\"></h2>\r\n<mat-dialog-content>\r\n <form name=\"form\" #f=\"ngForm\" novalidate>\r\n <div fxLayout=\"column\" class=\"spaced\">\r\n @if (availableTeams() && availableTeams().length > 1) {\r\n <mat-form-field>\r\n <mat-label>Team</mat-label>\r\n <mat-select [(ngModel)]=\"selectedTeam\" #team=\"ngModel\" name=\"team\" required [disabled]=\"!isNew()\">\r\n @for (t of availableTeams(); track $index;) {\r\n <mat-option [value]=\"t\">\r\n {{t.name}}\r\n </mat-option>\r\n }\r\n </mat-select>\r\n @if (team.invalid) {\r\n <mat-error>Obbligatorio.</mat-error>\r\n }\r\n </mat-form-field>\r\n }\r\n <div fxLayout=\"row wrap\" fxLayoutAlign=\"space-between center\" fxFill>\r\n <div fxFlex=\"29\" fxFlex.xs=\"100\">\r\n <mat-form-field class=\"wide\">\r\n <mat-label>Colore</mat-label>\r\n <mat-select name=\"color\" [(ngModel)]=\"item.color\" #color=\"ngModel\" name=\"color\" required>\r\n <mat-select-trigger>\r\n @if (item.color) {\r\n <span style=\"display:inline-flex;align-items:center;gap:8px;\">\r\n <span [style.background]=\"item.color\" style=\"width:14px;height:14px;border-radius:50%;display:inline-block;flex-shrink:0;\"></span>\r\n {{ colorName(item.color) }}\r\n </span>\r\n }\r\n </mat-select-trigger>\r\n @for (c of colors; track c) {\r\n <mat-option [value]=\"c.value\">\r\n <span style=\"display:inline-flex;align-items:center;gap:8px;\">\r\n <span [style.background]=\"c.value\"\r\n style=\"width:16px;height:16px;border-radius:50%;display:inline-block;\"></span>\r\n {{ c.name }}\r\n </span>\r\n </mat-option>\r\n }\r\n </mat-select>\r\n @if (color.invalid) {\r\n <mat-error>Obbligatorio.</mat-error>\r\n }\r\n </mat-form-field>\r\n </div>\r\n <div fxFlex=\"69\" fxFlex.xs=\"100\">\r\n <mat-form-field class=\"wide\">\r\n <mat-label>Etichetta</mat-label>\r\n <input matInput name=\"name\" [(ngModel)]=\"item.name\" #name=\"ngModel\" maxlength=\"100\" required />\r\n @if (name.invalid) {\r\n <mat-error>Obbligatorio.</mat-error>\r\n }\r\n <mat-hint align=\"end\">{{name.value?.length || 0}}/100 </mat-hint>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n\r\n <mat-form-field>\r\n <mat-label>Note</mat-label>\r\n <textarea matInput [(ngModel)]=\"item.note\" name=\"note\" maxlength=\"1000\" #text=\"ngModel\" cdkTextareaAutosize\r\n cdkAutosizeMinRows=\"1\" cdkAutosizeMaxRows=\"10\"></textarea>\r\n <mat-hint align=\"end\">{{text.value?.length || 0}}/1000 </mat-hint>\r\n </mat-form-field>\r\n </div>\r\n\r\n </form>\r\n</mat-dialog-content>\r\n<mat-dialog-actions>\r\n <div fxLayout=\"row\" fxLayoutGap=\"10px\" fxFill>\r\n <div fxLayoutAlign=\"end\" fxFill>\r\n <button mat-flat-button [disabled]=\"f.form.invalid\" (click)=\"ok()\">Salva</button>\r\n <button mat-stroked-button [mat-dialog-close]=\"true\">Annulla</button>\r\n </div>\r\n </div>\r\n</mat-dialog-actions>", styles: [""], dependencies: [{ kind: "directive", type: MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1$2.NgForm, selector: "form:not([ngNoForm]):not([formGroup]):not([formArray]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FlexModule$1 }, { kind: "directive", type: i1.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i1.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i1.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i1.FlexFillDirective, selector: "[fxFill], [fxFlexFill]" }, { kind: "directive", type: i1.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3$1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i3$1.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i4$2.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: "directive", type: i6.CdkTextareaAutosize, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMinRows", "cdkAutosizeMaxRows", "cdkTextareaAutosize", "placeholder"], exportAs: ["cdkTextareaAutosize"] }, { kind: "ngmodule", type: TextFieldModule }, { 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: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "ngmodule", type: MatCheckboxModule }, { 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: MatSelectModule }, { kind: "component", type: i7$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", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "directive", type: i7$1.MatSelectTrigger, selector: "mat-select-trigger" }, { kind: "component", type: i7$1.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "pipe", type: SafeHtmlPipe, name: "safeHtml" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4403
4403
  }
4404
4404
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: ClipperNoteEditComponent, decorators: [{
4405
4405
  type: Component,
@@ -4419,7 +4419,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImpo
4419
4419
  MatDialogClose,
4420
4420
  SafeHtmlPipe,
4421
4421
  MatSelectModule
4422
- ], template: "<div class=\"dialog-info\">\r\n @if (f.form.invalid) {\r\n <span class=\"dialog-info-error\">Ci sono ancora dei campi obbligatori (*) non compilati.</span>\r\n } @else {\r\n <span class=\"dialog-info-ok\">Tutti i campi obbligatori (*) sono compilati.</span>\r\n }\r\n</div>\r\n<h2 mat-dialog-title [innerHTML]=\"dialogTitle() | safeHtml\"></h2>\r\n<mat-dialog-content>\r\n <form name=\"form\" #f=\"ngForm\" novalidate>\r\n <div fxLayout=\"column\" class=\"spaced\">\r\n @if (availableTeams() && availableTeams().length > 1) {\r\n <mat-form-field>\r\n <mat-label>Team</mat-label>\r\n <mat-select [(ngModel)]=\"selectedTeam\" #team=\"ngModel\" name=\"team\" required [disabled]=\"!isNew()\">\r\n @for (t of availableTeams(); track $index;) {\r\n <mat-option [value]=\"t\">\r\n {{t.name}}\r\n </mat-option>\r\n }\r\n </mat-select>\r\n @if (team.invalid) {\r\n <mat-error>Obbligatorio.</mat-error>\r\n }\r\n </mat-form-field>\r\n }\r\n <div fxLayout=\"row wrap\" fxLayoutAlign=\"space-between center\" fxFill>\r\n <div fxFlex=\"29\" fxFlex.xs=\"100\">\r\n <mat-form-field class=\"wide\">\r\n <mat-label>Colore</mat-label>\r\n <mat-select name=\"color\" [(ngModel)]=\"item.color\" #color=\"ngModel\" name=\"color\" required>\r\n <mat-select-trigger>\r\n @if (item.color) {\r\n <span style=\"display:inline-flex;align-items:center;gap:8px;\">\r\n <span [style.background]=\"item.color\" style=\"width:14px;height:14px;border-radius:50%;display:inline-block;flex-shrink:0;\"></span>\r\n {{ colorName(item.color) }}\r\n </span>\r\n }\r\n </mat-select-trigger>\r\n @for (c of colors; track c) {\r\n <mat-option [value]=\"c.value\">\r\n <span style=\"display:inline-flex;align-items:center;gap:8px;\">\r\n <span [style.background]=\"c.value\"\r\n style=\"width:16px;height:16px;border-radius:50%;display:inline-block;\"></span>\r\n {{ c.name }}\r\n </span>\r\n </mat-option>\r\n }\r\n </mat-select>\r\n @if (color.invalid) {\r\n <mat-error>Obbligatorio.</mat-error>\r\n }\r\n </mat-form-field>\r\n </div>\r\n <div fxFlex=\"69\" fxFlex.xs=\"100\">\r\n <mat-form-field class=\"wide\">\r\n <mat-label>Nome</mat-label>\r\n <input matInput name=\"name\" [(ngModel)]=\"item.name\" #name=\"ngModel\" maxlength=\"100\" required />\r\n @if (name.invalid) {\r\n <mat-error>Obbligatorio.</mat-error>\r\n }\r\n <mat-hint align=\"end\">{{name.value?.length || 0}}/100 </mat-hint>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n\r\n <mat-form-field>\r\n <mat-label>Note</mat-label>\r\n <textarea matInput [(ngModel)]=\"item.note\" name=\"note\" maxlength=\"1000\" #text=\"ngModel\" cdkTextareaAutosize\r\n cdkAutosizeMinRows=\"1\" cdkAutosizeMaxRows=\"10\"></textarea>\r\n <mat-hint align=\"end\">{{text.value?.length || 0}}/1000 </mat-hint>\r\n </mat-form-field>\r\n </div>\r\n\r\n </form>\r\n</mat-dialog-content>\r\n<mat-dialog-actions>\r\n <div fxLayout=\"row\" fxLayoutGap=\"10px\" fxFill>\r\n <div fxLayoutAlign=\"end\" fxFill>\r\n <button mat-flat-button [disabled]=\"f.form.invalid\" (click)=\"ok()\">Salva</button>\r\n <button mat-stroked-button [mat-dialog-close]=\"true\">Annulla</button>\r\n </div>\r\n </div>\r\n</mat-dialog-actions>" }]
4422
+ ], template: "<div class=\"dialog-info\">\r\n @if (f.form.invalid) {\r\n <span class=\"dialog-info-error\">Ci sono ancora dei campi obbligatori (*) non compilati.</span>\r\n } @else {\r\n <span class=\"dialog-info-ok\">Tutti i campi obbligatori (*) sono compilati.</span>\r\n }\r\n</div>\r\n<h2 mat-dialog-title [innerHTML]=\"dialogTitle() | safeHtml\"></h2>\r\n<mat-dialog-content>\r\n <form name=\"form\" #f=\"ngForm\" novalidate>\r\n <div fxLayout=\"column\" class=\"spaced\">\r\n @if (availableTeams() && availableTeams().length > 1) {\r\n <mat-form-field>\r\n <mat-label>Team</mat-label>\r\n <mat-select [(ngModel)]=\"selectedTeam\" #team=\"ngModel\" name=\"team\" required [disabled]=\"!isNew()\">\r\n @for (t of availableTeams(); track $index;) {\r\n <mat-option [value]=\"t\">\r\n {{t.name}}\r\n </mat-option>\r\n }\r\n </mat-select>\r\n @if (team.invalid) {\r\n <mat-error>Obbligatorio.</mat-error>\r\n }\r\n </mat-form-field>\r\n }\r\n <div fxLayout=\"row wrap\" fxLayoutAlign=\"space-between center\" fxFill>\r\n <div fxFlex=\"29\" fxFlex.xs=\"100\">\r\n <mat-form-field class=\"wide\">\r\n <mat-label>Colore</mat-label>\r\n <mat-select name=\"color\" [(ngModel)]=\"item.color\" #color=\"ngModel\" name=\"color\" required>\r\n <mat-select-trigger>\r\n @if (item.color) {\r\n <span style=\"display:inline-flex;align-items:center;gap:8px;\">\r\n <span [style.background]=\"item.color\" style=\"width:14px;height:14px;border-radius:50%;display:inline-block;flex-shrink:0;\"></span>\r\n {{ colorName(item.color) }}\r\n </span>\r\n }\r\n </mat-select-trigger>\r\n @for (c of colors; track c) {\r\n <mat-option [value]=\"c.value\">\r\n <span style=\"display:inline-flex;align-items:center;gap:8px;\">\r\n <span [style.background]=\"c.value\"\r\n style=\"width:16px;height:16px;border-radius:50%;display:inline-block;\"></span>\r\n {{ c.name }}\r\n </span>\r\n </mat-option>\r\n }\r\n </mat-select>\r\n @if (color.invalid) {\r\n <mat-error>Obbligatorio.</mat-error>\r\n }\r\n </mat-form-field>\r\n </div>\r\n <div fxFlex=\"69\" fxFlex.xs=\"100\">\r\n <mat-form-field class=\"wide\">\r\n <mat-label>Etichetta</mat-label>\r\n <input matInput name=\"name\" [(ngModel)]=\"item.name\" #name=\"ngModel\" maxlength=\"100\" required />\r\n @if (name.invalid) {\r\n <mat-error>Obbligatorio.</mat-error>\r\n }\r\n <mat-hint align=\"end\">{{name.value?.length || 0}}/100 </mat-hint>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n\r\n <mat-form-field>\r\n <mat-label>Note</mat-label>\r\n <textarea matInput [(ngModel)]=\"item.note\" name=\"note\" maxlength=\"1000\" #text=\"ngModel\" cdkTextareaAutosize\r\n cdkAutosizeMinRows=\"1\" cdkAutosizeMaxRows=\"10\"></textarea>\r\n <mat-hint align=\"end\">{{text.value?.length || 0}}/1000 </mat-hint>\r\n </mat-form-field>\r\n </div>\r\n\r\n </form>\r\n</mat-dialog-content>\r\n<mat-dialog-actions>\r\n <div fxLayout=\"row\" fxLayoutGap=\"10px\" fxFill>\r\n <div fxLayoutAlign=\"end\" fxFill>\r\n <button mat-flat-button [disabled]=\"f.form.invalid\" (click)=\"ok()\">Salva</button>\r\n <button mat-stroked-button [mat-dialog-close]=\"true\">Annulla</button>\r\n </div>\r\n </div>\r\n</mat-dialog-actions>" }]
4423
4423
  }], ctorParameters: () => [], propDecorators: { done: [{ type: i0.Output, args: ["done"] }] } });
4424
4424
 
4425
4425
  var noteEdit_component = /*#__PURE__*/Object.freeze({