@arsedizioni/ars-utils 22.0.55 → 22.0.57

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.
@@ -1,6 +1,6 @@
1
- import { HttpErrorResponse, HttpClient, HttpHeaders } from '@angular/common/http';
2
1
  import * as i0 from '@angular/core';
3
- import { inject, signal, Service, DestroyRef } from '@angular/core';
2
+ import { InjectionToken, inject, signal, Service, DestroyRef } from '@angular/core';
3
+ import { HttpErrorResponse, HttpClient, HttpHeaders } from '@angular/common/http';
4
4
  import { BroadcastService, SystemUtils } from '@arsedizioni/ars-utils/core';
5
5
  import { catchError, throwError, EMPTY, of } from 'rxjs';
6
6
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
@@ -483,6 +483,9 @@ var ERPPlace;
483
483
  class EvolutionComplianceContextInfo {
484
484
  }
485
485
 
486
+ /** DI token carrying the {@link EvolutionAuthInterceptorConfig}. */
487
+ const EVOLUTION_AUTH_INTERCEPTOR_CONFIG = new InjectionToken('EVOLUTION_AUTH_INTERCEPTOR_CONFIG');
488
+
486
489
  /** Minimum milliseconds between consecutive error broadcasts (debounce guard). */
487
490
  const ERROR_DEBOUNCE_MS = 5000;
488
491
  /**
@@ -1204,5 +1207,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImpor
1204
1207
  * Generated bundle index. Do not edit.
1205
1208
  */
1206
1209
 
1207
- export { AccountService, ComplianceService, ERPComplianceActivityState, ERPComplianceLawOrigin, ERPComplianceLawState, ERPComplianceLawsSelectionType, ERPComplianceNotificationLimit, ERPComplianceProfileFlags, ERPComplianceProfileRole, ERPComplianceRegisterNotificationType, ERPComplianceRegisterSiteImportOptions, ERPComplianceScope, ERPExportFormat, ERPExportPart, ERPExportSource, ERPExportType, ERPModule, ERPPlace, ERPPlacePermission, ERPRecurrenceFrequencyType, EvolutionComplianceActivityStates, EvolutionComplianceContextInfo, EvolutionComplianceLawChangeStates, EvolutionComplianceLawOrigins, EvolutionComplianceLawStates, EvolutionComplianceNotificationLimits, EvolutionComplianceNotifications, EvolutionComplianceObligationAuthorities, EvolutionComplianceObligationTypes, EvolutionComplianceProfileFlags, EvolutionComplianceProfileRoles, EvolutionComplianceScopes, EvolutionMessages, EvolutionRecurrenceFrequencyTypes, EvolutionService, EvolutionServiceFlags, LoginService, evolutionAuthInterceptor };
1210
+ export { AccountService, ComplianceService, ERPComplianceActivityState, ERPComplianceLawOrigin, ERPComplianceLawState, ERPComplianceLawsSelectionType, ERPComplianceNotificationLimit, ERPComplianceProfileFlags, ERPComplianceProfileRole, ERPComplianceRegisterNotificationType, ERPComplianceRegisterSiteImportOptions, ERPComplianceScope, ERPExportFormat, ERPExportPart, ERPExportSource, ERPExportType, ERPModule, ERPPlace, ERPPlacePermission, ERPRecurrenceFrequencyType, EVOLUTION_AUTH_INTERCEPTOR_CONFIG, EvolutionComplianceActivityStates, EvolutionComplianceContextInfo, EvolutionComplianceLawChangeStates, EvolutionComplianceLawOrigins, EvolutionComplianceLawStates, EvolutionComplianceNotificationLimits, EvolutionComplianceNotifications, EvolutionComplianceObligationAuthorities, EvolutionComplianceObligationTypes, EvolutionComplianceProfileFlags, EvolutionComplianceProfileRoles, EvolutionComplianceScopes, EvolutionMessages, EvolutionRecurrenceFrequencyTypes, EvolutionService, EvolutionServiceFlags, LoginService, evolutionAuthInterceptor };
1208
1211
  //# sourceMappingURL=arsedizioni-ars-utils-evolution.common.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"arsedizioni-ars-utils-evolution.common.mjs","sources":["../../../projects/ars-utils/evolution.common/common/messages.ts","../../../projects/ars-utils/evolution.common/common/definitions.ts","../../../projects/ars-utils/evolution.common/common/interceptors/auth.interceptor.ts","../../../projects/ars-utils/evolution.common/common/services/core.service.ts","../../../projects/ars-utils/evolution.common/common/services/login.service.ts","../../../projects/ars-utils/evolution.common/common/services/compliance.service.ts","../../../projects/ars-utils/evolution.common/common/services/account.service.ts","../../../projects/ars-utils/evolution.common/common/services/evolution.service.ts","../../../projects/ars-utils/evolution.common/common/services/index.ts","../../../projects/ars-utils/evolution.common/public_api.ts","../../../projects/ars-utils/evolution.common/arsedizioni-ars-utils-evolution.common.ts"],"sourcesContent":["export const EvolutionMessages = {\r\n // Error\r\n ERROR: '§evo-error',\r\n SUCCESS: '§evo-success',\r\n SUCCESS_TOAST: '§evo-success-toast',\r\n\r\n // Login\r\n LOGIN_CHANGED: '§evo-login-changed',\r\n LOGIN_COMPLETED: '§evo-login-completed',\r\n LOGOUT_COMPLETED: '§evo-logout-completed',\r\n LOGIN_PENDING: '§evo-login-pending',\r\n LOGIN_FAILED: '§evo-login-failed',\r\n LOGOUT: '§evo-logout'\r\n};\r\n","import { LoginResult, QueryModel, SendToModel } from '@arsedizioni/ars-utils/core';\r\nimport { LoginOAuthType } from '@arsedizioni/ars-utils/ui.oauth';\r\n\r\n\r\nexport interface EvolutionLoginResult extends LoginResult<EvolutionUserInfo> {\r\n}\r\n\r\nexport interface EvolutionLoginInfo {\r\n context: EvolutionUserInfo;\r\n oauth?: LoginOAuthType ;\r\n remember?: boolean;\r\n}\r\n\r\nexport interface EvolutionUserLink {\r\n id?: number ;\r\n userId: number;\r\n userName?: string ;\r\n key: string;\r\n}\r\n\r\nexport interface EvolutionUserModuleInfo {\r\n name: string;\r\n module: number;\r\n level: number;\r\n hidden: boolean;\r\n}\r\n\r\n\r\nexport interface EvolutionLicenceModuleInfo {\r\n module: ERPModule;\r\n name: string;\r\n availableUsers: number;\r\n usedUsers: number;\r\n availableOption1?: number ;\r\n usedOption1?: number ;\r\n availableOption2?: number ;\r\n usedOption2?: number ;\r\n availableOption3?: number ;\r\n usedOption3?: number ;\r\n}\r\n\r\nexport interface EvolutionUserInfo {\r\n licenceId: number;\r\n userId: number;\r\n companyName: string;\r\n firstName: string;\r\n fullName: string;\r\n flags?: number ;\r\n email: string;\r\n sessionId?: string ;\r\n isTemporary?: boolean ;\r\n role: number;\r\n scope: number;\r\n roleName: string;\r\n roleLevel: number;\r\n allowedModules: EvolutionUserModuleInfo[];\r\n dashboard?: number ;\r\n dashboard2?: string ;\r\n code?: string ;\r\n subjectId?: number ;\r\n subjectName?: string ;\r\n siteId?: number ;\r\n siteName?: string ;\r\n siteCostCenter?: string ;\r\n departmentId?: number ;\r\n departmentName?: string ;\r\n expiryDate?: string ;\r\n isExpired?: boolean ;\r\n isAdministrator?: boolean ;\r\n isPowerUser?: boolean ;\r\n isObserver?: boolean ;\r\n isUser?: boolean ;\r\n isSupportUser?: boolean ;\r\n isGod?: boolean ;\r\n administrators: string;\r\n availableModules: EvolutionLicenceModuleInfo[];\r\n availableEmployees: number;\r\n usedEmployees: number;\r\n availableStorage: number;\r\n usedStorage: number;\r\n}\r\n\r\n\r\n\r\nexport enum EvolutionServiceFlags {\r\n None = 0,\r\n NotifySystemErrors = 1,\r\n DisplayConnectionStateMessages = 1 << 1,\r\n Embedded = 1 << 2\r\n\r\n}\r\n\r\nexport enum ERPModule {\r\n Formazione = 1,\r\n DPI = 1 << 1,\r\n SorveglianzaSanitaria = 1 << 2,\r\n RegistroEScadenzario = 1 << 3,\r\n AttrezzatureEImpianti = 1 << 4,\r\n Monitoraggio = 1 << 5,\r\n Bollettino = 1 << 6,\r\n Documenti = 1 << 7\r\n\r\n}\r\n\r\nexport interface EvolutionPlaceable {\r\n licenceId?: number ;\r\n companyName?: string ;\r\n subjectId?: number ;\r\n subjectName?: string ;\r\n siteId?: number ;\r\n siteName?: string ;\r\n departmentId?: number ;\r\n departmentName?: string ;\r\n placeId?: number ;\r\n}\r\n\r\nexport enum ERPExportType\r\n{\r\n Basic = 1,\r\n Detailed = 8,\r\n Complete = 9,\r\n Labels = 10,\r\n EmployeesCoursesMatrix = 21,\r\n EmployeesCoursesHoursMatrix = 22,\r\n EmployeesPPEsMatrix = 23,\r\n EmployeesHealthChecksMatrix = 24,\r\n TasksCoursesMatrix = 31,\r\n Training = 101,\r\n TrainingExpired = 102,\r\n TrainingExpiring = 103,\r\n TrainingAbsents = 104,\r\n TrainingClosed = 105,\r\n TrainingCurrentYear = 108,\r\n TrainingNextYear = 109,\r\n TrainingAnnualPlannng = 110,\r\n EquipmentsActivitiesCompleted = 201,\r\n EquipmentsChecksMatrix = 202,\r\n RSNormsUsage = 301,\r\n RSNormsSitesMatrix = 302,\r\n RSNormsSummary = 303,\r\n MonitoringLaws = 401,\r\n MonitoringActivities = 402,\r\n MonitoringSummary = 403,\r\n PPEs = 501,\r\n ComplianceStatistics = 601,\r\n HealthChecks = 701,\r\n}\r\n\r\nexport enum ERPExportFormat\r\n{\r\n Csv = 1,\r\n Word = 2,\r\n Pdf = 3\r\n}\r\n\r\nexport enum ERPExportSource\r\n{\r\n All = 1,\r\n Query = 2,\r\n Selection = 3\r\n}\r\n\r\nexport enum ERPExportPart\r\n{\r\n IncludeRisks = 101,\r\n IncludeTasks = 102,\r\n IncludeTaskHistory = 103,\r\n IncludeTrainingRequired = 111,\r\n IncludeTrainingDone = 112,\r\n SelectedEmployeeCourses = 121,\r\n IncludeDisabledEmployees = 131,\r\n IncludeDismissedEmployees = 132,\r\n IncludeDocumentUpdates = 201,\r\n ExcludeNonApplicableOrAcknowledged = 202,\r\n ExcluteAbblicabilityTable = 203,\r\n IncludeActivities = 204,\r\n GroupLaws = 205,\r\n IncludeApplicableOrAcknowledgedOnly = 4301,\r\n IncludePPEs = 501,\r\n IncludeHealthChecks = 601\r\n}\r\n\r\nexport interface EvolutionExportModel<T> extends SendToModel {\r\n searchParams: T;\r\n selection?: number[] ;\r\n type: ERPExportType;\r\n sort?: number ;\r\n source: ERPExportSource;\r\n format: ERPExportFormat;\r\n parts?: ERPExportPart[] ;\r\n automateReport?: boolean ;\r\n automatedReportId?: number ;\r\n automatedReportSheetName?: string;\r\n formatExtension?: string ; \r\n}\r\n\r\nexport enum ERPComplianceLawsSelectionType {\r\n Analysis = 1,\r\n Activity = 2,\r\n}\r\n\r\nexport enum ERPComplianceProfileRole {\r\n None = 0,\r\n Analyst = 1,\r\n Planner = 1 << 1,\r\n Validator = 1 << 2,\r\n Executor = 1 << 3,\r\n Observer = 1 << 4,\r\n}\r\n\r\nexport enum ERPComplianceProfileFlags {\r\n\r\n OverrideNotificationRegisterSettings = 1 << 4,\r\n}\r\n\r\nexport enum ERPComplianceScope {\r\n None = 0,\r\n Environment = 1,\r\n Safety = 1 << 1,\r\n FoodSafety = 1 << 2,\r\n Energy = 1 << 3,\r\n Health = 1 << 4,\r\n Maintenance = 1 << 5,\r\n Quality = 1 << 6,\r\n Organization = 1 << 7,\r\n Logistics = 1 << 8,\r\n Facility = 1 << 9,\r\n Security = 1 << 10,\r\n GenderEquality = 1 << 11,\r\n AntiCorruption = 1 << 12,\r\n Sustainability = 1 << 13,\r\n InformationSecurity = 1 << 14\r\n}\r\n\r\nexport enum ERPComplianceNotificationLimit {\r\n None = 0,\r\n PlannerOnly = 1,\r\n ExecutorOnly = 2,\r\n Both = 3,\r\n}\r\n\r\nexport enum ERPComplianceRegisterNotificationType {\r\n None = 0,\r\n NewAnalysis = 1,\r\n AnalysisCompleted = 1 << 1,\r\n AnalysisNoticePeriodStarted = 1 << 2,\r\n AnalysisPeriodExpired = 1 << 3,\r\n AnalysisLawChanged = 1 << 14,\r\n NewPlanning = 1 << 13,\r\n PlanningCompleted = 1 << 4,\r\n PlanningNoticePeriodStarted = 1 << 5,\r\n PlanningPeriodExpired = 1 << 6,\r\n NewValidation = 1 << 15,\r\n ValidationCompleted = 1 << 7,\r\n ValidationNoticePeriodStarted = 1 << 8,\r\n ValidationPeriodExpired = 1 << 9,\r\n NewDeadline = 1 << 16,\r\n DeadlineNoticePeriodStarted = 1 << 10,\r\n DeadlineExpired = 1 << 11,\r\n ActivityCompleted = 1 << 12,\r\n //NewNoncompliance = 1 << 17,\r\n //NonComplianceNoticePeriodStarted = 1 << 18,\r\n //NonCompliancePeriodExpired = 1 << 19,\r\n //NonComplianceCompleted = 1 << 20,\r\n LawChanged = 1 << 21,\r\n}\r\n\r\nexport enum ERPComplianceRegisterSiteImportOptions {\r\n CopyAttachments = 1,\r\n KeepOriginalDates = 1 << 1,\r\n DuplicateLaws = 1 << 2,\r\n DiscardNotApplicables = 1 << 3\r\n}\r\n\r\nexport const EvolutionComplianceProfileRoles = [\r\n { name: 'Analista', value: ERPComplianceProfileRole.Analyst },\r\n { name: 'Gestore', value: ERPComplianceProfileRole.Planner },\r\n //{ name: 'Validatore', value: ERPComplianceProfileRole.Validator },\r\n { name: 'Esecutore', value: ERPComplianceProfileRole.Executor },\r\n { name: 'Osservatore', value: ERPComplianceProfileRole.Observer },\r\n];\r\n\r\nexport const EvolutionComplianceProfileFlags = [\r\n { name: 'Deroghe e limitazioni', divider: true },\r\n {\r\n name:\r\n 'Questo profilo riceve regolarmente le notifiche indipendentemente dalla configurazione generale del registro',\r\n value: ERPComplianceProfileFlags.OverrideNotificationRegisterSettings,\r\n },\r\n];\r\n\r\nexport const EvolutionComplianceScopes = [\r\n { name: 'Ambiente', value: ERPComplianceScope.Environment },\r\n { name: 'Salute e sicurezza', value: ERPComplianceScope.Safety },\r\n {\r\n name: 'Sicurezza alimentare',\r\n value: ERPComplianceScope.FoodSafety,\r\n },\r\n { name: 'Energia', value: ERPComplianceScope.Energy },\r\n { name: 'Servizi generali', value: ERPComplianceScope.Facility },\r\n { name: 'Manutenzione', value: ERPComplianceScope.Maintenance },\r\n { name: 'Qualità', value: ERPComplianceScope.Quality },\r\n { name: 'Organizzazione', value: ERPComplianceScope.Organization },\r\n { name: 'Logistica', value: ERPComplianceScope.Logistics },\r\n { name: 'Security', value: ERPComplianceScope.Security },\r\n { name: \"Anticorruzione\", value: ERPComplianceScope.AntiCorruption },\r\n { name: \"Sostenibilità\", value: ERPComplianceScope.Sustainability },\r\n { name: \"Parità di genere\", value: ERPComplianceScope.GenderEquality },\r\n { name: \"Sicurezza dell'informazione\", value: ERPComplianceScope.InformationSecurity },\r\n\r\n];\r\n\r\nexport const EvolutionComplianceNotificationLimits = [\r\n { name: 'Nessuna limitazione', value: ERPComplianceNotificationLimit.None },\r\n {\r\n name: 'Solo gestore che ha pianificato',\r\n value: ERPComplianceNotificationLimit.PlannerOnly,\r\n },\r\n {\r\n name: \"Solo all'incaricato designato\",\r\n value: ERPComplianceNotificationLimit.ExecutorOnly,\r\n },\r\n {\r\n name: 'Solo a gestore e incaricato designato',\r\n value: ERPComplianceNotificationLimit.Both,\r\n },\r\n];\r\n\r\nexport const EvolutionComplianceNotifications = [\r\n { name: 'Verifica applicabilità e analisi', divider: true },\r\n {\r\n name: 'Richiesta analisi',\r\n value: ERPComplianceRegisterNotificationType.NewAnalysis,\r\n },\r\n {\r\n name: \"Preavviso: sta per scadere il termine fissato per l'analisi\",\r\n value: ERPComplianceRegisterNotificationType.AnalysisNoticePeriodStarted,\r\n },\r\n {\r\n name: \"Allarme: è scaduto il termine fissato per l'analisi\",\r\n value: ERPComplianceRegisterNotificationType.AnalysisPeriodExpired,\r\n },\r\n {\r\n name: 'Analisi completata',\r\n value: ERPComplianceRegisterNotificationType.AnalysisCompleted,\r\n },\r\n {\r\n name: 'Avviso norma modificata dal legislatore',\r\n value: ERPComplianceRegisterNotificationType.AnalysisLawChanged,\r\n },\r\n { name: 'Pianificazioni', divider: true },\r\n {\r\n name: 'Richiesta gestione',\r\n value: ERPComplianceRegisterNotificationType.NewPlanning,\r\n },\r\n {\r\n name: 'Preavviso: sta per scadere il termine fissato per la gestione',\r\n value: ERPComplianceRegisterNotificationType.PlanningNoticePeriodStarted,\r\n },\r\n {\r\n name: 'Allarme: è scaduto il termine fissato per la gestione',\r\n value: ERPComplianceRegisterNotificationType.PlanningPeriodExpired,\r\n },\r\n {\r\n name: 'Gestione completata',\r\n value: ERPComplianceRegisterNotificationType.PlanningCompleted,\r\n },\r\n {\r\n name: 'Attività completata',\r\n value: ERPComplianceRegisterNotificationType.ActivityCompleted,\r\n },\r\n /*{ name: 'Gestione non conformità', divider: true },\r\n {\r\n name: 'Apertura non comformità',\r\n value: ERPComplianceRegisterNotificationType.NewNoncompliance,\r\n },\r\n {\r\n name:\r\n \"Preavviso: sta per scadere il termine fissato per l'azione correttiva\",\r\n value:\r\n ERPComplianceRegisterNotificationType.NonComplianceNoticePeriodStarted,\r\n },\r\n {\r\n name: \"Allarme: è scaduto il termine fissato per l'azione correttiva\",\r\n value: ERPComplianceRegisterNotificationType.NonCompliancePeriodExpired,\r\n },\r\n {\r\n name: 'Chiusura non conformità',\r\n value: ERPComplianceRegisterNotificationType.NonComplianceCompleted,\r\n },*/\r\n /*{ name: 'Approvazioni', divider: true },\r\n { name: 'Richiesta approvazione', value: 1 << 14 },\r\n {\r\n name: \"Preavviso: sta per scadere il termine fissato per l'approvazione\",\r\n value: ERPComplianceRegisterNotificationType.ValidationNoticePeriodStarted,\r\n },\r\n {\r\n name: \"Allarme: è scaduto il termine fissato per l'approvazione\",\r\n value: ERPComplianceRegisterNotificationType.ValidationPeriodExpired,\r\n },\r\n {\r\n name: 'Approvazione concessa o negata',\r\n value: ERPComplianceRegisterNotificationType.ValidationCompleted,\r\n },*/\r\n { name: 'Scadenze', divider: true },\r\n {\r\n name: 'Preavviso: 1° promemoria sulla data di scadenza',\r\n value: ERPComplianceRegisterNotificationType.NewValidation,\r\n },\r\n {\r\n name: 'Avviso: 2° promemoria sulla data di scadenza',\r\n value: ERPComplianceRegisterNotificationType.DeadlineNoticePeriodStarted,\r\n },\r\n {\r\n name: 'Allarme: è scaduto il termine',\r\n value: ERPComplianceRegisterNotificationType.DeadlineExpired,\r\n },\r\n { name: 'Norme collegate', divider: true },\r\n {\r\n name: 'Modifica o abrogazione',\r\n value: ERPComplianceRegisterNotificationType.LawChanged,\r\n },\r\n\r\n];\r\n\r\nexport enum ERPComplianceLawState {\r\n ApplicableOrAknowledged = 1,\r\n NotApplicable = 2,\r\n NotAnalyzed = 3,\r\n ExpiredAnalysis = 4,\r\n UpdatedLaws = 5,\r\n Analyzed = 6,\r\n Abrogated = 7,\r\n Applicable = 8,\r\n Aknowledged = 9\r\n}\r\n\r\nexport enum ERPComplianceLawOrigin {\r\n National = 1,\r\n EU = 2,\r\n Regional = 3,\r\n Local = 4,\r\n Technical = 5,\r\n Voulontary = 6,\r\n Internal = 7,\r\n Other = 8,\r\n}\r\n\r\nexport const EvolutionComplianceLawStates = [\r\n { name: 'Applicabile', value: ERPComplianceLawState.Applicable },\r\n { name: 'Da conoscere', value: ERPComplianceLawState.Aknowledged },\r\n {\r\n name: 'Applicabile / da conoscere',\r\n value: ERPComplianceLawState.ApplicableOrAknowledged,\r\n },\r\n { name: 'Non applicabile', value: ERPComplianceLawState.NotApplicable },\r\n { name: 'Abrogata', value: ERPComplianceLawState.Abrogated },\r\n { name: 'Analizzata', value: ERPComplianceLawState.Analyzed },\r\n { name: 'Da definire', value: ERPComplianceLawState.NotAnalyzed },\r\n { name: 'In ritardo', value: ERPComplianceLawState.ExpiredAnalysis },\r\n {\r\n name: 'Con aggiornamenti pendenti',\r\n value: ERPComplianceLawState.UpdatedLaws,\r\n },\r\n];\r\n\r\nexport const EvolutionComplianceLawOrigins = [\r\n { name: 'Nazionale', value: ERPComplianceLawOrigin.National },\r\n { name: 'Comunitaria', value: ERPComplianceLawOrigin.EU },\r\n { name: 'Regionale', value: ERPComplianceLawOrigin.Regional },\r\n { name: 'Locale', value: ERPComplianceLawOrigin.Local },\r\n { name: 'Tecnica', value: ERPComplianceLawOrigin.Technical },\r\n { name: 'Interna', value: ERPComplianceLawOrigin.Internal },\r\n { name: 'Volontaria', value: ERPComplianceLawOrigin.Voulontary },\r\n { name: 'Altro', value: ERPComplianceLawOrigin.Other },\r\n];\r\n\r\nexport const EvolutionComplianceLawChangeStates = [\r\n { name: 'Aperto', value: 1 },\r\n { name: 'Chiuso', value: 2 },\r\n];\r\n\r\nexport enum ERPComplianceActivityState {\r\n NotPlanned = 1 << 7,\r\n Closed = 1 << 2,\r\n Expired = 1 << 3,\r\n Planned = 1 << 8,\r\n Cancelled = 1 << 9,\r\n UpdatedLaws = 1 << 10,\r\n AlreadyManaged = 1 << 11\r\n}\r\n\r\nexport const EvolutionComplianceActivityStates = [\r\n {\r\n name: 'Da definire',\r\n value: ERPComplianceActivityState.NotPlanned,\r\n },\r\n {\r\n name: 'Pianificata',\r\n value: ERPComplianceActivityState.Planned,\r\n },\r\n {\r\n name: 'Chiusa',\r\n value: ERPComplianceActivityState.Closed,\r\n },\r\n {\r\n name: 'In ritardo',\r\n value: ERPComplianceActivityState.Expired,\r\n },\r\n {\r\n name: 'Annullata',\r\n value: ERPComplianceActivityState.Cancelled,\r\n },\r\n {\r\n name: 'Gestita separatamente',\r\n value: ERPComplianceActivityState.AlreadyManaged,\r\n },\r\n {\r\n name: 'Con aggiornamenti pendenti',\r\n value: ERPComplianceActivityState.UpdatedLaws,\r\n },\r\n];\r\n\r\nexport const EvolutionComplianceObligationTypes = [\r\n { name: 'Autorizzazione', value: 1 },\r\n { name: 'Verifiche periodiche manutentive', value: 2 },\r\n { name: 'Misure organizzative', value: 3 },\r\n { name: 'Controlli e misurazioni', value: 4 },\r\n { name: 'Entrata in vigore', value: 5 },\r\n { name: 'Documenti aziendali obbligatori', value: 6 },\r\n {\r\n name: 'Altri adempimenti formali (comunicazioni, dichiarazioni, ecc...)',\r\n value: 7,\r\n },\r\n { name: 'Altro', value: 99 },\r\n];\r\n\r\nexport const EvolutionComplianceObligationAuthorities = [\r\n { name: 'Agenzia ECHA', value: 1 },\r\n { name: 'Albo Nazionale dei Gestori Ambientali', value: 2 },\r\n { name: 'ARPA', value: 4 },\r\n { name: 'ASL', value: 5 },\r\n { name: 'Camera di Commercio', value: 8 },\r\n { name: 'Comando provinciale dei Vigili del Fuoco', value: 10 },\r\n { name: 'Comune', value: 13 },\r\n { name: 'Consorzi gestione rifiuti particolari', value: 14 },\r\n { name: 'Gestore del servizio', value: 21 },\r\n { name: 'Gestore della rete di trasmissione nazionale', value: 22 },\r\n { name: 'INAIL - IPSEMA - ISPESL', value: 23 },\r\n { name: 'ISPRA', value: 26 },\r\n { name: 'Ministero', value: 27 },\r\n { name: 'Genio civile', value: 30 },\r\n { name: 'Organo di vigilanza competente', value: 31 },\r\n { name: 'Provincia', value: 33 },\r\n { name: 'Regione', value: 35 },\r\n { name: 'Uffici tecnici di finanza', value: 36 },\r\n { name: 'Ispettorato del lavoro', value: 37 },\r\n { name: 'Comitato Regionale Tecnico VF', value: 38 },\r\n { name: 'Prefetto', value: 39 },\r\n { name: 'Organismo notificato', value: 40 },\r\n { name: 'Città Metropolitana', value: 41 },\r\n { name: 'Nessuna', value: 28 },\r\n { name: 'Altro', value: 3 }\r\n];\r\n\r\nexport enum ERPRecurrenceFrequencyType {\r\n Day = 1,\r\n Month = 2,\r\n Year = 3,\r\n}\r\nexport const EvolutionRecurrenceFrequencyTypes = [\r\n { name: 'Anni', value: ERPRecurrenceFrequencyType.Year },\r\n { name: 'Mesi', value: ERPRecurrenceFrequencyType.Month },\r\n { name: 'Giorni', value: ERPRecurrenceFrequencyType.Day },\r\n];\r\n\r\nexport enum ERPPlacePermission {\r\n None = 0,\r\n Denied = 1,\r\n Read = 2,\r\n Write = 3\r\n}\r\n\r\nexport enum ERPPlace {\r\n Subject = 1,\r\n Site = 2,\r\n Department = 3,\r\n Area = 4,\r\n Line = 5\r\n}\r\nexport interface EvolutionPermission {\r\n placeId: number;\r\n userId: number;\r\n allowRead: number;\r\n allowWrite: number;\r\n allowNone: number;\r\n}\r\n\r\nexport interface EvolutionPlacePermission extends EvolutionPermission {\r\n id: number;\r\n subjectId?: number;\r\n siteId?: number;\r\n departmentId?: number;\r\n mode: number;\r\n}\r\n\r\nexport interface EvolutionContextInfo {\r\n id: number;\r\n userId?: number;\r\n name: string;\r\n permission: EvolutionPermission;\r\n placePermission: ERPPlacePermission;\r\n costCenter: string;\r\n selected?: boolean;\r\n level?: number;\r\n levelTitle?: string;\r\n}\r\n\r\nexport class EvolutionComplianceContextInfo {\r\n licenceId?: number;\r\n companyName?: string;\r\n registerTitle?: string;\r\n registerId?: number;\r\n siteName?: string;\r\n siteId?: number;\r\n userId?: number;\r\n items?: EvolutionContextInfo[];\r\n}\r\n\r\nexport interface EvolutionChangeContextModel {\r\n userId?: number ;\r\n licenceId?: number ;\r\n subjectId?: number ;\r\n siteId?: number ;\r\n registerId?: number ;\r\n role?: ERPComplianceProfileRole ;\r\n permission?: ERPPlacePermission ;\r\n option1Value?: number ;\r\n option2Value?: number ;\r\n option3Value?: number ;\r\n allowObservers?: boolean ;\r\n allowDisabled?: boolean ;\r\n}\r\n\r\nexport interface EvolutionChangeContextResultModel {\r\n items: EvolutionContextInfo[];\r\n}\r\n\r\nexport interface EvolutionComplianceRegister extends EvolutionPlaceable {\r\n id: number;\r\n title?: string;\r\n enableNotifications?: boolean;\r\n enableNotification1?: boolean;\r\n enableNotification2?: boolean;\r\n enableNotification3?: boolean;\r\n enableNotification4?: boolean;\r\n enableNotification5?: boolean;\r\n enableNotification7?: boolean;\r\n enableNotification8?: boolean;\r\n enableNotification9?: boolean;\r\n notification1NoticeDays?: number;\r\n notification2NoticeDays?: number;\r\n notification2Limit?: number;\r\n notification3NoticeDays?: number;\r\n notification4NoticeDays?: number;\r\n notification4Limit?: number;\r\n notification5NoticeDays?: number;\r\n notification5Limit?: number;\r\n notification6Limit?: number;\r\n notification8NoticeDays?: number;\r\n notification8Limit?: number;\r\n enableActivityLawsPopulation?: boolean;\r\n enableLawChangesTracking?: boolean;\r\n automationMode?: number;\r\n automationScope?: number;\r\n disabled?: boolean;\r\n created?: Date;\r\n lastUpdated?: Date;\r\n lastUpdatedBy?: string;\r\n totalSites?: number;\r\n totalProfiles?: number;\r\n sites?: EvolutionComplianceRegisterSite[];\r\n oldId?: string;\r\n isAutomationEnabled?: boolean;\r\n automationModeDescription?: string;\r\n automationScopeDescription?: string;\r\n context?: EvolutionComplianceContextInfo;\r\n isMenuOpen?: boolean;\r\n isOver?: boolean;\r\n}\r\n\r\nexport interface EvolutionRegisterProfileSiteInfo extends EvolutionContextInfo {\r\n\r\n}\r\n\r\nexport interface EvolutionRegisterProfileUserInfo {\r\n userId: number;\r\n name: string;\r\n sites: EvolutionRegisterProfileSiteInfo[];\r\n}\r\n\r\nexport interface ComplianceRegisterUsersResultModel {\r\n users: EvolutionRegisterProfileUserInfo[];\r\n sites: EvolutionRegisterProfileSiteInfo[];\r\n}\r\n\r\nexport interface EvolutionComplianceRegisterSite {\r\n id: number;\r\n complianceRegisterId?: number;\r\n complianceSiteId?: number;\r\n disabled?: boolean;\r\n created?: Date;\r\n licenceId?: number;\r\n subjectId?: number;\r\n subjectName: string;\r\n siteId?: number;\r\n siteName?: string;\r\n departmentId?: number;\r\n departmentName?: string;\r\n registerTitle?: string;\r\n placeId?: number;\r\n oldSiteId?: string;\r\n}\r\n\r\nexport interface EvolutionComplianceLaw extends EvolutionPlaceable {\r\n id?: number;\r\n state?: number;\r\n complianceRegisterId?: number;\r\n lot?: number;\r\n topicId?: string;\r\n topicPath?: string;\r\n topicName?: string;\r\n summary?: string;\r\n scope?: number;\r\n source?: string;\r\n references?: EvolutionComplianceLawReference[];\r\n originalLawId?: number ;\r\n originRegion?: string ;\r\n origin?: number ;\r\n originAlternativeDescription?: string ;\r\n description?: string ;\r\n documentShortTitle?: string ;\r\n documentTitle?: string ;\r\n documentNumber?: string ;\r\n documentDate?: Date ;\r\n documentLastUpdate?: string ;\r\n documentLastUpdateShortTitle?: string ;\r\n documentUpdateNotes?: string ;\r\n documentValidated?: boolean ;\r\n documentId?: string ;\r\n documentModel?: number ;\r\n documentReferences?: string ;\r\n documentNotes?: string ;\r\n documentForceGlobalCheckForUpdates?: boolean;\r\n complianceCheckItem1?: boolean ;\r\n complianceCheckItem2?: boolean ;\r\n complianceCheckItem3?: boolean ;\r\n complianceCheckItem4?: boolean ;\r\n complianceCheckItem5?: boolean ;\r\n complianceCheckItem6?: boolean ;\r\n complianceCheckItem7?: boolean ;\r\n complianceCheckItem8?: boolean ;\r\n complianceCheckItem9?: boolean ;\r\n complianceCheckItem10?: boolean ;\r\n complianceCheckItem11?: boolean ;\r\n complianceCheckItem12?: boolean ;\r\n alternativeComplianceCheckItem?: boolean ;\r\n alternativeComplianceDescription?: string ;\r\n applicability?: number ;\r\n analyzedBy?: string ;\r\n analystOperatorId?: number ;\r\n analysisExpiringDate?: Date ;\r\n analysisDate?: Date ;\r\n analysisNotes?: string ;\r\n analysisNoticeDate?: string ;\r\n group1?: string ;\r\n group2?: string ;\r\n count?: number ;\r\n created?: Date ;\r\n createdBy?: string ;\r\n lastUpdated?: Date ;\r\n lastUpdatedBy?: string ;\r\n}\r\n\r\nexport interface EvolutionQueryRegisterProfilesModel extends QueryModel {\r\n complianceRegisterId?: number;\r\n siteId?: number;\r\n userId?: number;\r\n licenceId?: number;\r\n name?: string;\r\n role?: number;\r\n allowObservers?: boolean;\r\n allowDisabled?: boolean;\r\n state?: number;\r\n}\r\n\r\nexport interface EvolutionComplianceRegisterProfile {\r\n id: number;\r\n licenceId?: number;\r\n userId?: number;\r\n passiveUserName?: string;\r\n passiveUserOperatorId?: number;\r\n complianceRegisterId?: number;\r\n complianceSiteId?: number;\r\n scopes?: number;\r\n selectedScopes?: number[];\r\n roles?: number;\r\n selectedRoles?: number[];\r\n notifications?: number;\r\n flags?: number;\r\n disabled?: boolean;\r\n created?: Date;\r\n lastUpdated?: Date;\r\n lastUpdatedBy?: string;\r\n subjectId?: number;\r\n subjectName?: string;\r\n siteId?: number;\r\n siteName?: string;\r\n siteDisabled?: boolean;\r\n departmentId?: number;\r\n departmentName?: string;\r\n passiveUserEmail?: string;\r\n placeId?: number;\r\n userEmail?: string;\r\n userOperatorId?: number;\r\n userDisabled?: boolean;\r\n registerDisabled?: boolean;\r\n registerTitle?: string;\r\n name?: string;\r\n scopeNames?: string;\r\n isAdministrator?: boolean;\r\n isObserver?: boolean;\r\n denied?: boolean;\r\n oldId?: string;\r\n operatorId?: number;\r\n isMenuOpen?: boolean;\r\n isOver?: boolean;\r\n context?: EvolutionComplianceContextInfo;\r\n}\r\nexport interface EvolutionComplianceLawDocumentInfo {\r\n documentId?: string;\r\n documentId2?: string;\r\n title2?: string;\r\n title1?: string;\r\n number?: string;\r\n date?: Date;\r\n origin?: number;\r\n originDescription?: string;\r\n originAlternativeDescription?: string;\r\n originRegion?: string;\r\n notes?: string;\r\n references?: EvolutionComplianceLawReference[];\r\n forceGlobalCheckForUpdates?: boolean;\r\n validated?: boolean;\r\n description?: string;\r\n taxonomy?: string;\r\n taxonomyPath?: string;\r\n}\r\n\r\nexport interface EvolutionComplianceLawsAddParams extends EvolutionComplianceLaw {\r\n context?: EvolutionComplianceContextInfo;\r\n documents?: EvolutionComplianceLawDocumentInfo[];\r\n shouldNotifyAnalysisCompletionAgain?: boolean;\r\n scopes?: number[];\r\n sites?: number[];\r\n registers?: number[];\r\n}\r\n\r\n/** Export parameters for compliance laws. */\r\nexport interface EvolutionComplianceLaswExportParams extends EvolutionExportModel<Partial<EvolutionComplianceLaw>> {}\r\n\r\nexport interface EvolutionComplianceLawReference {\r\n id?: number ;\r\n complianceLawId?: number ;\r\n text: string;\r\n description?: string ;\r\n anchor: string;\r\n}\r\n\r\nexport interface EvolutionComplianceActivity extends EvolutionPlaceable {\r\n id: number;\r\n state: number;\r\n monitoringActivityId?: number;\r\n monitoringActivityTaskId?: number;\r\n complianceRegisterId?: number;\r\n childId?: number ;\r\n parentId?: number ;\r\n lot?: number ; \r\n summary?: string;\r\n scope?: number;\r\n topicId?: string ;\r\n topicPath?: string;\r\n topicName?: string;\r\n mandatory?: boolean ;\r\n obligationType?: number ;\r\n obligationAuthorityId?: number ;\r\n obligationNotes?: string;\r\n obligationCheckPoint?: boolean ;\r\n description?: string;\r\n deadlineRecurrent?: boolean ;\r\n deadlineFrequency?: number ;\r\n deadlineFrequencyType?: number ;\r\n deadlineFrequencyEndOfMonth?: boolean ;\r\n deadlineFirstNoticeDays?: number ;\r\n deadlineLastNoticeDays?: number ;\r\n deadlineFirstNoticeDate?: Date ;\r\n deadlineLastNoticeDate?: Date ;\r\n deadlineExpiringDate?: Date ;\r\n planningNoticeDate?: Date ;\r\n planningExpiringDate?: Date ;\r\n planningDate?: Date ;\r\n plannedBy?: string;\r\n plannerOperatorId?: number ;\r\n planningApplicability?: number ;\r\n planningNotificationAdditionalEmailHeader?: string;\r\n planningNotificationAdditionalEmails?: string;\r\n planningNotificationAdditionalEmailsForAlertsOnly?: string;\r\n planningNamedExecutorOperatorId?: number ;\r\n planningNamedExecutorName?: string;\r\n planningNamedExecutorManagerOperatorId?: number ;\r\n planningNamedExecutorManagerName?: string;\r\n planningScheduleNextFromExecutionDate?: boolean ;\r\n planningNotes?: string;\r\n executorOperatorId?: number ;\r\n executed?: boolean;\r\n executedBy?: string;\r\n executionDate?: Date;\r\n externalReference?: string;\r\n externalDescription?: string;\r\n group1?: string;\r\n group2?: string;\r\n notes?: string;\r\n created?: Date;\r\n createdBy?: string;\r\n lastUpdated?: Date ;\r\n lastUpdatedBy?: string;\r\n\r\n}\r\n\r\nexport interface EvolutionComplianceActivitiesAddParams extends EvolutionComplianceActivity {\r\n context?: EvolutionComplianceContextInfo;\r\n complianceLawId?: number;\r\n monitoringLawId?: number;\r\n enableLawChangesTracking?: boolean;\r\n enableActivityLawsPopulation?: boolean;\r\n shouldNotifyPlanningCompletionAgain?: boolean;\r\n scopes?: number[];\r\n sites?: number[];\r\n registers?: number[];\r\n document?: EvolutionComplianceLawDocumentInfo;\r\n}","import { HttpErrorResponse, HttpInterceptorFn } from '@angular/common/http';\nimport { inject } from '@angular/core';\nimport { BroadcastService, ErrorInfo } from '@arsedizioni/ars-utils/core';\nimport { catchError, throwError } from 'rxjs';\nimport { EvolutionServiceFlags } from '../definitions';\nimport { EvolutionMessages } from '../messages';\n\n/** Minimum milliseconds between consecutive error broadcasts (debounce guard). */\nconst ERROR_DEBOUNCE_MS = 5000;\n\n/**\n * Builds the Evolution auth HTTP interceptor.\n *\n * Takes its two inputs — the Evolution base URI and the service flags — directly\n * as arguments (captured in the closure), so it never injects EvolutionService:\n * registering it does not pull the full Evolution service into the eager bundle.\n *\n * Register it with `withInterceptors`:\n * @example\n * provideHttpClient(withInterceptors([\n * evolutionAuthInterceptor(environment.evolutionServiceUri,\n * EvolutionServiceFlags.DisplayConnectionStateMessages | EvolutionServiceFlags.Embedded),\n * ]))\n *\n * @param serviceUri - Base URI of the Evolution service; only requests starting with it are handled.\n * @param flags - Service flags (e.g. NotifySystemErrors). Defaults to None.\n * @returns An `HttpInterceptorFn` ready to register.\n */\nexport function evolutionAuthInterceptor(\n serviceUri: string,\n flags: EvolutionServiceFlags = EvolutionServiceFlags.None\n): HttpInterceptorFn {\n // Debounce state, persisted across requests via the factory closure.\n let lastErrorTime = -1;\n\n /**\n * Broadcasts a user-friendly message for an Evolution HTTP error, debounced.\n * @param error - The raw error value thrown by the HTTP layer.\n * @param broadcastService - The broadcast service for the current request.\n * @returns void\n */\n function handleError(error: unknown, broadcastService: BroadcastService): void {\n if (!(error instanceof HttpErrorResponse)) return;\n // Only reject errors that explicitly belong to a different service; a missing\n // url (network failure on an Evolution request) is allowed through.\n if (error.url && !error.url.startsWith(serviceUri)) return;\n\n const errorStatus = error.status;\n const shouldNotify =\n errorStatus === 0 ||\n (errorStatus > 0 && errorStatus < 500) ||\n (flags & EvolutionServiceFlags.NotifySystemErrors) > 0;\n\n if (!shouldNotify) return;\n\n const now = Date.now();\n if (now - lastErrorTime <= ERROR_DEBOUNCE_MS) return;\n lastErrorTime = now;\n\n let message: string;\n switch (errorStatus) {\n case 0:\n message = \"In questo momento Evolution non è disponibile. Riprova tra qualche minuto.\";\n break;\n case 403:\n message = \"Non hai i permessi necessari per eseguire l'operazione richiesta.\";\n break;\n default:\n message = (\n (error.error as Record<string, string> | null)?.['message'] ??\n error.message ??\n \"Impossibile eseguire l'operazione richiesta.\"\n ).replaceAll('\\r\\n', '</p><p>');\n break;\n }\n\n broadcastService.sendMessage(\n EvolutionMessages.ERROR,\n {\n invalidateSession: errorStatus === 405 || errorStatus === 410,\n message,\n title: \"Errore in Evolution\",\n errorStatus,\n service: serviceUri\n } as ErrorInfo\n );\n }\n\n // The interceptor itself. Runs in an injection context, so `inject()` works.\n return (request, next) => {\n if (!serviceUri || !request.url.startsWith(serviceUri)) {\n return next(request);\n }\n\n const broadcastService = inject(BroadcastService);\n\n const authenticatedRequest = request.clone({\n withCredentials: true,\n setHeaders: {\n 'ngsw-bypass': 'ngsw-bypass',\n 'X-Client-Id': sessionStorage.getItem('evolution_client_id') ?? ''\n }\n });\n\n return next(authenticatedRequest).pipe(\n catchError((error: unknown) => {\n handleError(error, broadcastService);\n return throwError(() => error);\n })\n );\n };\n}","import { Service, Signal, WritableSignal, inject, signal } from '@angular/core';\nimport { BroadcastService } from '@arsedizioni/ars-utils/core';\nimport type { LoginOAuthType } from '@arsedizioni/ars-utils/ui.oauth';\nimport { EvolutionMessages } from '../messages';\nimport { EvolutionLoginInfo, EvolutionLoginResult, EvolutionServiceFlags } from './../definitions';\n\n/**\n * @internal\n * Private state container for the Evolution session.\n *\n * Intentionally NOT exported from the barrel: it must never be injected by\n * application code. Its state and pure mutations are re-published through\n * {@link EvolutionService} (and partly {@link LoginService}). The feature\n * services inject it ONLY to read {@link serviceUri}.\n *\n * Owns the back-end URI, feature flags, persisted login info and the session\n * signals. No HTTP, no auth orchestration.\n */\n@Service()\nexport class CoreService {\n\n private readonly broadcastService = inject(BroadcastService);\n\n private _serviceUri: string | undefined;\n /**\n * Gets the base URI of the Evolution back-end service.\n * @returns The configured service URI, or undefined before initialize().\n */\n get serviceUri(): string | undefined {\n return this._serviceUri;\n }\n /**\n * Sets the base URI of the Evolution back-end service.\n * @param uri - The base URL.\n * @returns void\n */\n setServiceUri(uri: string): void {\n this._serviceUri = uri;\n }\n\n private _flags: EvolutionServiceFlags = EvolutionServiceFlags.None;\n /**\n * Gets the active feature flags.\n * @returns The active {@link EvolutionServiceFlags} bitmask.\n */\n get flags(): EvolutionServiceFlags {\n return this._flags;\n }\n /**\n * Sets the active feature flags.\n * @param flags - The flags bitmask to apply.\n * @returns void\n */\n setFlags(flags: EvolutionServiceFlags): void {\n this._flags = flags;\n }\n\n private _loginInfo?: EvolutionLoginInfo;\n /**\n * Gets the current login info, hydrating it from `localStorage` on first\n * access when no in-memory value is available.\n * @returns The current {@link EvolutionLoginInfo}, or undefined.\n */\n get loginInfo(): EvolutionLoginInfo | undefined {\n if (!this._loginInfo) {\n const raw = localStorage.getItem('evolution_context');\n if (raw) {\n try {\n this._loginInfo = JSON.parse(raw) as EvolutionLoginInfo;\n } catch { /* invalid JSON — ignore and leave undefined */ }\n }\n }\n return this._loginInfo;\n }\n\n private readonly _loggedIn = signal<boolean>(false);\n /** `true` when the user has an active (non-temporary) session. */\n public readonly loggedIn: Signal<boolean> = this._loggedIn.asReadonly();\n /**\n * Sets the logged-in state.\n * @param value - The new logged-in value.\n * @returns void\n */\n setLoggedIn(value: boolean): void {\n this._loggedIn.set(value);\n }\n\n /** `true` while a login request is in flight. */\n public readonly loggingIn: WritableSignal<boolean> = signal<boolean>(false);\n\n /**\n * Records the OAuth provider / remember flag on the login info, creating the\n * container if needed.\n * @param oauth - The OAuth provider type, if any.\n * @param remember - Whether the session should persist across restarts.\n * @returns void\n */\n setAuthMeta(oauth?: LoginOAuthType, remember?: boolean): void {\n if (!this._loginInfo) {\n this._loginInfo = { context: undefined };\n }\n this._loginInfo.oauth = oauth;\n this._loginInfo.remember = remember;\n }\n\n /**\n * Persists the current login info to `localStorage`.\n * @returns void\n */\n storeContext(): void {\n localStorage.setItem('evolution_context', JSON.stringify(this._loginInfo));\n }\n\n /**\n * Merges a login result into the stored login info and persists it.\n * @param result - The login result returned by the login endpoint.\n * @returns void\n */\n updateContext(result: EvolutionLoginResult): void {\n if (!this._loginInfo) {\n this._loginInfo = { context: undefined };\n }\n this._loginInfo.context = result.context;\n this.storeContext();\n }\n\n /**\n * Resets the in-memory login state and broadcasts a logout-completed event.\n * Does NOT touch storage; call {@link clear} for a full cleanup.\n * @returns void\n */\n reset(): void {\n this._loginInfo = undefined;\n this._loggedIn.set(false);\n this.broadcastService.sendMessage(EvolutionMessages.LOGOUT_COMPLETED);\n }\n\n /**\n * Removes Evolution session data from `sessionStorage` and calls {@link reset}.\n * @param clearOAuthToken - When true, also removes the stored OAuth2 access token.\n * @returns void\n */\n clear(clearOAuthToken: boolean = false): void {\n sessionStorage.removeItem('evolution_auth');\n sessionStorage.removeItem('evolution_refresh');\n sessionStorage.removeItem('evolution_oauth');\n if (clearOAuthToken) {\n sessionStorage.removeItem('evolution_oauth_token');\n }\n this.reset();\n }\n}\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { DestroyRef, Service, Signal, WritableSignal, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ApiResult, BroadcastMessageInfo, BroadcastService, SystemUtils } from '@arsedizioni/ars-utils/core';\nimport { EMPTY, of, throwError } from 'rxjs';\nimport { catchError, finalize, map } from 'rxjs/operators';\nimport { LoginOAuthType } from '@arsedizioni/ars-utils/ui.oauth';\nimport { EvolutionMessages } from '../messages';\nimport { EvolutionLoginInfo, EvolutionLoginResult, EvolutionServiceFlags } from './../definitions';\nimport { CoreService } from './core.service';\n\n/**\n * Authentication service for the Evolution module: login / logout / MFA,\n * session bootstrap, connectivity ping and the broadcast handler.\n * All session state lives in the private {@link CoreService}; this service\n * orchestrates the HTTP flows and re-publishes the parts of core that\n * consumers need.\n */\n@Service()\nexport class LoginService {\n\n private readonly httpClient = inject(HttpClient);\n private readonly broadcastService = inject(BroadcastService);\n private readonly destroyRef = inject(DestroyRef);\n private readonly core = inject(CoreService);\n\n private broadcastInitialized = false;\n\n // ── Re-published core state (CoreService stays private) ─────────────────────\n\n /**\n * Gets the base URI of the Evolution back-end service.\n * @returns The configured service URI, or undefined before initialize().\n */\n get serviceUri(): string | undefined { return this.core.serviceUri; }\n\n /**\n * Gets the active feature flags.\n * @returns The active {@link EvolutionServiceFlags} bitmask.\n */\n get flags(): EvolutionServiceFlags { return this.core.flags; }\n\n /**\n * Gets the current login info.\n * @returns The current {@link EvolutionLoginInfo}, or undefined.\n */\n get loginInfo(): EvolutionLoginInfo | undefined { return this.core.loginInfo; }\n\n /** `true` when the user has an active (non-temporary) session. */\n get loggedIn(): Signal<boolean> { return this.core.loggedIn; }\n\n /** `true` while a login request is in flight. */\n get loggingIn(): WritableSignal<boolean> { return this.core.loggingIn; }\n\n // ── Re-published core operations ────────────────────────────────────────────\n\n /**\n * Persists the current login info to `localStorage` (delegates to core).\n * @returns void\n */\n storeContext(): void { this.core.storeContext(); }\n\n /**\n * Merges a login result into the stored login info (delegates to core).\n * @param result - The login result returned by the login endpoint.\n * @returns void\n */\n updateContext(result: EvolutionLoginResult): void { this.core.updateContext(result); }\n\n /**\n * Resets the in-memory login state and broadcasts logout-completed (delegates to core).\n * @returns void\n */\n reset(): void { this.core.reset(); }\n\n /**\n * Removes Evolution session data and resets the state (delegates to core).\n * @param clearOAuthToken - When true, also removes the stored OAuth2 access token.\n * @returns void\n */\n clear(clearOAuthToken: boolean = false): void { this.core.clear(clearOAuthToken); }\n\n // ── Lifecycle ───────────────────────────────────────────────────────────────\n\n /**\n * Initialises the service with the back-end URI and optional feature flags.\n * Must be called once during application bootstrap before any other method.\n * @param serviceUri - Base URL of the Evolution service.\n * @param flags - Bitmask of `EvolutionServiceFlags` (default: `None`).\n * @returns void\n */\n initialize(\n serviceUri: string,\n flags: EvolutionServiceFlags = EvolutionServiceFlags.None\n ): void {\n // Create a unique per-tab client ID if not already set\n if (!sessionStorage.getItem('evolution_client_id')) {\n sessionStorage.setItem(\n 'evolution_client_id',\n (flags & EvolutionServiceFlags.Embedded) > 0\n ? 'embedded'\n : SystemUtils.generateUUID()\n );\n }\n\n this.core.setServiceUri(serviceUri);\n this.core.setFlags(flags);\n\n // Subscribe to broadcast messages (only once)\n if (!this.broadcastInitialized) {\n this.broadcastInitialized = true;\n this.broadcastService\n .getMessage()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((message: BroadcastMessageInfo) => {\n this.handleBroadcastMessage(message);\n });\n }\n\n // If a session is already active (e.g. after an F5 page refresh), notify consumers\n if (this.core.loggedIn()) {\n this.core.loggingIn.set(false);\n this.broadcastService.sendMessage(EvolutionMessages.LOGIN_COMPLETED);\n }\n }\n\n /**\n * Dispatches an incoming broadcast message to the appropriate handler.\n * @param message - The message received from the broadcast channel.\n * @returns void\n */\n private handleBroadcastMessage(message: BroadcastMessageInfo): void {\n if (message.id === EvolutionMessages.LOGIN_CHANGED) {\n const data = message.data as Record<string, unknown> | undefined;\n this.login(\n undefined,\n undefined,\n true,\n data?.['oauth'] as LoginOAuthType | undefined,\n data?.['oauthAccessToken'] as string | undefined\n ).subscribe({\n next: r => {\n if (!r.success) {\n if ((this.core.flags & EvolutionServiceFlags.DisplayConnectionStateMessages) > 0) {\n this.broadcastService.sendMessage(EvolutionMessages.ERROR, {message: \"Le credenziali di accesso sono cambiate o non sono più valide. Esegui un nuovo accesso.\"});\n }\n this.broadcastService.sendMessage(EvolutionMessages.LOGIN_FAILED);\n } else {\n if ((this.core.flags & EvolutionServiceFlags.DisplayConnectionStateMessages) > 0) {\n this.broadcastService.sendMessage(\n EvolutionMessages.SUCCESS_TOAST,\n { message: 'Connesso a Evolution', icon: 'power', duration: 1500 });\n }\n }\n },\n error: () => { console.error('Evolution non disponibile.'); }\n });\n } else if (message.id === EvolutionMessages.LOGOUT) {\n if (this.core.loggedIn()) {\n this.logout().subscribe(r => {\n if (!r.success) {\n if (r.message) {\n this.broadcastService.sendMessage(\n EvolutionMessages.ERROR,\n {message: \"<p>\" + r.message + \"</p><br><br><hr><p class='small'><i>Per eliminare la configurazione di Evolution accedere a:<br><b>menu > personalizza > collegamenti</b></i></p>\"}\n );\n }\n } else {\n if ((this.core.flags & EvolutionServiceFlags.DisplayConnectionStateMessages) > 0) {\n this.broadcastService.sendMessage(\n EvolutionMessages.SUCCESS_TOAST,\n { message: 'Disconnesso da Evolution', icon: 'power_off', duration: 1500 });\n }\n }\n });\n } else {\n this.core.clear();\n }\n }\n }\n\n /**\n * Sends a one-shot ping to the back end to verify connectivity.\n * @returns void\n */\n ping(): void {\n this.httpClient\n .get<ApiResult<number>>(\n this.core.serviceUri + '/ping?nocache=' + SystemUtils.generateUUID()\n )\n .pipe(catchError(() => EMPTY))\n .subscribe();\n }\n\n /**\n * Performs an automatic login using the credentials already stored in the session.\n * @param onSuccess - Optional callback invoked after a successful login.\n * @returns `true` (always) — the result is handled via the subscription callbacks.\n */\n autoLogin(onSuccess?: () => void): boolean {\n this.login(undefined, undefined, true)\n .subscribe({\n next: r => {\n if (!r.success) {\n this.broadcastService.sendMessage(EvolutionMessages.ERROR, {message: r.message});\n } else {\n if (!r.value?.requiresMfa) {\n this.broadcastService.sendMessage(\n EvolutionMessages.SUCCESS_TOAST,\n { message: 'Connesso ad Evolution', icon: 'power', duration: 1500 });\n }\n onSuccess?.();\n }\n },\n error: () => { this.broadcastService.sendMessage(EvolutionMessages.ERROR, {message: \"Evolution non disponibile.\"}); }\n });\n return true;\n }\n\n /**\n * Performs an automatic logout, notifying the user when the session ends.\n * @param onSuccess - Optional callback invoked after the logout completes.\n * @returns void\n */\n autoLogout(onSuccess?: () => void): void {\n this.logout().subscribe({\n next: r => {\n if (!r.success) {\n if (r.message) {\n this.broadcastService.sendMessage(EvolutionMessages.ERROR, {message: r.message});\n }\n this.broadcastService.sendMessage(EvolutionMessages.LOGIN_CHANGED);\n } else {\n this.broadcastService.sendMessage(\n EvolutionMessages.SUCCESS_TOAST,\n { message: 'Disconnesso da Evolution', icon: 'power_off', duration: 1500 });\n }\n },\n error: () => { },\n complete: () => {\n onSuccess?.();\n }\n });\n }\n\n /**\n * Authenticates the user against the Evolution back end (credential or OAuth2).\n * @param email - User e-mail (credential login only; omit for OAuth2).\n * @param password - User password (credential login only; omit for OAuth2).\n * @param remember - Whether to persist the session across browser restarts.\n * @param oauth - OAuth2 provider type, when using federated login.\n * @param oauthAccessToken - Bearer token from the OAuth2 provider.\n * @returns An observable that emits the `ApiResult<EvolutionLoginResult>`.\n */\n login(\n email?: string,\n password?: string,\n remember?: boolean,\n oauth?: LoginOAuthType,\n oauthAccessToken: string | undefined = sessionStorage.getItem('evolution_oauth_token') ?? undefined\n ) {\n return this.httpClient\n .post<ApiResult<EvolutionLoginResult>>(\n this.core.serviceUri + '/login2',\n {\n user: oauth ? null : email,\n password: oauth ? null : password,\n remember,\n oauth\n },\n {\n headers: oauth && oauthAccessToken\n ? new HttpHeaders().set('Authorization', oauthAccessToken)\n : new HttpHeaders()\n }\n )\n .pipe(\n catchError(err => throwError(() => err)),\n map((r: ApiResult<EvolutionLoginResult>) => {\n if (r.success) {\n this.core.setAuthMeta(oauth, remember);\n if (!oauth && r.value?.requiresMfa) {\n this.broadcastService.sendMessage(EvolutionMessages.LOGIN_PENDING, {});\n } else {\n this.completeLogin(r.value);\n }\n }\n return r;\n })\n );\n }\n\n /**\n * Finalises a successful login by updating the stored context and notifying consumers.\n * @param result - The login result payload from the server.\n * @returns void\n */\n private completeLogin(result: EvolutionLoginResult): void {\n this.core.updateContext(result);\n this.core.setLoggedIn(!result.context?.isTemporary);\n this.core.loggingIn.set(false);\n this.broadcastService.sendMessage(EvolutionMessages.LOGIN_COMPLETED);\n }\n\n /**\n * Confirms a multi-factor authentication challenge and completes the login.\n * @param code - The one-time MFA code entered by the user.\n * @returns An observable that emits the `ApiResult<EvolutionLoginResult>`.\n */\n confirmIdentity(code: string) {\n return this.httpClient\n .post<ApiResult<EvolutionLoginResult>>(\n this.core.serviceUri + '/login/confirm/' + code,\n {}\n )\n .pipe(\n catchError(err => throwError(() => err)),\n map((r: ApiResult<EvolutionLoginResult>) => {\n if (r.success) {\n this.completeLogin(r.value);\n }\n return r;\n })\n );\n }\n\n /**\n * Logs the current user out of the back end and clears local session data.\n * @param forget - When `true`, instructs the server to discard all stored credentials.\n * @returns An observable that emits `ApiResult<unknown>`.\n */\n logout(forget: boolean = false) {\n return this.httpClient\n .post<ApiResult<unknown>>(this.core.serviceUri + '/logout/?forget=' + forget, {})\n .pipe(\n finalize(() => {\n this.core.clear();\n localStorage.removeItem('evolution_context');\n }),\n catchError(() => of<ApiResult<unknown>>({ success: false, value: undefined, message: undefined }))\n );\n }\n\n /**\n * Switches the active session to a different user account while retaining credentials.\n * @param id - The user ID to switch to.\n * @returns An observable that emits the `ApiResult<EvolutionLoginResult>`.\n */\n loginSwitch(id: number) {\n return this.httpClient\n .post<ApiResult<EvolutionLoginResult>>(\n this.core.serviceUri + '/login/switch',\n { userId: id }\n )\n .pipe(\n catchError(err => throwError(() => err)),\n map((r: ApiResult<EvolutionLoginResult>) => {\n if (r.success) {\n this.completeLogin(r.value);\n }\n return r;\n })\n );\n }\n}\n","import { Service, inject } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { ApiResult, FolderTree } from '@arsedizioni/ars-utils/core';\nimport {\n EvolutionChangeContextModel, EvolutionChangeContextResultModel,\n EvolutionComplianceActivitiesAddParams, EvolutionComplianceActivity,\n EvolutionComplianceLaw, EvolutionComplianceLawsAddParams,\n EvolutionComplianceRegister, EvolutionComplianceRegisterProfile,\n EvolutionQueryRegisterProfilesModel\n} from './../definitions';\nimport { CoreService } from './core.service';\n\n/**\n * Compliance endpoints: taxonomy & groups, context, registers, laws and\n * activities (the `Context` / `Registers` / `Laws` / `Activities` sections,\n * plus the general taxonomy/groups lookups). Pure HTTP; injects the private\n * {@link CoreService} only to read the back-end URI.\n */\n@Service()\nexport class ComplianceService {\n private readonly httpClient = inject(HttpClient);\n private readonly core = inject(CoreService);\n\n // ── Taxonomy & groups ───────────────────────────────────────────────────────\n\n /**\n * Retrieves the taxonomy tree from the back end.\n * @returns An observable that emits `ApiResult<FolderTree>`.\n */\n getTaxonomy() {\n return this.httpClient.get<ApiResult<FolderTree>>(\n this.core.serviceUri + '/taxonomy'\n );\n }\n\n /**\n * Retrieves the compliance groups for a register.\n * @param group - Group index to retrieve (default: `1`).\n * @param register - Optional register ID to scope the query.\n * @returns An observable that emits `ApiResult<string[]>`.\n */\n getGroups(group: number = 1, register?: number) {\n const path = register\n ? `/compliance/groups/?group=${group}&register=${register}`\n : `/compliance/groups/?group=${group}`;\n return this.httpClient.get<ApiResult<string[]>>(this.core.serviceUri + path);\n }\n\n // ── Context ──────────────────────────────────────────────────────────────────\n\n /**\n * Sends a context-change request to the back end.\n * @param params - The context model describing the desired switch.\n * @returns An observable that emits `ApiResult<EvolutionChangeContextResultModel>`.\n */\n changeContext(params: EvolutionChangeContextModel) {\n return this.httpClient.post<ApiResult<EvolutionChangeContextResultModel>>(\n this.core.serviceUri + '/compliance/context',\n params\n );\n }\n\n // ── Registers ────────────────────────────────────────────────────────────────\n\n /**\n * Retrieves a single compliance register by ID.\n * @param id - The register ID.\n * @returns An observable that emits `ApiResult<EvolutionComplianceRegister>`.\n */\n getRegister(id: number) {\n return this.httpClient.get<ApiResult<EvolutionComplianceRegister>>(\n this.core.serviceUri + '/compliance/registers/' + id\n );\n }\n\n /**\n * Collects register profiles matching the given query parameters.\n * @param params - Query parameters defining the filter criteria.\n * @returns An observable that emits `ApiResult<EvolutionComplianceRegisterProfile[]>`.\n */\n collectRegisterProfiles(params: EvolutionQueryRegisterProfilesModel) {\n return this.httpClient.post<ApiResult<EvolutionComplianceRegisterProfile[]>>(\n this.core.serviceUri + '/compliance/registers/profiles/collect',\n params\n );\n }\n\n // ── Laws ─────────────────────────────────────────────────────────────────────\n\n /**\n * Adds one or more compliance laws.\n * @param params - The laws to add.\n * @returns An observable that emits `ApiResult<EvolutionComplianceLaw[]>`.\n */\n addLaws(params: EvolutionComplianceLawsAddParams) {\n return this.httpClient.post<ApiResult<EvolutionComplianceLaw[]>>(\n this.core.serviceUri + '/compliance/laws/add',\n params\n );\n }\n\n /**\n * Exports compliance laws in the format expected by the server.\n * @param params - Export parameters (model shape is server-defined).\n * @returns An observable that emits the binary blob response.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n exportLaws(params: any) {\n return this.httpClient.post(\n this.core.serviceUri + '/compliance/laws/export',\n params,\n { responseType: 'blob' }\n );\n }\n\n // ── Activities ─────────────────────────────────────────────────────────────────\n\n /**\n * Adds one or more compliance activities.\n * @param params - The activities to add.\n * @returns An observable that emits `ApiResult<EvolutionComplianceActivity>`.\n */\n addActivities(params: EvolutionComplianceActivitiesAddParams) {\n return this.httpClient.post<ApiResult<EvolutionComplianceActivity>>(\n this.core.serviceUri + '/compliance/activities/add',\n params\n );\n }\n}\n","import { Service, inject } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { ApiResult } from '@arsedizioni/ars-utils/core';\nimport { EvolutionUserLink } from './../definitions';\nimport { CoreService } from './core.service';\n\n/** Account endpoints (the `Links` section): user links management. */\n@Service()\nexport class AccountService {\n private readonly httpClient = inject(HttpClient);\n private readonly core = inject(CoreService);\n\n /**\n * Persists a user link on the server.\n * @param item - The user link to save.\n * @returns An observable that emits `ApiResult<boolean>`.\n */\n saveLink(item: EvolutionUserLink) {\n return this.httpClient.post<ApiResult<boolean>>(\n this.core.serviceUri + '/account/links/save',\n item\n );\n }\n\n /**\n * Deletes a user link from the server.\n * @param item - The user link to delete.\n * @returns An observable that emits `ApiResult<boolean>`.\n */\n deleteLink(item: EvolutionUserLink) {\n return this.httpClient.post<ApiResult<boolean>>(\n this.core.serviceUri + '/account/links/delete',\n item\n );\n }\n}\n","import { Service, Signal, WritableSignal, inject } from '@angular/core';\nimport { EvolutionLoginInfo, EvolutionServiceFlags } from './../definitions';\nimport { AccountService } from './account.service';\nimport { ComplianceService } from './compliance.service';\nimport { CoreService } from './core.service';\nimport { LoginService } from './login.service';\n\n/**\n * Public entry point for the Evolution compliance module.\n *\n * The private {@link CoreService} is never exposed; its state and operations\n * are re-published here. All endpoint operations are reached through the\n * namespaced sub-services:\n * - `evolution.session` — authentication / session lifecycle\n * - `evolution.compliance` — taxonomy, context, registers, laws, activities\n * - `evolution.account` — user links\n *\n * The facade itself exposes ONLY the re-published core state/operations plus\n * `initialize` and `ping` — it intentionally does NOT flatten the sub-service\n * methods (use the namespaces for those).\n */\n@Service()\nexport class EvolutionService {\n\n /** Private: never exposed to consumers. */\n private readonly core = inject(CoreService);\n\n /** Authentication / session lifecycle sub-service. */\n readonly session = inject(LoginService);\n /** Compliance endpoints: taxonomy, groups, context, registers, laws, activities. */\n readonly compliance = inject(ComplianceService);\n /** Account endpoints: user links management. */\n readonly account = inject(AccountService);\n\n // ── Re-published core state ─────────────────────────────────────────────────\n\n /**\n * Gets the base URI of the Evolution back-end service.\n * @returns The configured service URI, or undefined before initialize().\n */\n get serviceUri(): string | undefined { return this.core.serviceUri; }\n\n /**\n * Gets the active feature flags.\n * @returns The active {@link EvolutionServiceFlags} bitmask.\n */\n get flags(): EvolutionServiceFlags { return this.core.flags; }\n\n /**\n * Gets the current login info.\n * @returns The current {@link EvolutionLoginInfo}, or undefined.\n */\n get loginInfo(): EvolutionLoginInfo | undefined { return this.core.loginInfo; }\n\n /** `true` when the user has an active (non-temporary) session. */\n get loggedIn(): Signal<boolean> { return this.core.loggedIn; }\n\n /** `true` while a login request is in flight. */\n get loggingIn(): WritableSignal<boolean> { return this.core.loggingIn; }\n\n \n // ── Lifecycle (the only flattened sub-service methods) ──────────────────────\n\n /**\n * Initialises the service with the back-end URI and optional feature flags.\n * @param serviceUri - Base URL of the Evolution service.\n * @param flags - Bitmask of `EvolutionServiceFlags` (default: `None`).\n * @returns void\n */\n initialize(serviceUri: string, flags: EvolutionServiceFlags = EvolutionServiceFlags.None): void {\n this.session.initialize(serviceUri, flags);\n }\n\n /**\n * Sends a one-shot ping to the back end to verify connectivity.\n * @returns void\n */\n ping(): void { this.session.ping(); }\n}\n","// Public barrel for the Evolution services.\n//\n// CoreService is intentionally NOT exported: it is private/internal and must\n// never be injected directly. Consumers use EvolutionService (the full facade,\n// with both namespaced sub-services and the backward-compatible flat methods)\n// or, in size-sensitive code, the specific sub-service they need.\nexport * from './login.service';\nexport * from './compliance.service';\nexport * from './account.service';\nexport * from './evolution.service';\n","/*\r\n * Public API Surface of ars-utils\r\n */\r\nexport * from './common/messages';\r\nexport * from './common/definitions';\r\nexport * from './common/interceptors/auth.interceptor';\r\nexport * from './common/services/index';\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["catchError"],"mappings":"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"}
1
+ {"version":3,"file":"arsedizioni-ars-utils-evolution.common.mjs","sources":["../../../projects/ars-utils/evolution.common/common/messages.ts","../../../projects/ars-utils/evolution.common/common/definitions.ts","../../../projects/ars-utils/evolution.common/common/interceptors/auth.interceptor.config.ts","../../../projects/ars-utils/evolution.common/common/interceptors/auth.interceptor.ts","../../../projects/ars-utils/evolution.common/common/services/core.service.ts","../../../projects/ars-utils/evolution.common/common/services/login.service.ts","../../../projects/ars-utils/evolution.common/common/services/compliance.service.ts","../../../projects/ars-utils/evolution.common/common/services/account.service.ts","../../../projects/ars-utils/evolution.common/common/services/evolution.service.ts","../../../projects/ars-utils/evolution.common/common/services/index.ts","../../../projects/ars-utils/evolution.common/public_api.ts","../../../projects/ars-utils/evolution.common/arsedizioni-ars-utils-evolution.common.ts"],"sourcesContent":["export const EvolutionMessages = {\r\n // Error\r\n ERROR: '§evo-error',\r\n SUCCESS: '§evo-success',\r\n SUCCESS_TOAST: '§evo-success-toast',\r\n\r\n // Login\r\n LOGIN_CHANGED: '§evo-login-changed',\r\n LOGIN_COMPLETED: '§evo-login-completed',\r\n LOGOUT_COMPLETED: '§evo-logout-completed',\r\n LOGIN_PENDING: '§evo-login-pending',\r\n LOGIN_FAILED: '§evo-login-failed',\r\n LOGOUT: '§evo-logout'\r\n};\r\n","import { LoginResult, QueryModel, SendToModel } from '@arsedizioni/ars-utils/core';\r\nimport { LoginOAuthType } from '@arsedizioni/ars-utils/ui.oauth';\r\n\r\n\r\nexport interface EvolutionLoginResult extends LoginResult<EvolutionUserInfo> {\r\n}\r\n\r\nexport interface EvolutionLoginInfo {\r\n context: EvolutionUserInfo;\r\n oauth?: LoginOAuthType ;\r\n remember?: boolean;\r\n}\r\n\r\nexport interface EvolutionUserLink {\r\n id?: number ;\r\n userId: number;\r\n userName?: string ;\r\n key: string;\r\n}\r\n\r\nexport interface EvolutionUserModuleInfo {\r\n name: string;\r\n module: number;\r\n level: number;\r\n hidden: boolean;\r\n}\r\n\r\n\r\nexport interface EvolutionLicenceModuleInfo {\r\n module: ERPModule;\r\n name: string;\r\n availableUsers: number;\r\n usedUsers: number;\r\n availableOption1?: number ;\r\n usedOption1?: number ;\r\n availableOption2?: number ;\r\n usedOption2?: number ;\r\n availableOption3?: number ;\r\n usedOption3?: number ;\r\n}\r\n\r\nexport interface EvolutionUserInfo {\r\n licenceId: number;\r\n userId: number;\r\n companyName: string;\r\n firstName: string;\r\n fullName: string;\r\n flags?: number ;\r\n email: string;\r\n sessionId?: string ;\r\n isTemporary?: boolean ;\r\n role: number;\r\n scope: number;\r\n roleName: string;\r\n roleLevel: number;\r\n allowedModules: EvolutionUserModuleInfo[];\r\n dashboard?: number ;\r\n dashboard2?: string ;\r\n code?: string ;\r\n subjectId?: number ;\r\n subjectName?: string ;\r\n siteId?: number ;\r\n siteName?: string ;\r\n siteCostCenter?: string ;\r\n departmentId?: number ;\r\n departmentName?: string ;\r\n expiryDate?: string ;\r\n isExpired?: boolean ;\r\n isAdministrator?: boolean ;\r\n isPowerUser?: boolean ;\r\n isObserver?: boolean ;\r\n isUser?: boolean ;\r\n isSupportUser?: boolean ;\r\n isGod?: boolean ;\r\n administrators: string;\r\n availableModules: EvolutionLicenceModuleInfo[];\r\n availableEmployees: number;\r\n usedEmployees: number;\r\n availableStorage: number;\r\n usedStorage: number;\r\n}\r\n\r\n\r\n\r\nexport enum EvolutionServiceFlags {\r\n None = 0,\r\n NotifySystemErrors = 1,\r\n DisplayConnectionStateMessages = 1 << 1,\r\n Embedded = 1 << 2\r\n\r\n}\r\n\r\nexport enum ERPModule {\r\n Formazione = 1,\r\n DPI = 1 << 1,\r\n SorveglianzaSanitaria = 1 << 2,\r\n RegistroEScadenzario = 1 << 3,\r\n AttrezzatureEImpianti = 1 << 4,\r\n Monitoraggio = 1 << 5,\r\n Bollettino = 1 << 6,\r\n Documenti = 1 << 7\r\n\r\n}\r\n\r\nexport interface EvolutionPlaceable {\r\n licenceId?: number ;\r\n companyName?: string ;\r\n subjectId?: number ;\r\n subjectName?: string ;\r\n siteId?: number ;\r\n siteName?: string ;\r\n departmentId?: number ;\r\n departmentName?: string ;\r\n placeId?: number ;\r\n}\r\n\r\nexport enum ERPExportType\r\n{\r\n Basic = 1,\r\n Detailed = 8,\r\n Complete = 9,\r\n Labels = 10,\r\n EmployeesCoursesMatrix = 21,\r\n EmployeesCoursesHoursMatrix = 22,\r\n EmployeesPPEsMatrix = 23,\r\n EmployeesHealthChecksMatrix = 24,\r\n TasksCoursesMatrix = 31,\r\n Training = 101,\r\n TrainingExpired = 102,\r\n TrainingExpiring = 103,\r\n TrainingAbsents = 104,\r\n TrainingClosed = 105,\r\n TrainingCurrentYear = 108,\r\n TrainingNextYear = 109,\r\n TrainingAnnualPlannng = 110,\r\n EquipmentsActivitiesCompleted = 201,\r\n EquipmentsChecksMatrix = 202,\r\n RSNormsUsage = 301,\r\n RSNormsSitesMatrix = 302,\r\n RSNormsSummary = 303,\r\n MonitoringLaws = 401,\r\n MonitoringActivities = 402,\r\n MonitoringSummary = 403,\r\n PPEs = 501,\r\n ComplianceStatistics = 601,\r\n HealthChecks = 701,\r\n}\r\n\r\nexport enum ERPExportFormat\r\n{\r\n Csv = 1,\r\n Word = 2,\r\n Pdf = 3\r\n}\r\n\r\nexport enum ERPExportSource\r\n{\r\n All = 1,\r\n Query = 2,\r\n Selection = 3\r\n}\r\n\r\nexport enum ERPExportPart\r\n{\r\n IncludeRisks = 101,\r\n IncludeTasks = 102,\r\n IncludeTaskHistory = 103,\r\n IncludeTrainingRequired = 111,\r\n IncludeTrainingDone = 112,\r\n SelectedEmployeeCourses = 121,\r\n IncludeDisabledEmployees = 131,\r\n IncludeDismissedEmployees = 132,\r\n IncludeDocumentUpdates = 201,\r\n ExcludeNonApplicableOrAcknowledged = 202,\r\n ExcluteAbblicabilityTable = 203,\r\n IncludeActivities = 204,\r\n GroupLaws = 205,\r\n IncludeApplicableOrAcknowledgedOnly = 4301,\r\n IncludePPEs = 501,\r\n IncludeHealthChecks = 601\r\n}\r\n\r\nexport interface EvolutionExportModel<T> extends SendToModel {\r\n searchParams: T;\r\n selection?: number[] ;\r\n type: ERPExportType;\r\n sort?: number ;\r\n source: ERPExportSource;\r\n format: ERPExportFormat;\r\n parts?: ERPExportPart[] ;\r\n automateReport?: boolean ;\r\n automatedReportId?: number ;\r\n automatedReportSheetName?: string;\r\n formatExtension?: string ; \r\n}\r\n\r\nexport enum ERPComplianceLawsSelectionType {\r\n Analysis = 1,\r\n Activity = 2,\r\n}\r\n\r\nexport enum ERPComplianceProfileRole {\r\n None = 0,\r\n Analyst = 1,\r\n Planner = 1 << 1,\r\n Validator = 1 << 2,\r\n Executor = 1 << 3,\r\n Observer = 1 << 4,\r\n}\r\n\r\nexport enum ERPComplianceProfileFlags {\r\n\r\n OverrideNotificationRegisterSettings = 1 << 4,\r\n}\r\n\r\nexport enum ERPComplianceScope {\r\n None = 0,\r\n Environment = 1,\r\n Safety = 1 << 1,\r\n FoodSafety = 1 << 2,\r\n Energy = 1 << 3,\r\n Health = 1 << 4,\r\n Maintenance = 1 << 5,\r\n Quality = 1 << 6,\r\n Organization = 1 << 7,\r\n Logistics = 1 << 8,\r\n Facility = 1 << 9,\r\n Security = 1 << 10,\r\n GenderEquality = 1 << 11,\r\n AntiCorruption = 1 << 12,\r\n Sustainability = 1 << 13,\r\n InformationSecurity = 1 << 14\r\n}\r\n\r\nexport enum ERPComplianceNotificationLimit {\r\n None = 0,\r\n PlannerOnly = 1,\r\n ExecutorOnly = 2,\r\n Both = 3,\r\n}\r\n\r\nexport enum ERPComplianceRegisterNotificationType {\r\n None = 0,\r\n NewAnalysis = 1,\r\n AnalysisCompleted = 1 << 1,\r\n AnalysisNoticePeriodStarted = 1 << 2,\r\n AnalysisPeriodExpired = 1 << 3,\r\n AnalysisLawChanged = 1 << 14,\r\n NewPlanning = 1 << 13,\r\n PlanningCompleted = 1 << 4,\r\n PlanningNoticePeriodStarted = 1 << 5,\r\n PlanningPeriodExpired = 1 << 6,\r\n NewValidation = 1 << 15,\r\n ValidationCompleted = 1 << 7,\r\n ValidationNoticePeriodStarted = 1 << 8,\r\n ValidationPeriodExpired = 1 << 9,\r\n NewDeadline = 1 << 16,\r\n DeadlineNoticePeriodStarted = 1 << 10,\r\n DeadlineExpired = 1 << 11,\r\n ActivityCompleted = 1 << 12,\r\n //NewNoncompliance = 1 << 17,\r\n //NonComplianceNoticePeriodStarted = 1 << 18,\r\n //NonCompliancePeriodExpired = 1 << 19,\r\n //NonComplianceCompleted = 1 << 20,\r\n LawChanged = 1 << 21,\r\n}\r\n\r\nexport enum ERPComplianceRegisterSiteImportOptions {\r\n CopyAttachments = 1,\r\n KeepOriginalDates = 1 << 1,\r\n DuplicateLaws = 1 << 2,\r\n DiscardNotApplicables = 1 << 3\r\n}\r\n\r\nexport const EvolutionComplianceProfileRoles = [\r\n { name: 'Analista', value: ERPComplianceProfileRole.Analyst },\r\n { name: 'Gestore', value: ERPComplianceProfileRole.Planner },\r\n //{ name: 'Validatore', value: ERPComplianceProfileRole.Validator },\r\n { name: 'Esecutore', value: ERPComplianceProfileRole.Executor },\r\n { name: 'Osservatore', value: ERPComplianceProfileRole.Observer },\r\n];\r\n\r\nexport const EvolutionComplianceProfileFlags = [\r\n { name: 'Deroghe e limitazioni', divider: true },\r\n {\r\n name:\r\n 'Questo profilo riceve regolarmente le notifiche indipendentemente dalla configurazione generale del registro',\r\n value: ERPComplianceProfileFlags.OverrideNotificationRegisterSettings,\r\n },\r\n];\r\n\r\nexport const EvolutionComplianceScopes = [\r\n { name: 'Ambiente', value: ERPComplianceScope.Environment },\r\n { name: 'Salute e sicurezza', value: ERPComplianceScope.Safety },\r\n {\r\n name: 'Sicurezza alimentare',\r\n value: ERPComplianceScope.FoodSafety,\r\n },\r\n { name: 'Energia', value: ERPComplianceScope.Energy },\r\n { name: 'Servizi generali', value: ERPComplianceScope.Facility },\r\n { name: 'Manutenzione', value: ERPComplianceScope.Maintenance },\r\n { name: 'Qualità', value: ERPComplianceScope.Quality },\r\n { name: 'Organizzazione', value: ERPComplianceScope.Organization },\r\n { name: 'Logistica', value: ERPComplianceScope.Logistics },\r\n { name: 'Security', value: ERPComplianceScope.Security },\r\n { name: \"Anticorruzione\", value: ERPComplianceScope.AntiCorruption },\r\n { name: \"Sostenibilità\", value: ERPComplianceScope.Sustainability },\r\n { name: \"Parità di genere\", value: ERPComplianceScope.GenderEquality },\r\n { name: \"Sicurezza dell'informazione\", value: ERPComplianceScope.InformationSecurity },\r\n\r\n];\r\n\r\nexport const EvolutionComplianceNotificationLimits = [\r\n { name: 'Nessuna limitazione', value: ERPComplianceNotificationLimit.None },\r\n {\r\n name: 'Solo gestore che ha pianificato',\r\n value: ERPComplianceNotificationLimit.PlannerOnly,\r\n },\r\n {\r\n name: \"Solo all'incaricato designato\",\r\n value: ERPComplianceNotificationLimit.ExecutorOnly,\r\n },\r\n {\r\n name: 'Solo a gestore e incaricato designato',\r\n value: ERPComplianceNotificationLimit.Both,\r\n },\r\n];\r\n\r\nexport const EvolutionComplianceNotifications = [\r\n { name: 'Verifica applicabilità e analisi', divider: true },\r\n {\r\n name: 'Richiesta analisi',\r\n value: ERPComplianceRegisterNotificationType.NewAnalysis,\r\n },\r\n {\r\n name: \"Preavviso: sta per scadere il termine fissato per l'analisi\",\r\n value: ERPComplianceRegisterNotificationType.AnalysisNoticePeriodStarted,\r\n },\r\n {\r\n name: \"Allarme: è scaduto il termine fissato per l'analisi\",\r\n value: ERPComplianceRegisterNotificationType.AnalysisPeriodExpired,\r\n },\r\n {\r\n name: 'Analisi completata',\r\n value: ERPComplianceRegisterNotificationType.AnalysisCompleted,\r\n },\r\n {\r\n name: 'Avviso norma modificata dal legislatore',\r\n value: ERPComplianceRegisterNotificationType.AnalysisLawChanged,\r\n },\r\n { name: 'Pianificazioni', divider: true },\r\n {\r\n name: 'Richiesta gestione',\r\n value: ERPComplianceRegisterNotificationType.NewPlanning,\r\n },\r\n {\r\n name: 'Preavviso: sta per scadere il termine fissato per la gestione',\r\n value: ERPComplianceRegisterNotificationType.PlanningNoticePeriodStarted,\r\n },\r\n {\r\n name: 'Allarme: è scaduto il termine fissato per la gestione',\r\n value: ERPComplianceRegisterNotificationType.PlanningPeriodExpired,\r\n },\r\n {\r\n name: 'Gestione completata',\r\n value: ERPComplianceRegisterNotificationType.PlanningCompleted,\r\n },\r\n {\r\n name: 'Attività completata',\r\n value: ERPComplianceRegisterNotificationType.ActivityCompleted,\r\n },\r\n /*{ name: 'Gestione non conformità', divider: true },\r\n {\r\n name: 'Apertura non comformità',\r\n value: ERPComplianceRegisterNotificationType.NewNoncompliance,\r\n },\r\n {\r\n name:\r\n \"Preavviso: sta per scadere il termine fissato per l'azione correttiva\",\r\n value:\r\n ERPComplianceRegisterNotificationType.NonComplianceNoticePeriodStarted,\r\n },\r\n {\r\n name: \"Allarme: è scaduto il termine fissato per l'azione correttiva\",\r\n value: ERPComplianceRegisterNotificationType.NonCompliancePeriodExpired,\r\n },\r\n {\r\n name: 'Chiusura non conformità',\r\n value: ERPComplianceRegisterNotificationType.NonComplianceCompleted,\r\n },*/\r\n /*{ name: 'Approvazioni', divider: true },\r\n { name: 'Richiesta approvazione', value: 1 << 14 },\r\n {\r\n name: \"Preavviso: sta per scadere il termine fissato per l'approvazione\",\r\n value: ERPComplianceRegisterNotificationType.ValidationNoticePeriodStarted,\r\n },\r\n {\r\n name: \"Allarme: è scaduto il termine fissato per l'approvazione\",\r\n value: ERPComplianceRegisterNotificationType.ValidationPeriodExpired,\r\n },\r\n {\r\n name: 'Approvazione concessa o negata',\r\n value: ERPComplianceRegisterNotificationType.ValidationCompleted,\r\n },*/\r\n { name: 'Scadenze', divider: true },\r\n {\r\n name: 'Preavviso: 1° promemoria sulla data di scadenza',\r\n value: ERPComplianceRegisterNotificationType.NewValidation,\r\n },\r\n {\r\n name: 'Avviso: 2° promemoria sulla data di scadenza',\r\n value: ERPComplianceRegisterNotificationType.DeadlineNoticePeriodStarted,\r\n },\r\n {\r\n name: 'Allarme: è scaduto il termine',\r\n value: ERPComplianceRegisterNotificationType.DeadlineExpired,\r\n },\r\n { name: 'Norme collegate', divider: true },\r\n {\r\n name: 'Modifica o abrogazione',\r\n value: ERPComplianceRegisterNotificationType.LawChanged,\r\n },\r\n\r\n];\r\n\r\nexport enum ERPComplianceLawState {\r\n ApplicableOrAknowledged = 1,\r\n NotApplicable = 2,\r\n NotAnalyzed = 3,\r\n ExpiredAnalysis = 4,\r\n UpdatedLaws = 5,\r\n Analyzed = 6,\r\n Abrogated = 7,\r\n Applicable = 8,\r\n Aknowledged = 9\r\n}\r\n\r\nexport enum ERPComplianceLawOrigin {\r\n National = 1,\r\n EU = 2,\r\n Regional = 3,\r\n Local = 4,\r\n Technical = 5,\r\n Voulontary = 6,\r\n Internal = 7,\r\n Other = 8,\r\n}\r\n\r\nexport const EvolutionComplianceLawStates = [\r\n { name: 'Applicabile', value: ERPComplianceLawState.Applicable },\r\n { name: 'Da conoscere', value: ERPComplianceLawState.Aknowledged },\r\n {\r\n name: 'Applicabile / da conoscere',\r\n value: ERPComplianceLawState.ApplicableOrAknowledged,\r\n },\r\n { name: 'Non applicabile', value: ERPComplianceLawState.NotApplicable },\r\n { name: 'Abrogata', value: ERPComplianceLawState.Abrogated },\r\n { name: 'Analizzata', value: ERPComplianceLawState.Analyzed },\r\n { name: 'Da definire', value: ERPComplianceLawState.NotAnalyzed },\r\n { name: 'In ritardo', value: ERPComplianceLawState.ExpiredAnalysis },\r\n {\r\n name: 'Con aggiornamenti pendenti',\r\n value: ERPComplianceLawState.UpdatedLaws,\r\n },\r\n];\r\n\r\nexport const EvolutionComplianceLawOrigins = [\r\n { name: 'Nazionale', value: ERPComplianceLawOrigin.National },\r\n { name: 'Comunitaria', value: ERPComplianceLawOrigin.EU },\r\n { name: 'Regionale', value: ERPComplianceLawOrigin.Regional },\r\n { name: 'Locale', value: ERPComplianceLawOrigin.Local },\r\n { name: 'Tecnica', value: ERPComplianceLawOrigin.Technical },\r\n { name: 'Interna', value: ERPComplianceLawOrigin.Internal },\r\n { name: 'Volontaria', value: ERPComplianceLawOrigin.Voulontary },\r\n { name: 'Altro', value: ERPComplianceLawOrigin.Other },\r\n];\r\n\r\nexport const EvolutionComplianceLawChangeStates = [\r\n { name: 'Aperto', value: 1 },\r\n { name: 'Chiuso', value: 2 },\r\n];\r\n\r\nexport enum ERPComplianceActivityState {\r\n NotPlanned = 1 << 7,\r\n Closed = 1 << 2,\r\n Expired = 1 << 3,\r\n Planned = 1 << 8,\r\n Cancelled = 1 << 9,\r\n UpdatedLaws = 1 << 10,\r\n AlreadyManaged = 1 << 11\r\n}\r\n\r\nexport const EvolutionComplianceActivityStates = [\r\n {\r\n name: 'Da definire',\r\n value: ERPComplianceActivityState.NotPlanned,\r\n },\r\n {\r\n name: 'Pianificata',\r\n value: ERPComplianceActivityState.Planned,\r\n },\r\n {\r\n name: 'Chiusa',\r\n value: ERPComplianceActivityState.Closed,\r\n },\r\n {\r\n name: 'In ritardo',\r\n value: ERPComplianceActivityState.Expired,\r\n },\r\n {\r\n name: 'Annullata',\r\n value: ERPComplianceActivityState.Cancelled,\r\n },\r\n {\r\n name: 'Gestita separatamente',\r\n value: ERPComplianceActivityState.AlreadyManaged,\r\n },\r\n {\r\n name: 'Con aggiornamenti pendenti',\r\n value: ERPComplianceActivityState.UpdatedLaws,\r\n },\r\n];\r\n\r\nexport const EvolutionComplianceObligationTypes = [\r\n { name: 'Autorizzazione', value: 1 },\r\n { name: 'Verifiche periodiche manutentive', value: 2 },\r\n { name: 'Misure organizzative', value: 3 },\r\n { name: 'Controlli e misurazioni', value: 4 },\r\n { name: 'Entrata in vigore', value: 5 },\r\n { name: 'Documenti aziendali obbligatori', value: 6 },\r\n {\r\n name: 'Altri adempimenti formali (comunicazioni, dichiarazioni, ecc...)',\r\n value: 7,\r\n },\r\n { name: 'Altro', value: 99 },\r\n];\r\n\r\nexport const EvolutionComplianceObligationAuthorities = [\r\n { name: 'Agenzia ECHA', value: 1 },\r\n { name: 'Albo Nazionale dei Gestori Ambientali', value: 2 },\r\n { name: 'ARPA', value: 4 },\r\n { name: 'ASL', value: 5 },\r\n { name: 'Camera di Commercio', value: 8 },\r\n { name: 'Comando provinciale dei Vigili del Fuoco', value: 10 },\r\n { name: 'Comune', value: 13 },\r\n { name: 'Consorzi gestione rifiuti particolari', value: 14 },\r\n { name: 'Gestore del servizio', value: 21 },\r\n { name: 'Gestore della rete di trasmissione nazionale', value: 22 },\r\n { name: 'INAIL - IPSEMA - ISPESL', value: 23 },\r\n { name: 'ISPRA', value: 26 },\r\n { name: 'Ministero', value: 27 },\r\n { name: 'Genio civile', value: 30 },\r\n { name: 'Organo di vigilanza competente', value: 31 },\r\n { name: 'Provincia', value: 33 },\r\n { name: 'Regione', value: 35 },\r\n { name: 'Uffici tecnici di finanza', value: 36 },\r\n { name: 'Ispettorato del lavoro', value: 37 },\r\n { name: 'Comitato Regionale Tecnico VF', value: 38 },\r\n { name: 'Prefetto', value: 39 },\r\n { name: 'Organismo notificato', value: 40 },\r\n { name: 'Città Metropolitana', value: 41 },\r\n { name: 'Nessuna', value: 28 },\r\n { name: 'Altro', value: 3 }\r\n];\r\n\r\nexport enum ERPRecurrenceFrequencyType {\r\n Day = 1,\r\n Month = 2,\r\n Year = 3,\r\n}\r\nexport const EvolutionRecurrenceFrequencyTypes = [\r\n { name: 'Anni', value: ERPRecurrenceFrequencyType.Year },\r\n { name: 'Mesi', value: ERPRecurrenceFrequencyType.Month },\r\n { name: 'Giorni', value: ERPRecurrenceFrequencyType.Day },\r\n];\r\n\r\nexport enum ERPPlacePermission {\r\n None = 0,\r\n Denied = 1,\r\n Read = 2,\r\n Write = 3\r\n}\r\n\r\nexport enum ERPPlace {\r\n Subject = 1,\r\n Site = 2,\r\n Department = 3,\r\n Area = 4,\r\n Line = 5\r\n}\r\nexport interface EvolutionPermission {\r\n placeId: number;\r\n userId: number;\r\n allowRead: number;\r\n allowWrite: number;\r\n allowNone: number;\r\n}\r\n\r\nexport interface EvolutionPlacePermission extends EvolutionPermission {\r\n id: number;\r\n subjectId?: number;\r\n siteId?: number;\r\n departmentId?: number;\r\n mode: number;\r\n}\r\n\r\nexport interface EvolutionContextInfo {\r\n id: number;\r\n userId?: number;\r\n name: string;\r\n permission: EvolutionPermission;\r\n placePermission: ERPPlacePermission;\r\n costCenter: string;\r\n selected?: boolean;\r\n level?: number;\r\n levelTitle?: string;\r\n}\r\n\r\nexport class EvolutionComplianceContextInfo {\r\n licenceId?: number;\r\n companyName?: string;\r\n registerTitle?: string;\r\n registerId?: number;\r\n siteName?: string;\r\n siteId?: number;\r\n userId?: number;\r\n items?: EvolutionContextInfo[];\r\n}\r\n\r\nexport interface EvolutionChangeContextModel {\r\n userId?: number ;\r\n licenceId?: number ;\r\n subjectId?: number ;\r\n siteId?: number ;\r\n registerId?: number ;\r\n role?: ERPComplianceProfileRole ;\r\n permission?: ERPPlacePermission ;\r\n option1Value?: number ;\r\n option2Value?: number ;\r\n option3Value?: number ;\r\n allowObservers?: boolean ;\r\n allowDisabled?: boolean ;\r\n}\r\n\r\nexport interface EvolutionChangeContextResultModel {\r\n items: EvolutionContextInfo[];\r\n}\r\n\r\nexport interface EvolutionComplianceRegister extends EvolutionPlaceable {\r\n id: number;\r\n title?: string;\r\n enableNotifications?: boolean;\r\n enableNotification1?: boolean;\r\n enableNotification2?: boolean;\r\n enableNotification3?: boolean;\r\n enableNotification4?: boolean;\r\n enableNotification5?: boolean;\r\n enableNotification7?: boolean;\r\n enableNotification8?: boolean;\r\n enableNotification9?: boolean;\r\n notification1NoticeDays?: number;\r\n notification2NoticeDays?: number;\r\n notification2Limit?: number;\r\n notification3NoticeDays?: number;\r\n notification4NoticeDays?: number;\r\n notification4Limit?: number;\r\n notification5NoticeDays?: number;\r\n notification5Limit?: number;\r\n notification6Limit?: number;\r\n notification8NoticeDays?: number;\r\n notification8Limit?: number;\r\n enableActivityLawsPopulation?: boolean;\r\n enableLawChangesTracking?: boolean;\r\n automationMode?: number;\r\n automationScope?: number;\r\n disabled?: boolean;\r\n created?: Date;\r\n lastUpdated?: Date;\r\n lastUpdatedBy?: string;\r\n totalSites?: number;\r\n totalProfiles?: number;\r\n sites?: EvolutionComplianceRegisterSite[];\r\n oldId?: string;\r\n isAutomationEnabled?: boolean;\r\n automationModeDescription?: string;\r\n automationScopeDescription?: string;\r\n context?: EvolutionComplianceContextInfo;\r\n isMenuOpen?: boolean;\r\n isOver?: boolean;\r\n}\r\n\r\nexport interface EvolutionRegisterProfileSiteInfo extends EvolutionContextInfo {\r\n\r\n}\r\n\r\nexport interface EvolutionRegisterProfileUserInfo {\r\n userId: number;\r\n name: string;\r\n sites: EvolutionRegisterProfileSiteInfo[];\r\n}\r\n\r\nexport interface ComplianceRegisterUsersResultModel {\r\n users: EvolutionRegisterProfileUserInfo[];\r\n sites: EvolutionRegisterProfileSiteInfo[];\r\n}\r\n\r\nexport interface EvolutionComplianceRegisterSite {\r\n id: number;\r\n complianceRegisterId?: number;\r\n complianceSiteId?: number;\r\n disabled?: boolean;\r\n created?: Date;\r\n licenceId?: number;\r\n subjectId?: number;\r\n subjectName: string;\r\n siteId?: number;\r\n siteName?: string;\r\n departmentId?: number;\r\n departmentName?: string;\r\n registerTitle?: string;\r\n placeId?: number;\r\n oldSiteId?: string;\r\n}\r\n\r\nexport interface EvolutionComplianceLaw extends EvolutionPlaceable {\r\n id?: number;\r\n state?: number;\r\n complianceRegisterId?: number;\r\n lot?: number;\r\n topicId?: string;\r\n topicPath?: string;\r\n topicName?: string;\r\n summary?: string;\r\n scope?: number;\r\n source?: string;\r\n references?: EvolutionComplianceLawReference[];\r\n originalLawId?: number ;\r\n originRegion?: string ;\r\n origin?: number ;\r\n originAlternativeDescription?: string ;\r\n description?: string ;\r\n documentShortTitle?: string ;\r\n documentTitle?: string ;\r\n documentNumber?: string ;\r\n documentDate?: Date ;\r\n documentLastUpdate?: string ;\r\n documentLastUpdateShortTitle?: string ;\r\n documentUpdateNotes?: string ;\r\n documentValidated?: boolean ;\r\n documentId?: string ;\r\n documentModel?: number ;\r\n documentReferences?: string ;\r\n documentNotes?: string ;\r\n documentForceGlobalCheckForUpdates?: boolean;\r\n complianceCheckItem1?: boolean ;\r\n complianceCheckItem2?: boolean ;\r\n complianceCheckItem3?: boolean ;\r\n complianceCheckItem4?: boolean ;\r\n complianceCheckItem5?: boolean ;\r\n complianceCheckItem6?: boolean ;\r\n complianceCheckItem7?: boolean ;\r\n complianceCheckItem8?: boolean ;\r\n complianceCheckItem9?: boolean ;\r\n complianceCheckItem10?: boolean ;\r\n complianceCheckItem11?: boolean ;\r\n complianceCheckItem12?: boolean ;\r\n alternativeComplianceCheckItem?: boolean ;\r\n alternativeComplianceDescription?: string ;\r\n applicability?: number ;\r\n analyzedBy?: string ;\r\n analystOperatorId?: number ;\r\n analysisExpiringDate?: Date ;\r\n analysisDate?: Date ;\r\n analysisNotes?: string ;\r\n analysisNoticeDate?: string ;\r\n group1?: string ;\r\n group2?: string ;\r\n count?: number ;\r\n created?: Date ;\r\n createdBy?: string ;\r\n lastUpdated?: Date ;\r\n lastUpdatedBy?: string ;\r\n}\r\n\r\nexport interface EvolutionQueryRegisterProfilesModel extends QueryModel {\r\n complianceRegisterId?: number;\r\n siteId?: number;\r\n userId?: number;\r\n licenceId?: number;\r\n name?: string;\r\n role?: number;\r\n allowObservers?: boolean;\r\n allowDisabled?: boolean;\r\n state?: number;\r\n}\r\n\r\nexport interface EvolutionComplianceRegisterProfile {\r\n id: number;\r\n licenceId?: number;\r\n userId?: number;\r\n passiveUserName?: string;\r\n passiveUserOperatorId?: number;\r\n complianceRegisterId?: number;\r\n complianceSiteId?: number;\r\n scopes?: number;\r\n selectedScopes?: number[];\r\n roles?: number;\r\n selectedRoles?: number[];\r\n notifications?: number;\r\n flags?: number;\r\n disabled?: boolean;\r\n created?: Date;\r\n lastUpdated?: Date;\r\n lastUpdatedBy?: string;\r\n subjectId?: number;\r\n subjectName?: string;\r\n siteId?: number;\r\n siteName?: string;\r\n siteDisabled?: boolean;\r\n departmentId?: number;\r\n departmentName?: string;\r\n passiveUserEmail?: string;\r\n placeId?: number;\r\n userEmail?: string;\r\n userOperatorId?: number;\r\n userDisabled?: boolean;\r\n registerDisabled?: boolean;\r\n registerTitle?: string;\r\n name?: string;\r\n scopeNames?: string;\r\n isAdministrator?: boolean;\r\n isObserver?: boolean;\r\n denied?: boolean;\r\n oldId?: string;\r\n operatorId?: number;\r\n isMenuOpen?: boolean;\r\n isOver?: boolean;\r\n context?: EvolutionComplianceContextInfo;\r\n}\r\nexport interface EvolutionComplianceLawDocumentInfo {\r\n documentId?: string;\r\n documentId2?: string;\r\n title2?: string;\r\n title1?: string;\r\n number?: string;\r\n date?: Date;\r\n origin?: number;\r\n originDescription?: string;\r\n originAlternativeDescription?: string;\r\n originRegion?: string;\r\n notes?: string;\r\n references?: EvolutionComplianceLawReference[];\r\n forceGlobalCheckForUpdates?: boolean;\r\n validated?: boolean;\r\n description?: string;\r\n taxonomy?: string;\r\n taxonomyPath?: string;\r\n}\r\n\r\nexport interface EvolutionComplianceLawsAddParams extends EvolutionComplianceLaw {\r\n context?: EvolutionComplianceContextInfo;\r\n documents?: EvolutionComplianceLawDocumentInfo[];\r\n shouldNotifyAnalysisCompletionAgain?: boolean;\r\n scopes?: number[];\r\n sites?: number[];\r\n registers?: number[];\r\n}\r\n\r\n/** Export parameters for compliance laws. */\r\nexport interface EvolutionComplianceLaswExportParams extends EvolutionExportModel<Partial<EvolutionComplianceLaw>> {}\r\n\r\nexport interface EvolutionComplianceLawReference {\r\n id?: number ;\r\n complianceLawId?: number ;\r\n text: string;\r\n description?: string ;\r\n anchor: string;\r\n}\r\n\r\nexport interface EvolutionComplianceActivity extends EvolutionPlaceable {\r\n id: number;\r\n state: number;\r\n monitoringActivityId?: number;\r\n monitoringActivityTaskId?: number;\r\n complianceRegisterId?: number;\r\n childId?: number ;\r\n parentId?: number ;\r\n lot?: number ; \r\n summary?: string;\r\n scope?: number;\r\n topicId?: string ;\r\n topicPath?: string;\r\n topicName?: string;\r\n mandatory?: boolean ;\r\n obligationType?: number ;\r\n obligationAuthorityId?: number ;\r\n obligationNotes?: string;\r\n obligationCheckPoint?: boolean ;\r\n description?: string;\r\n deadlineRecurrent?: boolean ;\r\n deadlineFrequency?: number ;\r\n deadlineFrequencyType?: number ;\r\n deadlineFrequencyEndOfMonth?: boolean ;\r\n deadlineFirstNoticeDays?: number ;\r\n deadlineLastNoticeDays?: number ;\r\n deadlineFirstNoticeDate?: Date ;\r\n deadlineLastNoticeDate?: Date ;\r\n deadlineExpiringDate?: Date ;\r\n planningNoticeDate?: Date ;\r\n planningExpiringDate?: Date ;\r\n planningDate?: Date ;\r\n plannedBy?: string;\r\n plannerOperatorId?: number ;\r\n planningApplicability?: number ;\r\n planningNotificationAdditionalEmailHeader?: string;\r\n planningNotificationAdditionalEmails?: string;\r\n planningNotificationAdditionalEmailsForAlertsOnly?: string;\r\n planningNamedExecutorOperatorId?: number ;\r\n planningNamedExecutorName?: string;\r\n planningNamedExecutorManagerOperatorId?: number ;\r\n planningNamedExecutorManagerName?: string;\r\n planningScheduleNextFromExecutionDate?: boolean ;\r\n planningNotes?: string;\r\n executorOperatorId?: number ;\r\n executed?: boolean;\r\n executedBy?: string;\r\n executionDate?: Date;\r\n externalReference?: string;\r\n externalDescription?: string;\r\n group1?: string;\r\n group2?: string;\r\n notes?: string;\r\n created?: Date;\r\n createdBy?: string;\r\n lastUpdated?: Date ;\r\n lastUpdatedBy?: string;\r\n\r\n}\r\n\r\nexport interface EvolutionComplianceActivitiesAddParams extends EvolutionComplianceActivity {\r\n context?: EvolutionComplianceContextInfo;\r\n complianceLawId?: number;\r\n monitoringLawId?: number;\r\n enableLawChangesTracking?: boolean;\r\n enableActivityLawsPopulation?: boolean;\r\n shouldNotifyPlanningCompletionAgain?: boolean;\r\n scopes?: number[];\r\n sites?: number[];\r\n registers?: number[];\r\n document?: EvolutionComplianceLawDocumentInfo;\r\n}","import { InjectionToken } from '@angular/core';\r\nimport { EvolutionServiceFlags } from '../definitions';\r\n\r\n/**\r\n * Configuration for {@link EvolutionAuthInterceptor}.\r\n * Lets the interceptor work without injecting the (heavy) EvolutionService:\r\n * only the base URI and the flags are needed.\r\n */\r\nexport interface EvolutionAuthInterceptorConfig {\r\n /** Base URI of the Evolution service; only requests starting with it are handled. */\r\n serviceUri: string;\r\n /** Optional service flags (e.g. NotifySystemErrors). Defaults to None. */\r\n flags?: EvolutionServiceFlags;\r\n}\r\n\r\n/** DI token carrying the {@link EvolutionAuthInterceptorConfig}. */\r\nexport const EVOLUTION_AUTH_INTERCEPTOR_CONFIG =\r\n new InjectionToken<EvolutionAuthInterceptorConfig>('EVOLUTION_AUTH_INTERCEPTOR_CONFIG');","import { HttpErrorResponse, HttpInterceptorFn } from '@angular/common/http';\nimport { inject } from '@angular/core';\nimport { BroadcastService, ErrorInfo } from '@arsedizioni/ars-utils/core';\nimport { catchError, throwError } from 'rxjs';\nimport { EvolutionServiceFlags } from '../definitions';\nimport { EvolutionMessages } from '../messages';\n\n/** Minimum milliseconds between consecutive error broadcasts (debounce guard). */\nconst ERROR_DEBOUNCE_MS = 5000;\n\n/**\n * Builds the Evolution auth HTTP interceptor.\n *\n * Takes its two inputs — the Evolution base URI and the service flags — directly\n * as arguments (captured in the closure), so it never injects EvolutionService:\n * registering it does not pull the full Evolution service into the eager bundle.\n *\n * Register it with `withInterceptors`:\n * @example\n * provideHttpClient(withInterceptors([\n * evolutionAuthInterceptor(environment.evolutionServiceUri,\n * EvolutionServiceFlags.DisplayConnectionStateMessages | EvolutionServiceFlags.Embedded),\n * ]))\n *\n * @param serviceUri - Base URI of the Evolution service; only requests starting with it are handled.\n * @param flags - Service flags (e.g. NotifySystemErrors). Defaults to None.\n * @returns An `HttpInterceptorFn` ready to register.\n */\nexport function evolutionAuthInterceptor(\n serviceUri: string,\n flags: EvolutionServiceFlags = EvolutionServiceFlags.None\n): HttpInterceptorFn {\n // Debounce state, persisted across requests via the factory closure.\n let lastErrorTime = -1;\n\n /**\n * Broadcasts a user-friendly message for an Evolution HTTP error, debounced.\n * @param error - The raw error value thrown by the HTTP layer.\n * @param broadcastService - The broadcast service for the current request.\n * @returns void\n */\n function handleError(error: unknown, broadcastService: BroadcastService): void {\n if (!(error instanceof HttpErrorResponse)) return;\n // Only reject errors that explicitly belong to a different service; a missing\n // url (network failure on an Evolution request) is allowed through.\n if (error.url && !error.url.startsWith(serviceUri)) return;\n\n const errorStatus = error.status;\n const shouldNotify =\n errorStatus === 0 ||\n (errorStatus > 0 && errorStatus < 500) ||\n (flags & EvolutionServiceFlags.NotifySystemErrors) > 0;\n\n if (!shouldNotify) return;\n\n const now = Date.now();\n if (now - lastErrorTime <= ERROR_DEBOUNCE_MS) return;\n lastErrorTime = now;\n\n let message: string;\n switch (errorStatus) {\n case 0:\n message = \"In questo momento Evolution non è disponibile. Riprova tra qualche minuto.\";\n break;\n case 403:\n message = \"Non hai i permessi necessari per eseguire l'operazione richiesta.\";\n break;\n default:\n message = (\n (error.error as Record<string, string> | null)?.['message'] ??\n error.message ??\n \"Impossibile eseguire l'operazione richiesta.\"\n ).replaceAll('\\r\\n', '</p><p>');\n break;\n }\n\n broadcastService.sendMessage(\n EvolutionMessages.ERROR,\n {\n invalidateSession: errorStatus === 405 || errorStatus === 410,\n message,\n title: \"Errore in Evolution\",\n errorStatus,\n service: serviceUri\n } as ErrorInfo\n );\n }\n\n // The interceptor itself. Runs in an injection context, so `inject()` works.\n return (request, next) => {\n if (!serviceUri || !request.url.startsWith(serviceUri)) {\n return next(request);\n }\n\n const broadcastService = inject(BroadcastService);\n\n const authenticatedRequest = request.clone({\n withCredentials: true,\n setHeaders: {\n 'ngsw-bypass': 'ngsw-bypass',\n 'X-Client-Id': sessionStorage.getItem('evolution_client_id') ?? ''\n }\n });\n\n return next(authenticatedRequest).pipe(\n catchError((error: unknown) => {\n handleError(error, broadcastService);\n return throwError(() => error);\n })\n );\n };\n}","import { Service, Signal, WritableSignal, inject, signal } from '@angular/core';\nimport { BroadcastService } from '@arsedizioni/ars-utils/core';\nimport type { LoginOAuthType } from '@arsedizioni/ars-utils/ui.oauth';\nimport { EvolutionMessages } from '../messages';\nimport { EvolutionLoginInfo, EvolutionLoginResult, EvolutionServiceFlags } from './../definitions';\n\n/**\n * @internal\n * Private state container for the Evolution session.\n *\n * Intentionally NOT exported from the barrel: it must never be injected by\n * application code. Its state and pure mutations are re-published through\n * {@link EvolutionService} (and partly {@link LoginService}). The feature\n * services inject it ONLY to read {@link serviceUri}.\n *\n * Owns the back-end URI, feature flags, persisted login info and the session\n * signals. No HTTP, no auth orchestration.\n */\n@Service()\nexport class CoreService {\n\n private readonly broadcastService = inject(BroadcastService);\n\n private _serviceUri: string | undefined;\n /**\n * Gets the base URI of the Evolution back-end service.\n * @returns The configured service URI, or undefined before initialize().\n */\n get serviceUri(): string | undefined {\n return this._serviceUri;\n }\n /**\n * Sets the base URI of the Evolution back-end service.\n * @param uri - The base URL.\n * @returns void\n */\n setServiceUri(uri: string): void {\n this._serviceUri = uri;\n }\n\n private _flags: EvolutionServiceFlags = EvolutionServiceFlags.None;\n /**\n * Gets the active feature flags.\n * @returns The active {@link EvolutionServiceFlags} bitmask.\n */\n get flags(): EvolutionServiceFlags {\n return this._flags;\n }\n /**\n * Sets the active feature flags.\n * @param flags - The flags bitmask to apply.\n * @returns void\n */\n setFlags(flags: EvolutionServiceFlags): void {\n this._flags = flags;\n }\n\n private _loginInfo?: EvolutionLoginInfo;\n /**\n * Gets the current login info, hydrating it from `localStorage` on first\n * access when no in-memory value is available.\n * @returns The current {@link EvolutionLoginInfo}, or undefined.\n */\n get loginInfo(): EvolutionLoginInfo | undefined {\n if (!this._loginInfo) {\n const raw = localStorage.getItem('evolution_context');\n if (raw) {\n try {\n this._loginInfo = JSON.parse(raw) as EvolutionLoginInfo;\n } catch { /* invalid JSON — ignore and leave undefined */ }\n }\n }\n return this._loginInfo;\n }\n\n private readonly _loggedIn = signal<boolean>(false);\n /** `true` when the user has an active (non-temporary) session. */\n public readonly loggedIn: Signal<boolean> = this._loggedIn.asReadonly();\n /**\n * Sets the logged-in state.\n * @param value - The new logged-in value.\n * @returns void\n */\n setLoggedIn(value: boolean): void {\n this._loggedIn.set(value);\n }\n\n /** `true` while a login request is in flight. */\n public readonly loggingIn: WritableSignal<boolean> = signal<boolean>(false);\n\n /**\n * Records the OAuth provider / remember flag on the login info, creating the\n * container if needed.\n * @param oauth - The OAuth provider type, if any.\n * @param remember - Whether the session should persist across restarts.\n * @returns void\n */\n setAuthMeta(oauth?: LoginOAuthType, remember?: boolean): void {\n if (!this._loginInfo) {\n this._loginInfo = { context: undefined };\n }\n this._loginInfo.oauth = oauth;\n this._loginInfo.remember = remember;\n }\n\n /**\n * Persists the current login info to `localStorage`.\n * @returns void\n */\n storeContext(): void {\n localStorage.setItem('evolution_context', JSON.stringify(this._loginInfo));\n }\n\n /**\n * Merges a login result into the stored login info and persists it.\n * @param result - The login result returned by the login endpoint.\n * @returns void\n */\n updateContext(result: EvolutionLoginResult): void {\n if (!this._loginInfo) {\n this._loginInfo = { context: undefined };\n }\n this._loginInfo.context = result.context;\n this.storeContext();\n }\n\n /**\n * Resets the in-memory login state and broadcasts a logout-completed event.\n * Does NOT touch storage; call {@link clear} for a full cleanup.\n * @returns void\n */\n reset(): void {\n this._loginInfo = undefined;\n this._loggedIn.set(false);\n this.broadcastService.sendMessage(EvolutionMessages.LOGOUT_COMPLETED);\n }\n\n /**\n * Removes Evolution session data from `sessionStorage` and calls {@link reset}.\n * @param clearOAuthToken - When true, also removes the stored OAuth2 access token.\n * @returns void\n */\n clear(clearOAuthToken: boolean = false): void {\n sessionStorage.removeItem('evolution_auth');\n sessionStorage.removeItem('evolution_refresh');\n sessionStorage.removeItem('evolution_oauth');\n if (clearOAuthToken) {\n sessionStorage.removeItem('evolution_oauth_token');\n }\n this.reset();\n }\n}\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { DestroyRef, Service, Signal, WritableSignal, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ApiResult, BroadcastMessageInfo, BroadcastService, SystemUtils } from '@arsedizioni/ars-utils/core';\nimport { EMPTY, of, throwError } from 'rxjs';\nimport { catchError, finalize, map } from 'rxjs/operators';\nimport { LoginOAuthType } from '@arsedizioni/ars-utils/ui.oauth';\nimport { EvolutionMessages } from '../messages';\nimport { EvolutionLoginInfo, EvolutionLoginResult, EvolutionServiceFlags } from './../definitions';\nimport { CoreService } from './core.service';\n\n/**\n * Authentication service for the Evolution module: login / logout / MFA,\n * session bootstrap, connectivity ping and the broadcast handler.\n * All session state lives in the private {@link CoreService}; this service\n * orchestrates the HTTP flows and re-publishes the parts of core that\n * consumers need.\n */\n@Service()\nexport class LoginService {\n\n private readonly httpClient = inject(HttpClient);\n private readonly broadcastService = inject(BroadcastService);\n private readonly destroyRef = inject(DestroyRef);\n private readonly core = inject(CoreService);\n\n private broadcastInitialized = false;\n\n // ── Re-published core state (CoreService stays private) ─────────────────────\n\n /**\n * Gets the base URI of the Evolution back-end service.\n * @returns The configured service URI, or undefined before initialize().\n */\n get serviceUri(): string | undefined { return this.core.serviceUri; }\n\n /**\n * Gets the active feature flags.\n * @returns The active {@link EvolutionServiceFlags} bitmask.\n */\n get flags(): EvolutionServiceFlags { return this.core.flags; }\n\n /**\n * Gets the current login info.\n * @returns The current {@link EvolutionLoginInfo}, or undefined.\n */\n get loginInfo(): EvolutionLoginInfo | undefined { return this.core.loginInfo; }\n\n /** `true` when the user has an active (non-temporary) session. */\n get loggedIn(): Signal<boolean> { return this.core.loggedIn; }\n\n /** `true` while a login request is in flight. */\n get loggingIn(): WritableSignal<boolean> { return this.core.loggingIn; }\n\n // ── Re-published core operations ────────────────────────────────────────────\n\n /**\n * Persists the current login info to `localStorage` (delegates to core).\n * @returns void\n */\n storeContext(): void { this.core.storeContext(); }\n\n /**\n * Merges a login result into the stored login info (delegates to core).\n * @param result - The login result returned by the login endpoint.\n * @returns void\n */\n updateContext(result: EvolutionLoginResult): void { this.core.updateContext(result); }\n\n /**\n * Resets the in-memory login state and broadcasts logout-completed (delegates to core).\n * @returns void\n */\n reset(): void { this.core.reset(); }\n\n /**\n * Removes Evolution session data and resets the state (delegates to core).\n * @param clearOAuthToken - When true, also removes the stored OAuth2 access token.\n * @returns void\n */\n clear(clearOAuthToken: boolean = false): void { this.core.clear(clearOAuthToken); }\n\n // ── Lifecycle ───────────────────────────────────────────────────────────────\n\n /**\n * Initialises the service with the back-end URI and optional feature flags.\n * Must be called once during application bootstrap before any other method.\n * @param serviceUri - Base URL of the Evolution service.\n * @param flags - Bitmask of `EvolutionServiceFlags` (default: `None`).\n * @returns void\n */\n initialize(\n serviceUri: string,\n flags: EvolutionServiceFlags = EvolutionServiceFlags.None\n ): void {\n // Create a unique per-tab client ID if not already set\n if (!sessionStorage.getItem('evolution_client_id')) {\n sessionStorage.setItem(\n 'evolution_client_id',\n (flags & EvolutionServiceFlags.Embedded) > 0\n ? 'embedded'\n : SystemUtils.generateUUID()\n );\n }\n\n this.core.setServiceUri(serviceUri);\n this.core.setFlags(flags);\n\n // Subscribe to broadcast messages (only once)\n if (!this.broadcastInitialized) {\n this.broadcastInitialized = true;\n this.broadcastService\n .getMessage()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((message: BroadcastMessageInfo) => {\n this.handleBroadcastMessage(message);\n });\n }\n\n // If a session is already active (e.g. after an F5 page refresh), notify consumers\n if (this.core.loggedIn()) {\n this.core.loggingIn.set(false);\n this.broadcastService.sendMessage(EvolutionMessages.LOGIN_COMPLETED);\n }\n }\n\n /**\n * Dispatches an incoming broadcast message to the appropriate handler.\n * @param message - The message received from the broadcast channel.\n * @returns void\n */\n private handleBroadcastMessage(message: BroadcastMessageInfo): void {\n if (message.id === EvolutionMessages.LOGIN_CHANGED) {\n const data = message.data as Record<string, unknown> | undefined;\n this.login(\n undefined,\n undefined,\n true,\n data?.['oauth'] as LoginOAuthType | undefined,\n data?.['oauthAccessToken'] as string | undefined\n ).subscribe({\n next: r => {\n if (!r.success) {\n if ((this.core.flags & EvolutionServiceFlags.DisplayConnectionStateMessages) > 0) {\n this.broadcastService.sendMessage(EvolutionMessages.ERROR, {message: \"Le credenziali di accesso sono cambiate o non sono più valide. Esegui un nuovo accesso.\"});\n }\n this.broadcastService.sendMessage(EvolutionMessages.LOGIN_FAILED);\n } else {\n if ((this.core.flags & EvolutionServiceFlags.DisplayConnectionStateMessages) > 0) {\n this.broadcastService.sendMessage(\n EvolutionMessages.SUCCESS_TOAST,\n { message: 'Connesso a Evolution', icon: 'power', duration: 1500 });\n }\n }\n },\n error: () => { console.error('Evolution non disponibile.'); }\n });\n } else if (message.id === EvolutionMessages.LOGOUT) {\n if (this.core.loggedIn()) {\n this.logout().subscribe(r => {\n if (!r.success) {\n if (r.message) {\n this.broadcastService.sendMessage(\n EvolutionMessages.ERROR,\n {message: \"<p>\" + r.message + \"</p><br><br><hr><p class='small'><i>Per eliminare la configurazione di Evolution accedere a:<br><b>menu > personalizza > collegamenti</b></i></p>\"}\n );\n }\n } else {\n if ((this.core.flags & EvolutionServiceFlags.DisplayConnectionStateMessages) > 0) {\n this.broadcastService.sendMessage(\n EvolutionMessages.SUCCESS_TOAST,\n { message: 'Disconnesso da Evolution', icon: 'power_off', duration: 1500 });\n }\n }\n });\n } else {\n this.core.clear();\n }\n }\n }\n\n /**\n * Sends a one-shot ping to the back end to verify connectivity.\n * @returns void\n */\n ping(): void {\n this.httpClient\n .get<ApiResult<number>>(\n this.core.serviceUri + '/ping?nocache=' + SystemUtils.generateUUID()\n )\n .pipe(catchError(() => EMPTY))\n .subscribe();\n }\n\n /**\n * Performs an automatic login using the credentials already stored in the session.\n * @param onSuccess - Optional callback invoked after a successful login.\n * @returns `true` (always) — the result is handled via the subscription callbacks.\n */\n autoLogin(onSuccess?: () => void): boolean {\n this.login(undefined, undefined, true)\n .subscribe({\n next: r => {\n if (!r.success) {\n this.broadcastService.sendMessage(EvolutionMessages.ERROR, {message: r.message});\n } else {\n if (!r.value?.requiresMfa) {\n this.broadcastService.sendMessage(\n EvolutionMessages.SUCCESS_TOAST,\n { message: 'Connesso ad Evolution', icon: 'power', duration: 1500 });\n }\n onSuccess?.();\n }\n },\n error: () => { this.broadcastService.sendMessage(EvolutionMessages.ERROR, {message: \"Evolution non disponibile.\"}); }\n });\n return true;\n }\n\n /**\n * Performs an automatic logout, notifying the user when the session ends.\n * @param onSuccess - Optional callback invoked after the logout completes.\n * @returns void\n */\n autoLogout(onSuccess?: () => void): void {\n this.logout().subscribe({\n next: r => {\n if (!r.success) {\n if (r.message) {\n this.broadcastService.sendMessage(EvolutionMessages.ERROR, {message: r.message});\n }\n this.broadcastService.sendMessage(EvolutionMessages.LOGIN_CHANGED);\n } else {\n this.broadcastService.sendMessage(\n EvolutionMessages.SUCCESS_TOAST,\n { message: 'Disconnesso da Evolution', icon: 'power_off', duration: 1500 });\n }\n },\n error: () => { },\n complete: () => {\n onSuccess?.();\n }\n });\n }\n\n /**\n * Authenticates the user against the Evolution back end (credential or OAuth2).\n * @param email - User e-mail (credential login only; omit for OAuth2).\n * @param password - User password (credential login only; omit for OAuth2).\n * @param remember - Whether to persist the session across browser restarts.\n * @param oauth - OAuth2 provider type, when using federated login.\n * @param oauthAccessToken - Bearer token from the OAuth2 provider.\n * @returns An observable that emits the `ApiResult<EvolutionLoginResult>`.\n */\n login(\n email?: string,\n password?: string,\n remember?: boolean,\n oauth?: LoginOAuthType,\n oauthAccessToken: string | undefined = sessionStorage.getItem('evolution_oauth_token') ?? undefined\n ) {\n return this.httpClient\n .post<ApiResult<EvolutionLoginResult>>(\n this.core.serviceUri + '/login2',\n {\n user: oauth ? null : email,\n password: oauth ? null : password,\n remember,\n oauth\n },\n {\n headers: oauth && oauthAccessToken\n ? new HttpHeaders().set('Authorization', oauthAccessToken)\n : new HttpHeaders()\n }\n )\n .pipe(\n catchError(err => throwError(() => err)),\n map((r: ApiResult<EvolutionLoginResult>) => {\n if (r.success) {\n this.core.setAuthMeta(oauth, remember);\n if (!oauth && r.value?.requiresMfa) {\n this.broadcastService.sendMessage(EvolutionMessages.LOGIN_PENDING, {});\n } else {\n this.completeLogin(r.value);\n }\n }\n return r;\n })\n );\n }\n\n /**\n * Finalises a successful login by updating the stored context and notifying consumers.\n * @param result - The login result payload from the server.\n * @returns void\n */\n private completeLogin(result: EvolutionLoginResult): void {\n this.core.updateContext(result);\n this.core.setLoggedIn(!result.context?.isTemporary);\n this.core.loggingIn.set(false);\n this.broadcastService.sendMessage(EvolutionMessages.LOGIN_COMPLETED);\n }\n\n /**\n * Confirms a multi-factor authentication challenge and completes the login.\n * @param code - The one-time MFA code entered by the user.\n * @returns An observable that emits the `ApiResult<EvolutionLoginResult>`.\n */\n confirmIdentity(code: string) {\n return this.httpClient\n .post<ApiResult<EvolutionLoginResult>>(\n this.core.serviceUri + '/login/confirm/' + code,\n {}\n )\n .pipe(\n catchError(err => throwError(() => err)),\n map((r: ApiResult<EvolutionLoginResult>) => {\n if (r.success) {\n this.completeLogin(r.value);\n }\n return r;\n })\n );\n }\n\n /**\n * Logs the current user out of the back end and clears local session data.\n * @param forget - When `true`, instructs the server to discard all stored credentials.\n * @returns An observable that emits `ApiResult<unknown>`.\n */\n logout(forget: boolean = false) {\n return this.httpClient\n .post<ApiResult<unknown>>(this.core.serviceUri + '/logout/?forget=' + forget, {})\n .pipe(\n finalize(() => {\n this.core.clear();\n localStorage.removeItem('evolution_context');\n }),\n catchError(() => of<ApiResult<unknown>>({ success: false, value: undefined, message: undefined }))\n );\n }\n\n /**\n * Switches the active session to a different user account while retaining credentials.\n * @param id - The user ID to switch to.\n * @returns An observable that emits the `ApiResult<EvolutionLoginResult>`.\n */\n loginSwitch(id: number) {\n return this.httpClient\n .post<ApiResult<EvolutionLoginResult>>(\n this.core.serviceUri + '/login/switch',\n { userId: id }\n )\n .pipe(\n catchError(err => throwError(() => err)),\n map((r: ApiResult<EvolutionLoginResult>) => {\n if (r.success) {\n this.completeLogin(r.value);\n }\n return r;\n })\n );\n }\n}\n","import { Service, inject } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { ApiResult, FolderTree } from '@arsedizioni/ars-utils/core';\nimport {\n EvolutionChangeContextModel, EvolutionChangeContextResultModel,\n EvolutionComplianceActivitiesAddParams, EvolutionComplianceActivity,\n EvolutionComplianceLaw, EvolutionComplianceLawsAddParams,\n EvolutionComplianceRegister, EvolutionComplianceRegisterProfile,\n EvolutionQueryRegisterProfilesModel\n} from './../definitions';\nimport { CoreService } from './core.service';\n\n/**\n * Compliance endpoints: taxonomy & groups, context, registers, laws and\n * activities (the `Context` / `Registers` / `Laws` / `Activities` sections,\n * plus the general taxonomy/groups lookups). Pure HTTP; injects the private\n * {@link CoreService} only to read the back-end URI.\n */\n@Service()\nexport class ComplianceService {\n private readonly httpClient = inject(HttpClient);\n private readonly core = inject(CoreService);\n\n // ── Taxonomy & groups ───────────────────────────────────────────────────────\n\n /**\n * Retrieves the taxonomy tree from the back end.\n * @returns An observable that emits `ApiResult<FolderTree>`.\n */\n getTaxonomy() {\n return this.httpClient.get<ApiResult<FolderTree>>(\n this.core.serviceUri + '/taxonomy'\n );\n }\n\n /**\n * Retrieves the compliance groups for a register.\n * @param group - Group index to retrieve (default: `1`).\n * @param register - Optional register ID to scope the query.\n * @returns An observable that emits `ApiResult<string[]>`.\n */\n getGroups(group: number = 1, register?: number) {\n const path = register\n ? `/compliance/groups/?group=${group}&register=${register}`\n : `/compliance/groups/?group=${group}`;\n return this.httpClient.get<ApiResult<string[]>>(this.core.serviceUri + path);\n }\n\n // ── Context ──────────────────────────────────────────────────────────────────\n\n /**\n * Sends a context-change request to the back end.\n * @param params - The context model describing the desired switch.\n * @returns An observable that emits `ApiResult<EvolutionChangeContextResultModel>`.\n */\n changeContext(params: EvolutionChangeContextModel) {\n return this.httpClient.post<ApiResult<EvolutionChangeContextResultModel>>(\n this.core.serviceUri + '/compliance/context',\n params\n );\n }\n\n // ── Registers ────────────────────────────────────────────────────────────────\n\n /**\n * Retrieves a single compliance register by ID.\n * @param id - The register ID.\n * @returns An observable that emits `ApiResult<EvolutionComplianceRegister>`.\n */\n getRegister(id: number) {\n return this.httpClient.get<ApiResult<EvolutionComplianceRegister>>(\n this.core.serviceUri + '/compliance/registers/' + id\n );\n }\n\n /**\n * Collects register profiles matching the given query parameters.\n * @param params - Query parameters defining the filter criteria.\n * @returns An observable that emits `ApiResult<EvolutionComplianceRegisterProfile[]>`.\n */\n collectRegisterProfiles(params: EvolutionQueryRegisterProfilesModel) {\n return this.httpClient.post<ApiResult<EvolutionComplianceRegisterProfile[]>>(\n this.core.serviceUri + '/compliance/registers/profiles/collect',\n params\n );\n }\n\n // ── Laws ─────────────────────────────────────────────────────────────────────\n\n /**\n * Adds one or more compliance laws.\n * @param params - The laws to add.\n * @returns An observable that emits `ApiResult<EvolutionComplianceLaw[]>`.\n */\n addLaws(params: EvolutionComplianceLawsAddParams) {\n return this.httpClient.post<ApiResult<EvolutionComplianceLaw[]>>(\n this.core.serviceUri + '/compliance/laws/add',\n params\n );\n }\n\n /**\n * Exports compliance laws in the format expected by the server.\n * @param params - Export parameters (model shape is server-defined).\n * @returns An observable that emits the binary blob response.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n exportLaws(params: any) {\n return this.httpClient.post(\n this.core.serviceUri + '/compliance/laws/export',\n params,\n { responseType: 'blob' }\n );\n }\n\n // ── Activities ─────────────────────────────────────────────────────────────────\n\n /**\n * Adds one or more compliance activities.\n * @param params - The activities to add.\n * @returns An observable that emits `ApiResult<EvolutionComplianceActivity>`.\n */\n addActivities(params: EvolutionComplianceActivitiesAddParams) {\n return this.httpClient.post<ApiResult<EvolutionComplianceActivity>>(\n this.core.serviceUri + '/compliance/activities/add',\n params\n );\n }\n}\n","import { Service, inject } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { ApiResult } from '@arsedizioni/ars-utils/core';\nimport { EvolutionUserLink } from './../definitions';\nimport { CoreService } from './core.service';\n\n/** Account endpoints (the `Links` section): user links management. */\n@Service()\nexport class AccountService {\n private readonly httpClient = inject(HttpClient);\n private readonly core = inject(CoreService);\n\n /**\n * Persists a user link on the server.\n * @param item - The user link to save.\n * @returns An observable that emits `ApiResult<boolean>`.\n */\n saveLink(item: EvolutionUserLink) {\n return this.httpClient.post<ApiResult<boolean>>(\n this.core.serviceUri + '/account/links/save',\n item\n );\n }\n\n /**\n * Deletes a user link from the server.\n * @param item - The user link to delete.\n * @returns An observable that emits `ApiResult<boolean>`.\n */\n deleteLink(item: EvolutionUserLink) {\n return this.httpClient.post<ApiResult<boolean>>(\n this.core.serviceUri + '/account/links/delete',\n item\n );\n }\n}\n","import { Service, Signal, WritableSignal, inject } from '@angular/core';\nimport { EvolutionLoginInfo, EvolutionServiceFlags } from './../definitions';\nimport { AccountService } from './account.service';\nimport { ComplianceService } from './compliance.service';\nimport { CoreService } from './core.service';\nimport { LoginService } from './login.service';\n\n/**\n * Public entry point for the Evolution compliance module.\n *\n * The private {@link CoreService} is never exposed; its state and operations\n * are re-published here. All endpoint operations are reached through the\n * namespaced sub-services:\n * - `evolution.session` — authentication / session lifecycle\n * - `evolution.compliance` — taxonomy, context, registers, laws, activities\n * - `evolution.account` — user links\n *\n * The facade itself exposes ONLY the re-published core state/operations plus\n * `initialize` and `ping` — it intentionally does NOT flatten the sub-service\n * methods (use the namespaces for those).\n */\n@Service()\nexport class EvolutionService {\n\n /** Private: never exposed to consumers. */\n private readonly core = inject(CoreService);\n\n /** Authentication / session lifecycle sub-service. */\n readonly session = inject(LoginService);\n /** Compliance endpoints: taxonomy, groups, context, registers, laws, activities. */\n readonly compliance = inject(ComplianceService);\n /** Account endpoints: user links management. */\n readonly account = inject(AccountService);\n\n // ── Re-published core state ─────────────────────────────────────────────────\n\n /**\n * Gets the base URI of the Evolution back-end service.\n * @returns The configured service URI, or undefined before initialize().\n */\n get serviceUri(): string | undefined { return this.core.serviceUri; }\n\n /**\n * Gets the active feature flags.\n * @returns The active {@link EvolutionServiceFlags} bitmask.\n */\n get flags(): EvolutionServiceFlags { return this.core.flags; }\n\n /**\n * Gets the current login info.\n * @returns The current {@link EvolutionLoginInfo}, or undefined.\n */\n get loginInfo(): EvolutionLoginInfo | undefined { return this.core.loginInfo; }\n\n /** `true` when the user has an active (non-temporary) session. */\n get loggedIn(): Signal<boolean> { return this.core.loggedIn; }\n\n /** `true` while a login request is in flight. */\n get loggingIn(): WritableSignal<boolean> { return this.core.loggingIn; }\n\n \n // ── Lifecycle (the only flattened sub-service methods) ──────────────────────\n\n /**\n * Initialises the service with the back-end URI and optional feature flags.\n * @param serviceUri - Base URL of the Evolution service.\n * @param flags - Bitmask of `EvolutionServiceFlags` (default: `None`).\n * @returns void\n */\n initialize(serviceUri: string, flags: EvolutionServiceFlags = EvolutionServiceFlags.None): void {\n this.session.initialize(serviceUri, flags);\n }\n\n /**\n * Sends a one-shot ping to the back end to verify connectivity.\n * @returns void\n */\n ping(): void { this.session.ping(); }\n}\n","// Public barrel for the Evolution services.\n//\n// CoreService is intentionally NOT exported: it is private/internal and must\n// never be injected directly. Consumers use EvolutionService (the full facade,\n// with both namespaced sub-services and the backward-compatible flat methods)\n// or, in size-sensitive code, the specific sub-service they need.\nexport * from './login.service';\nexport * from './compliance.service';\nexport * from './account.service';\nexport * from './evolution.service';\n","/*\r\n * Public API Surface of ars-utils\r\n */\r\nexport * from './common/messages';\r\nexport * from './common/definitions';\r\nexport * from './common/interceptors/index';\r\nexport * from './common/services/index';\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["catchError"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arsedizioni/ars-utils",
3
- "version": "22.0.55",
3
+ "version": "22.0.57",
4
4
  "author": {
5
5
  "email": "software@arsedizioni.it",
6
6
  "name": "Fabio Buscaroli, Alberto Doria"
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Signal, WritableSignal } from '@angular/core';
2
+ import { Signal, InjectionToken, WritableSignal } from '@angular/core';
3
3
  import { NameValueItem, Folder, QueryModel, QueryResultModel, LoginResult, ApiResult, UpdateResultModel, FolderTree } from '@arsedizioni/ars-utils/core';
4
4
  import { SendToDialogResult } from '@arsedizioni/ars-utils/ui.application';
5
5
  import { LoginOAuthType } from '@arsedizioni/ars-utils/ui.oauth';
@@ -1105,6 +1105,20 @@ declare class ClipperSearchUtils {
1105
1105
 
1106
1106
  declare const NotesColors: NameValueItem<string>[];
1107
1107
 
1108
+ /**
1109
+ * Configuration for {@link ClipperAuthInterceptor}.
1110
+ * Lets the interceptor work without injecting the (heavy) ClipperService:
1111
+ * only the base URI and the flags are needed.
1112
+ */
1113
+ interface ClipperAuthInterceptorConfig {
1114
+ /** Base URI of the Clipper service; only requests starting with it are handled. */
1115
+ serviceUri: string;
1116
+ /** Optional service flags (e.g. NotifySystemErrors). Defaults to None. */
1117
+ flags?: ClipperServiceFlags;
1118
+ }
1119
+ /** DI token carrying the {@link ClipperAuthInterceptorConfig}. */
1120
+ declare const CLIPPER_AUTH_INTERCEPTOR_CONFIG: InjectionToken<ClipperAuthInterceptorConfig>;
1121
+
1108
1122
  /**
1109
1123
  * Builds the Clipper auth HTTP interceptor.
1110
1124
  *
@@ -1874,5 +1888,5 @@ declare class ClipperCoreService {
1874
1888
  static ɵprov: i0.ɵɵInjectableDeclaration<ClipperCoreService>;
1875
1889
  }
1876
1890
 
1877
- export { ClipperAccountService, ClipperArchiveCopyMode, ClipperArchiveFileStorageType, ClipperArchiveFileStorageTypes, ClipperArchiveFileType, ClipperArchiveFileTypes, ClipperArchiveFilesSearchParams, ClipperArchiveFoldersSearchParams, ClipperArchiveService, ClipperAuthors, ClipperCalendarCopyMode, ClipperCalendarSearchParams, ClipperCalendarService, ClipperCalendarState, ClipperCalendarStates, ClipperChannel, ClipperChannelSettings, ClipperChannels, ClipperCollaborationService, ClipperCoreService, ClipperDashboard, ClipperDocumentChangeReasons, ClipperDocumentContainer, ClipperDocumentsService, ClipperExportDocumentsFormat, ClipperFacet, ClipperLoginService, ClipperMessages, ClipperModel, ClipperModels, ClipperModule, ClipperModuleGroup, ClipperModuleGroups, ClipperModules, ClipperQueryDocumentFlags, ClipperQueryReferencesMode, ClipperRecurrenceType, ClipperRecurrenceTypes, ClipperRegions, ClipperSearchCalendarSnapshotResult, ClipperSearchFacetsSnapshot, ClipperSearchParams, ClipperSearchResult, ClipperSearchUtils, ClipperSectorTypes, ClipperSectors, ClipperSelectionMode, ClipperService, ClipperServiceFlags, ClipperSort, ClipperSources, ClipperTeamInfo, ClipperTeamProduct, ClipperTeamProductPermission, ClipperUpdateChannelsStateParams, ClipperUtils, NotesColors, clipperAuthInterceptor };
1878
- export type { ClipperArchiveFileInfo, ClipperArchiveFilesCopyParams, ClipperArchiveFilesDeleteParams, ClipperArchiveFilesSearchResult, ClipperArchiveFolderTree, ClipperArchiveFoldersImportParams, ClipperArchiveFoldersSearchResult, ClipperArsEventInfo, ClipperAvailableChannel, ClipperCalendarCopyDeadlinesParams, ClipperCalendarSaveDeadlineParams, ClipperCalendarSearchResult, ClipperChannelSettingsItem, ClipperContactInfo, ClipperContactsSearchParams, ClipperDashboardItem, ClipperDashboardModelItem, ClipperDashboardResult, ClipperDayGroup, ClipperDayItem, ClipperDeadlineInfo, ClipperDeleteWorkingDocumentsParams, ClipperDocumentAnchorInfo, ClipperDocumentInfo, ClipperDocumentNote, ClipperDocumentNoteTracking, ClipperDocumentRelevantChunkHit, ClipperDocumentRelevants, ClipperDocumentStructure, ClipperDocumentUpdateStateParams, ClipperExportDocumentsParams, ClipperLastDaysResult, ClipperLoginInfo, ClipperLoginResult, ClipperNotesSearchParams, ClipperNotesSearchResult, ClipperNotifyDocumentNoteParams, ClipperOTPInfo, ClipperReferencesSearchParams, ClipperSearchArsEventsParams, ClipperSearchArsEventsResult, ClipperSearchCalendarSnapshotMonth, ClipperSearchFacet, ClipperSearchFacetGroup, ClipperSearchFacetsResult, ClipperSearchFilter, ClipperSendDocumentsByEmailParams, ClipperSettingsInfo, ClipperTaxonomyParams, ClipperTeamMemberInfo, ClipperTeamMembersSearchResult, ClipperTeamProductInfo, ClipperTeamsSearchParams, ClipperTeamsSearchResult, ClipperTopicInfo, ClipperUserChannelInfo, ClipperUserInfo, ClipperUserLink, ClipperUserSearch, ClipperUserTrialInfo, ClipperUserWorkingDocument, EditDialogCompleted, EditDialogData, EditedEventArgs, SectorInfo };
1891
+ export { CLIPPER_AUTH_INTERCEPTOR_CONFIG, ClipperAccountService, ClipperArchiveCopyMode, ClipperArchiveFileStorageType, ClipperArchiveFileStorageTypes, ClipperArchiveFileType, ClipperArchiveFileTypes, ClipperArchiveFilesSearchParams, ClipperArchiveFoldersSearchParams, ClipperArchiveService, ClipperAuthors, ClipperCalendarCopyMode, ClipperCalendarSearchParams, ClipperCalendarService, ClipperCalendarState, ClipperCalendarStates, ClipperChannel, ClipperChannelSettings, ClipperChannels, ClipperCollaborationService, ClipperCoreService, ClipperDashboard, ClipperDocumentChangeReasons, ClipperDocumentContainer, ClipperDocumentsService, ClipperExportDocumentsFormat, ClipperFacet, ClipperLoginService, ClipperMessages, ClipperModel, ClipperModels, ClipperModule, ClipperModuleGroup, ClipperModuleGroups, ClipperModules, ClipperQueryDocumentFlags, ClipperQueryReferencesMode, ClipperRecurrenceType, ClipperRecurrenceTypes, ClipperRegions, ClipperSearchCalendarSnapshotResult, ClipperSearchFacetsSnapshot, ClipperSearchParams, ClipperSearchResult, ClipperSearchUtils, ClipperSectorTypes, ClipperSectors, ClipperSelectionMode, ClipperService, ClipperServiceFlags, ClipperSort, ClipperSources, ClipperTeamInfo, ClipperTeamProduct, ClipperTeamProductPermission, ClipperUpdateChannelsStateParams, ClipperUtils, NotesColors, clipperAuthInterceptor };
1892
+ export type { ClipperArchiveFileInfo, ClipperArchiveFilesCopyParams, ClipperArchiveFilesDeleteParams, ClipperArchiveFilesSearchResult, ClipperArchiveFolderTree, ClipperArchiveFoldersImportParams, ClipperArchiveFoldersSearchResult, ClipperArsEventInfo, ClipperAuthInterceptorConfig, ClipperAvailableChannel, ClipperCalendarCopyDeadlinesParams, ClipperCalendarSaveDeadlineParams, ClipperCalendarSearchResult, ClipperChannelSettingsItem, ClipperContactInfo, ClipperContactsSearchParams, ClipperDashboardItem, ClipperDashboardModelItem, ClipperDashboardResult, ClipperDayGroup, ClipperDayItem, ClipperDeadlineInfo, ClipperDeleteWorkingDocumentsParams, ClipperDocumentAnchorInfo, ClipperDocumentInfo, ClipperDocumentNote, ClipperDocumentNoteTracking, ClipperDocumentRelevantChunkHit, ClipperDocumentRelevants, ClipperDocumentStructure, ClipperDocumentUpdateStateParams, ClipperExportDocumentsParams, ClipperLastDaysResult, ClipperLoginInfo, ClipperLoginResult, ClipperNotesSearchParams, ClipperNotesSearchResult, ClipperNotifyDocumentNoteParams, ClipperOTPInfo, ClipperReferencesSearchParams, ClipperSearchArsEventsParams, ClipperSearchArsEventsResult, ClipperSearchCalendarSnapshotMonth, ClipperSearchFacet, ClipperSearchFacetGroup, ClipperSearchFacetsResult, ClipperSearchFilter, ClipperSendDocumentsByEmailParams, ClipperSettingsInfo, ClipperTaxonomyParams, ClipperTeamMemberInfo, ClipperTeamMembersSearchResult, ClipperTeamProductInfo, ClipperTeamsSearchParams, ClipperTeamsSearchResult, ClipperTopicInfo, ClipperUserChannelInfo, ClipperUserInfo, ClipperUserLink, ClipperUserSearch, ClipperUserTrialInfo, ClipperUserWorkingDocument, EditDialogCompleted, EditDialogData, EditedEventArgs, SectorInfo };