@uxland/primary-shell 4.2.0 → 4.3.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 (76) hide show
  1. package/dist/index.js +19452 -19117
  2. package/dist/index.js.map +1 -1
  3. package/dist/index.umd.cjs +1681 -1549
  4. package/dist/index.umd.cjs.map +1 -1
  5. package/dist/primary/shell/src/UI/components/shell-header/shell-header.d.ts +1 -0
  6. package/dist/primary/shell/src/api/api.d.ts +2 -0
  7. package/dist/primary/shell/src/api/http-client/http-client.d.ts +3 -2
  8. package/dist/primary/shell/src/api/plugin-busy-manager/plugin-busy-list/component.d.ts +12 -0
  9. package/dist/primary/shell/src/api/plugin-busy-manager/plugin-busy-list/template.d.ts +3 -0
  10. package/dist/primary/shell/src/api/plugin-busy-manager/plugin-busy-manager.d.ts +19 -0
  11. package/dist/primary/shell/src/api/plugin-busy-manager/plugin-busy-manager.test.d.ts +1 -0
  12. package/dist/primary/shell/src/api/token-manager/token-manager.d.ts +1 -1
  13. package/dist/primary/shell/src/events.d.ts +1 -0
  14. package/dist/primary/shell/src/features/exit/bootstrapper.d.ts +2 -0
  15. package/dist/primary/shell/src/features/exit/handler.d.ts +10 -0
  16. package/dist/primary/shell/src/features/exit/request.d.ts +4 -0
  17. package/dist/primary/shell/src/handle-plugins.d.ts +2 -2
  18. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/add/add-async-history-items/validate-add-async-items-command.d.ts +4 -0
  19. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/add/add-history-items/reducer.d.ts +1 -1
  20. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/domain/model.d.ts +3 -0
  21. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/filter/UI/active-filters-badges/active-filters-badges.d.ts +4 -1
  22. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/filter/UI/active-filters-header/active-filters-header.d.ts +1 -2
  23. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/filter/common-filters/selectors.d.ts +152 -0
  24. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/filter/utils.d.ts +2 -0
  25. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/list/UI/timeline/activity-history-timeline.d.ts +2 -0
  26. package/dist/primary/shell/src/internal-plugins/activity-history/handle-views.d.ts +4 -0
  27. package/dist/primary/shell/src/internal-plugins/activity-history/infrastructure/ioc/container.d.ts +1 -0
  28. package/dist/primary/shell/src/internal-plugins/activity-history/infrastructure/ioc/types.d.ts +0 -1
  29. package/dist/primary/shell/src/internal-plugins/activity-history/localization.d.ts +1 -0
  30. package/dist/primary/shell/src/internal-plugins/activity-history/main.d.ts +0 -1
  31. package/dist/primary/shell/src/locales.d.ts +4 -0
  32. package/dist/style.css +1 -1
  33. package/package.json +2 -2
  34. package/src/UI/components/index.ts +3 -2
  35. package/src/UI/components/shell-header/shell-header.ts +5 -0
  36. package/src/UI/components/shell-header/template.ts +2 -2
  37. package/src/api/api.ts +10 -3
  38. package/src/api/broker/factory.ts +1 -1
  39. package/src/api/http-client/http-client.test.ts +60 -6
  40. package/src/api/http-client/http-client.ts +17 -10
  41. package/src/api/plugin-busy-manager/plugin-busy-list/component.ts +19 -0
  42. package/src/api/plugin-busy-manager/plugin-busy-list/styles.css +20 -0
  43. package/src/api/plugin-busy-manager/plugin-busy-list/template.ts +13 -0
  44. package/src/api/plugin-busy-manager/plugin-busy-manager.test.ts +49 -0
  45. package/src/api/plugin-busy-manager/plugin-busy-manager.ts +38 -0
  46. package/src/api/token-manager/token-manager.test.ts +0 -12
  47. package/src/api/token-manager/token-manager.ts +12 -7
  48. package/src/disposer.ts +0 -1
  49. package/src/events.ts +1 -0
  50. package/src/features/bootstrapper.ts +3 -0
  51. package/src/features/exit/bootstrapper.ts +17 -0
  52. package/src/features/exit/handler.ts +51 -0
  53. package/src/features/exit/request.ts +3 -0
  54. package/src/handle-plugins.ts +7 -6
  55. package/src/handle-views.ts +4 -1
  56. package/src/internal-plugins/activity-history/activity-history-item/add/add-async-history-items/handler.ts +2 -0
  57. package/src/internal-plugins/activity-history/activity-history-item/add/add-async-history-items/validate-add-async-items-command.ts +15 -0
  58. package/src/internal-plugins/activity-history/activity-history-item/add/add-history-items/reducer.ts +10 -7
  59. package/src/internal-plugins/activity-history/activity-history-item/domain/model.ts +4 -0
  60. package/src/internal-plugins/activity-history/activity-history-item/filter/UI/active-filters-badges/active-filters-badges.ts +13 -5
  61. package/src/internal-plugins/activity-history/activity-history-item/filter/UI/active-filters-badges/template.ts +26 -2
  62. package/src/internal-plugins/activity-history/activity-history-item/filter/UI/active-filters-header/active-filters-header.ts +5 -8
  63. package/src/internal-plugins/activity-history/activity-history-item/filter/UI/active-filters-header/template.ts +6 -1
  64. package/src/internal-plugins/activity-history/activity-history-item/filter/common-filters/selectors.ts +10 -0
  65. package/src/internal-plugins/activity-history/activity-history-item/filter/custom-filters/set-custom-filter-value/reducer.ts +7 -1
  66. package/src/internal-plugins/activity-history/activity-history-item/filter/utils.ts +9 -0
  67. package/src/internal-plugins/activity-history/activity-history-item/list/UI/timeline/activity-history-timeline.ts +30 -0
  68. package/src/internal-plugins/activity-history/activity-history-item/list/UI/timeline/template.ts +7 -4
  69. package/src/internal-plugins/activity-history/handle-views.ts +17 -0
  70. package/src/internal-plugins/activity-history/infrastructure/ioc/container.ts +5 -0
  71. package/src/internal-plugins/activity-history/infrastructure/ioc/types.ts +0 -1
  72. package/src/internal-plugins/activity-history/localization.ts +7 -8
  73. package/src/internal-plugins/activity-history/main.ts +4 -10
  74. package/src/locales.ts +8 -4
  75. package/dist/primary/shell/src/internal-plugins/activity-history/utils/get-locale-manager-dependency.d.ts +0 -1
  76. package/src/internal-plugins/activity-history/utils/get-locale-manager-dependency.ts +0 -7
@@ -2,6 +2,7 @@ import { shellApi } from "./api/api";
2
2
  import { shellRegions } from "./api/region-manager/regions";
3
3
  import { clinicalMonitoringId, pocTestEventsId } from "./constants";
4
4
  import { shellEvents } from "./events";
5
+ import { ExitShell } from "./features/exit/request";
5
6
  import { ClinicalMonitoring } from "./UI/components/clinical-monitoring/clinical-monitoring";
6
7
  import { PocEventsEcap } from "./UI/components/poc-events-ecap/poc-events-ecap";
7
8
  import { PrimariaNavItem } from "./UI/shared-components/primaria-nav-item/primaria-nav-item";
@@ -257,7 +258,9 @@ const registerUpperNavMenuViews = () => {
257
258
  const menuItem = new PrimariaNavItem({
258
259
  icon: "add_box",
259
260
  label: "Pàgina inici",
260
- callbackFn: () => {},
261
+ callbackFn: () => {
262
+ shellApi.broker.send(new ExitShell());
263
+ },
261
264
  });
262
265
  return Promise.resolve(menuItem);
263
266
  },
@@ -4,12 +4,14 @@ import { addBusyHistoryItem, removeBusyHistoryItem } from "../../list/handle-bus
4
4
  import { addErrorHistoryItem } from "../../list/handle-error/actions";
5
5
  import { addHistoryItemsCommand } from "../add-history-items/request";
6
6
  import { InjectAsyncHistoryItemsPayload } from "./request";
7
+ import { validateAddAsyncCommand } from "./validate-add-async-items-command";
7
8
 
8
9
  export class InjectAsyncHistoryItemsHandler extends BaseHandler {
9
10
  async handle(payload: InjectAsyncHistoryItemsPayload) {
10
11
  this.store.dispatch(addBusyHistoryItem(payload.entityId));
11
12
  try {
12
13
  const items = await payload.asyncDataProvider();
14
+ validateAddAsyncCommand(payload, items);
13
15
  this.api.broker.send(addHistoryItemsCommand, {
14
16
  entityId: payload.entityId,
15
17
  items,
@@ -0,0 +1,15 @@
1
+ import { IActivityHistoryItem } from "../../domain/model";
2
+ import { InjectAsyncHistoryItemsPayload } from "./request";
3
+
4
+ export const validateAddAsyncCommand = (payload: InjectAsyncHistoryItemsPayload, items: IActivityHistoryItem[]) => {
5
+ if(payload.entityId !== payload.filters.id)
6
+ throw new Error("entityId and filters.id must be the same");
7
+ if(!payload.filters.title)
8
+ throw new Error("filters.title is required");
9
+ if(!payload.asyncDataProvider)
10
+ throw new Error("asyncDataProvider is required");
11
+ if(!payload.componentFactory)
12
+ throw new Error("componentFactory is required");
13
+ if(!payload.errorMessage)
14
+ throw new Error("errorMessage is required for failure asyncDataProviders");
15
+ };
@@ -12,11 +12,14 @@ export function addActivityHistoryItemsReducer(
12
12
  }>,
13
13
  ) {
14
14
  const { id, items, componentFactory, searchPredicate } = action.payload;
15
- state.collections = addItemsToCollection(
16
- state.collections,
17
- id,
18
- items,
19
- componentFactory,
20
- searchPredicate,
21
- );
15
+ return {
16
+ ...state,
17
+ collections: addItemsToCollection(
18
+ state.collections,
19
+ id,
20
+ items,
21
+ componentFactory,
22
+ searchPredicate,
23
+ ),
24
+ };
22
25
  }
@@ -29,6 +29,10 @@ export interface IActivityHistoryItem {
29
29
  type?: string;
30
30
  }
31
31
 
32
+ export interface IActivityHistoryItemWithComponent extends IActivityHistoryItem {
33
+ component: HTMLElement;
34
+ }
35
+
32
36
  export interface IActivityHistoryItemCollection {
33
37
  id: string;
34
38
  items: IActivityHistoryItem[];
@@ -6,12 +6,11 @@ import { PrimariaApi } from "../../../../../../api/api";
6
6
  import { TYPES } from "../../../../infrastructure/ioc/types";
7
7
  import { template } from "./template";
8
8
  import styles from "./styles.css?inline";
9
- import {
10
- activeGroupsWithEnabledFilters,
11
- activityHistoryCustomFilterGroupsSelector,
12
- } from "../../custom-filters/selectors";
9
+ import { activeGroupsWithEnabledFilters } from "../../custom-filters/selectors";
13
10
  import { SetCustomFilterValue } from "../../custom-filters/set-custom-filter-value/request";
14
- import { IActivityHistoryCustomFilterGroup } from "../../model";
11
+ import { IActivityHistoryCustomFilterGroup, IActivityHistoryFilterGroup } from "../../model";
12
+ import { activityHistoryEnabledCommonFiltersSelector } from "../../common-filters/selectors";
13
+ import { SetCommonFilter } from "../../common-filters/set-common-filter/request";
15
14
 
16
15
  //@ts-ignore
17
16
  @customElement("active-filters-badges")
@@ -27,6 +26,11 @@ export class ActiveFiltersBadges extends LitElement {
27
26
  @lazyInject(TYPES.primaryApi)
28
27
  api: PrimariaApi;
29
28
 
29
+ activityHistoryCommonFiltersSelector;
30
+
31
+ @connectedProperty(activityHistoryEnabledCommonFiltersSelector)
32
+ enabledCommonFilters: IActivityHistoryFilterGroup[];
33
+
30
34
  @connectedProperty(activeGroupsWithEnabledFilters)
31
35
  enabledFilters: IActivityHistoryCustomFilterGroup[];
32
36
 
@@ -40,4 +44,8 @@ export class ActiveFiltersBadges extends LitElement {
40
44
  }),
41
45
  );
42
46
  }
47
+
48
+ _onDeleteCommonFilterValue(filterId: string) {
49
+ this.api.broker.send(new SetCommonFilter({ id: filterId, enabled: false }));
50
+ }
43
51
  }
@@ -1,6 +1,7 @@
1
1
  import { html, nothing } from "lit";
2
2
  import { ActiveFiltersBadges } from "./active-filters-badges";
3
3
  import { translate } from "../../../../localization";
4
+ import { formatShowFilterTitle, normalizeDeletedFilterBooleanValue } from "../../utils";
4
5
 
5
6
  const MAX_VISIBLE_CHIPS = 5;
6
7
 
@@ -15,23 +16,46 @@ const renderChip = (id, filter, value, props) => html`
15
16
  ></dss-chip>
16
17
  `;
17
18
 
19
+ const renderCommonChip = (filter, props) => html`
20
+ <dss-chip
21
+ label=${formatShowFilterTitle(filter.title)}
22
+ size="sm"
23
+ hasdelete
24
+ selected
25
+ @click=${() => props._onDeleteCommonFilterValue(filter.id)}
26
+ @onDelete=${() => props._onDeleteCommonFilterValue(filter.id)}
27
+ ></dss-chip>
28
+ `;
29
+
18
30
  const renderFilterTitle = (title) => html`<div class="filter-title">${`${title}:`}</div>`;
19
31
 
20
32
  export const template = (props: ActiveFiltersBadges) => {
21
- if (props.enabledFilters.length === 0) return nothing;
33
+ if (props.enabledFilters.length === 0 && props.enabledCommonFilters.length === 0) return nothing;
22
34
 
23
35
  let visibleCount = 0;
24
36
  const visibleChips: any[] = [];
25
37
  const hiddenElements: any[] = [];
26
38
  const hiddenChips: any[] = [];
27
39
 
40
+ for (const filter of props.enabledCommonFilters) {
41
+ const chip = renderCommonChip(filter, props);
42
+
43
+ if (visibleCount < MAX_VISIBLE_CHIPS) {
44
+ visibleChips.push(chip);
45
+ visibleCount++;
46
+ } else {
47
+ hiddenElements.push(chip);
48
+ hiddenChips.push(chip);
49
+ }
50
+ }
51
+
28
52
  for (const { title, id, filters } of props.enabledFilters) {
29
53
  let titleAddedToVisible = false;
30
54
  let titleAddedToHidden = false;
31
55
 
32
56
  for (const filter of filters) {
33
57
  for (const value of [...new Set(filter.enabledValues)]) {
34
- const chip = renderChip(id, filter, value, props);
58
+ const chip = renderChip(id, filter, normalizeDeletedFilterBooleanValue(value), props);
35
59
 
36
60
  if (visibleCount < MAX_VISIBLE_CHIPS) {
37
61
  if (!titleAddedToVisible) {
@@ -4,11 +4,8 @@ import styles from "./styles.css?inline";
4
4
  import { customElement } from "lit/decorators.js";
5
5
  import { connectedProperty } from "../../../../infrastructure/state/connected-property";
6
6
  import { activityHistorySearchStringSelector } from "../../../search/selectors";
7
- import {
8
- activityHistoryCustomFilterGroupsSelector,
9
- areCustomFiltersActive,
10
- } from "../../custom-filters/selectors";
11
- import { IActivityHistoryCustomFilterGroup } from "../../model";
7
+ import { areCustomFiltersActive } from "../../custom-filters/selectors";
8
+ import { areCommonFiltersActive } from "../../common-filters/selectors";
12
9
 
13
10
  //@ts-ignore
14
11
  @customElement("active-filters-header")
@@ -24,9 +21,9 @@ export class ActiveFiltersHeader extends LitElement {
24
21
  @connectedProperty(activityHistorySearchStringSelector)
25
22
  searchString: string;
26
23
 
27
- @connectedProperty(activityHistoryCustomFilterGroupsSelector)
28
- filters: IActivityHistoryCustomFilterGroup[];
29
-
30
24
  @connectedProperty(areCustomFiltersActive)
31
25
  areCustomFiltersActive: boolean;
26
+
27
+ @connectedProperty(areCommonFiltersActive)
28
+ areCommonFiltersActive: boolean;
32
29
  }
@@ -3,7 +3,12 @@ import { ActiveFiltersHeader } from "./active-filters-header";
3
3
  import { when } from "lit/directives/when.js";
4
4
 
5
5
  export const template = (props: ActiveFiltersHeader) => {
6
- if (!props.areCustomFiltersActive && props.searchString.length < 1) return nothing;
6
+ if (
7
+ !props.areCustomFiltersActive &&
8
+ !props.areCommonFiltersActive &&
9
+ props.searchString.length < 1
10
+ )
11
+ return nothing;
7
12
 
8
13
  return html`
9
14
  <div class="active-filters-header">
@@ -12,3 +12,13 @@ export const isEnabledCommonFilterSelector = (filterId: string) =>
12
12
  activityHistoryCommonFiltersSelector,
13
13
  (filterSpecs) => filterSpecs?.find((s) => s.id === filterId)?.enabled,
14
14
  );
15
+
16
+ export const activityHistoryEnabledCommonFiltersSelector = createSelector(
17
+ activityHistoryCommonFiltersSelector,
18
+ (filters) => filters.filter((f) => f.enabled),
19
+ );
20
+
21
+ export const areCommonFiltersActive = createSelector(
22
+ activityHistoryEnabledCommonFiltersSelector,
23
+ (filters) => !!filters.length,
24
+ );
@@ -1,5 +1,6 @@
1
1
  import { PayloadAction } from "@reduxjs/toolkit";
2
2
  import { SetCustomFilterValuePayload } from "./request";
3
+ import { IActivityHistoryCustomFilter, IActivityHistoryCustomFilterGroup } from "../../model";
3
4
 
4
5
  export function setCustomFilterValueReducer(
5
6
  state,
@@ -22,8 +23,13 @@ export function setCustomFilterValueReducer(
22
23
  });
23
24
  }
24
25
 
25
- const setMultipleOptionsFilterValue = (filter, payload: SetCustomFilterValuePayload) => {
26
+ const setMultipleOptionsFilterValue = (
27
+ filter: IActivityHistoryCustomFilter,
28
+ payload: SetCustomFilterValuePayload,
29
+ ) => {
26
30
  const { optionId, enabled } = payload;
31
+ //Si el option ya estaba habilitado, no cambiamos nada
32
+ if (filter.enabledValues?.some((id) => id === optionId) && enabled) return filter;
27
33
  return {
28
34
  ...filter,
29
35
  enabledValues: enabled
@@ -0,0 +1,9 @@
1
+ import { translate } from "../../localization";
2
+
3
+ export const formatShowFilterTitle = (title: string) => {
4
+ const filterTitle = title.replace(/veure/gi, "").trim();
5
+ return filterTitle.charAt(0).toUpperCase() + filterTitle.slice(1);
6
+ };
7
+
8
+ export const normalizeDeletedFilterBooleanValue = (value) =>
9
+ value === true ? translate("filters.deleted") : value;
@@ -40,6 +40,36 @@ export class ActivityHistoryTimeline extends LitElement {
40
40
  this._hasUpdatedOnce = true;
41
41
  }
42
42
 
43
+ async updated(changedProperties) {
44
+ if (changedProperties.has("historyGroups") && this.historyGroups?.length) {
45
+ // Resolver los elementos antes de actualizar el template
46
+ await this.prepareComponents(this.historyGroups);
47
+ }
48
+ }
49
+
50
+ async prepareComponents(historyGroups) {
51
+ for (const group of historyGroups) {
52
+ // Resolver items del grupo principal
53
+ group.items = await Promise.all(
54
+ group.items.map(async (item) => ({
55
+ ...item,
56
+ component: await item.componentFactory({ item }),
57
+ })),
58
+ );
59
+
60
+ // Resolver subgrupos
61
+ for (const subGroup of group.subGroups) {
62
+ subGroup.items = await Promise.all(
63
+ subGroup.items.map(async (item) => ({
64
+ ...item,
65
+ component: await item.componentFactory({ item }),
66
+ })),
67
+ );
68
+ }
69
+ }
70
+ this.requestUpdate(); // 🔥 Forzar actualización del template
71
+ }
72
+
43
73
  highlightMatch(text: string, searchString: string): string {
44
74
  if (!this.searchString || this.searchString.length < 2) return text;
45
75
  const regex = new RegExp(`(${searchString})`, "gi");
@@ -9,6 +9,7 @@ import { ifDefined } from "lit/directives/if-defined.js";
9
9
  import {
10
10
  IActivityHistoryGroup,
11
11
  IActivityHistoryItem,
12
+ IActivityHistoryItemWithComponent,
12
13
  IActivityHistorySubGroup,
13
14
  } from "../../../domain/model";
14
15
  import { translate } from "../../../../localization";
@@ -27,8 +28,9 @@ export const template = (props: ActivityHistoryTimeline) => {
27
28
  <div class="visit__items">
28
29
  ${repeat(
29
30
  itemGroup.items,
30
- (item: IActivityHistoryItem) =>
31
- html`<div class="item">${item?.componentFactory(item)}</div> `,
31
+ (item) => item.id,
32
+ (item: IActivityHistoryItemWithComponent) =>
33
+ html`<div class="item">${item.component}</div> `,
32
34
  )}
33
35
  ${repeat(
34
36
  itemGroup.subGroups,
@@ -38,8 +40,9 @@ export const template = (props: ActivityHistoryTimeline) => {
38
40
  ${diagnosticHeaderTemplate(subGroup.items[0])}
39
41
  <div class="diagnostics__items">${repeat(
40
42
  subGroup.items,
41
- (item: IActivityHistoryItem) =>
42
- html`<div class="item">${item?.componentFactory(item)}</div> `,
43
+ (item) => item.id,
44
+ (item: IActivityHistoryItemWithComponent) =>
45
+ html`<div class="item">${item?.component}</div> `,
43
46
  )}</div>
44
47
  </div>
45
48
  `,
@@ -0,0 +1,17 @@
1
+ import { PrimariaApi } from "../../api/api";
2
+ import { clinicalMonitoringRegions } from "../../api/region-manager/regions";
3
+ import { ActivityHistoryMain } from "./activity-history-item/list/UI/main-view/activity-history-main";
4
+ import { container } from "./infrastructure/ioc/container";
5
+ import { TYPES } from "./infrastructure/ioc/types";
6
+
7
+ export const registerViews = (api: PrimariaApi) => {
8
+ api.regionManager.registerView(clinicalMonitoringRegions.content, {
9
+ id: api.pluginInfo.pluginId,
10
+ factory: () => Promise.resolve(new ActivityHistoryMain()),
11
+ });
12
+ };
13
+
14
+ export const unregisterViews = () => {
15
+ const api = container.get(TYPES.primaryApi) as PrimariaApi;
16
+ api.regionManager.removeView(clinicalMonitoringRegions.content, api.pluginInfo.pluginId);
17
+ };
@@ -12,3 +12,8 @@ export const bindDeps = (api: PrimariaApi) => {
12
12
  container.bind(TYPES.primaryApi).toConstantValue(api);
13
13
  container.bind(TYPES.store).toConstantValue(store);
14
14
  };
15
+
16
+ export const unbindDeps = () => {
17
+ container.unbind(TYPES.primaryApi);
18
+ container.unbind(TYPES.store);
19
+ };
@@ -1,5 +1,4 @@
1
1
  export const TYPES = {
2
2
  primaryApi: Symbol.for("primaryApi"),
3
3
  store: Symbol.for("store"),
4
- localeManager: Symbol.for("localeManager"),
5
4
  };
@@ -1,7 +1,4 @@
1
1
  import { PrimariaApi } from "../../api/api";
2
- import { container } from "./infrastructure/ioc/container";
3
- import { TYPES } from "./infrastructure/ioc/types";
4
- import { getLocaleManagerDependency } from "./utils/get-locale-manager-dependency";
5
2
 
6
3
  type LocaleKeys<T> = T extends object
7
4
  ? {
@@ -17,15 +14,15 @@ export type ActivityHistoryLocales = LocaleKeys<
17
14
 
18
15
  const defaultLang = "ca";
19
16
 
17
+ let pluginLocaleManager;
18
+
20
19
  export const initializeLocalization = async (api: PrimariaApi) => {
21
- const pluginLocaleManager = await api.createLocaleManager(locales);
22
- container.bind(TYPES.localeManager).toConstantValue(pluginLocaleManager);
20
+ pluginLocaleManager = await api.createLocaleManager(locales);
23
21
  };
24
22
 
25
23
  export const translate = (path: ActivityHistoryLocales) => {
26
- const localeManager = getLocaleManagerDependency();
27
- if (localeManager) return (localeManager as any).translate(path);
28
- else return path;
24
+ if (pluginLocaleManager) return (pluginLocaleManager as any).translate(path);
25
+ return path;
29
26
  };
30
27
 
31
28
  export const locales = {
@@ -74,6 +71,8 @@ export const locales = {
74
71
 
75
72
  selected: "seleccionats",
76
73
  applyFilters: "Aplicar filtres",
74
+
75
+ deleted: "Eliminats",
77
76
  },
78
77
  tooltips: {
79
78
  subjective: "Subjectiu",
@@ -1,11 +1,10 @@
1
1
  import { PrimariaApi } from "../../api/api";
2
- import { clinicalMonitoringRegions } from "../../api/region-manager/regions";
3
2
  import {
4
3
  bootstrapActivityHistoryItem,
5
4
  teardownActivityHistoryItem,
6
5
  } from "./activity-history-item/bootstrapper";
7
- import { ActivityHistoryMain } from "./activity-history-item/list/UI/main-view/activity-history-main";
8
- import { bindDeps } from "./infrastructure/ioc/container";
6
+ import { registerViews, unregisterViews } from "./handle-views";
7
+ import { bindDeps, unbindDeps } from "./infrastructure/ioc/container";
9
8
  import { initializeLocalization } from "./localization";
10
9
 
11
10
  const bootstrapFeatures = (api: PrimariaApi) => {
@@ -26,12 +25,7 @@ export const initialize = async (api: PrimariaApi) => {
26
25
 
27
26
  export const dispose = () => {
28
27
  teardownFeatures();
28
+ unregisterViews();
29
+ unbindDeps();
29
30
  return Promise.resolve();
30
31
  };
31
-
32
- export const registerViews = (api: PrimariaApi) => {
33
- api.regionManager.registerView(clinicalMonitoringRegions.content, {
34
- id: api.pluginInfo.pluginId,
35
- factory: () => Promise.resolve(new ActivityHistoryMain()),
36
- });
37
- };
package/src/locales.ts CHANGED
@@ -31,19 +31,23 @@ export const locales = {
31
31
  ca: {
32
32
  [primariaShellId]: {
33
33
  title: "Estació de Treball Clínica",
34
- actions:{
34
+ actions: {
35
35
  create: "Crear",
36
36
  toggleMenuClose: "Tancar menú",
37
37
  toggleMenuOpen: "Expandir menú",
38
+ askExit: "Atenció, vols sortir igualment?",
38
39
  },
39
- clinicalMonitoring:{
40
+ clinicalMonitoring: {
40
41
  title: "Seguiment clínic",
41
42
  },
42
43
  header: {
43
44
  workCenter: "Centre treball",
44
45
  role: "Rol",
45
46
  speciality: "Àmbit treball",
46
- }
47
- }
47
+ },
48
+ busyManager: {
49
+ title: "Tasques pendents a desar:",
50
+ },
51
+ },
48
52
  },
49
53
  };
@@ -1 +0,0 @@
1
- export declare const getLocaleManagerDependency: () => unknown;
@@ -1,7 +0,0 @@
1
- import { container } from "../infrastructure/ioc/container";
2
- import { TYPES } from "../infrastructure/ioc/types";
3
-
4
- export const getLocaleManagerDependency = () => {
5
- const localeManager = container.get(TYPES.localeManager);
6
- return localeManager;
7
- };