@arsedizioni/ars-utils 19.0.4 → 19.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/clipper.ui/ui/browser-dialog/browser-dialog.component.d.ts +1 -1
  2. package/clipper.ui/ui/document/document.component.d.ts +4 -4
  3. package/clipper.ui/ui/document-index/document-index.component.d.ts +3 -3
  4. package/clipper.ui/ui/document-menu/document-menu.component.d.ts +1 -1
  5. package/clipper.ui/ui/references/references.component.d.ts +1 -1
  6. package/clipper.ui/ui/search-calendar/search-calendar.component.d.ts +2 -3
  7. package/clipper.ui/ui/search-dialog/search-dialog.component.d.ts +3 -3
  8. package/clipper.ui/ui/search-facets/search-facets.component.d.ts +1 -2
  9. package/clipper.ui/ui/search-free-text-query-builder/search-free-text-query-builder.component.d.ts +1 -2
  10. package/clipper.ui/ui/search-result-item/search-result-item.component.d.ts +1 -1
  11. package/clipper.ui/ui/search-result-manager/search-result-manager.d.ts +5 -4
  12. package/core/directives/changeDateIntervalDirective.d.ts +3 -3
  13. package/core/directives/copyClipboardDirective.d.ts +3 -4
  14. package/core/directives/validators.d.ts +14 -14
  15. package/fesm2022/arsedizioni-ars-utils-clipper.ui.mjs +143 -159
  16. package/fesm2022/arsedizioni-ars-utils-clipper.ui.mjs.map +1 -1
  17. package/fesm2022/arsedizioni-ars-utils-core.mjs +57 -67
  18. package/fesm2022/arsedizioni-ars-utils-core.mjs.map +1 -1
  19. package/fesm2022/arsedizioni-ars-utils-help.mjs +12 -13
  20. package/fesm2022/arsedizioni-ars-utils-help.mjs.map +1 -1
  21. package/fesm2022/arsedizioni-ars-utils-support.ui.mjs +11 -13
  22. package/fesm2022/arsedizioni-ars-utils-support.ui.mjs.map +1 -1
  23. package/fesm2022/arsedizioni-ars-utils-tinymce.mjs +3 -5
  24. package/fesm2022/arsedizioni-ars-utils-tinymce.mjs.map +1 -1
  25. package/fesm2022/arsedizioni-ars-utils-ui.application.mjs +96 -149
  26. package/fesm2022/arsedizioni-ars-utils-ui.application.mjs.map +1 -1
  27. package/fesm2022/arsedizioni-ars-utils-ui.mjs +13 -25
  28. package/fesm2022/arsedizioni-ars-utils-ui.mjs.map +1 -1
  29. package/fesm2022/arsedizioni-ars-utils-ui.oauth.mjs +3 -5
  30. package/fesm2022/arsedizioni-ars-utils-ui.oauth.mjs.map +1 -1
  31. package/help/components/help-viewer/help-viewer.component.d.ts +1 -1
  32. package/package.json +5 -5
  33. package/support.ui/ui/notifications-browser/notifications-browser.component.d.ts +2 -2
  34. package/tinymce/full-screen-editor/full-screen-editor.component.d.ts +2 -2
  35. package/ui/ui/dialogs/confirm/confirm-dialog.component.d.ts +2 -2
  36. package/ui/ui/dialogs/credentials/credentials-dialog.component.d.ts +3 -3
  37. package/ui/ui/dialogs/recover-password/recover-password-dialog.component.d.ts +1 -2
  38. package/ui/ui/dialogs/reset-password/reset-password-dialog.component.d.ts +2 -2
  39. package/ui/ui/dialogs/toast/toast.component.d.ts +1 -2
  40. package/ui.application/ui/components/button-selector/button-selector.component.d.ts +3 -3
  41. package/ui.application/ui/components/button-toggle/button-toggle.component.d.ts +2 -2
  42. package/ui.application/ui/components/chips-selector/chips-selector.component.d.ts +2 -2
  43. package/ui.application/ui/components/file-input/file-input.component.d.ts +4 -4
  44. package/ui.application/ui/components/filter-bar/filter-bar.component.d.ts +2 -2
  45. package/ui.application/ui/dialogs/prompt/prompt-dialog.component.d.ts +3 -3
  46. package/ui.application/ui/dialogs/prompt-date/prompt-date-dialog.component.d.ts +3 -3
  47. package/ui.application/ui/dialogs/prompt-time/prompt-time-dialog.component.d.ts +3 -3
  48. package/ui.application/ui/dialogs/select/select-dialog.component.d.ts +11 -11
  49. package/ui.application/ui/dialogs/select-file/select-file-dialog.component.d.ts +1 -2
  50. package/ui.application/ui/dialogs/select-picture/select-picture-dialog.component.d.ts +1 -2
  51. package/ui.application/ui/dialogs/select-tree/select-tree-dialog.component.d.ts +2 -2
  52. package/ui.application/ui/dialogs/send-to/send-to-dialog.component.d.ts +3 -3
  53. package/ui.application/ui/directives/resize-table-column.directive.d.ts +3 -3
  54. package/ui.oauth/ui/components/login/login-oauth.component.d.ts +2 -2
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Injectable, Component, ChangeDetectionStrategy, EventEmitter, inject, Output, NgModule } from '@angular/core';
2
+ import { Injectable, Component, ChangeDetectionStrategy, output, inject, NgModule } from '@angular/core';
3
3
  import { SystemUtils, SafeHtmlPipe, ArsCoreModule, PasswordValidatorDirective, EqualsValidatorDirective } from '@arsedizioni/ars-utils/core';
4
4
  import { MatPaginatorIntl } from '@angular/material/paginator';
5
5
  import { Overlay } from '@angular/cdk/overlay';
@@ -96,7 +96,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImpor
96
96
 
97
97
  class ConfirmDialogComponent {
98
98
  constructor() {
99
- this.choosen = new EventEmitter();
99
+ this.choosen = output();
100
100
  this.dialogRef = inject((MatDialogRef));
101
101
  this.dialogData = inject(MAT_DIALOG_DATA) || { title: 'Conferma', okCaption: 'Si', cancelCaption: 'No' };
102
102
  }
@@ -147,9 +147,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImpor
147
147
  type: Component,
148
148
  args: [{ host: { 'Bind': SystemUtils.generateUUID() }, standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [MatDialogTitle, MatDialogContent, MatDialogClose, FlexModule, MatCheckboxModule, FormsModule, MatDialogActions, MatButtonModule,
149
149
  MatDialogClose, SafeHtmlPipe], template: "<h2 mat-dialog-title>{{dialogData.title}}</h2>\r\n<mat-dialog-content>\r\n <div fxLayout=\"column\" fxLayoutGap=\"24px\" fxFill>\r\n <div fxFlex=\"*\">\r\n @if (dialogData.message) {\r\n <div [innerHtml]=\"dialogData.message | safeHtml\"></div>\r\n }\r\n </div>\r\n @if (dialogData.details) {\r\n <div class=\"details-box\">\r\n <p class=\"x-small uppercase secondary\">Dettaglio:</p>\r\n <div class=\"small details\">\r\n <div [innerHtml]=\"dialogData.details\"></div>\r\n </div>\r\n </div>\r\n }\r\n @if (dialogData.options) {\r\n <div>\r\n @for (o of dialogData.options; track $index; let i = $index) {\r\n <div>\r\n <mat-checkbox [(ngModel)]=\"o.value\" name=\"opt_{{i}}\">\r\n {{o.description}}\r\n </mat-checkbox>\r\n </div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n</mat-dialog-content>\r\n<mat-dialog-actions>\r\n <div fxLayout=\"row\" fxLayoutGap=\"10px\" fxLayoutAlign=\"start center\" fxFill>\r\n <div fxFlex=\"30\">\r\n @if (dialogData.otherCaption) {\r\n <button mat-flat-button color='primary' (click)=\"other()\" cdkFocusInitial\r\n [mat-dialog-close]=\"true\">{{dialogData.otherCaption}}</button>\r\n }\r\n </div>\r\n <div fxFlex=\"70\" fxLayoutAlign=\"end\">\r\n <button mat-flat-button color='primary' (click)=\"ok()\" cdkFocusInitial\r\n [mat-dialog-close]=\"true\">{{dialogData.okCaption}}</button>\r\n <button mat-stroked-button color=\"primary\" [mat-dialog-close]=\"true\" (click)=\"cancel()\">{{dialogData.cancelCaption}}</button>\r\n </div>\r\n </div>\r\n</mat-dialog-actions>", styles: [".dialog-info{font-size:x-small;font-weight:700;text-align:right;padding:10px}.dialog-info-green,.dialog-info-ok{color:var(--ars-color-ok, #388E3C)}.dialog-info-red,.dialog-info-error{color:var(--mat-form-field-error-text-color, #a80710)}.dialog-header{padding-bottom:20px}.dialog-close{margin-right:5px;margin-top: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;height:100%}.scroll-hidden{overflow:hidden;height:100%}b{font-weight:700}.large{font-size:large!important}.smaller{font-size:smaller}.small{font-size:small!important;line-height:16px}.small-icon-button{width:1.5rem!important;height:1.5rem!important;padding:0!important;display:inline-flex!important;align-items:center;justify-content:center}.small-icon-button .mat-mdc-button-touch-target{width:1.5rem!important;height:1.5rem!important}.x-small{font-size:x-small!important;line-height:14px}.bold{font-weight:700}.uppercase{text-transform:uppercase!important}.lowercase{text-transform:lowercase!important}.truncated{min-width:0;max-width:100%}@supports (-webkit-line-clamp: 2){.truncated{overflow:hidden;text-overflow:ellipsis;white-space:initial;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}}.truncated span,.truncated div{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@supports (-webkit-line-clamp: 2){.truncated span,.truncated div{overflow:hidden;text-overflow:ellipsis;white-space:initial;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}}.clipped{min-width:0;max-width:100%}.clipped span,.clipped div{white-space:nowrap;overflow:hidden;text-overflow:clip}.accent{color:var(--ars-color-accent, #7894ae)!important}.primary{color:var(--ars-color-primary, #00a293)!important}.secondary{color:var(--ars-color-secondary, #4a635f)!important}.error{color:var(--ars-color-error, #ff5449)!important}.success{color:var(--ars-color-ok, #388E3C)!important}.warning{color:var(--ars-color-warning, #FFC107)!important}.overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:10;background-color:var(--ars-color-overlay, rgba(255, 255, 255, .75))}.drawer-content{padding-top:10px}.drawer .title-container,.drawer-small .title-container{padding:20px 5px 20px 0}.drawer .title-container-with-loader,.drawer-small .title-container-with-loader{padding:14px 10px 20px 0}.drawer .title,.drawer-small .title{font-size:1.2em!important;font-weight:600;padding-left:20px;min-width:150px;width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.drawer .accordion-panel,.drawer-small .accordion-panel{background-color:transparent!important}.drawer .accordion-header,.drawer-small .accordion-header{padding-left:10px;padding-right:10px;border-radius:var(--mat-expansion-container-shape)}.drawer .mat-expansion-panel-body,.drawer-small .mat-expansion-panel-body{padding-left:10px!important;padding-right:10px!important;padding-bottom:20px!important}@media screen and (min-width: 0px) and (max-width: 430px){.drawer,.drawer-small{border-radius:0!important;min-width:100%!important;max-width:100%!important}}@media screen and (min-width: 431px){.drawer{min-width:420px!important;max-width:420px!important}.drawer .title{min-width:200px}.drawer .mat-expansion-panel-body{padding-left:15px!important;padding-right:15px!important;padding-bottom:20px!important}.drawer-small{min-width:360px!important;max-width:360px!important}}.drawer-with-loader{padding-top:0!important}.drawer-transparent{background-color:transparent}.fade-in{animation:fadein .5s linear}@keyframes fadein{0%{opacity:0}to{opacity:1}}@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}}.details-box{border-top:1px solid var(--ars-color-divider, #757d87)}.details{background-color:var(--ars-item-hover-background-color, #eaecef);border-radius:5px;max-height:350px;padding:8px 12px;overflow:auto}\n"] }]
150
- }], propDecorators: { choosen: [{
151
- type: Output
152
- }] } });
150
+ }] });
153
151
  /**
154
152
  * Display a confirm dialog
155
153
  * @param message : html message
@@ -226,7 +224,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImpor
226
224
 
227
225
  class ToastComponent {
228
226
  constructor() {
229
- this.action = new EventEmitter();
227
+ this.action = output();
230
228
  this.dialogData = inject(MAT_SNACK_BAR_DATA) || {};
231
229
  }
232
230
  /**
@@ -241,9 +239,7 @@ class ToastComponent {
241
239
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: ToastComponent, decorators: [{
242
240
  type: Component,
243
241
  args: [{ host: { 'Bind': SystemUtils.generateUUID() }, standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [FlexModule, MatIconModule, MatButtonModule, SafeHtmlPipe], template: "<div fxLayout=\"row\" fxLayoutGap=\"10px\">\r\n @if (dialogData.icon) {\r\n <div fxFlex='30px' fxLayoutAlign=\"start\" fxFlexAlign=\"center\">\r\n <mat-icon>{{dialogData.icon}}</mat-icon>\r\n </div>\r\n }\r\n <div fxFlex='*' fxLayoutAlign=\"start\" fxFlexAlign=\"center\">\r\n @if (dialogData.message) {\r\n <span [innerHTML]=\"dialogData.message | safeHtml\"></span>\r\n }\r\n </div>\r\n @if (dialogData.actionCaption) {\r\n <div fxLayoutAlign=\"end\" fxFlexAlign=\"center\">\r\n <div style=\"padding-left: 20px;\">\r\n <button type=\"button\" mat-flat-button color='primary' (click)=\"do()\" cdkFocusInitial\r\n [innerHTML]=\"dialogData.actionCaption\"></button>\r\n </div>\r\n </div>\r\n }\r\n</div>" }]
244
- }], propDecorators: { action: [{
245
- type: Output
246
- }] } });
242
+ }] });
247
243
 
248
244
  class UIService {
249
245
  constructor() {
@@ -683,8 +679,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImpor
683
679
 
684
680
  class CredentialsDialogComponent {
685
681
  constructor() {
686
- this.done = new EventEmitter();
687
- this.recoveringPassword = new EventEmitter();
682
+ this.done = output();
683
+ this.recoveringPassword = output();
688
684
  this.dialogData = inject(MAT_DIALOG_DATA) || { mode: 1, appearance: 'fill', title: 'Credenziali', okCaption: 'Salva' };
689
685
  this.item = {
690
686
  user: null,
@@ -721,7 +717,7 @@ class CredentialsDialogComponent {
721
717
  * Recover password
722
718
  */
723
719
  recoverPassword() {
724
- this.recoveringPassword.emit();
720
+ this.recoveringPassword.emit(this.item);
725
721
  if (this.dialogData.recoverPasswordUrl) {
726
722
  window.open(this.dialogData.recoverPasswordUrl, '_blank');
727
723
  }
@@ -744,15 +740,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImpor
744
740
  MatDialogClose,
745
741
  SafeHtmlPipe,
746
742
  ], 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>{{dialogData.title}}</h2>\r\n<mat-dialog-content>\r\n @if (dialogData.message) {\r\n <div [innerHtml]=\"dialogData.message | safeHtml\" style=\"padding-bottom: 20px;\"></div>\r\n }\r\n <form name=\"form\" #f=\"ngForm\" novalidate>\r\n @if (dialogData.mode === 1) {\r\n <mat-form-field style=\"width: 100%;\" [appearance]=\"dialogData.appearance\">\r\n <mat-label>Email</mat-label>\r\n <input type=\"email\" matInput [(ngModel)]=\"item.user\" name=\"email\" #email=\"ngModel\" email required\r\n [attr.aria-label]=\"'Email'\">\r\n @if (email.invalid) {\r\n <mat-error>Email non valida.</mat-error>\r\n }\r\n </mat-form-field>\r\n }\r\n @if (dialogData.mode === 2) {\r\n <mat-form-field style=\"width: 100%;\" [appearance]=\"dialogData.appearance\">\r\n <mat-label>Utente</mat-label>\r\n <input matInput [(ngModel)]=\"item.user\" name=\"user\" #user=\"ngModel\" required [attr.aria-label]=\"'user'\">\r\n @if (user.invalid) {\r\n <mat-error>Obbligatorio.</mat-error>\r\n }\r\n </mat-form-field>\r\n }\r\n <mat-form-field style=\"width: 100%;\" [appearance]=\"dialogData.appearance\">\r\n <mat-label>La tua password abilitata</mat-label>\r\n <input matInput name=\"password\" #password=\"ngModel\" type=\"password\" [(ngModel)]=\"item.password\" required\r\n [attr.aria-label]=\"'La tua password abilitata'\" autocomplete=\"on\">\r\n <mat-hint>Attento a maiuscole e minuscole</mat-hint>\r\n @if (password.invalid) {\r\n <mat-error>Password non valida.</mat-error>\r\n }\r\n </mat-form-field>\r\n @if (dialogData.remember || dialogData.recoverPassword) {\r\n <div fxLayout=\"row\" fxLayoutGap=\"20px\" fxFill style=\"margin-top: 20px;\">\r\n <div >\r\n @if (dialogData.remember) {\r\n <mat-checkbox fxFlexAlign=\"center\" [(ngModel)]=\"item.rememberMe\" name=\"rememberMe\"> Ricordami</mat-checkbox>\r\n }\r\n </div>\r\n <div fxLayoutAlign=\"end\">\r\n @if (dialogData.recoverPassword) {\r\n <button fxFlexAlign=\"center\" mat-button (click)=\"recoverPassword()\" \r\n title=\"Recupero password\" color=\"primary\">Non riesco ad accedere</button>\r\n }\r\n </div>\r\n </div>\r\n }\r\n </form>\r\n</mat-dialog-content>\r\n<mat-dialog-actions>\r\n <div fxLayout=\"row\" fxLayoutAlign=\"end\" fxFill>\r\n <button mat-flat-button color=\"primary\" [disabled]=\"f.form.invalid\" \r\n (click)=\"ok()\">{{dialogData.okCaption}}</button>\r\n <button mat-stroked-button [mat-dialog-close]=\"true\" color=\"primary\">Annulla</button>\r\n </div>\r\n</mat-dialog-actions>", styles: [".dialog-info{font-size:x-small;font-weight:700;text-align:right;padding:10px}.dialog-info-green,.dialog-info-ok{color:var(--ars-color-ok, #388E3C)}.dialog-info-red,.dialog-info-error{color:var(--mat-form-field-error-text-color, #a80710)}.dialog-header{padding-bottom:20px}.dialog-close{margin-right:5px;margin-top: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;height:100%}.scroll-hidden{overflow:hidden;height:100%}b{font-weight:700}.large{font-size:large!important}.smaller{font-size:smaller}.small{font-size:small!important;line-height:16px}.small-icon-button{width:1.5rem!important;height:1.5rem!important;padding:0!important;display:inline-flex!important;align-items:center;justify-content:center}.small-icon-button .mat-mdc-button-touch-target{width:1.5rem!important;height:1.5rem!important}.x-small{font-size:x-small!important;line-height:14px}.bold{font-weight:700}.uppercase{text-transform:uppercase!important}.lowercase{text-transform:lowercase!important}.truncated{min-width:0;max-width:100%}@supports (-webkit-line-clamp: 2){.truncated{overflow:hidden;text-overflow:ellipsis;white-space:initial;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}}.truncated span,.truncated div{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@supports (-webkit-line-clamp: 2){.truncated span,.truncated div{overflow:hidden;text-overflow:ellipsis;white-space:initial;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}}.clipped{min-width:0;max-width:100%}.clipped span,.clipped div{white-space:nowrap;overflow:hidden;text-overflow:clip}.accent{color:var(--ars-color-accent, #7894ae)!important}.primary{color:var(--ars-color-primary, #00a293)!important}.secondary{color:var(--ars-color-secondary, #4a635f)!important}.error{color:var(--ars-color-error, #ff5449)!important}.success{color:var(--ars-color-ok, #388E3C)!important}.warning{color:var(--ars-color-warning, #FFC107)!important}.overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:10;background-color:var(--ars-color-overlay, rgba(255, 255, 255, .75))}.drawer-content{padding-top:10px}.drawer .title-container,.drawer-small .title-container{padding:20px 5px 20px 0}.drawer .title-container-with-loader,.drawer-small .title-container-with-loader{padding:14px 10px 20px 0}.drawer .title,.drawer-small .title{font-size:1.2em!important;font-weight:600;padding-left:20px;min-width:150px;width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.drawer .accordion-panel,.drawer-small .accordion-panel{background-color:transparent!important}.drawer .accordion-header,.drawer-small .accordion-header{padding-left:10px;padding-right:10px;border-radius:var(--mat-expansion-container-shape)}.drawer .mat-expansion-panel-body,.drawer-small .mat-expansion-panel-body{padding-left:10px!important;padding-right:10px!important;padding-bottom:20px!important}@media screen and (min-width: 0px) and (max-width: 430px){.drawer,.drawer-small{border-radius:0!important;min-width:100%!important;max-width:100%!important}}@media screen and (min-width: 431px){.drawer{min-width:420px!important;max-width:420px!important}.drawer .title{min-width:200px}.drawer .mat-expansion-panel-body{padding-left:15px!important;padding-right:15px!important;padding-bottom:20px!important}.drawer-small{min-width:360px!important;max-width:360px!important}}.drawer-with-loader{padding-top:0!important}.drawer-transparent{background-color:transparent}.fade-in{animation:fadein .5s linear}@keyframes fadein{0%{opacity:0}to{opacity:1}}@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}}\n"] }]
747
- }], propDecorators: { done: [{
748
- type: Output
749
- }], recoveringPassword: [{
750
- type: Output
751
- }] } });
743
+ }] });
752
744
 
753
745
  class RecoverPasswordDialogComponent {
754
746
  constructor() {
755
- this.done = new EventEmitter();
747
+ this.done = output();
756
748
  this.dialogData = inject(MAT_DIALOG_DATA) || { appearance: 'fill' };
757
749
  this.item = {
758
750
  email: "",
@@ -781,13 +773,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImpor
781
773
  FlexModule,
782
774
  MatDialogClose,
783
775
  ], 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>Per quale ragione non sei in grado di effettuare l'accesso?</h2>\r\n<mat-dialog-content>\r\n\r\n <b>1. Ho dimenticato la password</b>\r\n <p>\r\n Puoi recuperarla facilmente inserendo l'email a cui la password \u00E8 collegata. Non \u00E8 possibile recuperare password\r\n aziendali (non collegate ad un email).</p>\r\n <form name=\"form\" #f=\"ngForm\" (keyup.Enter)=\"!f.form.invalid ? ok() : null\" novalidate>\r\n\r\n <mat-form-field style=\"width:100%\" [appearance]=\"dialogData.appearance\">\r\n <mat-label>Email con cui ti sei registrato</mat-label>\r\n <input type=\"email\" matInput name=\"email\" #email=\"ngModel\" [(ngModel)]=\"item.email\" required email\r\n maxlength=\"200\" />\r\n @if (email.invalid) {\r\n <mat-error>Email non valida.</mat-error>\r\n }\r\n </mat-form-field>\r\n\r\n <div style=\"margin-top:20px; margin-bottom:20px;\">\r\n <button type=\"button\" mat-flat-button (click)=\"ok()\" color=\"primary\" [disabled]=\"f.form.invalid\"\r\n aria-label=\"Recupera password\">Recupera password</button>\r\n </div>\r\n </form>\r\n <p></p>\r\n <b>2. Il sistema mi dice che la password non \u00E8 corretta.</b>\r\n <p>\r\n E' molto probabile che ci sia stato un difetto di digitazione. Per favore controlla bene che non vi siano spazi non\r\n richiesti e che la password rispetti perfettamente le maiuscole e minuscole. Nel caso in cui la digitazione fosse\r\n corretta, verifica che la data del tuo abbonamento non sia scaduta.\r\n </p>\r\n <p></p>\r\n <b>3. Il sistema mi dice che non pu\u00F2 accettare connessioni dal mio indirizzo IP</b>\r\n <p>\r\n Il tuo abbonamento \u00E8 stato vincolato ad un indirizzo IP (indirizzo dal quale ti colleghi). Capita sovente che\r\n questi indirizzi siano cambiati da parte del reparto IT per questioni di sicurezza informatica.\r\n Per risolvere il problema, contattate il reparto IT e fatevi dire qual'\u00E8 il nuovo indirizzo IP e comunicatelo ad\r\n ARS Edizioni Informatiche.\r\n </p>\r\n</mat-dialog-content>\r\n<mat-dialog-actions>\r\n <div fxLayout=\"row\" fxLayoutAlign=\"end\" fxFill>\r\n <button mat-stroked-button [mat-dialog-close]=\"true\" color=\"primary\">Chiudi</button>\r\n </div>\r\n</mat-dialog-actions>", styles: [".dialog-info{font-size:x-small;font-weight:700;text-align:right;padding:10px}.dialog-info-green,.dialog-info-ok{color:var(--ars-color-ok, #388E3C)}.dialog-info-red,.dialog-info-error{color:var(--mat-form-field-error-text-color, #a80710)}.dialog-header{padding-bottom:20px}.dialog-close{margin-right:5px;margin-top: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;height:100%}.scroll-hidden{overflow:hidden;height:100%}b{font-weight:700}.large{font-size:large!important}.smaller{font-size:smaller}.small{font-size:small!important;line-height:16px}.small-icon-button{width:1.5rem!important;height:1.5rem!important;padding:0!important;display:inline-flex!important;align-items:center;justify-content:center}.small-icon-button .mat-mdc-button-touch-target{width:1.5rem!important;height:1.5rem!important}.x-small{font-size:x-small!important;line-height:14px}.bold{font-weight:700}.uppercase{text-transform:uppercase!important}.lowercase{text-transform:lowercase!important}.truncated{min-width:0;max-width:100%}@supports (-webkit-line-clamp: 2){.truncated{overflow:hidden;text-overflow:ellipsis;white-space:initial;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}}.truncated span,.truncated div{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@supports (-webkit-line-clamp: 2){.truncated span,.truncated div{overflow:hidden;text-overflow:ellipsis;white-space:initial;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}}.clipped{min-width:0;max-width:100%}.clipped span,.clipped div{white-space:nowrap;overflow:hidden;text-overflow:clip}.accent{color:var(--ars-color-accent, #7894ae)!important}.primary{color:var(--ars-color-primary, #00a293)!important}.secondary{color:var(--ars-color-secondary, #4a635f)!important}.error{color:var(--ars-color-error, #ff5449)!important}.success{color:var(--ars-color-ok, #388E3C)!important}.warning{color:var(--ars-color-warning, #FFC107)!important}.overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:10;background-color:var(--ars-color-overlay, rgba(255, 255, 255, .75))}.drawer-content{padding-top:10px}.drawer .title-container,.drawer-small .title-container{padding:20px 5px 20px 0}.drawer .title-container-with-loader,.drawer-small .title-container-with-loader{padding:14px 10px 20px 0}.drawer .title,.drawer-small .title{font-size:1.2em!important;font-weight:600;padding-left:20px;min-width:150px;width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.drawer .accordion-panel,.drawer-small .accordion-panel{background-color:transparent!important}.drawer .accordion-header,.drawer-small .accordion-header{padding-left:10px;padding-right:10px;border-radius:var(--mat-expansion-container-shape)}.drawer .mat-expansion-panel-body,.drawer-small .mat-expansion-panel-body{padding-left:10px!important;padding-right:10px!important;padding-bottom:20px!important}@media screen and (min-width: 0px) and (max-width: 430px){.drawer,.drawer-small{border-radius:0!important;min-width:100%!important;max-width:100%!important}}@media screen and (min-width: 431px){.drawer{min-width:420px!important;max-width:420px!important}.drawer .title{min-width:200px}.drawer .mat-expansion-panel-body{padding-left:15px!important;padding-right:15px!important;padding-bottom:20px!important}.drawer-small{min-width:360px!important;max-width:360px!important}}.drawer-with-loader{padding-top:0!important}.drawer-transparent{background-color:transparent}.fade-in{animation:fadein .5s linear}@keyframes fadein{0%{opacity:0}to{opacity:1}}@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}}\n"] }]
784
- }], propDecorators: { done: [{
785
- type: Output
786
- }] } });
776
+ }] });
787
777
 
788
778
  class ResetPasswordDialogComponent {
789
779
  constructor() {
790
- this.done = new EventEmitter();
780
+ this.done = output();
791
781
  this.dialogService = inject(DialogService);
792
782
  this.dialogRef = inject((MatDialogRef));
793
783
  this.dialogData = inject(MAT_DIALOG_DATA) || { mode: 1, appearance: 'fill' };
@@ -855,9 +845,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImpor
855
845
  MatButtonModule,
856
846
  MatDialogClose,
857
847
  ], 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>Reimposta password</h2>\r\n<mat-dialog-content>\r\n <form name=\"form\" #f=\"ngForm\" novalidate>\r\n <div fxLayout=\"column\">\r\n @if (dialogData.mode === 3) {\r\n <mat-form-field style=\"width: 100%;\" [appearance]=\"dialogData.appearance\">\r\n <mat-label>Email che hai scelto quando ti sei registrato</mat-label>\r\n <input type=\"email\" matInput [(ngModel)]=\"item.userEmail\" name=\"userEmail\" #userEmail=\"ngModel\" email required\r\n [attr.aria-label]=\"'Email con cui ti sei registrato'\">\r\n @if (userEmail.invalid) {\r\n <mat-error>Email non valida.</mat-error>\r\n }\r\n </mat-form-field>\r\n }\r\n @if (dialogData.mode > 1) {\r\n <mat-form-field style=\"width: 100%;\" [appearance]=\"dialogData.appearance\">\r\n <mat-label>Vecchia password</mat-label>\r\n <input type=\"password\" matInput name=\"oldPwd\" autocomplete=\"on\" [(ngModel)]=\"item.oldPassword\"\r\n [required]=\"dialogData.mode > 1\" maxlength=\"30\" #oldPwd=\"ngModel\">\r\n @if (oldPwd.invalid) {\r\n <mat-error>Non valido.</mat-error>\r\n }\r\n </mat-form-field>\r\n }\r\n <mat-form-field style=\"width: 100%; \" hintLabel=\"Minimo 8 car. con 1 simbolo e 1 maiuscola\"\r\n [appearance]=\"dialogData.appearance\">\r\n <mat-label>Nuova password</mat-label>\r\n <input type=\"password\" matInput name=\"newPwd\" [(ngModel)]=\"item.password\" required password minlength=\"8\"\r\n maxlength=\"30\" #newPwd=\"ngModel\">\r\n <mat-hint align=\"end\">{{newPwd.value?.length || 0}}/30</mat-hint>\r\n @if (newPwd.invalid) {\r\n <mat-error>Non valido.</mat-error>\r\n }\r\n </mat-form-field>\r\n <mat-form-field style=\"width: 100%;\" hintLabel=\"Minimo 8 car. con 1 simbolo e 1 maiuscola\"\r\n [appearance]=\"dialogData.appearance\">\r\n <mat-label>Conferma nuova password</mat-label>\r\n <input type=\"password\" matInput name=\"newPwd2\" [(ngModel)]=\"item.password2\" [required]=\"dialogData.mode > 1\"\r\n password minlength=\"8\" maxlength=\"30\" [equals]=\"newPwd\" #newPwd2=\"ngModel\">\r\n <mat-hint align=\"end\">{{newPwd2.value?.length || 0}}/30</mat-hint>\r\n @if (newPwd2.invalid) {\r\n <mat-error>Non valido.</mat-error>\r\n }\r\n </mat-form-field>\r\n </div>\r\n </form>\r\n</mat-dialog-content>\r\n<mat-dialog-actions>\r\n <div fxLayout=\"row\" fxLayoutGap=\"10px\" fxFill>\r\n <div fxFlex=\"30\">\r\n @if (dialogData.mode === 1) {\r\n <button mat-stroked-button color=\"primary\" (click)=\"generatePassword()\">Genera</button>\r\n }\r\n </div>\r\n <div fxFlex=\"70\" fxLayoutAlign=\"end\">\r\n <button mat-flat-button color=\"primary\" [disabled]=\"f.form.invalid\" (click)=\"ok()\">Salva</button>\r\n @if (dialogData.mode !== 3) {\r\n <button mat-stroked-button [mat-dialog-close]=\"true\" color=\"primary\">Annulla</button>\r\n }\r\n </div>\r\n </div>\r\n</mat-dialog-actions>", styles: [".dialog-info{font-size:x-small;font-weight:700;text-align:right;padding:10px}.dialog-info-green,.dialog-info-ok{color:var(--ars-color-ok, #388E3C)}.dialog-info-red,.dialog-info-error{color:var(--mat-form-field-error-text-color, #a80710)}.dialog-header{padding-bottom:20px}.dialog-close{margin-right:5px;margin-top: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;height:100%}.scroll-hidden{overflow:hidden;height:100%}b{font-weight:700}.large{font-size:large!important}.smaller{font-size:smaller}.small{font-size:small!important;line-height:16px}.small-icon-button{width:1.5rem!important;height:1.5rem!important;padding:0!important;display:inline-flex!important;align-items:center;justify-content:center}.small-icon-button .mat-mdc-button-touch-target{width:1.5rem!important;height:1.5rem!important}.x-small{font-size:x-small!important;line-height:14px}.bold{font-weight:700}.uppercase{text-transform:uppercase!important}.lowercase{text-transform:lowercase!important}.truncated{min-width:0;max-width:100%}@supports (-webkit-line-clamp: 2){.truncated{overflow:hidden;text-overflow:ellipsis;white-space:initial;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}}.truncated span,.truncated div{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@supports (-webkit-line-clamp: 2){.truncated span,.truncated div{overflow:hidden;text-overflow:ellipsis;white-space:initial;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}}.clipped{min-width:0;max-width:100%}.clipped span,.clipped div{white-space:nowrap;overflow:hidden;text-overflow:clip}.accent{color:var(--ars-color-accent, #7894ae)!important}.primary{color:var(--ars-color-primary, #00a293)!important}.secondary{color:var(--ars-color-secondary, #4a635f)!important}.error{color:var(--ars-color-error, #ff5449)!important}.success{color:var(--ars-color-ok, #388E3C)!important}.warning{color:var(--ars-color-warning, #FFC107)!important}.overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:10;background-color:var(--ars-color-overlay, rgba(255, 255, 255, .75))}.drawer-content{padding-top:10px}.drawer .title-container,.drawer-small .title-container{padding:20px 5px 20px 0}.drawer .title-container-with-loader,.drawer-small .title-container-with-loader{padding:14px 10px 20px 0}.drawer .title,.drawer-small .title{font-size:1.2em!important;font-weight:600;padding-left:20px;min-width:150px;width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.drawer .accordion-panel,.drawer-small .accordion-panel{background-color:transparent!important}.drawer .accordion-header,.drawer-small .accordion-header{padding-left:10px;padding-right:10px;border-radius:var(--mat-expansion-container-shape)}.drawer .mat-expansion-panel-body,.drawer-small .mat-expansion-panel-body{padding-left:10px!important;padding-right:10px!important;padding-bottom:20px!important}@media screen and (min-width: 0px) and (max-width: 430px){.drawer,.drawer-small{border-radius:0!important;min-width:100%!important;max-width:100%!important}}@media screen and (min-width: 431px){.drawer{min-width:420px!important;max-width:420px!important}.drawer .title{min-width:200px}.drawer .mat-expansion-panel-body{padding-left:15px!important;padding-right:15px!important;padding-bottom:20px!important}.drawer-small{min-width:360px!important;max-width:360px!important}}.drawer-with-loader{padding-top:0!important}.drawer-transparent{background-color:transparent}.fade-in{animation:fadein .5s linear}@keyframes fadein{0%{opacity:0}to{opacity:1}}@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}}\n"] }]
858
- }], propDecorators: { done: [{
859
- type: Output
860
- }] } });
848
+ }] });
861
849
 
862
850
  /*
863
851
  * Public API Surface of ars-utils