@arsedizioni/ars-utils 18.2.375 → 18.2.378

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 (71) hide show
  1. package/clipper.common/common/definitions.d.ts +4 -3
  2. package/clipper.ui/ui/document/document.component.d.ts +3 -3
  3. package/clipper.ui/ui/document-index/document-index.component.d.ts +2 -2
  4. package/clipper.ui/ui/document-menu/document-menu.component.d.ts +1 -1
  5. package/clipper.ui/ui/search-calendar/search-calendar.component.d.ts +1 -2
  6. package/clipper.ui/ui/search-dialog/search-dialog.component.d.ts +2 -2
  7. package/clipper.ui/ui/search-facets/search-facets.component.d.ts +1 -2
  8. package/clipper.ui/ui/search-free-text-query-builder/search-free-text-query-builder.component.d.ts +1 -2
  9. package/esm2022/clipper.common/common/definitions.mjs +2 -1
  10. package/esm2022/clipper.ui/ui/document/document.component.mjs +7 -11
  11. package/esm2022/clipper.ui/ui/document-index/document-index.component.mjs +3 -5
  12. package/esm2022/clipper.ui/ui/search-calendar/search-calendar.component.mjs +3 -5
  13. package/esm2022/clipper.ui/ui/search-dialog/search-dialog.component.mjs +3 -5
  14. package/esm2022/clipper.ui/ui/search-facets/search-facets.component.mjs +4 -6
  15. package/esm2022/clipper.ui/ui/search-free-text-query-builder/search-free-text-query-builder.component.mjs +4 -6
  16. package/esm2022/evolution.common/common/definitions.mjs +1 -1
  17. package/esm2022/tinymce/full-screen-editor/full-screen-editor.component.mjs +4 -6
  18. package/esm2022/ui/ui/dialogs/confirm/confirm-dialog.component.mjs +4 -6
  19. package/esm2022/ui/ui/dialogs/credentials/credentials-dialog.component.mjs +5 -9
  20. package/esm2022/ui/ui/dialogs/recover-password/recover-password-dialog.component.mjs +4 -6
  21. package/esm2022/ui/ui/dialogs/reset-password/reset-password-dialog.component.mjs +4 -6
  22. package/esm2022/ui/ui/dialogs/toast/toast.component.mjs +4 -6
  23. package/esm2022/ui.application/ui/components/button-selector/button-selector.component.mjs +5 -9
  24. package/esm2022/ui.application/ui/components/button-toggle/button-toggle.component.mjs +4 -6
  25. package/esm2022/ui.application/ui/components/chips-selector/chips-selector.component.mjs +4 -6
  26. package/esm2022/ui.application/ui/components/file-input/file-input.component.mjs +6 -12
  27. package/esm2022/ui.application/ui/components/filter-bar/filter-bar.component.mjs +4 -6
  28. package/esm2022/ui.application/ui/dialogs/prompt/prompt-dialog.component.mjs +3 -5
  29. package/esm2022/ui.application/ui/dialogs/prompt-date/prompt-date-dialog.component.mjs +3 -5
  30. package/esm2022/ui.application/ui/dialogs/prompt-time/prompt-time-dialog.component.mjs +3 -5
  31. package/esm2022/ui.application/ui/dialogs/select/select-dialog.component.mjs +10 -26
  32. package/esm2022/ui.application/ui/dialogs/select-file/select-file-dialog.component.mjs +4 -6
  33. package/esm2022/ui.application/ui/dialogs/select-picture/select-picture-dialog.component.mjs +4 -6
  34. package/esm2022/ui.application/ui/dialogs/select-tree/select-tree-dialog.component.mjs +4 -6
  35. package/esm2022/ui.application/ui/dialogs/send-to/send-to-dialog.component.mjs +5 -9
  36. package/esm2022/ui.oauth/ui/components/login/login-oauth.component.mjs +4 -6
  37. package/evolution.common/common/definitions.d.ts +2 -2
  38. package/fesm2022/arsedizioni-ars-utils-clipper.common.mjs +1 -0
  39. package/fesm2022/arsedizioni-ars-utils-clipper.common.mjs.map +1 -1
  40. package/fesm2022/arsedizioni-ars-utils-clipper.ui.mjs +973 -987
  41. package/fesm2022/arsedizioni-ars-utils-clipper.ui.mjs.map +1 -1
  42. package/fesm2022/arsedizioni-ars-utils-evolution.common.mjs.map +1 -1
  43. package/fesm2022/arsedizioni-ars-utils-tinymce.mjs +3 -5
  44. package/fesm2022/arsedizioni-ars-utils-tinymce.mjs.map +1 -1
  45. package/fesm2022/arsedizioni-ars-utils-ui.application.mjs +34 -82
  46. package/fesm2022/arsedizioni-ars-utils-ui.application.mjs.map +1 -1
  47. package/fesm2022/arsedizioni-ars-utils-ui.mjs +12 -24
  48. package/fesm2022/arsedizioni-ars-utils-ui.mjs.map +1 -1
  49. package/fesm2022/arsedizioni-ars-utils-ui.oauth.mjs +3 -5
  50. package/fesm2022/arsedizioni-ars-utils-ui.oauth.mjs.map +1 -1
  51. package/package.json +1 -1
  52. package/tinymce/full-screen-editor/full-screen-editor.component.d.ts +2 -2
  53. package/ui/ui/dialogs/confirm/confirm-dialog.component.d.ts +2 -2
  54. package/ui/ui/dialogs/credentials/credentials-dialog.component.d.ts +3 -3
  55. package/ui/ui/dialogs/recover-password/recover-password-dialog.component.d.ts +1 -2
  56. package/ui/ui/dialogs/reset-password/reset-password-dialog.component.d.ts +2 -2
  57. package/ui/ui/dialogs/toast/toast.component.d.ts +1 -2
  58. package/ui.application/ui/components/button-selector/button-selector.component.d.ts +3 -3
  59. package/ui.application/ui/components/button-toggle/button-toggle.component.d.ts +2 -2
  60. package/ui.application/ui/components/chips-selector/chips-selector.component.d.ts +2 -2
  61. package/ui.application/ui/components/file-input/file-input.component.d.ts +4 -4
  62. package/ui.application/ui/components/filter-bar/filter-bar.component.d.ts +2 -2
  63. package/ui.application/ui/dialogs/prompt/prompt-dialog.component.d.ts +2 -2
  64. package/ui.application/ui/dialogs/prompt-date/prompt-date-dialog.component.d.ts +2 -2
  65. package/ui.application/ui/dialogs/prompt-time/prompt-time-dialog.component.d.ts +2 -2
  66. package/ui.application/ui/dialogs/select/select-dialog.component.d.ts +9 -9
  67. package/ui.application/ui/dialogs/select-file/select-file-dialog.component.d.ts +1 -2
  68. package/ui.application/ui/dialogs/select-picture/select-picture-dialog.component.d.ts +1 -2
  69. package/ui.application/ui/dialogs/select-tree/select-tree-dialog.component.d.ts +2 -2
  70. package/ui.application/ui/dialogs/send-to/send-to-dialog.component.d.ts +3 -3
  71. 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: "18.2.1", 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: "18.2.1", ngImpor
147
147
  type: Component,
148
148
  args: [{ host: { 'Bind': SystemUtils.generateUUID() }, standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [MatDialogTitle, MatDialogContent, FlexModule, MatCheckboxModule, FormsModule, MatDialogActions, MatButtonModule,
149
149
  MatDialogClose, SafeHtmlPipe], template: "<h2 mat-dialog-title>{{dialogData.title}}</h2>\r\n<div mat-dialog-content>\r\n <div fxLayout=\"column\" fxLayoutGap=\"32px\" fxFill>\r\n <div fxFlex=\"*\" fxLayout=\"column\" fxFill>\r\n @if (dialogData.message) {\r\n <div [innerHtml]=\"dialogData.message | safeHtml\"></div>\r\n }\r\n </div>\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 color=\"primary\" [(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</div>\r\n<div mat-dialog-actions>\r\n <div fxLayout=\"row\" fxLayoutGap=\"10px\" 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-button color=\"primary\" (click)=\"cancel()\"\r\n >{{dialogData.cancelCaption}}</button>\r\n </div>\r\n </div>\r\n</div>", styles: [".dialog-info{font-size:x-small;font-weight:700;text-align:right;padding:10px}.dialog-info-green,.dialog-info-ok{color:var(--ars-color-ok, #388E3C)}.dialog-info-red,.dialog-info-error{color:var(--mat-form-field-error-text-color, #a80710)}.dialog-header{padding-bottom:20px}.dialog-close{margin-right:10px;margin-top:10px}.dialog-menu{margin-left:10px;margin-top:10px}.dialog-title{padding:0 24px}.section-title{font-size:large;font-weight:600;padding-top:10px;padding-bottom:8px}.center{text-align:center}.wide{min-width:100%!important;max-width:100%!important;width:100%!important}.fill{min-width:100%!important;max-width:100%!important;width:100%!important;min-height:100%!important;max-height:100%!important;height:100%!important}.scroll-auto{overflow:auto;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%}.truncated span,.truncated div{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.clipped{min-width:0;max-width:100%}.clipped span,.clipped div{white-space:nowrap;overflow:hidden;text-overflow:clip}.accent{color:var(--ars-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}.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,.drawer-small{min-width:420px!important;max-width:420px!important;padding:20px 0 0}.drawer .title-container,.drawer-small .title-container{padding:20px 10px}.drawer .title-container-with-loader,.drawer-small .title-container-with-loader{padding:14px 10px 20px}.drawer .title,.drawer-small .title{font-size:1.2em;font-weight:600;padding-left:10px;min-width:200px;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:15px;padding-right:20px;border-radius:var(--mat-expansion-container-shape)}.drawer .mat-expansion-panel-body,.drawer-small .mat-expansion-panel-body{padding-bottom:20px!important}.drawer-with-loader{padding-top:0!important}.drawer-transparent{background-color:transparent}.drawer-small{min-width:360px!important;max-width:360px!important}.drawer-small .title{min-width:150px;width:100%}@media screen and (min-width: 0px) and (max-width: 359px){.drawer{min-width:360px!important;max-width:360px!important}.drawer .title{min-width:150px}}.fade-in{animation:fadein .5s linear}@keyframes fadein{0%{opacity:0}to{opacity:1}}@media (prefers-color-scheme: dark){.dialog-info-green,.dialog-info-ok{color:var(--ars-color-ok, #4CAF50)}.dialog-info-red,.dialog-info-error{color:var(--mat-form-field-error-text-color, #ff5449)}b{font-weight:600}}\n"] }]
150
- }], propDecorators: { choosen: [{
151
- type: Output
152
- }] } });
150
+ }] });
153
151
  /**
154
152
  * Display a confirm dialog
155
153
  * @param message : html message
@@ -216,7 +214,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
216
214
 
217
215
  class ToastComponent {
218
216
  constructor() {
219
- this.action = new EventEmitter();
217
+ this.action = output();
220
218
  this.dialogData = inject(MAT_SNACK_BAR_DATA) || {};
221
219
  }
222
220
  /**
@@ -231,9 +229,7 @@ class ToastComponent {
231
229
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ToastComponent, decorators: [{
232
230
  type: Component,
233
231
  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='100%' 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 <button type=\"button\" mat-button color='accent' (click)=\"do()\" cdkFocusInitial [innerHTML]=\"dialogData.actionCaption\"></button>\r\n </div>\r\n}\r\n</div>\r\n" }]
234
- }], propDecorators: { action: [{
235
- type: Output
236
- }] } });
232
+ }] });
237
233
 
238
234
  class UIService {
239
235
  constructor() {
@@ -660,8 +656,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
660
656
 
661
657
  class CredentialsDialogComponent {
662
658
  constructor() {
663
- this.done = new EventEmitter();
664
- this.recoveringPassword = new EventEmitter();
659
+ this.done = output();
660
+ this.recoveringPassword = output();
665
661
  this.dialogData = inject(MAT_DIALOG_DATA) || { mode: 1, appearance: 'fill', title: 'Credenziali', okCaption: 'Salva' };
666
662
  this.item = {
667
663
  user: null,
@@ -721,15 +717,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
721
717
  MatDialogClose,
722
718
  SafeHtmlPipe,
723
719
  ], 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 }\r\n @if (!f.form.invalid) {\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<div 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\" color=\"primary\"> 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</div>\r\n<div 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-button [mat-dialog-close]=\"true\" color=\"primary\">Annulla</button>\r\n </div>\r\n</div>", styles: [".dialog-info{font-size:x-small;font-weight:700;text-align:right;padding:10px}.dialog-info-green,.dialog-info-ok{color:var(--ars-color-ok, #388E3C)}.dialog-info-red,.dialog-info-error{color:var(--mat-form-field-error-text-color, #a80710)}.dialog-header{padding-bottom:20px}.dialog-close{margin-right:10px;margin-top:10px}.dialog-menu{margin-left:10px;margin-top:10px}.dialog-title{padding:0 24px}.section-title{font-size:large;font-weight:600;padding-top:10px;padding-bottom:8px}.center{text-align:center}.wide{min-width:100%!important;max-width:100%!important;width:100%!important}.fill{min-width:100%!important;max-width:100%!important;width:100%!important;min-height:100%!important;max-height:100%!important;height:100%!important}.scroll-auto{overflow:auto;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%}.truncated span,.truncated div{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.clipped{min-width:0;max-width:100%}.clipped span,.clipped div{white-space:nowrap;overflow:hidden;text-overflow:clip}.accent{color:var(--ars-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}.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,.drawer-small{min-width:420px!important;max-width:420px!important;padding:20px 0 0}.drawer .title-container,.drawer-small .title-container{padding:20px 10px}.drawer .title-container-with-loader,.drawer-small .title-container-with-loader{padding:14px 10px 20px}.drawer .title,.drawer-small .title{font-size:1.2em;font-weight:600;padding-left:10px;min-width:200px;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:15px;padding-right:20px;border-radius:var(--mat-expansion-container-shape)}.drawer .mat-expansion-panel-body,.drawer-small .mat-expansion-panel-body{padding-bottom:20px!important}.drawer-with-loader{padding-top:0!important}.drawer-transparent{background-color:transparent}.drawer-small{min-width:360px!important;max-width:360px!important}.drawer-small .title{min-width:150px;width:100%}@media screen and (min-width: 0px) and (max-width: 359px){.drawer{min-width:360px!important;max-width:360px!important}.drawer .title{min-width:150px}}.fade-in{animation:fadein .5s linear}@keyframes fadein{0%{opacity:0}to{opacity:1}}@media (prefers-color-scheme: dark){.dialog-info-green,.dialog-info-ok{color:var(--ars-color-ok, #4CAF50)}.dialog-info-red,.dialog-info-error{color:var(--mat-form-field-error-text-color, #ff5449)}b{font-weight:600}}\n"] }]
724
- }], propDecorators: { done: [{
725
- type: Output
726
- }], recoveringPassword: [{
727
- type: Output
728
- }] } });
720
+ }] });
729
721
 
730
722
  class RecoverPasswordDialogComponent {
731
723
  constructor() {
732
- this.done = new EventEmitter();
724
+ this.done = output();
733
725
  this.dialogData = inject(MAT_DIALOG_DATA) || { appearance: 'fill' };
734
726
  this.item = {
735
727
  email: "",
@@ -758,13 +750,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
758
750
  FlexModule,
759
751
  MatDialogClose,
760
752
  ], 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 }\r\n @if (!f.form.invalid) {\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<div 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</div>\r\n<div mat-dialog-actions>\r\n <div fxLayout=\"row\" fxLayoutAlign=\"end\" fxFill>\r\n <button mat-button [mat-dialog-close]=\"true\" color=\"primary\">Chiudi</button>\r\n </div>\r\n</div>", styles: [".dialog-info{font-size:x-small;font-weight:700;text-align:right;padding:10px}.dialog-info-green,.dialog-info-ok{color:var(--ars-color-ok, #388E3C)}.dialog-info-red,.dialog-info-error{color:var(--mat-form-field-error-text-color, #a80710)}.dialog-header{padding-bottom:20px}.dialog-close{margin-right:10px;margin-top:10px}.dialog-menu{margin-left:10px;margin-top:10px}.dialog-title{padding:0 24px}.section-title{font-size:large;font-weight:600;padding-top:10px;padding-bottom:8px}.center{text-align:center}.wide{min-width:100%!important;max-width:100%!important;width:100%!important}.fill{min-width:100%!important;max-width:100%!important;width:100%!important;min-height:100%!important;max-height:100%!important;height:100%!important}.scroll-auto{overflow:auto;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%}.truncated span,.truncated div{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.clipped{min-width:0;max-width:100%}.clipped span,.clipped div{white-space:nowrap;overflow:hidden;text-overflow:clip}.accent{color:var(--ars-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}.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,.drawer-small{min-width:420px!important;max-width:420px!important;padding:20px 0 0}.drawer .title-container,.drawer-small .title-container{padding:20px 10px}.drawer .title-container-with-loader,.drawer-small .title-container-with-loader{padding:14px 10px 20px}.drawer .title,.drawer-small .title{font-size:1.2em;font-weight:600;padding-left:10px;min-width:200px;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:15px;padding-right:20px;border-radius:var(--mat-expansion-container-shape)}.drawer .mat-expansion-panel-body,.drawer-small .mat-expansion-panel-body{padding-bottom:20px!important}.drawer-with-loader{padding-top:0!important}.drawer-transparent{background-color:transparent}.drawer-small{min-width:360px!important;max-width:360px!important}.drawer-small .title{min-width:150px;width:100%}@media screen and (min-width: 0px) and (max-width: 359px){.drawer{min-width:360px!important;max-width:360px!important}.drawer .title{min-width:150px}}.fade-in{animation:fadein .5s linear}@keyframes fadein{0%{opacity:0}to{opacity:1}}@media (prefers-color-scheme: dark){.dialog-info-green,.dialog-info-ok{color:var(--ars-color-ok, #4CAF50)}.dialog-info-red,.dialog-info-error{color:var(--mat-form-field-error-text-color, #ff5449)}b{font-weight:600}}\n"] }]
761
- }], propDecorators: { done: [{
762
- type: Output
763
- }] } });
753
+ }] });
764
754
 
765
755
  class ResetPasswordDialogComponent {
766
756
  constructor() {
767
- this.done = new EventEmitter();
757
+ this.done = output();
768
758
  this.dialogService = inject(DialogService);
769
759
  this.dialogRef = inject((MatDialogRef));
770
760
  this.dialogData = inject(MAT_DIALOG_DATA) || { mode: 1, appearance: 'fill' };
@@ -832,9 +822,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
832
822
  MatButtonModule,
833
823
  MatDialogClose,
834
824
  ], 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 }\r\n @if (!f.form.invalid) {\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<div 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</div>\r\n<div 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-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-button [mat-dialog-close]=\"true\" color=\"primary\">Annulla</button>\r\n }\r\n </div>\r\n </div>\r\n</div>", styles: [".dialog-info{font-size:x-small;font-weight:700;text-align:right;padding:10px}.dialog-info-green,.dialog-info-ok{color:var(--ars-color-ok, #388E3C)}.dialog-info-red,.dialog-info-error{color:var(--mat-form-field-error-text-color, #a80710)}.dialog-header{padding-bottom:20px}.dialog-close{margin-right:10px;margin-top:10px}.dialog-menu{margin-left:10px;margin-top:10px}.dialog-title{padding:0 24px}.section-title{font-size:large;font-weight:600;padding-top:10px;padding-bottom:8px}.center{text-align:center}.wide{min-width:100%!important;max-width:100%!important;width:100%!important}.fill{min-width:100%!important;max-width:100%!important;width:100%!important;min-height:100%!important;max-height:100%!important;height:100%!important}.scroll-auto{overflow:auto;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%}.truncated span,.truncated div{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.clipped{min-width:0;max-width:100%}.clipped span,.clipped div{white-space:nowrap;overflow:hidden;text-overflow:clip}.accent{color:var(--ars-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}.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,.drawer-small{min-width:420px!important;max-width:420px!important;padding:20px 0 0}.drawer .title-container,.drawer-small .title-container{padding:20px 10px}.drawer .title-container-with-loader,.drawer-small .title-container-with-loader{padding:14px 10px 20px}.drawer .title,.drawer-small .title{font-size:1.2em;font-weight:600;padding-left:10px;min-width:200px;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:15px;padding-right:20px;border-radius:var(--mat-expansion-container-shape)}.drawer .mat-expansion-panel-body,.drawer-small .mat-expansion-panel-body{padding-bottom:20px!important}.drawer-with-loader{padding-top:0!important}.drawer-transparent{background-color:transparent}.drawer-small{min-width:360px!important;max-width:360px!important}.drawer-small .title{min-width:150px;width:100%}@media screen and (min-width: 0px) and (max-width: 359px){.drawer{min-width:360px!important;max-width:360px!important}.drawer .title{min-width:150px}}.fade-in{animation:fadein .5s linear}@keyframes fadein{0%{opacity:0}to{opacity:1}}@media (prefers-color-scheme: dark){.dialog-info-green,.dialog-info-ok{color:var(--ars-color-ok, #4CAF50)}.dialog-info-red,.dialog-info-error{color:var(--mat-form-field-error-text-color, #ff5449)}b{font-weight:600}}\n"] }]
835
- }], propDecorators: { done: [{
836
- type: Output
837
- }] } });
825
+ }] });
838
826
 
839
827
  /*
840
828
  * Public API Surface of ars-utils