@uxland/primary-shell 7.26.4 → 7.28.0

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 (38) hide show
  1. package/dist/{component-OjDyol8O.js → component-Dk1hmoTY.js} +2 -2
  2. package/dist/{component-OjDyol8O.js.map → component-Dk1hmoTY.js.map} +1 -1
  3. package/dist/{index-uA2lHdFS.js → index-DSoZpzbx.js} +1291 -1084
  4. package/dist/index-DSoZpzbx.js.map +1 -0
  5. package/dist/index.js +1 -1
  6. package/dist/index.umd.cjs +70 -54
  7. package/dist/index.umd.cjs.map +1 -1
  8. package/dist/primary/shell/src/UI/components/navigation-tooltip/index.d.ts +2 -0
  9. package/dist/primary/shell/src/UI/components/navigation-tooltip/navigation-tooltip.d.ts +8 -0
  10. package/dist/primary/shell/src/UI/components/navigation-tooltip/tooltip-manager.d.ts +1 -0
  11. package/dist/primary/shell/src/UI/components/primaria-shell/primaria-shell.d.ts +1 -0
  12. package/dist/primary/shell/src/UI/internal-views/common-nav-menu.d.ts +7 -1
  13. package/dist/primary/shell/src/UI/shared-components/typings.d.ts +3 -1
  14. package/dist/primary/shell/src/events.d.ts +2 -0
  15. package/dist/primary/shell/src/features/navigate-to-ecap/navigate-to-ecap.d.ts +1 -0
  16. package/dist/primary/shell/src/locales.d.ts +1 -0
  17. package/dist/styles.css +1 -1
  18. package/package.json +1 -1
  19. package/src/UI/components/navigation-tooltip/index.ts +2 -0
  20. package/src/UI/components/navigation-tooltip/navigation-tooltip.tsx +64 -0
  21. package/src/UI/components/navigation-tooltip/styles.css +63 -0
  22. package/src/UI/components/navigation-tooltip/tooltip-manager.ts +31 -0
  23. package/src/UI/components/primaria-shell/primaria-shell.ts +90 -0
  24. package/src/UI/internal-views/administrative-nav-menu.ts +157 -65
  25. package/src/UI/internal-views/common-nav-menu.ts +7 -1
  26. package/src/UI/internal-views/doctor-nav-menu.ts +26 -30
  27. package/src/UI/internal-views/doctor-quick-action-menu.ts +2 -2
  28. package/src/UI/shared-components/primaria-nav-tree-menu/template.ts +27 -7
  29. package/src/UI/shared-components/typings.ts +3 -1
  30. package/src/api/pdf-viewer-manager/handle-views.ts +8 -0
  31. package/src/api/pdf-viewer-manager/pdf-viewer-manager.test.ts +53 -0
  32. package/src/api/pdf-viewer-manager/pdf-viewer-manager.ts +11 -4
  33. package/src/events.ts +2 -0
  34. package/src/features/navigate-to-ecap/navigate-to-ecap.ts +18 -0
  35. package/src/locales.ts +5 -4
  36. package/dist/index-uA2lHdFS.js.map +0 -1
  37. package/dist/primary/shell/src/features/navigate-to-ecap/navigate-without-closing-and-with-cip.d.ts +0 -1
  38. package/src/features/navigate-to-ecap/navigate-without-closing-and-with-cip.ts +0 -7
@@ -1,14 +1,10 @@
1
1
  import { getPatientCip } from "../../features/get-patient-cip/action";
2
- import { navigateToEcapWithoutClosingWithCip } from "../../features/navigate-to-ecap/navigate-without-closing-and-with-cip";
2
+ import { navigateToEcap } from "../../features/navigate-to-ecap/navigate-to-ecap";
3
3
  import { GetVisitId } from "../../features/visit/get-visit-id/request";
4
4
  import { shellApi } from "../../api/api";
5
5
  import { QuickActionItem } from "../shared-components/quick-action-item/quick-action-item";
6
6
  import { ClinicalPathwaysActionMenu } from "../components/clinical-pathways-action-menu/clinical-pathways-action-menu";
7
- import {
8
- MenuItemConfig,
9
- registerNavMenuViews,
10
- registerCommunicationNavMenu,
11
- } from "./common-nav-menu";
7
+ import { MenuItemConfig, registerNavMenuViews, registerCommunicationNavMenu } from "./common-nav-menu";
12
8
 
13
9
  const doctorNavMenuItems: MenuItemConfig[] = [
14
10
  {
@@ -17,7 +13,7 @@ const doctorNavMenuItems: MenuItemConfig[] = [
17
13
  label: "Monitoratge dinàmic",
18
14
  type: "item",
19
15
  sortHint: "0030",
20
- callbackFn: () => navigateToEcapWithoutClosingWithCip("IA_DEV"),
16
+ callbackFn: () => navigateToEcap("IA_DEV"),
21
17
  },
22
18
  {
23
19
  id: "unique-petition",
@@ -29,22 +25,22 @@ const doctorNavMenuItems: MenuItemConfig[] = [
29
25
  {
30
26
  icon: "open_in_new",
31
27
  label: "Analítiques",
32
- callbackFn: () => navigateToEcapWithoutClosingWithCip("LABORATORI"),
28
+ callbackFn: () => navigateToEcap("LABORATORI"),
33
29
  },
34
30
  {
35
31
  icon: "open_in_new",
36
32
  label: "Ordres Clíniques",
37
- callbackFn: () => navigateToEcapWithoutClosingWithCip("RESULT_OC"),
33
+ callbackFn: () => navigateToEcap("RESULT_OC"),
38
34
  },
39
35
  {
40
36
  icon: "open_in_new",
41
37
  label: "OC Exprés",
42
- callbackFn: () => navigateToEcapWithoutClosingWithCip("OC_EXPRES"),
38
+ callbackFn: () => navigateToEcap("OC_EXPRES"),
43
39
  },
44
40
  {
45
41
  icon: "open_in_new",
46
42
  label: "Sol·licitud de trasllat",
47
- callbackFn: () => navigateToEcapWithoutClosingWithCip("TRANSPORT"),
43
+ callbackFn: () => navigateToEcap("TRANSPORT"),
48
44
  },
49
45
  ],
50
46
  },
@@ -54,7 +50,7 @@ const doctorNavMenuItems: MenuItemConfig[] = [
54
50
  label: "Seguiment analític",
55
51
  type: "item",
56
52
  sortHint: "0060",
57
- callbackFn: () => navigateToEcapWithoutClosingWithCip("SEGUIMENT_ANALITIC"),
53
+ callbackFn: () => navigateToEcap("SEGUIMENT_ANALITIC"),
58
54
  },
59
55
  {
60
56
  id: "results-reports",
@@ -66,21 +62,21 @@ const doctorNavMenuItems: MenuItemConfig[] = [
66
62
  {
67
63
  icon: "open_in_new",
68
64
  label: "Resultats i informes",
69
- callbackFn: () => navigateToEcapWithoutClosingWithCip("RESULTAT_INFORMES"),
65
+ callbackFn: () => navigateToEcap("RESULTAT_INFORMES"),
70
66
  },
71
67
  {
72
68
  icon: "open_in_new",
73
69
  label: "Documents usuari",
74
70
  callbackFn: () => {
75
71
  setTimeout(() => {
76
- navigateToEcapWithoutClosingWithCip("CRIDA_DOCS_USU");
72
+ navigateToEcap("CRIDA_DOCS_USU");
77
73
  }, 0);
78
74
  },
79
75
  },
80
76
  {
81
77
  icon: "open_in_new",
82
78
  label: "Informes clínics",
83
- callbackFn: () => navigateToEcapWithoutClosingWithCip("INFORME_CLINIC_NET"),
79
+ callbackFn: () => navigateToEcap("INFORME_CLINIC_NET"),
84
80
  },
85
81
  ],
86
82
  },
@@ -90,7 +86,7 @@ const doctorNavMenuItems: MenuItemConfig[] = [
90
86
  label: "Gabinets de proves",
91
87
  type: "item",
92
88
  sortHint: "0080",
93
- callbackFn: () => navigateToEcapWithoutClosingWithCip("GABINETS_PROVES"),
89
+ callbackFn: () => navigateToEcap("GABINETS_PROVES"),
94
90
  },
95
91
  {
96
92
  id: "prescriptions",
@@ -102,22 +98,22 @@ const doctorNavMenuItems: MenuItemConfig[] = [
102
98
  {
103
99
  icon: "open_in_new",
104
100
  label: "Prescripció",
105
- callbackFn: () => navigateToEcapWithoutClosingWithCip("PRESCRIPCIO_ACTIVA"),
101
+ callbackFn: () => navigateToEcap("PRESCRIPCIO_ACTIVA"),
106
102
  },
107
103
  {
108
104
  icon: "open_in_new",
109
105
  label: "Ordres de tractament",
110
- callbackFn: () => navigateToEcapWithoutClosingWithCip("ORDRE_TRACTAMENT"),
106
+ callbackFn: () => navigateToEcap("ORDRE_TRACTAMENT"),
111
107
  },
112
108
  {
113
109
  icon: "open_in_new",
114
110
  label: "Dispensació material sanitari",
115
- callbackFn: () => navigateToEcapWithoutClosingWithCip("DISPENSACIO_MATERIAL_PACIENT"),
111
+ callbackFn: () => navigateToEcap("DISPENSACIO_MATERIAL_PACIENT"),
116
112
  },
117
113
  {
118
114
  icon: "open_in_new",
119
115
  label: "Prescripció social",
120
- callbackFn: () => navigateToEcapWithoutClosingWithCip("PRESCRIPCIO_SOCIAL"),
116
+ callbackFn: () => navigateToEcap("PRESCRIPCIO_SOCIAL"),
121
117
  },
122
118
  ],
123
119
  },
@@ -127,7 +123,7 @@ const doctorNavMenuItems: MenuItemConfig[] = [
127
123
  label: "Immunitzacions",
128
124
  type: "item",
129
125
  sortHint: "0100",
130
- callbackFn: () => navigateToEcapWithoutClosingWithCip("IMMUNITZACIONS"),
126
+ callbackFn: () => navigateToEcap("IMMUNITZACIONS"),
131
127
  },
132
128
  {
133
129
  id: "it",
@@ -135,7 +131,7 @@ const doctorNavMenuItems: MenuItemConfig[] = [
135
131
  label: "Incapacitat temporal",
136
132
  type: "item",
137
133
  sortHint: "0100",
138
- callbackFn: () => navigateToEcapWithoutClosingWithCip("REV_IT"),
134
+ callbackFn: () => navigateToEcap("REV_IT"),
139
135
  },
140
136
  {
141
137
  id: "visits",
@@ -143,7 +139,7 @@ const doctorNavMenuItems: MenuItemConfig[] = [
143
139
  label: "Visites",
144
140
  type: "item",
145
141
  sortHint: "0130",
146
- callbackFn: () => navigateToEcapWithoutClosingWithCip("CONSULTA_VISITES"),
142
+ callbackFn: () => navigateToEcap("CONSULTA_VISITES"),
147
143
  },
148
144
  ];
149
145
 
@@ -206,7 +202,7 @@ export const registerDoctorCommunicationMenuActions = () => {
206
202
  sortHint: "0030",
207
203
  icon: "open_in_new",
208
204
  label: "Veu IP",
209
- callbackFn: () => navigateToEcapWithoutClosingWithCip("VOIP"),
205
+ callbackFn: () => navigateToEcap("VOIP"),
210
206
  },
211
207
  // { id: "5", sortHint: "0040", icon: "open_in_new", label: "Videoconsulta", callbackFn: () => {} },
212
208
  ];
@@ -229,42 +225,42 @@ export const registerDoctorClinicalPathwaysMenuActions = () => {
229
225
  sortHint: "0010",
230
226
  icon: "open_in_new",
231
227
  label: "Proces d'atenció - ARES",
232
- callbackFn: () => navigateToEcapWithoutClosingWithCip("PROCES_ATENCIO"),
228
+ callbackFn: () => navigateToEcap("PROCES_ATENCIO"),
233
229
  },
234
230
  {
235
231
  id: "3",
236
232
  sortHint: "0030",
237
233
  icon: "open_in_new",
238
234
  label: "Nen sa",
239
- callbackFn: () => navigateToEcapWithoutClosingWithCip("NEN_SA"),
235
+ callbackFn: () => navigateToEcap("NEN_SA"),
240
236
  },
241
237
  {
242
238
  id: "4",
243
239
  sortHint: "0040",
244
240
  icon: "open_in_new",
245
241
  label: "ASSIR",
246
- callbackFn: () => navigateToEcapWithoutClosingWithCip("NAVEGACIO_ASSIR"),
242
+ callbackFn: () => navigateToEcap("NAVEGACIO_ASSIR"),
247
243
  },
248
244
  {
249
245
  id: "5",
250
246
  sortHint: "0050",
251
247
  icon: "open_in_new",
252
248
  label: "Odontologia",
253
- callbackFn: () => navigateToEcapWithoutClosingWithCip("ODONTOLOGO"),
249
+ callbackFn: () => navigateToEcap("ODONTOLOGO"),
254
250
  },
255
251
  {
256
252
  id: "6",
257
253
  sortHint: "0060",
258
254
  icon: "open_in_new",
259
255
  label: "Situació d'especial cura",
260
- callbackFn: () => navigateToEcapWithoutClosingWithCip("SIT_ESPEC_CURA_DEV"),
256
+ callbackFn: () => navigateToEcap("SIT_ESPEC_CURA_DEV"),
261
257
  },
262
258
  {
263
259
  id: "7",
264
260
  sortHint: "0070",
265
261
  icon: "open_in_new",
266
262
  label: "Valoració social",
267
- callbackFn: () => navigateToEcapWithoutClosingWithCip("VALORACIO_SOCIAL"),
263
+ callbackFn: () => navigateToEcap("VALORACIO_SOCIAL"),
268
264
  },
269
265
  ];
270
266
  for (const item of clinicalPathwaysItems) {
@@ -1,6 +1,6 @@
1
1
  import { shellApi } from "../../api/api";
2
2
  import { QuickActionItem } from "../shared-components/quick-action-item/quick-action-item";
3
- import { navigateToEcapWithoutClosingWithCip } from "../../features/navigate-to-ecap/navigate-without-closing-and-with-cip";
3
+ import { navigateToEcap } from "../../features/navigate-to-ecap/navigate-to-ecap";
4
4
 
5
5
  export const registerDoctorQuickActionViews = () => {
6
6
  shellApi.regionManager.registerView(shellApi.regionManager.regions.shell.quickActions, {
@@ -8,7 +8,7 @@ export const registerDoctorQuickActionViews = () => {
8
8
  sortHint: "0011",
9
9
  factory: () => {
10
10
  const quickActionItem = new QuickActionItem("", "Cita", () => {
11
- navigateToEcapWithoutClosingWithCip("CREAR_VISITA");
11
+ navigateToEcap("CREAR_VISITA");
12
12
  });
13
13
  return Promise.resolve(quickActionItem);
14
14
  },
@@ -14,13 +14,33 @@ export const template = (props: PrimariaNavTreeMenu) => html`
14
14
  ? html`
15
15
  <dss-action-menu @onCloseActionMenu=${props.handleCloseMenu}>
16
16
  ${props.config.actionMenuItems?.map(
17
- (item) => html`
18
- <dss-action-menu-item
19
- righticon=${item.icon}
20
- .label=${item.label}
21
- @click=${item.callbackFn}
22
- ></dss-action-menu-item>
23
- `,
17
+ (item) => item.hasNestedMenu
18
+ ? html`
19
+ <dss-action-menu-item
20
+ righticon=${item.icon}
21
+ .label=${item.label}
22
+ hasnestedmenu
23
+ >
24
+ <dss-action-menu>
25
+ ${item.nestedMenuItems?.map(
26
+ (nestedItem) => html`
27
+ <dss-action-menu-item
28
+ righticon=${nestedItem.icon}
29
+ .label=${nestedItem.label}
30
+ @click=${nestedItem.callbackFn}
31
+ ></dss-action-menu-item>
32
+ `,
33
+ )}
34
+ </dss-action-menu>
35
+ </dss-action-menu-item>
36
+ `
37
+ : html`
38
+ <dss-action-menu-item
39
+ righticon=${item.icon}
40
+ .label=${item.label}
41
+ @click=${item.callbackFn}
42
+ ></dss-action-menu-item>
43
+ `,
24
44
  )}
25
45
  </dss-action-menu>
26
46
  `
@@ -4,10 +4,12 @@ interface MenuItem {
4
4
  }
5
5
 
6
6
  export interface PrimariaNavItemConfig extends MenuItem {
7
- callbackFn: () => void;
7
+ callbackFn?: () => void;
8
8
  showArrow?: boolean;
9
9
  fill?: boolean;
10
10
  rotateIcon?: boolean;
11
+ hasNestedMenu?: boolean;
12
+ nestedMenuItems?: PrimariaNavItemConfig[];
11
13
  }
12
14
 
13
15
  export interface PrimariaNavTreeMenuConfig {
@@ -3,6 +3,8 @@ import { translate } from "../../locales";
3
3
  import { PrimariaNavItem } from "../../UI/shared-components/primaria-nav-item/primaria-nav-item";
4
4
  import { shellApi } from "../api";
5
5
  import { PdfVisor } from "./pdf-visor/pdf-visor";
6
+ import { showNavItemTooltip } from "../../UI/components/navigation-tooltip/tooltip-manager";
7
+ import { primariaShellId } from "../../constants";
6
8
 
7
9
  export const registerPdfViewerNavItem = () => {
8
10
  shellApi.regionManager.registerView(shellApi.regionManager.regions.shell.navigationMenu, {
@@ -18,6 +20,12 @@ export const registerPdfViewerNavItem = () => {
18
20
  return Promise.resolve(menuItem);
19
21
  },
20
22
  });
23
+
24
+ // Show tooltip when PDF viewer is registered
25
+ setTimeout(() => {
26
+ const navItemKey = `${primariaShellId}::${pdfViewerId}`;
27
+ showNavItemTooltip(navItemKey, translate("pdfManager.tooltipMessage"));
28
+ }, 100);
21
29
  };
22
30
 
23
31
  export const registerPDFVisorMainView = () => {
@@ -2,6 +2,7 @@ import { describe, it, expect, vi, beforeEach } from "vitest";
2
2
  import { createPdfViewerManager } from "./pdf-viewer-manager";
3
3
  import { pdfViwerEvents } from "./events";
4
4
  import { registerPdfViewerNavItem } from "./handle-views";
5
+ import { showNavItemTooltip } from "../../UI/components/navigation-tooltip";
5
6
 
6
7
  vi.mock("@primaria/plugins-core", () => ({
7
8
  generateId: () => "generated-id",
@@ -15,6 +16,10 @@ vi.mock("../../locales", () => ({
15
16
  translate: (key: string) => key,
16
17
  }));
17
18
 
19
+ vi.mock("../../UI/components/navigation-tooltip", () => ({
20
+ showNavItemTooltip: vi.fn(),
21
+ }));
22
+
18
23
  describe("PdfViewerManager", () => {
19
24
  let manager: ReturnType<typeof createPdfViewerManager>;
20
25
  let broker: any;
@@ -60,6 +65,22 @@ describe("PdfViewerManager", () => {
60
65
  });
61
66
  });
62
67
 
68
+ it("should show tooltip when adding a valid pdf", async () => {
69
+ vi.useFakeTimers();
70
+
71
+ manager.add("Doc1", { url: "https://test.com/doc1.pdf" });
72
+
73
+ // Fast-forward the setTimeout(100ms)
74
+ vi.advanceTimersByTime(100);
75
+
76
+ expect(showNavItemTooltip).toHaveBeenCalledWith(
77
+ "primaria-shell::pdf-viewer",
78
+ "pdfManager.tooltipMessage"
79
+ );
80
+
81
+ vi.useRealTimers();
82
+ });
83
+
63
84
  it("should warn if pdf with same name already exists", () => {
64
85
  manager.add("Doc1", { b64: "xxx" });
65
86
  manager.add("Doc1", { b64: "xxx" });
@@ -68,6 +89,38 @@ describe("PdfViewerManager", () => {
68
89
  expect(manager.getPdfs()).toHaveLength(1); // solo el primero
69
90
  });
70
91
 
92
+ it("should not show tooltip when pdf with same name already exists", () => {
93
+ vi.useFakeTimers();
94
+
95
+ // First add succeeds and shows tooltip
96
+ manager.add("Doc1", { b64: "xxx" });
97
+ vi.advanceTimersByTime(100);
98
+
99
+ // Clear mocks after first add
100
+ vi.clearAllMocks();
101
+
102
+ // Second add with same name should show warning but NOT tooltip
103
+ manager.add("Doc1", { b64: "xxx" });
104
+ vi.advanceTimersByTime(100);
105
+
106
+ expect(notificationService.warning).toHaveBeenCalledWith("pdfManager.alreadyUploaded");
107
+ expect(showNavItemTooltip).not.toHaveBeenCalled();
108
+
109
+ vi.useRealTimers();
110
+ });
111
+
112
+ it("should not show tooltip when pdf data is invalid", () => {
113
+ vi.useFakeTimers();
114
+
115
+ manager.add("Doc1", {});
116
+ vi.advanceTimersByTime(100);
117
+
118
+ expect(notificationService.error).toHaveBeenCalledWith("pdfManager.missingData");
119
+ expect(showNavItemTooltip).not.toHaveBeenCalled();
120
+
121
+ vi.useRealTimers();
122
+ });
123
+
71
124
  it("should call registerNavButton only once", () => {
72
125
  manager.add("Doc1", { url: "u" });
73
126
  manager.add("Doc2", { url: "u2" });
@@ -7,6 +7,9 @@ import { PrimariaNotificationService } from "../notification-service/notificatio
7
7
  import { pdfViwerEvents } from "./events";
8
8
  import { PdfSelector } from "./pdf-visor/pdf-selector/pdf-selector";
9
9
  import { PdfVisor } from "./pdf-visor/pdf-visor";
10
+ import { showNavItemTooltip } from "../../UI/components/navigation-tooltip";
11
+ import { pdfViewerId } from "./constants";
12
+ import { primariaShellId } from "../../constants";
10
13
 
11
14
  export interface IPdfDocument {
12
15
  pdfName: string;
@@ -59,6 +62,12 @@ export class PdfViewerManager {
59
62
  this.broker.publish(pdfViwerEvents.added, pdf);
60
63
 
61
64
  this.notificationService.success(translate("pdfManager.uploaded"));
65
+
66
+ // Show tooltip to guide user to the PDF viewer
67
+ setTimeout(() => {
68
+ const navItemKey = `${primariaShellId}::${pdfViewerId}`;
69
+ showNavItemTooltip(navItemKey, translate("pdfManager.tooltipMessage"));
70
+ }, 100);
62
71
  }
63
72
  }
64
73
 
@@ -81,7 +90,5 @@ export class PdfViewerManager {
81
90
  }
82
91
  }
83
92
 
84
- export const createPdfViewerManager = (
85
- broker: PrimariaBroker,
86
- notificationService: PrimariaNotificationService,
87
- ) => new PdfViewerManager(broker, notificationService);
93
+ export const createPdfViewerManager = (broker: PrimariaBroker, notificationService: PrimariaNotificationService) =>
94
+ new PdfViewerManager(broker, notificationService);
package/src/events.ts CHANGED
@@ -4,4 +4,6 @@ export const shellEvents = {
4
4
  refreshTokenFailed: "refreshTokenFailed",
5
5
  mpidHeaderInvalid: "mpidHeaderInvalid",
6
6
  quickActionBusyChanged: "quickActionBusyChanged",
7
+ scrollToNavItemRequested: "scrollToNavItemRequested",
8
+ scrollToNavItemCompleted: "scrollToNavItemCompleted",
7
9
  };
@@ -0,0 +1,18 @@
1
+ import { shellApi } from "../../api/api";
2
+ import { getPatientCip } from "../get-patient-cip/action";
3
+
4
+ export const navigateToEcap = async (
5
+ eventName: string,
6
+ closeAction = "NO_TANCAR",
7
+ additionalParams: Record<string, string> = {},
8
+ includeCip = true,
9
+ ) => {
10
+ const params = { ...additionalParams };
11
+
12
+ if (includeCip) {
13
+ const CIP = await getPatientCip(shellApi);
14
+ params.CIP = CIP;
15
+ }
16
+
17
+ shellApi.ecapEventManager.publish(eventName, closeAction, params);
18
+ };
package/src/locales.ts CHANGED
@@ -41,7 +41,7 @@ export const locales = {
41
41
  errors: {
42
42
  session: "Hi ha hagut un error amb la sessió. Siusplau, tanca i torna a obrir l'aplicació.",
43
43
  invalidPatient: "El pacient actual no és vàlid. Siusplau, tanca i torna a obrir l'aplicació.",
44
- exit: "Hi ha hagut un error en sortir de l'ETC"
44
+ exit: "Hi ha hagut un error en sortir de l'ETC",
45
45
  },
46
46
  header: {
47
47
  workCenter: "Centre treball",
@@ -57,17 +57,18 @@ export const locales = {
57
57
  navButtonLabel: "Visor PDF",
58
58
  missingData: "Es necesita un document o URL per enviar al visor de resultats",
59
59
  duplicatedSource: "Només pots envar un document o URL a la vegada",
60
+ tooltipMessage: "S'ha generat el PDF al visor",
60
61
  },
61
62
  pdfVisor: {
62
63
  noPdfSelected: "No hi ha cap PDF seleccionat",
63
64
  },
64
- importDataManager:{
65
+ importDataManager: {
65
66
  title: "Importar dades",
66
67
  actions: {
67
68
  cancel: "Cancel·lar",
68
69
  import: "Importar dades",
69
- }
70
- }
70
+ },
71
+ },
71
72
  },
72
73
  },
73
74
  };