@equinor/echo-framework 5.0.0-beta-r19 → 5.0.0-beta-r19-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 (115) hide show
  1. package/index.cjs.js +2 -2
  2. package/package.json +8 -8
  3. package/src/index.d.ts +4 -4
  4. package/src/lib/components/prepview/panels/objects/objects.logic.d.ts +7 -0
  5. package/src/lib/components/prepview/panels/objects/objects.utils.d.ts +14 -0
  6. package/src/lib/components/prepview/panels/objects/selectionActionBarMultiple/AddSelectionListWithSameNameDialog.d.ts +8 -0
  7. package/src/lib/components/prepview/panels/objects/selectionActionBarMultiple/SelectionActionBarMultiple.d.ts +9 -0
  8. package/src/lib/components/prepview/panels/objects/selectionActionBarMultiple/logic/selectionActionBarMultiple.colors.d.ts +2 -0
  9. package/src/lib/components/prepview/panels/objects/selectionActionBarMultiple/logic/selectionActionBarMultiple.constants.d.ts +1 -0
  10. package/src/lib/components/prepview/panels/objects/selectionActionBarMultiple/logic/selectionActionBarMultiple.logic.d.ts +4 -0
  11. package/src/lib/components/prepview/panels/objects/selectionActionBarMultiple/logic/selectionActionBarMultiple.orchestration.d.ts +10 -0
  12. package/src/lib/components/prepview/panels/objects/selectionActionBarMultiple/logic/selectionActionBarMultiple.utils.d.ts +3 -0
  13. package/src/lib/components/prepview/panels/tagDocumentRefs/HorizontalDocumentGroups.d.ts +1 -1
  14. package/src/lib/feature/equipment/components/fullEquipmentItem/fullEquipmentItem.d.ts +3 -3
  15. package/src/lib/feature/globalSelection/components/selectionActionBar/SelectionActionBar.d.ts +14 -0
  16. package/src/lib/feature/globalSelection/components/selectionActionBar/SelectionActionBarMenuItem.d.ts +12 -0
  17. package/src/lib/feature/globalSelection/components/selectionActionBar/hooks/useSelectionAction.d.ts +28 -0
  18. package/src/lib/feature/globalSelection/globalSelection.api.d.ts +3 -2
  19. package/src/lib/feature/globalSelection/globalSelectionColorService.d.ts +3 -3
  20. package/src/lib/feature/globalSelection/globalSelectionColorService.types.d.ts +1 -0
  21. package/src/lib/feature/globalSelection/globalSelectionStore/actions/addItemsByStrategy.action.d.ts +17 -0
  22. package/src/lib/feature/globalSelection/globalSelectionStore/globalSelectionStore.d.ts +13 -16
  23. package/src/lib/feature/globalSelection/globalSelectionStore/globalSelectionStore.types.d.ts +9 -16
  24. package/src/lib/feature/globalSelection/globalSelectionStore/globalSelectionStore.utils.d.ts +2 -36
  25. package/src/lib/feature/globalSelection/globalSelectionStore/selectionActionFeedbackStore.d.ts +30 -0
  26. package/src/lib/feature/globalSelection/hooks/useGlobalSelectionLists.d.ts +5 -3
  27. package/src/lib/feature/globalSelection/hooks/useIsInGlobalSelection.d.ts +0 -1
  28. package/src/lib/feature/globalSelection/hooks/useSelectionCategoriesByGroupId.d.ts +3 -2
  29. package/src/lib/feature/globalSelection/index.d.ts +2 -2
  30. package/src/lib/feature/globalSelection/selectionMenu/hooks/{useIsAllIGlobalSelectionItemsHidden.d.ts → useIsAllGlobalSelectionItemsHidden.d.ts} +4 -6
  31. package/src/lib/feature/globalSelection/selectionMenu/hooks/useSelectionColorFrequency.d.ts +5 -2
  32. package/src/lib/feature/globalSelection/selectionMenu/selectionTreeStore/actions/addItems.action.d.ts +5 -4
  33. package/src/lib/feature/globalSelection/selectionMenu/selectionTreeStore/actions/removeAllItemsById.action.d.ts +1 -1
  34. package/src/lib/feature/globalSelection/selectionMenu/selectionTreeStore/actions/removeItemsById.action.d.ts +1 -1
  35. package/src/lib/feature/globalSelection/selectionMenu/selectionTreeStore/actions/selectionTree.action.types.d.ts +5 -4
  36. package/src/lib/feature/globalSelection/selectionMenu/selectionTreeStore/selectionTree.store.d.ts +11 -11
  37. package/src/lib/feature/globalSelection/selectionMenu/selectionTreeStore/selectionTree.store.types.d.ts +4 -3
  38. package/src/lib/feature/globalSelection/selectionMenu/selectionTreeStore/selectionTree.store.utils.d.ts +9 -7
  39. package/src/lib/feature/globalSelection/strategies/equipmentSelection.strategy.d.ts +3 -0
  40. package/src/lib/feature/globalSelection/strategies/index.d.ts +2 -0
  41. package/src/lib/feature/globalSelection/strategies/isItemIdOfType.d.ts +2 -0
  42. package/src/lib/feature/globalSelection/strategies/measuringPointSelection.strategy.d.ts +3 -0
  43. package/src/lib/feature/globalSelection/strategies/registerStrategies.d.ts +1 -0
  44. package/src/lib/feature/globalSelection/strategies/selectionItemTypeRegistry.d.ts +37 -0
  45. package/src/lib/feature/globalSelection/strategies/selectionItemTypeStrategy.types.d.ts +50 -0
  46. package/src/lib/feature/globalSelection/strategies/tagSelection.strategy.d.ts +3 -0
  47. package/src/lib/feature/globalSelection/strategies/workOrderSelection.strategy.d.ts +3 -0
  48. package/src/lib/feature/legend/components/BasicLegendRenderer.d.ts +1 -1
  49. package/src/lib/feature/legend/components/LegendSelectorContainer.d.ts +17 -0
  50. package/src/lib/feature/legend/components/pdfMarkers/subComponents/ItemMarkerPopoverContainer.d.ts +9 -0
  51. package/src/lib/feature/legend/components/pdfMarkers/subComponents/MarkerWithPopover.d.ts +1 -1
  52. package/src/lib/feature/legend/components/pdfMarkers/subComponents/components/MultipleMarkersBySingleLegend/multipleMarkersBySingleLegend.logic.d.ts +1 -1
  53. package/src/lib/feature/legend/components/pdfMarkers/subComponents/components/MultipleMarkersBySingleLegend/useStalePopoverMarkers.d.ts +3 -3
  54. package/src/lib/feature/legend/components/pdfMarkers/subComponents/hooks/useMarkerPopover.d.ts +1 -2
  55. package/src/lib/feature/legend/components/pdfMarkers/utils/markerId.utils.d.ts +1 -2
  56. package/src/lib/feature/legend/components/popover/LegendPopoverContent.d.ts +9 -26
  57. package/src/lib/feature/legend/components/popover/LegendPopoverContent.logic.d.ts +12 -6
  58. package/src/lib/feature/legend/hooks/useGroupedMarkers.utils.d.ts +0 -4
  59. package/src/lib/feature/legend/hooks/useLegendMarker/useLegendMarker.utils.d.ts +1 -1
  60. package/src/lib/feature/legend/hooks/useLegendUniqueBadges.d.ts +1 -3
  61. package/src/lib/feature/legend/hooks/useLegendUniqueMarkers.d.ts +1 -3
  62. package/src/lib/feature/legend/index.d.ts +8 -5
  63. package/src/lib/feature/legend/legendAnalytics.d.ts +1 -1
  64. package/src/lib/feature/legend/legendFacade.d.ts +8 -0
  65. package/src/lib/feature/legend/legendStrategies/notificationStrategy/api/fetchNotificationDetailsByIds.d.ts +8 -0
  66. package/src/lib/feature/legend/legendStrategies/notificationStrategy/api/notificationsLegend.api.d.ts +7 -0
  67. package/src/lib/feature/legend/legendStrategies/notificationStrategy/components/NotificationPopover.d.ts +8 -0
  68. package/src/lib/feature/legend/legendStrategies/notificationStrategy/hooks/useNotificationDetailsByIds.d.ts +2 -0
  69. package/src/lib/feature/legend/legendStrategies/notificationStrategy/hooks/useNotificationLegendData.d.ts +5 -0
  70. package/src/lib/feature/legend/legendStrategies/notificationStrategy/hooks/useNotificationMarkers.d.ts +10 -0
  71. package/src/lib/feature/legend/legendStrategies/notificationStrategy/hooks/useOpenNotificationsByTagIds.d.ts +14 -0
  72. package/src/lib/feature/legend/legendStrategies/notificationStrategy/logic/getNotificationPopover.d.ts +6 -0
  73. package/src/lib/feature/legend/legendStrategies/notificationStrategy/logic/notificationLegend.logic.d.ts +12 -0
  74. package/src/lib/feature/legend/legendStrategies/notificationStrategy/notificationStrategy.types.d.ts +13 -0
  75. package/src/lib/feature/legend/legendStrategies/notificationStrategy/optionConfigs/notificationBadgeLegendOptionConfig.d.ts +3 -0
  76. package/src/lib/feature/legend/legendStrategies/notificationStrategy/optionConfigs/notificationMarkerLegendOptionConfig.d.ts +3 -0
  77. package/src/lib/feature/legend/legendStrategies/notificationStrategy/testing/createTestNotification.d.ts +2 -0
  78. package/src/lib/feature/legend/legendStrategies/notificationStrategy/utils/getColorForNotificationLegendStatus.d.ts +7 -0
  79. package/src/lib/feature/legend/legendStrategies/notificationStrategy/utils/getNotificationTitlesByPropertyName.d.ts +2 -0
  80. package/src/lib/feature/legend/legendStrategies/notificationStrategy/utils/notificationLegend.utils.d.ts +17 -0
  81. package/src/lib/feature/legend/legendStrategies/workOrderStrategy/workOrder.utils.d.ts +14 -0
  82. package/src/lib/feature/legend/logic/getColorForLegendStatus.d.ts +5 -0
  83. package/src/lib/feature/legend/logic/normalizeBadges.d.ts +25 -12
  84. package/src/lib/feature/legend/logic/propertyAccessor.utils.d.ts +36 -0
  85. package/src/lib/feature/legend/stores/initializeLegendInStores.d.ts +3 -4
  86. package/src/lib/feature/legend/stores/legendDataStore/legendStore.d.ts +0 -1
  87. package/src/lib/feature/legend/stores/legendUIStore/legendUIStore.types.d.ts +3 -14
  88. package/src/lib/feature/legend/stores/legendVisibleDataAsTagsStore/legendVisibleDataAsTagsStore.d.ts +8 -0
  89. package/src/lib/feature/legend/types/legendStrategy.type.d.ts +6 -6
  90. package/src/lib/feature/legend/types/legendType.d.ts +26 -19
  91. package/src/lib/feature/measuringPoint/index.d.ts +1 -1
  92. package/src/lib/feature/openItemsIn3d/logic/createEcho3dInternalLink.d.ts +1 -0
  93. package/src/lib/feature/shared/markerId.types.d.ts +11 -0
  94. package/src/lib/hooks/useOpenPdfFile.d.ts +12 -0
  95. package/src/lib/hooks/useScreenValues.d.ts +2 -2
  96. package/src/lib/services/dataLayerPanel/dataLayerPanel.store.d.ts +2 -0
  97. package/src/lib/utils/index.d.ts +1 -0
  98. package/src/lib/utils/notification.utils.d.ts +2 -0
  99. package/src/lib/feature/globalSelection/components/SelectionActionBar/SelectionFeedbackDisplay.d.ts +0 -7
  100. package/src/lib/feature/globalSelection/components/SelectionActionBar/selectionFeedback.types.d.ts +0 -1
  101. package/src/lib/feature/globalSelection/components/SelectionActionBar.d.ts +0 -7
  102. package/src/lib/feature/globalSelection/components/SelectionMenuTrigger/SelectionGroupMenuItem.d.ts +0 -9
  103. package/src/lib/feature/globalSelection/components/SelectionMenuTrigger/SelectionMenuTrigger.d.ts +0 -12
  104. package/src/lib/feature/globalSelection/globalSelectionStore/actions/addEquipmentsToSelection.action.d.ts +0 -7
  105. package/src/lib/feature/globalSelection/globalSelectionStore/actions/addItemsToSelectionFactory.d.ts +0 -21
  106. package/src/lib/feature/globalSelection/globalSelectionStore/actions/addMeasuringPointsToSelection.action.d.ts +0 -7
  107. package/src/lib/feature/globalSelection/globalSelectionStore/actions/addTagsToSelection.action.d.ts +0 -12
  108. package/src/lib/feature/globalSelection/globalSelectionStore/actions/addWorkOrdersToSelection.action.d.ts +0 -7
  109. package/src/lib/feature/globalSelection/hooks/useSelectionAction.d.ts +0 -21
  110. package/src/lib/feature/legend/components/legendTextSelector/LegendTextSelector.d.ts +0 -20
  111. package/src/lib/feature/legend/legendStrategies/workOrderStrategy/components/WorkOrderPopoverPrimaryRow.d.ts +0 -15
  112. package/src/lib/feature/legend/legendStrategies/workOrderStrategy/components/WorkOrderPopoverThirdRow.d.ts +0 -16
  113. package/src/lib/icons/index.d.ts +0 -13
  114. package/src/lib/icons/search.d.ts +0 -3
  115. /package/src/lib/feature/globalSelection/components/{RemoveSelectionItemsConfirmDialog.d.ts → selectionActionBar/RemoveSelectionItemsConfirmDialog.d.ts} +0 -0
@@ -1,5 +1,4 @@
1
1
  import { Guid } from '@equinor/echo-utils';
2
- import { GlobalSelectionTypes } from '../../globalSelectionStore/globalSelectionStore.types';
3
2
  import { SelectionGroup, SelectionTreeStore } from './selectionTree.store.types';
4
3
  /**
5
4
  * Zustand store hook for managing the selection tree state in the global selection feature.
@@ -34,13 +33,14 @@ export declare const useSelectionTreeStore: import("zustand").UseBoundStore<Omit
34
33
  guid: Guid | undefined;
35
34
  }) => void;
36
35
  addItems: (args: {
37
- itemIds: GlobalSelectionTypes.ItemId[];
36
+ itemIds: ReadonlyArray<import("../..").GlobalSelectionTypes.ItemId>;
38
37
  groupId?: Guid;
38
+ useDefaultSelectionTypeColors?: boolean;
39
39
  }) => Promise<void>;
40
- addTags: (args: import("./actions/selectionTree.action.types").AddItemArgs<GlobalSelectionTypes.TagId>) => import("./selectionTree.store.types").AddTagsReturnType;
41
- addWorkOrders: (args: import("./actions/selectionTree.action.types").AddItemArgs<GlobalSelectionTypes.WorkOrderId>) => import("./selectionTree.store.types").AddWorkOrdersReturnType;
42
- addEquipments: (args: import("./actions/selectionTree.action.types").AddItemArgs<GlobalSelectionTypes.EquipmentId>) => import("./selectionTree.store.types").AddEquipmentsReturnType;
43
- addMeasuringPoints: (args: import("./actions/selectionTree.action.types").AddItemArgs<GlobalSelectionTypes.MeasuringPointId>) => import("./selectionTree.store.types").AddMeasuringPointsReturnType;
40
+ addTags: (args: import("./actions/selectionTree.action.types").AddItemArgs<import("../..").GlobalSelectionTypes.TagId>) => import("./selectionTree.store.types").AddTagsReturnType;
41
+ addWorkOrders: (args: import("./actions/selectionTree.action.types").AddItemArgs<import("../..").GlobalSelectionTypes.WorkOrderId>) => import("./selectionTree.store.types").AddWorkOrdersReturnType;
42
+ addEquipments: (args: import("./actions/selectionTree.action.types").AddItemArgs<import("../..").GlobalSelectionTypes.EquipmentId>) => import("./selectionTree.store.types").AddEquipmentsReturnType;
43
+ addMeasuringPoints: (args: import("./actions/selectionTree.action.types").AddItemArgs<import("../..").GlobalSelectionTypes.MeasuringPointId>) => import("./selectionTree.store.types").AddMeasuringPointsReturnType;
44
44
  createGroup: (args: {
45
45
  groupId?: string;
46
46
  label: string;
@@ -59,15 +59,15 @@ export declare const useSelectionTreeStore: import("zustand").UseBoundStore<Omit
59
59
  removeItemsById: (args: {
60
60
  groupId?: Guid;
61
61
  categoryId: import("./selectionTree.store.types").GlobalSelectionCategoryId;
62
- itemIds: GlobalSelectionTypes.ItemId[];
62
+ itemIds: ReadonlyArray<import("../..").GlobalSelectionTypes.ItemId>;
63
63
  }) => void;
64
64
  removeAllItemsById: (args: {
65
- itemIds: GlobalSelectionTypes.ItemId[];
65
+ itemIds: ReadonlyArray<import("../..").GlobalSelectionTypes.ItemId>;
66
66
  }) => void;
67
67
  moveItems: (args: {
68
68
  sourceGroupId: Guid;
69
69
  sourceCategoryId?: import("./selectionTree.store.types").GlobalSelectionCategoryId;
70
- sourceItemId?: GlobalSelectionTypes.ItemId;
70
+ sourceItemId?: import("../..").GlobalSelectionTypes.ItemId;
71
71
  targetGroupId: Guid;
72
72
  }) => void;
73
73
  setVisibilityById: (args: {
@@ -85,7 +85,7 @@ export declare const useSelectionTreeStore: import("zustand").UseBoundStore<Omit
85
85
  categories: {
86
86
  id: import("./selectionTree.store.types").GlobalSelectionCategoryId;
87
87
  label: string;
88
- items: Map<GlobalSelectionTypes.ItemIdString, {
88
+ items: Map<import("../..").GlobalSelectionTypes.ItemIdString, {
89
89
  id: {
90
90
  workOrderId: string;
91
91
  } | {
@@ -102,7 +102,7 @@ export declare const useSelectionTreeStore: import("zustand").UseBoundStore<Omit
102
102
  } | {
103
103
  measuringPointId: string;
104
104
  };
105
- type: import("../../globalSelectionStore/globalSelectionStore.types").GlobalSelectionItemType;
105
+ type: import("../..").GlobalSelectionItemType;
106
106
  }>;
107
107
  }[];
108
108
  groupId: Guid;
@@ -35,8 +35,9 @@ export interface SelectionTreeStore extends SelectionTreeData {
35
35
  guid: Guid | undefined;
36
36
  }) => void;
37
37
  addItems: (args: {
38
- itemIds: GlobalSelectionTypes.ItemId[];
38
+ itemIds: ReadonlyArray<GlobalSelectionTypes.ItemId>;
39
39
  groupId?: Guid;
40
+ useDefaultSelectionTypeColors?: boolean;
40
41
  }) => Promise<void>;
41
42
  addTags: (args: AddItemArgs<GlobalSelectionTypes.TagId>) => AddTagsReturnType;
42
43
  addWorkOrders: (args: AddItemArgs<GlobalSelectionTypes.WorkOrderId>) => AddWorkOrdersReturnType;
@@ -60,10 +61,10 @@ export interface SelectionTreeStore extends SelectionTreeData {
60
61
  removeItemsById: (args: {
61
62
  groupId?: Guid;
62
63
  categoryId: GlobalSelectionCategoryId;
63
- itemIds: GlobalSelectionTypes.ItemId[];
64
+ itemIds: ReadonlyArray<GlobalSelectionTypes.ItemId>;
64
65
  }) => void;
65
66
  removeAllItemsById: (args: {
66
- itemIds: GlobalSelectionTypes.ItemId[];
67
+ itemIds: ReadonlyArray<GlobalSelectionTypes.ItemId>;
67
68
  }) => void;
68
69
  moveItems: (args: {
69
70
  sourceGroupId: Guid;
@@ -50,7 +50,7 @@ export declare function findSelectionCategoryById(args: {
50
50
  */
51
51
  export declare function itemsNotFoundInSelectionTree(args: {
52
52
  groups: SelectionTreeTypes.Group[];
53
- itemIds: GlobalSelectionTypes.ItemId[];
53
+ itemIds: ReadonlyArray<GlobalSelectionTypes.ItemId>;
54
54
  }): GlobalSelectionTypes.ItemId[];
55
55
  /**
56
56
  * Get an array of group IDs where any of the item IDs are found.
@@ -64,7 +64,7 @@ export declare function itemsNotFoundInSelectionTree(args: {
64
64
  * @returns {Object[]} An array of group IDs, with labels and sublabels, where any of the item IDs are found.
65
65
  */
66
66
  export declare function getGroupIdsByItemIds(args: {
67
- itemIds: GlobalSelectionTypes.ItemId[];
67
+ itemIds: ReadonlyArray<GlobalSelectionTypes.ItemId>;
68
68
  groups: SelectionTreeTypes.Group[];
69
69
  }): {
70
70
  id: Guid;
@@ -103,8 +103,8 @@ export declare function isSelectionEmpty(groups: SelectionTreeTypes.Group[]): bo
103
103
  * @param {GlobalSelectionTypes.ItemId[]} itemIds - The list of item IDs to be checked and potentially removed.
104
104
  * @returns {void}
105
105
  */
106
- export declare function removeStaleItemsFromGlobalSelection(groups: SelectionTreeTypes.Group[], itemIds: GlobalSelectionTypes.ItemId[]): void;
107
- export declare function getItemsByIdsFromGlobalSelectionStore(itemIds: GlobalSelectionTypes.ItemId[]): GlobalSelectionTypes.SelectionItem[];
106
+ export declare function removeStaleItemsFromGlobalSelection(groups: SelectionTreeTypes.Group[], itemIds: ReadonlyArray<GlobalSelectionTypes.ItemId>): void;
107
+ export declare function getItemsByIdsFromGlobalSelectionStore(itemIds: ReadonlyArray<GlobalSelectionTypes.ItemId>): GlobalSelectionTypes.SelectionItem[];
108
108
  /**
109
109
  * Returns an array of selection colors sorted by their frequency for the specified item IDs within a group.
110
110
  *
@@ -122,7 +122,7 @@ export declare function getItemsByIdsFromGlobalSelectionStore(itemIds: GlobalSel
122
122
  */
123
123
  export declare function getSelectionColorFrequencyByIds(args: {
124
124
  groupId: string;
125
- itemIds: GlobalSelectionTypes.ItemId[];
125
+ itemIds: ReadonlyArray<GlobalSelectionTypes.ItemId>;
126
126
  allGroups: ReadonlyArray<SelectionTreeTypes.Group>;
127
127
  }): string[];
128
128
  /**
@@ -143,8 +143,9 @@ export declare function handleItemColorization(args: {
143
143
  itemType: GlobalSelectionItemType;
144
144
  treeState: SelectionTreeStore;
145
145
  affectedGroupId?: Guid;
146
- itemIds: GlobalSelectionTypes.ItemId[];
146
+ itemIds: ReadonlyArray<GlobalSelectionTypes.ItemId>;
147
147
  handleColorConflicts?: boolean;
148
+ useDefaultSelectionTypeColors?: boolean;
148
149
  }): string | undefined;
149
150
  /**
150
151
  * Assigns a color to a set of items within a specified group in the selection tree.
@@ -164,5 +165,6 @@ export declare function assignColorToItemsInGroup(args: {
164
165
  itemType: GlobalSelectionItemType;
165
166
  allGroups: ReadonlyArray<SelectionTreeTypes.Group>;
166
167
  groupId: string;
167
- itemIdsToColor: GlobalSelectionTypes.ItemId[];
168
+ itemIdsToColor: ReadonlyArray<GlobalSelectionTypes.ItemId>;
169
+ useDefaultSelectionTypeColors?: boolean;
168
170
  }): string | undefined;
@@ -0,0 +1,3 @@
1
+ import { GlobalSelectionItemType } from '../globalSelectionStore/globalSelectionStore.types';
2
+ import type { SelectionItemTypeStrategy } from './selectionItemTypeStrategy.types';
3
+ export declare const equipmentSelectionStrategy: SelectionItemTypeStrategy<GlobalSelectionItemType.Equipment>;
@@ -0,0 +1,2 @@
1
+ import './registerStrategies';
2
+ export { selectionItemTypeRegistry } from './selectionItemTypeRegistry';
@@ -0,0 +1,2 @@
1
+ import type { GlobalSelectionItemType, GlobalSelectionTypes, SelectionItemTypeToItemIdMap } from '../globalSelectionStore/globalSelectionStore.types';
2
+ export declare function isItemIdOfType<T extends GlobalSelectionItemType>(type: T, itemId: GlobalSelectionTypes.ItemId): itemId is SelectionItemTypeToItemIdMap[T];
@@ -0,0 +1,3 @@
1
+ import { GlobalSelectionItemType } from '../globalSelectionStore/globalSelectionStore.types';
2
+ import type { SelectionItemTypeStrategy } from './selectionItemTypeStrategy.types';
3
+ export declare const measuringPointSelectionStrategy: SelectionItemTypeStrategy<GlobalSelectionItemType.MeasuringPoint>;
@@ -0,0 +1,37 @@
1
+ import type { GlobalSelectionItemType } from '../globalSelectionStore/globalSelectionStore.types';
2
+ import type { OrderedSelectionItemTypeStrategy, RegistrationOptions, SelectionItemTypeStrategy } from './selectionItemTypeStrategy.types';
3
+ export declare class SelectionItemTypeRegistry {
4
+ private readonly strategies;
5
+ private cachedAll;
6
+ private cachedAllByRegistrationOrder;
7
+ /**
8
+ * Register a strategy for the given item type. Throws if the type is already registered.
9
+ * @param strategy - The strategy implementation for a specific item type.
10
+ * @param options - Registration options including categoryOrderIndex for UI sort order.
11
+ */
12
+ register<T extends GlobalSelectionItemType>(strategy: SelectionItemTypeStrategy<T>, options: RegistrationOptions): void;
13
+ /**
14
+ * Retrieve the strategy for a specific item type. Throws if no strategy is registered.
15
+ * @param type - The item type to look up (e.g. GlobalSelectionItemType.Tag).
16
+ */
17
+ get<T extends GlobalSelectionItemType>(type: T): OrderedSelectionItemTypeStrategy<T>;
18
+ /**
19
+ * Returns all strategies sorted by `categoryOrderIndex` — use for **UI rendering**.
20
+ *
21
+ * `categoryOrderIndex` is a display-order index assigned at registration time that
22
+ * controls the visual order of categories in the selection menu (e.g. Tags=0, WorkOrders=1, …).
23
+ * It is independent of registration order and can be set to any value as long as it is unique.
24
+ */
25
+ getAll(): ReadonlyArray<OrderedSelectionItemTypeStrategy>;
26
+ /**
27
+ * Returns all strategies in the order they were registered — use for **type-guard dispatch**.
28
+ *
29
+ * When identifying an unknown `ItemId` (e.g. in `mapIdToItemType`), strategies are tried
30
+ * in this order until one's `isItemId()` returns true. Registration order therefore controls
31
+ * type-guard priority: if type A's `isItemId()` can match type B's IDs,
32
+ * type B must be registered before type A so it is checked first.
33
+ * See `registerStrategies.ts` for the concrete ordering rationale.
34
+ */
35
+ getAllByRegistrationOrder(): ReadonlyArray<OrderedSelectionItemTypeStrategy>;
36
+ }
37
+ export declare const selectionItemTypeRegistry: SelectionItemTypeRegistry;
@@ -0,0 +1,50 @@
1
+ import type { ResultArray } from '@equinor/echo-search';
2
+ import type { GlobalSelectionItemType, GlobalSelectionItemTypeToDataMap, GlobalSelectionTypes, SelectionItemTypeToItemIdMap } from '../globalSelectionStore/globalSelectionStore.types';
3
+ import type { GlobalSelectionCategoryId } from '../selectionMenu/selectionTreeStore/selectionTree.store.types';
4
+ export interface SelectionItemTypeStrategy<T extends GlobalSelectionItemType> {
5
+ /** Discriminant — e.g. GlobalSelectionItemType.Tag */
6
+ readonly itemType: T;
7
+ /** Category ID for tree grouping */
8
+ readonly categoryId: GlobalSelectionCategoryId;
9
+ /** Category label shown in UI */
10
+ readonly categoryLabel: string;
11
+ /** Type guard: narrows ItemId to this type's ID */
12
+ isItemId(itemId: GlobalSelectionTypes.ItemId): itemId is SelectionItemTypeToItemIdMap[T];
13
+ /** Convert raw ItemId to canonical form (trim, normalize) */
14
+ normalizeId(itemId: SelectionItemTypeToItemIdMap[T]): SelectionItemTypeToItemIdMap[T];
15
+ /** Serialize ItemId to unique string key */
16
+ itemIdToString(itemId: SelectionItemTypeToItemIdMap[T]): GlobalSelectionTypes.ItemIdString;
17
+ /** Check equality of two IDs of this type */
18
+ idsEqual(itemA: SelectionItemTypeToItemIdMap[T], itemB: SelectionItemTypeToItemIdMap[T]): boolean;
19
+ /** Create a placeholder item for loading state */
20
+ createNullItem(itemId: SelectionItemTypeToItemIdMap[T]): GlobalSelectionItemTypeToDataMap[T];
21
+ /**
22
+ * Resolve items synchronously from the ID alone — no loading state, no API call.
23
+ * Only implement when item data is embedded in the ID itself (e.g. PDMS tags).
24
+ *
25
+ * The generic action calls this first (if present) and only passes the `remaining` IDs
26
+ * to `fetchAsync`, skipping the isLoading → fetched cycle for the resolved items.
27
+ * If absent, all IDs are forwarded directly to `fetchAsync`.
28
+ */
29
+ resolveSync?(itemIds: ReadonlyArray<SelectionItemTypeToItemIdMap[T]>): {
30
+ readonly resolved: ReadonlyArray<{
31
+ readonly data: GlobalSelectionItemTypeToDataMap[T];
32
+ readonly id: SelectionItemTypeToItemIdMap[T];
33
+ }>;
34
+ readonly remaining: ReadonlyArray<SelectionItemTypeToItemIdMap[T]>;
35
+ };
36
+ /**
37
+ * Fetch real data from the API for items that could not be resolved synchronously.
38
+ * Called only with the `remaining` IDs returned by resolveSync (or all IDs if resolveSync is absent).
39
+ */
40
+ fetchAsync(itemIds: ReadonlyArray<SelectionItemTypeToItemIdMap[T]>): Promise<ReadonlyArray<{
41
+ readonly result: ResultArray<GlobalSelectionItemTypeToDataMap[T]>;
42
+ readonly itemIdsUsed: ReadonlyArray<SelectionItemTypeToItemIdMap[T]>;
43
+ }>>;
44
+ }
45
+ export interface RegistrationOptions {
46
+ readonly categoryOrderIndex: number;
47
+ }
48
+ export type OrderedSelectionItemTypeStrategy<T extends GlobalSelectionItemType = GlobalSelectionItemType> = SelectionItemTypeStrategy<T> & {
49
+ readonly categoryOrderIndex: number;
50
+ };
@@ -0,0 +1,3 @@
1
+ import { GlobalSelectionItemType } from '../globalSelectionStore/globalSelectionStore.types';
2
+ import type { SelectionItemTypeStrategy } from './selectionItemTypeStrategy.types';
3
+ export declare const tagSelectionStrategy: SelectionItemTypeStrategy<GlobalSelectionItemType.Tag>;
@@ -0,0 +1,3 @@
1
+ import { GlobalSelectionItemType } from '../globalSelectionStore/globalSelectionStore.types';
2
+ import type { SelectionItemTypeStrategy } from './selectionItemTypeStrategy.types';
3
+ export declare const workOrderSelectionStrategy: SelectionItemTypeStrategy<GlobalSelectionItemType.WorkOrder>;
@@ -1,6 +1,6 @@
1
1
  import { LegendId } from '../types/legendType';
2
2
  interface LegendSelectorMenuProps {
3
- legendId: LegendId;
3
+ readonly legendId: LegendId;
4
4
  }
5
5
  export declare const BasicLegendRenderer: import("react").NamedExoticComponent<LegendSelectorMenuProps>;
6
6
  export {};
@@ -0,0 +1,17 @@
1
+ import { LegendChipProps } from '@equinor/echo-components';
2
+ import { type LegendOptionConfig } from '../types/legendType';
3
+ interface LegendSelectorContainerProps {
4
+ readonly selectedOption: LegendOptionConfig;
5
+ readonly onSelectedOptionChange?: (option: LegendOptionConfig) => void;
6
+ readonly options: ReadonlyArray<LegendOptionConfig>;
7
+ readonly legendChips: ReadonlyArray<LegendChipProps>;
8
+ /** Whether this is a marker or badge selector (affects icon displayed) */
9
+ readonly variant: 'marker' | 'badge';
10
+ }
11
+ /**
12
+ * A reusable container for legend selectors that handles both option selection
13
+ * and display option selection (how the badge text is rendered) based on LegendOptionConfigs.
14
+ * Display options are only available for badge variants with enableDisplayOptions: true.
15
+ */
16
+ export declare const LegendSelectorContainer: (props: LegendSelectorContainerProps) => import("react/jsx-runtime").JSX.Element;
17
+ export {};
@@ -0,0 +1,9 @@
1
+ import { type LegendId } from '../../../types/legendType';
2
+ interface ItemMarkerPopoverContainerProps {
3
+ legendId: LegendId;
4
+ elements: ReadonlyArray<React.ReactElement>;
5
+ isPopoverActive: boolean;
6
+ handleClose: () => void;
7
+ }
8
+ export declare const ItemMarkerPopoverContainer: ({ legendId, elements, isPopoverActive, handleClose }: ItemMarkerPopoverContainerProps) => import("react/jsx-runtime").JSX.Element | null;
9
+ export {};
@@ -1,5 +1,5 @@
1
+ import type { MarkerId } from '../../../../shared/markerId.types';
1
2
  import { LegendDataId, LegendId } from '../../../types/legendType';
2
- import { MarkerId } from '../utils/markerId.utils';
3
3
  import { ColorGroupedMarker } from '../utils/splitMarkerByColor.types';
4
4
  interface MarkerWithPopoverProps {
5
5
  legendId: LegendId;
@@ -1,5 +1,5 @@
1
+ import type { MarkerId } from '../../../../../../shared/markerId.types';
1
2
  import { Marker } from '../../../../../types/legendMarkerBadge.type';
2
- import { MarkerId } from '../../../utils/markerId.utils';
3
3
  import { ColorGroupedMarker } from '../../../utils/splitMarkerByColor.types';
4
4
  /**
5
5
  * Builds the list of color-grouped markers to render for a single legend item.
@@ -1,4 +1,4 @@
1
- import { MarkerId } from '../../../utils/markerId.utils';
1
+ import type { MarkerId } from '../../../../../../shared/markerId.types';
2
2
  import { ColorGroupedMarker } from '../../../utils/splitMarkerByColor.types';
3
3
  interface UseStalePopoverMarkersProps {
4
4
  readonly markersToRender: ReadonlyArray<ColorGroupedMarker> | null;
@@ -8,9 +8,9 @@ interface UseStalePopoverMarkersProps {
8
8
  /**
9
9
  * Holds stale markers visible while selection feedback is displayed after a delayed close or migration.
10
10
  *
11
- * When `shouldDelayPopoverUpdate` is true and the active popover's marker disappears (e.g. last item
11
+ * When `selectionActionFeedback.isFeedbackActive` is true and the active popover's marker disappears (e.g. last item
12
12
  * removed from a color group), this hook keeps the old `MarkerWithPopover` rendered for
13
- * `POPOVER_UPDATE_DELAY_MS`. That gives the loading indicator and feedback message ("Removed",
13
+ * `FEEDBACK_DISPLAY_DURATION_MS`. That gives the loading indicator and feedback message ("Removed",
14
14
  * "Color changed") time to be visible before the popover closes or migrates to a new marker.
15
15
  *
16
16
  * @returns The markers that should be rendered — either the stale snapshot or the live `markersToRender`.
@@ -1,7 +1,6 @@
1
+ import type { MarkerId } from '../../../../../shared/markerId.types';
1
2
  import { LegendDataId, LegendId } from '../../../../types/legendType';
2
- import { MarkerId } from '../../utils/markerId.utils';
3
3
  import { ColorGroupedMarker } from '../../utils/splitMarkerByColor.types';
4
- export declare const POPOVER_UPDATE_DELAY_MS = 2000;
5
4
  /**
6
5
  * Hook to manage popover state and async content loading for legend markers.
7
6
  * When fetching, it will show a loading spinner if content takes too long to load.
@@ -1,6 +1,5 @@
1
- import { Brand } from '@equinor/echo-utils';
1
+ import type { MarkerId } from '../../../../shared/markerId.types';
2
2
  import { LegendId } from '../../../types/legendType';
3
- export type MarkerId = Brand<string, 'MarkerId'>;
4
3
  /**
5
4
  * Color key used when a marker is not in any selection group (fallback/transparent state).
6
5
  */
@@ -1,41 +1,24 @@
1
- import { FC } from 'react';
2
- import { Marker } from '../../types/legendMarkerBadge.type';
3
1
  import { LegendDataId, LegendId } from '../../types/legendType';
4
2
  export interface LegendPopoverContentProps {
5
3
  legendId: LegendId;
6
4
  legendDataId: LegendDataId;
7
- title: string | React.ReactNode;
8
- description: string;
9
- tertiary?: LegendPopoverTertiaryLabels | React.ReactNode;
10
5
  onPopoverClicked?: () => void;
11
6
  children?: React.ReactNode;
12
- excludedLegendTitles?: ReadonlyArray<string>;
7
+ excludedChipLegendTitles?: ReadonlyArray<string>;
13
8
  showAddToSelectionButton?: boolean;
14
- getMarkersForChipsCreation?: () => ReadonlyArray<Marker>;
15
9
  }
16
- export type LegendPopoverTertiaryLabels = {
17
- first: string;
18
- second?: string;
19
- third?: string;
20
- };
21
10
  /**
22
11
  * Renders the content for a legend popover, typically used as the content for the ItemMarkerPopover component.
23
- *
24
- * Uses `legendId` and `legendDataId` to look up and render relevant `LegendChip` components for the given legend item.
25
- * Displays a title, description, and optional tertiary content (either a structured object with up to three strings, or a custom ReactNode).
26
- * Additional custom content can be rendered via `children`.
27
- * Optionally, chips can be created from markers provided by the `getMarkersForChipsCreation` callback.
12
+ * The content includes dynamically generated chips based on the markers associated with the provided legendId and legendDataId.
13
+ * It is possible to exclude certain chips based on their legend titles using props. Chips with excluded titles will not be rendered in the popover.
14
+ * The component also includes an optional "Add to Selection" button that allows users to add the item to their global selection groups.
28
15
  *
29
16
  * @component
30
- * @param {object} props - Component props
31
17
  * @param {LegendId} props.legendId - The identifier used to look up legend strategy.
32
18
  * @param {LegendDataId} props.legendDataId - The identifier for retrieving the markers.
33
- * @param {string | React.ReactNode} props.title - The main title of the popover.
34
- * @param {string} props.description - The description or supporting text.
35
- * @param {LegendPopoverTertiaryLabels | React.ReactNode} [props.tertiary] - Optional tertiary content. If an object, displays up to three labeled strings; if a ReactNode, renders as-is.
36
- * @param {() => void} [props.onPopoverClicked] - Optional callback for popover click events.
37
- * @param {React.ReactNode} [props.children] - Optional custom content to render below the predefined main content.
38
- * @param {ReadonlyArray<string>} [props.excludedLegendTitles] - Optional array of titles to exclude from the legend chips.
39
- * @param {() => ReadonlyArray<Marker>} [props.getMarkersForChipsCreation] - Optional callback that returns the markers to be used for chip creation.
19
+ * @param {() => void} [props.onPopoverClicked] - Optional callback for popover content click events.
20
+ * @param {React.ReactNode} [props.children] - Optional custom content to render inside the popover content area, will be above chips.
21
+ * @param {ReadonlyArray<string>} [props.excludedChipLegendTitles] - Optional array of titles to exclude from the legend chips.
22
+ * @param {boolean} [props.showAddToSelectionButton] - Optional flag to show or hide the "Add to Selection" button.
40
23
  */
41
- export declare const LegendPopoverContent: FC<LegendPopoverContentProps>;
24
+ export declare const LegendPopoverContent: (props: LegendPopoverContentProps) => import("react/jsx-runtime").JSX.Element;
@@ -1,8 +1,7 @@
1
- import { LegendChipProps } from '@equinor/echo-components';
2
1
  import { LegendState } from '../../types/legendType';
3
2
  import { Marker } from './../../types/legendMarkerBadge.type';
4
3
  /**
5
- * Returns an array of visible LegendChipProps for the given markers and legend state.
4
+ * Returns an array of visible PopoverChip for the given markers and legend state.
6
5
  *
7
6
  * Filters out markers and badges that are hidden (using isHiddenMarker/isHiddenBadge) or whose titles match any value in the
8
7
  * excludedLegendTitles array (case-insensitive). Badge chips are only included if selectedMarkerOption !== selectedBadgeOption.
@@ -11,11 +10,18 @@ import { Marker } from './../../types/legendMarkerBadge.type';
11
10
  * @param {ReadonlyArray<Marker>} params.markers - The list of marker objects to process.
12
11
  * @param {LegendState} params.legend - The legend state, used for filtering and selection logic.
13
12
  * @param {ReadonlyArray<string>} [params.excludedLegendTitles] - Optional array of titles to exclude from the chips (case-insensitive).
14
- * @returns {LegendChipProps[]} The filtered and mapped array of LegendChipProps for rendering.
13
+ * @returns {PopoverChip[]} The filtered and mapped array of PopoverChip for rendering.
15
14
  */
16
- export declare function getLegendChipsFromMarkers({ markers, legendSelectedBadgeOption, legendSelectedMarkerOption, excludedLegendTitles }: {
15
+ interface GetPopoverChipsParams {
17
16
  markers: ReadonlyArray<Marker>;
18
- excludedLegendTitles?: ReadonlyArray<string>;
19
17
  legendSelectedBadgeOption?: LegendState['selectedBadgeOption'];
20
18
  legendSelectedMarkerOption?: LegendState['selectedMarkerOption'];
21
- }): LegendChipProps[];
19
+ excludedLegendTitles?: ReadonlyArray<string>;
20
+ }
21
+ interface PopoverChip {
22
+ text: string;
23
+ backgroundColor: string;
24
+ textColor: string;
25
+ }
26
+ export declare function getPopoverChips({ markers, legendSelectedBadgeOption, legendSelectedMarkerOption, excludedLegendTitles }: GetPopoverChipsParams): PopoverChip[];
27
+ export {};
@@ -1,9 +1,5 @@
1
1
  import { SelectionGroup } from '../../globalSelection/selectionMenu/selectionTreeStore/selectionTree.store.types';
2
2
  import { Marker } from '../types/legendMarkerBadge.type';
3
- /**
4
- * Checks if a marker has badges from multiple different item IDs.
5
- */
6
- export declare const hasBadgesFromMultipleItemIds: (marker: Marker) => boolean;
7
3
  /**
8
4
  * Gets all potential group keys a marker could generate.
9
5
  * Used for per-marker hidden state subscriptions.
@@ -18,4 +18,4 @@ export declare const useUniqueVisibleData: () => LegendDataId[];
18
18
  * Common logic for creating markers from data using strategy.
19
19
  * Selection-based grouping is handled at the viewport rendering level.
20
20
  */
21
- export declare const useCreateMarkers: (legendId: LegendId, data: LegendDataId[], isViewport?: boolean) => ReadonlyArray<Marker>;
21
+ export declare const useCreateMarkers: (legendId: LegendId, data: LegendDataId[]) => ReadonlyArray<Marker>;
@@ -4,6 +4,4 @@ import { LegendId } from '../types/legendType';
4
4
  * Returns all unique badges for the given legendId, determined by unique title + color.
5
5
  * This will also return markers that are not visible on screen.
6
6
  */
7
- export declare function useLegendUniqueBadges(legendId: LegendId, options?: {
8
- isViewport?: boolean;
9
- }): ReadonlyArray<Badge>;
7
+ export declare function useLegendUniqueBadges(legendId: LegendId): ReadonlyArray<Badge>;
@@ -4,6 +4,4 @@ import { LegendId } from '../types/legendType';
4
4
  * Returns all unique markers for the given legendId, determined by unique displayKey (title + color).
5
5
  * This will also return markers that are not visible on screen.
6
6
  */
7
- export declare function useLegendUniqueMarkers(legendId: LegendId, options?: {
8
- isViewport?: boolean;
9
- }): ReadonlyArray<Marker>;
7
+ export declare function useLegendUniqueMarkers(legendId: LegendId): ReadonlyArray<Marker>;
@@ -2,22 +2,25 @@ import './legendStrategies/notificationStrategy/notificationStrategy';
2
2
  import './legendStrategies/workOrderStrategy/WorkOrderLegend';
3
3
  export { getBadgeChips, getMarkerChips } from './components/basicLegendRenderer.logic';
4
4
  export { LegendList } from './components/LegendList';
5
- export { LegendTextSelector } from './components/legendTextSelector/LegendTextSelector';
5
+ export { LegendSelectorContainer } from './components/LegendSelectorContainer';
6
6
  export { PositionalItem } from './components/pdfMarkers/PositionalItem';
7
7
  export { MultipleMarkersByLegends } from './components/pdfMarkers/subComponents/MultipleMarkersByLegends';
8
8
  export { LegendPopoverContent } from './components/popover/LegendPopoverContent';
9
- export type { LegendPopoverContentProps, LegendPopoverTertiaryLabels } from './components/popover/LegendPopoverContent';
9
+ export type { LegendPopoverContentProps } from './components/popover/LegendPopoverContent';
10
10
  export { trackEventNewLegendAccordionToggled, trackEventNewLegendSelectedBadgeOptionChanged, trackEventNewLegendSelectedMarkerOptionChanged } from './legendAnalytics';
11
11
  export { legendFacade } from './legendFacade';
12
12
  export { getLegendStrategy } from './legendStrategies/legendCollections';
13
13
  export { legendSnapShot } from './stores/legendDataStore/legendStore';
14
14
  export type { Badge, Marker } from './types/legendMarkerBadge.type';
15
15
  export type { LegendStrategy } from './types/legendStrategy.type';
16
- export type { LegendId, LegendOptionConfig } from './types/legendType';
16
+ export type { LegendBadgeOptionConfig, LegendId, LegendMarkerOptionConfig, LegendOptionConfig, LegendOptionDisplayOption } from './types/legendType';
17
17
  export { useLegendUniqueBadges } from './hooks/useLegendUniqueBadges';
18
18
  export { useLegendUniqueMarkers } from './hooks/useLegendUniqueMarkers';
19
19
  export { useOpenWorkOrdersByTagNos } from './hooks/useWorkOrdersByTagNos';
20
20
  export { useWorkOrdersByTagsQuery } from './hooks/useWorkOrdersByTagsQuery';
21
- export { COUNT_MODE_KEYWORD } from './logic/normalizeBadges';
22
- export { useLegendVisibleDataStore } from './stores/legendVisibleDataStore/legendVisibleDataStore';
21
+ export { isCountMode, isIdMode, normalizeBadges } from './logic/normalizeBadges';
22
+ export { getColorForLegendStatus } from './logic/getColorForLegendStatus';
23
+ export { createArrayAccessor, createCountAccessor, createDateAccessor, createStringAccessor, getPropertyValues, toSingleTitle } from './logic/propertyAccessor.utils';
24
+ export type { PropertyAccessor } from './logic/propertyAccessor.utils';
23
25
  export { useLegendUIStore } from './stores/legendUIStore/legendUIStore';
26
+ export { useLegendVisibleDataStore } from './stores/legendVisibleDataStore/legendVisibleDataStore';
@@ -1,4 +1,4 @@
1
- import type { MarkerId } from './components/pdfMarkers/utils/markerId.utils';
1
+ import type { MarkerId } from '../shared/markerId.types';
2
2
  import type { LegendId, LegendState } from './types/legendType';
3
3
  export declare const LEGEND_OBJECT_NAME = "Legend";
4
4
  export declare function trackEventNewLegendSelectedMarkerOptionChanged(legendId: LegendId, legendState: LegendState): void;
@@ -126,6 +126,14 @@ export declare const legendFacade: Readonly<{
126
126
  type: string;
127
127
  value: string;
128
128
  }[];
129
+ coordinates: {
130
+ tagSeqNo: number;
131
+ xEasting: number;
132
+ yNorthing: number;
133
+ zElevation: number;
134
+ uom: string;
135
+ linePosition: number | undefined;
136
+ }[];
129
137
  tagNo: string;
130
138
  description: string;
131
139
  projectCode: string;
@@ -0,0 +1,8 @@
1
+ import type { NotificationDetails } from '@equinor/echo-search';
2
+ import type { LegendNotificationId } from '../../../types/legendType';
3
+ export declare const notificationDetailsQueryOptions: (notificationIds: ReadonlyArray<LegendNotificationId>) => {
4
+ queryKey: readonly ["notificationDetails", readonly LegendNotificationId[]];
5
+ queryFn: () => Promise<readonly NotificationDetails[]>;
6
+ staleTime: number;
7
+ gcTime: number;
8
+ };
@@ -0,0 +1,7 @@
1
+ import { NotificationDto } from '@equinor/echo-search';
2
+ export declare function createFunctionalLocationList(tagNos: ReadonlyArray<string>, plantNo: string): ReadonlyArray<string>;
3
+ export interface RequestTagsNotifications {
4
+ readonly tagNos: ReadonlyArray<string>;
5
+ readonly instCode: string;
6
+ }
7
+ export declare function getOpenNotificationsForTagsApi({ instCode, tagNos }: RequestTagsNotifications): Promise<ReadonlyArray<NotificationDto>>;
@@ -0,0 +1,8 @@
1
+ import type { NotificationItemCardData } from '@equinor/echo-components';
2
+ import { type LegendDataId } from '../../../types/legendType';
3
+ interface NotificationPopoverProps {
4
+ legendDataId: LegendDataId;
5
+ notification: NotificationItemCardData;
6
+ }
7
+ export declare const NotificationPopover: (props: NotificationPopoverProps) => import("react/jsx-runtime").JSX.Element;
8
+ export {};
@@ -0,0 +1,2 @@
1
+ import type { LegendDataId } from '../../../types/legendType';
2
+ export declare const useNotificationDetailsByIds: (itemIds: ReadonlyArray<LegendDataId>, isEnabled: boolean) => import("@tanstack/react-query").UseQueryResult<readonly import("@equinor/echo-search").NotificationDetails[], Error>;
@@ -0,0 +1,5 @@
1
+ export declare const useNotificationLegendData: () => {
2
+ isEnabled: boolean;
3
+ selectedMarkerOption: import("../../../types/legendType").LegendMarkerOptionConfig<string>;
4
+ selectedBadgeOption: import("../../../types/legendType").LegendBadgeOptionConfig<string>;
5
+ } | undefined;
@@ -0,0 +1,10 @@
1
+ import type { Marker } from '../../../types/legendMarkerBadge.type';
2
+ import { type LegendDataId } from '../../../types/legendType';
3
+ /**
4
+ * Creates notification markers from two sources:
5
+ * 1. Tag-based: fetches open notifications for selected tags
6
+ * 2. ID-based: fetches notification details by direct notification IDs
7
+ *
8
+ * Both sources are merged into a single marker array.
9
+ */
10
+ export declare const useNotificationMarkers: (itemIds: ReadonlyArray<LegendDataId>) => ReadonlyArray<Marker>;
@@ -0,0 +1,14 @@
1
+ import { TagNo, type NotificationDto } from '@equinor/echo-search';
2
+ import { type LegendTagId } from '../../../types/legendType';
3
+ export interface TagNotificationGroup {
4
+ readonly tagId: TagNo;
5
+ readonly notifications: ReadonlyArray<NotificationDto>;
6
+ }
7
+ interface UseOpenNotificationsByTagIdsResult {
8
+ readonly data: ReadonlyArray<TagNotificationGroup>;
9
+ readonly error: Error | undefined;
10
+ readonly isFetching: boolean;
11
+ }
12
+ export declare const useOpenNotificationsByTagIds: (tagIds: ReadonlyArray<LegendTagId>, enabled: boolean) => UseOpenNotificationsByTagIdsResult;
13
+ export declare const groupNotificationsByTagId: (notifications: ReadonlyArray<NotificationDto>) => ReadonlyArray<TagNotificationGroup>;
14
+ export {};