@equinor/echo-framework 0.24.0 → 0.24.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 (49) hide show
  1. package/index.cjs.js +3 -3
  2. package/package.json +3 -2
  3. package/src/index.d.ts +4 -1
  4. package/src/lib/components/notificationListItem/NotificationListItem.d.ts +3 -0
  5. package/src/lib/components/notificationListItem/components/NotificationListItemEndDateLabel.d.ts +4 -0
  6. package/src/lib/components/notificationListItem/components/NotificationListItemFailureImpactLabel.d.ts +3 -0
  7. package/src/lib/components/notificationListItem/components/NotificationListItemIcons.d.ts +2 -0
  8. package/src/lib/components/notificationListItem/components/index.d.ts +3 -0
  9. package/src/lib/components/notificationListItem/index.d.ts +2 -0
  10. package/src/lib/components/notificationListItem/notificationListItem.type.d.ts +15 -0
  11. package/src/lib/components/notificationListItem/types/types.d.ts +11 -0
  12. package/src/lib/components/searchListItem/searchListItem.d.ts +1 -0
  13. package/src/lib/components/workOrderListItem/WorkOrderListItem.d.ts +1 -1
  14. package/src/lib/feature/globalSelection/globalSelection.api.d.ts +15 -0
  15. package/src/lib/feature/globalSelection/globalSelectionStore/actions/addMeasuringPointsToSelection.action.d.ts +6 -0
  16. package/src/lib/feature/globalSelection/globalSelectionStore/globalSelectionStore.d.ts +12 -1
  17. package/src/lib/feature/globalSelection/globalSelectionStore/globalSelectionStore.repository.d.ts +8 -0
  18. package/src/lib/feature/globalSelection/globalSelectionStore/globalSelectionStore.types.d.ts +20 -8
  19. package/src/lib/feature/globalSelection/globalSelectionStore/globalSelectionStore.utils.d.ts +3 -0
  20. package/src/lib/feature/globalSelection/globalSelectionStore/nullItems/createNullMeasurintPoint.d.ts +2 -0
  21. package/src/lib/feature/globalSelection/hooks/useGlobalSelectionLists.d.ts +1 -1
  22. package/src/lib/feature/globalSelection/index.d.ts +1 -0
  23. package/src/lib/feature/globalSelection/selectionMenu/selectionTreeStore/actions/addMeasuringPoints.action.d.ts +2 -0
  24. package/src/lib/feature/globalSelection/selectionMenu/selectionTreeStore/actions/{createAddItemsFactory.d.ts → createAddItemsToSelectionTreeFactory.d.ts} +1 -1
  25. package/src/lib/feature/globalSelection/selectionMenu/selectionTreeStore/initialData.d.ts +1 -0
  26. package/src/lib/feature/globalSelection/selectionMenu/selectionTreeStore/selectionTree.store.types.d.ts +4 -1
  27. package/src/lib/feature/legend/components/pdfMarkers/subComponents/{LegendMarkersRendererWithPopover.d.ts → LegendMarkersRenderer.d.ts} +2 -3
  28. package/src/lib/feature/legend/components/pdfMarkers/subComponents/MultipleMarkersByLegends.d.ts +2 -2
  29. package/src/lib/feature/legend/components/pdfMarkers/subComponents/iconPositionTransform.d.ts +0 -8
  30. package/src/lib/feature/measuringPoint/FullMeasuringPointItem.d.ts +25 -0
  31. package/src/lib/feature/measuringPoint/components/MeasuringPointListItem.d.ts +18 -0
  32. package/src/lib/feature/measuringPoint/components/index.d.ts +0 -1
  33. package/src/lib/feature/measuringPoint/components/lastRecordedMeasurement/lastRecordedMeasurement.d.ts +2 -2
  34. package/src/lib/feature/measuringPoint/components/lastRecordedMeasurement/lastRecordedMeasurement.logic.d.ts +1 -0
  35. package/src/lib/feature/measuringPoint/components/measuringPointDetails/lastReportedFields.d.ts +5 -3
  36. package/src/lib/feature/measuringPoint/components/measuringPointDetails/measuringPointDetails.d.ts +7 -3
  37. package/src/lib/feature/measuringPoint/components/measuringPointDetails/measuringPointHistoryList/measuringPointHistoryList.d.ts +3 -2
  38. package/src/lib/feature/measuringPoint/components/measuringPointHeader/measuringPointHeader.d.ts +2 -2
  39. package/src/lib/feature/measuringPoint/components/measuringPoints.utils.d.ts +1 -1
  40. package/src/lib/feature/measuringPoint/hooks/useOpenMeasuringPointDetails.d.ts +5 -3
  41. package/src/lib/feature/measuringPoint/index.d.ts +1 -1
  42. package/src/lib/hooks/index.d.ts +1 -1
  43. package/src/lib/hooks/useAgChartsLicense.d.ts +1 -0
  44. package/src/lib/hooks/useInstCodeSafe.d.ts +10 -0
  45. package/src/lib/services/api/api-measurements.d.ts +4 -0
  46. package/src/lib/services/api/api-measuringPoints.d.ts +6 -0
  47. package/src/lib/services/license/setAgChartsEnterpriseLicense.d.ts +2 -0
  48. package/src/lib/feature/measuringPoint/components/measuringPointItem.d.ts +0 -15
  49. package/src/lib/hooks/useHas3dAccess.d.ts +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@equinor/echo-framework",
3
- "version": "0.24.0",
3
+ "version": "0.24.1",
4
4
  "peerDependencies": {
5
5
  "@equinor/echo-base": ">= 0.7.5 < 0.8.0",
6
6
  "@equinor/echo-components": ">= 0.12.4 < 0.13.0",
@@ -18,7 +18,8 @@
18
18
  "lodash": "4.17.21",
19
19
  "react-router-dom": "5.3.4",
20
20
  "zustand": ">= 4.4.7 < 5",
21
- "immer": "10.1.1"
21
+ "immer": "10.1.1",
22
+ "ag-charts-enterprise": "11.2.4"
22
23
  },
23
24
  "dependencies": {
24
25
  "dexie": "4.0.11",
package/src/index.d.ts CHANGED
@@ -2,6 +2,8 @@ import { getLegendStatusColor } from './lib/feature/legacyLegend/utils/legendUti
2
2
  import './lib/globalStyles.css';
3
3
  import { getPlantsInfo, getTagDetails } from './lib/services/api';
4
4
  export * from './lib/components';
5
+ export { NotificationListItem } from './lib/components/notificationListItem';
6
+ export type { NotificationListItemType } from './lib/components/notificationListItem';
5
7
  export { PrepviewButton } from './lib/components/prepviewButton/prepviewButton';
6
8
  export { useFetchPlantInfo } from './lib/components/requestAccess/hooks/fetchPlantInfo';
7
9
  export { RequestProCoSysAccess } from './lib/components/requestAccess/RequestProCoSysAccess';
@@ -34,6 +36,7 @@ export { useIsFullScreenModeEnabled } from './lib/hooks/useIsFullScreenModeEnabl
34
36
  export { useOpenPrepview } from './lib/hooks/useOpenPrepview';
35
37
  export { useScreenOrientation } from './lib/hooks/useScreenOrientation';
36
38
  export { useScreenValues } from './lib/hooks/useScreenValues';
39
+ export { getMeasurementsFromMaintenanceDataApi } from './lib/services/api/api-measuringPoints';
37
40
  export { getPlantsCachedOrApi, getPlantsFromApi } from './lib/services/api/api-plants';
38
41
  export { RegisteredComponentName } from './lib/services/componentRegistry/componentRegistry';
39
42
  export * from './lib/services/dataLayerPanel';
@@ -79,6 +82,7 @@ declare const EchoFramework: Readonly<{
79
82
  }>;
80
83
  }>;
81
84
  Hooks: Readonly<{
85
+ useInstCodeSafe: () => string;
82
86
  useClosePanelByKey(panelKey?: string): () => void;
83
87
  useEchoHistory(): (path: string, params?: {
84
88
  [key: string]: string;
@@ -86,7 +90,6 @@ declare const EchoFramework: Readonly<{
86
90
  useFetchInstCodeBySapPlantId: (args: {
87
91
  sapPlantId: string | undefined;
88
92
  }) => string | undefined;
89
- useHas3dAccess(plantCode?: string): boolean;
90
93
  useIsFullScreenModeEnabled(): boolean;
91
94
  useOpenPdfFile(): (args: {
92
95
  instCode: string;
@@ -0,0 +1,3 @@
1
+ import { NotificationListItemProps } from './types/types';
2
+ declare function NotificationListItem(props: Readonly<NotificationListItemProps>): import("react/jsx-runtime").JSX.Element;
3
+ export { NotificationListItem };
@@ -0,0 +1,4 @@
1
+ export declare function NotificationListItemEndDateLabel({ requiredEndDateTime, requiredEndDateStatus }: Readonly<{
2
+ requiredEndDateTime?: Date;
3
+ requiredEndDateStatus?: string;
4
+ }>): import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1,3 @@
1
+ export declare function NotificationListItemFailureImpactLabel({ failureImpact }: Readonly<{
2
+ failureImpact?: string;
3
+ }>): import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1,2 @@
1
+ import { NotificationListItemProps } from '../types/types';
2
+ export declare function NotificationListItemIcons({ notification }: Readonly<NotificationListItemProps>): import("react/jsx-runtime").JSX.Element | undefined;
@@ -0,0 +1,3 @@
1
+ export { NotificationListItemEndDateLabel } from './NotificationListItemEndDateLabel';
2
+ export { NotificationListItemFailureImpactLabel } from './NotificationListItemFailureImpactLabel';
3
+ export { NotificationListItemIcons } from './NotificationListItemIcons';
@@ -0,0 +1,2 @@
1
+ export * from './NotificationListItem';
2
+ export type { NotificationListItemType } from './notificationListItem.type';
@@ -0,0 +1,15 @@
1
+ export interface NotificationListItemType {
2
+ id: string;
3
+ type: string;
4
+ isActive: boolean;
5
+ title?: string;
6
+ planningPlant?: string;
7
+ mainWorkCenter?: string;
8
+ requiredEndDateTime?: Date;
9
+ requiredEndDateStatus?: string;
10
+ requiredEndDateStatusDescription?: string;
11
+ failureImpact?: string;
12
+ hasActivityLongText: boolean;
13
+ hasAttachment: boolean;
14
+ hasB30Document: boolean;
15
+ }
@@ -0,0 +1,11 @@
1
+ import { ColorMap } from '@equinor/echo-components';
2
+ import React from 'react';
3
+ import { NotificationListItemType } from '.././notificationListItem.type';
4
+ export interface NotificationListItemProps {
5
+ notification: NotificationListItemType;
6
+ onCardClick?: () => void;
7
+ itemAction?: React.ReactNode;
8
+ isHeader?: boolean;
9
+ colorMap?: ColorMap;
10
+ className?: string;
11
+ }
@@ -12,6 +12,7 @@ interface VisualComponent {
12
12
  label: string;
13
13
  backgroundColor: string;
14
14
  textColor: string;
15
+ isSmall?: boolean;
15
16
  };
16
17
  }
17
18
  interface IconOptions {
@@ -12,5 +12,5 @@ export interface WorkOrderListItemProps {
12
12
  cardClassName?: string;
13
13
  footer?: React.ReactNode;
14
14
  }
15
- declare function WorkOrderListItem(props: WorkOrderListItemProps): import("react/jsx-runtime").JSX.Element;
15
+ declare function WorkOrderListItem(props: Readonly<WorkOrderListItemProps>): import("react/jsx-runtime").JSX.Element;
16
16
  export { WorkOrderListItem };
@@ -83,7 +83,22 @@ export declare const globalSelectionApi: Readonly<{
83
83
  * @param {Readonly<Readonly<GlobalSelectionTypes.WorkOrderId>[]>} args.items - An array of WorkOrderId objects representing the work orders to be added.
84
84
  */
85
85
  workOrders: (args: import("./selectionMenu/selectionTreeStore/actions/selectionTree.action.types").AddItemArgs<GlobalSelectionTypes.WorkOrderId>) => import("./selectionMenu/selectionTreeStore/selectionTree.store.types").AddWorkOrdersReturnType;
86
+ /**
87
+ * Adds equipments to a specified list in the selection menu panel.
88
+ *
89
+ * @param {Object} args - The arguments for adding equipments.
90
+ * @param {Guid} args.groupId - Optional. The ID of the list to which the items should be added. If not provided, it will be added to the "Local Selection".
91
+ * @param {Readonly<Readonly<GlobalSelectionTypes.EquipmentId>[]>} args.items - An array of EquipmentId objects representing the work orders to be added.
92
+ */
86
93
  equipments: (args: import("./selectionMenu/selectionTreeStore/actions/selectionTree.action.types").AddItemArgs<GlobalSelectionTypes.EquipmentId>) => import("./selectionMenu/selectionTreeStore/selectionTree.store.types").AddEquipmentsReturnType;
94
+ /**
95
+ * Adds measuring points to a specified list in the selection menu panel.
96
+ *
97
+ * @param {Object} args - The arguments for adding measuring points.
98
+ * @param {Guid} args.groupId - Optional. The ID of the list to which the items should be added. If not provided, it will be added to the "Local Selection".
99
+ * @param {Readonly<Readonly<GlobalSelectionTypes.EquipmentId>[]>} args.items - An array of MeasuringPointId objects representing the work orders to be added.
100
+ */
101
+ measuringPoints: (args: import("./selectionMenu/selectionTreeStore/actions/selectionTree.action.types").AddItemArgs<GlobalSelectionTypes.MeasuringPointId>) => import("./selectionMenu/selectionTreeStore/selectionTree.store.types").AddMeasuringPointsReturnType;
87
102
  /**
88
103
  * Adds items to a specified list in the selection menu panel.
89
104
  *
@@ -0,0 +1,6 @@
1
+ export declare const addMeasuringPointsToSelectionAction: (set: (set: (state: import("../globalSelectionStore.types").GlobalSelectionStore) => void, shouldReplace?: boolean | undefined, action?: string) => void, get: import("zustand").StoreApi<import("../globalSelectionStore.types").GlobalSelectionStore>["getState"], args: {
2
+ itemIds: import("../globalSelectionStore.types").GlobalSelectionTypes.MeasuringPointId[];
3
+ }) => Promise<{
4
+ fetchResult: import("@equinor/echo-search").ResultArray<import("@equinor/echo-search").MeasuringPointData>[];
5
+ actionResult: import("../globalSelectionStore.types").GlobalSelectionTypes.ActionResult;
6
+ }>;
@@ -2,6 +2,7 @@ import { GlobalSelectionStore, GlobalSelectionTypes } from './globalSelectionSto
2
2
  export declare const initialWorkOrderList: GlobalSelectionTypes.WorkOrderList;
3
3
  export declare const initialTagList: GlobalSelectionTypes.TagList;
4
4
  export declare const initialEquipmentList: GlobalSelectionTypes.EquipmentList;
5
+ export declare const initialMeasuringPointList: GlobalSelectionTypes.MeasuringPointList;
5
6
  /**
6
7
  * The single source of truth for items stored in Global Selection.
7
8
  * Each item is stored here once, does not store item grouping in any way.
@@ -20,7 +21,7 @@ export declare const initialEquipmentList: GlobalSelectionTypes.EquipmentList;
20
21
  *
21
22
  * For accessing and using global selection features, use the globalSelectionApi from echo-framework.
22
23
  */
23
- export declare const useGlobalSelectionStore: import("zustand").UseBoundStore<Omit<Omit<Omit<import("zustand").StoreApi<GlobalSelectionStore>, "setState"> & {
24
+ export declare const useGlobalSelectionStore: import("zustand").UseBoundStore<Omit<Omit<Omit<Omit<import("zustand").StoreApi<GlobalSelectionStore>, "setState"> & {
24
25
  setState<A extends string | {
25
26
  type: string;
26
27
  }>(partial: GlobalSelectionStore | Partial<GlobalSelectionStore> | ((state: GlobalSelectionStore) => GlobalSelectionStore | Partial<GlobalSelectionStore>), replace?: boolean | undefined, action?: A | undefined): void;
@@ -32,6 +33,16 @@ export declare const useGlobalSelectionStore: import("zustand").UseBoundStore<Om
32
33
  fireImmediately?: boolean;
33
34
  } | undefined): () => void;
34
35
  };
36
+ }, "persist"> & {
37
+ persist: {
38
+ setOptions: (options: Partial<import("zustand/middleware").PersistOptions<GlobalSelectionStore, GlobalSelectionStore>>) => void;
39
+ clearStorage: () => void;
40
+ rehydrate: () => Promise<void> | void;
41
+ hasHydrated: () => boolean;
42
+ onHydrate: (fn: (state: GlobalSelectionStore) => void) => () => void;
43
+ onFinishHydration: (fn: (state: GlobalSelectionStore) => void) => () => void;
44
+ getOptions: () => Partial<import("zustand/middleware").PersistOptions<GlobalSelectionStore, GlobalSelectionStore>>;
45
+ };
35
46
  }, "setState"> & {
36
47
  setState(nextStateOrUpdater: GlobalSelectionStore | Partial<GlobalSelectionStore> | ((state: import("immer").WritableDraft<GlobalSelectionStore>) => void), shouldReplace?: boolean | undefined, action?: string | {
37
48
  type: string;
@@ -0,0 +1,8 @@
1
+ import { PersistOptions } from 'zustand/middleware';
2
+ import { GlobalSelectionStore } from './globalSelectionStore.types';
3
+ declare function loadAndPopulateStoreMetadata(store: GlobalSelectionStore): Promise<void>;
4
+ export declare const globalSelectionRepository: {
5
+ loadAndPopulateStoreMetadata: typeof loadAndPopulateStoreMetadata;
6
+ persistOptions: PersistOptions<GlobalSelectionStore, GlobalSelectionStore>;
7
+ };
8
+ export {};
@@ -1,23 +1,26 @@
1
- import { EquipmentData, ResultArray, TagSummaryDto, WorkOrderData } from '@equinor/echo-search';
1
+ import { EquipmentData, MeasuringPointData, ResultArray, TagSummaryDto, WorkOrderData } from '@equinor/echo-search';
2
2
  import { Brand } from '@equinor/echo-utils';
3
- import { Equipment } from '../../equipment';
4
3
  export declare enum GlobalSelectionItemType {
5
4
  WorkOrder = "WorkOrder",
6
5
  Tag = "Tag",
7
- Equipment = "Equipment"
6
+ Equipment = "Equipment",
7
+ MeasuringPoint = "MeasuringPoint"
8
8
  }
9
9
  type GlobalSelectionTagDto = TagSummaryDto;
10
10
  type GlobalSelectionWorkOrderDto = WorkOrderData;
11
11
  type GlobalSelectionEquipmentDto = EquipmentData;
12
+ type GlobalSelectionMeasuringPointDto = MeasuringPointData;
12
13
  export type GlobalSelectionItemTypeToDataMap = {
13
14
  [GlobalSelectionItemType.WorkOrder]: GlobalSelectionWorkOrderDto;
14
15
  [GlobalSelectionItemType.Tag]: GlobalSelectionTagDto;
15
16
  [GlobalSelectionItemType.Equipment]: GlobalSelectionEquipmentDto;
17
+ [GlobalSelectionItemType.MeasuringPoint]: GlobalSelectionMeasuringPointDto;
16
18
  };
17
19
  export type SelectionItemTypeToItemIdMap = {
18
20
  [GlobalSelectionItemType.WorkOrder]: GlobalSelectionTypes.WorkOrderId;
19
21
  [GlobalSelectionItemType.Tag]: GlobalSelectionTypes.TagId;
20
22
  [GlobalSelectionItemType.Equipment]: GlobalSelectionTypes.EquipmentId;
23
+ [GlobalSelectionItemType.MeasuringPoint]: GlobalSelectionTypes.MeasuringPointId;
21
24
  };
22
25
  type GlobalSelectionList<T extends GlobalSelectionItemType> = {
23
26
  label: string;
@@ -46,6 +49,7 @@ type GlobalSelectionGenericItem<T extends GlobalSelectionItemType> = {
46
49
  type EquipmentGlobalSelectionList = GlobalSelectionTypes.List<GlobalSelectionItemType.Equipment>;
47
50
  type WorkOrderGlobalSelectionList = GlobalSelectionTypes.List<GlobalSelectionItemType.WorkOrder>;
48
51
  type TagGlobalSelectionList = GlobalSelectionTypes.List<GlobalSelectionItemType.Tag>;
52
+ type MeasuringPointGlobalSelectionList = GlobalSelectionTypes.List<GlobalSelectionItemType.MeasuringPoint>;
49
53
  type GlobalSelectionListUnion = WorkOrderGlobalSelectionList | TagGlobalSelectionList | EquipmentGlobalSelectionList;
50
54
  interface ItemErrorStatusUpdates {
51
55
  itemId: GlobalSelectionTypes.ItemId;
@@ -61,6 +65,9 @@ export interface GlobalSelectionStore extends GlobalSelectionStoreData {
61
65
  addEquipmentsToSelection: (args: {
62
66
  equipmentIds: GlobalSelectionTypes.EquipmentId[];
63
67
  }) => Promise<GlobalSelectionAddItemResult<ResultArray<EquipmentData>[]>>;
68
+ addMeasuringPointsToSelection: (args: {
69
+ measuringPointIds: GlobalSelectionTypes.MeasuringPointId[];
70
+ }) => Promise<GlobalSelectionAddItemResult<ResultArray<MeasuringPointData>[]>>;
64
71
  removeItemsFromSelection: (args: {
65
72
  itemIds: ReadonlyArray<GlobalSelectionTypes.ItemId>;
66
73
  }) => void;
@@ -88,29 +95,34 @@ export type GlobalSelectionAddItemResult<DataType> = {
88
95
  };
89
96
  export declare namespace GlobalSelectionTypes {
90
97
  type WorkOrderId = Pick<GlobalSelectionWorkOrderDto, 'workOrderId'>;
91
- type EquipmentId = Pick<Equipment, 'equipmentId'>;
92
- type TagId = Pick<TagSummaryDto, 'tagNo' | 'instCode'>;
93
- type ItemId = WorkOrderId | EquipmentId | TagId;
98
+ type EquipmentId = Pick<GlobalSelectionEquipmentDto, 'equipmentId'>;
99
+ type TagId = Pick<GlobalSelectionTagDto, 'tagNo' | 'instCode'>;
100
+ type MeasuringPointId = Pick<GlobalSelectionMeasuringPointDto, 'measuringPointId'>;
101
+ type ItemId = WorkOrderId | EquipmentId | TagId | MeasuringPointId;
94
102
  type ItemIdString = Brand<string, 'ItemIdString'>;
95
103
  type TagDto = GlobalSelectionTagDto;
96
104
  type WorkOrderDto = GlobalSelectionWorkOrderDto;
97
105
  type EquipmentDto = GlobalSelectionEquipmentDto;
106
+ type MeasuringPointDto = GlobalSelectionMeasuringPointDto;
98
107
  type EquipmentItem = GlobalSelectionGenericItem<GlobalSelectionItemType.Equipment>;
99
108
  type WorkOrderItem = GlobalSelectionGenericItem<GlobalSelectionItemType.WorkOrder>;
100
109
  type TagItem = GlobalSelectionGenericItem<GlobalSelectionItemType.Tag>;
110
+ type MeasuringPointItem = GlobalSelectionGenericItem<GlobalSelectionItemType.MeasuringPoint>;
101
111
  type List<T extends GlobalSelectionItemType> = GlobalSelectionList<T>;
102
- type SelectionItem = EquipmentItem | WorkOrderItem | TagItem;
103
- type SelectionItemList = EquipmentItem[] | WorkOrderItem[] | TagItem[];
112
+ type SelectionItem = EquipmentItem | WorkOrderItem | TagItem | MeasuringPointItem;
113
+ type SelectionItemList = EquipmentItem[] | WorkOrderItem[] | TagItem[] | MeasuringPointItem[];
104
114
  type GenericItem<T extends GlobalSelectionItemType> = GlobalSelectionGenericItem<T>;
105
115
  type Store = GlobalSelectionStore;
106
116
  type ItemErrorStatusUpdate = ItemErrorStatusUpdates;
107
117
  type WorkOrderList = WorkOrderGlobalSelectionList;
108
118
  type TagList = TagGlobalSelectionList;
109
119
  type EquipmentList = EquipmentGlobalSelectionList;
120
+ type MeasuringPointList = MeasuringPointGlobalSelectionList;
110
121
  type ListUnion = GlobalSelectionListUnion;
111
122
  type ItemTypeToDataMap = GlobalSelectionItemTypeToDataMap;
112
123
  type AddTagResult = GlobalSelectionAddItemResult<ResultArray<TagSummaryDto>[]>;
113
124
  type AddEquipmentsResult = GlobalSelectionAddItemResult<ResultArray<EquipmentData>[]>;
125
+ type AddMeasuringPointResult = GlobalSelectionAddItemResult<ResultArray<MeasuringPointData>[]>;
114
126
  type ActionResult = GlobalSelectionActionResult;
115
127
  type ItemSystemStatus = SelectionItemSystemStatus;
116
128
  }
@@ -3,6 +3,7 @@ declare function idsEqual(itemA: GlobalSelectionTypes.ItemId, itemB: GlobalSelec
3
3
  declare function isWorkOrderId(itemId: GlobalSelectionTypes.ItemId): itemId is GlobalSelectionTypes.WorkOrderId;
4
4
  declare function isEquipmentId(itemId: GlobalSelectionTypes.ItemId): itemId is GlobalSelectionTypes.EquipmentId;
5
5
  declare function isTagId(itemId: GlobalSelectionTypes.ItemId): itemId is GlobalSelectionTypes.TagId;
6
+ declare function isMeasuringPointId(itemId: GlobalSelectionTypes.ItemId): itemId is GlobalSelectionTypes.MeasuringPointId;
6
7
  /**
7
8
  * Overloaded function that maps an item to its corresponding ID type based on the item's properties.
8
9
  * The return type is specific to the type of item passed to the function.
@@ -28,6 +29,7 @@ declare function isTagId(itemId: GlobalSelectionTypes.ItemId): itemId is GlobalS
28
29
  declare function mapToId(item: GlobalSelectionTypes.WorkOrderId): GlobalSelectionTypes.WorkOrderId;
29
30
  declare function mapToId(item: GlobalSelectionTypes.EquipmentId): GlobalSelectionTypes.EquipmentId;
30
31
  declare function mapToId(item: GlobalSelectionTypes.TagId): GlobalSelectionTypes.TagId;
32
+ declare function mapToId(item: GlobalSelectionTypes.MeasuringPointId): GlobalSelectionTypes.MeasuringPointId;
31
33
  declare function mapToId(item: GlobalSelectionTypes.ItemId): GlobalSelectionTypes.ItemId;
32
34
  declare function itemIdToString(itemId: GlobalSelectionTypes.ItemId): GlobalSelectionTypes.ItemIdString;
33
35
  export declare function mapIdToItemType(itemId: GlobalSelectionTypes.ItemId): GlobalSelectionItemType;
@@ -43,6 +45,7 @@ export declare function mapIdToItemType(itemId: GlobalSelectionTypes.ItemId): Gl
43
45
  * @property {Function} itemIdToString - Converts a global selection item id object to a string, each value is concatenated by a '-'
44
46
  */
45
47
  export declare const globalSelectionUtils: Readonly<{
48
+ isMeasuringPointId: typeof isMeasuringPointId;
46
49
  isWorkOrderId: typeof isWorkOrderId;
47
50
  isEquipmentId: typeof isEquipmentId;
48
51
  isTagId: typeof isTagId;
@@ -0,0 +1,2 @@
1
+ import { GlobalSelectionTypes } from '../globalSelectionStore.types';
2
+ export declare function createNullMeasuringPointData(itemId: GlobalSelectionTypes.MeasuringPointId): GlobalSelectionTypes.MeasuringPointDto;
@@ -4,5 +4,5 @@
4
4
  export declare function useGlobalSelectionLists(): {
5
5
  label: string;
6
6
  type: import("..").GlobalSelectionItemType;
7
- items: (import("..").GlobalSelectionTypes.GenericItem<import("..").GlobalSelectionItemType.WorkOrder> | import("..").GlobalSelectionTypes.GenericItem<import("..").GlobalSelectionItemType.Tag> | import("..").GlobalSelectionTypes.GenericItem<import("..").GlobalSelectionItemType.Equipment>)[];
7
+ items: (import("..").GlobalSelectionTypes.GenericItem<import("..").GlobalSelectionItemType.WorkOrder> | import("..").GlobalSelectionTypes.GenericItem<import("..").GlobalSelectionItemType.Tag> | import("..").GlobalSelectionTypes.GenericItem<import("..").GlobalSelectionItemType.Equipment> | import("..").GlobalSelectionTypes.GenericItem<import("..").GlobalSelectionItemType.MeasuringPoint>)[];
8
8
  }[];
@@ -1,3 +1,4 @@
1
+ export { MeasuringPointListItem } from '../measuringPoint/components/MeasuringPointListItem';
1
2
  export { RemoveSelectionItemsConfirmDialog } from './components/RemoveSelectionItemsConfirmDialog';
2
3
  export { globalSelectionApi } from './globalSelection.api';
3
4
  export { globalSelectionInternal } from './globalSelection.internal';
@@ -0,0 +1,2 @@
1
+ import { GlobalSelectionItemType } from '../../../globalSelectionStore/globalSelectionStore.types';
2
+ export declare const addMeasuringPointsAction: (set: (set: (state: import("../selectionTree.store.types").SelectionTreeStore) => void, shouldReplace?: boolean | undefined, action?: string) => void, get: import("zustand").StoreApi<import("../selectionTree.store.types").SelectionTreeStore>["getState"], args: import("./selectionTree.action.types").AddItemArgs<import("../../../globalSelectionStore/globalSelectionStore.types").GlobalSelectionTypes.MeasuringPointId>) => Promise<import("./selectionTree.action.types").AddItemsResponse<GlobalSelectionItemType.MeasuringPoint>>;
@@ -4,7 +4,7 @@ import { GlobalSelectionAddItemResult, GlobalSelectionItemType, GlobalSelectionI
4
4
  import { GlobalSelectionCategoryId, SelectionTreeStore } from '../selectionTree.store.types';
5
5
  import { AddItemArgs, AddItemsResponse } from './selectionTree.action.types';
6
6
  type SetFunction = (set: (state: SelectionTreeStore) => void, shouldReplace?: boolean | undefined, action?: string) => void;
7
- export declare function addItemsActionFactory<G_ItemType extends GlobalSelectionItemType>(args: {
7
+ export declare function addItemsToSelectionTreeActionFactory<G_ItemType extends GlobalSelectionItemType>(args: {
8
8
  addItemToGlobalSelection: (uniqueNewItems: SelectionItemTypeToItemIdMap[G_ItemType][]) => Promise<GlobalSelectionAddItemResult<ResultArray<GlobalSelectionItemTypeToDataMap[G_ItemType]>[]>>;
9
9
  itemType: G_ItemType;
10
10
  itemCategory: GlobalSelectionCategoryId;
@@ -5,6 +5,7 @@ export declare const selectionTreeInitialData: Readonly<{
5
5
  tagIndex: number;
6
6
  workOrderIndex: number;
7
7
  equipmentIndex: number;
8
+ measuringPointIndex: number;
8
9
  };
9
10
  localSelectionGroupIndex: 0;
10
11
  getInitialCategories: () => SelectionCategory[];
@@ -4,7 +4,8 @@ import { AddByLabel, AddItemArgs, AddItemsResponse, SelectionTreeActionResult }
4
4
  export declare enum GlobalSelectionCategoryId {
5
5
  Tags = "DEFAULT_TAG_LIST_ID",
6
6
  WorkOrders = "DEFAULT_WORK_ORDER_LIST_ID",
7
- Equipments = "DEFAULT_EQUIPMENT_LIST_ID"
7
+ Equipments = "DEFAULT_EQUIPMENT_LIST_ID",
8
+ MeasuringPoints = "DEFAULT_MEASURING_POINT_LIST_ID"
8
9
  }
9
10
  export declare const globalSelectionDefaultGroupId: Guid;
10
11
  export type SelectionTreeItem<T extends GlobalSelectionItemType> = {
@@ -44,6 +45,7 @@ export interface SelectionTreeStore {
44
45
  addTags: (args: AddItemArgs<GlobalSelectionTypes.TagId>) => AddTagsReturnType;
45
46
  addWorkOrders: (args: AddItemArgs<GlobalSelectionTypes.WorkOrderId>) => AddWorkOrdersReturnType;
46
47
  addEquipments: (args: AddItemArgs<GlobalSelectionTypes.EquipmentId>) => AddEquipmentsReturnType;
48
+ addMeasuringPoints: (args: AddItemArgs<GlobalSelectionTypes.MeasuringPointId>) => AddMeasuringPointsReturnType;
47
49
  createGroup: (args: {
48
50
  label: string;
49
51
  subLabel: string;
@@ -78,3 +80,4 @@ export declare namespace SelectionTreeTypes {
78
80
  export type AddTagsReturnType = Promise<AddItemsResponse<GlobalSelectionItemType.Tag>>;
79
81
  export type AddWorkOrdersReturnType = Promise<AddItemsResponse<GlobalSelectionItemType.WorkOrder>>;
80
82
  export type AddEquipmentsReturnType = Promise<AddItemsResponse<GlobalSelectionItemType.Equipment>>;
83
+ export type AddMeasuringPointsReturnType = Promise<AddItemsResponse<GlobalSelectionItemType.MeasuringPoint>>;
@@ -4,13 +4,12 @@ interface LegendPositionItem {
4
4
  itemId: LegendDataId;
5
5
  positionString: string;
6
6
  hasPointer: boolean;
7
- popoverOffset: string;
8
7
  }
9
- interface LegendMarkersRendererWithPopoverProps {
8
+ interface LegendMarkersRendererProps {
10
9
  positionItems: ReadonlyArray<LegendPositionItem>;
11
10
  }
12
11
  /**
13
12
  * Renders all the position items, with markers for each legends. And has 1 popover which is the last active item clicked.
14
13
  */
15
- export declare const LegendMarkersRendererWithPopover: React.FC<LegendMarkersRendererWithPopoverProps>;
14
+ export declare const LegendMarkersRenderer: React.FC<LegendMarkersRendererProps>;
16
15
  export {};
@@ -6,16 +6,16 @@ interface MultipleMarkersByLegendsProps {
6
6
  * Flag to indicate if the marker should have a pointer, currently in lower right corner.
7
7
  */
8
8
  hasPointer: boolean;
9
- popoverOffset: string;
10
9
  setOpenItem: (value: PopoverContent | undefined) => void;
11
10
  /**
12
11
  * We use active for the icon. So several icons might be active if they have the same tagNo on the PDF, but only 1 of them is open.
13
12
  */
14
13
  activeItem: ActiveItem | undefined;
14
+ openPopover?: PopoverContent;
15
+ popoverElements?: ReadonlyArray<JSX.Element>;
15
16
  }
16
17
  export interface PopoverContent {
17
18
  elements: ReadonlyArray<JSX.Element>;
18
- popoverOffset: string;
19
19
  activeItem: ActiveItem;
20
20
  }
21
21
  /**
@@ -1,13 +1,5 @@
1
1
  import { Point } from '@equinor/echo-utils';
2
2
  export declare const calculateIconScale: (currentPageScale: number) => number;
3
- export declare function calculatePopoverStyling(args: {
4
- pdfZoom: number;
5
- hasPointer: boolean;
6
- position: Point;
7
- pdfRotation: number;
8
- currentPageScale: number;
9
- markerHeight: number;
10
- }): string;
11
3
  export declare function iconPositionTransform(args: {
12
4
  position: Point;
13
5
  pdfRotation: number;
@@ -0,0 +1,25 @@
1
+ import { MeasuringPointData } from '@equinor/echo-search';
2
+ import { MeasurementDto } from './types/measuringPoint';
3
+ type FullMeasuringPointItemProps = {
4
+ measuringPointProps: Pick<MeasuringPointData, 'measuringPosition' | 'measuringPointId' | 'quantitativeCharacteristicId' | 'tagPlantId' | 'tagId' | 'measuringPoint' | 'equipmentId'>;
5
+ measurements?: MeasurementDto[];
6
+ };
7
+ /**
8
+ * A React component that renders a detailed view of a measuring point item, including its metadata,
9
+ * measurements, and additional details. It also provides functionality for local or development
10
+ * environments to add the measuring point to a global selection.
11
+ *
12
+ * @param measuringPointProps - The properties of the measuring point, including its ID, position,
13
+ * associated tag, equipment, and other metadata.
14
+ * @param measurements - An optional array of measurement data associated with the measuring point. If it's not provided,
15
+ * then the component will fetch the measurements.
16
+ *
17
+ * @returns A JSX element that displays the measuring point's information, including:
18
+ * - A list item with primary, secondary, and tertiary details.
19
+ * - A visual icon representing the measuring point.
20
+ * - A selection action bar for local or development environments.
21
+ * - Detailed measuring point information, including measurements.
22
+ *
23
+ **/
24
+ export declare const FullMeasuringPointItem: ({ measuringPointProps, measurements }: FullMeasuringPointItemProps) => import("react/jsx-runtime").JSX.Element;
25
+ export {};
@@ -0,0 +1,18 @@
1
+ import { MeasuringPointData } from '@equinor/echo-search';
2
+ import React from 'react';
3
+ import { MeasurementDto } from '../types/measuringPoint';
4
+ interface MeasuringPointListItemProps {
5
+ measuringPointProps: Pick<MeasuringPointData, 'measuringPosition' | 'measuringPointId' | 'quantitativeCharacteristicId' | 'tagPlantId' | 'tagId' | 'measuringPoint' | 'equipmentId'>;
6
+ measurements?: MeasurementDto[];
7
+ onClick?: () => void;
8
+ className?: string;
9
+ cardClassName?: string;
10
+ hideActions?: boolean;
11
+ hideBorder?: boolean;
12
+ isHighlightable?: boolean;
13
+ itemActions?: React.ReactNode;
14
+ footer?: React.ReactNode;
15
+ children?: React.ReactNode;
16
+ }
17
+ export declare const MeasuringPointListItem: React.FC<MeasuringPointListItemProps>;
18
+ export {};
@@ -1,4 +1,3 @@
1
1
  export { failureMechanismConfig } from './failureMechanism.config';
2
2
  export { MeasuringPointDetails } from './measuringPointDetails/measuringPointDetails';
3
3
  export { MeasuringPointHeader } from './measuringPointHeader/measuringPointHeader';
4
- export { MeasuringPointItem } from './measuringPointItem';
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
- import { MeasuringPointDto } from '../../types/measuringPoint';
2
+ import { LastRecordedMeasurementData } from './lastRecordedMeasurement.logic';
3
3
  type LastRecordedMeasurementProps = {
4
- measuringPoint: MeasuringPointDto;
4
+ lastRecordedMeasurement: LastRecordedMeasurementData;
5
5
  failureMechanismDescription: string;
6
6
  };
7
7
  export declare const LastRecordedMeasurement: React.FC<LastRecordedMeasurementProps>;
@@ -3,5 +3,6 @@ export type LastRecordedMeasurementData = {
3
3
  conditionAsText?: string;
4
4
  measurementDateTime: string | null;
5
5
  codeAsText?: string;
6
+ lastRecordedMeasurement: MeasurementDto | undefined;
6
7
  };
7
8
  export declare const getLastRecordedMeasurement: (measurements: MeasurementDto[]) => LastRecordedMeasurementData;
@@ -1,6 +1,8 @@
1
- import { MeasuringPointDto } from '../../types/measuringPoint';
1
+ import { MeasuringPointData } from '@equinor/echo-search';
2
+ import { MeasurementDto } from '../../types/measuringPoint';
2
3
  type LastReportedFieldsProps = {
3
- measuringPoint: MeasuringPointDto;
4
+ measuringPointProps: Pick<MeasuringPointData, 'measuringPosition' | 'measuringPointId' | 'quantitativeCharacteristicId' | 'tagPlantId' | 'tagId' | 'measuringPoint' | 'equipmentId'>;
5
+ lastRecordedMeasurement: MeasurementDto;
4
6
  };
5
- export declare const LastReportedFields: ({ measuringPoint }: LastReportedFieldsProps) => import("react/jsx-runtime").JSX.Element;
7
+ export declare const LastReportedFields: ({ measuringPointProps, lastRecordedMeasurement }: LastReportedFieldsProps) => import("react/jsx-runtime").JSX.Element;
6
8
  export {};
@@ -1,6 +1,10 @@
1
- import { MeasuringPointDto } from '../../types/measuringPoint';
1
+ import { MeasuringPointData } from '@equinor/echo-search';
2
+ import { MeasurementDto } from '../../types/measuringPoint';
2
3
  type MeasuringPointDetailsProps = {
3
- measuringPoint: MeasuringPointDto;
4
+ measuringPointProps: Pick<MeasuringPointData, 'measuringPosition' | 'measuringPointId' | 'quantitativeCharacteristicId' | 'tagPlantId' | 'tagId' | 'measuringPoint' | 'equipmentId'>;
5
+ measurements: MeasurementDto[] | undefined;
6
+ measurementsLoadingstatus: LoadingStatus;
4
7
  };
5
- export declare const MeasuringPointDetails: ({ measuringPoint }: MeasuringPointDetailsProps) => import("react/jsx-runtime").JSX.Element;
8
+ export declare const MeasuringPointDetails: ({ measuringPointProps, measurements, measurementsLoadingstatus }: MeasuringPointDetailsProps) => import("react/jsx-runtime").JSX.Element;
9
+ type LoadingStatus = 'pending' | 'error' | 'success';
6
10
  export {};
@@ -1,6 +1,7 @@
1
- import { MeasuringPointDto } from '../../../types/measuringPoint';
1
+ import { MeasurementDto, MeasuringPointDto } from '../../../types/measuringPoint';
2
2
  type MeasuringPointHistoryListProps = {
3
- measuringPoint: MeasuringPointDto;
3
+ measuringPointProps: Pick<MeasuringPointDto, 'quantitativeCharacteristicId' | 'tagPlantId'>;
4
+ measurements: MeasurementDto[];
4
5
  };
5
6
  export declare const MeasuringPointHistoryList: React.FC<MeasuringPointHistoryListProps>;
6
7
  export {};
@@ -1,6 +1,6 @@
1
1
  import { MeasuringPointDto } from '../../types/measuringPoint';
2
- type Props = {
2
+ type MeasuringPointHeaderProps = {
3
3
  measuringPoint: MeasuringPointDto;
4
4
  };
5
- export declare const MeasuringPointHeader: ({ measuringPoint }: Props) => import("react/jsx-runtime").JSX.Element;
5
+ export declare const MeasuringPointHeader: ({ measuringPoint }: MeasuringPointHeaderProps) => import("react/jsx-runtime").JSX.Element;
6
6
  export {};
@@ -7,7 +7,7 @@ type FailureMechanismParams = {
7
7
  measurement: MeasurementDto | undefined;
8
8
  quantitativeCharacteristicId: string | undefined;
9
9
  };
10
- type FailureMechanismConfigValues = {
10
+ export type FailureMechanismConfigValues = {
11
11
  value: string;
12
12
  color: string;
13
13
  description: string;
@@ -1,11 +1,13 @@
1
- import { MeasuringPointDto } from '../types/measuringPoint';
1
+ import { MeasuringPointData } from '@equinor/echo-search';
2
+ import { MeasurementDto } from '../types/measuringPoint';
2
3
  /**
3
4
  * Opens measuring point details panel on the left side of the screen
4
- * @returns {function}
5
+ * @returns {function} A function to open the measuring point details panel
5
6
  */
6
7
  export declare function useOpenMeasuringPointDetails(): (args: MeasuringPointArgs) => void;
7
8
  type MeasuringPointArgs = {
8
- measuringPoint: MeasuringPointDto;
9
+ measuringPointProps: Pick<MeasuringPointData, 'measuringPosition' | 'measuringPointId' | 'quantitativeCharacteristicId' | 'tagPlantId' | 'tagId' | 'measuringPoint' | 'equipmentId'>;
10
+ measurements?: MeasurementDto[];
9
11
  panelKey?: string;
10
12
  keepLastNavigationItem?: boolean;
11
13
  };
@@ -1,4 +1,4 @@
1
- export { MeasuringPointDetails, MeasuringPointHeader, MeasuringPointItem, failureMechanismConfig } from './components';
1
+ export { failureMechanismConfig, MeasuringPointDetails, MeasuringPointHeader } from './components';
2
2
  export { useOpenMeasuringPointDetails } from './hooks';
3
3
  export type { DocumentRelationships } from './types/documentRelationships';
4
4
  export type { MeasurementDto, MeasuringPointDto } from './types/measuringPoint';
@@ -1,7 +1,7 @@
1
1
  export * from './useClosePanelByKey';
2
2
  export * from './useEchoHistory';
3
3
  export * from './useFetchInstCodeBySapPlantId';
4
- export * from './useHas3dAccess';
4
+ export { useInstCodeSafe } from './useInstCodeSafe';
5
5
  export * from './useIsFullScreenModeEnabled';
6
6
  export * from './useOpenPdfFile';
7
7
  export * from './usePlantAvailableIn3d';
@@ -0,0 +1 @@
1
+ export declare const useAgChartsLicense: () => boolean;