@arsedizioni/ars-utils 18.2.428 → 18.2.430

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +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 // Login\r\n LOGIN_CHANGED: '§clipper-login-changed',\r\n LOGIN_COMPLETED: '§clipper-login-completed',\r\n LOGOUT_COMPLETED: '§clipper-logout-completed',\r\n LOGOUT: '§clipper-logout',\r\n\r\n // Document\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 // 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","\r\nimport { SendToDialogResult } from '@arsedizioni/ars-utils/ui.application';\r\nimport { 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\n}\r\n\r\nexport enum ClipperSelectionMode {\r\n Single = 1,\r\n Multi = 2,\r\n Any = 3\r\n}\r\n\r\nexport enum ClipperModuleGroup {\r\n Home = 0,\r\n NormativaVigente = 1,\r\n RimaniAggiornato = 2,\r\n Contributi = 3,\r\n DGInfo = 4,\r\n Calendario = 11,\r\n Archivio = 12,\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 Ricerca = 99\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 RimaniAggiornato = 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: \"Normativa vigente\", value: ClipperModuleGroup.NormativaVigente },\r\n { name: \"Rimani aggiornato\", value: ClipperModuleGroup.RimaniAggiornato },\r\n { name: \"Contributi\", value: ClipperModuleGroup.Contributi },\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: \"OP\" }\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 shortName?: string | null;\r\n group?: string | null;\r\n channels?: string | null;\r\n sectorId?: string | null;\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: 'Giuris. 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: 'Giurisprudenza',\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: null,\r\n value: '4RAB',\r\n name: 'Abruzzo',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: null,\r\n value: '4RBA',\r\n name: 'Basilicata',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: null,\r\n value: '4RCAL',\r\n name: 'Calabria',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: null,\r\n value: '4RCAM',\r\n name: 'Campania',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: null,\r\n value: '4REM',\r\n name: 'Emilia Romagna',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: null,\r\n value: '4RFVG',\r\n name: 'Friuli Venezia Giulia',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: null,\r\n value: '4RLA',\r\n name: 'Lazio',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: null,\r\n value: '4RLI',\r\n name: 'Liguria',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: null,\r\n value: '4RLO',\r\n name: 'Lombardia',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: null,\r\n value: '4RMA',\r\n name: 'Marche',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: null,\r\n value: '4RMO',\r\n name: 'Molise',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: null,\r\n value: '4RPI',\r\n name: 'Piemonte',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: null,\r\n value: '4RPU',\r\n name: 'Puglia',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: null,\r\n value: '4RSA',\r\n name: 'Sardegna',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: null,\r\n value: '4RSI',\r\n name: 'Sicilia',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: null,\r\n value: '4RTO',\r\n name: 'Toscana',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: null,\r\n value: '4RTAA',\r\n name: 'Trentino Trentino Alto Adige',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: null,\r\n value: '4RUM',\r\n name: 'Umbria',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: null,\r\n value: '4RVA',\r\n name: \"Valle D'Aosta\",\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: null,\r\n value: '4RVE',\r\n name: 'Veneto',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: null,\r\n value: '4PAB',\r\n name: 'Prov. Autonoma di Bolzano',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: null,\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: null,\r\n value: '5CC',\r\n name: 'Corte Costituzionale',\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: null,\r\n value: '5CCC',\r\n name: 'Corte di Cassazione Civile',\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: null,\r\n value: '5CCP',\r\n name: 'Corte di Cassazione Penale',\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: null,\r\n value: '5CASA',\r\n name: \"Corte d'Assise d'Appello\",\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: null,\r\n value: '5CAS',\r\n name: \"Corte d'Assise\",\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: null,\r\n value: '5CA',\r\n name: \"Corte d'Appello\",\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: null,\r\n value: '5PCA',\r\n name: \"Procura Generale Corte d'Appello\",\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: null,\r\n value: '5GDP',\r\n name: 'Giudice di Pace',\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: null,\r\n value: '5PR',\r\n name: 'Procura della Repubblica',\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: null,\r\n value: '5T',\r\n name: 'Tribunale',\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: null,\r\n value: '5P',\r\n name: 'Pretura',\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: null,\r\n value: '5CDS',\r\n name: 'Consiglio di Stato',\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: null,\r\n value: '5TAR',\r\n name: 'Tribunale Amministrativo Regionale',\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: null,\r\n value: '5TSA',\r\n name: 'Tribunale Superiore delle Acque',\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: null,\r\n value: '5TGA',\r\n name: 'Tribunale Regionale acque',\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: null,\r\n value: '5CTP',\r\n name: 'Commissione Tributaria Provinciale',\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: null,\r\n value: '5CTR',\r\n name: 'Commissione Tributaria Regionale',\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: null,\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: null,\r\n value: '5CDC',\r\n name: 'Corte dei Conti',\r\n },\r\n {\r\n sectorId: 'GC',\r\n channels: null,\r\n value: '3CJCE',\r\n name: 'Corte di Giustizia CEE/CE',\r\n },\r\n {\r\n sectorId: 'GC',\r\n channels: null,\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: null,\r\n value: '3CWJ',\r\n name: 'Corte Internazionale di Giustizia',\r\n },\r\n {\r\n sectorId: 'GC',\r\n channels: null,\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\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 | null = false;\r\n isActive?: boolean | null = 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 | null;\r\n expiringDate: string;\r\n isTrial?: boolean | null;\r\n isDisabled: boolean;\r\n isDvd: boolean;\r\n isActive: boolean;\r\n documentsViewable?: number | null;\r\n documentsViewed?: number | null;\r\n settings?: ClipperChannelSettings | null;\r\n}\r\n\r\nexport interface ClipperUserInfo {\r\n userId: number;\r\n customerId?: number | null;\r\n companyName: string;\r\n displayName: string;\r\n firstName: string;\r\n email: string;\r\n OAUTH?: boolean | null;\r\n sessionId?: string | null;\r\n scope: number;\r\n isAuthenticated: boolean;\r\n isTemporary: boolean;\r\n hasTrial: boolean;\r\n hasTeam: boolean;\r\n channels: ClipperUserChannelInfo[];\r\n firstChannelTrial: ClipperUserChannelInfo;\r\n trialInfo?: ClipperUserTrialInfo | null;\r\n}\r\n\r\nexport interface ClipperLoginResult extends LoginResult<ClipperUserInfo> {\r\n settings?: ClipperChannelSettings[] | null;\r\n}\r\n\r\nexport interface ClipperLoginInfo {\r\n context: ClipperUserInfo;\r\n complianceContext?: any | null;\r\n userSettings?: ClipperChannelSettings[] | null;\r\n userCredentials?: string | null;\r\n OAUTH?: LoginOAuthType | null;\r\n}\r\n\r\nexport class ClipperSearchParams {\r\n version: number = 6;\r\n searchId?: number | null = null;\r\n searchName?: string | null = null;\r\n text?: string | null = null;\r\n title?: string | null = null;\r\n titleOnly?: boolean | null = false;\r\n showUnreadDocumentsOnly?: boolean | null = false;\r\n showCommentedDocumentsOnly?: boolean | null = false;\r\n number?: string | null = null;\r\n fromDate?: Date | null = null;\r\n toDate?: Date | null = null;\r\n year?: number | null = null;\r\n sourceNumber?: string | null = null;\r\n source?: string | null = null;\r\n sourceFromDate?: Date | null = null;\r\n sourceToDate?: Date | null = null;\r\n sourceYear?: number | null = null;\r\n sector?: string | null = null;\r\n sectors?: SectorInfo[] | null = null;\r\n topic?: string | null = null;\r\n topics?: NameValueItem<string>[] | null = null;\r\n taxonomy?: string | null = null;\r\n taxonomies?: NameValueItem<string>[] | null = null;\r\n taxonomyPath?: string | null = null;\r\n taxonomyNode?: string | null = null;\r\n type?: string | null = null;\r\n types?: NameValueItem<string>[] | null = null;\r\n tag?: string | null = null;\r\n tags?: NameValueItem<string>[] | null = null;\r\n author?: string | null = null;\r\n authors?: NameValueItem<string>[] | null = null;\r\n changeReason?: number | null = null;\r\n changedNumber?: string | null = null;\r\n changedYear?: number | null = null;\r\n changedTitle?: string | null = null;\r\n modifierNumber?: string | null = null;\r\n modifierYear?: number | null = null;\r\n modifierTitle?: string | null = null;\r\n model?: ClipperModel | null = null;\r\n models?: ClipperModel[] | null = null;\r\n module?: ClipperModule | null = null;\r\n modules?: NameValueItem<ClipperModule>[] | null = null;\r\n mode?: ClipperQueryReferencesMode | null = null;\r\n channels?: NameValueItem<ClipperChannel>[] | null = [...ClipperChannels];\r\n count?: number | null = 15;\r\n id?: string | null = null;\r\n anchor?: string | null = null;\r\n excludeTextReferences?: boolean | null = false;\r\n excludeNotesReferences?: boolean | null = false;\r\n useModifierInfo?: boolean | null = false;\r\n returnModifierInfo?: boolean | null = false;\r\n first?: number | null = 0;\r\n sortMode?: number | null = null;\r\n}\r\n\r\nexport interface ClipperReferencesSearchParams {\r\n documentId: string;\r\n year?: number | null;\r\n sector?: string | null;\r\n author?: string | null;\r\n anchor?: string | null;\r\n model?: string | null;\r\n mode?: ClipperQueryReferencesMode | null;\r\n excludeTextReferences?: boolean | null;\r\n excludeNotesReferences?: boolean | null;\r\n useModifierInfo?: boolean | null;\r\n returnModifierInfo?: boolean | null;\r\n count?: number | null;\r\n first?: number | null;\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 | null;\r\n description?: string | null;\r\n uri: string;\r\n ordinal?: string | null;\r\n score?: number | null;\r\n veryRelevant?: boolean | null;\r\n value?: string | null;\r\n level?: number | null;\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 | null;\r\n documentId?: string | null;\r\n model?: number;\r\n modelName?: string | null;\r\n module?: number | null;\r\n moduleName?: string | null;\r\n channelName?: string | null;\r\n group?: string | null;\r\n title2?: string | null;\r\n title1?: string | null;\r\n tags?: string | null;\r\n topics?: string | null;\r\n number?: string | null;\r\n date?: Date | null;\r\n description?: string | null;\r\n publishingDate?: Date | null;\r\n pictureId?: string | null;\r\n sourceNumber?: string | null;\r\n sourceDate?: Date | null;\r\n source?: string | null;\r\n origin?: string | null;\r\n originDescription?: string | null;\r\n author?: string | null;\r\n anchors?: ClipperDocumentAnchorInfo[] | null;\r\n taxonomy?: string | null;\r\n info?: string | null;\r\n isRead?: boolean | null;\r\n isExportable?: boolean | null;\r\n isCommented?: boolean | null;\r\n isJuris?: boolean | null;\r\n isOver?: boolean | null;\r\n isTrial?: boolean | null;\r\n isNew?: boolean | null;\r\n isExpired?: boolean | null;\r\n isExpiring?: boolean | null;\r\n isMenuOpen?: boolean | null;\r\n validityState?: number | null;\r\n validUntilDate?: Date | null;\r\n validityDescription?: string | null;\r\n validityInfo?: string | null;\r\n expiringDate?: Date | null;\r\n expiringDescription?: string | null;\r\n expiringInfo?: string | null;\r\n popularity?: number | null;\r\n part?: number | null;\r\n primaryId?: string | null;\r\n primaryDescription?: string | null;\r\n primaryModel?: number | null;\r\n hasPrimary?: boolean | null;\r\n secondaryId?: string | null;\r\n bag?: any | null;\r\n lastUpdate?: string | null;\r\n\r\n}\r\n\r\nexport class ClipperSearchResult {\r\n days?: string | null = null;\r\n interval?: string | null = null;\r\n items?: ClipperDocumentInfo[] | null = null;\r\n facets?: ClipperSearchFacetsSnapshot | null = new ClipperSearchFacetsSnapshot();\r\n tags?: NameValueItem<string>[] | null;\r\n total?: number | null = null;\r\n searchInfo?: any | null = null;\r\n searchParams?: ClipperSearchParams | null = new ClipperSearchParams();\r\n snapshotMode?: ClipperQueryReferencesMode | null = null;\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 | null;\r\n selectedValueDescription?: string | null;\r\n values: ClipperSearchFacet[];\r\n index: number;\r\n}\r\n\r\nexport interface ClipperSearchFacetsResult {\r\n interval?: string | null;\r\n facets?: ClipperSearchFacet[][] | null;\r\n total?: number | null;\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 | null = null;\r\n author?: string | null = null;\r\n anchor?: string | null = null;\r\n type?: string | null = null;\r\n reason?: string | null = null;\r\n fromDate?: Date | null = null;\r\n toDate?: Date | null = null;\r\n interval?: string | null = null;\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[] | null = null;\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 | null;\r\n canEmbed?: boolean | null;\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 | null;\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[] | null;\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[] | null;\r\n}\r\n\r\nexport interface ClipperUserSearch {\r\n id?: number | null;\r\n userId?: number | null;\r\n name?: string | null;\r\n module?: ClipperModule | null,\r\n data?: string | null;\r\n}\r\n\r\nexport interface ClipperUserWorkingDocument {\r\n userId?: number | null;\r\n documentId?: string | null;\r\n documentDescriptor?: string | null;\r\n title1?: string | null;\r\n title2?: string | null;\r\n timestamp?: string | null;\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 | null;\r\n userId: number;\r\n userName?: string | null;\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 | null;\r\n title?: string | null;\r\n pictureId?: string | null;\r\n date?: string | null;\r\n endDate?: string | null;\r\n startTime?: string | null;\r\n endTime?: string | null;\r\n hours?: number | null;\r\n days?: number | null;\r\n dateIntervalDescription?: string | null;\r\n durationDescription?: string | null;\r\n group?: string | null;\r\n address?: string | null;\r\n city?: string | null;\r\n isOver?: boolean | null;\r\n}\r\n\r\n\r\n\r\nexport interface ClipperSearchArsEventsParams {\r\n group?: string | null;\r\n group1?: string | null;\r\n collectGroups?: boolean | null;\r\n collectBundles?: boolean | null;\r\n fromDate?: string | null;\r\n untilDate?: string | null;\r\n text?: string | null;\r\n sortBy?: string | null;\r\n count: number\r\n}\r\n\r\nexport interface ClipperSearchArsEventsResult {\r\n interval?: string | null;\r\n items?: ClipperArsEventInfo[] | null;\r\n total?: number | null;\r\n}\r\n\r\nexport interface ClipperDocumentUpdateStateParams {\r\n documentIds: string[] | null;\r\n isRead: boolean | null;\r\n}\r\n\r\n\r\n\r\nexport interface ClipperDashboardItem {\r\n id?: ClipperModule | null;\r\n newItems?: number | null;\r\n unreadItems?: number | null;\r\n lastUpdated?: string | null;\r\n}\r\n\r\nexport interface ClipperDashboardResult {\r\n items?: ClipperDashboardItem[] | null;\r\n isTrial?: boolean | null;\r\n expiredDeadlines?: number | null;\r\n expiringDeadlines?: number | null;\r\n documentUpdates?: number | null;\r\n}\r\n\r\nexport class ClipperDashboard {\r\n items = signal<ClipperDashboardItem[]>([]);\r\n isTrial?: boolean | null = false;\r\n expiredDeadlines?: number | null = null;\r\n expiringDeadlines?: number | null = null;\r\n documentUpdates?: number | null = null;\r\n unreadItems: Signal<[ClipperModule, number][]> = computed(() => {\r\n const states: [ClipperModule, number][] = [];\r\n let totalUnread = 0;\r\n this.items().filter((x: ClipperDashboardItem) => x.id == ClipperModule.News\r\n || x.id === ClipperModule.Approfondimenti\r\n || x.id === ClipperModule.Giurisprudenza).forEach((x: ClipperDashboardItem) => {\r\n totalUnread += x.unreadItems ?? 0;\r\n });\r\n states.push([ClipperModule.News, totalUnread]);\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.QuesitiECasiRisolti, this.items().find((x: ClipperDashboardItem) => x.id == ClipperModule.QuesitiECasiRisolti)?.unreadItems ?? 0]);\r\n return states;\r\n });\r\n\r\n /**\r\n * Update unread items\r\n * @param module : the module\r\n * @param increment : the increment (can be negative)\r\n */\r\n updateUnreadItems(module: ClipperModule, increment: number) {\r\n let item = this.items()?.find((x: ClipperDashboardItem) => x.id == module);\r\n if (item) {\r\n item.unreadItems += increment;\r\n this.items.update((values: ClipperDashboardItem[]) => [...values]);\r\n }\r\n }\r\n\r\n /***\r\n * Get the module unread items\r\n * @param module: the module\r\n * @returns the module unread items\r\n */\r\n getUnreadItems(module: ClipperModule): number {\r\n return this.unreadItems()?.find((x: [ClipperModule, number]) => x[0] === module)?.[1];\r\n }\r\n}\r\n\r\n\r\nexport class ClipperTeamMemberInfo {\r\n id: number;\r\n teamId?: string | null = null;\r\n name?: string | null = null;\r\n email?: string | null = null;\r\n isAdmin?: boolean | null = null;\r\n isDisabled?: boolean | null = null;\r\n hasPermission55?: boolean | null = null;\r\n hasPermission56?: boolean | null = null;\r\n hasPermission57?: boolean | null = null;\r\n}\r\n\r\nexport enum ClipperTeamProductPermission {\r\n SharedArchive = 1004676,\r\n SharedCalendar = 1004683\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 ClipperSearchTeamMembersResult {\r\n teamId?: string | null;\r\n teamTitle?: string | null;\r\n total?: number | null;\r\n customerId?: number | null;\r\n canEdit?: boolean | null;\r\n products?: ClipperTeamProductInfo[] | null;\r\n items?: ClipperTeamMemberInfo[] | null;\r\n}\r\n\r\nexport interface ClipperSearchTeamsParams {\r\n teamId?: string | null;\r\n permissionId?: number | null;\r\n productId?: number | null;\r\n activeMembersOnly?: boolean | null;\r\n includeRSTeams?: boolean | null;\r\n}\r\n\r\nexport interface ClipperSearchTeamsResult {\r\n total: number;\r\n items: NameValueItem<string>[];\r\n}\r\n\r\nexport class ClipperTeamInfo {\r\n id?: string | null = null;\r\n customerId?: number | null = null;\r\n title?: string | null = null;\r\n isDisabled?: boolean | null = null;\r\n created?: string | null = null;\r\n lastModified?: string | null = null;\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 ClipperSearchCalendarParams {\r\n id?: string | null = null;\r\n fromDate?: Date | null = null;\r\n toDate?: Date | null = null;\r\n teamId?: string | null = null;\r\n text?: string | null = null;\r\n month?: number | null = null;\r\n year?: number | null = null;\r\n sortDescending?: boolean | null = null;\r\n state?: ClipperCalendarState | null = null;\r\n recurrentOnly?: boolean | null = null;\r\n first?: number | null = 0;\r\n count?: number | null = 15\r\n}\r\n\r\nexport interface ClipperSearchCalendarResult {\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\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 interface ClipperDeadlineInfo {\r\n id: string;\r\n companyId?: number | null;\r\n userId?: number | null;\r\n teamId?: string | null;\r\n teamName?: string | null;\r\n teams?: NameValueItem<string> | null;\r\n description?: string | null;\r\n documentTitle?: string | null;\r\n documentId?: string | null;\r\n documentNumber?: string | null;\r\n documentDate?: Date | null;\r\n emails?: string | null;\r\n expiringDate?: Date | null;\r\n expiredAlertSent?: boolean | null;\r\n expiringInfo?: string | null;\r\n nextExpiringDate?: Date | null;\r\n alarmDays?: number | null;\r\n alarmDate?: Date | null;\r\n alarmMemo?: string | null;\r\n alarmSent?: boolean | null;\r\n isMenuOpen?: boolean | null;\r\n isExpired?: boolean | null;\r\n isExpiring?: boolean | null;\r\n isClosed?: boolean | null;\r\n isClosable?: boolean | null;\r\n isPrivate?: boolean | null;\r\n isRecurrent?: boolean | null;\r\n recurrencePatternType?: ClipperRecurrenceType | null;\r\n recurrenceFrequency?: number | null;\r\n recurrenceEndOfMonth?: boolean | null;\r\n recurrenceNewId?: string | null;\r\n outlookAppointmentId?: string | null;\r\n created?: Date | null;\r\n lastModified?: Date | null;\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 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.NormativaVigente &&\r\n model !== ClipperModel.Scadenze &&\r\n model !== ClipperModel.Segnalazioni;\r\n }\r\n\r\n /**\r\n * Return the Clipper module from model \r\n * @param model: the model\r\n * @returns the module id\r\n */\r\n static getClipperModuleFromModel(model: ClipperModel): ClipperModule | null {\r\n switch (model) {\r\n case ClipperModel.AllerteAlimentari: return ClipperModule.AllerteAlimentari;\r\n case ClipperModel.News:\r\n case ClipperModel.Articoli:\r\n case ClipperModel.Juris: return ClipperModule.News;\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 null;\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 * 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>[] | null | undefined = undefined,\r\n params: ClipperSearchParams | null | undefined = undefined): 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?.length > 0) {\r\n if (modules.length === 1 && modules[0].value === ClipperModule.GazzetteBollettiniEFontiDiverse) {\r\n sortOptions.push(options[2]);\r\n sortOptions.push(options[3]);\r\n } else if ((modules.length <= 3 && modules.filter(x => x.value !== ClipperModule.NormativaVigente\r\n && x.value !== ClipperModule.GazzetteBollettiniEFontiDiverse\r\n && x.value !== ClipperModule.Giurisprudenza).length === 0)\r\n || (modules.length === 1 && modules[0].value === ClipperModule.NormativaVigente)\r\n || (modules.length === 1 && modules[0].value === ClipperModule.Giurisprudenza)) {\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 = null;\r\n params.sectors = null;\r\n params.author = null;\r\n params.authors = null;\r\n params.topic = null;\r\n params.topics = null;\r\n params.taxonomy = null;\r\n params.taxonomies = null;\r\n params.taxonomyPath = null;\r\n params.taxonomyNode = null;\r\n params.number = null;\r\n params.fromDate = null;\r\n params.toDate = null;\r\n params.year = null;\r\n params.sourceNumber = null;\r\n params.source = null;\r\n params.sourceFromDate = null;\r\n params.sourceToDate = null;\r\n params.sourceYear = null;\r\n params.tags = null;\r\n params.text = null;\r\n params.titleOnly = false;\r\n params.type = null;\r\n params.types = null;\r\n params.showUnreadDocumentsOnly = false;\r\n params.showCommentedDocumentsOnly = false;\r\n params.channels = [...ClipperChannels];\r\n params.changeReason = null;\r\n params.changedNumber = null;\r\n params.changedYear = null;\r\n params.changedTitle = null;\r\n params.modifierNumber = null;\r\n params.modifierYear = null;\r\n params.modifierTitle = null;\r\n params.model = null;\r\n params.models = null;\r\n params.module = null;\r\n params.modules = null;\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(modules: NameValueItem<ClipperModule>[] | null | undefined): 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 [ClipperModel.Articoli, ClipperModel.News, ClipperModel.Juris].forEach(x => models.push(x));\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.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.GiurisprudenzaRecente);\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 null\r\n */\r\n static normalizeTextQuery(text: string): string | null {\r\n if (!text || text.length === 0) return null;\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 } from '@angular/common/http';\r\nimport { Injectable, OnDestroy, Signal, computed, inject, signal } from '@angular/core';\r\nimport {\r\n ApiResult, BroadcastMessageInfo, BroadcastService,\r\n FolderTree, NameValueItem, SystemUtils\r\n} from '@arsedizioni/ars-utils/core';\r\nimport { DialogService, RecoverPasswordDialogData, RecoverPasswordDialogResult, ResetPasswordDialogResult } from '@arsedizioni/ars-utils/ui';\r\nimport { LoginOAuthType } from '@arsedizioni/ars-utils/ui.oauth';\r\nimport { Subscription, of, throwError } from 'rxjs';\r\nimport { catchError, 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, ClipperSearchTeamsParams, ClipperSearchTeamsResult, ClipperTeamInfo, ClipperSearchTeamMembersResult, ClipperSearchCalendarParams, ClipperSearchCalendarResult, ClipperSearchCalendarSnapshotResult, ClipperCalendarCopyDeadlinesParams, ClipperDeadlineInfo } from '../definitions';\r\nimport { ClipperMessages } from '../messages';\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 | null;\r\n private broadcastService = inject(BroadcastService);\r\n private dialogService = inject(DialogService);\r\n\r\n private _serviceUri: string | null = null;\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 | null = null;\r\n get loginInfo(): ClipperLoginInfo | null {\r\n if (!this._loginInfo) {\r\n const loginInfo = localStorage.getItem('clipper_login');\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>(false);\r\n public readonly loggingIn = signal<boolean>(false);\r\n public readonly snapshot = signal<ClipperSearchResult>(null);\r\n public readonly supportsRS = signal<boolean>(false);\r\n public readonly referencesSnapshot = signal<ClipperSearchResult>(null);\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: string | null = null;\r\n public currentTeamName = signal<string>(\"PERSONALE\");\r\n\r\n ngOnDestroy() {\r\n if (this.broadcastServiceSubscription) {\r\n this.broadcastServiceSubscription.unsubscribe();\r\n }\r\n }\r\n\r\n /**\r\n * Initialize service\r\n * @param serviceUri : the service uri\r\n * @param flags: the service flags. Default is none.\r\n */\r\n initialize(\r\n serviceUri: string,\r\n flags: ClipperServiceFlags = ClipperServiceFlags.None) {\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._flags = flags;\r\n\r\n // React to message broadcasting\r\n if (!this.broadcastServiceSubscription) {\r\n this.broadcastServiceSubscription = this.broadcastService.getMessage().subscribe((message: BroadcastMessageInfo) => {\r\n if (message.id === ClipperMessages.LOGIN_CHANGED) {\r\n setTimeout(() => {\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).subscribe((r: ApiResult<ClipperLoginResult>) => {\r\n if (!r.success)\r\n this.dialogService.error(r.message, null, \"Errore di Clipper\");\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 }, 500);\r\n } else if (message.id === ClipperMessages.LOGOUT) {\r\n if (this.loggedIn()) {\r\n this.logout().subscribe((r: any) => {\r\n if (!r.success) {\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>\", null, \"Errore di Clipper\");\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 // Eveluate current session storage in case of page refresh (F5)\r\n if (!this.loggedIn() && this.getToken()) {\r\n // Auto login\r\n this.loggedIn.set(true);\r\n // Notify\r\n this.broadcastService.sendMessage(ClipperMessages.LOGIN_COMPLETED);\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_jwt', value.token);\r\n sessionStorage.setItem('clipper_jwt_refresh', value.refreshToken ?? '');\r\n }\r\n\r\n /**\r\n * Return current JWT token\r\n * @param refresh: true to get the refresh token. Default is false.\r\n */\r\n getToken(refresh: boolean = false): string {\r\n let token = sessionStorage.getItem(refresh ? 'clipper_jwt_refresh' : 'clipper_jwt');\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 /**\r\n * Store login info\r\n */\r\n storeLogin() {\r\n localStorage.setItem('clipper_login', JSON.stringify(this._loginInfo));\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 onSucces: function to execute on seccess\r\n */\r\n autoLogin(\r\n email: string | null | undefined = null,\r\n password: string | null | undefined = null,\r\n remember: boolean | null | undefined = false,\r\n oauth: LoginOAuthType | null | undefined = null,\r\n oauthAccessToken: string | null | undefined = null,\r\n onSucces: Function | null | undefined = null): boolean {\r\n this.login(email, password, remember, oauth, oauthAccessToken)\r\n .subscribe((r: ApiResult<ClipperLoginResult>) => {\r\n if (!r.success) {\r\n this.dialogService.error(r.message, null, \"Errore in Clipper\");\r\n } else {\r\n this.dialogService.toast('Connesso a Clipper', 1500, 'power');\r\n if (onSucces) {\r\n onSucces();\r\n }\r\n }\r\n });\r\n return true;\r\n }\r\n\r\n /**\r\n * Perform auto logout\r\n * @param onSucces: function to execute on seccess\r\n */\r\n autoLogout(\r\n onSucces: Function | null | undefined = null) {\r\n if (!this.loggedIn()) return;\r\n this.logout().subscribe({\r\n next: (r: any) => {\r\n if (!r.success) {\r\n this.dialogService.error(r.message, null, \"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 (onSucces) {\r\n onSucces();\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 * @returns: the login result\r\n */\r\n login(email: string | null | undefined = null,\r\n password: string | null | undefined = null,\r\n remember: boolean | null | undefined = false,\r\n oauth: LoginOAuthType | null | undefined = null,\r\n oauthAccessToken: string | null | undefined = null) {\r\n this.loggingIn.set(true);\r\n return this.httpClient\r\n .post<ApiResult<ClipperLoginResult>>(\r\n this._serviceUri + '/login2',\r\n {\r\n user: oauth ? null : email,\r\n password: oauth ? null : password,\r\n clientId: localStorage.getItem(\"clipper_client_id\"),\r\n OAUTH: oauth\r\n },\r\n {\r\n headers:\r\n !oauth\r\n ? new HttpHeaders()\r\n : new HttpHeaders()\r\n .set(\"Authorization\", oauthAccessToken)\r\n })\r\n .pipe(\r\n catchError(err => {\r\n this.loggingIn.set(false);\r\n localStorage.removeItem('clipper_login');\r\n return throwError(() => err);\r\n }),\r\n map((r: ApiResult<ClipperLoginResult>) => {\r\n this.loggingIn.set(false);\r\n if (r.success) {\r\n // Store access token\r\n this.setToken(r.value);\r\n const loginInfo: ClipperLoginInfo = {\r\n context: r.value.context,\r\n userSettings: r.value.settings,\r\n OAUTH: oauth\r\n }\r\n if (!oauth) {\r\n loginInfo.userCredentials =\r\n SystemUtils.cipher(\r\n JSON.stringify({\r\n email: email,\r\n password: password,\r\n remember: remember,\r\n }), loginInfo.context.userId.toString());\r\n }\r\n // Update info \r\n this._loginInfo = loginInfo;\r\n this.storeLogin();\r\n this.loggedIn.set(true);\r\n // Notify\r\n this.broadcastService.sendMessage(ClipperMessages.LOGIN_COMPLETED);\r\n }\r\n return r;\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 map(r => {\r\n this.clear();\r\n return r\r\n }),\r\n catchError((_e) => {\r\n this.clear();\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 = null;\r\n // Logged out\r\n this.loggedIn.set(false);\r\n // Notify\r\n this.broadcastService.sendMessage(ClipperMessages.LOGOUT_COMPLETED);\r\n }\r\n\r\n /**\r\n * Clear login data\r\n */\r\n clear() {\r\n // Clear local storage\r\n sessionStorage.removeItem('clipper_jwt');\r\n sessionStorage.removeItem('clipper_jwt_refresh');\r\n sessionStorage.removeItem('clipper_oauth');\r\n localStorage.removeItem('clipper_login');\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.getToken(true)\r\n ).pipe(map((r: ApiResult<ClipperLoginResult>) => {\r\n // Update token\r\n this.setToken(r.value);\r\n }));\r\n }\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 * 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 * 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: ClipperSearchCalendarParams) {\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 | null = null) {\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 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 * Update unread items\r\n * @param module : the module\r\n * @param increment : the increment (can be negative)\r\n */\r\n updateUnreadItems(module: ClipperModule, increment: number) {\r\n console.log('module:' + module);\r\n this.dashboard.updateUnreadItems(module, increment);\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 : null;\r\n }\r\n n.documentDescriptor = null;\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 = null;\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: RecoverPasswordDialogData) {\r\n return this.httpClient.post<ApiResult<RecoverPasswordDialogResult>>(\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 );\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 updateChannelState(id: number, enabled: boolean) {\r\n return this.httpClient.post<ApiResult<ClipperDashboardResult>>(\r\n this._serviceUri + '/account/settings/channels/update',\r\n {\r\n channelId: id,\r\n isEnabled: enabled,\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 (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 = null;\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: ClipperSearchTeamsParams) {\r\n return this.httpClient.post<ApiResult<ClipperSearchTeamsResult>>(\r\n this._serviceUri + '/account/teams',\r\n params\r\n )\r\n .pipe(\r\n map((r: ApiResult<ClipperSearchTeamsResult>) => {\r\n // Store teams\r\n this._teams = r.value.items;\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: ClipperSearchTeamsParams) {\r\n return this.httpClient.post<ApiResult<ClipperSearchTeamMembersResult>>(\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: ClipperSearchCalendarParams) {\r\n return this.httpClient.post<ApiResult<ClipperSearchCalendarResult>>(\r\n this._serviceUri + '/calendar',\r\n params\r\n )\r\n .pipe(\r\n map((r: ApiResult<ClipperSearchCalendarResult>) => {\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: ClipperSearchCalendarParams) {\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: ClipperDeadlineInfo) {\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 * Accept a document changes\r\n * @param ids : deadlines to update\r\n */\r\n acceptCalendarDeadlinesChanges(ids: string[]) {\r\n return this.httpClient.post<ApiResult<number>>(\r\n this._serviceUri + '/calendar/changes/accept',\r\n { ids: ids }\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 } from '@arsedizioni/ars-utils/core';\r\nimport { DialogService } from '@arsedizioni/ars-utils/ui';\r\nimport { Observable, catchError, switchMap, throwError } from 'rxjs';\r\nimport { ClipperServiceFlags } from '../definitions';\r\nimport { ClipperMessages } from '../messages';\r\nimport { ClipperService } from '../services/clipper.service';\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 dialogService = inject(DialogService);\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 this.dialogService.clearBusy();\r\n if (\r\n error instanceof HttpErrorResponse &&\r\n !request.url.includes(\"/login\") &&\r\n error.status === 401\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 const invalidSession = errorStatus === 403;\r\n this.dialogService.error(\r\n \"<p>\" + (error.error?.message ?? error.message ?? \"Impossibile eseguire l'operazione richiesta.\").replaceAll(\"\\r\\n\", \"</p><p>\") + \"</p>\",\r\n null,\r\n \"Errore in Clipper\",\r\n undefined,\r\n undefined,\r\n invalidSession ? 5000 : 15000).afterClosed().subscribe(() => {\r\n if (invalidSession) {\r\n this.broadcastService.sendMessage(ClipperMessages.LOGOUT);\r\n }\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 | null = null\r\n ): HttpRequest<any> {\r\n if (request.url.startsWith(this.clipperService.serviceUri)) {\r\n if (!token) token = this.clipperService.getToken();\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 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 // Login\r\n LOGIN_CHANGED: '§clipper-login-changed',\r\n LOGIN_COMPLETED: '§clipper-login-completed',\r\n LOGOUT_COMPLETED: '§clipper-logout-completed',\r\n LOGOUT: '§clipper-logout',\r\n\r\n // Document\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 // 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","\r\nimport { SendToDialogResult } from '@arsedizioni/ars-utils/ui.application';\r\nimport { 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\n}\r\n\r\nexport enum ClipperSelectionMode {\r\n Single = 1,\r\n Multi = 2,\r\n Any = 3\r\n}\r\n\r\nexport enum ClipperModuleGroup {\r\n Home = 0,\r\n NormativaVigente = 1,\r\n RimaniAggiornato = 2,\r\n Contributi = 3,\r\n DGInfo = 4,\r\n Calendario = 11,\r\n Archivio = 12,\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 Ricerca = 99\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 RimaniAggiornato = 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: \"Normativa vigente\", value: ClipperModuleGroup.NormativaVigente },\r\n { name: \"Rimani aggiornato\", value: ClipperModuleGroup.RimaniAggiornato },\r\n { name: \"Contributi\", value: ClipperModuleGroup.Contributi },\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: \"OP\" }\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 shortName?: string | null;\r\n group?: string | null;\r\n channels?: string | null;\r\n sectorId?: string | null;\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: 'Giuris. 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: 'Giurisprudenza',\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: null,\r\n value: '4RAB',\r\n name: 'Abruzzo',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: null,\r\n value: '4RBA',\r\n name: 'Basilicata',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: null,\r\n value: '4RCAL',\r\n name: 'Calabria',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: null,\r\n value: '4RCAM',\r\n name: 'Campania',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: null,\r\n value: '4REM',\r\n name: 'Emilia Romagna',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: null,\r\n value: '4RFVG',\r\n name: 'Friuli Venezia Giulia',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: null,\r\n value: '4RLA',\r\n name: 'Lazio',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: null,\r\n value: '4RLI',\r\n name: 'Liguria',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: null,\r\n value: '4RLO',\r\n name: 'Lombardia',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: null,\r\n value: '4RMA',\r\n name: 'Marche',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: null,\r\n value: '4RMO',\r\n name: 'Molise',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: null,\r\n value: '4RPI',\r\n name: 'Piemonte',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: null,\r\n value: '4RPU',\r\n name: 'Puglia',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: null,\r\n value: '4RSA',\r\n name: 'Sardegna',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: null,\r\n value: '4RSI',\r\n name: 'Sicilia',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: null,\r\n value: '4RTO',\r\n name: 'Toscana',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: null,\r\n value: '4RTAA',\r\n name: 'Trentino Trentino Alto Adige',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: null,\r\n value: '4RUM',\r\n name: 'Umbria',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: null,\r\n value: '4RVA',\r\n name: \"Valle D'Aosta\",\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: null,\r\n value: '4RVE',\r\n name: 'Veneto',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: null,\r\n value: '4PAB',\r\n name: 'Prov. Autonoma di Bolzano',\r\n },\r\n {\r\n sectorId: 'LR',\r\n channels: null,\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: null,\r\n value: '5CC',\r\n name: 'Corte Costituzionale',\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: null,\r\n value: '5CCC',\r\n name: 'Corte di Cassazione Civile',\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: null,\r\n value: '5CCP',\r\n name: 'Corte di Cassazione Penale',\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: null,\r\n value: '5CASA',\r\n name: \"Corte d'Assise d'Appello\",\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: null,\r\n value: '5CAS',\r\n name: \"Corte d'Assise\",\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: null,\r\n value: '5CA',\r\n name: \"Corte d'Appello\",\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: null,\r\n value: '5PCA',\r\n name: \"Procura Generale Corte d'Appello\",\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: null,\r\n value: '5GDP',\r\n name: 'Giudice di Pace',\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: null,\r\n value: '5PR',\r\n name: 'Procura della Repubblica',\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: null,\r\n value: '5T',\r\n name: 'Tribunale',\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: null,\r\n value: '5P',\r\n name: 'Pretura',\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: null,\r\n value: '5CDS',\r\n name: 'Consiglio di Stato',\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: null,\r\n value: '5TAR',\r\n name: 'Tribunale Amministrativo Regionale',\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: null,\r\n value: '5TSA',\r\n name: 'Tribunale Superiore delle Acque',\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: null,\r\n value: '5TGA',\r\n name: 'Tribunale Regionale acque',\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: null,\r\n value: '5CTP',\r\n name: 'Commissione Tributaria Provinciale',\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: null,\r\n value: '5CTR',\r\n name: 'Commissione Tributaria Regionale',\r\n },\r\n {\r\n sectorId: 'GN',\r\n channels: null,\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: null,\r\n value: '5CDC',\r\n name: 'Corte dei Conti',\r\n },\r\n {\r\n sectorId: 'GC',\r\n channels: null,\r\n value: '3CJCE',\r\n name: 'Corte di Giustizia CEE/CE',\r\n },\r\n {\r\n sectorId: 'GC',\r\n channels: null,\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: null,\r\n value: '3CWJ',\r\n name: 'Corte Internazionale di Giustizia',\r\n },\r\n {\r\n sectorId: 'GC',\r\n channels: null,\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\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 | null = false;\r\n isActive?: boolean | null = 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 | null;\r\n expiringDate: string;\r\n isTrial?: boolean | null;\r\n isDisabled: boolean;\r\n isDvd: boolean;\r\n isActive: boolean;\r\n documentsViewable?: number | null;\r\n documentsViewed?: number | null;\r\n settings?: ClipperChannelSettings | null;\r\n}\r\n\r\nexport interface ClipperUserInfo {\r\n userId: number;\r\n customerId?: number | null;\r\n companyName: string;\r\n displayName: string;\r\n firstName: string;\r\n email: string;\r\n OAUTH?: boolean | null;\r\n sessionId?: string | null;\r\n scope: number;\r\n isAuthenticated: boolean;\r\n isTemporary: boolean;\r\n hasTrial: boolean;\r\n hasTeam: boolean;\r\n channels: ClipperUserChannelInfo[];\r\n firstChannelTrial: ClipperUserChannelInfo;\r\n trialInfo?: ClipperUserTrialInfo | null;\r\n}\r\n\r\nexport interface ClipperLoginResult extends LoginResult<ClipperUserInfo> {\r\n settings?: ClipperChannelSettings[] | null;\r\n}\r\n\r\nexport interface ClipperLoginInfo {\r\n context: ClipperUserInfo;\r\n complianceContext?: any | null;\r\n userSettings?: ClipperChannelSettings[] | null;\r\n userCredentials?: string | null;\r\n OAUTH?: LoginOAuthType | null;\r\n}\r\n\r\nexport class ClipperSearchParams {\r\n version: number = 6;\r\n searchId?: number | null = null;\r\n searchName?: string | null = null;\r\n text?: string | null = null;\r\n title?: string | null = null;\r\n titleOnly?: boolean | null = false;\r\n showUnreadDocumentsOnly?: boolean | null = false;\r\n showCommentedDocumentsOnly?: boolean | null = false;\r\n number?: string | null = null;\r\n fromDate?: Date | null = null;\r\n toDate?: Date | null = null;\r\n year?: number | null = null;\r\n sourceNumber?: string | null = null;\r\n source?: string | null = null;\r\n sourceFromDate?: Date | null = null;\r\n sourceToDate?: Date | null = null;\r\n sourceYear?: number | null = null;\r\n sector?: string | null = null;\r\n sectors?: SectorInfo[] | null = null;\r\n topic?: string | null = null;\r\n topics?: NameValueItem<string>[] | null = null;\r\n taxonomy?: string | null = null;\r\n taxonomies?: NameValueItem<string>[] | null = null;\r\n taxonomyPath?: string | null = null;\r\n taxonomyNode?: string | null = null;\r\n type?: string | null = null;\r\n types?: NameValueItem<string>[] | null = null;\r\n tag?: string | null = null;\r\n tags?: NameValueItem<string>[] | null = null;\r\n author?: string | null = null;\r\n authors?: NameValueItem<string>[] | null = null;\r\n changeReason?: number | null = null;\r\n changedNumber?: string | null = null;\r\n changedYear?: number | null = null;\r\n changedTitle?: string | null = null;\r\n modifierNumber?: string | null = null;\r\n modifierYear?: number | null = null;\r\n modifierTitle?: string | null = null;\r\n model?: ClipperModel | null = null;\r\n models?: ClipperModel[] | null = null;\r\n module?: ClipperModule | null = null;\r\n modules?: NameValueItem<ClipperModule>[] | null = null;\r\n mode?: ClipperQueryReferencesMode | null = null;\r\n channels?: NameValueItem<ClipperChannel>[] | null = [...ClipperChannels];\r\n count?: number | null = 15;\r\n id?: string | null = null;\r\n anchor?: string | null = null;\r\n excludeTextReferences?: boolean | null = false;\r\n excludeNotesReferences?: boolean | null = false;\r\n useModifierInfo?: boolean | null = false;\r\n returnModifierInfo?: boolean | null = false;\r\n first?: number | null = 0;\r\n sortMode?: number | null = null;\r\n}\r\n\r\nexport interface ClipperReferencesSearchParams {\r\n documentId: string;\r\n year?: number | null;\r\n sector?: string | null;\r\n author?: string | null;\r\n anchor?: string | null;\r\n model?: string | null;\r\n mode?: ClipperQueryReferencesMode | null;\r\n excludeTextReferences?: boolean | null;\r\n excludeNotesReferences?: boolean | null;\r\n useModifierInfo?: boolean | null;\r\n returnModifierInfo?: boolean | null;\r\n count?: number | null;\r\n first?: number | null;\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 | null;\r\n description?: string | null;\r\n uri: string;\r\n ordinal?: string | null;\r\n score?: number | null;\r\n veryRelevant?: boolean | null;\r\n value?: string | null;\r\n level?: number | null;\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 | null;\r\n documentId?: string | null;\r\n model?: number;\r\n modelName?: string | null;\r\n module?: number | null;\r\n moduleName?: string | null;\r\n channelName?: string | null;\r\n group?: string | null;\r\n title2?: string | null;\r\n title1?: string | null;\r\n tags?: string | null;\r\n topics?: string | null;\r\n number?: string | null;\r\n date?: Date | null;\r\n description?: string | null;\r\n publishingDate?: Date | null;\r\n pictureId?: string | null;\r\n sourceNumber?: string | null;\r\n sourceDate?: Date | null;\r\n source?: string | null;\r\n origin?: string | null;\r\n originDescription?: string | null;\r\n author?: string | null;\r\n anchors?: ClipperDocumentAnchorInfo[] | null;\r\n taxonomy?: string | null;\r\n info?: string | null;\r\n isRead?: boolean | null;\r\n isExportable?: boolean | null;\r\n isCommented?: boolean | null;\r\n isJuris?: boolean | null;\r\n isOver?: boolean | null;\r\n isTrial?: boolean | null;\r\n isNew?: boolean | null;\r\n isExpired?: boolean | null;\r\n isExpiring?: boolean | null;\r\n isMenuOpen?: boolean | null;\r\n validityState?: number | null;\r\n validUntilDate?: Date | null;\r\n validityDescription?: string | null;\r\n validityInfo?: string | null;\r\n expiringDate?: Date | null;\r\n expiringDescription?: string | null;\r\n expiringInfo?: string | null;\r\n popularity?: number | null;\r\n part?: number | null;\r\n primaryId?: string | null;\r\n primaryDescription?: string | null;\r\n primaryModel?: number | null;\r\n hasPrimary?: boolean | null;\r\n secondaryId?: string | null;\r\n bag?: any | null;\r\n lastUpdate?: string | null;\r\n\r\n}\r\n\r\nexport class ClipperSearchResult {\r\n days?: string | null = null;\r\n interval?: string | null = null;\r\n items?: ClipperDocumentInfo[] | null = null;\r\n facets?: ClipperSearchFacetsSnapshot | null = new ClipperSearchFacetsSnapshot();\r\n tags?: NameValueItem<string>[] | null;\r\n total?: number | null = null;\r\n searchInfo?: any | null = null;\r\n searchParams?: ClipperSearchParams | null = new ClipperSearchParams();\r\n snapshotMode?: ClipperQueryReferencesMode | null = null;\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 | null;\r\n selectedValueDescription?: string | null;\r\n values: ClipperSearchFacet[];\r\n index: number;\r\n}\r\n\r\nexport interface ClipperSearchFacetsResult {\r\n interval?: string | null;\r\n facets?: ClipperSearchFacet[][] | null;\r\n total?: number | null;\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 | null = null;\r\n author?: string | null = null;\r\n anchor?: string | null = null;\r\n type?: string | null = null;\r\n reason?: string | null = null;\r\n fromDate?: Date | null = null;\r\n toDate?: Date | null = null;\r\n interval?: string | null = null;\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[] | null = null;\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 | null;\r\n canEmbed?: boolean | null;\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 | null;\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[] | null;\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[] | null;\r\n}\r\n\r\nexport interface ClipperUserSearch {\r\n id?: number | null;\r\n userId?: number | null;\r\n name?: string | null;\r\n module?: ClipperModule | null,\r\n data?: string | null;\r\n}\r\n\r\nexport interface ClipperUserWorkingDocument {\r\n userId?: number | null;\r\n documentId?: string | null;\r\n documentDescriptor?: string | null;\r\n title1?: string | null;\r\n title2?: string | null;\r\n timestamp?: string | null;\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 | null;\r\n userId: number;\r\n userName?: string | null;\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 | null;\r\n title?: string | null;\r\n pictureId?: string | null;\r\n date?: string | null;\r\n endDate?: string | null;\r\n startTime?: string | null;\r\n endTime?: string | null;\r\n hours?: number | null;\r\n days?: number | null;\r\n dateIntervalDescription?: string | null;\r\n durationDescription?: string | null;\r\n group?: string | null;\r\n address?: string | null;\r\n city?: string | null;\r\n isOver?: boolean | null;\r\n}\r\n\r\n\r\n\r\nexport interface ClipperSearchArsEventsParams {\r\n group?: string | null;\r\n group1?: string | null;\r\n collectGroups?: boolean | null;\r\n collectBundles?: boolean | null;\r\n fromDate?: string | null;\r\n untilDate?: string | null;\r\n text?: string | null;\r\n sortBy?: string | null;\r\n count: number\r\n}\r\n\r\nexport interface ClipperSearchArsEventsResult {\r\n interval?: string | null;\r\n items?: ClipperArsEventInfo[] | null;\r\n total?: number | null;\r\n}\r\n\r\nexport interface ClipperDocumentUpdateStateParams {\r\n documentIds: string[] | null;\r\n isRead: boolean | null;\r\n}\r\n\r\n\r\n\r\nexport interface ClipperDashboardItem {\r\n id?: ClipperModule | null;\r\n newItems?: number | null;\r\n unreadItems?: number | null;\r\n lastUpdated?: string | null;\r\n}\r\n\r\nexport interface ClipperDashboardResult {\r\n items?: ClipperDashboardItem[] | null;\r\n isTrial?: boolean | null;\r\n expiredDeadlines?: number | null;\r\n expiringDeadlines?: number | null;\r\n documentUpdates?: number | null;\r\n}\r\n\r\nexport class ClipperDashboard {\r\n items = signal<ClipperDashboardItem[]>([]);\r\n isTrial?: boolean | null = false;\r\n expiredDeadlines?: number | null = null;\r\n expiringDeadlines?: number | null = null;\r\n documentUpdates?: number | null = null;\r\n unreadItems: Signal<[ClipperModule, number][]> = computed(() => {\r\n const states: [ClipperModule, number][] = [];\r\n let totalUnread = 0;\r\n this.items().filter((x: ClipperDashboardItem) => x.id == ClipperModule.News\r\n || x.id === ClipperModule.Approfondimenti\r\n || x.id === ClipperModule.Giurisprudenza).forEach((x: ClipperDashboardItem) => {\r\n totalUnread += x.unreadItems ?? 0;\r\n });\r\n states.push([ClipperModule.News, totalUnread]);\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.QuesitiECasiRisolti, this.items().find((x: ClipperDashboardItem) => x.id == ClipperModule.QuesitiECasiRisolti)?.unreadItems ?? 0]);\r\n return states;\r\n });\r\n\r\n /**\r\n * Update unread items\r\n * @param module : the module\r\n * @param increment : the increment (can be negative)\r\n */\r\n updateUnreadItems(module: ClipperModule, increment: number) {\r\n let item = this.items()?.find((x: ClipperDashboardItem) => x.id == module);\r\n if (item) {\r\n item.unreadItems += increment;\r\n this.items.update((values: ClipperDashboardItem[]) => [...values]);\r\n }\r\n }\r\n\r\n /***\r\n * Get the module unread items\r\n * @param module: the module\r\n * @returns the module unread items\r\n */\r\n getUnreadItems(module: ClipperModule): number {\r\n return this.unreadItems()?.find((x: [ClipperModule, number]) => x[0] === module)?.[1];\r\n }\r\n}\r\n\r\n\r\nexport class ClipperTeamMemberInfo {\r\n id: number;\r\n teamId?: string | null = null;\r\n name?: string | null = null;\r\n email?: string | null = null;\r\n isAdmin?: boolean | null = null;\r\n isDisabled?: boolean | null = null;\r\n hasPermission55?: boolean | null = null;\r\n hasPermission56?: boolean | null = null;\r\n hasPermission57?: boolean | null = null;\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 ClipperSearchTeamMembersResult {\r\n teamId?: string | null;\r\n teamTitle?: string | null;\r\n total?: number | null;\r\n customerId?: number | null;\r\n canEdit?: boolean | null;\r\n products?: ClipperTeamProductInfo[] | null;\r\n items?: ClipperTeamMemberInfo[] | null;\r\n}\r\n\r\nexport interface ClipperSearchTeamsParams {\r\n teamId?: string | null;\r\n permissionId?: number | null;\r\n productId?: number | null;\r\n activeMembersOnly?: boolean | null;\r\n includeRSTeams?: boolean | null;\r\n}\r\n\r\nexport interface ClipperSearchTeamsResult {\r\n total: number;\r\n items: NameValueItem<string>[];\r\n}\r\n\r\nexport class ClipperTeamInfo {\r\n id?: string | null = null;\r\n customerId?: number | null = null;\r\n title?: string | null = null;\r\n isDisabled?: boolean | null = null;\r\n created?: string | null = null;\r\n lastModified?: string | null = null;\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 ClipperSearchCalendarParams {\r\n id?: string | null = null;\r\n fromDate?: Date | null = null;\r\n toDate?: Date | null = null;\r\n teamId?: string | null = null;\r\n text?: string | null = null;\r\n month?: number | null = null;\r\n year?: number | null = null;\r\n sortDescending?: boolean | null = null;\r\n state?: ClipperCalendarState | null = null;\r\n recurrentOnly?: boolean | null = null;\r\n first?: number | null = 0;\r\n count?: number | null = 15\r\n}\r\n\r\nexport interface ClipperSearchCalendarResult {\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\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 interface ClipperDeadlineInfo {\r\n id: string;\r\n companyId?: number | null;\r\n userId?: number | null;\r\n teamId?: string | null;\r\n teamName?: string | null;\r\n teams?: NameValueItem<string>[] | null;\r\n description?: string | null;\r\n documentTitle?: string | null;\r\n documentId?: string | null;\r\n documentNumber?: string | null;\r\n documentDate?: Date | null;\r\n emails?: string | null;\r\n expiringDate?: Date | null;\r\n expiredAlertSent?: boolean | null;\r\n expiringInfo?: string | null;\r\n nextExpiringDate?: Date | null;\r\n alarmDays?: number | null;\r\n alarmDate?: Date | null;\r\n alarmMemo?: string | null;\r\n alarmSent?: boolean | null;\r\n isMenuOpen?: boolean | null;\r\n isExpired?: boolean | null;\r\n isExpiring?: boolean | null;\r\n isClosed?: boolean | null;\r\n isClosable?: boolean | null;\r\n isPrivate?: boolean | null;\r\n isRecurrent?: boolean | null;\r\n recurrencePatternType?: ClipperRecurrenceType | null;\r\n recurrenceFrequency?: number | null;\r\n recurrenceEndOfMonth?: boolean | null;\r\n recurrenceNewId?: string | null;\r\n outlookAppointmentId?: string | null;\r\n created?: Date | null;\r\n lastModified?: Date | null;\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 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.NormativaVigente &&\r\n model !== ClipperModel.Scadenze &&\r\n model !== ClipperModel.Segnalazioni;\r\n }\r\n\r\n /**\r\n * Return the Clipper module from model \r\n * @param model: the model\r\n * @returns the module id\r\n */\r\n static getClipperModuleFromModel(model: ClipperModel): ClipperModule | null {\r\n switch (model) {\r\n case ClipperModel.AllerteAlimentari: return ClipperModule.AllerteAlimentari;\r\n case ClipperModel.News:\r\n case ClipperModel.Articoli:\r\n case ClipperModel.Juris: return ClipperModule.News;\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 null;\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 * 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>[] | null | undefined = undefined,\r\n params: ClipperSearchParams | null | undefined = undefined): 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?.length > 0) {\r\n if (modules.length === 1 && modules[0].value === ClipperModule.GazzetteBollettiniEFontiDiverse) {\r\n sortOptions.push(options[2]);\r\n sortOptions.push(options[3]);\r\n } else if ((modules.length <= 3 && modules.filter(x => x.value !== ClipperModule.NormativaVigente\r\n && x.value !== ClipperModule.GazzetteBollettiniEFontiDiverse\r\n && x.value !== ClipperModule.Giurisprudenza).length === 0)\r\n || (modules.length === 1 && modules[0].value === ClipperModule.NormativaVigente)\r\n || (modules.length === 1 && modules[0].value === ClipperModule.Giurisprudenza)) {\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 = null;\r\n params.sectors = null;\r\n params.author = null;\r\n params.authors = null;\r\n params.topic = null;\r\n params.topics = null;\r\n params.taxonomy = null;\r\n params.taxonomies = null;\r\n params.taxonomyPath = null;\r\n params.taxonomyNode = null;\r\n params.number = null;\r\n params.fromDate = null;\r\n params.toDate = null;\r\n params.year = null;\r\n params.sourceNumber = null;\r\n params.source = null;\r\n params.sourceFromDate = null;\r\n params.sourceToDate = null;\r\n params.sourceYear = null;\r\n params.tags = null;\r\n params.text = null;\r\n params.titleOnly = false;\r\n params.type = null;\r\n params.types = null;\r\n params.showUnreadDocumentsOnly = false;\r\n params.showCommentedDocumentsOnly = false;\r\n params.channels = [...ClipperChannels];\r\n params.changeReason = null;\r\n params.changedNumber = null;\r\n params.changedYear = null;\r\n params.changedTitle = null;\r\n params.modifierNumber = null;\r\n params.modifierYear = null;\r\n params.modifierTitle = null;\r\n params.model = null;\r\n params.models = null;\r\n params.module = null;\r\n params.modules = null;\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(modules: NameValueItem<ClipperModule>[] | null | undefined): 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 [ClipperModel.Articoli, ClipperModel.News, ClipperModel.Juris].forEach(x => models.push(x));\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.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.GiurisprudenzaRecente);\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 null\r\n */\r\n static normalizeTextQuery(text: string): string | null {\r\n if (!text || text.length === 0) return null;\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 } from '@angular/common/http';\r\nimport { Injectable, OnDestroy, Signal, computed, inject, signal } from '@angular/core';\r\nimport {\r\n ApiResult, BroadcastMessageInfo, BroadcastService,\r\n FolderTree, NameValueItem, SystemUtils\r\n} from '@arsedizioni/ars-utils/core';\r\nimport { DialogService, RecoverPasswordDialogData, RecoverPasswordDialogResult, ResetPasswordDialogResult } from '@arsedizioni/ars-utils/ui';\r\nimport { LoginOAuthType } from '@arsedizioni/ars-utils/ui.oauth';\r\nimport { Subscription, of, throwError } from 'rxjs';\r\nimport { catchError, 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, ClipperSearchTeamsParams, ClipperSearchTeamsResult, ClipperTeamInfo, ClipperSearchTeamMembersResult, ClipperSearchCalendarParams, ClipperSearchCalendarResult, ClipperSearchCalendarSnapshotResult, ClipperCalendarCopyDeadlinesParams, ClipperDeadlineInfo } from '../definitions';\r\nimport { ClipperMessages } from '../messages';\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 | null;\r\n private broadcastService = inject(BroadcastService);\r\n private dialogService = inject(DialogService);\r\n\r\n private _serviceUri: string | null = null;\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 | null = null;\r\n get loginInfo(): ClipperLoginInfo | null {\r\n if (!this._loginInfo) {\r\n const loginInfo = localStorage.getItem('clipper_login');\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>(false);\r\n public readonly loggingIn = signal<boolean>(false);\r\n public readonly snapshot = signal<ClipperSearchResult>(null);\r\n public readonly supportsRS = signal<boolean>(false);\r\n public readonly referencesSnapshot = signal<ClipperSearchResult>(null);\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: string | null = null;\r\n public currentTeamName = signal<string>(\"PERSONALE\");\r\n\r\n ngOnDestroy() {\r\n if (this.broadcastServiceSubscription) {\r\n this.broadcastServiceSubscription.unsubscribe();\r\n }\r\n }\r\n\r\n /**\r\n * Initialize service\r\n * @param serviceUri : the service uri\r\n * @param flags: the service flags. Default is none.\r\n */\r\n initialize(\r\n serviceUri: string,\r\n flags: ClipperServiceFlags = ClipperServiceFlags.None) {\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._flags = flags;\r\n\r\n // React to message broadcasting\r\n if (!this.broadcastServiceSubscription) {\r\n this.broadcastServiceSubscription = this.broadcastService.getMessage().subscribe((message: BroadcastMessageInfo) => {\r\n if (message.id === ClipperMessages.LOGIN_CHANGED) {\r\n setTimeout(() => {\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).subscribe((r: ApiResult<ClipperLoginResult>) => {\r\n if (!r.success)\r\n this.dialogService.error(r.message, null, \"Errore di Clipper\");\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 }, 500);\r\n } else if (message.id === ClipperMessages.LOGOUT) {\r\n if (this.loggedIn()) {\r\n this.logout().subscribe((r: any) => {\r\n if (!r.success) {\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>\", null, \"Errore di Clipper\");\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 // Eveluate current session storage in case of page refresh (F5)\r\n if (!this.loggedIn() && this.getToken()) {\r\n // Auto login\r\n this.loggedIn.set(true);\r\n // Notify\r\n this.broadcastService.sendMessage(ClipperMessages.LOGIN_COMPLETED);\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_jwt', value.token);\r\n sessionStorage.setItem('clipper_jwt_refresh', value.refreshToken ?? '');\r\n }\r\n\r\n /**\r\n * Return current JWT token\r\n * @param refresh: true to get the refresh token. Default is false.\r\n */\r\n getToken(refresh: boolean = false): string {\r\n let token = sessionStorage.getItem(refresh ? 'clipper_jwt_refresh' : 'clipper_jwt');\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 /**\r\n * Store login info\r\n */\r\n storeLogin() {\r\n localStorage.setItem('clipper_login', JSON.stringify(this._loginInfo));\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 onSucces: function to execute on seccess\r\n */\r\n autoLogin(\r\n email: string | null | undefined = null,\r\n password: string | null | undefined = null,\r\n remember: boolean | null | undefined = false,\r\n oauth: LoginOAuthType | null | undefined = null,\r\n oauthAccessToken: string | null | undefined = null,\r\n onSucces: Function | null | undefined = null): boolean {\r\n this.login(email, password, remember, oauth, oauthAccessToken)\r\n .subscribe((r: ApiResult<ClipperLoginResult>) => {\r\n if (!r.success) {\r\n this.dialogService.error(r.message, null, \"Errore in Clipper\");\r\n } else {\r\n this.dialogService.toast('Connesso a Clipper', 1500, 'power');\r\n if (onSucces) {\r\n onSucces();\r\n }\r\n }\r\n });\r\n return true;\r\n }\r\n\r\n /**\r\n * Perform auto logout\r\n * @param onSucces: function to execute on seccess\r\n */\r\n autoLogout(\r\n onSucces: Function | null | undefined = null) {\r\n if (!this.loggedIn()) return;\r\n this.logout().subscribe({\r\n next: (r: any) => {\r\n if (!r.success) {\r\n this.dialogService.error(r.message, null, \"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 (onSucces) {\r\n onSucces();\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 * @returns: the login result\r\n */\r\n login(email: string | null | undefined = null,\r\n password: string | null | undefined = null,\r\n remember: boolean | null | undefined = false,\r\n oauth: LoginOAuthType | null | undefined = null,\r\n oauthAccessToken: string | null | undefined = null) {\r\n this.loggingIn.set(true);\r\n return this.httpClient\r\n .post<ApiResult<ClipperLoginResult>>(\r\n this._serviceUri + '/login2',\r\n {\r\n user: oauth ? null : email,\r\n password: oauth ? null : password,\r\n clientId: localStorage.getItem(\"clipper_client_id\"),\r\n OAUTH: oauth\r\n },\r\n {\r\n headers:\r\n !oauth\r\n ? new HttpHeaders()\r\n : new HttpHeaders()\r\n .set(\"Authorization\", oauthAccessToken)\r\n })\r\n .pipe(\r\n catchError(err => {\r\n this.loggingIn.set(false);\r\n localStorage.removeItem('clipper_login');\r\n return throwError(() => err);\r\n }),\r\n map((r: ApiResult<ClipperLoginResult>) => {\r\n this.loggingIn.set(false);\r\n if (r.success) {\r\n // Store access token\r\n this.setToken(r.value);\r\n const loginInfo: ClipperLoginInfo = {\r\n context: r.value.context,\r\n userSettings: r.value.settings,\r\n OAUTH: oauth\r\n }\r\n if (!oauth) {\r\n loginInfo.userCredentials =\r\n SystemUtils.cipher(\r\n JSON.stringify({\r\n email: email,\r\n password: password,\r\n remember: remember,\r\n }), loginInfo.context.userId.toString());\r\n }\r\n // Update info \r\n this._loginInfo = loginInfo;\r\n this.storeLogin();\r\n this.loggedIn.set(true);\r\n // Notify\r\n this.broadcastService.sendMessage(ClipperMessages.LOGIN_COMPLETED);\r\n }\r\n return r;\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 map(r => {\r\n this.clear();\r\n return r\r\n }),\r\n catchError((_e) => {\r\n this.clear();\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 = null;\r\n // Logged out\r\n this.loggedIn.set(false);\r\n // Notify\r\n this.broadcastService.sendMessage(ClipperMessages.LOGOUT_COMPLETED);\r\n }\r\n\r\n /**\r\n * Clear login data\r\n */\r\n clear() {\r\n // Clear local storage\r\n sessionStorage.removeItem('clipper_jwt');\r\n sessionStorage.removeItem('clipper_jwt_refresh');\r\n sessionStorage.removeItem('clipper_oauth');\r\n localStorage.removeItem('clipper_login');\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.getToken(true)\r\n ).pipe(map((r: ApiResult<ClipperLoginResult>) => {\r\n // Update token\r\n this.setToken(r.value);\r\n }));\r\n }\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 * 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 * 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: ClipperSearchCalendarParams) {\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 | null = null) {\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 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 * Update unread items\r\n * @param module : the module\r\n * @param increment : the increment (can be negative)\r\n */\r\n updateUnreadItems(module: ClipperModule, increment: number) {\r\n console.log('module:' + module);\r\n this.dashboard.updateUnreadItems(module, increment);\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 : null;\r\n }\r\n n.documentDescriptor = null;\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 = null;\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: RecoverPasswordDialogData) {\r\n return this.httpClient.post<ApiResult<RecoverPasswordDialogResult>>(\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 );\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 updateChannelState(id: number, enabled: boolean) {\r\n return this.httpClient.post<ApiResult<ClipperDashboardResult>>(\r\n this._serviceUri + '/account/settings/channels/update',\r\n {\r\n channelId: id,\r\n isEnabled: enabled,\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 (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 = null;\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: ClipperSearchTeamsParams) {\r\n return this.httpClient.post<ApiResult<ClipperSearchTeamsResult>>(\r\n this._serviceUri + '/account/teams',\r\n params\r\n )\r\n .pipe(\r\n map((r: ApiResult<ClipperSearchTeamsResult>) => {\r\n // Store teams\r\n this._teams = r.value.items;\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: ClipperSearchTeamsParams) {\r\n return this.httpClient.post<ApiResult<ClipperSearchTeamMembersResult>>(\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: ClipperSearchCalendarParams) {\r\n return this.httpClient.post<ApiResult<ClipperSearchCalendarResult>>(\r\n this._serviceUri + '/calendar',\r\n params\r\n )\r\n .pipe(\r\n map((r: ApiResult<ClipperSearchCalendarResult>) => {\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: ClipperSearchCalendarParams) {\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: ClipperDeadlineInfo) {\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 * Accept a document changes\r\n * @param ids : deadlines to update\r\n */\r\n acceptCalendarDeadlinesChanges(ids: string[]) {\r\n return this.httpClient.post<ApiResult<number>>(\r\n this._serviceUri + '/calendar/changes/accept',\r\n { ids: ids }\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 } from '@arsedizioni/ars-utils/core';\r\nimport { DialogService } from '@arsedizioni/ars-utils/ui';\r\nimport { Observable, catchError, switchMap, throwError } from 'rxjs';\r\nimport { ClipperServiceFlags } from '../definitions';\r\nimport { ClipperMessages } from '../messages';\r\nimport { ClipperService } from '../services/clipper.service';\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 dialogService = inject(DialogService);\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 this.dialogService.clearBusy();\r\n if (\r\n error instanceof HttpErrorResponse &&\r\n !request.url.includes(\"/login\") &&\r\n error.status === 401\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 const invalidSession = errorStatus === 403;\r\n this.dialogService.error(\r\n \"<p>\" + (error.error?.message ?? error.message ?? \"Impossibile eseguire l'operazione richiesta.\").replaceAll(\"\\r\\n\", \"</p><p>\") + \"</p>\",\r\n null,\r\n \"Errore in Clipper\",\r\n undefined,\r\n undefined,\r\n invalidSession ? 5000 : 15000).afterClosed().subscribe(() => {\r\n if (invalidSession) {\r\n this.broadcastService.sendMessage(ClipperMessages.LOGOUT);\r\n }\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 | null = null\r\n ): HttpRequest<any> {\r\n if (request.url.startsWith(this.clipperService.serviceUri)) {\r\n if (!token) token = this.clipperService.getToken();\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 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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"}