@arsedizioni/ars-utils 20.4.68 → 21.0.1

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