@arsedizioni/ars-utils 20.2.23 → 20.2.25
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.
|
@@ -1117,8 +1117,9 @@ declare class ClipperService implements OnDestroy {
|
|
|
1117
1117
|
confirmIdentity(code: string, flags?: number): rxjs.Observable<ApiResult<ClipperLoginResult>>;
|
|
1118
1118
|
/**
|
|
1119
1119
|
* Perform logout
|
|
1120
|
+
* @param soft: true if is a soft logout (mfa and remember tokens remains). Default is false.
|
|
1120
1121
|
*/
|
|
1121
|
-
logout(): rxjs.Observable<any>;
|
|
1122
|
+
logout(soft?: boolean): rxjs.Observable<any>;
|
|
1122
1123
|
/**
|
|
1123
1124
|
* Reset login refresh timer and login state
|
|
1124
1125
|
*/
|
|
@@ -2101,7 +2101,7 @@ class ClipperService {
|
|
|
2101
2101
|
}
|
|
2102
2102
|
else if (message.id === ClipperMessages.LOGOUT) {
|
|
2103
2103
|
if (this.loggedIn()) {
|
|
2104
|
-
this.logout().subscribe(r => {
|
|
2104
|
+
this.logout(true).subscribe(r => {
|
|
2105
2105
|
if (!r.success) {
|
|
2106
2106
|
if (r.message) {
|
|
2107
2107
|
this.dialogService.error("<p>" + r.message + "</p><br><br><hr><p class='small'><i>Per eliminare la configurazione di Clipper accedere a:<br><b>menu > personalizza > collegamenti</b></i></p>", undefined, "Errore di Clipper");
|
|
@@ -2282,7 +2282,7 @@ class ClipperService {
|
|
|
2282
2282
|
autoLogout(onSuccess) {
|
|
2283
2283
|
if (!this.loggedIn())
|
|
2284
2284
|
return;
|
|
2285
|
-
this.logout().subscribe({
|
|
2285
|
+
this.logout(true).subscribe({
|
|
2286
2286
|
next: r => {
|
|
2287
2287
|
if (!r.success) {
|
|
2288
2288
|
this.dialogService.error(r.message, undefined, "Errore in Clipper");
|
|
@@ -2392,15 +2392,18 @@ class ClipperService {
|
|
|
2392
2392
|
}
|
|
2393
2393
|
/**
|
|
2394
2394
|
* Perform logout
|
|
2395
|
+
* @param soft: true if is a soft logout (mfa and remember tokens remains). Default is false.
|
|
2395
2396
|
*/
|
|
2396
|
-
logout() {
|
|
2397
|
+
logout(soft = false) {
|
|
2397
2398
|
return this.httpClient.post(this._serviceUri + '/logout', {}).pipe(finalize(() => {
|
|
2398
2399
|
this.removeKeepAlive();
|
|
2399
2400
|
this.clear(true);
|
|
2400
2401
|
// Remove credentials
|
|
2401
2402
|
localStorage.removeItem('clipper_context');
|
|
2402
|
-
localStorage.removeItem('clipper_mfa');
|
|
2403
2403
|
localStorage.removeItem('clipper_remember');
|
|
2404
|
+
if (!soft) {
|
|
2405
|
+
localStorage.removeItem('clipper_mfa');
|
|
2406
|
+
}
|
|
2404
2407
|
}), catchError((_e) => {
|
|
2405
2408
|
return of([]);
|
|
2406
2409
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"arsedizioni-ars-utils-clipper.common.mjs","sources":["../../../projects/ars-utils/clipper.common/common/messages.ts","../../../projects/ars-utils/clipper.common/common/definitions.ts","../../../projects/ars-utils/clipper.common/common/services/clipper.service.ts","../../../projects/ars-utils/clipper.common/common/interceptors/auth.interceptor.ts","../../../projects/ars-utils/clipper.common/common/common.module.ts","../../../projects/ars-utils/clipper.common/public_api.ts","../../../projects/ars-utils/clipper.common/arsedizioni-ars-utils-clipper.common.ts"],"sourcesContent":["export const ClipperMessages = {\r\n /**\r\n * Messages\r\n */\r\n\r\n // Error\r\n ERROR: '§clipper-error',\r\n \r\n // Login\r\n LOGIN_CHANGED: '§clipper-login-changed',\r\n LOGIN_COMPLETED: '§clipper-login-completed',\r\n LOGOUT_COMPLETED: '§clipper-logout-completed',\r\n LOGIN_PENDING: '§clipper-login-pending',\r\n LOGOUT: '§clipper-logout',\r\n\r\n // Document\r\n DOCUMENT_READ: '$clipper-document-read',\r\n DOCUMENT_NAVIGATE: '$clipper-document-navigate',\r\n DOCUMENT_NAVIGATED: '$clipper-document-navigated',\r\n DOCUMENT_SELECTED: '$clipper-document-selected',\r\n DOCUMENT_SELECTED_INNER: '$clipper-document-selected_inner',\r\n\r\n // Settings\r\n SETTINGS_CHANGED: '$clipper-settings-changed',\r\n \r\n // Commands\r\n COMMAND_ARCHIVE_ADD: '$clipper-command-archive-add',\r\n COMMAND_CALENDAR_ADD: '$clipper-command-calendar-add',\r\n COMMAND_WORKING_OPEN: '$clipper-command-working-documents-open',\r\n COMMAND_WORKING_ADD: '$clipper-command-working-documents-add',\r\n COMMAND_SEARCH_RESTORED: '$clipper-command-search-restored',\r\n COMMAND_SEARCH_EXECUTED: '$clipper-command-search-executed',\r\n COMMAND_HISTORY_OPEN: '$clipper-command-history-open',\r\n COMMAND_DASHBOARD_UPDATED: '$clipper-command-dashboard-updated',\r\n\r\n // AI\r\n AI_CONCERN_ME: '$clipper-ai-concernme',\r\n AI_EXPLAIN: '$clipper-ai-explain',\r\n AI_COMMENT: '$clipper-ai-comment',\r\n AI_NEWS: '$clipper-ai-news',\r\n\r\n // Interop\r\n INTEROP_RS_NEW_LAW: '$clipper-interop-rs-new-law',\r\n INTEROP_RS_NEW_ACTIVITY: '$clipper-interop-rs-new-activity',\r\n INTEROP_RS_USAGE_REPORT: '$clipper-interop-rs-usage-report',\r\n\r\n // Updates\r\n UPDATE_RELOAD: '§update-reload',\r\n};\r\n","import { SendToDialogResult } from '@arsedizioni/ars-utils/ui.application';\r\nimport { Folder, LoginResult, NameValueItem } from '@arsedizioni/ars-utils/core';\r\nimport { LoginOAuthType } from '@arsedizioni/ars-utils/ui.oauth';\r\nimport { computed, Signal, signal } from '@angular/core';\r\n\r\n\r\nexport enum ClipperServiceFlags {\r\n None = 0,\r\n NotifySystemErrors = 1,\r\n DisplayConnectionStateMessages = 1 << 1\r\n}\r\nexport enum ClipperRecurrenceType {\r\n Year = 1,\r\n Month = 2,\r\n Day = 3\r\n}\r\n\r\nexport const ClipperRecurrenceTypes: NameValueItem<ClipperRecurrenceType>[] = [\r\n { name: 'Anni', value: ClipperRecurrenceType.Year },\r\n { name: 'Mesi', value: ClipperRecurrenceType.Month },\r\n { name: 'Giorni', value: ClipperRecurrenceType.Day }\r\n]\r\n\r\nexport enum ClipperSelectionMode {\r\n None = 0,\r\n Single = 1,\r\n TwoOrMore = 2,\r\n Multi = 3\r\n}\r\n\r\n\r\n\r\nexport enum ClipperModuleGroup {\r\n Home = 0,\r\n NormativaVigente = 1,\r\n UltimeNovità = 2,\r\n ParApprofondire = 3,\r\n DGInfo = 4,\r\n Giurisprudenza = 5,\r\n Calendario = 11,\r\n Archivio = 12,\r\n Evolution = 201,\r\n Ars = 202,\r\n Ricerca = 99\r\n}\r\n\r\nexport enum ClipperModule {\r\n NormativaVigente = 4,\r\n News = 1,\r\n GazzetteBollettiniEFontiDiverse = 2,\r\n Giurisprudenza = 5,\r\n ModificheAbrogazioniERinvii = 3,\r\n ScadenzeESegnalazioni = 12,\r\n AllerteAlimentari = 8,\r\n Approfondimenti = 6,\r\n QuesitiECasiRisolti = 10,\r\n MetodiDiAnalisi = 11,\r\n DGInfo = 61,\r\n Ricerca = 99,\r\n GiurisprudenzaRecente = 18\r\n\r\n}\r\n\r\nexport enum ClipperModel {\r\n Unknown = 0,\r\n AggiornamentoNormativo = 2,\r\n News = 3,\r\n Articoli = 4,\r\n Juris = 5,\r\n Quesiti = 8,\r\n NormativaVigente = 9,\r\n Scadenze = 10,\r\n Coordinamento = 11,\r\n AllerteAlimentari = 13,\r\n MetodiDiAnalisi = 14,\r\n GiurisprudenzaRecente = 18,\r\n Segnalazioni = 20,\r\n UltimeNovità = 21\r\n}\r\n\r\nexport const ClipperModels: NameValueItem<number>[] = [\r\n { value: ClipperModel.AggiornamentoNormativo, name: \"Testi storici\" },\r\n { value: ClipperModel.News, name: 'News' },\r\n { value: ClipperModel.Articoli, name: 'Articoli' },\r\n { value: ClipperModel.Juris, name: 'Note a sentenza' },\r\n { value: ClipperModel.GiurisprudenzaRecente, name: 'Giurisprudenza' },\r\n { value: ClipperModel.Quesiti, name: 'Quesiti' },\r\n { value: ClipperModel.NormativaVigente, name: 'Normativa vigente' },\r\n { value: ClipperModel.Scadenze, name: 'Scadenze' },\r\n { value: ClipperModel.AllerteAlimentari, name: 'Allerte alimentari' },\r\n { value: ClipperModel.Coordinamento, name: 'Modifiche e abrogazioni' },\r\n]\r\n\r\nexport const ClipperModuleGroups: NameValueItem<number>[] = [\r\n { name: \"Ultime novità\", value: ClipperModuleGroup.Home },\r\n { name: \"Ricerca\", value: ClipperModuleGroup.Ricerca },\r\n { name: \"DG Info\", value: ClipperModuleGroup.DGInfo },\r\n { name: \"Calendario\", value: ClipperModuleGroup.Calendario },\r\n { name: \"Archivio\", value: ClipperModuleGroup.Archivio }\r\n];\r\n\r\nexport const ClipperModules: NameValueItem<number>[] = [\r\n { name: 'News, articoli di approfondimento e note a sentenza', shortName: 'Novità', value: ClipperModule.News },\r\n { name: 'Gazzette, Bollettini e fonti diverse', shortName: 'Gazzette, Bollettini e fonti diverse', value: ClipperModule.GazzetteBollettiniEFontiDiverse },\r\n { name: 'Giurisprudenza', shortName: 'Giurisprudenza', value: ClipperModule.Giurisprudenza },\r\n { name: 'Modifiche, abrogazioni e rinvii', shortName: 'Modifiche, abrogazioni e rinvii', value: ClipperModule.ModificheAbrogazioniERinvii },\r\n { name: 'Allerte alimentari', shortName: 'Allerte alimentari', value: ClipperModule.AllerteAlimentari },\r\n { name: 'Scadenze e segnalazioni', shortName: 'Scadenze e segnalazioni', value: ClipperModule.ScadenzeESegnalazioni },\r\n { name: 'Normativa vigente', shortName: 'Normativa vigente', value: ClipperModule.NormativaVigente },\r\n { name: 'Quesiti e casi risolti', shortName: 'Quesiti', value: ClipperModule.QuesitiECasiRisolti },\r\n]\r\n\r\nexport enum ClipperChannel {\r\n None = 0,\r\n LavoroEAmbiente = 1,\r\n SostanzeAlimentari = 2,\r\n MerciPericolose = 3,\r\n Energia = 4,\r\n DGInfo = 5\r\n}\r\n\r\nexport const ClipperChannels: NameValueItem<ClipperChannel>[] = [\r\n { value: ClipperChannel.LavoroEAmbiente, name: \"Lavoro e Ambiente\", header: \"LA\" },\r\n { value: ClipperChannel.SostanzeAlimentari, name: \"Sostanze Alimentari\", header: \"SA\" },\r\n { value: ClipperChannel.Energia, name: \"Energia\", header: \"E\" },\r\n { value: ClipperChannel.MerciPericolose, name: \"Merci Pericolose\", header: \"MP\" }\r\n]\r\n\r\nexport interface ClipperAvailableChannel extends NameValueItem<ClipperChannel> {\r\n active?: boolean;\r\n}\r\n\r\nexport const ClipperRegions: NameValueItem<string>[] = [\r\n {\r\n value: '4RAB',\r\n name: 'Abruzzo',\r\n },\r\n {\r\n value: '4RBA',\r\n name: 'Basilicata',\r\n },\r\n {\r\n value: '4RCAL',\r\n name: 'Calabria',\r\n },\r\n {\r\n value: '4RCAM',\r\n name: 'Campania',\r\n },\r\n {\r\n value: '4REM',\r\n name: 'Emilia Romagna',\r\n },\r\n {\r\n value: '4RFVG',\r\n name: 'Friuli Venezia Giulia',\r\n },\r\n {\r\n value: '4RLA',\r\n name: 'Lazio',\r\n },\r\n {\r\n value: '4RLI',\r\n name: 'Liguria',\r\n },\r\n {\r\n value: '4RLO',\r\n name: 'Lombardia',\r\n },\r\n {\r\n value: '4RMA',\r\n name: 'Marche',\r\n },\r\n {\r\n value: '4RMO',\r\n name: 'Molise',\r\n },\r\n {\r\n value: '4RPI',\r\n name: 'Piemonte',\r\n },\r\n {\r\n value: '4RPU',\r\n name: 'Puglia',\r\n },\r\n {\r\n value: '4RSA',\r\n name: 'Sardegna',\r\n },\r\n {\r\n value: '4RSI',\r\n name: 'Sicilia',\r\n },\r\n {\r\n value: '4RTO',\r\n name: 'Toscana',\r\n },\r\n {\r\n value: '4RTAA',\r\n name: 'Trentino Alto Adige',\r\n },\r\n {\r\n value: '4RUM',\r\n name: 'Umbria',\r\n },\r\n {\r\n value: '4RVA',\r\n name: \"Valle D'Aosta\",\r\n },\r\n {\r\n value: '4RVE',\r\n name: 'Veneto',\r\n },\r\n {\r\n value: '4PAT',\r\n name: 'Prov. Aut. Trento',\r\n },\r\n {\r\n value: '4PAB',\r\n name: 'Prov. Aut. Bolzano',\r\n }\r\n]\r\n\r\nexport interface SectorInfo extends NameValueItem<string> {\r\n\r\n group?: string;\r\n channels?: string;\r\n sectorId?: string;\r\n}\r\n\r\nexport const ClipperSectors: SectorInfo[] = [\r\n {\r\n value: 'LC',\r\n name: 'Legislazione comunitaria',\r\n shortName: 'Comunitaria',\r\n group: 'S',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: 'LN',\r\n name: 'Legislazione nazionale',\r\n shortName: 'Nazionale',\r\n group: 'S',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n\r\n {\r\n value: 'LR',\r\n name: 'Legislazione regionale',\r\n shortName: 'Regionale',\r\n group: 'S',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: '4RAB',\r\n name: ' Abruzzo',\r\n group: 'A',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: '4PAB',\r\n name: ' Prov. Aut. Bolzano',\r\n group: 'A',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: '4RBA',\r\n name: ' Basilicata',\r\n group: 'A',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: '4RCAL',\r\n name: ' Calabria',\r\n group: 'A',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: '4RCAM',\r\n name: ' Campania',\r\n group: 'A',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: '4REM',\r\n name: ' Emilia Romagna',\r\n group: 'A',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: '4RFVG',\r\n name: ' Friuli Venezia Giulia',\r\n group: 'A',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: '4RLA',\r\n name: ' Lazio',\r\n group: 'A',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: '4RLI',\r\n name: ' Liguria',\r\n group: 'A',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: '4RLO',\r\n name: ' Lombardia',\r\n group: 'A',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: '4RMA',\r\n name: ' Marche',\r\n group: 'A',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: '4RMO',\r\n name: ' Molise',\r\n group: 'A',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: '4RPI',\r\n name: ' Piemonte',\r\n group: 'A',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: '4RPU',\r\n name: ' Puglia',\r\n group: 'A',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: '4RSA',\r\n name: ' Sardegna',\r\n group: 'A',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: '4RSI',\r\n name: ' Sicilia',\r\n group: 'A',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: '4RTO',\r\n name: ' Toscana',\r\n group: 'A',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: '4RTAA',\r\n name: ' Trentino Alto Adige',\r\n group: 'A',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: '4PAT',\r\n name: ' Prov. Aut. Trento',\r\n group: 'A',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: '4RUM',\r\n name: ' Umbria',\r\n group: 'A',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: '4RVA',\r\n name: \" Valle D'Aosta\",\r\n group: 'A',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: '4RVE',\r\n name: ' Veneto',\r\n group: 'A',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: 'GC',\r\n name: 'Giurisprudenza comunitaria',\r\n shortName: 'Giur. comunitaria',\r\n group: 'S',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: 'GN',\r\n name: 'Giurisprudenza nazionale',\r\n shortName: 'Giur. nazionale',\r\n group: 'S',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: 'TN',\r\n name: 'Normativa tecnica',\r\n shortName: 'Tecnica',\r\n group: 'S',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n /* {\r\n value: 'TI',\r\n name: 'Normativa tecnica internazionale',\r\n shortName: 'Tecnica internaz.',\r\n group: 'S',\r\n channels: '|LA|SA|OP|E|',\r\n },*/\r\n {\r\n value: 'NI',\r\n name: 'Normativa internazionale',\r\n shortName: 'Internazionale',\r\n group: 'S',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n /* {\r\n value: 'SN',\r\n name: 'Documentazione scientifica',\r\n shortName: 'Scientifica',\r\n group: 'S',\r\n channels: '|SA|',\r\n } */\r\n]\r\n\r\nexport const ClipperSectorTypes: NameValueItem<string>[] = [\r\n\r\n {\r\n parentValue: 'NI',\r\n value: '14',\r\n name: 'Convenzione Internazionale',\r\n },\r\n {\r\n parentValue: 'NI',\r\n value: '6',\r\n name: 'Accordo Multilaterale',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '4',\r\n name: 'Accordo (naz.)',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '75',\r\n name: 'Altri documenti (naz.)',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '17',\r\n name: 'Circolare Commissariale',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '58',\r\n name: 'Circolare (Comitati)',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '10',\r\n name: 'Circolare Ministeriale',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '13',\r\n name: 'Comunicato (naz.)',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '15',\r\n name: 'Costituzione della Repubblica',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '18',\r\n name: 'Decreto Commissariale',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '21',\r\n name: 'Decreto Capo Provv. Stato',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '22',\r\n name: 'Decreto Pres. Cons. Ministri',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '25',\r\n name: 'Decreto Presidente Repubblica',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '27',\r\n name: 'Decreto Legge',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '28',\r\n name: 'Decreto Legge Luogotenenziale',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '29',\r\n name: 'D.Lgs. Capo Provv. Stato',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '30',\r\n name: 'D.Lgs. Governo',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '32',\r\n name: 'D.Lgs. Luogotenenziale',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '33',\r\n name: 'Decreto Luogotenenziale',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '34',\r\n name: 'Decreto Ministeriale',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '35',\r\n name: 'Deliberazione (naz.)',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '47',\r\n name: 'Determinazione (naz.)',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '26',\r\n name: 'Documento di consultazione',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '48',\r\n name: 'Legge',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '42',\r\n name: 'Lettera Circolare (Comitati)',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '43',\r\n name: 'Lettera Circolare Ministeriale',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '56',\r\n name: 'Nota Ministeriale',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '91',\r\n name: 'Ordinanza Commissariale',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '82',\r\n name: 'Ordinanza Pres. Cons. Ministri',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '57',\r\n name: 'Ordinanza Ministeriale',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '76',\r\n name: 'Provvedimento (naz.)',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '66',\r\n name: 'Regio Decreto',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '67',\r\n name: 'Regio Decreto Legge',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '68',\r\n name: 'Regio Decreto Legislativo',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '71',\r\n name: 'Statuto delle Regioni Ordinarie',\r\n },\r\n {\r\n parentValue: 'LC',\r\n value: '139',\r\n name: 'Accordi (CE)',\r\n },\r\n {\r\n parentValue: 'LC',\r\n value: '140',\r\n name: 'Atti diversi (CE/UE)',\r\n },\r\n {\r\n parentValue: 'LC',\r\n value: '131',\r\n name: 'Posizione Comune (CE)',\r\n },\r\n {\r\n parentValue: 'LC',\r\n value: '132',\r\n name: 'Posizione Comune (UE)',\r\n },\r\n {\r\n parentValue: 'LC',\r\n value: '126',\r\n name: 'Comunicazione (CE)',\r\n },\r\n {\r\n parentValue: 'LC',\r\n value: '127',\r\n name: 'Comunicazione (UE)',\r\n },\r\n {\r\n parentValue: 'LC',\r\n value: '111',\r\n name: 'Decisione (CE)',\r\n },\r\n {\r\n parentValue: 'LC',\r\n value: '112',\r\n name: 'Decisione (UE)',\r\n },\r\n {\r\n parentValue: 'LC',\r\n value: '113',\r\n name: 'Decisione (UE)',\r\n },\r\n {\r\n parentValue: 'LC',\r\n value: '121',\r\n name: 'Direttiva (CEE)',\r\n },\r\n {\r\n parentValue: 'LC',\r\n value: '122',\r\n name: 'Direttiva (CE)',\r\n },\r\n {\r\n parentValue: 'LC',\r\n value: '123',\r\n name: 'Direttiva (UE)',\r\n },\r\n {\r\n parentValue: 'LC',\r\n value: '138',\r\n name: 'Parere',\r\n },\r\n {\r\n parentValue: 'LC',\r\n value: '128',\r\n name: 'Raccomandazione (CEE)',\r\n },\r\n {\r\n parentValue: 'LC',\r\n value: '129',\r\n name: 'Raccomandazione (CE)',\r\n },\r\n {\r\n parentValue: 'LC',\r\n value: '130',\r\n name: 'Raccomandazione (UE)',\r\n },\r\n {\r\n parentValue: 'LC',\r\n value: '116',\r\n name: 'Regolamento (CEE)',\r\n },\r\n {\r\n parentValue: 'LC',\r\n value: '117',\r\n name: 'Regolamento (CE)',\r\n },\r\n {\r\n parentValue: 'LC',\r\n value: '118',\r\n name: 'Regolamento (UE)',\r\n },\r\n {\r\n parentValue: 'LC',\r\n value: '135',\r\n name: 'Rettifica',\r\n },\r\n {\r\n parentValue: 'LC',\r\n value: '133',\r\n name: 'Risoluzione',\r\n },\r\n {\r\n parentValue: 'LC',\r\n value: '134',\r\n name: 'Trattato',\r\n },\r\n {\r\n parentValue: 'LR',\r\n value: '69',\r\n name: 'Altri documenti (reg.)',\r\n },\r\n {\r\n parentValue: 'LR',\r\n value: '11',\r\n name: 'Circolare Pres. Giunta Reg.',\r\n },\r\n {\r\n parentValue: 'LR',\r\n value: '46',\r\n name: \"Circolare dell'Assessore\",\r\n },\r\n {\r\n parentValue: 'LR',\r\n value: '83',\r\n name: 'Circolare reg.',\r\n },\r\n {\r\n parentValue: 'LR',\r\n value: '70',\r\n name: 'Comunicato (reg.)',\r\n },\r\n {\r\n parentValue: 'LR',\r\n value: '80',\r\n name: 'Decreto del Dirigente',\r\n },\r\n {\r\n parentValue: 'LR',\r\n value: '24',\r\n name: 'Decreto Pres. Giunta Prov.',\r\n },\r\n {\r\n parentValue: 'LR',\r\n value: '23',\r\n name: 'Decreto Pres. Giunta Reg.',\r\n },\r\n {\r\n parentValue: 'LR',\r\n value: '19',\r\n name: \"Decreto dell'Assessore Regionale\",\r\n },\r\n {\r\n parentValue: 'LR',\r\n value: '31',\r\n name: 'Delib. Consiglio Prov.',\r\n },\r\n {\r\n parentValue: 'LR',\r\n value: '36',\r\n name: 'Delib. Consiglio Reg.',\r\n },\r\n {\r\n parentValue: 'LR',\r\n value: '37',\r\n name: 'Delib. Giunta Prov.',\r\n },\r\n {\r\n parentValue: 'LR',\r\n value: '38',\r\n name: 'Delib. Giunta Reg.',\r\n },\r\n {\r\n parentValue: 'LR',\r\n value: '81',\r\n name: 'Determinazione del Dirigente',\r\n },\r\n {\r\n parentValue: 'LR',\r\n value: '12',\r\n name: 'Direttiva (reg.)',\r\n },\r\n {\r\n parentValue: 'LR',\r\n value: '49',\r\n name: 'Legge Prov. Aut.',\r\n },\r\n {\r\n parentValue: 'LR',\r\n value: '50',\r\n name: 'Legge Regionale',\r\n },\r\n {\r\n parentValue: 'LR',\r\n value: '51',\r\n name: 'Linee guida (reg.)',\r\n },\r\n {\r\n parentValue: 'LR',\r\n value: '9',\r\n name: 'Ordinanza Pres. Prov.',\r\n },\r\n {\r\n parentValue: 'LR',\r\n value: '55',\r\n name: 'Ordinanza Pres. Reg.',\r\n },\r\n {\r\n parentValue: 'LR',\r\n value: '85',\r\n name: 'Provvedimento (reg.)',\r\n },\r\n {\r\n parentValue: 'LR',\r\n value: '65',\r\n name: 'Regolamento Regionale',\r\n },\r\n {\r\n parentValue: 'GN',\r\n value: '63',\r\n name: 'Decisione',\r\n },\r\n {\r\n parentValue: 'GN',\r\n value: '41',\r\n name: 'Decreto Penale',\r\n },\r\n {\r\n parentValue: 'GN',\r\n value: '54',\r\n name: 'Ordinanza',\r\n },\r\n {\r\n parentValue: 'GN',\r\n value: '62',\r\n name: 'Ricorso',\r\n },\r\n {\r\n parentValue: 'GN',\r\n value: '72',\r\n name: 'Sentenza',\r\n },\r\n {\r\n parentValue: 'GC',\r\n value: '143',\r\n name: 'Ordinanza (CE)',\r\n },\r\n {\r\n parentValue: 'GC',\r\n value: '144',\r\n name: 'Ordinanza (UE)',\r\n },\r\n {\r\n parentValue: 'GC',\r\n value: '141',\r\n name: 'Sentenza (CE)',\r\n },\r\n {\r\n parentValue: 'GC',\r\n value: '142',\r\n name: 'Sentenza (UE)',\r\n },\r\n {\r\n parentValue: 'TN',\r\n value: '73',\r\n name: 'Altri documenti (Enti ed Istituti)',\r\n },\r\n {\r\n parentValue: 'TN',\r\n value: '44',\r\n name: 'Circolare (Enti ed Istituti)',\r\n },\r\n {\r\n parentValue: 'TN',\r\n value: '20',\r\n name: 'Comunicato (Enti ed Istituti)',\r\n },\r\n {\r\n parentValue: 'TN',\r\n value: '60',\r\n name: 'Decreto (Enti ed Istituti)',\r\n },\r\n {\r\n parentValue: 'TN',\r\n value: '40',\r\n name: 'Delibera (Enti ed Istituti)',\r\n },\r\n {\r\n parentValue: 'TN',\r\n value: '53',\r\n name: 'Fascicolo (Enti ed Istituti)',\r\n },\r\n {\r\n parentValue: 'TN',\r\n value: '45',\r\n name: 'Istruzione Tecnica',\r\n },\r\n {\r\n parentValue: 'TN',\r\n value: '59',\r\n name: 'Lettera Circolare (Enti ed Istituti)',\r\n },\r\n {\r\n parentValue: 'TN',\r\n value: '79',\r\n name: 'Linee guida (Enti ed Istituti)',\r\n },\r\n {\r\n parentValue: 'TN',\r\n value: '98',\r\n name: 'Norma Tecnica',\r\n },\r\n {\r\n parentValue: 'TN',\r\n value: '97',\r\n name: 'Opuscolo Tecnico',\r\n },\r\n {\r\n parentValue: 'TN',\r\n value: '77',\r\n name: 'Pubblicazione (Enti ed Istituti)',\r\n },\r\n {\r\n parentValue: 'TN',\r\n value: '86',\r\n name: 'Quaderno',\r\n },\r\n {\r\n parentValue: 'TN',\r\n value: '52',\r\n name: 'Regolamento (Enti ed Istituti)',\r\n },\r\n {\r\n parentValue: 'TN',\r\n value: '84',\r\n name: 'Istruzione Operativa (Enti e Istituti)',\r\n },\r\n {\r\n parentValue: 'TN',\r\n value: '94',\r\n name: 'Nota (Enti e Istituti)',\r\n },\r\n {\r\n parentValue: 'NI',\r\n value: '104',\r\n name: 'Regolamento UNECE',\r\n },\r\n {\r\n parentValue: 'SN',\r\n value: '105',\r\n name: 'Documento',\r\n },\r\n {\r\n parentValue: 'TN',\r\n value: '106',\r\n name: 'Direttiva (Enti e Istituti)',\r\n },\r\n {\r\n parentValue: 'TN',\r\n value: '74',\r\n name: 'Prassi di riferimento',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '16',\r\n name: 'Linee guida (naz.)',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '3',\r\n name: 'Direttiva (naz.)',\r\n },\r\n /* {\r\n parentValue: 'TI',\r\n value: '107',\r\n name: 'Normativa Tecnica Internazionale',\r\n },*/\r\n]\r\n\r\nexport const ClipperAuthors: SectorInfo[] = [\r\n {\r\n sectorId: 'LR',\r\n channels: undefined,\r\n value: '4RAB',\r\n name: 'Abruzzo',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: undefined,\r\n value: '4RBA',\r\n name: 'Basilicata',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: undefined,\r\n value: '4RCAL',\r\n name: 'Calabria',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: undefined,\r\n value: '4RCAM',\r\n name: 'Campania',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: undefined,\r\n value: '4REM',\r\n name: 'Emilia Romagna',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: undefined,\r\n value: '4RFVG',\r\n name: 'Friuli Venezia Giulia',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: undefined,\r\n value: '4RLA',\r\n name: 'Lazio',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: undefined,\r\n value: '4RLI',\r\n name: 'Liguria',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: undefined,\r\n value: '4RLO',\r\n name: 'Lombardia',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: undefined,\r\n value: '4RMA',\r\n name: 'Marche',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: undefined,\r\n value: '4RMO',\r\n name: 'Molise',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: undefined,\r\n value: '4RPI',\r\n name: 'Piemonte',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: undefined,\r\n value: '4RPU',\r\n name: 'Puglia',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: undefined,\r\n value: '4RSA',\r\n name: 'Sardegna',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: undefined,\r\n value: '4RSI',\r\n name: 'Sicilia',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: undefined,\r\n value: '4RTO',\r\n name: 'Toscana',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: undefined,\r\n value: '4RTAA',\r\n name: 'Trentino Trentino Alto Adige',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: undefined,\r\n value: '4RUM',\r\n name: 'Umbria',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: undefined,\r\n value: '4RVA',\r\n name: \"Valle D'Aosta\",\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: undefined,\r\n value: '4RVE',\r\n name: 'Veneto',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: undefined,\r\n value: '4PAB',\r\n name: 'Prov. Autonoma di Bolzano',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: undefined,\r\n value: '4PAT',\r\n name: 'Prov. Autonoma di Trento',\r\n },\r\n {\r\n sectorId: 'TN',\r\n channels: '|LA|',\r\n value: '6CEI',\r\n name: 'C.E.I. - Comitato Elettrotecnico Italiano',\r\n },\r\n {\r\n sectorId: 'TN',\r\n channels: '|LA|SA|',\r\n value: '6CNR',\r\n name: 'C.N.R. - Consiglio Nazionale delle Ricerche',\r\n },\r\n {\r\n sectorId: 'TN',\r\n channels: '|LA|',\r\n value: '6ENPI',\r\n name: 'E.N.P.I. - Ente Nazionale Prevenzione Infortuni',\r\n },\r\n {\r\n sectorId: 'TN',\r\n channels: '|LA|',\r\n value: '6INAI',\r\n name:\r\n 'I.N.A.I.L. - Istituto nazionale Assicurazione Infortuni sul Lavoro',\r\n },\r\n {\r\n sectorId: 'TN',\r\n channels: '|LA|',\r\n value: '6ISPS',\r\n name:\r\n 'I.S.P.E.S.L. - Istituto Superiore per la Prevenzione e la Sicurezza del Lavoro',\r\n },\r\n {\r\n sectorId: 'TN',\r\n channels: '|LA|',\r\n value: '6INPS',\r\n name: 'I.N.P.S. - Istituto Nazionale Previdenza Sociale',\r\n },\r\n {\r\n sectorId: 'TN',\r\n channels: '|LA|SA|',\r\n value: '6ISS',\r\n name: 'I.S.S. - Istituto Superiore di Sanità',\r\n },\r\n {\r\n sectorId: 'TN',\r\n channels: '|LA|SA|',\r\n value: '6UNI',\r\n name: 'U.N.I. - Ente Nazionale Italiano di Unificazione',\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: undefined,\r\n value: '5CC',\r\n name: 'Corte Costituzionale',\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: undefined,\r\n value: '5CCC',\r\n name: 'Corte di Cassazione Civile',\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: undefined,\r\n value: '5CCP',\r\n name: 'Corte di Cassazione Penale',\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: undefined,\r\n value: '5CASA',\r\n name: \"Corte d'Assise d'Appello\",\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: undefined,\r\n value: '5CAS',\r\n name: \"Corte d'Assise\",\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: undefined,\r\n value: '5CA',\r\n name: \"Corte d'Appello\",\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: undefined,\r\n value: '5PCA',\r\n name: \"Procura Generale Corte d'Appello\",\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: undefined,\r\n value: '5GDP',\r\n name: 'Giudice di Pace',\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: undefined,\r\n value: '5PR',\r\n name: 'Procura della Repubblica',\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: undefined,\r\n value: '5T',\r\n name: 'Tribunale',\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: undefined,\r\n value: '5P',\r\n name: 'Pretura',\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: undefined,\r\n value: '5CDS',\r\n name: 'Consiglio di Stato',\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: undefined,\r\n value: '5TAR',\r\n name: 'Tribunale Amministrativo Regionale',\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: undefined,\r\n value: '5TSA',\r\n name: 'Tribunale Superiore delle Acque',\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: undefined,\r\n value: '5TGA',\r\n name: 'Tribunale Regionale acque',\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: undefined,\r\n value: '5CTP',\r\n name: 'Commissione Tributaria Provinciale',\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: undefined,\r\n value: '5CTR',\r\n name: 'Commissione Tributaria Regionale',\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: undefined,\r\n value: '5CGAS',\r\n name: 'Cons. di Giustizia Amm.va della Sicilia',\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: undefined,\r\n value: '5CDC',\r\n name: 'Corte dei Conti',\r\n },\r\n {\r\n sectorId: 'GC',\r\n channels: undefined,\r\n value: '3CJCE',\r\n name: 'Corte di Giustizia CEE/CE',\r\n },\r\n {\r\n sectorId: 'GC',\r\n channels: undefined,\r\n value: '3CEDM',\r\n name: \"Corte Europea per i Diritti dell'Uomo\",\r\n },\r\n {\r\n sectorId: 'GC',\r\n channels: undefined,\r\n value: '3CWJ',\r\n name: 'Corte Internazionale di Giustizia',\r\n },\r\n {\r\n sectorId: 'GC',\r\n channels: undefined,\r\n value: '3T1CE',\r\n name: 'Tribunale di Primo Grado CEE/CE',\r\n }\r\n]\r\n\r\nexport const ClipperSources: NameValueItem<string>[] = [\r\n {\r\n value: 'ACCML',\r\n name: 'Accordi Multilaterali',\r\n },\r\n {\r\n value: 'AEEG',\r\n name: \"Sito Autorità per l'Energia Elettrica, il Gas e il Sistema Idrico\",\r\n },\r\n {\r\n value: 'ARERA',\r\n name: 'Sito Autorità di Regolazione per Energia, Reti e Ambiente',\r\n },\r\n {\r\n value: 'BUR',\r\n name: 'Bollettino Uff. Regione',\r\n },\r\n {\r\n value: 'BUS',\r\n name: 'Suppl. speciale al Bollettino Uff.',\r\n },\r\n {\r\n value: 'BUSO',\r\n name: 'Suppl. ordin. al Bollettino Uff.',\r\n },\r\n {\r\n value: 'BUSS',\r\n name: 'Suppl. straord. al Bollettino Uff.',\r\n },\r\n {\r\n value: 'GU',\r\n name: 'Gazzetta Ufficiale Italiana',\r\n },\r\n {\r\n value: 'GUCC',\r\n name: 'Gazz. Uff. Corte Costituzionale',\r\n },\r\n {\r\n value: 'GUCE',\r\n name: 'Gazzetta ufficiale delle Comunità europee',\r\n },\r\n {\r\n value: 'GUES',\r\n name: 'Gazz. Uff. Ediz. Speciale',\r\n },\r\n {\r\n value: 'GURS',\r\n name: 'Gazz. Uff. Regione Sicilia',\r\n },\r\n {\r\n value: 'GUS',\r\n name: 'Gazz. Uff. Serie Speciale',\r\n },\r\n {\r\n value: 'GUSO',\r\n name: 'Suppl. ordin. alla Gazzetta Ufficiale',\r\n },\r\n {\r\n value: 'GUSS',\r\n name: 'Suppl. straord. alla Gazzetta Ufficiale',\r\n },\r\n {\r\n value: 'GUUE',\r\n name: 'Gazzetta ufficiale dell’Unione europea',\r\n },\r\n {\r\n value: 'MAC',\r\n name: 'Massimario Civile',\r\n },\r\n {\r\n value: 'MAP',\r\n name: 'Massimario Penale',\r\n },\r\n {\r\n value: 'NONE',\r\n name: 'Fonti diverse',\r\n }\r\n]\r\n\r\nexport class ClipperUpdateChannelsStateParams {\r\n activeChannels: ClipperChannel[] = [];\r\n}\r\n\r\nexport interface ClipperChannelSettingsItem<T> {\r\n name: string;\r\n value: T;\r\n checked: boolean;\r\n}\r\n\r\nexport class ClipperChannelSettings {\r\n channelId?: ClipperChannel;\r\n channelName?: string;\r\n isEnabled?: boolean = false;\r\n isActive?: boolean = false;\r\n sectors: ClipperChannelSettingsItem<string>[] = [];\r\n regions: ClipperChannelSettingsItem<string>[] = [];\r\n\r\n /**\r\n * Check at least one of sector values is contained in sectors list\r\n * @param values : the admitted values\r\n * @returns true if at least one value has been found\r\n */\r\n hasAnyOfSectors(values: string[]): boolean {\r\n if (this.isEnabled === true && this.isActive === true) {\r\n for (let i = 0; i < values.length; i++) {\r\n if (this.sectors.filter(n => n.value === values[i])?.length > 0) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n /**\r\n * Check at least one of region values is contained in regions list\r\n * @param values : the admitted values\r\n * @returns true if at least one value has been found\r\n */\r\n hasAnyOfRegions(values: string[]): boolean {\r\n if (this.isEnabled === true && this.isActive === true) {\r\n for (let i = 0; i < values.length; i++) {\r\n if (this.regions.filter(n => n.value === values[i])?.length > 0) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n}\r\n\r\nexport interface ClipperUserChannelInfo {\r\n channel: ClipperChannel;\r\n channelName?: string;\r\n expiringDate: string;\r\n isTrial?: boolean;\r\n isDisabled: boolean;\r\n isDvd: boolean;\r\n isActive: boolean;\r\n documentsViewable?: number;\r\n documentsViewed?: number;\r\n settings?: ClipperChannelSettings;\r\n}\r\n\r\nexport interface ClipperUserInfo {\r\n userId: number;\r\n customerId?: number;\r\n companyName: string;\r\n displayName: string;\r\n firstName: string;\r\n email: string;\r\n OAUTH?: boolean;\r\n sessionId?: string;\r\n scope: number;\r\n isAuthenticated: boolean;\r\n isTemporary: boolean;\r\n hasTrial: boolean;\r\n hasTeam: boolean;\r\n hasAI: boolean;\r\n hasAIAssistant: boolean;\r\n hasAIEditor: boolean;\r\n channels: ClipperUserChannelInfo[];\r\n firstChannelTrial: ClipperUserChannelInfo;\r\n trialInfo?: ClipperUserTrialInfo;\r\n}\r\n\r\nexport enum ClipperLoginFlags {\r\n None = 0,\r\n RememberCredentials = 1,\r\n DisableMfa = 1 << 1,\r\n ExtendMfaValidity = 1 << 2,\r\n ExtendRememberCredentialsValidity = 1 << 3,\r\n}\r\n\r\nexport interface ClipperLoginResult extends LoginResult<ClipperUserInfo> {\r\n settings?: ClipperChannelSettings[];\r\n}\r\n\r\nexport interface ClipperLoginInfo {\r\n context?: ClipperUserInfo;\r\n complianceContext?: any;\r\n channels?: ClipperChannelSettings[];\r\n oauth?: LoginOAuthType;\r\n}\r\n\r\nexport class ClipperSearchParams {\r\n version: number = 6;\r\n searchId?: number;\r\n searchName?: string;\r\n text?: string;\r\n augmentedText?: string;\r\n title?: string;\r\n titleOnly?: boolean = false;\r\n showUnreadDocumentsOnly?: boolean = false;\r\n showCommentedDocumentsOnly?: boolean = false;\r\n showNotAbrogatedDocumentsOnly?: boolean = false;\r\n expandTextQueryUsingAI?: boolean = false;\r\n number?: string;\r\n fromDate?: Date;\r\n toDate?: Date;\r\n year?: number;\r\n sourceNumber?: string;\r\n source?: string;\r\n sourceFromDate?: Date;\r\n sourceToDate?: Date;\r\n sourceYear?: number;\r\n sector?: string;\r\n sectors?: SectorInfo[];\r\n topic?: string;\r\n topics?: NameValueItem<string>[];\r\n taxonomy?: string;\r\n taxonomies?: NameValueItem<string>[];\r\n taxonomyPath?: string;\r\n taxonomyNode?: string;\r\n type?: string;\r\n types?: NameValueItem<string>[];\r\n tag?: string;\r\n tags?: NameValueItem<string>[];\r\n author?: string;\r\n authors?: NameValueItem<string>[];\r\n changeReason?: number;\r\n changedNumber?: string;\r\n changedYear?: number;\r\n changedTitle?: string;\r\n changedId?: string;\r\n modifierId?: string;\r\n modifierNumber?: string;\r\n modifierYear?: number;\r\n modifierTitle?: string;\r\n model?: ClipperModel;\r\n models?: ClipperModel[];\r\n module?: ClipperModule;\r\n modules?: NameValueItem<ClipperModule>[];\r\n mode?: ClipperQueryReferencesMode;\r\n channels?: NameValueItem<ClipperChannel>[] = [...ClipperChannels];\r\n count?: number = 15;\r\n id?: string;\r\n anchor?: string;\r\n excludeTextReferences?: boolean = false;\r\n excludeNotesReferences?: boolean = false;\r\n useModifierInfo?: boolean = false;\r\n returnModifierInfo?: boolean = false;\r\n first?: number = 0;\r\n sortMode?: number;\r\n}\r\n\r\nexport interface ClipperReferencesSearchParams {\r\n documentId: string;\r\n year?: number;\r\n sector?: string;\r\n author?: string;\r\n anchor?: string;\r\n model?: string;\r\n mode?: ClipperQueryReferencesMode;\r\n excludeTextReferences?: boolean;\r\n excludeNotesReferences?: boolean;\r\n useModifierInfo?: boolean;\r\n returnModifierInfo?: boolean;\r\n count?: number;\r\n first?: number;\r\n}\r\n\r\nexport enum ClipperDocumentContainer {\r\n None = 0,\r\n LavoroEAmbiente = 1,\r\n SostanzeAlimentari = 2,\r\n OrangeProject = 4,\r\n Energia = 8,\r\n DGInfo = 0x10,\r\n DLGS231 = 0x20,\r\n All = 0x3F\r\n}\r\n\r\nexport const ClipperDocumentChangeReasons: NameValueItem<number>[] = [\r\n { name: 'Abrogazione', value: 1 },\r\n { name: 'Annullamento', value: 5 },\r\n { name: 'Modifica', value: 2 },\r\n { name: 'Sostiuzione', value: 3 },\r\n { name: 'Segnalazione', value: 6 },\r\n { name: 'Rettifica', value: 7 },\r\n]\r\n\r\nexport interface ClipperDocumentAnchorInfo {\r\n documentId: string;\r\n type: number;\r\n typeDescription: string;\r\n text: string;\r\n title?: string;\r\n description?: string;\r\n uri: string;\r\n ordinal?: string;\r\n score?: number;\r\n veryRelevant?: boolean;\r\n value?: string;\r\n level?: number;\r\n}\r\n\r\nexport interface ClipperDocumentRelevants {\r\n items: ClipperDocumentAnchorInfo[];\r\n hits: number;\r\n hit: number;\r\n minimumScore: number;\r\n}\r\n\r\nexport interface ClipperDocumentInfo {\r\n id?: string;\r\n documentId?: string;\r\n documentCode?: string;\r\n model?: number;\r\n modelName?: string;\r\n module?: number;\r\n moduleName?: string;\r\n channelName?: string;\r\n group?: string;\r\n title2?: string;\r\n title1?: string;\r\n tags?: string;\r\n topics?: string;\r\n number?: string;\r\n date?: Date;\r\n description?: string;\r\n publishingDate?: Date;\r\n pictureId?: string;\r\n sourceNumber?: string;\r\n sourceDate?: Date;\r\n source?: string;\r\n sector?: string;\r\n origin?: string;\r\n originDescription?: string;\r\n author?: string;\r\n anchors?: ClipperDocumentAnchorInfo[];\r\n taxonomy?: string;\r\n info?: string;\r\n isRead?: boolean;\r\n isExportable?: boolean;\r\n isCommented?: boolean;\r\n isJuris?: boolean;\r\n isOver?: boolean;\r\n isTrial?: boolean;\r\n isNew?: boolean;\r\n isExpired?: boolean;\r\n isExpiring?: boolean;\r\n isMenuOpen?: boolean;\r\n applicableFromDate?: Date;\r\n validityState?: number;\r\n validFromDate?: Date;\r\n validUntilDate?: Date;\r\n validityDescription?: string;\r\n validityInfo?: string;\r\n expiringDate?: Date;\r\n expiringDescription?: string;\r\n expiringInfo?: string;\r\n popularity?: number;\r\n part?: number;\r\n primaryId?: string;\r\n primaryDescription?: string;\r\n primaryModel?: number;\r\n hasPrimary?: boolean;\r\n secondaryId?: string;\r\n bag?: any;\r\n lastUpdate?: string;\r\n\r\n}\r\n\r\nexport class ClipperSearchResult {\r\n days?: string;\r\n interval?: string;\r\n items?: ClipperDocumentInfo[];\r\n facets?: ClipperSearchFacetsSnapshot = new ClipperSearchFacetsSnapshot();\r\n tags?: NameValueItem<string>[];\r\n total?: number;\r\n terms?: string[];\r\n searchInfo?: any;\r\n searchParams?: ClipperSearchParams = new ClipperSearchParams();\r\n snapshotMode?: ClipperQueryReferencesMode;\r\n}\r\n\r\nexport interface ClipperSearchFacet {\r\n type: number;\r\n typeName: string;\r\n title: string;\r\n value: string;\r\n count: number;\r\n}\r\n\r\nexport interface ClipperSearchFacetGroup {\r\n name: string;\r\n selectedValue?: string;\r\n selectedValueDescription?: string;\r\n values: ClipperSearchFacet[];\r\n index: number;\r\n}\r\n\r\nexport interface ClipperSearchFacetsResult {\r\n interval?: string;\r\n facets?: ClipperSearchFacet[][];\r\n total?: number;\r\n}\r\n\r\n\r\nexport class ClipperSearchFacetsSnapshot {\r\n groups: ClipperSearchFacetGroup[] = [];\r\n usedGroups: ClipperSearchFacetGroup[] = [];\r\n hasFacets: boolean = false;\r\n hasMoreFacets: boolean = false;\r\n hasTooManyResults: boolean = false;\r\n sector?: string;\r\n author?: string;\r\n anchor?: string;\r\n type?: string;\r\n reason?: string;\r\n fromDate?: Date;\r\n toDate?: Date;\r\n interval?: string;\r\n changedInterval: boolean = false;\r\n changedSector: boolean = false;\r\n changedAuthor: boolean = false;\r\n changedAnchor: boolean = false;\r\n changedType: boolean = false;\r\n changedReason: boolean = false;\r\n}\r\n\r\nexport interface ClipperSearchCalendarSnapshotMonth {\r\n days: number[];\r\n monthShortName: string;\r\n monthName: string;\r\n month: number;\r\n year: number;\r\n total: number;\r\n expired: number;\r\n expiring: number;\r\n}\r\n\r\nexport class ClipperSearchCalendarSnapshotResult {\r\n months?: ClipperSearchCalendarSnapshotMonth[];\r\n}\r\n\r\n\r\n\r\nexport enum ClipperSort {\r\n Default = 0,\r\n Relevance = 1,\r\n DateAsc = 2,\r\n DateDesc = 3,\r\n SourceDateAsc = 7,\r\n SourceDateDesc = 8,\r\n Popularity = 5\r\n}\r\n\r\nexport enum ClipperQueryReferencesMode {\r\n ReferencesIn = 1,\r\n ReferencesOut = 2,\r\n ChangesIn = 3,\r\n ChangesOut = 5,\r\n Juris = 4\r\n}\r\n\r\nexport enum ClipperFacet {\r\n Sector = 1,\r\n Year = 2,\r\n DocumentType = 3,\r\n Topic = 4,\r\n Article = 5,\r\n Author = 6,\r\n Reason = 95\r\n}\r\n\r\nexport interface ClipperOTPInfo {\r\n code: string;\r\n canPreview?: boolean;\r\n canEmbed?: boolean;\r\n}\r\n\r\nexport enum ClipperExportDocumentsFormat {\r\n Deafault = 1,\r\n iCalendar = 2\r\n}\r\n\r\nexport interface ClipperExportDocumentsParams {\r\n query: ClipperSearchParams;\r\n ids: string[];\r\n format?: ClipperExportDocumentsFormat;\r\n}\r\n\r\nexport interface ClipperSendDocumentsByEmailParams extends SendToDialogResult {\r\n ids: string[];\r\n public: string;\r\n isCalendar: boolean;\r\n}\r\n\r\nexport interface ClipperDocumentStructure {\r\n id: string;\r\n title: string;\r\n items?: ClipperDocumentAnchorInfo[];\r\n}\r\n\r\n\r\nexport interface ClipperSearchFilter {\r\n container: ClipperDocumentContainer;\r\n models: number[];\r\n sectors: string[];\r\n regions: string[];\r\n notifications: number[];\r\n isEnabled: boolean;\r\n isActive: boolean;\r\n}\r\nexport interface ClipperTaxonomyParams {\r\n countItems: boolean;\r\n model: ClipperModel;\r\n userFilters?: ClipperSearchFilter[];\r\n}\r\n\r\nexport interface ClipperUserSearch {\r\n id?: number;\r\n userId?: number;\r\n name?: string;\r\n module?: ClipperModule;\r\n data?: string;\r\n}\r\n\r\nexport interface ClipperUserWorkingDocument {\r\n userId?: number;\r\n documentId?: string;\r\n documentDescriptor?: string;\r\n title1?: string;\r\n title2?: string;\r\n timestamp?: string;\r\n}\r\n\r\nexport interface ClipperDeleteWorkingDocumentsParams {\r\n documentIds: string[];\r\n deleteAll: boolean;\r\n}\r\n\r\n\r\nexport interface ClipperUserLink {\r\n id?: number;\r\n userId: number;\r\n userName?: string;\r\n key: string;\r\n}\r\n\r\nexport interface ClipperUserTrialInfo {\r\n channelName: string;\r\n expiringDate: Date;\r\n remainingDocuments: number;\r\n}\r\n\r\nexport interface ClipperArsEventInfo {\r\n id: number;\r\n location?: string;\r\n title?: string;\r\n pictureId?: string;\r\n date?: string;\r\n endDate?: string;\r\n startTime?: string;\r\n endTime?: string;\r\n hours?: number;\r\n days?: number;\r\n dateIntervalDescription?: string;\r\n durationDescription?: string;\r\n group?: string;\r\n address?: string;\r\n city?: string;\r\n isOver?: boolean;\r\n}\r\n\r\n\r\n\r\nexport interface ClipperSearchArsEventsParams {\r\n group?: string;\r\n group1?: string;\r\n collectGroups?: boolean;\r\n collectBundles?: boolean;\r\n fromDate?: string;\r\n untilDate?: string;\r\n text?: string;\r\n sortBy?: string;\r\n count: number\r\n}\r\n\r\nexport interface ClipperSearchArsEventsResult {\r\n interval?: string;\r\n items?: ClipperArsEventInfo[];\r\n total?: number;\r\n}\r\n\r\nexport interface ClipperDocumentUpdateStateParams {\r\n documentIds: string[];\r\n isRead: boolean;\r\n}\r\n\r\nexport interface ClipperDashboardModelItem {\r\n id: ClipperModel;\r\n newItems: number;\r\n unreadItems: number;\r\n}\r\n\r\nexport interface ClipperDashboardItem {\r\n id: ClipperModule;\r\n models: ClipperDashboardModelItem[];\r\n newItems: number;\r\n unreadItems: number;\r\n lastUpdated?: string;\r\n}\r\n\r\nexport interface ClipperDashboardResult {\r\n items?: ClipperDashboardItem[];\r\n isTrial?: boolean;\r\n expiredDeadlines?: number;\r\n expiringDeadlines?: number;\r\n documentUpdates?: number;\r\n channels?: ClipperChannelSettings[];\r\n}\r\n\r\nexport class ClipperDashboard {\r\n items = signal<ClipperDashboardItem[]>([]);\r\n isTrial?: boolean = false;\r\n expiredDeadlines?: number;\r\n expiringDeadlines?: number;\r\n documentUpdates?: number;\r\n unreadItems: Signal<[ClipperModule, number][]> = computed(() => {\r\n const states: [ClipperModule, number][] = [];\r\n states.push([ClipperModule.News, this.items().find((x: ClipperDashboardItem) => x.id == ClipperModule.News)?.unreadItems ?? 0]);\r\n states.push([ClipperModule.GazzetteBollettiniEFontiDiverse, this.items().find((x: ClipperDashboardItem) => x.id == ClipperModule.GazzetteBollettiniEFontiDiverse)?.unreadItems ?? 0]);\r\n states.push([ClipperModule.Giurisprudenza, this.items().find((x: ClipperDashboardItem) => x.id == ClipperModule.Giurisprudenza)?.unreadItems ?? 0]);\r\n states.push([ClipperModule.ModificheAbrogazioniERinvii, this.items().find((x: ClipperDashboardItem) => x.id == ClipperModule.ModificheAbrogazioniERinvii)?.unreadItems ?? 0]);\r\n states.push([ClipperModule.AllerteAlimentari, this.items().find((x: ClipperDashboardItem) => x.id == ClipperModule.AllerteAlimentari)?.unreadItems ?? 0]);\r\n states.push([ClipperModule.Approfondimenti, this.items().find((x: ClipperDashboardItem) => x.id == ClipperModule.Approfondimenti)?.unreadItems ?? 0]);\r\n states.push([ClipperModule.QuesitiECasiRisolti, this.items().find((x: ClipperDashboardItem) => x.id == ClipperModule.QuesitiECasiRisolti)?.unreadItems ?? 0]);\r\n return states;\r\n });\r\n unreadItemsByModel: Signal<[ClipperModel, number][]> = computed(() => {\r\n const states: [ClipperModel, number][] = [];\r\n this.items().forEach(item => {\r\n if (item.models) {\r\n item.models.forEach(itemModel => {\r\n states.push([itemModel.id, itemModel.unreadItems]);\r\n });\r\n } else {\r\n if (item.id == ClipperModule.News) {\r\n states.push([ClipperModel.News, item.unreadItems]);\r\n } else if (item.id == ClipperModule.GazzetteBollettiniEFontiDiverse) {\r\n states.push([ClipperModel.AggiornamentoNormativo, item.unreadItems]);\r\n } else if (item.id == ClipperModule.QuesitiECasiRisolti) {\r\n states.push([ClipperModel.Quesiti, item.unreadItems]);\r\n } else if (item.id == ClipperModule.AllerteAlimentari) {\r\n states.push([ClipperModel.AllerteAlimentari, item.unreadItems]);\r\n } else if (item.id == ClipperModule.Approfondimenti) {\r\n states.push([ClipperModel.Articoli, item.unreadItems]);\r\n } else if (item.id == ClipperModule.ModificheAbrogazioniERinvii) {\r\n states.push([ClipperModel.Coordinamento, item.unreadItems]);\r\n } else if (item.id == ClipperModule.Giurisprudenza) {\r\n states.push([ClipperModel.Juris, item.unreadItems]);\r\n }\r\n }\r\n })\r\n return states;\r\n });\r\n\r\n /**\r\n * Update unread items\r\n * @param module : the module\r\n * @param model : the optional model\r\n * @param increment : the increment (can be negative)\r\n */\r\n updateUnreadItems(module: ClipperModule, model: ClipperModel | undefined, increment: number) {\r\n if (model) {\r\n this.items().forEach(item => {\r\n let itemModel = item.models?.find(x => x.id === model);\r\n if (itemModel) {\r\n itemModel.unreadItems += increment;\r\n return;\r\n }\r\n });\r\n }\r\n let item = this.items()?.find((x: ClipperDashboardItem) => x.id == module);\r\n if (item) {\r\n item.unreadItems += increment;\r\n }\r\n this.items.update(values => [...values]);\r\n }\r\n\r\n /***\r\n * Get the module unread items\r\n * @param module: the module\r\n * @param model : the optional model\r\n * @returns the module unread items\r\n */\r\n getUnreadItems(module: ClipperModule, model?: ClipperModel): number {\r\n if (model) {\r\n return this.unreadItemsByModel()?.find((x: [ClipperModel, number]) => x[0] === model)?.[1] ?? 0;\r\n }\r\n return this.unreadItems()?.find((x: [ClipperModule, number]) => x[0] === module)?.[1] ?? 0;\r\n }\r\n\r\n /**\r\n * Return total unread items\r\n * @returns : the total unread items\r\n */\r\n gatTotalUnreadItems(): number {\r\n let totalUnread = 0;\r\n this.unreadItems().forEach(item => {\r\n totalUnread += item[1];\r\n })\r\n return totalUnread;\r\n }\r\n}\r\n\r\nexport interface ClipperDayItem {\r\n day: string;\r\n label: string;\r\n items: ClipperDayGroup[];\r\n count: number;\r\n}\r\n\r\nexport interface ClipperDayGroup {\r\n model: ClipperModel;\r\n label: string;\r\n items: ClipperDocumentInfo[];\r\n}\r\n\r\nexport interface ClipperLastDaysResult {\r\n items: ClipperDayItem[];\r\n}\r\n\r\n\r\nexport class ClipperTeamMemberInfo {\r\n id: number;\r\n teamId?: string;\r\n name?: string;\r\n email?: string;\r\n isAdmin?: boolean;\r\n isDisabled?: boolean;\r\n hasPermission55?: boolean;\r\n hasPermission56?: boolean;\r\n hasPermission57?: boolean;\r\n isMenuOpen?: boolean;\r\n isOver?: boolean;\r\n}\r\n\r\nexport enum ClipperTeamProduct {\r\n SharedArchive = 1004676,\r\n SharedCalendar = 1004683\r\n}\r\n\r\nexport enum ClipperTeamProductPermission {\r\n SharedArchive = 56,\r\n SharedCalendar = 57\r\n}\r\n\r\nexport interface ClipperTeamProductInfo {\r\n permissionId: ClipperTeamProductPermission;\r\n name: string;\r\n maxMembers: number;\r\n usedMembers: number;\r\n}\r\n\r\nexport interface ClipperTeamMembersSearchResult {\r\n teamId?: string;\r\n teamTitle?: string;\r\n total?: number;\r\n customerId?: number;\r\n canEdit?: boolean;\r\n products?: ClipperTeamProductInfo[];\r\n items?: ClipperTeamMemberInfo[];\r\n}\r\n\r\nexport interface ClipperTeamsSearchParams {\r\n teamId?: string;\r\n permissionId?: number;\r\n productId?: number;\r\n adminsOnly?: boolean;\r\n activeMembersOnly?: boolean;\r\n includeRSTeams?: boolean; \r\n}\r\n\r\nexport interface ClipperTeamsSearchResult {\r\n total: number;\r\n items: NameValueItem<string>[];\r\n}\r\n\r\nexport class ClipperTeamInfo {\r\n id?: string;\r\n customerId?: number;\r\n title?: string;\r\n isDisabled?: boolean;\r\n created?: string;\r\n lastModified?: string;\r\n}\r\n\r\nexport enum ClipperCalendarState {\r\n Open = 101,\r\n Expired = 102,\r\n Expiring = 103,\r\n Closed = 104\r\n}\r\n\r\nexport const ClipperCalendarStates: NameValueItem<ClipperCalendarState>[] = [\r\n { name: 'Aperte', value: ClipperCalendarState.Open },\r\n { name: 'Chiuse', value: ClipperCalendarState.Closed },\r\n { name: 'Scadute', value: ClipperCalendarState.Expired },\r\n { name: 'Imminenti', value: ClipperCalendarState.Expiring }\r\n]\r\n\r\n\r\nexport class ClipperCalendarSearchParams {\r\n id?: string;\r\n fromDate?: Date;\r\n toDate?: Date;\r\n teamId?: string;\r\n text?: string;\r\n month?: number;\r\n year?: number;\r\n sortDescending?: boolean;\r\n state?: ClipperCalendarState;\r\n recurrentOnly?: boolean;\r\n first?: number = 0;\r\n count?: number = 15\r\n}\r\n\r\nexport interface ClipperCalendarSearchResult {\r\n interval: string;\r\n items: ClipperDeadlineInfo[];\r\n days: number[];\r\n teams: NameValueItem<string>[];\r\n total: number;\r\n}\r\n\r\n\r\n\r\nexport interface ClipperDeadlineInfo {\r\n id?: string;\r\n companyId?: number;\r\n userId?: number;\r\n teamId: string;\r\n teamName?: string;\r\n group?: string;\r\n description?: string;\r\n documentTitle?: string;\r\n documentId?: string;\r\n documentNumber?: string;\r\n documentDate?: Date;\r\n emails?: string;\r\n expiringDate?: Date;\r\n expiredAlertSent?: boolean;\r\n expiringInfo?: string;\r\n expiringDescription?: string;\r\n nextExpiringDate?: Date;\r\n alarmDays?: number;\r\n alarmDate?: Date;\r\n alarmMemo?: string;\r\n alarmSent?: boolean;\r\n hasAlarm?: boolean;\r\n isMenuOpen?: boolean;\r\n isOver?: boolean;\r\n isExpired?: boolean;\r\n isExpiring?: boolean;\r\n isClosed?: boolean;\r\n isClosable?: boolean;\r\n isPrivate?: boolean;\r\n isRecurrent?: boolean;\r\n recurrencePatternType?: ClipperRecurrenceType;\r\n recurrenceFrequency?: number;\r\n recurrenceEndOfMonth?: boolean;\r\n recurrenceNewId?: string;\r\n outlookAppointmentId?: string;\r\n created?: Date;\r\n lastModified?: Date;\r\n}\r\n\r\nexport interface ClipperCalendarSaveDeadlineParams {\r\n deadline: ClipperDeadlineInfo;\r\n teamIds?: string[];\r\n}\r\n\r\nexport enum ClipperCalendarCopyMode {\r\n Duplicate = 1,\r\n Move = 2\r\n}\r\n\r\nexport interface ClipperCalendarCopyDeadlinesParams {\r\n ids: string[];\r\n teamId: string;\r\n mode: ClipperCalendarCopyMode;\r\n}\r\n\r\nexport enum ClipperArchiveFileType {\r\n None = 0,\r\n Procedure = 1,\r\n OperatingInstructions = 2,\r\n TechnicalReport = 3,\r\n AdministrativeDocument = 4,\r\n Document = 5,\r\n OtherApplicableRules = 6,\r\n Other = 7,\r\n File = 101,\r\n Image = 102\r\n}\r\n\r\nexport const ClipperArchiveFileTypes: NameValueItem<ClipperArchiveFileType>[] = [\r\n { name: 'File', value: ClipperArchiveFileType.File },\r\n { name: 'Immagine', value: ClipperArchiveFileType.Image },\r\n { name: 'Procedura', value: ClipperArchiveFileType.Procedure },\r\n { name: 'Istruzioni operative', value: ClipperArchiveFileType.OperatingInstructions },\r\n { name: 'Relazione tecnica', value: ClipperArchiveFileType.TechnicalReport },\r\n { name: 'Documento iter amministrativo', value: ClipperArchiveFileType.AdministrativeDocument },\r\n { name: 'Documento aziendale', value: ClipperArchiveFileType.Document },\r\n { name: 'Altre norme applicabili', value: ClipperArchiveFileType.OtherApplicableRules },\r\n { name: 'Altro', value: ClipperArchiveFileType.Other }\r\n]\r\n\r\n\r\nexport enum ClipperArchiveFileStorageType {\r\n ArsCloud = 2,\r\n OtherCloud = 3\r\n}\r\nexport const ClipperArchiveFileStorageTypes: NameValueItem<ClipperArchiveFileStorageType>[] = [\r\n { name: 'ARS Cloud', value: ClipperArchiveFileStorageType.ArsCloud },\r\n { name: 'Altro cloud', value: ClipperArchiveFileStorageType.OtherCloud }\r\n]\r\n\r\n\r\nexport interface ClipperArchiveFileInfo {\r\n id?: string;\r\n parentFolderId?: string;\r\n isFolder?: boolean;\r\n folderId?: string;\r\n folderName?: string;\r\n folderItemsCount?: number;\r\n teamId: string;\r\n teamName?: string;\r\n topicId?: string;\r\n topicPath?: string;\r\n topicName?: string;\r\n topics?: string[];\r\n tags?: string;\r\n isPrivate?: boolean;\r\n isFile?: boolean;\r\n fileName?: string;\r\n storageType?: ClipperArchiveFileStorageType;\r\n isBinary?: boolean;\r\n binaryId?: number;\r\n binaryFilePath?: string;\r\n isPermalink?: boolean;\r\n fileType?: ClipperArchiveFileType;\r\n file?: any;\r\n notes?: string;\r\n position?: number;\r\n documentIds?: string;\r\n documentLastChangedBy?: string;\r\n documentLastChangedById?: string;\r\n documentLastChangedReasonDescription?: string;\r\n documentLastChanged?: Date;\r\n documentUpdateState?: number;\r\n isDocumentChanged?: boolean;\r\n canPreview?: boolean;\r\n canEmbed?: boolean;\r\n channelName?: string;\r\n model?: ClipperModel;\r\n modelName?: string;\r\n title1?: string;\r\n title2?: string;\r\n date?: Date;\r\n number?: string;\r\n origin?: string;\r\n originDescription?: string;\r\n documentId?: string;\r\n documentCode?: string;\r\n isDocument?: boolean;\r\n isRead?: boolean;\r\n isJuris?: boolean;\r\n isMenuOpen?: boolean;\r\n isOver?: boolean;\r\n validityState?: number;\r\n validUntilDate?: Date;\r\n expiringDate?: Date;\r\n expiringInfo?: string;\r\n uniqueId: string;\r\n}\r\n\r\n\r\nexport interface ClipperArchiveFolderTree extends Folder {\r\n subFolders: ClipperArchiveFolderTree[];\r\n}\r\n\r\n\r\nexport class ClipperArchiveFoldersSearchParams {\r\n teamId?: string;\r\n privateOnly?: boolean;\r\n}\r\n\r\nexport interface ClipperArchiveFoldersSearchResult {\r\n name: string;\r\n teams: NameValueItem<string>[];\r\n files: ClipperArchiveFileInfo[];\r\n subFolders: ClipperArchiveFolderTree[];\r\n\r\n}\r\n\r\n\r\nexport class ClipperArchiveFilesSearchParams {\r\n teamId?: string;\r\n folderId?: string;\r\n folderName?: string;\r\n fileType?: ClipperArchiveFileType;\r\n fromDate?: Date;\r\n toDate?: Date;\r\n topicPath?: string;\r\n topicId?: string;\r\n topicName?: string;\r\n titlesOnly?: boolean;\r\n text?: string;\r\n documentNumber?: string;\r\n documentYear?: number;\r\n first?: number;\r\n count?: number;\r\n}\r\n\r\nexport interface ClipperArchiveFilesSearchResult {\r\n items: ClipperArchiveFileInfo[];\r\n folderName?: string;\r\n total: number;\r\n}\r\n\r\nexport interface ClipperArchiveFoldersImportParams {\r\n teamId: string;\r\n destFolderId?: string;\r\n sourcePath?: string;\r\n sourceFileName?: string;\r\n file?: any;\r\n overwrite?: boolean;\r\n version?: number;\r\n}\r\n\r\nexport enum ClipperArchiveCopyMode {\r\n Duplicate = 1,\r\n Move = 2\r\n}\r\n\r\nexport interface ClipperArchiveFilesCopyParams {\r\n destTeamId: string;\r\n destFolderId?: string;\r\n files?: ClipperArchiveFileInfo[];\r\n mode?: ClipperArchiveCopyMode;\r\n}\r\n\r\nexport interface ClipperArchiveFilesDeleteParams {\r\n sourceFolderId?: string;\r\n destFolderId?: string;\r\n files?: ClipperArchiveFileInfo[];\r\n}\r\n\r\n\r\nexport class ClipperUtils {\r\n\r\n /**\r\n * Check if a model is readable\r\n * @param model : the model to check\r\n * @returns : true if the model is readable\r\n */\r\n static isClipperModelReadable(model: ClipperModel): boolean {\r\n return model !== ClipperModel.Unknown &&\r\n model !== ClipperModel.NormativaVigente &&\r\n model !== ClipperModel.Scadenze &&\r\n model !== ClipperModel.Segnalazioni\r\n }\r\n\r\n /**\r\n * Return the Clipper module from a document \r\n * @param item: the documenti item\r\n * @returns the module id\r\n */\r\n static getClipperModuleFromModel(item: ClipperDocumentInfo): ClipperModule | undefined {\r\n switch (item.model) {\r\n case ClipperModel.AllerteAlimentari: return ClipperModule.AllerteAlimentari;\r\n case ClipperModel.News: return ClipperModule.News;\r\n case ClipperModel.Articoli:\r\n case ClipperModel.Juris: return ClipperModule.Approfondimenti;\r\n case ClipperModel.Quesiti: return ClipperModule.QuesitiECasiRisolti;\r\n case ClipperModel.Coordinamento: return ClipperModule.ModificheAbrogazioniERinvii;\r\n case ClipperModel.GiurisprudenzaRecente: return ClipperModule.Giurisprudenza;\r\n case ClipperModel.NormativaVigente: return ClipperModule.NormativaVigente;\r\n case ClipperModel.Segnalazioni:\r\n case ClipperModel.Scadenze: return ClipperModule.ScadenzeESegnalazioni;\r\n case ClipperModel.AggiornamentoNormativo: return ClipperModule.GazzetteBollettiniEFontiDiverse;\r\n }\r\n return undefined;\r\n }\r\n\r\n\r\n /**\r\n * Return the Clipper group name\r\n * @param value: the group value \r\n * @returns the group name\r\n */\r\n static getClipperModuleGroupName(value: ClipperModuleGroup): string {\r\n return ClipperModuleGroups.filter(n => n.value === value)?.[0].name;\r\n }\r\n\r\n /**\r\n * Return the list of modules of a group\r\n * @param value: the module name\r\n * @returns the list of modules\r\n */\r\n static getClipperModuleGroupItems(value: ClipperModuleGroup): NameValueItem<ClipperModule>[] {\r\n return ClipperModules.filter(n => n.parentValue === value);\r\n }\r\n\r\n /**\r\n * Check modules against current selected in filter\r\n * @param modules : the modules to check for\r\n * @param mode : thc check mode: 1) exactly all elements 2) all elements 3) any of the elements specified\r\n * @returns true if the check is successfull\r\n */\r\n private static checkModules(modules: ClipperModule[], currentModules: NameValueItem<ClipperModule>[], mode: number = 1): boolean {\r\n let ok: boolean = false;\r\n if (mode === 1) {\r\n // All and only the elements specified\r\n for (let i = 0; i < currentModules.length; i++) {\r\n ok = (modules.findIndex(x => x === currentModules[i].value) ?? -1) !== -1;\r\n if (!ok) {\r\n break;\r\n }\r\n }\r\n ok = ok && modules.length >= (currentModules?.length ?? 0);\r\n } else if (mode === 2) {\r\n // All the elements specified\r\n for (let i = 0; i < modules.length; i++) {\r\n ok = (currentModules?.findIndex(x => x.value === modules[i]) ?? -1) !== -1;\r\n if (!ok) {\r\n break;\r\n }\r\n }\r\n } else if (mode === 3) {\r\n // Any of the specified elements \r\n for (let i = 0; i < modules.length; i++) {\r\n ok = (currentModules?.findIndex(x => x.value === modules[i]) ?? -1) !== -1;\r\n if (ok) {\r\n break;\r\n }\r\n }\r\n }\r\n return ok;\r\n }\r\n\r\n /**\r\n * Return the list of available sort options for a list of modules\r\n * @param modules : the modules list\r\n * @returns the list of availbale sort options \r\n */\r\n static getClipperAvailableSortOptions(\r\n modules?: NameValueItem<ClipperModule>[],\r\n params?: ClipperSearchParams): NameValueItem<ClipperSort>[] {\r\n const options: NameValueItem<ClipperSort>[] = [\r\n { name: \"Data decrescente\", value: ClipperSort.DateDesc },\r\n { name: \"Data crescente\", value: ClipperSort.DateAsc },\r\n { name: \"Data fonte decrescente\", value: ClipperSort.SourceDateDesc },\r\n { name: \"Data fonte crescente\", value: ClipperSort.SourceDateAsc },\r\n { name: \"Rilevanza\", value: ClipperSort.Relevance },\r\n { name: \"Popolarità\", value: ClipperSort.Popularity },\r\n ];\r\n let sortOptions: NameValueItem<number>[] = []\r\n if (params && ClipperSearchUtils.isTextQuery(params)) {\r\n sortOptions.push(options[4]);\r\n }\r\n if (modules && modules.length > 0) {\r\n if (this.checkModules([ClipperModule.GazzetteBollettiniEFontiDiverse], modules, 1)) {\r\n sortOptions.push(options[2]);\r\n sortOptions.push(options[3]);\r\n } else if (this.checkModules([ClipperModule.NormativaVigente], modules, 1) ||\r\n this.checkModules([ClipperModule.Giurisprudenza], modules, 1)) {\r\n sortOptions.push(options[0]);\r\n sortOptions.push(options[1]);\r\n sortOptions.push(options[2]);\r\n sortOptions.push(options[3]);\r\n sortOptions.push(options[5]);\r\n } else {\r\n sortOptions.push(options[0]);\r\n sortOptions.push(options[1]);\r\n }\r\n } else {\r\n sortOptions.push(options[0]);\r\n sortOptions.push(options[1]);\r\n }\r\n return sortOptions;\r\n }\r\n\r\n}\r\n\r\nexport class ClipperSearchUtils {\r\n\r\n /**\r\n * Clear the search params object\r\n * @param params : the search params to clear\r\n */\r\n static clear(params: ClipperSearchParams) {\r\n params.sector = undefined;\r\n params.sectors = undefined;\r\n params.author = undefined;\r\n params.authors = undefined;\r\n params.topic = undefined;\r\n params.topics = undefined;\r\n params.taxonomy = undefined;\r\n params.taxonomies = undefined;\r\n params.taxonomyPath = undefined;\r\n params.taxonomyNode = undefined;\r\n params.number = undefined;\r\n params.fromDate = undefined;\r\n params.toDate = undefined;\r\n params.year = undefined;\r\n params.sourceNumber = undefined;\r\n params.source = undefined;\r\n params.sourceFromDate = undefined;\r\n params.sourceToDate = undefined;\r\n params.sourceYear = undefined;\r\n params.tags = undefined;\r\n params.text = undefined;\r\n params.augmentedText = undefined;\r\n params.titleOnly = false;\r\n params.type = undefined;\r\n params.types = undefined;\r\n params.showUnreadDocumentsOnly = false;\r\n params.showCommentedDocumentsOnly = false;\r\n params.showNotAbrogatedDocumentsOnly = false;\r\n params.expandTextQueryUsingAI = false;\r\n if (!params.channels || params.channels.length === 0) {\r\n params.channels = [...ClipperChannels];\r\n }\r\n params.changeReason = undefined;\r\n params.changedNumber = undefined;\r\n params.changedYear = undefined;\r\n params.changedTitle = undefined;\r\n params.changedId = undefined;\r\n params.modifierId = undefined;\r\n params.modifierNumber = undefined;\r\n params.modifierYear = undefined;\r\n params.modifierTitle = undefined;\r\n params.model = undefined;\r\n params.models = undefined;\r\n params.module = undefined;\r\n params.modules = undefined;\r\n }\r\n\r\n\r\n /**\r\n * Get hte model list related to a list of modules\r\n * @param modules: the modules to check\r\n * @returns the list fo models\r\n */\r\n static getModulesModels(\r\n modules?: NameValueItem<ClipperModule>[]): ClipperModel[] {\r\n const models: ClipperModel[] = [];\r\n if ((modules?.length ?? 0) > 0) {\r\n modules?.forEach(module => {\r\n switch (module.value) {\r\n case ClipperModule.ScadenzeESegnalazioni:\r\n [ClipperModel.Scadenze, ClipperModel.Segnalazioni].forEach(x => models.push(x));\r\n break;\r\n case ClipperModule.QuesitiECasiRisolti:\r\n models.push(ClipperModel.Quesiti);\r\n break;\r\n case ClipperModule.News:\r\n models.push(ClipperModel.News);\r\n break;\r\n case ClipperModule.Approfondimenti:\r\n models.push(ClipperModel.Articoli);\r\n break;\r\n case ClipperModule.AllerteAlimentari:\r\n models.push(ClipperModel.AllerteAlimentari);\r\n break;\r\n case ClipperModule.GazzetteBollettiniEFontiDiverse:\r\n models.push(ClipperModel.AggiornamentoNormativo);\r\n break;\r\n case ClipperModule.GiurisprudenzaRecente:\r\n models.push(ClipperModel.GiurisprudenzaRecente);\r\n break;\r\n case ClipperModule.NormativaVigente:\r\n models.push(ClipperModel.NormativaVigente);\r\n break;\r\n case ClipperModule.ModificheAbrogazioniERinvii:\r\n models.push(ClipperModel.Coordinamento);\r\n break;\r\n case ClipperModule.Giurisprudenza:\r\n models.push(ClipperModel.Juris);\r\n break;\r\n }\r\n });\r\n }\r\n return models;\r\n }\r\n\r\n /**\r\n * Check if current filter is a text based search \r\n * @param params : the search params to check\r\n * @returns true if is a text based search\r\n */\r\n static isTextQuery(params: ClipperSearchParams): boolean {\r\n return params.text != null && params.text?.length > 0;\r\n }\r\n\r\n /**\r\n * Try to add a query\r\n * @param q : the new query\r\n * @param queries : the new query\r\n */\r\n private static concatTextQuery(q: string, queries: string): string {\r\n if (q && q.length > 0) {\r\n if (queries.length == 0 && (q[0] === '+' || q[0] === '-'))\r\n q = q.substring(1);\r\n if (q[q.length - 1] !== '\\\"' && q.indexOf(' ') !== -1)\r\n q = \"\\\"\" + q + \"\\\"\";\r\n if (queries.length > 0) queries += \", \";\r\n queries += q;\r\n }\r\n return queries;\r\n }\r\n\r\n /**\r\n * Normalize text query\r\n * @param text : the text query to normalize\r\n * @returns : the text normalized or undefined\r\n */\r\n static normalizeTextQuery(text: string): string | undefined {\r\n if (!text || text.length === 0) return undefined;\r\n let q: string = '';\r\n let queries: string = '';\r\n for (let i = 0; i < text.length; i++) {\r\n if (text[i] === ',') {\r\n queries = this.concatTextQuery(q.trim(), queries);\r\n q = '';\r\n }\r\n else q += text[i];\r\n }\r\n queries = this.concatTextQuery(q.trim(), queries);\r\n return queries;\r\n }\r\n}","import { HttpClient, HttpHeaders, HttpRequest } from '@angular/common/http';\r\nimport { Injectable, OnDestroy, Signal, computed, inject, signal } from '@angular/core';\r\nimport {\r\n ApiResult, BroadcastService,\r\n Folder,\r\n FolderTree,\r\n NameValueItem, SystemUtils\r\n} from '@arsedizioni/ars-utils/core';\r\nimport { DialogService, RecoverPasswordDialogResult, ResetPasswordDialogResult } from '@arsedizioni/ars-utils/ui';\r\nimport { LoginOAuthType } from '@arsedizioni/ars-utils/ui.oauth';\r\nimport { EMPTY, Subscription, of, throwError } from 'rxjs';\r\nimport { catchError, finalize, map } from 'rxjs/operators';\r\nimport { ClipperServiceFlags, ClipperDashboard, ClipperDashboardResult, ClipperDocumentInfo, ClipperDocumentStructure, ClipperDocumentUpdateStateParams, ClipperExportDocumentsParams, ClipperLoginInfo, ClipperLoginResult, ClipperModule, ClipperOTPInfo, ClipperSearchArsEventsParams, ClipperSearchArsEventsResult, ClipperQueryReferencesMode, ClipperReferencesSearchParams, ClipperSearchFacetsResult, ClipperSearchParams, ClipperSearchResult, ClipperSendDocumentsByEmailParams, ClipperTaxonomyParams, ClipperUserLink, ClipperUserSearch, ClipperUserTrialInfo, ClipperUserWorkingDocument, ClipperTeamMemberInfo, ClipperTeamsSearchParams, ClipperTeamsSearchResult, ClipperTeamInfo, ClipperTeamMembersSearchResult, ClipperCalendarSearchParams, ClipperCalendarSearchResult, ClipperSearchCalendarSnapshotResult, ClipperCalendarCopyDeadlinesParams, ClipperDeadlineInfo, ClipperCalendarSaveDeadlineParams, ClipperArchiveFoldersSearchParams, ClipperArchiveFoldersSearchResult, ClipperArchiveFileInfo, ClipperArchiveFoldersImportParams, ClipperArchiveFilesSearchResult, ClipperArchiveFilesDeleteParams, ClipperArchiveFilesCopyParams, ClipperArchiveFilesSearchParams, ClipperModel, ClipperChannel, ClipperChannels, ClipperLastDaysResult, ClipperUpdateChannelsStateParams, ClipperAvailableChannel, ClipperLoginFlags } from '../definitions';\r\nimport { ClipperMessages } from '../messages';\r\n\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ClipperService implements OnDestroy {\r\n\r\n private httpClient = inject(HttpClient);\r\n private broadcastServiceSubscription?: Subscription;\r\n private broadcastService = inject(BroadcastService);\r\n private dialogService = inject(DialogService);\r\n private keepAlive = 0;\r\n private _appUri?: string;\r\n get appUri(): string | undefined {\r\n return this._appUri;\r\n }\r\n private _serviceUri: string = '';\r\n get serviceUri(): string {\r\n return this._serviceUri;\r\n }\r\n private _flags: ClipperServiceFlags = ClipperServiceFlags.None;\r\n get flags(): ClipperServiceFlags {\r\n return this._flags;\r\n }\r\n private _loginInfo?: ClipperLoginInfo;\r\n get loginInfo(): ClipperLoginInfo | undefined {\r\n if (!this._loginInfo) {\r\n const loginInfo = localStorage.getItem('clipper_context');\r\n if (loginInfo) {\r\n try {\r\n this._loginInfo = JSON.parse(loginInfo) as ClipperLoginInfo;\r\n } catch { }\r\n }\r\n }\r\n return this._loginInfo;\r\n }\r\n public readonly loggedIn = signal<boolean>(sessionStorage.getItem(\"clipper_oauth_token\") !== null);\r\n public readonly loggingIn = signal<boolean>(false);\r\n public readonly snapshot = signal<ClipperSearchResult | undefined>(undefined);\r\n public readonly supportsRS = signal<boolean>(false);\r\n public readonly shouldRefreshToken = signal<boolean>(false);\r\n public readonly referencesSnapshot = signal<ClipperSearchResult | undefined>(undefined);\r\n public readonly dashboard: ClipperDashboard = new ClipperDashboard();\r\n public readonly bag = signal<ClipperDocumentInfo[]>([]);\r\n public readonly bagTotal: Signal<number> = computed(() => {\r\n return this.bag().length;\r\n });\r\n public readonly visible = signal<boolean>(false);\r\n private _teams: NameValueItem<string>[] = [];\r\n get teams(): NameValueItem<string>[] {\r\n return this._teams;\r\n }\r\n public currentTeamId = signal<string>(SystemUtils.emptyUUID());\r\n public currentTeamName = signal<string>(\"PERSONALE\");\r\n public currentTeamIsPrivate: Signal<boolean> = computed(() => {\r\n return this.currentTeamId() !== SystemUtils.emptyUUID();\r\n });\r\n public readonly availableChannels = signal<ClipperAvailableChannel[]>([]);\r\n\r\n public readonly activeChannels: Signal<ClipperAvailableChannel[]> = computed(() => {\r\n return this.availableChannels()?.filter(x => !x.disabled && x.active === true);\r\n });\r\n public readonly allowTags = signal<boolean>(false);\r\n\r\n ngOnDestroy() {\r\n if (this.broadcastServiceSubscription) {\r\n this.broadcastServiceSubscription.unsubscribe();\r\n }\r\n this.removeKeepAlive();\r\n }\r\n\r\n /**\r\n * Initialize service\r\n * @param serviceUri : the service uri\r\n * @param appUri : the clipper application uri \r\n * @param flags: the service flags. Default is none.\r\n */\r\n initialize(\r\n serviceUri: string,\r\n appUri?: string,\r\n flags: ClipperServiceFlags = ClipperServiceFlags.None,\r\n ) {\r\n\r\n // Create unique client id\r\n if (!localStorage.getItem('clipper_client_id')) {\r\n localStorage.setItem('clipper_client_id', SystemUtils.generateUUID());\r\n }\r\n\r\n // Initialize\r\n this._serviceUri = serviceUri;\r\n this._appUri = appUri;\r\n this._flags = flags;\r\n\r\n // React to message broadcasting\r\n if (!this.broadcastServiceSubscription) {\r\n this.broadcastServiceSubscription = this.broadcastService.getMessage()\r\n .subscribe(message => {\r\n if (message.id === ClipperMessages.LOGIN_CHANGED) {\r\n this.login(\r\n message.data.email,\r\n message.data.password,\r\n true,\r\n message.data.oauth,\r\n message.data.oauthAccessToken,\r\n ClipperLoginFlags.RememberCredentials).subscribe({\r\n next: r => {\r\n if (!r.success) {\r\n if (r.message) {\r\n this.dialogService.error(r.message, undefined, \"Errore di Clipper\");\r\n }\r\n } else {\r\n if ((this.flags & ClipperServiceFlags.DisplayConnectionStateMessages) > 0) {\r\n this.dialogService.toast('Connesso a Clipper', 1500, 'power');\r\n }\r\n // Load bag\r\n this.loadBag();\r\n }\r\n },\r\n error: () => { console.error(\"Clipper non disponibile.\") } // Avoid unwanted errors on client\r\n });\r\n } else if (message.id === ClipperMessages.LOGOUT) {\r\n if (this.loggedIn()) {\r\n this.logout().subscribe(r => {\r\n if (!r.success) {\r\n if (r.message) {\r\n this.dialogService.error(\"<p>\" + r.message + \"</p><br><br><hr><p class='small'><i>Per eliminare la configurazione di Clipper accedere a:<br><b>menu > personalizza > collegamenti</b></i></p>\", undefined, \"Errore di Clipper\");\r\n }\r\n } else {\r\n if ((this.flags & ClipperServiceFlags.DisplayConnectionStateMessages) > 0) {\r\n this.dialogService.toast('Disconnesso da Clipper', 1500, 'power_off');\r\n }\r\n // Empty bag\r\n this.bag.set([]);\r\n }\r\n });\r\n } else {\r\n this.clear();\r\n }\r\n }\r\n });\r\n }\r\n\r\n\r\n // Eveluate current session storage in case of page refresh (F5)\r\n const tokenExpirationDate = this.getTokenExpirationDate();\r\n const tokenExpired = !tokenExpirationDate || tokenExpirationDate.getTime() < Date.now();\r\n if (!tokenExpired || this.loggedIn()) {\r\n // Auto login\r\n this.loggedIn.set(true);\r\n // Should refresh\r\n this.shouldRefreshToken.set(!!tokenExpirationDate);\r\n // Keep alive\r\n this.setKeepAlive();\r\n // Initialize channels\r\n this.initializeChannels();\r\n // Notify \r\n this.broadcastService.sendMessage(ClipperMessages.LOGIN_COMPLETED);\r\n\r\n }\r\n }\r\n\r\n\r\n\r\n /**\r\n * Get access token expiration date\r\n */\r\n private getTokenExpirationDate(): Date | undefined {\r\n const token = this.getAuthToken();\r\n if (!token) return undefined;\r\n // Parse json object from base64 encoded jwt token\r\n const jwtToken = JSON.parse(atob(token.split('.')[1]));\r\n // Set a timeout to refresh the token a minute before it expires\r\n return new Date(jwtToken.exp * 1000);\r\n }\r\n\r\n /**\r\n * Checks if access token in expired\r\n */\r\n isTokenExpired(): boolean {\r\n const expires = this.getTokenExpirationDate();\r\n const expired = !expires || expires.getTime() < Date.now();\r\n return expired;\r\n }\r\n\r\n\r\n /**\r\n * Set keep alive\r\n */\r\n private setKeepAlive() {\r\n // Keep alive every 1 min\r\n if (this.keepAlive === 0) {\r\n this.keepAlive = window.setInterval(\r\n () => {\r\n this.ping();\r\n }, 1000 * 60 * 5);\r\n }\r\n }\r\n\r\n /**\r\n * Remove keep alive\r\n */\r\n private removeKeepAlive() {\r\n if (this.keepAlive > 0) {\r\n window.clearInterval(this.keepAlive);\r\n this.keepAlive = 0;\r\n }\r\n }\r\n\r\n\r\n /**\r\n * Ping\r\n */\r\n ping() {\r\n this.httpClient.get<ApiResult<number>>(\r\n this._serviceUri + '/ping?nocache=' + SystemUtils.generateUUID()\r\n )\r\n .pipe(catchError(() => { return EMPTY }))\r\n .subscribe();\r\n }\r\n\r\n\r\n /**\r\n * Set JWT tokens\r\n * @param value : the login result\r\n */\r\n private setToken(value: ClipperLoginResult) {\r\n sessionStorage.setItem('clipper_auth', value.authToken);\r\n if (value.refreshToken) {\r\n sessionStorage.setItem('clipper_refresh', value.refreshToken);\r\n }\r\n if (value.rememberToken) {\r\n localStorage.setItem('clipper_remember', value.rememberToken);\r\n }\r\n if (value.mfaToken) {\r\n localStorage.setItem('clipper_mfa', value.mfaToken);\r\n }\r\n }\r\n\r\n /**\r\n * Return current auth token\r\n * @param refresh: true to get the refresh token. Default is false.\r\n */\r\n getAuthToken(refresh: boolean = false): string {\r\n let token = sessionStorage.getItem(refresh ? 'clipper_refresh' : 'clipper_auth');\r\n if (token && token[0] === '\"') {\r\n return token.substring(1, token.length - 1);\r\n }\r\n return token ?? '';\r\n }\r\n\r\n /**\r\n * Get the two form factor authentication token\r\n */\r\n getRememberToken(): string | null {\r\n return localStorage.getItem(\"clipper_remember\");\r\n }\r\n\r\n\r\n /**\r\n * Get the two form factor authentication token\r\n */\r\n getMfaToken(): string | null {\r\n return localStorage.getItem(\"clipper_mfa\");\r\n }\r\n\r\n /**\r\n * Store context\r\n */\r\n storeContext() {\r\n localStorage.setItem('clipper_context', JSON.stringify(this._loginInfo));\r\n }\r\n\r\n /**\r\n* Update context\r\n* @param result: the new context\r\n*/\r\n updateContext(result: ClipperLoginResult) {\r\n if (!this._loginInfo) {\r\n this._loginInfo = { context: undefined };\r\n }\r\n this._loginInfo.context = result.context;\r\n this._loginInfo.channels = result.settings;\r\n this.setToken(result);\r\n this.storeContext();\r\n\r\n }\r\n\r\n /**\r\n * Perform auto login using current link data\r\n * @param email: the optional email if using OAuth2\r\n * @parma password: the optional password if using OAuth2\r\n * @param remember: remember credentials \r\n * @param oauth: the optional open authentication supported\r\n * @param oauthAccessToken: the optional OAuth2 access token\r\n * @param onSuccess: function to execute on seccess\r\n * @param flags: the optional login flags\r\n */\r\n autoLogin(\r\n email?: string,\r\n password?: string,\r\n remember?: boolean,\r\n oauth?: LoginOAuthType,\r\n oauthAccessToken: string | undefined = sessionStorage.getItem(\"clipper_oauth_token\") ?? undefined,\r\n onSuccess?: Function,\r\n flags?: ClipperLoginFlags): boolean {\r\n if (remember) {\r\n flags |= ClipperLoginFlags.RememberCredentials;\r\n }\r\n this.login(email, password, remember, oauth, oauthAccessToken, flags)\r\n .subscribe({\r\n next: r => {\r\n if (!r.success) {\r\n this.dialogService.error(r.message, undefined, \"Errore in Clipper\");\r\n } else {\r\n this.dialogService.toast('Connesso a Clipper', 1500, 'power');\r\n if (onSuccess) {\r\n onSuccess();\r\n }\r\n }\r\n },\r\n error: () => { this.dialogService.error(\"Clipper non disponibile.\") }\r\n })\r\n return true;\r\n }\r\n\r\n /**\r\n * Perform auto logout\r\n * @param onSuccess: function to execute on success\r\n */\r\n autoLogout(onSuccess?: Function) {\r\n if (!this.loggedIn()) return;\r\n this.logout().subscribe({\r\n next: r => {\r\n if (!r.success) {\r\n this.dialogService.error(r.message, undefined, \"Errore in Clipper\");\r\n } else {\r\n this.dialogService.toast('Disconnesso da Clipper', 1500, 'power_off');\r\n }\r\n },\r\n complete: () => {\r\n this.clear()\r\n if (onSuccess) {\r\n onSuccess();\r\n }\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Perform login \r\n * @param email: the optioanl email if using OAuth2\r\n * @parma password: the optional password if using OAuth2\r\n * @param remember: remember credentials \r\n * @param oauth: the optional open authentication supported\r\n * @param oauthAccessToken: the optional OAuth2 access token \r\n * @param flags: the optional login flags\r\n * @returns: the login result\r\n */\r\n login(email?: string,\r\n password?: string,\r\n remember?: boolean,\r\n oauth?: LoginOAuthType,\r\n oauthAccessToken: string | undefined = sessionStorage.getItem(\"clipper_oauth_token\") ?? undefined,\r\n flags?: ClipperLoginFlags) {\r\n if (remember) {\r\n flags |= ClipperLoginFlags.RememberCredentials;\r\n }\r\n return this.httpClient\r\n .post<ApiResult<ClipperLoginResult>>(\r\n this._serviceUri + '/login2',\r\n {\r\n clientId: localStorage.getItem(\"clipper_client_id\"),\r\n user: oauth ? null : email,\r\n password: oauth ? null : password,\r\n remember: remember,\r\n oauth: oauth,\r\n flags: flags\r\n },\r\n {\r\n headers:\r\n !oauth || !oauthAccessToken\r\n ? new HttpHeaders()\r\n .set(\"X-MFA\", this.getMfaToken() ?? '')\r\n : new HttpHeaders()\r\n .set(\"Authorization\", 'Bearer ' + oauthAccessToken)\r\n })\r\n .pipe(\r\n catchError(err => {\r\n this.loggingIn.set(false);\r\n localStorage.removeItem('clipper_context');\r\n localStorage.removeItem('clipper_mfa');\r\n localStorage.removeItem('clipper_remember');\r\n return throwError(() => err);\r\n }),\r\n map((r: ApiResult<ClipperLoginResult>) => {\r\n if (r.success) {\r\n this._loginInfo = { context: undefined };\r\n this._loginInfo.context = r.value.context;\r\n this._loginInfo.channels = r.value.settings;\r\n this._loginInfo.oauth = oauth;\r\n if (!oauth && r.value.requiresMfa) {\r\n // Notify login is pending\r\n this.broadcastService.sendMessage(ClipperMessages.LOGIN_PENDING, { flags: flags });\r\n } else {\r\n // Complete login\r\n this.completeLogin(r.value);\r\n }\r\n }\r\n return r;\r\n })\r\n );\r\n }\r\n\r\n\r\n\r\n /**\r\n * Complete login\r\n * @param result : the login result\r\n */\r\n private completeLogin(\r\n result: ClipperLoginResult) {\r\n // Update context info \r\n this.updateContext(result);\r\n this.loggedIn.set(true);\r\n this.loggingIn.set(false);\r\n // Keep alive\r\n this.setKeepAlive();\r\n // Initialize channels\r\n this.initializeChannels();\r\n // Notify\r\n this.broadcastService.sendMessage(ClipperMessages.LOGIN_COMPLETED);\r\n }\r\n\r\n /**\r\n * Confirm MFA procedure\r\n * @param code: the confirm code\r\n * @param remember: true to remember credentials. Default is false.\r\n */\r\n confirmIdentity(code: string, flags: number = ClipperLoginFlags.None) {\r\n return this.httpClient\r\n .post<ApiResult<ClipperLoginResult>>(\r\n this._serviceUri + '/login/confirm/' + code + '/?flags=' + flags,\r\n {},\r\n )\r\n .pipe(\r\n catchError((err) => {\r\n localStorage.removeItem('clipper_context');\r\n localStorage.removeItem('clipper_mfa');\r\n localStorage.removeItem('clipper_remember');\r\n this.loggingIn.set(false);\r\n return throwError(() => err);\r\n }),\r\n map((r: ApiResult<ClipperLoginResult>) => {\r\n if (r.success) {\r\n // Complete login\r\n this.completeLogin(r.value);\r\n }\r\n return r;\r\n }),\r\n );\r\n }\r\n\r\n\r\n /**\r\n * Perform logout\r\n */\r\n logout() {\r\n return this.httpClient.post<any>(this._serviceUri + '/logout', {}).pipe(\r\n finalize(() => {\r\n this.removeKeepAlive();\r\n this.clear(true);\r\n // Remove credentials\r\n localStorage.removeItem('clipper_context');\r\n localStorage.removeItem('clipper_mfa');\r\n localStorage.removeItem('clipper_remember');\r\n }),\r\n catchError((_e) => {\r\n return of([]);\r\n }));\r\n }\r\n\r\n /**\r\n * Reset login refresh timer and login state\r\n */\r\n reset() {\r\n // Clear login info\r\n this._loginInfo = undefined;\r\n // Logged out\r\n this.loggedIn.set(false);\r\n // Reset channels\r\n this.availableChannels.set([]);\r\n // Notify\r\n this.broadcastService.sendMessage(ClipperMessages.LOGOUT_COMPLETED);\r\n }\r\n\r\n /**\r\n * Clear login data\r\n * @param clearOAuthToken: true to clear oauth token also\r\n */\r\n clear(clearOAuthToken: boolean = false) {\r\n // Clear local storage\r\n sessionStorage.removeItem('clipper_auth');\r\n sessionStorage.removeItem('clipper_refresh');\r\n sessionStorage.removeItem('clipper_oauth');\r\n if (clearOAuthToken) {\r\n sessionStorage.removeItem('clipper_oauth_token');\r\n }\r\n\r\n // Reset login\r\n this.reset();\r\n }\r\n\r\n\r\n /**\r\n * Perform token refresh\r\n */\r\n refresh() {\r\n return this.httpClient.get<ApiResult<ClipperLoginResult>>(\r\n this._serviceUri + '/refresh2/?token=' + this.getAuthToken(true)\r\n ).pipe(map((r: ApiResult<ClipperLoginResult>) => {\r\n // Update token\r\n this.setToken(r.value);\r\n return r;\r\n }));\r\n }\r\n\r\n /**\r\n * Initialize channels\r\n */\r\n private initializeChannels() {\r\n if (this.loginInfo) {\r\n let channels: ClipperAvailableChannel[] = [];\r\n this.loginInfo.channels?.forEach(n => {\r\n const channel = ClipperChannels.find(x => x.value === n.channelId) as ClipperAvailableChannel;\r\n if (channel) {\r\n channel.disabled = !n.isActive\r\n channel.active = n.isActive === true && n.isEnabled === true;\r\n channels.push(channel);\r\n }\r\n });\r\n this.availableChannels.set(channels);\r\n }\r\n }\r\n\r\n /**\r\n * Update channels\r\n * @param values : the new channel values\r\n */\r\n updateChannels(values: NameValueItem<ClipperChannel>[]) {\r\n this.availableChannels().forEach(channel => {\r\n if (!channel.disabled) {\r\n channel.active = values?.findIndex(x => x.value === channel.value) !== -1;\r\n }\r\n });\r\n this.availableChannels.update(values => [...values]);\r\n }\r\n /**\r\n * Get a new one time password\r\n * @param id: the optional repository id \r\n */\r\n newOTP(id: string) {\r\n return this.httpClient.get<ApiResult<ClipperOTPInfo>>(\r\n this._serviceUri + '/otp/new/?id=' + id,\r\n );\r\n }\r\n\r\n /**\r\n * Load Ars events calendar\r\n */\r\n events(params: ClipperSearchArsEventsParams) {\r\n return this.httpClient.post<ApiResult<ClipperSearchArsEventsResult>>(\r\n this._serviceUri + '/ars/events',\r\n params\r\n );\r\n }\r\n\r\n\r\n /**\r\n * Query documents\r\n */\r\n query(params: ClipperSearchParams) {\r\n return this.httpClient.post<ApiResult<ClipperSearchResult>>(\r\n this._serviceUri + '/documents',\r\n params\r\n );\r\n }\r\n\r\n /**\r\n * Get facets for a query\r\n */\r\n queryFacets(params: ClipperSearchParams) {\r\n return this.httpClient.post<ApiResult<ClipperSearchFacetsResult>>(\r\n this._serviceUri + '/documents/facets',\r\n params\r\n );\r\n }\r\n\r\n\r\n /**\r\n * Update document state\r\n */\r\n updateState(params: ClipperDocumentUpdateStateParams) {\r\n return this.httpClient.post<ApiResult<number>>(\r\n this._serviceUri + '/documents/state/update',\r\n params\r\n );\r\n }\r\n\r\n /**\r\n * Export a document in pdf format\r\n */\r\n exportPdf(id: string) {\r\n return this.httpClient.get(\r\n this._serviceUri + '/documents/export/' + id,\r\n { responseType: 'blob' }\r\n );\r\n }\r\n\r\n\r\n\r\n /**\r\n * Export document list (query or selected items) or export deadlines as ics\r\n */\r\n export(params: ClipperExportDocumentsParams) {\r\n return this.httpClient.post(\r\n this._serviceUri + '/documents/export',\r\n params,\r\n { responseType: 'blob' }\r\n );\r\n }\r\n\r\n /**\r\n * Send documents link by email\r\n */\r\n sendTo(params: ClipperSendDocumentsByEmailParams) {\r\n return this.httpClient.post<ApiResult<number>>(\r\n this._serviceUri + '/documents/send',\r\n params\r\n );\r\n }\r\n\r\n /**\r\n * Display a page the full document report\r\n */\r\n report(id: string) {\r\n return this.httpClient.get(\r\n this._serviceUri + '/documents/report/' + id,\r\n { responseType: 'blob' }\r\n );\r\n }\r\n\r\n /**\r\n * Get document comment\r\n */\r\n comment(id: string) {\r\n return this.httpClient.get<ApiResult<string>>(\r\n this._serviceUri + '/documents/comment/' + id\r\n );\r\n }\r\n\r\n /**\r\n * Get document info\r\n */\r\n info(id: string) {\r\n return this.httpClient.get<ApiResult<ClipperDocumentInfo>>(\r\n this._serviceUri + '/documents/info/' + id\r\n );\r\n }\r\n\r\n /**\r\n * Get document structure\r\n */\r\n index(id: string) {\r\n return this.httpClient.get<ApiResult<ClipperDocumentStructure>>(\r\n this._serviceUri + '/documents/structure/' + id\r\n );\r\n }\r\n\r\n /**\r\n * Get document last update\r\n */\r\n lastUpdate(id: string) {\r\n return this.httpClient.get<ApiResult<string>>(\r\n this._serviceUri + '/documents/last-update/' + id\r\n );\r\n }\r\n\r\n\r\n\r\n /**\r\n * Query document references\r\n */\r\n references(params: ClipperReferencesSearchParams) {\r\n let mode = params.mode;\r\n if (!mode) mode = ClipperQueryReferencesMode.ReferencesIn;\r\n switch (mode) {\r\n case ClipperQueryReferencesMode.ReferencesIn:\r\n case ClipperQueryReferencesMode.ReferencesOut:\r\n params.mode = mode;\r\n return this.httpClient.post<ApiResult<ClipperSearchResult>>(\r\n this._serviceUri + '/documents/references',\r\n params\r\n );\r\n case ClipperQueryReferencesMode.ChangesIn:\r\n case ClipperQueryReferencesMode.ChangesOut:\r\n return this.httpClient.post<ApiResult<ClipperSearchResult>>(\r\n this._serviceUri + '/documents/changes',\r\n params\r\n );\r\n case ClipperQueryReferencesMode.Juris:\r\n return this.httpClient.post<ApiResult<ClipperSearchResult>>(\r\n this._serviceUri + '/documents/juris',\r\n params\r\n );\r\n default:\r\n return null;\r\n }\r\n }\r\n\r\n /**\r\n * Get facets for a document references\r\n */\r\n referencesFacets(params: ClipperReferencesSearchParams) {\r\n let mode = params.mode ?? ClipperQueryReferencesMode.ReferencesIn;\r\n switch (mode) {\r\n case ClipperQueryReferencesMode.ReferencesIn:\r\n case ClipperQueryReferencesMode.ReferencesOut:\r\n params.mode = mode;\r\n return this.httpClient.post<ApiResult<ClipperSearchFacetsResult>>(\r\n this._serviceUri + '/documents/references/facets',\r\n params\r\n );\r\n case ClipperQueryReferencesMode.ChangesIn:\r\n case ClipperQueryReferencesMode.ChangesOut:\r\n return this.httpClient.post<ApiResult<ClipperSearchFacetsResult>>(\r\n this._serviceUri + '/documents/changes/facets',\r\n params\r\n );\r\n case ClipperQueryReferencesMode.Juris:\r\n return this.httpClient.post<ApiResult<ClipperSearchFacetsResult>>(\r\n this._serviceUri + '/documents/juris/facets',\r\n params\r\n );\r\n default: return null;\r\n }\r\n }\r\n\r\n /**\r\n * Wrap document rendering to allow token refresh\r\n */\r\n preRender() {\r\n return this.httpClient.get<ApiResult<boolean>>(\r\n this._serviceUri + '/documents/pre-render?nocache=' + SystemUtils.generateUUID()\r\n );\r\n }\r\n\r\n /**\r\n * Get document juris articles\r\n */\r\n jurisArticles(params: ClipperSearchParams) {\r\n return this.httpClient.post<ApiResult<ClipperSearchResult>>(\r\n this._serviceUri + '/documents/juris/articles',\r\n params\r\n );\r\n }\r\n\r\n /**\r\n * Get deadlines snapshot based on the deadlines\r\n */\r\n deadlinesSnapshot(params: ClipperCalendarSearchParams) {\r\n return this.httpClient.post<ApiResult<ClipperSearchCalendarSnapshotResult>>(\r\n this._serviceUri + '/documents/calendar/snapshot',\r\n params\r\n );\r\n }\r\n\r\n\r\n /**\r\n * Retrieve the taxonomy\r\n */\r\n getTaxonomy(params?: ClipperTaxonomyParams) {\r\n return this.httpClient.post<ApiResult<FolderTree>>(\r\n this._serviceUri + '/taxonomy',\r\n params ?? { model: 0, countItems: false }\r\n );\r\n }\r\n\r\n /**\r\n * Retrieve topics\r\n */\r\n getTopics() {\r\n return this.httpClient.get<ApiResult<NameValueItem<string>[]>>(\r\n this._serviceUri + '/topics'\r\n );\r\n }\r\n\r\n /**\r\n * Retrieve topics as tree\r\n */\r\n getTopicsAsTree() {\r\n return this.httpClient.get<ApiResult<FolderTree>>(\r\n this._serviceUri + '/topics2'\r\n );\r\n }\r\n\r\n /**\r\n * Retrieve tags\r\n */\r\n getTags() {\r\n return this.httpClient.get<ApiResult<NameValueItem<string>[]>>(\r\n this._serviceUri + '/tags'\r\n );\r\n }\r\n\r\n\r\n ///\r\n // DASHBOARD\r\n ///\r\n /**\r\n * Retrieve current dashboard\r\n */\r\n loadDashboard() {\r\n return this.httpClient\r\n .post<ApiResult<ClipperDashboardResult>>(\r\n this._serviceUri + '/account/dashboard',\r\n { refreshing: true }\r\n ).subscribe((r: ApiResult<ClipperDashboardResult>) => {\r\n if (r.success) {\r\n this.dashboard.documentUpdates = r.value.documentUpdates;\r\n this.dashboard.expiredDeadlines = r.value.expiredDeadlines;\r\n this.dashboard.expiringDeadlines = r.value.expiringDeadlines;\r\n this.dashboard.isTrial = r.value.isTrial;\r\n this.dashboard.items.set(r.value.items ?? []);\r\n this.broadcastService.sendMessage(ClipperMessages.COMMAND_DASHBOARD_UPDATED);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Retrieve last 15 days \r\n * @param params : the query params\r\n */\r\n last15Days(params: ClipperSearchParams) {\r\n return this.httpClient.post<ApiResult<ClipperLastDaysResult>>(\r\n this._serviceUri + '/account/last-15-days',\r\n params\r\n );\r\n }\r\n\r\n /**\r\n * Update unread items\r\n * @param module : the module\r\n * @param model : the optional model\r\n * @param increment : the increment (can be negative)\r\n */\r\n updateUnreadItems(module: ClipperModule, model?: ClipperModel, increment?: number) {\r\n increment ??= 0;\r\n if (increment !== 0) {\r\n this.dashboard.updateUnreadItems(module, model, increment);\r\n }\r\n this.broadcastService.sendMessage(ClipperMessages.COMMAND_DASHBOARD_UPDATED);\r\n }\r\n\r\n ///\r\n // LINKS\r\n ///\r\n\r\n /**\r\n * Save a user link\r\n * @param item: the user link\r\n */\r\n saveLink(item: ClipperUserLink) {\r\n return this.httpClient.post<ApiResult<boolean>>(\r\n this._serviceUri + '/account/links/save',\r\n item\r\n );\r\n }\r\n\r\n /**\r\n * Delete a user link\r\n * @param item: the user link\r\n */\r\n deleteLink(item: ClipperUserLink) {\r\n return this.httpClient.post<ApiResult<boolean>>(\r\n this._serviceUri + '/account/links/delete',\r\n item\r\n );\r\n }\r\n\r\n\r\n ///\r\n // BAG - WORKING DOCUMENTS\r\n ///\r\n\r\n /**\r\n * Load working documents\r\n */\r\n loadBag() {\r\n return this.httpClient\r\n .get<ApiResult<ClipperUserWorkingDocument[]>>(\r\n this.serviceUri + '/documents/working'\r\n )\r\n .subscribe(\r\n (r: ApiResult<ClipperUserWorkingDocument[]>) => {\r\n if (!r.success) {\r\n this.dialogService.error(r.message);\r\n } else {\r\n if (r.value) {\r\n const items: ClipperDocumentInfo[] = [];\r\n r.value.forEach(n => {\r\n if (n.documentDescriptor) {\r\n const documentInfo = JSON.parse(n.documentDescriptor);\r\n if (documentInfo) {\r\n n.documentId = documentInfo.DocumentId || documentInfo.Id;\r\n n.title1 = documentInfo.Title1 ?? documentInfo.Title2;\r\n n.title2 = documentInfo.Title1 ? documentInfo.Title2 : undefined;\r\n }\r\n n.documentDescriptor = undefined;\r\n items.push(n);\r\n }\r\n });\r\n this.bag.set(items);\r\n }\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Add one or more working document\r\n * @param documentIds : the document ids to add\r\n */\r\n addToBag(documentIds: string[]) {\r\n return this.httpClient\r\n .post<ApiResult<ClipperUserWorkingDocument[]>>(\r\n this.serviceUri + '/documents/working/add',\r\n { documentIds: documentIds }\r\n )\r\n .subscribe((r: ApiResult<ClipperUserWorkingDocument[]>) => {\r\n if (!r.success) {\r\n this.dialogService.error(r.message);\r\n } else {\r\n if (r.value) {\r\n const newItems: ClipperDocumentInfo[] = [];\r\n r.value.forEach(n => {\r\n if (n.documentDescriptor) {\r\n const documentInfo = JSON.parse(n.documentDescriptor);\r\n if (documentInfo) {\r\n n.documentId = documentInfo.DocumentId || documentInfo.Id;\r\n n.title1 = documentInfo.Title1 ?? documentInfo.Title2;\r\n n.title2 = documentInfo.Title1 ? documentInfo.Title2 : null;\r\n }\r\n n.documentDescriptor = undefined;\r\n newItems.push(n);\r\n }\r\n });\r\n if (newItems.length > 0) {\r\n this.bag.update((values: any) => [...values, ...newItems]);\r\n }\r\n this.dialogService.toast('Operazione completata con successo.');\r\n }\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Remove one working document\r\n * @param documentId : the document id\r\n */\r\n removeFromBag(documentId: string) {\r\n return this.httpClient\r\n .post<ApiResult<number>>(\r\n this.serviceUri + '/documents/working/delete',\r\n { documentIds: [documentId] }\r\n )\r\n .subscribe((r: ApiResult<number>) => {\r\n if (!r.success) {\r\n this.dialogService.error(r.message);\r\n } else {\r\n const p = this.bag().findIndex((n: any) => n.documentId === documentId);\r\n if (p !== -1) {\r\n this.bag.update((values: any) => {\r\n values.splice(p, 1);\r\n return [...values];\r\n });\r\n this.dialogService.toast('Operazione completata con successo.');\r\n }\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Clear all working documents\r\n */\r\n clearBag() {\r\n return this.httpClient\r\n .post<ApiResult<number>>(\r\n this.serviceUri + '/documents/working/delete',\r\n { deleteAll: true }\r\n )\r\n .subscribe((r: ApiResult<number>) => {\r\n if (!r.success) {\r\n this.dialogService.error(r.message);\r\n } else {\r\n this.bag.set([]);\r\n this.dialogService.toast('Operazione completata con successo.');\r\n }\r\n });\r\n }\r\n\r\n ///\r\n // WORKING SEARCHES\r\n ///\r\n\r\n /**\r\n * Load working searches\r\n * @param: module: the module to load searches for\r\n */\r\n loadSearches(module: ClipperModule) {\r\n return this.httpClient\r\n .get<ApiResult<ClipperUserSearch[]>>(\r\n this.serviceUri + '/documents/searches/?module=' + module\r\n )\r\n }\r\n\r\n /**\r\n * Save a working search\r\n * @param params : the clipper user search\r\n */\r\n saveSearch(params: ClipperUserSearch) {\r\n return this.httpClient\r\n .post<ApiResult<ClipperUserSearch>>(\r\n this.serviceUri + '/documents/searches/save',\r\n params\r\n );\r\n }\r\n\r\n /**\r\n * Remove one working search\r\n * @param id : the id to remove\r\n */\r\n deleteSearch(id: number) {\r\n return this.httpClient\r\n .post<ApiResult<number>>(\r\n this.serviceUri + '/documents/searches/delete',\r\n { id: id }\r\n );\r\n }\r\n\r\n ///\r\n // USER SETTINGS AND TRIAL\r\n ///\r\n\r\n /**\r\n * Reset a user password\r\n * @param params parameters\r\n */\r\n resetPassword(params: any) {\r\n return this.httpClient.post<ApiResult<ResetPasswordDialogResult>>(\r\n this._serviceUri + '/account/password/reset',\r\n params\r\n );\r\n }\r\n\r\n /**\r\n * Recover password\r\n * @param params parameters\r\n */\r\n recoverPassword(params: RecoverPasswordDialogResult) {\r\n return this.httpClient.post<ApiResult<boolean>>(\r\n this._serviceUri + '/account/password/recover',\r\n params\r\n );\r\n }\r\n\r\n\r\n /**\r\n * Update settings \r\n * @param params parameters\r\n */\r\n updateSettings(params: any) {\r\n return this.httpClient.post<ApiResult<boolean>>(\r\n this._serviceUri + '/account/settings/update',\r\n params\r\n ).pipe(\r\n map(r => {\r\n if (r.success) {\r\n if (params.channels) {\r\n // Update channels\r\n if (this._loginInfo) {\r\n this._loginInfo.channels = params.channels;\r\n this.storeContext();\r\n this.initializeChannels();\r\n }\r\n }\r\n }\r\n return r;\r\n })\r\n );\r\n }\r\n\r\n /**\r\n * Update channel state\r\n * @param id: the channel id (1, 2, 3, 4)\r\n */\r\n updateChannelsState(params: ClipperUpdateChannelsStateParams) {\r\n return this.httpClient.post<ApiResult<ClipperDashboardResult>>(\r\n this._serviceUri + '/account/settings/channels/update',\r\n params\r\n ).pipe(\r\n map(r => {\r\n if (r.success) {\r\n // Update channels\r\n if (this._loginInfo) {\r\n this._loginInfo.channels = r.value.channels ?? [];\r\n }\r\n // Update dashboard\r\n this.dashboard.documentUpdates = r.value.documentUpdates;\r\n this.dashboard.expiredDeadlines = r.value.expiredDeadlines;\r\n this.dashboard.expiringDeadlines = r.value.expiringDeadlines;\r\n this.dashboard.isTrial = r.value.isTrial;\r\n this.dashboard.items.set(r.value.items ?? []);\r\n this.broadcastService.sendMessage(ClipperMessages.COMMAND_DASHBOARD_UPDATED);\r\n this.storeContext();\r\n this.initializeChannels();\r\n }\r\n return r;\r\n })\r\n );\r\n }\r\n\r\n /**\r\n * Get trial info\r\n */\r\n private getTrialInfo() {\r\n return this.httpClient.get<ApiResult<ClipperUserTrialInfo>>(\r\n this._serviceUri + '/account/trial'\r\n );\r\n }\r\n\r\n /**\r\n * Update trial info\r\n */\r\n updateTrialInfo() {\r\n if (!this._loginInfo || this._loginInfo?.context?.hasTrial === false)\r\n return; // Not supported\r\n this.getTrialInfo().subscribe((r: ApiResult<ClipperUserTrialInfo>) => {\r\n if (r.success) {\r\n if (this._loginInfo?.context) {\r\n if (r.value) {\r\n this._loginInfo.context.hasTrial = true;\r\n this._loginInfo.context.trialInfo = r.value;\r\n } else {\r\n this._loginInfo.context.hasTrial = false;\r\n this._loginInfo.context.trialInfo = undefined;\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n ///\r\n // TEAMS\r\n ///\r\n\r\n /**\r\n * Rename a team\r\n * @param newName : the new name\r\n */\r\n renameTeam(newName: string) {\r\n return this.httpClient.post<ApiResult<ClipperTeamInfo>>(\r\n this._serviceUri + '/account/teams/update',\r\n { title: newName }\r\n );\r\n }\r\n\r\n /**\r\n * Retrieve teams\r\n */\r\n getTeams(params: ClipperTeamsSearchParams) {\r\n return this.httpClient.post<ApiResult<ClipperTeamsSearchResult>>(\r\n this._serviceUri + '/account/teams',\r\n params\r\n )\r\n .pipe(\r\n map((r: ApiResult<ClipperTeamsSearchResult>) => {\r\n // Store teams\r\n if (!params.adminsOnly) {\r\n this._teams = r.value.items;\r\n }\r\n return r;\r\n })\r\n );\r\n }\r\n\r\n /**\r\n * Retrieve team members\r\n */\r\n getTeamMembers(params: ClipperTeamsSearchParams) {\r\n return this.httpClient.post<ApiResult<ClipperTeamMembersSearchResult>>(\r\n this._serviceUri + '/account/teams/members',\r\n params\r\n );\r\n }\r\n\r\n /**\r\n * Delete members\r\n * @param ids: the id list to delete\r\n */\r\n deleteTeamMembers(ids: number[]) {\r\n return this.httpClient.post<ApiResult<number>>(\r\n this._serviceUri + '/account/teams/members/delete',\r\n { ids: ids }\r\n );\r\n }\r\n\r\n /**\r\n * Save member\r\n * @param item: the item to save\r\n */\r\n saveTeamMember(item: ClipperTeamMemberInfo) {\r\n return this.httpClient.post<ApiResult<ClipperTeamMemberInfo>>(\r\n this._serviceUri + '/account/teams/members/save',\r\n item\r\n );\r\n }\r\n\r\n\r\n ///\r\n // CALENDAR\r\n ///\r\n /**\r\n * Query calendar\r\n */\r\n queryCalendar(params: ClipperCalendarSearchParams) {\r\n return this.httpClient.post<ApiResult<ClipperCalendarSearchResult>>(\r\n this._serviceUri + '/calendar',\r\n params\r\n )\r\n .pipe(\r\n map((r: ApiResult<ClipperCalendarSearchResult>) => {\r\n // Store teams\r\n if (r.success) {\r\n this._teams = r.value.teams;\r\n }\r\n return r;\r\n })\r\n );\r\n }\r\n\r\n /**\r\n * Get the calendar snapshot\r\n */\r\n calendarSnapshot(params: ClipperCalendarSearchParams) {\r\n return this.httpClient.post<ApiResult<ClipperSearchCalendarSnapshotResult>>(\r\n this._serviceUri + '/calendar/snapshot',\r\n params\r\n );\r\n }\r\n\r\n /**\r\n * Delete one or more items\r\n * @param ids: ids to delete\r\n */\r\n deleteCalendarDeadlines(ids: string[]) {\r\n return this.httpClient.post<ApiResult<number>>(\r\n this._serviceUri + '/calendar/delete',\r\n { ids: ids }\r\n );\r\n }\r\n\r\n /**\r\n * Copy one or more items\r\n * @param params parameters\r\n */\r\n copyCalendarDeadlines(params: ClipperCalendarCopyDeadlinesParams) {\r\n return this.httpClient.post<ApiResult<number>>(\r\n this._serviceUri + '/calendar/copy',\r\n params\r\n );\r\n }\r\n\r\n /**\r\n * Close a deadline\r\n * @param id : the id to close\r\n */\r\n closeCalendarDeadline(id: string) {\r\n return this.httpClient.post<ApiResult<ClipperDeadlineInfo>>(\r\n this._serviceUri + '/calendar/close',\r\n { id: id }\r\n );\r\n }\r\n\r\n /**\r\n * Save an item\r\n * @param params parameters\r\n */\r\n saveCalendarDeadline(params: ClipperCalendarSaveDeadlineParams) {\r\n return this.httpClient.post<ApiResult<ClipperDeadlineInfo[]>>(\r\n this._serviceUri + '/calendar/save',\r\n params\r\n );\r\n }\r\n\r\n /**\r\n * Retrive a n item\r\n * @param id : the item id\r\n */\r\n getCalendarDeadline(id: string) {\r\n return this.httpClient.get<ApiResult<ClipperDeadlineInfo>>(\r\n this._serviceUri + '/calendar/' + id\r\n );\r\n }\r\n\r\n /**\r\n * Export to iCalendar format\r\n * @param ids : deadlines to export\r\n */\r\n exportCalendarDeadlines(ids: string[]) {\r\n return this.httpClient.post(\r\n this._serviceUri + '/calendar/export',\r\n { ids: ids },\r\n {\r\n responseType: 'blob'\r\n }\r\n );\r\n }\r\n\r\n ///\r\n // ARCHIVE\r\n ///\r\n /**\r\n * Retrieve all folders\r\n * @param params : parameters\r\n */\r\n getArchiveFolders(params: ClipperArchiveFoldersSearchParams) {\r\n return this.httpClient\r\n .post<ApiResult<ClipperArchiveFoldersSearchResult>>(\r\n this._serviceUri + '/archive/folders',\r\n params\r\n )\r\n .pipe(\r\n map((r: ApiResult<ClipperArchiveFoldersSearchResult>) => {\r\n // Store teams\r\n if (r.success) {\r\n this._teams = r.value.teams;\r\n }\r\n return r;\r\n\r\n return r;\r\n })\r\n );\r\n }\r\n\r\n /**\r\n * Save folder\r\n * @param params : parameters\r\n */\r\n saveArchiveFolder(params: Folder) {\r\n return this.httpClient.post<ApiResult<Folder>>(\r\n this._serviceUri + '/archive/folders/save',\r\n params\r\n );\r\n }\r\n\r\n /**\r\n * Export folders\r\n * @param id: the folder id or undefined to export all folders\r\n * @param teamId: the optional team id. Default undefined (personal)\r\n */\r\n exportArchiveFolders(id?: string, teamId?: string) {\r\n let url = this._serviceUri + '/archive/export/?';\r\n if (id) {\r\n url += 'id=' + id;\r\n }\r\n if (teamId) {\r\n if (id) {\r\n url += '&';\r\n }\r\n url += 'team=' + teamId;\r\n }\r\n return this.httpClient.get(\r\n url,\r\n {\r\n headers: new HttpHeaders({\r\n 'Content-Type': 'application/octet-stram'\r\n }),\r\n responseType: 'blob'\r\n }\r\n );\r\n }\r\n\r\n /**\r\n * Import folders\r\n * @param params : parameters\r\n */\r\n importArchiveFolders(params: ClipperArchiveFoldersImportParams) {\r\n // Prepare form\r\n const formData = new FormData();\r\n formData.append(params.file.name, params.file);\r\n formData.append('sourceFileName', params.file.name);\r\n formData.append('overwrite', params.overwrite === true ? \"true\" : \"false\");\r\n if (params.destFolderId) {\r\n formData.append('destFolderId', params.destFolderId);\r\n }\r\n if (params.teamId) {\r\n formData.append('teamId', params.teamId);\r\n }\r\n // Create request\r\n return this.httpClient.request(\r\n new HttpRequest(\r\n 'POST',\r\n this._serviceUri + '/archive/import/',\r\n formData,\r\n { reportProgress: true }\r\n )\r\n );\r\n }\r\n\r\n /**\r\n * Get files and folders\r\n * @param params : parameters\r\n */\r\n queryArchiveItems(params: ClipperArchiveFilesSearchParams) {\r\n return this.httpClient.post<ApiResult<ClipperArchiveFilesSearchResult>>(\r\n this._serviceUri + '/archive/files',\r\n params\r\n );\r\n }\r\n\r\n /**\r\n * Delete file and folders\r\n * @param params parameters\r\n */\r\n deleteArchiveItems(params: ClipperArchiveFilesDeleteParams) {\r\n return this.httpClient.post<ApiResult<number>>(\r\n this._serviceUri + '/archive/files/delete',\r\n params\r\n );\r\n }\r\n\r\n /**\r\n * Copy file and folders to another folder or the same\r\n * @param params parameters\r\n */\r\n copyArchiveItems(params: ClipperArchiveFilesCopyParams) {\r\n return this.httpClient.post<ApiResult<number>>(\r\n this._serviceUri + '/archive/files/copy',\r\n params\r\n );\r\n }\r\n\r\n\r\n /**\r\n * Save a file\r\n * @param params : parameters\r\n */\r\n saveArchiveFile(params: ClipperArchiveFileInfo) {\r\n // Prepare form\r\n let formData = new FormData();\r\n if (params.file) formData.append(params.file.file.name, params.file.file);\r\n if (params.id) formData.append('id', params.id);\r\n if (params.folderId) {\r\n formData.append('folderId', params.folderId);\r\n }\r\n if (params.topicId && params.topicPath) {\r\n formData.append('topicId', params.topicId);\r\n formData.append('topicPath', params.topicPath);\r\n }\r\n if (params.title1) formData.append('title1', params.title1);\r\n if (params.title2) formData.append('title2', params.title2);\r\n if (params.origin) formData.append('origin', params.origin);\r\n if (params.originDescription) {\r\n formData.append('originDescription', params.originDescription);\r\n }\r\n if (params.documentId) formData.append('documentId', params.documentId);\r\n if (params.documentIds) formData.append('documentIds', params.documentIds);\r\n if (params.binaryId) formData.append('binaryId', params.binaryId?.toString());\r\n if (params.tags) formData.append('tags', params.tags);\r\n if (params.notes) formData.append('notes', params.notes);\r\n if (params.fileName) formData.append('fileName', params.fileName);\r\n if (params.fileType) formData.append('fileType', (params.fileType as number).toString());\r\n if (params.storageType) formData.append('storageType', (params.storageType as number).toString());\r\n if (params.model) formData.append('model', (params.model as number).toString());\r\n\r\n // Create request\r\n return this.httpClient.request(\r\n new HttpRequest(\r\n 'POST',\r\n this._serviceUri + '/archive/files/save',\r\n formData,\r\n { reportProgress: true }\r\n )\r\n );\r\n }\r\n\r\n /**\r\n * Get file data\r\n * @param id : the item id\r\n */\r\n getArchiveFile(id: string) {\r\n return this.httpClient.get<ApiResult<ClipperArchiveFileInfo>>(\r\n this._serviceUri + '/archive/files/' + id);\r\n }\r\n\r\n /**\r\n * Download file\r\n * @param id : the binary id to download\r\n * @param otp : the optional one time password\r\n */\r\n downloadArchiveFile(id: number, otp?: string) {\r\n return this.httpClient.get(\r\n this._serviceUri + '/archive/files/download/?id=' + id + '&otp=' + (otp ?? ''),\r\n { responseType: 'blob' }\r\n );\r\n }\r\n\r\n\r\n}\r\n","import { HttpErrorResponse, HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\r\nimport { Injectable, inject } from '@angular/core';\r\nimport { BroadcastService, ErrorInfo } from '@arsedizioni/ars-utils/core';\r\nimport { Observable, catchError, switchMap, throwError } from 'rxjs';\r\nimport { ClipperServiceFlags } from '../definitions';\r\nimport { ClipperService } from '../services/clipper.service';\r\nimport { ClipperMessages } from '../messages';\r\n\r\n\r\n@Injectable()\r\nexport class ClipperAuthInterceptor implements HttpInterceptor {\r\n private clipperService = inject(ClipperService);\r\n private broadcastService = inject(BroadcastService);\r\n private lastErrorTime: number = -1;\r\n\r\n intercept(\r\n request: HttpRequest<any>,\r\n next: HttpHandler\r\n ): Observable<HttpEvent<any>> {\r\n if (request.url.startsWith(this.clipperService.serviceUri)) {\r\n request = request.clone({ withCredentials: true });\r\n return next.handle(this.addTokenToRequest(request))\r\n .pipe(\r\n catchError(error => {\r\n if (error.url.startsWith(this.clipperService.serviceUri)) {\r\n if (\r\n error instanceof HttpErrorResponse &&\r\n error.status === 401 &&\r\n !request.url.includes(\"/login\")\r\n ) {\r\n return this.handle401Error(request, next);\r\n }\r\n const errorStatus = parseInt(error.status ?? \"0\");\r\n if ((errorStatus > 0 && errorStatus < 500) || (this.clipperService.flags & ClipperServiceFlags.NotifySystemErrors) > 0) {\r\n const errorTime = new Date().getTime();\r\n if (errorTime - this.lastErrorTime > 5000) {\r\n this.lastErrorTime = errorTime;\r\n let message = \"\"\r\n switch (errorStatus) {\r\n case 0:\r\n message = \"In questo momento Clipper non è disponibile. Riprova tra qualche minuto.\";\r\n break;\r\n case 403:\r\n message = \"Non hai i permessi necessari per eseguire l'operazione richiesta.\";\r\n break;\r\n default:\r\n message = (error.error?.message ?? error.message ?? \"Impossibile eseguire l'operazione richiesta.\").replaceAll(\"\\r\\n\", \"</p><p>\");\r\n break;\r\n }\r\n this.broadcastService.sendMessage(\r\n ClipperMessages.ERROR,\r\n {\r\n invalidateSession: errorStatus === 405 || errorStatus === 410,\r\n message: message,\r\n title: \"Errore in Clipper\",\r\n errorStatus: errorStatus,\r\n service: this.clipperService.serviceUri\r\n } as ErrorInfo);\r\n }\r\n }\r\n }\r\n return throwError(() => error);\r\n }));\r\n }\r\n return next.handle(request);\r\n }\r\n\r\n /**\r\n * Handle 401 error\r\n * @param request : the request\r\n * @param next : the http handler\r\n */\r\n private handle401Error(request: HttpRequest<any>, next: HttpHandler) {\r\n if (this.clipperService.loggedIn()) {\r\n return this.clipperService.refresh().pipe(\r\n switchMap(() => {\r\n return next.handle(this.addTokenToRequest(request));\r\n }),\r\n catchError(error => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n return next.handle(request);\r\n }\r\n\r\n /**\r\n * Add token to request\r\n * @param request : the request\r\n * @param token: the token or null to use curre3nt\r\n */\r\n private addTokenToRequest(\r\n request: HttpRequest<any>,\r\n token?: string\r\n ): HttpRequest<any> {\r\n\r\n if (request.url.startsWith(this.clipperService.serviceUri)) {\r\n if (this.clipperService.loggedIn()) {\r\n if (!token) token = this.clipperService.getAuthToken();\r\n if (token) {\r\n return request.clone({\r\n setHeaders: {\r\n Authorization: 'Bearer ' + token,\r\n 'ngsw-bypass': 'ngsw-bypass'\r\n },\r\n });\r\n }\r\n }\r\n }\r\n return request;\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\n\r\n@NgModule()\r\nexport class ArsClipperCommonModule {}\r\n\r\n// Other exports\r\nexport * from './messages';\r\nexport * from './definitions';\r\nexport * from './interceptors/auth.interceptor';\r\nexport * from './services/clipper.service';\r\n\r\n","/*\r\n * Public API Surface of ars-utils\r\n */\r\n\r\nexport * from './common/common.module';\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-clipper.common.mjs","sources":["../../../projects/ars-utils/clipper.common/common/messages.ts","../../../projects/ars-utils/clipper.common/common/definitions.ts","../../../projects/ars-utils/clipper.common/common/services/clipper.service.ts","../../../projects/ars-utils/clipper.common/common/interceptors/auth.interceptor.ts","../../../projects/ars-utils/clipper.common/common/common.module.ts","../../../projects/ars-utils/clipper.common/public_api.ts","../../../projects/ars-utils/clipper.common/arsedizioni-ars-utils-clipper.common.ts"],"sourcesContent":["export const ClipperMessages = {\r\n /**\r\n * Messages\r\n */\r\n\r\n // Error\r\n ERROR: '§clipper-error',\r\n \r\n // Login\r\n LOGIN_CHANGED: '§clipper-login-changed',\r\n LOGIN_COMPLETED: '§clipper-login-completed',\r\n LOGOUT_COMPLETED: '§clipper-logout-completed',\r\n LOGIN_PENDING: '§clipper-login-pending',\r\n LOGOUT: '§clipper-logout',\r\n\r\n // Document\r\n DOCUMENT_READ: '$clipper-document-read',\r\n DOCUMENT_NAVIGATE: '$clipper-document-navigate',\r\n DOCUMENT_NAVIGATED: '$clipper-document-navigated',\r\n DOCUMENT_SELECTED: '$clipper-document-selected',\r\n DOCUMENT_SELECTED_INNER: '$clipper-document-selected_inner',\r\n\r\n // Settings\r\n SETTINGS_CHANGED: '$clipper-settings-changed',\r\n \r\n // Commands\r\n COMMAND_ARCHIVE_ADD: '$clipper-command-archive-add',\r\n COMMAND_CALENDAR_ADD: '$clipper-command-calendar-add',\r\n COMMAND_WORKING_OPEN: '$clipper-command-working-documents-open',\r\n COMMAND_WORKING_ADD: '$clipper-command-working-documents-add',\r\n COMMAND_SEARCH_RESTORED: '$clipper-command-search-restored',\r\n COMMAND_SEARCH_EXECUTED: '$clipper-command-search-executed',\r\n COMMAND_HISTORY_OPEN: '$clipper-command-history-open',\r\n COMMAND_DASHBOARD_UPDATED: '$clipper-command-dashboard-updated',\r\n\r\n // AI\r\n AI_CONCERN_ME: '$clipper-ai-concernme',\r\n AI_EXPLAIN: '$clipper-ai-explain',\r\n AI_COMMENT: '$clipper-ai-comment',\r\n AI_NEWS: '$clipper-ai-news',\r\n\r\n // Interop\r\n INTEROP_RS_NEW_LAW: '$clipper-interop-rs-new-law',\r\n INTEROP_RS_NEW_ACTIVITY: '$clipper-interop-rs-new-activity',\r\n INTEROP_RS_USAGE_REPORT: '$clipper-interop-rs-usage-report',\r\n\r\n // Updates\r\n UPDATE_RELOAD: '§update-reload',\r\n};\r\n","import { SendToDialogResult } from '@arsedizioni/ars-utils/ui.application';\r\nimport { Folder, LoginResult, NameValueItem } from '@arsedizioni/ars-utils/core';\r\nimport { LoginOAuthType } from '@arsedizioni/ars-utils/ui.oauth';\r\nimport { computed, Signal, signal } from '@angular/core';\r\n\r\n\r\nexport enum ClipperServiceFlags {\r\n None = 0,\r\n NotifySystemErrors = 1,\r\n DisplayConnectionStateMessages = 1 << 1\r\n}\r\nexport enum ClipperRecurrenceType {\r\n Year = 1,\r\n Month = 2,\r\n Day = 3\r\n}\r\n\r\nexport const ClipperRecurrenceTypes: NameValueItem<ClipperRecurrenceType>[] = [\r\n { name: 'Anni', value: ClipperRecurrenceType.Year },\r\n { name: 'Mesi', value: ClipperRecurrenceType.Month },\r\n { name: 'Giorni', value: ClipperRecurrenceType.Day }\r\n]\r\n\r\nexport enum ClipperSelectionMode {\r\n None = 0,\r\n Single = 1,\r\n TwoOrMore = 2,\r\n Multi = 3\r\n}\r\n\r\n\r\n\r\nexport enum ClipperModuleGroup {\r\n Home = 0,\r\n NormativaVigente = 1,\r\n UltimeNovità = 2,\r\n ParApprofondire = 3,\r\n DGInfo = 4,\r\n Giurisprudenza = 5,\r\n Calendario = 11,\r\n Archivio = 12,\r\n Evolution = 201,\r\n Ars = 202,\r\n Ricerca = 99\r\n}\r\n\r\nexport enum ClipperModule {\r\n NormativaVigente = 4,\r\n News = 1,\r\n GazzetteBollettiniEFontiDiverse = 2,\r\n Giurisprudenza = 5,\r\n ModificheAbrogazioniERinvii = 3,\r\n ScadenzeESegnalazioni = 12,\r\n AllerteAlimentari = 8,\r\n Approfondimenti = 6,\r\n QuesitiECasiRisolti = 10,\r\n MetodiDiAnalisi = 11,\r\n DGInfo = 61,\r\n Ricerca = 99,\r\n GiurisprudenzaRecente = 18\r\n\r\n}\r\n\r\nexport enum ClipperModel {\r\n Unknown = 0,\r\n AggiornamentoNormativo = 2,\r\n News = 3,\r\n Articoli = 4,\r\n Juris = 5,\r\n Quesiti = 8,\r\n NormativaVigente = 9,\r\n Scadenze = 10,\r\n Coordinamento = 11,\r\n AllerteAlimentari = 13,\r\n MetodiDiAnalisi = 14,\r\n GiurisprudenzaRecente = 18,\r\n Segnalazioni = 20,\r\n UltimeNovità = 21\r\n}\r\n\r\nexport const ClipperModels: NameValueItem<number>[] = [\r\n { value: ClipperModel.AggiornamentoNormativo, name: \"Testi storici\" },\r\n { value: ClipperModel.News, name: 'News' },\r\n { value: ClipperModel.Articoli, name: 'Articoli' },\r\n { value: ClipperModel.Juris, name: 'Note a sentenza' },\r\n { value: ClipperModel.GiurisprudenzaRecente, name: 'Giurisprudenza' },\r\n { value: ClipperModel.Quesiti, name: 'Quesiti' },\r\n { value: ClipperModel.NormativaVigente, name: 'Normativa vigente' },\r\n { value: ClipperModel.Scadenze, name: 'Scadenze' },\r\n { value: ClipperModel.AllerteAlimentari, name: 'Allerte alimentari' },\r\n { value: ClipperModel.Coordinamento, name: 'Modifiche e abrogazioni' },\r\n]\r\n\r\nexport const ClipperModuleGroups: NameValueItem<number>[] = [\r\n { name: \"Ultime novità\", value: ClipperModuleGroup.Home },\r\n { name: \"Ricerca\", value: ClipperModuleGroup.Ricerca },\r\n { name: \"DG Info\", value: ClipperModuleGroup.DGInfo },\r\n { name: \"Calendario\", value: ClipperModuleGroup.Calendario },\r\n { name: \"Archivio\", value: ClipperModuleGroup.Archivio }\r\n];\r\n\r\nexport const ClipperModules: NameValueItem<number>[] = [\r\n { name: 'News, articoli di approfondimento e note a sentenza', shortName: 'Novità', value: ClipperModule.News },\r\n { name: 'Gazzette, Bollettini e fonti diverse', shortName: 'Gazzette, Bollettini e fonti diverse', value: ClipperModule.GazzetteBollettiniEFontiDiverse },\r\n { name: 'Giurisprudenza', shortName: 'Giurisprudenza', value: ClipperModule.Giurisprudenza },\r\n { name: 'Modifiche, abrogazioni e rinvii', shortName: 'Modifiche, abrogazioni e rinvii', value: ClipperModule.ModificheAbrogazioniERinvii },\r\n { name: 'Allerte alimentari', shortName: 'Allerte alimentari', value: ClipperModule.AllerteAlimentari },\r\n { name: 'Scadenze e segnalazioni', shortName: 'Scadenze e segnalazioni', value: ClipperModule.ScadenzeESegnalazioni },\r\n { name: 'Normativa vigente', shortName: 'Normativa vigente', value: ClipperModule.NormativaVigente },\r\n { name: 'Quesiti e casi risolti', shortName: 'Quesiti', value: ClipperModule.QuesitiECasiRisolti },\r\n]\r\n\r\nexport enum ClipperChannel {\r\n None = 0,\r\n LavoroEAmbiente = 1,\r\n SostanzeAlimentari = 2,\r\n MerciPericolose = 3,\r\n Energia = 4,\r\n DGInfo = 5\r\n}\r\n\r\nexport const ClipperChannels: NameValueItem<ClipperChannel>[] = [\r\n { value: ClipperChannel.LavoroEAmbiente, name: \"Lavoro e Ambiente\", header: \"LA\" },\r\n { value: ClipperChannel.SostanzeAlimentari, name: \"Sostanze Alimentari\", header: \"SA\" },\r\n { value: ClipperChannel.Energia, name: \"Energia\", header: \"E\" },\r\n { value: ClipperChannel.MerciPericolose, name: \"Merci Pericolose\", header: \"MP\" }\r\n]\r\n\r\nexport interface ClipperAvailableChannel extends NameValueItem<ClipperChannel> {\r\n active?: boolean;\r\n}\r\n\r\nexport const ClipperRegions: NameValueItem<string>[] = [\r\n {\r\n value: '4RAB',\r\n name: 'Abruzzo',\r\n },\r\n {\r\n value: '4RBA',\r\n name: 'Basilicata',\r\n },\r\n {\r\n value: '4RCAL',\r\n name: 'Calabria',\r\n },\r\n {\r\n value: '4RCAM',\r\n name: 'Campania',\r\n },\r\n {\r\n value: '4REM',\r\n name: 'Emilia Romagna',\r\n },\r\n {\r\n value: '4RFVG',\r\n name: 'Friuli Venezia Giulia',\r\n },\r\n {\r\n value: '4RLA',\r\n name: 'Lazio',\r\n },\r\n {\r\n value: '4RLI',\r\n name: 'Liguria',\r\n },\r\n {\r\n value: '4RLO',\r\n name: 'Lombardia',\r\n },\r\n {\r\n value: '4RMA',\r\n name: 'Marche',\r\n },\r\n {\r\n value: '4RMO',\r\n name: 'Molise',\r\n },\r\n {\r\n value: '4RPI',\r\n name: 'Piemonte',\r\n },\r\n {\r\n value: '4RPU',\r\n name: 'Puglia',\r\n },\r\n {\r\n value: '4RSA',\r\n name: 'Sardegna',\r\n },\r\n {\r\n value: '4RSI',\r\n name: 'Sicilia',\r\n },\r\n {\r\n value: '4RTO',\r\n name: 'Toscana',\r\n },\r\n {\r\n value: '4RTAA',\r\n name: 'Trentino Alto Adige',\r\n },\r\n {\r\n value: '4RUM',\r\n name: 'Umbria',\r\n },\r\n {\r\n value: '4RVA',\r\n name: \"Valle D'Aosta\",\r\n },\r\n {\r\n value: '4RVE',\r\n name: 'Veneto',\r\n },\r\n {\r\n value: '4PAT',\r\n name: 'Prov. Aut. Trento',\r\n },\r\n {\r\n value: '4PAB',\r\n name: 'Prov. Aut. Bolzano',\r\n }\r\n]\r\n\r\nexport interface SectorInfo extends NameValueItem<string> {\r\n\r\n group?: string;\r\n channels?: string;\r\n sectorId?: string;\r\n}\r\n\r\nexport const ClipperSectors: SectorInfo[] = [\r\n {\r\n value: 'LC',\r\n name: 'Legislazione comunitaria',\r\n shortName: 'Comunitaria',\r\n group: 'S',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: 'LN',\r\n name: 'Legislazione nazionale',\r\n shortName: 'Nazionale',\r\n group: 'S',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n\r\n {\r\n value: 'LR',\r\n name: 'Legislazione regionale',\r\n shortName: 'Regionale',\r\n group: 'S',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: '4RAB',\r\n name: ' Abruzzo',\r\n group: 'A',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: '4PAB',\r\n name: ' Prov. Aut. Bolzano',\r\n group: 'A',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: '4RBA',\r\n name: ' Basilicata',\r\n group: 'A',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: '4RCAL',\r\n name: ' Calabria',\r\n group: 'A',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: '4RCAM',\r\n name: ' Campania',\r\n group: 'A',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: '4REM',\r\n name: ' Emilia Romagna',\r\n group: 'A',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: '4RFVG',\r\n name: ' Friuli Venezia Giulia',\r\n group: 'A',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: '4RLA',\r\n name: ' Lazio',\r\n group: 'A',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: '4RLI',\r\n name: ' Liguria',\r\n group: 'A',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: '4RLO',\r\n name: ' Lombardia',\r\n group: 'A',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: '4RMA',\r\n name: ' Marche',\r\n group: 'A',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: '4RMO',\r\n name: ' Molise',\r\n group: 'A',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: '4RPI',\r\n name: ' Piemonte',\r\n group: 'A',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: '4RPU',\r\n name: ' Puglia',\r\n group: 'A',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: '4RSA',\r\n name: ' Sardegna',\r\n group: 'A',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: '4RSI',\r\n name: ' Sicilia',\r\n group: 'A',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: '4RTO',\r\n name: ' Toscana',\r\n group: 'A',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: '4RTAA',\r\n name: ' Trentino Alto Adige',\r\n group: 'A',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: '4PAT',\r\n name: ' Prov. Aut. Trento',\r\n group: 'A',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: '4RUM',\r\n name: ' Umbria',\r\n group: 'A',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: '4RVA',\r\n name: \" Valle D'Aosta\",\r\n group: 'A',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: '4RVE',\r\n name: ' Veneto',\r\n group: 'A',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: 'GC',\r\n name: 'Giurisprudenza comunitaria',\r\n shortName: 'Giur. comunitaria',\r\n group: 'S',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: 'GN',\r\n name: 'Giurisprudenza nazionale',\r\n shortName: 'Giur. nazionale',\r\n group: 'S',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n {\r\n value: 'TN',\r\n name: 'Normativa tecnica',\r\n shortName: 'Tecnica',\r\n group: 'S',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n /* {\r\n value: 'TI',\r\n name: 'Normativa tecnica internazionale',\r\n shortName: 'Tecnica internaz.',\r\n group: 'S',\r\n channels: '|LA|SA|OP|E|',\r\n },*/\r\n {\r\n value: 'NI',\r\n name: 'Normativa internazionale',\r\n shortName: 'Internazionale',\r\n group: 'S',\r\n channels: '|LA|SA|OP|E|',\r\n },\r\n /* {\r\n value: 'SN',\r\n name: 'Documentazione scientifica',\r\n shortName: 'Scientifica',\r\n group: 'S',\r\n channels: '|SA|',\r\n } */\r\n]\r\n\r\nexport const ClipperSectorTypes: NameValueItem<string>[] = [\r\n\r\n {\r\n parentValue: 'NI',\r\n value: '14',\r\n name: 'Convenzione Internazionale',\r\n },\r\n {\r\n parentValue: 'NI',\r\n value: '6',\r\n name: 'Accordo Multilaterale',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '4',\r\n name: 'Accordo (naz.)',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '75',\r\n name: 'Altri documenti (naz.)',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '17',\r\n name: 'Circolare Commissariale',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '58',\r\n name: 'Circolare (Comitati)',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '10',\r\n name: 'Circolare Ministeriale',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '13',\r\n name: 'Comunicato (naz.)',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '15',\r\n name: 'Costituzione della Repubblica',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '18',\r\n name: 'Decreto Commissariale',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '21',\r\n name: 'Decreto Capo Provv. Stato',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '22',\r\n name: 'Decreto Pres. Cons. Ministri',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '25',\r\n name: 'Decreto Presidente Repubblica',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '27',\r\n name: 'Decreto Legge',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '28',\r\n name: 'Decreto Legge Luogotenenziale',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '29',\r\n name: 'D.Lgs. Capo Provv. Stato',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '30',\r\n name: 'D.Lgs. Governo',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '32',\r\n name: 'D.Lgs. Luogotenenziale',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '33',\r\n name: 'Decreto Luogotenenziale',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '34',\r\n name: 'Decreto Ministeriale',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '35',\r\n name: 'Deliberazione (naz.)',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '47',\r\n name: 'Determinazione (naz.)',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '26',\r\n name: 'Documento di consultazione',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '48',\r\n name: 'Legge',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '42',\r\n name: 'Lettera Circolare (Comitati)',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '43',\r\n name: 'Lettera Circolare Ministeriale',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '56',\r\n name: 'Nota Ministeriale',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '91',\r\n name: 'Ordinanza Commissariale',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '82',\r\n name: 'Ordinanza Pres. Cons. Ministri',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '57',\r\n name: 'Ordinanza Ministeriale',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '76',\r\n name: 'Provvedimento (naz.)',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '66',\r\n name: 'Regio Decreto',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '67',\r\n name: 'Regio Decreto Legge',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '68',\r\n name: 'Regio Decreto Legislativo',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '71',\r\n name: 'Statuto delle Regioni Ordinarie',\r\n },\r\n {\r\n parentValue: 'LC',\r\n value: '139',\r\n name: 'Accordi (CE)',\r\n },\r\n {\r\n parentValue: 'LC',\r\n value: '140',\r\n name: 'Atti diversi (CE/UE)',\r\n },\r\n {\r\n parentValue: 'LC',\r\n value: '131',\r\n name: 'Posizione Comune (CE)',\r\n },\r\n {\r\n parentValue: 'LC',\r\n value: '132',\r\n name: 'Posizione Comune (UE)',\r\n },\r\n {\r\n parentValue: 'LC',\r\n value: '126',\r\n name: 'Comunicazione (CE)',\r\n },\r\n {\r\n parentValue: 'LC',\r\n value: '127',\r\n name: 'Comunicazione (UE)',\r\n },\r\n {\r\n parentValue: 'LC',\r\n value: '111',\r\n name: 'Decisione (CE)',\r\n },\r\n {\r\n parentValue: 'LC',\r\n value: '112',\r\n name: 'Decisione (UE)',\r\n },\r\n {\r\n parentValue: 'LC',\r\n value: '113',\r\n name: 'Decisione (UE)',\r\n },\r\n {\r\n parentValue: 'LC',\r\n value: '121',\r\n name: 'Direttiva (CEE)',\r\n },\r\n {\r\n parentValue: 'LC',\r\n value: '122',\r\n name: 'Direttiva (CE)',\r\n },\r\n {\r\n parentValue: 'LC',\r\n value: '123',\r\n name: 'Direttiva (UE)',\r\n },\r\n {\r\n parentValue: 'LC',\r\n value: '138',\r\n name: 'Parere',\r\n },\r\n {\r\n parentValue: 'LC',\r\n value: '128',\r\n name: 'Raccomandazione (CEE)',\r\n },\r\n {\r\n parentValue: 'LC',\r\n value: '129',\r\n name: 'Raccomandazione (CE)',\r\n },\r\n {\r\n parentValue: 'LC',\r\n value: '130',\r\n name: 'Raccomandazione (UE)',\r\n },\r\n {\r\n parentValue: 'LC',\r\n value: '116',\r\n name: 'Regolamento (CEE)',\r\n },\r\n {\r\n parentValue: 'LC',\r\n value: '117',\r\n name: 'Regolamento (CE)',\r\n },\r\n {\r\n parentValue: 'LC',\r\n value: '118',\r\n name: 'Regolamento (UE)',\r\n },\r\n {\r\n parentValue: 'LC',\r\n value: '135',\r\n name: 'Rettifica',\r\n },\r\n {\r\n parentValue: 'LC',\r\n value: '133',\r\n name: 'Risoluzione',\r\n },\r\n {\r\n parentValue: 'LC',\r\n value: '134',\r\n name: 'Trattato',\r\n },\r\n {\r\n parentValue: 'LR',\r\n value: '69',\r\n name: 'Altri documenti (reg.)',\r\n },\r\n {\r\n parentValue: 'LR',\r\n value: '11',\r\n name: 'Circolare Pres. Giunta Reg.',\r\n },\r\n {\r\n parentValue: 'LR',\r\n value: '46',\r\n name: \"Circolare dell'Assessore\",\r\n },\r\n {\r\n parentValue: 'LR',\r\n value: '83',\r\n name: 'Circolare reg.',\r\n },\r\n {\r\n parentValue: 'LR',\r\n value: '70',\r\n name: 'Comunicato (reg.)',\r\n },\r\n {\r\n parentValue: 'LR',\r\n value: '80',\r\n name: 'Decreto del Dirigente',\r\n },\r\n {\r\n parentValue: 'LR',\r\n value: '24',\r\n name: 'Decreto Pres. Giunta Prov.',\r\n },\r\n {\r\n parentValue: 'LR',\r\n value: '23',\r\n name: 'Decreto Pres. Giunta Reg.',\r\n },\r\n {\r\n parentValue: 'LR',\r\n value: '19',\r\n name: \"Decreto dell'Assessore Regionale\",\r\n },\r\n {\r\n parentValue: 'LR',\r\n value: '31',\r\n name: 'Delib. Consiglio Prov.',\r\n },\r\n {\r\n parentValue: 'LR',\r\n value: '36',\r\n name: 'Delib. Consiglio Reg.',\r\n },\r\n {\r\n parentValue: 'LR',\r\n value: '37',\r\n name: 'Delib. Giunta Prov.',\r\n },\r\n {\r\n parentValue: 'LR',\r\n value: '38',\r\n name: 'Delib. Giunta Reg.',\r\n },\r\n {\r\n parentValue: 'LR',\r\n value: '81',\r\n name: 'Determinazione del Dirigente',\r\n },\r\n {\r\n parentValue: 'LR',\r\n value: '12',\r\n name: 'Direttiva (reg.)',\r\n },\r\n {\r\n parentValue: 'LR',\r\n value: '49',\r\n name: 'Legge Prov. Aut.',\r\n },\r\n {\r\n parentValue: 'LR',\r\n value: '50',\r\n name: 'Legge Regionale',\r\n },\r\n {\r\n parentValue: 'LR',\r\n value: '51',\r\n name: 'Linee guida (reg.)',\r\n },\r\n {\r\n parentValue: 'LR',\r\n value: '9',\r\n name: 'Ordinanza Pres. Prov.',\r\n },\r\n {\r\n parentValue: 'LR',\r\n value: '55',\r\n name: 'Ordinanza Pres. Reg.',\r\n },\r\n {\r\n parentValue: 'LR',\r\n value: '85',\r\n name: 'Provvedimento (reg.)',\r\n },\r\n {\r\n parentValue: 'LR',\r\n value: '65',\r\n name: 'Regolamento Regionale',\r\n },\r\n {\r\n parentValue: 'GN',\r\n value: '63',\r\n name: 'Decisione',\r\n },\r\n {\r\n parentValue: 'GN',\r\n value: '41',\r\n name: 'Decreto Penale',\r\n },\r\n {\r\n parentValue: 'GN',\r\n value: '54',\r\n name: 'Ordinanza',\r\n },\r\n {\r\n parentValue: 'GN',\r\n value: '62',\r\n name: 'Ricorso',\r\n },\r\n {\r\n parentValue: 'GN',\r\n value: '72',\r\n name: 'Sentenza',\r\n },\r\n {\r\n parentValue: 'GC',\r\n value: '143',\r\n name: 'Ordinanza (CE)',\r\n },\r\n {\r\n parentValue: 'GC',\r\n value: '144',\r\n name: 'Ordinanza (UE)',\r\n },\r\n {\r\n parentValue: 'GC',\r\n value: '141',\r\n name: 'Sentenza (CE)',\r\n },\r\n {\r\n parentValue: 'GC',\r\n value: '142',\r\n name: 'Sentenza (UE)',\r\n },\r\n {\r\n parentValue: 'TN',\r\n value: '73',\r\n name: 'Altri documenti (Enti ed Istituti)',\r\n },\r\n {\r\n parentValue: 'TN',\r\n value: '44',\r\n name: 'Circolare (Enti ed Istituti)',\r\n },\r\n {\r\n parentValue: 'TN',\r\n value: '20',\r\n name: 'Comunicato (Enti ed Istituti)',\r\n },\r\n {\r\n parentValue: 'TN',\r\n value: '60',\r\n name: 'Decreto (Enti ed Istituti)',\r\n },\r\n {\r\n parentValue: 'TN',\r\n value: '40',\r\n name: 'Delibera (Enti ed Istituti)',\r\n },\r\n {\r\n parentValue: 'TN',\r\n value: '53',\r\n name: 'Fascicolo (Enti ed Istituti)',\r\n },\r\n {\r\n parentValue: 'TN',\r\n value: '45',\r\n name: 'Istruzione Tecnica',\r\n },\r\n {\r\n parentValue: 'TN',\r\n value: '59',\r\n name: 'Lettera Circolare (Enti ed Istituti)',\r\n },\r\n {\r\n parentValue: 'TN',\r\n value: '79',\r\n name: 'Linee guida (Enti ed Istituti)',\r\n },\r\n {\r\n parentValue: 'TN',\r\n value: '98',\r\n name: 'Norma Tecnica',\r\n },\r\n {\r\n parentValue: 'TN',\r\n value: '97',\r\n name: 'Opuscolo Tecnico',\r\n },\r\n {\r\n parentValue: 'TN',\r\n value: '77',\r\n name: 'Pubblicazione (Enti ed Istituti)',\r\n },\r\n {\r\n parentValue: 'TN',\r\n value: '86',\r\n name: 'Quaderno',\r\n },\r\n {\r\n parentValue: 'TN',\r\n value: '52',\r\n name: 'Regolamento (Enti ed Istituti)',\r\n },\r\n {\r\n parentValue: 'TN',\r\n value: '84',\r\n name: 'Istruzione Operativa (Enti e Istituti)',\r\n },\r\n {\r\n parentValue: 'TN',\r\n value: '94',\r\n name: 'Nota (Enti e Istituti)',\r\n },\r\n {\r\n parentValue: 'NI',\r\n value: '104',\r\n name: 'Regolamento UNECE',\r\n },\r\n {\r\n parentValue: 'SN',\r\n value: '105',\r\n name: 'Documento',\r\n },\r\n {\r\n parentValue: 'TN',\r\n value: '106',\r\n name: 'Direttiva (Enti e Istituti)',\r\n },\r\n {\r\n parentValue: 'TN',\r\n value: '74',\r\n name: 'Prassi di riferimento',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '16',\r\n name: 'Linee guida (naz.)',\r\n },\r\n {\r\n parentValue: 'LN',\r\n value: '3',\r\n name: 'Direttiva (naz.)',\r\n },\r\n /* {\r\n parentValue: 'TI',\r\n value: '107',\r\n name: 'Normativa Tecnica Internazionale',\r\n },*/\r\n]\r\n\r\nexport const ClipperAuthors: SectorInfo[] = [\r\n {\r\n sectorId: 'LR',\r\n channels: undefined,\r\n value: '4RAB',\r\n name: 'Abruzzo',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: undefined,\r\n value: '4RBA',\r\n name: 'Basilicata',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: undefined,\r\n value: '4RCAL',\r\n name: 'Calabria',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: undefined,\r\n value: '4RCAM',\r\n name: 'Campania',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: undefined,\r\n value: '4REM',\r\n name: 'Emilia Romagna',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: undefined,\r\n value: '4RFVG',\r\n name: 'Friuli Venezia Giulia',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: undefined,\r\n value: '4RLA',\r\n name: 'Lazio',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: undefined,\r\n value: '4RLI',\r\n name: 'Liguria',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: undefined,\r\n value: '4RLO',\r\n name: 'Lombardia',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: undefined,\r\n value: '4RMA',\r\n name: 'Marche',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: undefined,\r\n value: '4RMO',\r\n name: 'Molise',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: undefined,\r\n value: '4RPI',\r\n name: 'Piemonte',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: undefined,\r\n value: '4RPU',\r\n name: 'Puglia',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: undefined,\r\n value: '4RSA',\r\n name: 'Sardegna',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: undefined,\r\n value: '4RSI',\r\n name: 'Sicilia',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: undefined,\r\n value: '4RTO',\r\n name: 'Toscana',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: undefined,\r\n value: '4RTAA',\r\n name: 'Trentino Trentino Alto Adige',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: undefined,\r\n value: '4RUM',\r\n name: 'Umbria',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: undefined,\r\n value: '4RVA',\r\n name: \"Valle D'Aosta\",\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: undefined,\r\n value: '4RVE',\r\n name: 'Veneto',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: undefined,\r\n value: '4PAB',\r\n name: 'Prov. Autonoma di Bolzano',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: undefined,\r\n value: '4PAT',\r\n name: 'Prov. Autonoma di Trento',\r\n },\r\n {\r\n sectorId: 'TN',\r\n channels: '|LA|',\r\n value: '6CEI',\r\n name: 'C.E.I. - Comitato Elettrotecnico Italiano',\r\n },\r\n {\r\n sectorId: 'TN',\r\n channels: '|LA|SA|',\r\n value: '6CNR',\r\n name: 'C.N.R. - Consiglio Nazionale delle Ricerche',\r\n },\r\n {\r\n sectorId: 'TN',\r\n channels: '|LA|',\r\n value: '6ENPI',\r\n name: 'E.N.P.I. - Ente Nazionale Prevenzione Infortuni',\r\n },\r\n {\r\n sectorId: 'TN',\r\n channels: '|LA|',\r\n value: '6INAI',\r\n name:\r\n 'I.N.A.I.L. - Istituto nazionale Assicurazione Infortuni sul Lavoro',\r\n },\r\n {\r\n sectorId: 'TN',\r\n channels: '|LA|',\r\n value: '6ISPS',\r\n name:\r\n 'I.S.P.E.S.L. - Istituto Superiore per la Prevenzione e la Sicurezza del Lavoro',\r\n },\r\n {\r\n sectorId: 'TN',\r\n channels: '|LA|',\r\n value: '6INPS',\r\n name: 'I.N.P.S. - Istituto Nazionale Previdenza Sociale',\r\n },\r\n {\r\n sectorId: 'TN',\r\n channels: '|LA|SA|',\r\n value: '6ISS',\r\n name: 'I.S.S. - Istituto Superiore di Sanità',\r\n },\r\n {\r\n sectorId: 'TN',\r\n channels: '|LA|SA|',\r\n value: '6UNI',\r\n name: 'U.N.I. - Ente Nazionale Italiano di Unificazione',\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: undefined,\r\n value: '5CC',\r\n name: 'Corte Costituzionale',\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: undefined,\r\n value: '5CCC',\r\n name: 'Corte di Cassazione Civile',\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: undefined,\r\n value: '5CCP',\r\n name: 'Corte di Cassazione Penale',\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: undefined,\r\n value: '5CASA',\r\n name: \"Corte d'Assise d'Appello\",\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: undefined,\r\n value: '5CAS',\r\n name: \"Corte d'Assise\",\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: undefined,\r\n value: '5CA',\r\n name: \"Corte d'Appello\",\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: undefined,\r\n value: '5PCA',\r\n name: \"Procura Generale Corte d'Appello\",\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: undefined,\r\n value: '5GDP',\r\n name: 'Giudice di Pace',\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: undefined,\r\n value: '5PR',\r\n name: 'Procura della Repubblica',\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: undefined,\r\n value: '5T',\r\n name: 'Tribunale',\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: undefined,\r\n value: '5P',\r\n name: 'Pretura',\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: undefined,\r\n value: '5CDS',\r\n name: 'Consiglio di Stato',\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: undefined,\r\n value: '5TAR',\r\n name: 'Tribunale Amministrativo Regionale',\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: undefined,\r\n value: '5TSA',\r\n name: 'Tribunale Superiore delle Acque',\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: undefined,\r\n value: '5TGA',\r\n name: 'Tribunale Regionale acque',\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: undefined,\r\n value: '5CTP',\r\n name: 'Commissione Tributaria Provinciale',\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: undefined,\r\n value: '5CTR',\r\n name: 'Commissione Tributaria Regionale',\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: undefined,\r\n value: '5CGAS',\r\n name: 'Cons. di Giustizia Amm.va della Sicilia',\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: undefined,\r\n value: '5CDC',\r\n name: 'Corte dei Conti',\r\n },\r\n {\r\n sectorId: 'GC',\r\n channels: undefined,\r\n value: '3CJCE',\r\n name: 'Corte di Giustizia CEE/CE',\r\n },\r\n {\r\n sectorId: 'GC',\r\n channels: undefined,\r\n value: '3CEDM',\r\n name: \"Corte Europea per i Diritti dell'Uomo\",\r\n },\r\n {\r\n sectorId: 'GC',\r\n channels: undefined,\r\n value: '3CWJ',\r\n name: 'Corte Internazionale di Giustizia',\r\n },\r\n {\r\n sectorId: 'GC',\r\n channels: undefined,\r\n value: '3T1CE',\r\n name: 'Tribunale di Primo Grado CEE/CE',\r\n }\r\n]\r\n\r\nexport const ClipperSources: NameValueItem<string>[] = [\r\n {\r\n value: 'ACCML',\r\n name: 'Accordi Multilaterali',\r\n },\r\n {\r\n value: 'AEEG',\r\n name: \"Sito Autorità per l'Energia Elettrica, il Gas e il Sistema Idrico\",\r\n },\r\n {\r\n value: 'ARERA',\r\n name: 'Sito Autorità di Regolazione per Energia, Reti e Ambiente',\r\n },\r\n {\r\n value: 'BUR',\r\n name: 'Bollettino Uff. Regione',\r\n },\r\n {\r\n value: 'BUS',\r\n name: 'Suppl. speciale al Bollettino Uff.',\r\n },\r\n {\r\n value: 'BUSO',\r\n name: 'Suppl. ordin. al Bollettino Uff.',\r\n },\r\n {\r\n value: 'BUSS',\r\n name: 'Suppl. straord. al Bollettino Uff.',\r\n },\r\n {\r\n value: 'GU',\r\n name: 'Gazzetta Ufficiale Italiana',\r\n },\r\n {\r\n value: 'GUCC',\r\n name: 'Gazz. Uff. Corte Costituzionale',\r\n },\r\n {\r\n value: 'GUCE',\r\n name: 'Gazzetta ufficiale delle Comunità europee',\r\n },\r\n {\r\n value: 'GUES',\r\n name: 'Gazz. Uff. Ediz. Speciale',\r\n },\r\n {\r\n value: 'GURS',\r\n name: 'Gazz. Uff. Regione Sicilia',\r\n },\r\n {\r\n value: 'GUS',\r\n name: 'Gazz. Uff. Serie Speciale',\r\n },\r\n {\r\n value: 'GUSO',\r\n name: 'Suppl. ordin. alla Gazzetta Ufficiale',\r\n },\r\n {\r\n value: 'GUSS',\r\n name: 'Suppl. straord. alla Gazzetta Ufficiale',\r\n },\r\n {\r\n value: 'GUUE',\r\n name: 'Gazzetta ufficiale dell’Unione europea',\r\n },\r\n {\r\n value: 'MAC',\r\n name: 'Massimario Civile',\r\n },\r\n {\r\n value: 'MAP',\r\n name: 'Massimario Penale',\r\n },\r\n {\r\n value: 'NONE',\r\n name: 'Fonti diverse',\r\n }\r\n]\r\n\r\nexport class ClipperUpdateChannelsStateParams {\r\n activeChannels: ClipperChannel[] = [];\r\n}\r\n\r\nexport interface ClipperChannelSettingsItem<T> {\r\n name: string;\r\n value: T;\r\n checked: boolean;\r\n}\r\n\r\nexport class ClipperChannelSettings {\r\n channelId?: ClipperChannel;\r\n channelName?: string;\r\n isEnabled?: boolean = false;\r\n isActive?: boolean = false;\r\n sectors: ClipperChannelSettingsItem<string>[] = [];\r\n regions: ClipperChannelSettingsItem<string>[] = [];\r\n\r\n /**\r\n * Check at least one of sector values is contained in sectors list\r\n * @param values : the admitted values\r\n * @returns true if at least one value has been found\r\n */\r\n hasAnyOfSectors(values: string[]): boolean {\r\n if (this.isEnabled === true && this.isActive === true) {\r\n for (let i = 0; i < values.length; i++) {\r\n if (this.sectors.filter(n => n.value === values[i])?.length > 0) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n /**\r\n * Check at least one of region values is contained in regions list\r\n * @param values : the admitted values\r\n * @returns true if at least one value has been found\r\n */\r\n hasAnyOfRegions(values: string[]): boolean {\r\n if (this.isEnabled === true && this.isActive === true) {\r\n for (let i = 0; i < values.length; i++) {\r\n if (this.regions.filter(n => n.value === values[i])?.length > 0) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n}\r\n\r\nexport interface ClipperUserChannelInfo {\r\n channel: ClipperChannel;\r\n channelName?: string;\r\n expiringDate: string;\r\n isTrial?: boolean;\r\n isDisabled: boolean;\r\n isDvd: boolean;\r\n isActive: boolean;\r\n documentsViewable?: number;\r\n documentsViewed?: number;\r\n settings?: ClipperChannelSettings;\r\n}\r\n\r\nexport interface ClipperUserInfo {\r\n userId: number;\r\n customerId?: number;\r\n companyName: string;\r\n displayName: string;\r\n firstName: string;\r\n email: string;\r\n OAUTH?: boolean;\r\n sessionId?: string;\r\n scope: number;\r\n isAuthenticated: boolean;\r\n isTemporary: boolean;\r\n hasTrial: boolean;\r\n hasTeam: boolean;\r\n hasAI: boolean;\r\n hasAIAssistant: boolean;\r\n hasAIEditor: boolean;\r\n channels: ClipperUserChannelInfo[];\r\n firstChannelTrial: ClipperUserChannelInfo;\r\n trialInfo?: ClipperUserTrialInfo;\r\n}\r\n\r\nexport enum ClipperLoginFlags {\r\n None = 0,\r\n RememberCredentials = 1,\r\n DisableMfa = 1 << 1,\r\n ExtendMfaValidity = 1 << 2,\r\n ExtendRememberCredentialsValidity = 1 << 3,\r\n}\r\n\r\nexport interface ClipperLoginResult extends LoginResult<ClipperUserInfo> {\r\n settings?: ClipperChannelSettings[];\r\n}\r\n\r\nexport interface ClipperLoginInfo {\r\n context?: ClipperUserInfo;\r\n complianceContext?: any;\r\n channels?: ClipperChannelSettings[];\r\n oauth?: LoginOAuthType;\r\n}\r\n\r\nexport class ClipperSearchParams {\r\n version: number = 6;\r\n searchId?: number;\r\n searchName?: string;\r\n text?: string;\r\n augmentedText?: string;\r\n title?: string;\r\n titleOnly?: boolean = false;\r\n showUnreadDocumentsOnly?: boolean = false;\r\n showCommentedDocumentsOnly?: boolean = false;\r\n showNotAbrogatedDocumentsOnly?: boolean = false;\r\n expandTextQueryUsingAI?: boolean = false;\r\n number?: string;\r\n fromDate?: Date;\r\n toDate?: Date;\r\n year?: number;\r\n sourceNumber?: string;\r\n source?: string;\r\n sourceFromDate?: Date;\r\n sourceToDate?: Date;\r\n sourceYear?: number;\r\n sector?: string;\r\n sectors?: SectorInfo[];\r\n topic?: string;\r\n topics?: NameValueItem<string>[];\r\n taxonomy?: string;\r\n taxonomies?: NameValueItem<string>[];\r\n taxonomyPath?: string;\r\n taxonomyNode?: string;\r\n type?: string;\r\n types?: NameValueItem<string>[];\r\n tag?: string;\r\n tags?: NameValueItem<string>[];\r\n author?: string;\r\n authors?: NameValueItem<string>[];\r\n changeReason?: number;\r\n changedNumber?: string;\r\n changedYear?: number;\r\n changedTitle?: string;\r\n changedId?: string;\r\n modifierId?: string;\r\n modifierNumber?: string;\r\n modifierYear?: number;\r\n modifierTitle?: string;\r\n model?: ClipperModel;\r\n models?: ClipperModel[];\r\n module?: ClipperModule;\r\n modules?: NameValueItem<ClipperModule>[];\r\n mode?: ClipperQueryReferencesMode;\r\n channels?: NameValueItem<ClipperChannel>[] = [...ClipperChannels];\r\n count?: number = 15;\r\n id?: string;\r\n anchor?: string;\r\n excludeTextReferences?: boolean = false;\r\n excludeNotesReferences?: boolean = false;\r\n useModifierInfo?: boolean = false;\r\n returnModifierInfo?: boolean = false;\r\n first?: number = 0;\r\n sortMode?: number;\r\n}\r\n\r\nexport interface ClipperReferencesSearchParams {\r\n documentId: string;\r\n year?: number;\r\n sector?: string;\r\n author?: string;\r\n anchor?: string;\r\n model?: string;\r\n mode?: ClipperQueryReferencesMode;\r\n excludeTextReferences?: boolean;\r\n excludeNotesReferences?: boolean;\r\n useModifierInfo?: boolean;\r\n returnModifierInfo?: boolean;\r\n count?: number;\r\n first?: number;\r\n}\r\n\r\nexport enum ClipperDocumentContainer {\r\n None = 0,\r\n LavoroEAmbiente = 1,\r\n SostanzeAlimentari = 2,\r\n OrangeProject = 4,\r\n Energia = 8,\r\n DGInfo = 0x10,\r\n DLGS231 = 0x20,\r\n All = 0x3F\r\n}\r\n\r\nexport const ClipperDocumentChangeReasons: NameValueItem<number>[] = [\r\n { name: 'Abrogazione', value: 1 },\r\n { name: 'Annullamento', value: 5 },\r\n { name: 'Modifica', value: 2 },\r\n { name: 'Sostiuzione', value: 3 },\r\n { name: 'Segnalazione', value: 6 },\r\n { name: 'Rettifica', value: 7 },\r\n]\r\n\r\nexport interface ClipperDocumentAnchorInfo {\r\n documentId: string;\r\n type: number;\r\n typeDescription: string;\r\n text: string;\r\n title?: string;\r\n description?: string;\r\n uri: string;\r\n ordinal?: string;\r\n score?: number;\r\n veryRelevant?: boolean;\r\n value?: string;\r\n level?: number;\r\n}\r\n\r\nexport interface ClipperDocumentRelevants {\r\n items: ClipperDocumentAnchorInfo[];\r\n hits: number;\r\n hit: number;\r\n minimumScore: number;\r\n}\r\n\r\nexport interface ClipperDocumentInfo {\r\n id?: string;\r\n documentId?: string;\r\n documentCode?: string;\r\n model?: number;\r\n modelName?: string;\r\n module?: number;\r\n moduleName?: string;\r\n channelName?: string;\r\n group?: string;\r\n title2?: string;\r\n title1?: string;\r\n tags?: string;\r\n topics?: string;\r\n number?: string;\r\n date?: Date;\r\n description?: string;\r\n publishingDate?: Date;\r\n pictureId?: string;\r\n sourceNumber?: string;\r\n sourceDate?: Date;\r\n source?: string;\r\n sector?: string;\r\n origin?: string;\r\n originDescription?: string;\r\n author?: string;\r\n anchors?: ClipperDocumentAnchorInfo[];\r\n taxonomy?: string;\r\n info?: string;\r\n isRead?: boolean;\r\n isExportable?: boolean;\r\n isCommented?: boolean;\r\n isJuris?: boolean;\r\n isOver?: boolean;\r\n isTrial?: boolean;\r\n isNew?: boolean;\r\n isExpired?: boolean;\r\n isExpiring?: boolean;\r\n isMenuOpen?: boolean;\r\n applicableFromDate?: Date;\r\n validityState?: number;\r\n validFromDate?: Date;\r\n validUntilDate?: Date;\r\n validityDescription?: string;\r\n validityInfo?: string;\r\n expiringDate?: Date;\r\n expiringDescription?: string;\r\n expiringInfo?: string;\r\n popularity?: number;\r\n part?: number;\r\n primaryId?: string;\r\n primaryDescription?: string;\r\n primaryModel?: number;\r\n hasPrimary?: boolean;\r\n secondaryId?: string;\r\n bag?: any;\r\n lastUpdate?: string;\r\n\r\n}\r\n\r\nexport class ClipperSearchResult {\r\n days?: string;\r\n interval?: string;\r\n items?: ClipperDocumentInfo[];\r\n facets?: ClipperSearchFacetsSnapshot = new ClipperSearchFacetsSnapshot();\r\n tags?: NameValueItem<string>[];\r\n total?: number;\r\n terms?: string[];\r\n searchInfo?: any;\r\n searchParams?: ClipperSearchParams = new ClipperSearchParams();\r\n snapshotMode?: ClipperQueryReferencesMode;\r\n}\r\n\r\nexport interface ClipperSearchFacet {\r\n type: number;\r\n typeName: string;\r\n title: string;\r\n value: string;\r\n count: number;\r\n}\r\n\r\nexport interface ClipperSearchFacetGroup {\r\n name: string;\r\n selectedValue?: string;\r\n selectedValueDescription?: string;\r\n values: ClipperSearchFacet[];\r\n index: number;\r\n}\r\n\r\nexport interface ClipperSearchFacetsResult {\r\n interval?: string;\r\n facets?: ClipperSearchFacet[][];\r\n total?: number;\r\n}\r\n\r\n\r\nexport class ClipperSearchFacetsSnapshot {\r\n groups: ClipperSearchFacetGroup[] = [];\r\n usedGroups: ClipperSearchFacetGroup[] = [];\r\n hasFacets: boolean = false;\r\n hasMoreFacets: boolean = false;\r\n hasTooManyResults: boolean = false;\r\n sector?: string;\r\n author?: string;\r\n anchor?: string;\r\n type?: string;\r\n reason?: string;\r\n fromDate?: Date;\r\n toDate?: Date;\r\n interval?: string;\r\n changedInterval: boolean = false;\r\n changedSector: boolean = false;\r\n changedAuthor: boolean = false;\r\n changedAnchor: boolean = false;\r\n changedType: boolean = false;\r\n changedReason: boolean = false;\r\n}\r\n\r\nexport interface ClipperSearchCalendarSnapshotMonth {\r\n days: number[];\r\n monthShortName: string;\r\n monthName: string;\r\n month: number;\r\n year: number;\r\n total: number;\r\n expired: number;\r\n expiring: number;\r\n}\r\n\r\nexport class ClipperSearchCalendarSnapshotResult {\r\n months?: ClipperSearchCalendarSnapshotMonth[];\r\n}\r\n\r\n\r\n\r\nexport enum ClipperSort {\r\n Default = 0,\r\n Relevance = 1,\r\n DateAsc = 2,\r\n DateDesc = 3,\r\n SourceDateAsc = 7,\r\n SourceDateDesc = 8,\r\n Popularity = 5\r\n}\r\n\r\nexport enum ClipperQueryReferencesMode {\r\n ReferencesIn = 1,\r\n ReferencesOut = 2,\r\n ChangesIn = 3,\r\n ChangesOut = 5,\r\n Juris = 4\r\n}\r\n\r\nexport enum ClipperFacet {\r\n Sector = 1,\r\n Year = 2,\r\n DocumentType = 3,\r\n Topic = 4,\r\n Article = 5,\r\n Author = 6,\r\n Reason = 95\r\n}\r\n\r\nexport interface ClipperOTPInfo {\r\n code: string;\r\n canPreview?: boolean;\r\n canEmbed?: boolean;\r\n}\r\n\r\nexport enum ClipperExportDocumentsFormat {\r\n Deafault = 1,\r\n iCalendar = 2\r\n}\r\n\r\nexport interface ClipperExportDocumentsParams {\r\n query: ClipperSearchParams;\r\n ids: string[];\r\n format?: ClipperExportDocumentsFormat;\r\n}\r\n\r\nexport interface ClipperSendDocumentsByEmailParams extends SendToDialogResult {\r\n ids: string[];\r\n public: string;\r\n isCalendar: boolean;\r\n}\r\n\r\nexport interface ClipperDocumentStructure {\r\n id: string;\r\n title: string;\r\n items?: ClipperDocumentAnchorInfo[];\r\n}\r\n\r\n\r\nexport interface ClipperSearchFilter {\r\n container: ClipperDocumentContainer;\r\n models: number[];\r\n sectors: string[];\r\n regions: string[];\r\n notifications: number[];\r\n isEnabled: boolean;\r\n isActive: boolean;\r\n}\r\nexport interface ClipperTaxonomyParams {\r\n countItems: boolean;\r\n model: ClipperModel;\r\n userFilters?: ClipperSearchFilter[];\r\n}\r\n\r\nexport interface ClipperUserSearch {\r\n id?: number;\r\n userId?: number;\r\n name?: string;\r\n module?: ClipperModule;\r\n data?: string;\r\n}\r\n\r\nexport interface ClipperUserWorkingDocument {\r\n userId?: number;\r\n documentId?: string;\r\n documentDescriptor?: string;\r\n title1?: string;\r\n title2?: string;\r\n timestamp?: string;\r\n}\r\n\r\nexport interface ClipperDeleteWorkingDocumentsParams {\r\n documentIds: string[];\r\n deleteAll: boolean;\r\n}\r\n\r\n\r\nexport interface ClipperUserLink {\r\n id?: number;\r\n userId: number;\r\n userName?: string;\r\n key: string;\r\n}\r\n\r\nexport interface ClipperUserTrialInfo {\r\n channelName: string;\r\n expiringDate: Date;\r\n remainingDocuments: number;\r\n}\r\n\r\nexport interface ClipperArsEventInfo {\r\n id: number;\r\n location?: string;\r\n title?: string;\r\n pictureId?: string;\r\n date?: string;\r\n endDate?: string;\r\n startTime?: string;\r\n endTime?: string;\r\n hours?: number;\r\n days?: number;\r\n dateIntervalDescription?: string;\r\n durationDescription?: string;\r\n group?: string;\r\n address?: string;\r\n city?: string;\r\n isOver?: boolean;\r\n}\r\n\r\n\r\n\r\nexport interface ClipperSearchArsEventsParams {\r\n group?: string;\r\n group1?: string;\r\n collectGroups?: boolean;\r\n collectBundles?: boolean;\r\n fromDate?: string;\r\n untilDate?: string;\r\n text?: string;\r\n sortBy?: string;\r\n count: number\r\n}\r\n\r\nexport interface ClipperSearchArsEventsResult {\r\n interval?: string;\r\n items?: ClipperArsEventInfo[];\r\n total?: number;\r\n}\r\n\r\nexport interface ClipperDocumentUpdateStateParams {\r\n documentIds: string[];\r\n isRead: boolean;\r\n}\r\n\r\nexport interface ClipperDashboardModelItem {\r\n id: ClipperModel;\r\n newItems: number;\r\n unreadItems: number;\r\n}\r\n\r\nexport interface ClipperDashboardItem {\r\n id: ClipperModule;\r\n models: ClipperDashboardModelItem[];\r\n newItems: number;\r\n unreadItems: number;\r\n lastUpdated?: string;\r\n}\r\n\r\nexport interface ClipperDashboardResult {\r\n items?: ClipperDashboardItem[];\r\n isTrial?: boolean;\r\n expiredDeadlines?: number;\r\n expiringDeadlines?: number;\r\n documentUpdates?: number;\r\n channels?: ClipperChannelSettings[];\r\n}\r\n\r\nexport class ClipperDashboard {\r\n items = signal<ClipperDashboardItem[]>([]);\r\n isTrial?: boolean = false;\r\n expiredDeadlines?: number;\r\n expiringDeadlines?: number;\r\n documentUpdates?: number;\r\n unreadItems: Signal<[ClipperModule, number][]> = computed(() => {\r\n const states: [ClipperModule, number][] = [];\r\n states.push([ClipperModule.News, this.items().find((x: ClipperDashboardItem) => x.id == ClipperModule.News)?.unreadItems ?? 0]);\r\n states.push([ClipperModule.GazzetteBollettiniEFontiDiverse, this.items().find((x: ClipperDashboardItem) => x.id == ClipperModule.GazzetteBollettiniEFontiDiverse)?.unreadItems ?? 0]);\r\n states.push([ClipperModule.Giurisprudenza, this.items().find((x: ClipperDashboardItem) => x.id == ClipperModule.Giurisprudenza)?.unreadItems ?? 0]);\r\n states.push([ClipperModule.ModificheAbrogazioniERinvii, this.items().find((x: ClipperDashboardItem) => x.id == ClipperModule.ModificheAbrogazioniERinvii)?.unreadItems ?? 0]);\r\n states.push([ClipperModule.AllerteAlimentari, this.items().find((x: ClipperDashboardItem) => x.id == ClipperModule.AllerteAlimentari)?.unreadItems ?? 0]);\r\n states.push([ClipperModule.Approfondimenti, this.items().find((x: ClipperDashboardItem) => x.id == ClipperModule.Approfondimenti)?.unreadItems ?? 0]);\r\n states.push([ClipperModule.QuesitiECasiRisolti, this.items().find((x: ClipperDashboardItem) => x.id == ClipperModule.QuesitiECasiRisolti)?.unreadItems ?? 0]);\r\n return states;\r\n });\r\n unreadItemsByModel: Signal<[ClipperModel, number][]> = computed(() => {\r\n const states: [ClipperModel, number][] = [];\r\n this.items().forEach(item => {\r\n if (item.models) {\r\n item.models.forEach(itemModel => {\r\n states.push([itemModel.id, itemModel.unreadItems]);\r\n });\r\n } else {\r\n if (item.id == ClipperModule.News) {\r\n states.push([ClipperModel.News, item.unreadItems]);\r\n } else if (item.id == ClipperModule.GazzetteBollettiniEFontiDiverse) {\r\n states.push([ClipperModel.AggiornamentoNormativo, item.unreadItems]);\r\n } else if (item.id == ClipperModule.QuesitiECasiRisolti) {\r\n states.push([ClipperModel.Quesiti, item.unreadItems]);\r\n } else if (item.id == ClipperModule.AllerteAlimentari) {\r\n states.push([ClipperModel.AllerteAlimentari, item.unreadItems]);\r\n } else if (item.id == ClipperModule.Approfondimenti) {\r\n states.push([ClipperModel.Articoli, item.unreadItems]);\r\n } else if (item.id == ClipperModule.ModificheAbrogazioniERinvii) {\r\n states.push([ClipperModel.Coordinamento, item.unreadItems]);\r\n } else if (item.id == ClipperModule.Giurisprudenza) {\r\n states.push([ClipperModel.Juris, item.unreadItems]);\r\n }\r\n }\r\n })\r\n return states;\r\n });\r\n\r\n /**\r\n * Update unread items\r\n * @param module : the module\r\n * @param model : the optional model\r\n * @param increment : the increment (can be negative)\r\n */\r\n updateUnreadItems(module: ClipperModule, model: ClipperModel | undefined, increment: number) {\r\n if (model) {\r\n this.items().forEach(item => {\r\n let itemModel = item.models?.find(x => x.id === model);\r\n if (itemModel) {\r\n itemModel.unreadItems += increment;\r\n return;\r\n }\r\n });\r\n }\r\n let item = this.items()?.find((x: ClipperDashboardItem) => x.id == module);\r\n if (item) {\r\n item.unreadItems += increment;\r\n }\r\n this.items.update(values => [...values]);\r\n }\r\n\r\n /***\r\n * Get the module unread items\r\n * @param module: the module\r\n * @param model : the optional model\r\n * @returns the module unread items\r\n */\r\n getUnreadItems(module: ClipperModule, model?: ClipperModel): number {\r\n if (model) {\r\n return this.unreadItemsByModel()?.find((x: [ClipperModel, number]) => x[0] === model)?.[1] ?? 0;\r\n }\r\n return this.unreadItems()?.find((x: [ClipperModule, number]) => x[0] === module)?.[1] ?? 0;\r\n }\r\n\r\n /**\r\n * Return total unread items\r\n * @returns : the total unread items\r\n */\r\n gatTotalUnreadItems(): number {\r\n let totalUnread = 0;\r\n this.unreadItems().forEach(item => {\r\n totalUnread += item[1];\r\n })\r\n return totalUnread;\r\n }\r\n}\r\n\r\nexport interface ClipperDayItem {\r\n day: string;\r\n label: string;\r\n items: ClipperDayGroup[];\r\n count: number;\r\n}\r\n\r\nexport interface ClipperDayGroup {\r\n model: ClipperModel;\r\n label: string;\r\n items: ClipperDocumentInfo[];\r\n}\r\n\r\nexport interface ClipperLastDaysResult {\r\n items: ClipperDayItem[];\r\n}\r\n\r\n\r\nexport class ClipperTeamMemberInfo {\r\n id: number;\r\n teamId?: string;\r\n name?: string;\r\n email?: string;\r\n isAdmin?: boolean;\r\n isDisabled?: boolean;\r\n hasPermission55?: boolean;\r\n hasPermission56?: boolean;\r\n hasPermission57?: boolean;\r\n isMenuOpen?: boolean;\r\n isOver?: boolean;\r\n}\r\n\r\nexport enum ClipperTeamProduct {\r\n SharedArchive = 1004676,\r\n SharedCalendar = 1004683\r\n}\r\n\r\nexport enum ClipperTeamProductPermission {\r\n SharedArchive = 56,\r\n SharedCalendar = 57\r\n}\r\n\r\nexport interface ClipperTeamProductInfo {\r\n permissionId: ClipperTeamProductPermission;\r\n name: string;\r\n maxMembers: number;\r\n usedMembers: number;\r\n}\r\n\r\nexport interface ClipperTeamMembersSearchResult {\r\n teamId?: string;\r\n teamTitle?: string;\r\n total?: number;\r\n customerId?: number;\r\n canEdit?: boolean;\r\n products?: ClipperTeamProductInfo[];\r\n items?: ClipperTeamMemberInfo[];\r\n}\r\n\r\nexport interface ClipperTeamsSearchParams {\r\n teamId?: string;\r\n permissionId?: number;\r\n productId?: number;\r\n adminsOnly?: boolean;\r\n activeMembersOnly?: boolean;\r\n includeRSTeams?: boolean; \r\n}\r\n\r\nexport interface ClipperTeamsSearchResult {\r\n total: number;\r\n items: NameValueItem<string>[];\r\n}\r\n\r\nexport class ClipperTeamInfo {\r\n id?: string;\r\n customerId?: number;\r\n title?: string;\r\n isDisabled?: boolean;\r\n created?: string;\r\n lastModified?: string;\r\n}\r\n\r\nexport enum ClipperCalendarState {\r\n Open = 101,\r\n Expired = 102,\r\n Expiring = 103,\r\n Closed = 104\r\n}\r\n\r\nexport const ClipperCalendarStates: NameValueItem<ClipperCalendarState>[] = [\r\n { name: 'Aperte', value: ClipperCalendarState.Open },\r\n { name: 'Chiuse', value: ClipperCalendarState.Closed },\r\n { name: 'Scadute', value: ClipperCalendarState.Expired },\r\n { name: 'Imminenti', value: ClipperCalendarState.Expiring }\r\n]\r\n\r\n\r\nexport class ClipperCalendarSearchParams {\r\n id?: string;\r\n fromDate?: Date;\r\n toDate?: Date;\r\n teamId?: string;\r\n text?: string;\r\n month?: number;\r\n year?: number;\r\n sortDescending?: boolean;\r\n state?: ClipperCalendarState;\r\n recurrentOnly?: boolean;\r\n first?: number = 0;\r\n count?: number = 15\r\n}\r\n\r\nexport interface ClipperCalendarSearchResult {\r\n interval: string;\r\n items: ClipperDeadlineInfo[];\r\n days: number[];\r\n teams: NameValueItem<string>[];\r\n total: number;\r\n}\r\n\r\n\r\n\r\nexport interface ClipperDeadlineInfo {\r\n id?: string;\r\n companyId?: number;\r\n userId?: number;\r\n teamId: string;\r\n teamName?: string;\r\n group?: string;\r\n description?: string;\r\n documentTitle?: string;\r\n documentId?: string;\r\n documentNumber?: string;\r\n documentDate?: Date;\r\n emails?: string;\r\n expiringDate?: Date;\r\n expiredAlertSent?: boolean;\r\n expiringInfo?: string;\r\n expiringDescription?: string;\r\n nextExpiringDate?: Date;\r\n alarmDays?: number;\r\n alarmDate?: Date;\r\n alarmMemo?: string;\r\n alarmSent?: boolean;\r\n hasAlarm?: boolean;\r\n isMenuOpen?: boolean;\r\n isOver?: boolean;\r\n isExpired?: boolean;\r\n isExpiring?: boolean;\r\n isClosed?: boolean;\r\n isClosable?: boolean;\r\n isPrivate?: boolean;\r\n isRecurrent?: boolean;\r\n recurrencePatternType?: ClipperRecurrenceType;\r\n recurrenceFrequency?: number;\r\n recurrenceEndOfMonth?: boolean;\r\n recurrenceNewId?: string;\r\n outlookAppointmentId?: string;\r\n created?: Date;\r\n lastModified?: Date;\r\n}\r\n\r\nexport interface ClipperCalendarSaveDeadlineParams {\r\n deadline: ClipperDeadlineInfo;\r\n teamIds?: string[];\r\n}\r\n\r\nexport enum ClipperCalendarCopyMode {\r\n Duplicate = 1,\r\n Move = 2\r\n}\r\n\r\nexport interface ClipperCalendarCopyDeadlinesParams {\r\n ids: string[];\r\n teamId: string;\r\n mode: ClipperCalendarCopyMode;\r\n}\r\n\r\nexport enum ClipperArchiveFileType {\r\n None = 0,\r\n Procedure = 1,\r\n OperatingInstructions = 2,\r\n TechnicalReport = 3,\r\n AdministrativeDocument = 4,\r\n Document = 5,\r\n OtherApplicableRules = 6,\r\n Other = 7,\r\n File = 101,\r\n Image = 102\r\n}\r\n\r\nexport const ClipperArchiveFileTypes: NameValueItem<ClipperArchiveFileType>[] = [\r\n { name: 'File', value: ClipperArchiveFileType.File },\r\n { name: 'Immagine', value: ClipperArchiveFileType.Image },\r\n { name: 'Procedura', value: ClipperArchiveFileType.Procedure },\r\n { name: 'Istruzioni operative', value: ClipperArchiveFileType.OperatingInstructions },\r\n { name: 'Relazione tecnica', value: ClipperArchiveFileType.TechnicalReport },\r\n { name: 'Documento iter amministrativo', value: ClipperArchiveFileType.AdministrativeDocument },\r\n { name: 'Documento aziendale', value: ClipperArchiveFileType.Document },\r\n { name: 'Altre norme applicabili', value: ClipperArchiveFileType.OtherApplicableRules },\r\n { name: 'Altro', value: ClipperArchiveFileType.Other }\r\n]\r\n\r\n\r\nexport enum ClipperArchiveFileStorageType {\r\n ArsCloud = 2,\r\n OtherCloud = 3\r\n}\r\nexport const ClipperArchiveFileStorageTypes: NameValueItem<ClipperArchiveFileStorageType>[] = [\r\n { name: 'ARS Cloud', value: ClipperArchiveFileStorageType.ArsCloud },\r\n { name: 'Altro cloud', value: ClipperArchiveFileStorageType.OtherCloud }\r\n]\r\n\r\n\r\nexport interface ClipperArchiveFileInfo {\r\n id?: string;\r\n parentFolderId?: string;\r\n isFolder?: boolean;\r\n folderId?: string;\r\n folderName?: string;\r\n folderItemsCount?: number;\r\n teamId: string;\r\n teamName?: string;\r\n topicId?: string;\r\n topicPath?: string;\r\n topicName?: string;\r\n topics?: string[];\r\n tags?: string;\r\n isPrivate?: boolean;\r\n isFile?: boolean;\r\n fileName?: string;\r\n storageType?: ClipperArchiveFileStorageType;\r\n isBinary?: boolean;\r\n binaryId?: number;\r\n binaryFilePath?: string;\r\n isPermalink?: boolean;\r\n fileType?: ClipperArchiveFileType;\r\n file?: any;\r\n notes?: string;\r\n position?: number;\r\n documentIds?: string;\r\n documentLastChangedBy?: string;\r\n documentLastChangedById?: string;\r\n documentLastChangedReasonDescription?: string;\r\n documentLastChanged?: Date;\r\n documentUpdateState?: number;\r\n isDocumentChanged?: boolean;\r\n canPreview?: boolean;\r\n canEmbed?: boolean;\r\n channelName?: string;\r\n model?: ClipperModel;\r\n modelName?: string;\r\n title1?: string;\r\n title2?: string;\r\n date?: Date;\r\n number?: string;\r\n origin?: string;\r\n originDescription?: string;\r\n documentId?: string;\r\n documentCode?: string;\r\n isDocument?: boolean;\r\n isRead?: boolean;\r\n isJuris?: boolean;\r\n isMenuOpen?: boolean;\r\n isOver?: boolean;\r\n validityState?: number;\r\n validUntilDate?: Date;\r\n expiringDate?: Date;\r\n expiringInfo?: string;\r\n uniqueId: string;\r\n}\r\n\r\n\r\nexport interface ClipperArchiveFolderTree extends Folder {\r\n subFolders: ClipperArchiveFolderTree[];\r\n}\r\n\r\n\r\nexport class ClipperArchiveFoldersSearchParams {\r\n teamId?: string;\r\n privateOnly?: boolean;\r\n}\r\n\r\nexport interface ClipperArchiveFoldersSearchResult {\r\n name: string;\r\n teams: NameValueItem<string>[];\r\n files: ClipperArchiveFileInfo[];\r\n subFolders: ClipperArchiveFolderTree[];\r\n\r\n}\r\n\r\n\r\nexport class ClipperArchiveFilesSearchParams {\r\n teamId?: string;\r\n folderId?: string;\r\n folderName?: string;\r\n fileType?: ClipperArchiveFileType;\r\n fromDate?: Date;\r\n toDate?: Date;\r\n topicPath?: string;\r\n topicId?: string;\r\n topicName?: string;\r\n titlesOnly?: boolean;\r\n text?: string;\r\n documentNumber?: string;\r\n documentYear?: number;\r\n first?: number;\r\n count?: number;\r\n}\r\n\r\nexport interface ClipperArchiveFilesSearchResult {\r\n items: ClipperArchiveFileInfo[];\r\n folderName?: string;\r\n total: number;\r\n}\r\n\r\nexport interface ClipperArchiveFoldersImportParams {\r\n teamId: string;\r\n destFolderId?: string;\r\n sourcePath?: string;\r\n sourceFileName?: string;\r\n file?: any;\r\n overwrite?: boolean;\r\n version?: number;\r\n}\r\n\r\nexport enum ClipperArchiveCopyMode {\r\n Duplicate = 1,\r\n Move = 2\r\n}\r\n\r\nexport interface ClipperArchiveFilesCopyParams {\r\n destTeamId: string;\r\n destFolderId?: string;\r\n files?: ClipperArchiveFileInfo[];\r\n mode?: ClipperArchiveCopyMode;\r\n}\r\n\r\nexport interface ClipperArchiveFilesDeleteParams {\r\n sourceFolderId?: string;\r\n destFolderId?: string;\r\n files?: ClipperArchiveFileInfo[];\r\n}\r\n\r\n\r\nexport class ClipperUtils {\r\n\r\n /**\r\n * Check if a model is readable\r\n * @param model : the model to check\r\n * @returns : true if the model is readable\r\n */\r\n static isClipperModelReadable(model: ClipperModel): boolean {\r\n return model !== ClipperModel.Unknown &&\r\n model !== ClipperModel.NormativaVigente &&\r\n model !== ClipperModel.Scadenze &&\r\n model !== ClipperModel.Segnalazioni\r\n }\r\n\r\n /**\r\n * Return the Clipper module from a document \r\n * @param item: the documenti item\r\n * @returns the module id\r\n */\r\n static getClipperModuleFromModel(item: ClipperDocumentInfo): ClipperModule | undefined {\r\n switch (item.model) {\r\n case ClipperModel.AllerteAlimentari: return ClipperModule.AllerteAlimentari;\r\n case ClipperModel.News: return ClipperModule.News;\r\n case ClipperModel.Articoli:\r\n case ClipperModel.Juris: return ClipperModule.Approfondimenti;\r\n case ClipperModel.Quesiti: return ClipperModule.QuesitiECasiRisolti;\r\n case ClipperModel.Coordinamento: return ClipperModule.ModificheAbrogazioniERinvii;\r\n case ClipperModel.GiurisprudenzaRecente: return ClipperModule.Giurisprudenza;\r\n case ClipperModel.NormativaVigente: return ClipperModule.NormativaVigente;\r\n case ClipperModel.Segnalazioni:\r\n case ClipperModel.Scadenze: return ClipperModule.ScadenzeESegnalazioni;\r\n case ClipperModel.AggiornamentoNormativo: return ClipperModule.GazzetteBollettiniEFontiDiverse;\r\n }\r\n return undefined;\r\n }\r\n\r\n\r\n /**\r\n * Return the Clipper group name\r\n * @param value: the group value \r\n * @returns the group name\r\n */\r\n static getClipperModuleGroupName(value: ClipperModuleGroup): string {\r\n return ClipperModuleGroups.filter(n => n.value === value)?.[0].name;\r\n }\r\n\r\n /**\r\n * Return the list of modules of a group\r\n * @param value: the module name\r\n * @returns the list of modules\r\n */\r\n static getClipperModuleGroupItems(value: ClipperModuleGroup): NameValueItem<ClipperModule>[] {\r\n return ClipperModules.filter(n => n.parentValue === value);\r\n }\r\n\r\n /**\r\n * Check modules against current selected in filter\r\n * @param modules : the modules to check for\r\n * @param mode : thc check mode: 1) exactly all elements 2) all elements 3) any of the elements specified\r\n * @returns true if the check is successfull\r\n */\r\n private static checkModules(modules: ClipperModule[], currentModules: NameValueItem<ClipperModule>[], mode: number = 1): boolean {\r\n let ok: boolean = false;\r\n if (mode === 1) {\r\n // All and only the elements specified\r\n for (let i = 0; i < currentModules.length; i++) {\r\n ok = (modules.findIndex(x => x === currentModules[i].value) ?? -1) !== -1;\r\n if (!ok) {\r\n break;\r\n }\r\n }\r\n ok = ok && modules.length >= (currentModules?.length ?? 0);\r\n } else if (mode === 2) {\r\n // All the elements specified\r\n for (let i = 0; i < modules.length; i++) {\r\n ok = (currentModules?.findIndex(x => x.value === modules[i]) ?? -1) !== -1;\r\n if (!ok) {\r\n break;\r\n }\r\n }\r\n } else if (mode === 3) {\r\n // Any of the specified elements \r\n for (let i = 0; i < modules.length; i++) {\r\n ok = (currentModules?.findIndex(x => x.value === modules[i]) ?? -1) !== -1;\r\n if (ok) {\r\n break;\r\n }\r\n }\r\n }\r\n return ok;\r\n }\r\n\r\n /**\r\n * Return the list of available sort options for a list of modules\r\n * @param modules : the modules list\r\n * @returns the list of availbale sort options \r\n */\r\n static getClipperAvailableSortOptions(\r\n modules?: NameValueItem<ClipperModule>[],\r\n params?: ClipperSearchParams): NameValueItem<ClipperSort>[] {\r\n const options: NameValueItem<ClipperSort>[] = [\r\n { name: \"Data decrescente\", value: ClipperSort.DateDesc },\r\n { name: \"Data crescente\", value: ClipperSort.DateAsc },\r\n { name: \"Data fonte decrescente\", value: ClipperSort.SourceDateDesc },\r\n { name: \"Data fonte crescente\", value: ClipperSort.SourceDateAsc },\r\n { name: \"Rilevanza\", value: ClipperSort.Relevance },\r\n { name: \"Popolarità\", value: ClipperSort.Popularity },\r\n ];\r\n let sortOptions: NameValueItem<number>[] = []\r\n if (params && ClipperSearchUtils.isTextQuery(params)) {\r\n sortOptions.push(options[4]);\r\n }\r\n if (modules && modules.length > 0) {\r\n if (this.checkModules([ClipperModule.GazzetteBollettiniEFontiDiverse], modules, 1)) {\r\n sortOptions.push(options[2]);\r\n sortOptions.push(options[3]);\r\n } else if (this.checkModules([ClipperModule.NormativaVigente], modules, 1) ||\r\n this.checkModules([ClipperModule.Giurisprudenza], modules, 1)) {\r\n sortOptions.push(options[0]);\r\n sortOptions.push(options[1]);\r\n sortOptions.push(options[2]);\r\n sortOptions.push(options[3]);\r\n sortOptions.push(options[5]);\r\n } else {\r\n sortOptions.push(options[0]);\r\n sortOptions.push(options[1]);\r\n }\r\n } else {\r\n sortOptions.push(options[0]);\r\n sortOptions.push(options[1]);\r\n }\r\n return sortOptions;\r\n }\r\n\r\n}\r\n\r\nexport class ClipperSearchUtils {\r\n\r\n /**\r\n * Clear the search params object\r\n * @param params : the search params to clear\r\n */\r\n static clear(params: ClipperSearchParams) {\r\n params.sector = undefined;\r\n params.sectors = undefined;\r\n params.author = undefined;\r\n params.authors = undefined;\r\n params.topic = undefined;\r\n params.topics = undefined;\r\n params.taxonomy = undefined;\r\n params.taxonomies = undefined;\r\n params.taxonomyPath = undefined;\r\n params.taxonomyNode = undefined;\r\n params.number = undefined;\r\n params.fromDate = undefined;\r\n params.toDate = undefined;\r\n params.year = undefined;\r\n params.sourceNumber = undefined;\r\n params.source = undefined;\r\n params.sourceFromDate = undefined;\r\n params.sourceToDate = undefined;\r\n params.sourceYear = undefined;\r\n params.tags = undefined;\r\n params.text = undefined;\r\n params.augmentedText = undefined;\r\n params.titleOnly = false;\r\n params.type = undefined;\r\n params.types = undefined;\r\n params.showUnreadDocumentsOnly = false;\r\n params.showCommentedDocumentsOnly = false;\r\n params.showNotAbrogatedDocumentsOnly = false;\r\n params.expandTextQueryUsingAI = false;\r\n if (!params.channels || params.channels.length === 0) {\r\n params.channels = [...ClipperChannels];\r\n }\r\n params.changeReason = undefined;\r\n params.changedNumber = undefined;\r\n params.changedYear = undefined;\r\n params.changedTitle = undefined;\r\n params.changedId = undefined;\r\n params.modifierId = undefined;\r\n params.modifierNumber = undefined;\r\n params.modifierYear = undefined;\r\n params.modifierTitle = undefined;\r\n params.model = undefined;\r\n params.models = undefined;\r\n params.module = undefined;\r\n params.modules = undefined;\r\n }\r\n\r\n\r\n /**\r\n * Get hte model list related to a list of modules\r\n * @param modules: the modules to check\r\n * @returns the list fo models\r\n */\r\n static getModulesModels(\r\n modules?: NameValueItem<ClipperModule>[]): ClipperModel[] {\r\n const models: ClipperModel[] = [];\r\n if ((modules?.length ?? 0) > 0) {\r\n modules?.forEach(module => {\r\n switch (module.value) {\r\n case ClipperModule.ScadenzeESegnalazioni:\r\n [ClipperModel.Scadenze, ClipperModel.Segnalazioni].forEach(x => models.push(x));\r\n break;\r\n case ClipperModule.QuesitiECasiRisolti:\r\n models.push(ClipperModel.Quesiti);\r\n break;\r\n case ClipperModule.News:\r\n models.push(ClipperModel.News);\r\n break;\r\n case ClipperModule.Approfondimenti:\r\n models.push(ClipperModel.Articoli);\r\n break;\r\n case ClipperModule.AllerteAlimentari:\r\n models.push(ClipperModel.AllerteAlimentari);\r\n break;\r\n case ClipperModule.GazzetteBollettiniEFontiDiverse:\r\n models.push(ClipperModel.AggiornamentoNormativo);\r\n break;\r\n case ClipperModule.GiurisprudenzaRecente:\r\n models.push(ClipperModel.GiurisprudenzaRecente);\r\n break;\r\n case ClipperModule.NormativaVigente:\r\n models.push(ClipperModel.NormativaVigente);\r\n break;\r\n case ClipperModule.ModificheAbrogazioniERinvii:\r\n models.push(ClipperModel.Coordinamento);\r\n break;\r\n case ClipperModule.Giurisprudenza:\r\n models.push(ClipperModel.Juris);\r\n break;\r\n }\r\n });\r\n }\r\n return models;\r\n }\r\n\r\n /**\r\n * Check if current filter is a text based search \r\n * @param params : the search params to check\r\n * @returns true if is a text based search\r\n */\r\n static isTextQuery(params: ClipperSearchParams): boolean {\r\n return params.text != null && params.text?.length > 0;\r\n }\r\n\r\n /**\r\n * Try to add a query\r\n * @param q : the new query\r\n * @param queries : the new query\r\n */\r\n private static concatTextQuery(q: string, queries: string): string {\r\n if (q && q.length > 0) {\r\n if (queries.length == 0 && (q[0] === '+' || q[0] === '-'))\r\n q = q.substring(1);\r\n if (q[q.length - 1] !== '\\\"' && q.indexOf(' ') !== -1)\r\n q = \"\\\"\" + q + \"\\\"\";\r\n if (queries.length > 0) queries += \", \";\r\n queries += q;\r\n }\r\n return queries;\r\n }\r\n\r\n /**\r\n * Normalize text query\r\n * @param text : the text query to normalize\r\n * @returns : the text normalized or undefined\r\n */\r\n static normalizeTextQuery(text: string): string | undefined {\r\n if (!text || text.length === 0) return undefined;\r\n let q: string = '';\r\n let queries: string = '';\r\n for (let i = 0; i < text.length; i++) {\r\n if (text[i] === ',') {\r\n queries = this.concatTextQuery(q.trim(), queries);\r\n q = '';\r\n }\r\n else q += text[i];\r\n }\r\n queries = this.concatTextQuery(q.trim(), queries);\r\n return queries;\r\n }\r\n}","import { HttpClient, HttpHeaders, HttpRequest } from '@angular/common/http';\r\nimport { Injectable, OnDestroy, Signal, computed, inject, signal } from '@angular/core';\r\nimport {\r\n ApiResult, BroadcastService,\r\n Folder,\r\n FolderTree,\r\n NameValueItem, SystemUtils\r\n} from '@arsedizioni/ars-utils/core';\r\nimport { DialogService, RecoverPasswordDialogResult, ResetPasswordDialogResult } from '@arsedizioni/ars-utils/ui';\r\nimport { LoginOAuthType } from '@arsedizioni/ars-utils/ui.oauth';\r\nimport { EMPTY, Subscription, of, throwError } from 'rxjs';\r\nimport { catchError, finalize, map } from 'rxjs/operators';\r\nimport { ClipperServiceFlags, ClipperDashboard, ClipperDashboardResult, ClipperDocumentInfo, ClipperDocumentStructure, ClipperDocumentUpdateStateParams, ClipperExportDocumentsParams, ClipperLoginInfo, ClipperLoginResult, ClipperModule, ClipperOTPInfo, ClipperSearchArsEventsParams, ClipperSearchArsEventsResult, ClipperQueryReferencesMode, ClipperReferencesSearchParams, ClipperSearchFacetsResult, ClipperSearchParams, ClipperSearchResult, ClipperSendDocumentsByEmailParams, ClipperTaxonomyParams, ClipperUserLink, ClipperUserSearch, ClipperUserTrialInfo, ClipperUserWorkingDocument, ClipperTeamMemberInfo, ClipperTeamsSearchParams, ClipperTeamsSearchResult, ClipperTeamInfo, ClipperTeamMembersSearchResult, ClipperCalendarSearchParams, ClipperCalendarSearchResult, ClipperSearchCalendarSnapshotResult, ClipperCalendarCopyDeadlinesParams, ClipperDeadlineInfo, ClipperCalendarSaveDeadlineParams, ClipperArchiveFoldersSearchParams, ClipperArchiveFoldersSearchResult, ClipperArchiveFileInfo, ClipperArchiveFoldersImportParams, ClipperArchiveFilesSearchResult, ClipperArchiveFilesDeleteParams, ClipperArchiveFilesCopyParams, ClipperArchiveFilesSearchParams, ClipperModel, ClipperChannel, ClipperChannels, ClipperLastDaysResult, ClipperUpdateChannelsStateParams, ClipperAvailableChannel, ClipperLoginFlags } from '../definitions';\r\nimport { ClipperMessages } from '../messages';\r\n\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ClipperService implements OnDestroy {\r\n\r\n private httpClient = inject(HttpClient);\r\n private broadcastServiceSubscription?: Subscription;\r\n private broadcastService = inject(BroadcastService);\r\n private dialogService = inject(DialogService);\r\n private keepAlive = 0;\r\n private _appUri?: string;\r\n get appUri(): string | undefined {\r\n return this._appUri;\r\n }\r\n private _serviceUri: string = '';\r\n get serviceUri(): string {\r\n return this._serviceUri;\r\n }\r\n private _flags: ClipperServiceFlags = ClipperServiceFlags.None;\r\n get flags(): ClipperServiceFlags {\r\n return this._flags;\r\n }\r\n private _loginInfo?: ClipperLoginInfo;\r\n get loginInfo(): ClipperLoginInfo | undefined {\r\n if (!this._loginInfo) {\r\n const loginInfo = localStorage.getItem('clipper_context');\r\n if (loginInfo) {\r\n try {\r\n this._loginInfo = JSON.parse(loginInfo) as ClipperLoginInfo;\r\n } catch { }\r\n }\r\n }\r\n return this._loginInfo;\r\n }\r\n public readonly loggedIn = signal<boolean>(sessionStorage.getItem(\"clipper_oauth_token\") !== null);\r\n public readonly loggingIn = signal<boolean>(false);\r\n public readonly snapshot = signal<ClipperSearchResult | undefined>(undefined);\r\n public readonly supportsRS = signal<boolean>(false);\r\n public readonly shouldRefreshToken = signal<boolean>(false);\r\n public readonly referencesSnapshot = signal<ClipperSearchResult | undefined>(undefined);\r\n public readonly dashboard: ClipperDashboard = new ClipperDashboard();\r\n public readonly bag = signal<ClipperDocumentInfo[]>([]);\r\n public readonly bagTotal: Signal<number> = computed(() => {\r\n return this.bag().length;\r\n });\r\n public readonly visible = signal<boolean>(false);\r\n private _teams: NameValueItem<string>[] = [];\r\n get teams(): NameValueItem<string>[] {\r\n return this._teams;\r\n }\r\n public currentTeamId = signal<string>(SystemUtils.emptyUUID());\r\n public currentTeamName = signal<string>(\"PERSONALE\");\r\n public currentTeamIsPrivate: Signal<boolean> = computed(() => {\r\n return this.currentTeamId() !== SystemUtils.emptyUUID();\r\n });\r\n public readonly availableChannels = signal<ClipperAvailableChannel[]>([]);\r\n\r\n public readonly activeChannels: Signal<ClipperAvailableChannel[]> = computed(() => {\r\n return this.availableChannels()?.filter(x => !x.disabled && x.active === true);\r\n });\r\n public readonly allowTags = signal<boolean>(false);\r\n\r\n ngOnDestroy() {\r\n if (this.broadcastServiceSubscription) {\r\n this.broadcastServiceSubscription.unsubscribe();\r\n }\r\n this.removeKeepAlive();\r\n }\r\n\r\n /**\r\n * Initialize service\r\n * @param serviceUri : the service uri\r\n * @param appUri : the clipper application uri \r\n * @param flags: the service flags. Default is none.\r\n */\r\n initialize(\r\n serviceUri: string,\r\n appUri?: string,\r\n flags: ClipperServiceFlags = ClipperServiceFlags.None,\r\n ) {\r\n\r\n // Create unique client id\r\n if (!localStorage.getItem('clipper_client_id')) {\r\n localStorage.setItem('clipper_client_id', SystemUtils.generateUUID());\r\n }\r\n\r\n // Initialize\r\n this._serviceUri = serviceUri;\r\n this._appUri = appUri;\r\n this._flags = flags;\r\n\r\n // React to message broadcasting\r\n if (!this.broadcastServiceSubscription) {\r\n this.broadcastServiceSubscription = this.broadcastService.getMessage()\r\n .subscribe(message => {\r\n if (message.id === ClipperMessages.LOGIN_CHANGED) {\r\n this.login(\r\n message.data.email,\r\n message.data.password,\r\n true,\r\n message.data.oauth,\r\n message.data.oauthAccessToken,\r\n ClipperLoginFlags.RememberCredentials).subscribe({\r\n next: r => {\r\n if (!r.success) {\r\n if (r.message) {\r\n this.dialogService.error(r.message, undefined, \"Errore di Clipper\");\r\n }\r\n } else {\r\n if ((this.flags & ClipperServiceFlags.DisplayConnectionStateMessages) > 0) {\r\n this.dialogService.toast('Connesso a Clipper', 1500, 'power');\r\n }\r\n // Load bag\r\n this.loadBag();\r\n }\r\n },\r\n error: () => { console.error(\"Clipper non disponibile.\") } // Avoid unwanted errors on client\r\n });\r\n } else if (message.id === ClipperMessages.LOGOUT) {\r\n if (this.loggedIn()) {\r\n this.logout(true).subscribe(r => {\r\n if (!r.success) {\r\n if (r.message) {\r\n this.dialogService.error(\"<p>\" + r.message + \"</p><br><br><hr><p class='small'><i>Per eliminare la configurazione di Clipper accedere a:<br><b>menu > personalizza > collegamenti</b></i></p>\", undefined, \"Errore di Clipper\");\r\n }\r\n } else {\r\n if ((this.flags & ClipperServiceFlags.DisplayConnectionStateMessages) > 0) {\r\n this.dialogService.toast('Disconnesso da Clipper', 1500, 'power_off');\r\n }\r\n // Empty bag\r\n this.bag.set([]);\r\n }\r\n });\r\n } else {\r\n this.clear();\r\n }\r\n }\r\n });\r\n }\r\n\r\n\r\n // Eveluate current session storage in case of page refresh (F5)\r\n const tokenExpirationDate = this.getTokenExpirationDate();\r\n const tokenExpired = !tokenExpirationDate || tokenExpirationDate.getTime() < Date.now();\r\n if (!tokenExpired || this.loggedIn()) {\r\n // Auto login\r\n this.loggedIn.set(true);\r\n // Should refresh\r\n this.shouldRefreshToken.set(!!tokenExpirationDate);\r\n // Keep alive\r\n this.setKeepAlive();\r\n // Initialize channels\r\n this.initializeChannels();\r\n // Notify \r\n this.broadcastService.sendMessage(ClipperMessages.LOGIN_COMPLETED);\r\n\r\n }\r\n }\r\n\r\n\r\n\r\n /**\r\n * Get access token expiration date\r\n */\r\n private getTokenExpirationDate(): Date | undefined {\r\n const token = this.getAuthToken();\r\n if (!token) return undefined;\r\n // Parse json object from base64 encoded jwt token\r\n const jwtToken = JSON.parse(atob(token.split('.')[1]));\r\n // Set a timeout to refresh the token a minute before it expires\r\n return new Date(jwtToken.exp * 1000);\r\n }\r\n\r\n /**\r\n * Checks if access token in expired\r\n */\r\n isTokenExpired(): boolean {\r\n const expires = this.getTokenExpirationDate();\r\n const expired = !expires || expires.getTime() < Date.now();\r\n return expired;\r\n }\r\n\r\n\r\n /**\r\n * Set keep alive\r\n */\r\n private setKeepAlive() {\r\n // Keep alive every 1 min\r\n if (this.keepAlive === 0) {\r\n this.keepAlive = window.setInterval(\r\n () => {\r\n this.ping();\r\n }, 1000 * 60 * 5);\r\n }\r\n }\r\n\r\n /**\r\n * Remove keep alive\r\n */\r\n private removeKeepAlive() {\r\n if (this.keepAlive > 0) {\r\n window.clearInterval(this.keepAlive);\r\n this.keepAlive = 0;\r\n }\r\n }\r\n\r\n\r\n /**\r\n * Ping\r\n */\r\n ping() {\r\n this.httpClient.get<ApiResult<number>>(\r\n this._serviceUri + '/ping?nocache=' + SystemUtils.generateUUID()\r\n )\r\n .pipe(catchError(() => { return EMPTY }))\r\n .subscribe();\r\n }\r\n\r\n\r\n /**\r\n * Set JWT tokens\r\n * @param value : the login result\r\n */\r\n private setToken(value: ClipperLoginResult) {\r\n sessionStorage.setItem('clipper_auth', value.authToken);\r\n if (value.refreshToken) {\r\n sessionStorage.setItem('clipper_refresh', value.refreshToken);\r\n }\r\n if (value.rememberToken) {\r\n localStorage.setItem('clipper_remember', value.rememberToken);\r\n }\r\n if (value.mfaToken) {\r\n localStorage.setItem('clipper_mfa', value.mfaToken);\r\n }\r\n }\r\n\r\n /**\r\n * Return current auth token\r\n * @param refresh: true to get the refresh token. Default is false.\r\n */\r\n getAuthToken(refresh: boolean = false): string {\r\n let token = sessionStorage.getItem(refresh ? 'clipper_refresh' : 'clipper_auth');\r\n if (token && token[0] === '\"') {\r\n return token.substring(1, token.length - 1);\r\n }\r\n return token ?? '';\r\n }\r\n\r\n /**\r\n * Get the two form factor authentication token\r\n */\r\n getRememberToken(): string | null {\r\n return localStorage.getItem(\"clipper_remember\");\r\n }\r\n\r\n\r\n /**\r\n * Get the two form factor authentication token\r\n */\r\n getMfaToken(): string | null {\r\n return localStorage.getItem(\"clipper_mfa\");\r\n }\r\n\r\n /**\r\n * Store context\r\n */\r\n storeContext() {\r\n localStorage.setItem('clipper_context', JSON.stringify(this._loginInfo));\r\n }\r\n\r\n /**\r\n* Update context\r\n* @param result: the new context\r\n*/\r\n updateContext(result: ClipperLoginResult) {\r\n if (!this._loginInfo) {\r\n this._loginInfo = { context: undefined };\r\n }\r\n this._loginInfo.context = result.context;\r\n this._loginInfo.channels = result.settings;\r\n this.setToken(result);\r\n this.storeContext();\r\n\r\n }\r\n\r\n /**\r\n * Perform auto login using current link data\r\n * @param email: the optional email if using OAuth2\r\n * @parma password: the optional password if using OAuth2\r\n * @param remember: remember credentials \r\n * @param oauth: the optional open authentication supported\r\n * @param oauthAccessToken: the optional OAuth2 access token\r\n * @param onSuccess: function to execute on seccess\r\n * @param flags: the optional login flags\r\n */\r\n autoLogin(\r\n email?: string,\r\n password?: string,\r\n remember?: boolean,\r\n oauth?: LoginOAuthType,\r\n oauthAccessToken: string | undefined = sessionStorage.getItem(\"clipper_oauth_token\") ?? undefined,\r\n onSuccess?: Function,\r\n flags?: ClipperLoginFlags): boolean {\r\n if (remember) {\r\n flags |= ClipperLoginFlags.RememberCredentials;\r\n }\r\n this.login(email, password, remember, oauth, oauthAccessToken, flags)\r\n .subscribe({\r\n next: r => {\r\n if (!r.success) {\r\n this.dialogService.error(r.message, undefined, \"Errore in Clipper\");\r\n } else {\r\n this.dialogService.toast('Connesso a Clipper', 1500, 'power');\r\n if (onSuccess) {\r\n onSuccess();\r\n }\r\n }\r\n },\r\n error: () => { this.dialogService.error(\"Clipper non disponibile.\") }\r\n })\r\n return true;\r\n }\r\n\r\n /**\r\n * Perform auto logout\r\n * @param onSuccess: function to execute on success\r\n */\r\n autoLogout(onSuccess?: Function) {\r\n if (!this.loggedIn()) return;\r\n this.logout(true).subscribe({\r\n next: r => {\r\n if (!r.success) {\r\n this.dialogService.error(r.message, undefined, \"Errore in Clipper\");\r\n } else {\r\n this.dialogService.toast('Disconnesso da Clipper', 1500, 'power_off');\r\n }\r\n },\r\n complete: () => {\r\n this.clear()\r\n if (onSuccess) {\r\n onSuccess();\r\n }\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Perform login \r\n * @param email: the optioanl email if using OAuth2\r\n * @parma password: the optional password if using OAuth2\r\n * @param remember: remember credentials \r\n * @param oauth: the optional open authentication supported\r\n * @param oauthAccessToken: the optional OAuth2 access token \r\n * @param flags: the optional login flags\r\n * @returns: the login result\r\n */\r\n login(email?: string,\r\n password?: string,\r\n remember?: boolean,\r\n oauth?: LoginOAuthType,\r\n oauthAccessToken: string | undefined = sessionStorage.getItem(\"clipper_oauth_token\") ?? undefined,\r\n flags?: ClipperLoginFlags) {\r\n if (remember) {\r\n flags |= ClipperLoginFlags.RememberCredentials;\r\n }\r\n return this.httpClient\r\n .post<ApiResult<ClipperLoginResult>>(\r\n this._serviceUri + '/login2',\r\n {\r\n clientId: localStorage.getItem(\"clipper_client_id\"),\r\n user: oauth ? null : email,\r\n password: oauth ? null : password,\r\n remember: remember,\r\n oauth: oauth,\r\n flags: flags\r\n },\r\n {\r\n headers:\r\n !oauth || !oauthAccessToken\r\n ? new HttpHeaders()\r\n .set(\"X-MFA\", this.getMfaToken() ?? '')\r\n : new HttpHeaders()\r\n .set(\"Authorization\", 'Bearer ' + oauthAccessToken)\r\n })\r\n .pipe(\r\n catchError(err => {\r\n this.loggingIn.set(false);\r\n localStorage.removeItem('clipper_context');\r\n localStorage.removeItem('clipper_mfa');\r\n localStorage.removeItem('clipper_remember');\r\n return throwError(() => err);\r\n }),\r\n map((r: ApiResult<ClipperLoginResult>) => {\r\n if (r.success) {\r\n this._loginInfo = { context: undefined };\r\n this._loginInfo.context = r.value.context;\r\n this._loginInfo.channels = r.value.settings;\r\n this._loginInfo.oauth = oauth;\r\n if (!oauth && r.value.requiresMfa) {\r\n // Notify login is pending\r\n this.broadcastService.sendMessage(ClipperMessages.LOGIN_PENDING, { flags: flags });\r\n } else {\r\n // Complete login\r\n this.completeLogin(r.value);\r\n }\r\n }\r\n return r;\r\n })\r\n );\r\n }\r\n\r\n\r\n\r\n /**\r\n * Complete login\r\n * @param result : the login result\r\n */\r\n private completeLogin(\r\n result: ClipperLoginResult) {\r\n // Update context info \r\n this.updateContext(result);\r\n this.loggedIn.set(true);\r\n this.loggingIn.set(false);\r\n // Keep alive\r\n this.setKeepAlive();\r\n // Initialize channels\r\n this.initializeChannels();\r\n // Notify\r\n this.broadcastService.sendMessage(ClipperMessages.LOGIN_COMPLETED);\r\n }\r\n\r\n /**\r\n * Confirm MFA procedure\r\n * @param code: the confirm code\r\n * @param remember: true to remember credentials. Default is false.\r\n */\r\n confirmIdentity(code: string, flags: number = ClipperLoginFlags.None) {\r\n return this.httpClient\r\n .post<ApiResult<ClipperLoginResult>>(\r\n this._serviceUri + '/login/confirm/' + code + '/?flags=' + flags,\r\n {},\r\n )\r\n .pipe(\r\n catchError((err) => {\r\n localStorage.removeItem('clipper_context');\r\n localStorage.removeItem('clipper_mfa');\r\n localStorage.removeItem('clipper_remember');\r\n this.loggingIn.set(false);\r\n return throwError(() => err);\r\n }),\r\n map((r: ApiResult<ClipperLoginResult>) => {\r\n if (r.success) {\r\n // Complete login\r\n this.completeLogin(r.value);\r\n }\r\n return r;\r\n }),\r\n );\r\n }\r\n\r\n\r\n /**\r\n * Perform logout\r\n * @param soft: true if is a soft logout (mfa and remember tokens remains). Default is false.\r\n */\r\n logout(soft: boolean = false) {\r\n return this.httpClient.post<any>(this._serviceUri + '/logout', {}).pipe(\r\n finalize(() => {\r\n this.removeKeepAlive();\r\n this.clear(true);\r\n // Remove credentials\r\n localStorage.removeItem('clipper_context');\r\n localStorage.removeItem('clipper_remember');\r\n if (!soft) {\r\n localStorage.removeItem('clipper_mfa'); \r\n }\r\n }),\r\n catchError((_e) => {\r\n return of([]);\r\n }));\r\n }\r\n\r\n /**\r\n * Reset login refresh timer and login state\r\n */\r\n reset() {\r\n // Clear login info\r\n this._loginInfo = undefined;\r\n // Logged out\r\n this.loggedIn.set(false);\r\n // Reset channels\r\n this.availableChannels.set([]);\r\n // Notify\r\n this.broadcastService.sendMessage(ClipperMessages.LOGOUT_COMPLETED);\r\n }\r\n\r\n /**\r\n * Clear login data\r\n * @param clearOAuthToken: true to clear oauth token also\r\n */\r\n clear(clearOAuthToken: boolean = false) {\r\n // Clear local storage\r\n sessionStorage.removeItem('clipper_auth');\r\n sessionStorage.removeItem('clipper_refresh');\r\n sessionStorage.removeItem('clipper_oauth');\r\n if (clearOAuthToken) {\r\n sessionStorage.removeItem('clipper_oauth_token');\r\n }\r\n\r\n // Reset login\r\n this.reset();\r\n }\r\n\r\n\r\n /**\r\n * Perform token refresh\r\n */\r\n refresh() {\r\n return this.httpClient.get<ApiResult<ClipperLoginResult>>(\r\n this._serviceUri + '/refresh2/?token=' + this.getAuthToken(true)\r\n ).pipe(map((r: ApiResult<ClipperLoginResult>) => {\r\n // Update token\r\n this.setToken(r.value);\r\n return r;\r\n }));\r\n }\r\n\r\n /**\r\n * Initialize channels\r\n */\r\n private initializeChannels() {\r\n if (this.loginInfo) {\r\n let channels: ClipperAvailableChannel[] = [];\r\n this.loginInfo.channels?.forEach(n => {\r\n const channel = ClipperChannels.find(x => x.value === n.channelId) as ClipperAvailableChannel;\r\n if (channel) {\r\n channel.disabled = !n.isActive\r\n channel.active = n.isActive === true && n.isEnabled === true;\r\n channels.push(channel);\r\n }\r\n });\r\n this.availableChannels.set(channels);\r\n }\r\n }\r\n\r\n /**\r\n * Update channels\r\n * @param values : the new channel values\r\n */\r\n updateChannels(values: NameValueItem<ClipperChannel>[]) {\r\n this.availableChannels().forEach(channel => {\r\n if (!channel.disabled) {\r\n channel.active = values?.findIndex(x => x.value === channel.value) !== -1;\r\n }\r\n });\r\n this.availableChannels.update(values => [...values]);\r\n }\r\n /**\r\n * Get a new one time password\r\n * @param id: the optional repository id \r\n */\r\n newOTP(id: string) {\r\n return this.httpClient.get<ApiResult<ClipperOTPInfo>>(\r\n this._serviceUri + '/otp/new/?id=' + id,\r\n );\r\n }\r\n\r\n /**\r\n * Load Ars events calendar\r\n */\r\n events(params: ClipperSearchArsEventsParams) {\r\n return this.httpClient.post<ApiResult<ClipperSearchArsEventsResult>>(\r\n this._serviceUri + '/ars/events',\r\n params\r\n );\r\n }\r\n\r\n\r\n /**\r\n * Query documents\r\n */\r\n query(params: ClipperSearchParams) {\r\n return this.httpClient.post<ApiResult<ClipperSearchResult>>(\r\n this._serviceUri + '/documents',\r\n params\r\n );\r\n }\r\n\r\n /**\r\n * Get facets for a query\r\n */\r\n queryFacets(params: ClipperSearchParams) {\r\n return this.httpClient.post<ApiResult<ClipperSearchFacetsResult>>(\r\n this._serviceUri + '/documents/facets',\r\n params\r\n );\r\n }\r\n\r\n\r\n /**\r\n * Update document state\r\n */\r\n updateState(params: ClipperDocumentUpdateStateParams) {\r\n return this.httpClient.post<ApiResult<number>>(\r\n this._serviceUri + '/documents/state/update',\r\n params\r\n );\r\n }\r\n\r\n /**\r\n * Export a document in pdf format\r\n */\r\n exportPdf(id: string) {\r\n return this.httpClient.get(\r\n this._serviceUri + '/documents/export/' + id,\r\n { responseType: 'blob' }\r\n );\r\n }\r\n\r\n\r\n\r\n /**\r\n * Export document list (query or selected items) or export deadlines as ics\r\n */\r\n export(params: ClipperExportDocumentsParams) {\r\n return this.httpClient.post(\r\n this._serviceUri + '/documents/export',\r\n params,\r\n { responseType: 'blob' }\r\n );\r\n }\r\n\r\n /**\r\n * Send documents link by email\r\n */\r\n sendTo(params: ClipperSendDocumentsByEmailParams) {\r\n return this.httpClient.post<ApiResult<number>>(\r\n this._serviceUri + '/documents/send',\r\n params\r\n );\r\n }\r\n\r\n /**\r\n * Display a page the full document report\r\n */\r\n report(id: string) {\r\n return this.httpClient.get(\r\n this._serviceUri + '/documents/report/' + id,\r\n { responseType: 'blob' }\r\n );\r\n }\r\n\r\n /**\r\n * Get document comment\r\n */\r\n comment(id: string) {\r\n return this.httpClient.get<ApiResult<string>>(\r\n this._serviceUri + '/documents/comment/' + id\r\n );\r\n }\r\n\r\n /**\r\n * Get document info\r\n */\r\n info(id: string) {\r\n return this.httpClient.get<ApiResult<ClipperDocumentInfo>>(\r\n this._serviceUri + '/documents/info/' + id\r\n );\r\n }\r\n\r\n /**\r\n * Get document structure\r\n */\r\n index(id: string) {\r\n return this.httpClient.get<ApiResult<ClipperDocumentStructure>>(\r\n this._serviceUri + '/documents/structure/' + id\r\n );\r\n }\r\n\r\n /**\r\n * Get document last update\r\n */\r\n lastUpdate(id: string) {\r\n return this.httpClient.get<ApiResult<string>>(\r\n this._serviceUri + '/documents/last-update/' + id\r\n );\r\n }\r\n\r\n\r\n\r\n /**\r\n * Query document references\r\n */\r\n references(params: ClipperReferencesSearchParams) {\r\n let mode = params.mode;\r\n if (!mode) mode = ClipperQueryReferencesMode.ReferencesIn;\r\n switch (mode) {\r\n case ClipperQueryReferencesMode.ReferencesIn:\r\n case ClipperQueryReferencesMode.ReferencesOut:\r\n params.mode = mode;\r\n return this.httpClient.post<ApiResult<ClipperSearchResult>>(\r\n this._serviceUri + '/documents/references',\r\n params\r\n );\r\n case ClipperQueryReferencesMode.ChangesIn:\r\n case ClipperQueryReferencesMode.ChangesOut:\r\n return this.httpClient.post<ApiResult<ClipperSearchResult>>(\r\n this._serviceUri + '/documents/changes',\r\n params\r\n );\r\n case ClipperQueryReferencesMode.Juris:\r\n return this.httpClient.post<ApiResult<ClipperSearchResult>>(\r\n this._serviceUri + '/documents/juris',\r\n params\r\n );\r\n default:\r\n return null;\r\n }\r\n }\r\n\r\n /**\r\n * Get facets for a document references\r\n */\r\n referencesFacets(params: ClipperReferencesSearchParams) {\r\n let mode = params.mode ?? ClipperQueryReferencesMode.ReferencesIn;\r\n switch (mode) {\r\n case ClipperQueryReferencesMode.ReferencesIn:\r\n case ClipperQueryReferencesMode.ReferencesOut:\r\n params.mode = mode;\r\n return this.httpClient.post<ApiResult<ClipperSearchFacetsResult>>(\r\n this._serviceUri + '/documents/references/facets',\r\n params\r\n );\r\n case ClipperQueryReferencesMode.ChangesIn:\r\n case ClipperQueryReferencesMode.ChangesOut:\r\n return this.httpClient.post<ApiResult<ClipperSearchFacetsResult>>(\r\n this._serviceUri + '/documents/changes/facets',\r\n params\r\n );\r\n case ClipperQueryReferencesMode.Juris:\r\n return this.httpClient.post<ApiResult<ClipperSearchFacetsResult>>(\r\n this._serviceUri + '/documents/juris/facets',\r\n params\r\n );\r\n default: return null;\r\n }\r\n }\r\n\r\n /**\r\n * Wrap document rendering to allow token refresh\r\n */\r\n preRender() {\r\n return this.httpClient.get<ApiResult<boolean>>(\r\n this._serviceUri + '/documents/pre-render?nocache=' + SystemUtils.generateUUID()\r\n );\r\n }\r\n\r\n /**\r\n * Get document juris articles\r\n */\r\n jurisArticles(params: ClipperSearchParams) {\r\n return this.httpClient.post<ApiResult<ClipperSearchResult>>(\r\n this._serviceUri + '/documents/juris/articles',\r\n params\r\n );\r\n }\r\n\r\n /**\r\n * Get deadlines snapshot based on the deadlines\r\n */\r\n deadlinesSnapshot(params: ClipperCalendarSearchParams) {\r\n return this.httpClient.post<ApiResult<ClipperSearchCalendarSnapshotResult>>(\r\n this._serviceUri + '/documents/calendar/snapshot',\r\n params\r\n );\r\n }\r\n\r\n\r\n /**\r\n * Retrieve the taxonomy\r\n */\r\n getTaxonomy(params?: ClipperTaxonomyParams) {\r\n return this.httpClient.post<ApiResult<FolderTree>>(\r\n this._serviceUri + '/taxonomy',\r\n params ?? { model: 0, countItems: false }\r\n );\r\n }\r\n\r\n /**\r\n * Retrieve topics\r\n */\r\n getTopics() {\r\n return this.httpClient.get<ApiResult<NameValueItem<string>[]>>(\r\n this._serviceUri + '/topics'\r\n );\r\n }\r\n\r\n /**\r\n * Retrieve topics as tree\r\n */\r\n getTopicsAsTree() {\r\n return this.httpClient.get<ApiResult<FolderTree>>(\r\n this._serviceUri + '/topics2'\r\n );\r\n }\r\n\r\n /**\r\n * Retrieve tags\r\n */\r\n getTags() {\r\n return this.httpClient.get<ApiResult<NameValueItem<string>[]>>(\r\n this._serviceUri + '/tags'\r\n );\r\n }\r\n\r\n\r\n ///\r\n // DASHBOARD\r\n ///\r\n /**\r\n * Retrieve current dashboard\r\n */\r\n loadDashboard() {\r\n return this.httpClient\r\n .post<ApiResult<ClipperDashboardResult>>(\r\n this._serviceUri + '/account/dashboard',\r\n { refreshing: true }\r\n ).subscribe((r: ApiResult<ClipperDashboardResult>) => {\r\n if (r.success) {\r\n this.dashboard.documentUpdates = r.value.documentUpdates;\r\n this.dashboard.expiredDeadlines = r.value.expiredDeadlines;\r\n this.dashboard.expiringDeadlines = r.value.expiringDeadlines;\r\n this.dashboard.isTrial = r.value.isTrial;\r\n this.dashboard.items.set(r.value.items ?? []);\r\n this.broadcastService.sendMessage(ClipperMessages.COMMAND_DASHBOARD_UPDATED);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Retrieve last 15 days \r\n * @param params : the query params\r\n */\r\n last15Days(params: ClipperSearchParams) {\r\n return this.httpClient.post<ApiResult<ClipperLastDaysResult>>(\r\n this._serviceUri + '/account/last-15-days',\r\n params\r\n );\r\n }\r\n\r\n /**\r\n * Update unread items\r\n * @param module : the module\r\n * @param model : the optional model\r\n * @param increment : the increment (can be negative)\r\n */\r\n updateUnreadItems(module: ClipperModule, model?: ClipperModel, increment?: number) {\r\n increment ??= 0;\r\n if (increment !== 0) {\r\n this.dashboard.updateUnreadItems(module, model, increment);\r\n }\r\n this.broadcastService.sendMessage(ClipperMessages.COMMAND_DASHBOARD_UPDATED);\r\n }\r\n\r\n ///\r\n // LINKS\r\n ///\r\n\r\n /**\r\n * Save a user link\r\n * @param item: the user link\r\n */\r\n saveLink(item: ClipperUserLink) {\r\n return this.httpClient.post<ApiResult<boolean>>(\r\n this._serviceUri + '/account/links/save',\r\n item\r\n );\r\n }\r\n\r\n /**\r\n * Delete a user link\r\n * @param item: the user link\r\n */\r\n deleteLink(item: ClipperUserLink) {\r\n return this.httpClient.post<ApiResult<boolean>>(\r\n this._serviceUri + '/account/links/delete',\r\n item\r\n );\r\n }\r\n\r\n\r\n ///\r\n // BAG - WORKING DOCUMENTS\r\n ///\r\n\r\n /**\r\n * Load working documents\r\n */\r\n loadBag() {\r\n return this.httpClient\r\n .get<ApiResult<ClipperUserWorkingDocument[]>>(\r\n this.serviceUri + '/documents/working'\r\n )\r\n .subscribe(\r\n (r: ApiResult<ClipperUserWorkingDocument[]>) => {\r\n if (!r.success) {\r\n this.dialogService.error(r.message);\r\n } else {\r\n if (r.value) {\r\n const items: ClipperDocumentInfo[] = [];\r\n r.value.forEach(n => {\r\n if (n.documentDescriptor) {\r\n const documentInfo = JSON.parse(n.documentDescriptor);\r\n if (documentInfo) {\r\n n.documentId = documentInfo.DocumentId || documentInfo.Id;\r\n n.title1 = documentInfo.Title1 ?? documentInfo.Title2;\r\n n.title2 = documentInfo.Title1 ? documentInfo.Title2 : undefined;\r\n }\r\n n.documentDescriptor = undefined;\r\n items.push(n);\r\n }\r\n });\r\n this.bag.set(items);\r\n }\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Add one or more working document\r\n * @param documentIds : the document ids to add\r\n */\r\n addToBag(documentIds: string[]) {\r\n return this.httpClient\r\n .post<ApiResult<ClipperUserWorkingDocument[]>>(\r\n this.serviceUri + '/documents/working/add',\r\n { documentIds: documentIds }\r\n )\r\n .subscribe((r: ApiResult<ClipperUserWorkingDocument[]>) => {\r\n if (!r.success) {\r\n this.dialogService.error(r.message);\r\n } else {\r\n if (r.value) {\r\n const newItems: ClipperDocumentInfo[] = [];\r\n r.value.forEach(n => {\r\n if (n.documentDescriptor) {\r\n const documentInfo = JSON.parse(n.documentDescriptor);\r\n if (documentInfo) {\r\n n.documentId = documentInfo.DocumentId || documentInfo.Id;\r\n n.title1 = documentInfo.Title1 ?? documentInfo.Title2;\r\n n.title2 = documentInfo.Title1 ? documentInfo.Title2 : null;\r\n }\r\n n.documentDescriptor = undefined;\r\n newItems.push(n);\r\n }\r\n });\r\n if (newItems.length > 0) {\r\n this.bag.update((values: any) => [...values, ...newItems]);\r\n }\r\n this.dialogService.toast('Operazione completata con successo.');\r\n }\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Remove one working document\r\n * @param documentId : the document id\r\n */\r\n removeFromBag(documentId: string) {\r\n return this.httpClient\r\n .post<ApiResult<number>>(\r\n this.serviceUri + '/documents/working/delete',\r\n { documentIds: [documentId] }\r\n )\r\n .subscribe((r: ApiResult<number>) => {\r\n if (!r.success) {\r\n this.dialogService.error(r.message);\r\n } else {\r\n const p = this.bag().findIndex((n: any) => n.documentId === documentId);\r\n if (p !== -1) {\r\n this.bag.update((values: any) => {\r\n values.splice(p, 1);\r\n return [...values];\r\n });\r\n this.dialogService.toast('Operazione completata con successo.');\r\n }\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Clear all working documents\r\n */\r\n clearBag() {\r\n return this.httpClient\r\n .post<ApiResult<number>>(\r\n this.serviceUri + '/documents/working/delete',\r\n { deleteAll: true }\r\n )\r\n .subscribe((r: ApiResult<number>) => {\r\n if (!r.success) {\r\n this.dialogService.error(r.message);\r\n } else {\r\n this.bag.set([]);\r\n this.dialogService.toast('Operazione completata con successo.');\r\n }\r\n });\r\n }\r\n\r\n ///\r\n // WORKING SEARCHES\r\n ///\r\n\r\n /**\r\n * Load working searches\r\n * @param: module: the module to load searches for\r\n */\r\n loadSearches(module: ClipperModule) {\r\n return this.httpClient\r\n .get<ApiResult<ClipperUserSearch[]>>(\r\n this.serviceUri + '/documents/searches/?module=' + module\r\n )\r\n }\r\n\r\n /**\r\n * Save a working search\r\n * @param params : the clipper user search\r\n */\r\n saveSearch(params: ClipperUserSearch) {\r\n return this.httpClient\r\n .post<ApiResult<ClipperUserSearch>>(\r\n this.serviceUri + '/documents/searches/save',\r\n params\r\n );\r\n }\r\n\r\n /**\r\n * Remove one working search\r\n * @param id : the id to remove\r\n */\r\n deleteSearch(id: number) {\r\n return this.httpClient\r\n .post<ApiResult<number>>(\r\n this.serviceUri + '/documents/searches/delete',\r\n { id: id }\r\n );\r\n }\r\n\r\n ///\r\n // USER SETTINGS AND TRIAL\r\n ///\r\n\r\n /**\r\n * Reset a user password\r\n * @param params parameters\r\n */\r\n resetPassword(params: any) {\r\n return this.httpClient.post<ApiResult<ResetPasswordDialogResult>>(\r\n this._serviceUri + '/account/password/reset',\r\n params\r\n );\r\n }\r\n\r\n /**\r\n * Recover password\r\n * @param params parameters\r\n */\r\n recoverPassword(params: RecoverPasswordDialogResult) {\r\n return this.httpClient.post<ApiResult<boolean>>(\r\n this._serviceUri + '/account/password/recover',\r\n params\r\n );\r\n }\r\n\r\n\r\n /**\r\n * Update settings \r\n * @param params parameters\r\n */\r\n updateSettings(params: any) {\r\n return this.httpClient.post<ApiResult<boolean>>(\r\n this._serviceUri + '/account/settings/update',\r\n params\r\n ).pipe(\r\n map(r => {\r\n if (r.success) {\r\n if (params.channels) {\r\n // Update channels\r\n if (this._loginInfo) {\r\n this._loginInfo.channels = params.channels;\r\n this.storeContext();\r\n this.initializeChannels();\r\n }\r\n }\r\n }\r\n return r;\r\n })\r\n );\r\n }\r\n\r\n /**\r\n * Update channel state\r\n * @param id: the channel id (1, 2, 3, 4)\r\n */\r\n updateChannelsState(params: ClipperUpdateChannelsStateParams) {\r\n return this.httpClient.post<ApiResult<ClipperDashboardResult>>(\r\n this._serviceUri + '/account/settings/channels/update',\r\n params\r\n ).pipe(\r\n map(r => {\r\n if (r.success) {\r\n // Update channels\r\n if (this._loginInfo) {\r\n this._loginInfo.channels = r.value.channels ?? [];\r\n }\r\n // Update dashboard\r\n this.dashboard.documentUpdates = r.value.documentUpdates;\r\n this.dashboard.expiredDeadlines = r.value.expiredDeadlines;\r\n this.dashboard.expiringDeadlines = r.value.expiringDeadlines;\r\n this.dashboard.isTrial = r.value.isTrial;\r\n this.dashboard.items.set(r.value.items ?? []);\r\n this.broadcastService.sendMessage(ClipperMessages.COMMAND_DASHBOARD_UPDATED);\r\n this.storeContext();\r\n this.initializeChannels();\r\n }\r\n return r;\r\n })\r\n );\r\n }\r\n\r\n /**\r\n * Get trial info\r\n */\r\n private getTrialInfo() {\r\n return this.httpClient.get<ApiResult<ClipperUserTrialInfo>>(\r\n this._serviceUri + '/account/trial'\r\n );\r\n }\r\n\r\n /**\r\n * Update trial info\r\n */\r\n updateTrialInfo() {\r\n if (!this._loginInfo || this._loginInfo?.context?.hasTrial === false)\r\n return; // Not supported\r\n this.getTrialInfo().subscribe((r: ApiResult<ClipperUserTrialInfo>) => {\r\n if (r.success) {\r\n if (this._loginInfo?.context) {\r\n if (r.value) {\r\n this._loginInfo.context.hasTrial = true;\r\n this._loginInfo.context.trialInfo = r.value;\r\n } else {\r\n this._loginInfo.context.hasTrial = false;\r\n this._loginInfo.context.trialInfo = undefined;\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n ///\r\n // TEAMS\r\n ///\r\n\r\n /**\r\n * Rename a team\r\n * @param newName : the new name\r\n */\r\n renameTeam(newName: string) {\r\n return this.httpClient.post<ApiResult<ClipperTeamInfo>>(\r\n this._serviceUri + '/account/teams/update',\r\n { title: newName }\r\n );\r\n }\r\n\r\n /**\r\n * Retrieve teams\r\n */\r\n getTeams(params: ClipperTeamsSearchParams) {\r\n return this.httpClient.post<ApiResult<ClipperTeamsSearchResult>>(\r\n this._serviceUri + '/account/teams',\r\n params\r\n )\r\n .pipe(\r\n map((r: ApiResult<ClipperTeamsSearchResult>) => {\r\n // Store teams\r\n if (!params.adminsOnly) {\r\n this._teams = r.value.items;\r\n }\r\n return r;\r\n })\r\n );\r\n }\r\n\r\n /**\r\n * Retrieve team members\r\n */\r\n getTeamMembers(params: ClipperTeamsSearchParams) {\r\n return this.httpClient.post<ApiResult<ClipperTeamMembersSearchResult>>(\r\n this._serviceUri + '/account/teams/members',\r\n params\r\n );\r\n }\r\n\r\n /**\r\n * Delete members\r\n * @param ids: the id list to delete\r\n */\r\n deleteTeamMembers(ids: number[]) {\r\n return this.httpClient.post<ApiResult<number>>(\r\n this._serviceUri + '/account/teams/members/delete',\r\n { ids: ids }\r\n );\r\n }\r\n\r\n /**\r\n * Save member\r\n * @param item: the item to save\r\n */\r\n saveTeamMember(item: ClipperTeamMemberInfo) {\r\n return this.httpClient.post<ApiResult<ClipperTeamMemberInfo>>(\r\n this._serviceUri + '/account/teams/members/save',\r\n item\r\n );\r\n }\r\n\r\n\r\n ///\r\n // CALENDAR\r\n ///\r\n /**\r\n * Query calendar\r\n */\r\n queryCalendar(params: ClipperCalendarSearchParams) {\r\n return this.httpClient.post<ApiResult<ClipperCalendarSearchResult>>(\r\n this._serviceUri + '/calendar',\r\n params\r\n )\r\n .pipe(\r\n map((r: ApiResult<ClipperCalendarSearchResult>) => {\r\n // Store teams\r\n if (r.success) {\r\n this._teams = r.value.teams;\r\n }\r\n return r;\r\n })\r\n );\r\n }\r\n\r\n /**\r\n * Get the calendar snapshot\r\n */\r\n calendarSnapshot(params: ClipperCalendarSearchParams) {\r\n return this.httpClient.post<ApiResult<ClipperSearchCalendarSnapshotResult>>(\r\n this._serviceUri + '/calendar/snapshot',\r\n params\r\n );\r\n }\r\n\r\n /**\r\n * Delete one or more items\r\n * @param ids: ids to delete\r\n */\r\n deleteCalendarDeadlines(ids: string[]) {\r\n return this.httpClient.post<ApiResult<number>>(\r\n this._serviceUri + '/calendar/delete',\r\n { ids: ids }\r\n );\r\n }\r\n\r\n /**\r\n * Copy one or more items\r\n * @param params parameters\r\n */\r\n copyCalendarDeadlines(params: ClipperCalendarCopyDeadlinesParams) {\r\n return this.httpClient.post<ApiResult<number>>(\r\n this._serviceUri + '/calendar/copy',\r\n params\r\n );\r\n }\r\n\r\n /**\r\n * Close a deadline\r\n * @param id : the id to close\r\n */\r\n closeCalendarDeadline(id: string) {\r\n return this.httpClient.post<ApiResult<ClipperDeadlineInfo>>(\r\n this._serviceUri + '/calendar/close',\r\n { id: id }\r\n );\r\n }\r\n\r\n /**\r\n * Save an item\r\n * @param params parameters\r\n */\r\n saveCalendarDeadline(params: ClipperCalendarSaveDeadlineParams) {\r\n return this.httpClient.post<ApiResult<ClipperDeadlineInfo[]>>(\r\n this._serviceUri + '/calendar/save',\r\n params\r\n );\r\n }\r\n\r\n /**\r\n * Retrive a n item\r\n * @param id : the item id\r\n */\r\n getCalendarDeadline(id: string) {\r\n return this.httpClient.get<ApiResult<ClipperDeadlineInfo>>(\r\n this._serviceUri + '/calendar/' + id\r\n );\r\n }\r\n\r\n /**\r\n * Export to iCalendar format\r\n * @param ids : deadlines to export\r\n */\r\n exportCalendarDeadlines(ids: string[]) {\r\n return this.httpClient.post(\r\n this._serviceUri + '/calendar/export',\r\n { ids: ids },\r\n {\r\n responseType: 'blob'\r\n }\r\n );\r\n }\r\n\r\n ///\r\n // ARCHIVE\r\n ///\r\n /**\r\n * Retrieve all folders\r\n * @param params : parameters\r\n */\r\n getArchiveFolders(params: ClipperArchiveFoldersSearchParams) {\r\n return this.httpClient\r\n .post<ApiResult<ClipperArchiveFoldersSearchResult>>(\r\n this._serviceUri + '/archive/folders',\r\n params\r\n )\r\n .pipe(\r\n map((r: ApiResult<ClipperArchiveFoldersSearchResult>) => {\r\n // Store teams\r\n if (r.success) {\r\n this._teams = r.value.teams;\r\n }\r\n return r;\r\n\r\n return r;\r\n })\r\n );\r\n }\r\n\r\n /**\r\n * Save folder\r\n * @param params : parameters\r\n */\r\n saveArchiveFolder(params: Folder) {\r\n return this.httpClient.post<ApiResult<Folder>>(\r\n this._serviceUri + '/archive/folders/save',\r\n params\r\n );\r\n }\r\n\r\n /**\r\n * Export folders\r\n * @param id: the folder id or undefined to export all folders\r\n * @param teamId: the optional team id. Default undefined (personal)\r\n */\r\n exportArchiveFolders(id?: string, teamId?: string) {\r\n let url = this._serviceUri + '/archive/export/?';\r\n if (id) {\r\n url += 'id=' + id;\r\n }\r\n if (teamId) {\r\n if (id) {\r\n url += '&';\r\n }\r\n url += 'team=' + teamId;\r\n }\r\n return this.httpClient.get(\r\n url,\r\n {\r\n headers: new HttpHeaders({\r\n 'Content-Type': 'application/octet-stram'\r\n }),\r\n responseType: 'blob'\r\n }\r\n );\r\n }\r\n\r\n /**\r\n * Import folders\r\n * @param params : parameters\r\n */\r\n importArchiveFolders(params: ClipperArchiveFoldersImportParams) {\r\n // Prepare form\r\n const formData = new FormData();\r\n formData.append(params.file.name, params.file);\r\n formData.append('sourceFileName', params.file.name);\r\n formData.append('overwrite', params.overwrite === true ? \"true\" : \"false\");\r\n if (params.destFolderId) {\r\n formData.append('destFolderId', params.destFolderId);\r\n }\r\n if (params.teamId) {\r\n formData.append('teamId', params.teamId);\r\n }\r\n // Create request\r\n return this.httpClient.request(\r\n new HttpRequest(\r\n 'POST',\r\n this._serviceUri + '/archive/import/',\r\n formData,\r\n { reportProgress: true }\r\n )\r\n );\r\n }\r\n\r\n /**\r\n * Get files and folders\r\n * @param params : parameters\r\n */\r\n queryArchiveItems(params: ClipperArchiveFilesSearchParams) {\r\n return this.httpClient.post<ApiResult<ClipperArchiveFilesSearchResult>>(\r\n this._serviceUri + '/archive/files',\r\n params\r\n );\r\n }\r\n\r\n /**\r\n * Delete file and folders\r\n * @param params parameters\r\n */\r\n deleteArchiveItems(params: ClipperArchiveFilesDeleteParams) {\r\n return this.httpClient.post<ApiResult<number>>(\r\n this._serviceUri + '/archive/files/delete',\r\n params\r\n );\r\n }\r\n\r\n /**\r\n * Copy file and folders to another folder or the same\r\n * @param params parameters\r\n */\r\n copyArchiveItems(params: ClipperArchiveFilesCopyParams) {\r\n return this.httpClient.post<ApiResult<number>>(\r\n this._serviceUri + '/archive/files/copy',\r\n params\r\n );\r\n }\r\n\r\n\r\n /**\r\n * Save a file\r\n * @param params : parameters\r\n */\r\n saveArchiveFile(params: ClipperArchiveFileInfo) {\r\n // Prepare form\r\n let formData = new FormData();\r\n if (params.file) formData.append(params.file.file.name, params.file.file);\r\n if (params.id) formData.append('id', params.id);\r\n if (params.folderId) {\r\n formData.append('folderId', params.folderId);\r\n }\r\n if (params.topicId && params.topicPath) {\r\n formData.append('topicId', params.topicId);\r\n formData.append('topicPath', params.topicPath);\r\n }\r\n if (params.title1) formData.append('title1', params.title1);\r\n if (params.title2) formData.append('title2', params.title2);\r\n if (params.origin) formData.append('origin', params.origin);\r\n if (params.originDescription) {\r\n formData.append('originDescription', params.originDescription);\r\n }\r\n if (params.documentId) formData.append('documentId', params.documentId);\r\n if (params.documentIds) formData.append('documentIds', params.documentIds);\r\n if (params.binaryId) formData.append('binaryId', params.binaryId?.toString());\r\n if (params.tags) formData.append('tags', params.tags);\r\n if (params.notes) formData.append('notes', params.notes);\r\n if (params.fileName) formData.append('fileName', params.fileName);\r\n if (params.fileType) formData.append('fileType', (params.fileType as number).toString());\r\n if (params.storageType) formData.append('storageType', (params.storageType as number).toString());\r\n if (params.model) formData.append('model', (params.model as number).toString());\r\n\r\n // Create request\r\n return this.httpClient.request(\r\n new HttpRequest(\r\n 'POST',\r\n this._serviceUri + '/archive/files/save',\r\n formData,\r\n { reportProgress: true }\r\n )\r\n );\r\n }\r\n\r\n /**\r\n * Get file data\r\n * @param id : the item id\r\n */\r\n getArchiveFile(id: string) {\r\n return this.httpClient.get<ApiResult<ClipperArchiveFileInfo>>(\r\n this._serviceUri + '/archive/files/' + id);\r\n }\r\n\r\n /**\r\n * Download file\r\n * @param id : the binary id to download\r\n * @param otp : the optional one time password\r\n */\r\n downloadArchiveFile(id: number, otp?: string) {\r\n return this.httpClient.get(\r\n this._serviceUri + '/archive/files/download/?id=' + id + '&otp=' + (otp ?? ''),\r\n { responseType: 'blob' }\r\n );\r\n }\r\n\r\n\r\n}\r\n","import { HttpErrorResponse, HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\r\nimport { Injectable, inject } from '@angular/core';\r\nimport { BroadcastService, ErrorInfo } from '@arsedizioni/ars-utils/core';\r\nimport { Observable, catchError, switchMap, throwError } from 'rxjs';\r\nimport { ClipperServiceFlags } from '../definitions';\r\nimport { ClipperService } from '../services/clipper.service';\r\nimport { ClipperMessages } from '../messages';\r\n\r\n\r\n@Injectable()\r\nexport class ClipperAuthInterceptor implements HttpInterceptor {\r\n private clipperService = inject(ClipperService);\r\n private broadcastService = inject(BroadcastService);\r\n private lastErrorTime: number = -1;\r\n\r\n intercept(\r\n request: HttpRequest<any>,\r\n next: HttpHandler\r\n ): Observable<HttpEvent<any>> {\r\n if (request.url.startsWith(this.clipperService.serviceUri)) {\r\n request = request.clone({ withCredentials: true });\r\n return next.handle(this.addTokenToRequest(request))\r\n .pipe(\r\n catchError(error => {\r\n if (error.url.startsWith(this.clipperService.serviceUri)) {\r\n if (\r\n error instanceof HttpErrorResponse &&\r\n error.status === 401 &&\r\n !request.url.includes(\"/login\")\r\n ) {\r\n return this.handle401Error(request, next);\r\n }\r\n const errorStatus = parseInt(error.status ?? \"0\");\r\n if ((errorStatus > 0 && errorStatus < 500) || (this.clipperService.flags & ClipperServiceFlags.NotifySystemErrors) > 0) {\r\n const errorTime = new Date().getTime();\r\n if (errorTime - this.lastErrorTime > 5000) {\r\n this.lastErrorTime = errorTime;\r\n let message = \"\"\r\n switch (errorStatus) {\r\n case 0:\r\n message = \"In questo momento Clipper non è disponibile. Riprova tra qualche minuto.\";\r\n break;\r\n case 403:\r\n message = \"Non hai i permessi necessari per eseguire l'operazione richiesta.\";\r\n break;\r\n default:\r\n message = (error.error?.message ?? error.message ?? \"Impossibile eseguire l'operazione richiesta.\").replaceAll(\"\\r\\n\", \"</p><p>\");\r\n break;\r\n }\r\n this.broadcastService.sendMessage(\r\n ClipperMessages.ERROR,\r\n {\r\n invalidateSession: errorStatus === 405 || errorStatus === 410,\r\n message: message,\r\n title: \"Errore in Clipper\",\r\n errorStatus: errorStatus,\r\n service: this.clipperService.serviceUri\r\n } as ErrorInfo);\r\n }\r\n }\r\n }\r\n return throwError(() => error);\r\n }));\r\n }\r\n return next.handle(request);\r\n }\r\n\r\n /**\r\n * Handle 401 error\r\n * @param request : the request\r\n * @param next : the http handler\r\n */\r\n private handle401Error(request: HttpRequest<any>, next: HttpHandler) {\r\n if (this.clipperService.loggedIn()) {\r\n return this.clipperService.refresh().pipe(\r\n switchMap(() => {\r\n return next.handle(this.addTokenToRequest(request));\r\n }),\r\n catchError(error => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n return next.handle(request);\r\n }\r\n\r\n /**\r\n * Add token to request\r\n * @param request : the request\r\n * @param token: the token or null to use curre3nt\r\n */\r\n private addTokenToRequest(\r\n request: HttpRequest<any>,\r\n token?: string\r\n ): HttpRequest<any> {\r\n\r\n if (request.url.startsWith(this.clipperService.serviceUri)) {\r\n if (this.clipperService.loggedIn()) {\r\n if (!token) token = this.clipperService.getAuthToken();\r\n if (token) {\r\n return request.clone({\r\n setHeaders: {\r\n Authorization: 'Bearer ' + token,\r\n 'ngsw-bypass': 'ngsw-bypass'\r\n },\r\n });\r\n }\r\n }\r\n }\r\n return request;\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\n\r\n@NgModule()\r\nexport class ArsClipperCommonModule {}\r\n\r\n// Other exports\r\nexport * from './messages';\r\nexport * from './definitions';\r\nexport * from './interceptors/auth.interceptor';\r\nexport * from './services/clipper.service';\r\n\r\n","/*\r\n * Public API Surface of ars-utils\r\n */\r\n\r\nexport * from './common/common.module';\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": "20.2.
|
|
3
|
+
"version": "20.2.25",
|
|
4
4
|
"author": {
|
|
5
5
|
"email": "software@arsedizioni.it",
|
|
6
6
|
"name": "Fabio Buscaroli, Alberto Doria"
|
|
@@ -36,34 +36,34 @@
|
|
|
36
36
|
"types": "./clipper.common/index.d.ts",
|
|
37
37
|
"default": "./fesm2022/arsedizioni-ars-utils-clipper.common.mjs"
|
|
38
38
|
},
|
|
39
|
-
"./core": {
|
|
40
|
-
"types": "./core/index.d.ts",
|
|
41
|
-
"default": "./fesm2022/arsedizioni-ars-utils-core.mjs"
|
|
42
|
-
},
|
|
43
39
|
"./clipper.ui": {
|
|
44
40
|
"types": "./clipper.ui/index.d.ts",
|
|
45
41
|
"default": "./fesm2022/arsedizioni-ars-utils-clipper.ui.mjs"
|
|
46
42
|
},
|
|
47
|
-
"./
|
|
48
|
-
"types": "./
|
|
49
|
-
"default": "./fesm2022/arsedizioni-ars-utils-
|
|
43
|
+
"./core": {
|
|
44
|
+
"types": "./core/index.d.ts",
|
|
45
|
+
"default": "./fesm2022/arsedizioni-ars-utils-core.mjs"
|
|
50
46
|
},
|
|
51
47
|
"./help": {
|
|
52
48
|
"types": "./help/index.d.ts",
|
|
53
49
|
"default": "./fesm2022/arsedizioni-ars-utils-help.mjs"
|
|
54
50
|
},
|
|
51
|
+
"./evolution.common": {
|
|
52
|
+
"types": "./evolution.common/index.d.ts",
|
|
53
|
+
"default": "./fesm2022/arsedizioni-ars-utils-evolution.common.mjs"
|
|
54
|
+
},
|
|
55
55
|
"./support.common": {
|
|
56
56
|
"types": "./support.common/index.d.ts",
|
|
57
57
|
"default": "./fesm2022/arsedizioni-ars-utils-support.common.mjs"
|
|
58
58
|
},
|
|
59
|
-
"./support.ui": {
|
|
60
|
-
"types": "./support.ui/index.d.ts",
|
|
61
|
-
"default": "./fesm2022/arsedizioni-ars-utils-support.ui.mjs"
|
|
62
|
-
},
|
|
63
59
|
"./tinymce": {
|
|
64
60
|
"types": "./tinymce/index.d.ts",
|
|
65
61
|
"default": "./fesm2022/arsedizioni-ars-utils-tinymce.mjs"
|
|
66
62
|
},
|
|
63
|
+
"./support.ui": {
|
|
64
|
+
"types": "./support.ui/index.d.ts",
|
|
65
|
+
"default": "./fesm2022/arsedizioni-ars-utils-support.ui.mjs"
|
|
66
|
+
},
|
|
67
67
|
"./ui": {
|
|
68
68
|
"types": "./ui/index.d.ts",
|
|
69
69
|
"default": "./fesm2022/arsedizioni-ars-utils-ui.mjs"
|