@equinor/echo-framework 6.2.2 → 6.2.4

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 (142) hide show
  1. package/index.cjs.js +2 -2
  2. package/package.json +7 -7
  3. package/src/index.d.ts +6 -1
  4. package/src/lib/components/appLauncherButton/AppLauncherButton.d.ts +1 -1
  5. package/src/lib/components/infoLabel/InfoLabel.d.ts +1 -1
  6. package/src/lib/components/notificationListItem/NotificationListItem.d.ts +1 -1
  7. package/src/lib/components/notificationListItem/components/NotificationListItemEndDateLabel.d.ts +1 -1
  8. package/src/lib/components/notificationListItem/components/NotificationListItemFailureImpactLabel.d.ts +1 -1
  9. package/src/lib/components/notificationListItem/components/NotificationListItemIcons.d.ts +1 -1
  10. package/src/lib/components/panel/panelNavigation.helper.d.ts +1 -1
  11. package/src/lib/components/prepview/common/additionalInformation/NotificationAdditionalDetails.d.ts +1 -1
  12. package/src/lib/components/prepview/common/details/accordion/DetailsAccordion.d.ts +1 -1
  13. package/src/lib/components/prepview/common/details/extendedBorder/ExtendedTabsBorder.d.ts +1 -1
  14. package/src/lib/components/prepview/common/details/loader/DetailsLoader.d.ts +1 -1
  15. package/src/lib/components/prepview/common/details/panel/EmptyDetailsPanel.d.ts +2 -1
  16. package/src/lib/components/prepview/common/error/ErrorCard.d.ts +1 -1
  17. package/src/lib/components/prepview/common/fileSizeDisplay/FileSizeDisplay.d.ts +2 -1
  18. package/src/lib/components/prepview/common/info/list/InfoBlockList.d.ts +2 -1
  19. package/src/lib/components/prepview/common/info/section/InfoSection.d.ts +1 -1
  20. package/src/lib/components/prepview/common/showMore/ShowMoreButton.d.ts +1 -1
  21. package/src/lib/components/prepview/common/statusLabel/StatusLabel.d.ts +1 -1
  22. package/src/lib/components/prepview/panels/attachments/AttachmentItem.d.ts +1 -1
  23. package/src/lib/components/prepview/panels/attachments/AttachmentTable.d.ts +1 -1
  24. package/src/lib/components/prepview/panels/attachments/Attachments.d.ts +1 -1
  25. package/src/lib/components/prepview/panels/objects/HorizontalObjects.d.ts +1 -1
  26. package/src/lib/components/prepview/panels/objects/Objects.d.ts +1 -1
  27. package/src/lib/components/prepview/panels/objects/VerticalObject.d.ts +1 -1
  28. package/src/lib/components/prepview/panels/operations/OperationItem.d.ts +1 -1
  29. package/src/lib/components/prepview/panels/operations/OperationTable.d.ts +1 -1
  30. package/src/lib/components/prepview/panels/operations/Operations.d.ts +1 -1
  31. package/src/lib/components/prepview/panels/risk/Risk.d.ts +1 -1
  32. package/src/lib/components/prepview/panels/risk/RiskItems.d.ts +1 -1
  33. package/src/lib/components/prepview/panels/risk/RiskTable.d.ts +1 -1
  34. package/src/lib/components/prepview/panels/risk/trafficLight/TrafficLight.d.ts +1 -1
  35. package/src/lib/components/prepview/panels/tagDocumentRefs/HorizontalDocumentGroups.d.ts +1 -1
  36. package/src/lib/components/prepview/panels/tagDocumentRefs/TagDocumentGroup.d.ts +2 -1
  37. package/src/lib/components/prepview/panels/tagDocumentRefs/TagDocumentItem.d.ts +1 -1
  38. package/src/lib/components/prepview/panels/tagDocumentRefs/TagDocumentRefs.d.ts +1 -1
  39. package/src/lib/components/prepview/panels/tagInformation/TagInformation.d.ts +1 -1
  40. package/src/lib/components/prepview/utils/index.d.ts +0 -1
  41. package/src/lib/components/spinner/tabSpinner.d.ts +1 -1
  42. package/src/lib/components/verticalTabsSplitView/VerticalTabsSplitView.d.ts +1 -1
  43. package/src/lib/components/workOrderListItem/WorkOrderListItem.d.ts +1 -1
  44. package/src/lib/components/workOrderListItem/components/ExtraIcons.d.ts +1 -1
  45. package/src/lib/coreApplication/EchoToolBar.d.ts +2 -2
  46. package/src/lib/feature/echoView/ReturnToExternalAppButton.d.ts +1 -1
  47. package/src/lib/feature/equipment/components/equipmentItemHeader/showEquipmentIn3dButton.d.ts +2 -1
  48. package/src/lib/feature/globalSelection/OpenGlobalSelectionIn3DButton.d.ts +1 -1
  49. package/src/lib/feature/globalSelection/components/selectionActionBar/SelectionActionBar.d.ts +1 -1
  50. package/src/lib/feature/globalSelection/components/selectionActionBar/SelectionActionBarMenuItem.d.ts +1 -1
  51. package/src/lib/feature/globalSelection/globalSelection.api.d.ts +35 -1
  52. package/src/lib/feature/globalSelection/globalSelectionHighlightService.d.ts +17 -0
  53. package/src/lib/feature/globalSelection/globalSelectionHighlightService.hooks.d.ts +17 -0
  54. package/src/lib/feature/globalSelection/globalSelectionHighlightService.types.d.ts +12 -0
  55. package/src/lib/feature/globalSelection/index.d.ts +2 -0
  56. package/src/lib/feature/legacyLegend/utils/legendUtils.d.ts +1 -0
  57. package/src/lib/feature/legend/components/LegendFeedbackMessage.d.ts +1 -1
  58. package/src/lib/feature/legend/components/LegendRendererWrapper.d.ts +1 -1
  59. package/src/lib/feature/legend/components/LegendSelectorContainer.d.ts +1 -1
  60. package/src/lib/feature/legend/components/NewLegendToggler.d.ts +1 -1
  61. package/src/lib/feature/legend/components/pdfMarkers/PositionalItem.d.ts +1 -1
  62. package/src/lib/feature/legend/components/pdfMarkers/subComponents/ItemMarkerPopoverContainer.d.ts +1 -1
  63. package/src/lib/feature/legend/components/pdfMarkers/subComponents/MarkerWithPopover.d.ts +1 -1
  64. package/src/lib/feature/legend/components/pdfMarkers/subComponents/MultipleMarkersByLegends.d.ts +1 -1
  65. package/src/lib/feature/legend/components/pdfMarkers/subComponents/components/MultipleMarkersBySingleLegend/MultipleMarkersBySingleLegend.d.ts +1 -1
  66. package/src/lib/feature/legend/components/pdfMarkers/subComponents/components/MultipleMarkersBySingleLegend/MultipleMarkersBySingleLegendContainer.d.ts +1 -1
  67. package/src/lib/feature/legend/components/popover/LegendPopoverContent.d.ts +1 -1
  68. package/src/lib/feature/legend/components/selectionLegend/SelectionLegend.d.ts +1 -1
  69. package/src/lib/feature/legend/components/selectionLegend/SelectionLegendChip.d.ts +5 -4
  70. package/src/lib/feature/legend/components/selectionLegend/components/SelectionLegendActions.d.ts +1 -1
  71. package/src/lib/feature/legend/components/selectionLegend/components/SelectionLegendOtherMarkers.d.ts +1 -1
  72. package/src/lib/feature/legend/components/selectionLegend/selectionLegend.utils.d.ts +7 -1
  73. package/src/lib/feature/legend/hooks/useLegendMarkers/useLegendMarkers.logic.d.ts +2 -1
  74. package/src/lib/feature/legend/hooks/useOpenWorkOrdersByTagNos.d.ts +13 -0
  75. package/src/lib/feature/legend/hooks/useOpenWorkOrdersByTagsQuery.d.ts +2 -0
  76. package/src/lib/feature/legend/hooks/useOpenWorkOrdersWithWorkPermits.d.ts +15 -0
  77. package/src/lib/feature/legend/hooks/workOrdersByTagNos.logic.d.ts +21 -0
  78. package/src/lib/feature/legend/hooks/workOrdersWithWorkPermits.logic.d.ts +12 -0
  79. package/src/lib/feature/legend/index.d.ts +2 -3
  80. package/src/lib/feature/legend/legendStrategies/iocAnnotationStrategy/hooks/useIocAnnotationMarkers.utils.d.ts +8 -10
  81. package/src/lib/feature/legend/legendStrategies/iocAnnotationStrategy/iocAnnotationStrategy.types.d.ts +14 -4
  82. package/src/lib/feature/legend/legendStrategies/iocAnnotationStrategy/utils/getColorForIocAnnotationLegendStatus.d.ts +2 -0
  83. package/src/lib/feature/legend/legendStrategies/iocAnnotationStrategy/utils/getIocAnnotationBadgesByPropertyName.d.ts +7 -0
  84. package/src/lib/feature/legend/legendStrategies/iocAnnotationStrategy/utils/getLegendStatusForIocAnnotationLegend.d.ts +1 -0
  85. package/src/lib/feature/legend/legendStrategies/iocAnnotationStrategy/utils/getNotificationTypeColor.d.ts +8 -0
  86. package/src/lib/feature/legend/legendStrategies/iocAnnotationStrategy/utils/notificationType.utils.d.ts +3 -0
  87. package/src/lib/feature/legend/legendStrategies/notificationStrategy/components/NotificationPopover.d.ts +1 -1
  88. package/src/lib/feature/legend/legendStrategies/notificationStrategy/utils/notificationLegend.utils.d.ts +1 -5
  89. package/src/lib/feature/legend/legendStrategies/workOrderStrategy/api/fetchWorkOrdersByLegendIdType.d.ts +7 -0
  90. package/src/lib/feature/legend/legendStrategies/workOrderStrategy/components/WorkOrderPopoverContent.d.ts +2 -2
  91. package/src/lib/feature/legend/legendStrategies/workOrderStrategy/hooks/useCreateWorkOrderMarkers.d.ts +13 -0
  92. package/src/lib/feature/legend/legendStrategies/workOrderStrategy/logic/getColorForStatus.d.ts +2 -0
  93. package/src/lib/feature/legend/legendStrategies/workOrderStrategy/logic/getStatusColorForWorkPermit.d.ts +1 -0
  94. package/src/lib/feature/legend/legendStrategies/workOrderStrategy/workOrder.types.d.ts +24 -0
  95. package/src/lib/feature/legend/legendStrategies/workOrderStrategy/workOrder.utils.d.ts +10 -10
  96. package/src/lib/feature/legend/legendStrategies/workOrderStrategy/workOrderLegendStrategy.constants.d.ts +6 -0
  97. package/src/lib/feature/legend/logic/getColorForLegendStatus.d.ts +2 -1
  98. package/src/lib/feature/legend/logic/getEndDateStatusText.logic.d.ts +5 -0
  99. package/src/lib/feature/legend/logic/getRequiredEndDateTimeColor.logic.d.ts +2 -0
  100. package/src/lib/feature/legend/logic/legendChips.logic.d.ts +2 -1
  101. package/src/lib/feature/legend/logic/legendDataId.utils.d.ts +3 -3
  102. package/src/lib/feature/legend/types/legendMarkerBadge.type.d.ts +4 -3
  103. package/src/lib/feature/legend/types/legendType.d.ts +8 -2
  104. package/src/lib/feature/legend/types/legendWorkPermits.type.d.ts +12 -0
  105. package/src/lib/feature/measuringPoint/FullMeasuringPointItem.d.ts +1 -1
  106. package/src/lib/feature/measuringPoint/components/measuringPointDetails/labelledImageList.d.ts +1 -1
  107. package/src/lib/feature/measuringPoint/components/measuringPointDetails/lastReportedFields.d.ts +1 -1
  108. package/src/lib/feature/measuringPoint/components/measuringPointDetails/measuringPointDetails.d.ts +1 -1
  109. package/src/lib/feature/measuringPoint/components/measuringPointDetails/measuringPointImageList.d.ts +1 -1
  110. package/src/lib/feature/measuringPoint/components/measuringPointHeader/measuringPointHeader.d.ts +1 -1
  111. package/src/lib/feature/openItemsIn3d/openItemsIn3dDialog.d.ts +1 -1
  112. package/src/lib/feature/workOrder/components/PanelTagInfo/PanelTagInfo.d.ts +1 -1
  113. package/src/lib/feature/workOrder/components/WorkOrderItemDetails.d.ts +1 -1
  114. package/src/lib/feature/workOrder/components/WorkOrderItemHeader.d.ts +1 -1
  115. package/src/lib/feature/workOrder/components/WorkOrderItemTabInfo/WorkOrderItemTabInfo.d.ts +1 -1
  116. package/src/lib/feature/workOrder/components/WorkOrderPanelObjects/WorkOrderPanelObjects.d.ts +1 -1
  117. package/src/lib/feature/workOrder/components/WorkOrderPanelObjects/components/WorkOrderObjectItem.d.ts +1 -1
  118. package/src/lib/feature/workOrder/components/WorkOrderPanelOperations/WorkOrderPanelOperations.d.ts +1 -1
  119. package/src/lib/feature/workOrder/components/WorkOrderPanelOperations/components/WorkOrderOperationItem.d.ts +1 -1
  120. package/src/lib/feature/workOrder/components/WorkOrderPanelOperations/components/WorkOrderOperationItemHeader.d.ts +1 -1
  121. package/src/lib/feature/workOrder/components/WorkOrderPanelSafeX/WorkOrderPanelSafeX.d.ts +1 -1
  122. package/src/lib/feature/workOrder/components/WorkOrderPanelSafeX/components/SSUListItem/SSUListItem.d.ts +1 -1
  123. package/src/lib/feature/workOrder/components/WorkOrderPanelSafeX/components/SSUListItem/SSUListItemMarker.d.ts +1 -1
  124. package/src/lib/feature/workPermit/hooks/useWorkPermitStatuses.d.ts +11 -0
  125. package/src/lib/feature/workPermit/logic/workPermit.d.ts +8 -0
  126. package/src/lib/services/api/api-open-work-orders-by-tag-nos.d.ts +14 -0
  127. package/src/lib/services/api/api-workPermits.d.ts +8 -0
  128. package/src/lib/services/api/index.d.ts +1 -0
  129. package/src/lib/services/api/workPermits.types.d.ts +27 -0
  130. package/src/lib/services/cache/cacheTypes.d.ts +3 -0
  131. package/src/lib/services/cache/taskCache.d.ts +24 -0
  132. package/src/lib/services/cache/taskCacheRunner.d.ts +10 -0
  133. package/src/lib/types/grid/bucketSideDrawer.types.d.ts +2 -2
  134. package/src/lib/utils/index.d.ts +0 -1
  135. package/src/lib/components/prepview/utils/date.d.ts +0 -5
  136. package/src/lib/feature/legend/hooks/useWorkOrdersByTagNos.d.ts +0 -11
  137. package/src/lib/feature/legend/hooks/useWorkOrdersByTagsQuery.d.ts +0 -15
  138. package/src/lib/feature/legend/legendStrategies/workOrderStrategy/useCreateWorkOrderMarkers.d.ts +0 -20
  139. package/src/lib/feature/legend/legendStrategies/workOrderStrategy/workOrderPopover.types.d.ts +0 -15
  140. package/src/lib/services/api/api-work-orders-by-tag-nos.d.ts +0 -15
  141. package/src/lib/utils/formatTimeHelpers.d.ts +0 -1
  142. /package/src/lib/feature/globalSelection/panToEcho3d/{panTo3DButton.d.ts → PanTo3DButton.d.ts} +0 -0
@@ -10,5 +10,5 @@ interface PositionalItemProps {
10
10
  /**
11
11
  * An item that can be positioned anywhere in the absolute container.
12
12
  */
13
- export declare const PositionalItem: React.MemoExoticComponent<(props: PositionalItemProps) => import("react/jsx-runtime").JSX.Element>;
13
+ export declare const PositionalItem: React.MemoExoticComponent<(props: PositionalItemProps) => React.JSX.Element>;
14
14
  export {};
@@ -5,5 +5,5 @@ interface ItemMarkerPopoverContainerProps {
5
5
  isPopoverActive: boolean;
6
6
  handleClose: () => void;
7
7
  }
8
- export declare const ItemMarkerPopoverContainer: ({ legendId, elements, isPopoverActive, handleClose }: ItemMarkerPopoverContainerProps) => import("react/jsx-runtime").JSX.Element | null;
8
+ export declare const ItemMarkerPopoverContainer: ({ legendId, elements, isPopoverActive, handleClose }: ItemMarkerPopoverContainerProps) => import("react").JSX.Element | null;
9
9
  export {};
@@ -8,5 +8,5 @@ interface MarkerWithPopoverProps {
8
8
  readonly itemId: LegendDataId;
9
9
  readonly markerId: MarkerId;
10
10
  }
11
- export declare const MarkerWithPopover: (props: MarkerWithPopoverProps) => import("react/jsx-runtime").JSX.Element;
11
+ export declare const MarkerWithPopover: (props: MarkerWithPopoverProps) => import("react").JSX.Element;
12
12
  export {};
@@ -4,5 +4,5 @@ interface MultipleMarkersByLegendsProps {
4
4
  hasPointer: boolean;
5
5
  positionId: string;
6
6
  }
7
- export declare const MultipleMarkersByLegends: import("react").MemoExoticComponent<(props: MultipleMarkersByLegendsProps) => import("react/jsx-runtime").JSX.Element>;
7
+ export declare const MultipleMarkersByLegends: import("react").MemoExoticComponent<(props: MultipleMarkersByLegendsProps) => import("react").JSX.Element>;
8
8
  export {};
@@ -5,4 +5,4 @@ export interface MultipleMarkersBySingleLegendComponentProps {
5
5
  hasPointer: boolean;
6
6
  positionId: string;
7
7
  }
8
- export declare const MultipleMarkersBySingleLegend: import("react").MemoExoticComponent<(props: MultipleMarkersBySingleLegendComponentProps) => import("react/jsx-runtime").JSX.Element[] | null>;
8
+ export declare const MultipleMarkersBySingleLegend: import("react").MemoExoticComponent<(props: MultipleMarkersBySingleLegendComponentProps) => import("react").JSX.Element[] | null>;
@@ -1,4 +1,4 @@
1
1
  import { MultipleMarkersBySingleLegendComponentProps } from './MultipleMarkersBySingleLegend';
2
2
  type MultipleMarkersBySingleLegendContainerProps = MultipleMarkersBySingleLegendComponentProps;
3
- export declare const MultipleMarkersBySingleLegendContainer: import("react").MemoExoticComponent<(props: MultipleMarkersBySingleLegendContainerProps) => import("react/jsx-runtime").JSX.Element | null>;
3
+ export declare const MultipleMarkersBySingleLegendContainer: import("react").MemoExoticComponent<(props: MultipleMarkersBySingleLegendContainerProps) => import("react").JSX.Element | null>;
4
4
  export {};
@@ -21,4 +21,4 @@ export interface LegendPopoverContentProps {
21
21
  * @param {ReadonlyArray<string>} [props.excludedChipLegendTitles] - Optional array of titles to exclude from the legend chips.
22
22
  * @param {boolean} [props.showAddToSelectionButton] - Optional flag to show or hide the "Add to Selection" button.
23
23
  */
24
- export declare const LegendPopoverContent: (props: LegendPopoverContentProps) => import("react/jsx-runtime").JSX.Element;
24
+ export declare const LegendPopoverContent: (props: LegendPopoverContentProps) => import("react").JSX.Element;
@@ -1 +1 @@
1
- export declare const SelectionLegendRenderer: import("react").MemoExoticComponent<() => import("react/jsx-runtime").JSX.Element | null>;
1
+ export declare const SelectionLegendRenderer: import("react").MemoExoticComponent<() => import("react").JSX.Element | null>;
@@ -1,7 +1,8 @@
1
1
  interface LegendItemProps {
2
- label: string;
3
- onClick: (isDisabled: boolean) => void;
4
- colors: string[];
2
+ readonly label: string;
3
+ readonly onClick: (isActive: boolean) => void;
4
+ readonly colors: ReadonlyArray<string>;
5
+ readonly isActive: boolean;
5
6
  }
6
- export declare const SelectionLegendChip: import("react").MemoExoticComponent<(props: LegendItemProps) => import("react/jsx-runtime").JSX.Element>;
7
+ export declare const SelectionLegendChip: import("react").MemoExoticComponent<(props: LegendItemProps) => import("react").JSX.Element>;
7
8
  export {};
@@ -2,4 +2,4 @@
2
2
  * SelectionLegendActions renders the action buttons for the Selection Legend.
3
3
  * It provides options to toggle the visibility of highlights around selection group markers.
4
4
  */
5
- export declare const SelectionLegendActions: () => import("react/jsx-runtime").JSX.Element;
5
+ export declare const SelectionLegendActions: () => import("react").JSX.Element;
@@ -1,4 +1,4 @@
1
1
  /**
2
2
  * Allows the user to select how to display markers that are not in any selection group.
3
3
  */
4
- export declare const SelectionLegendOtherMarkers: () => import("react/jsx-runtime").JSX.Element;
4
+ export declare const SelectionLegendOtherMarkers: () => import("react").JSX.Element;
@@ -1,6 +1,6 @@
1
1
  import { Guid } from '@equinor/echo-utils';
2
2
  import { GlobalSelectionItemType } from '../../../globalSelection';
3
- import type { LegendSelectionGroupKey } from '../../stores/legendUIStore/legendUIStore.types';
3
+ import type { LegendSelectionGroupKey, ToggleableLegend } from '../../stores/legendUIStore/legendUIStore.types';
4
4
  import { CombinedMarker } from '../../types/legendMarkerBadge.type';
5
5
  /**
6
6
  * Key used for markers that don't belong to any selection group
@@ -27,6 +27,12 @@ export declare const shouldSplitGroupsByItemType: (groupId: Guid) => boolean;
27
27
  * @returns The standardized group key
28
28
  */
29
29
  export declare const createSelectionGroupKey: (groupId: Guid, color: string, itemType?: GlobalSelectionItemType) => LegendSelectionGroupKey;
30
+ export declare const isSelectionGroupDisabled: (hiddenSelectionGroupKeys: ReadonlySet<string>, groupId: Guid, colors: ReadonlyArray<string>, itemType?: GlobalSelectionItemType) => boolean;
31
+ /**
32
+ * Type guard for selection-group-related hidden keys.
33
+ * This centralizes key format knowledge in one place.
34
+ */
35
+ export declare const isSelectionGroupKey: (toggleableLegend: ToggleableLegend) => toggleableLegend is LegendSelectionGroupKey;
30
36
  /**
31
37
  * Checks if a marker is outside any selection group.
32
38
  * A marker is outside selection if its highlight color is 'transparent'.
@@ -36,6 +36,7 @@ export declare const processRawBadges: (rawMarker: RawMarkerData, markerColor: s
36
36
  export declare const collectGroupKeys: (markers: ReadonlyArray<ProcessedMarker>) => ReadonlyArray<LegendSelectionGroupKey>;
37
37
  /**
38
38
  * Filters out markers whose selection group is hidden.
39
+ * A marker is only hidden when ALL of its selection groups are toggled off.
39
40
  */
40
41
  export declare const filterHiddenGroups: (markers: ReadonlyArray<ProcessedMarker>, hiddenGroups: ReadonlyArray<ToggleableLegend>) => ReadonlyArray<ProcessedMarker>;
41
42
  /**
@@ -55,7 +56,7 @@ export declare const collectSelectionItemIdStrings: (rawMarkers: ReadonlyArray<R
55
56
  export declare const processRawMarkers: (rawMarkers: ReadonlyArray<RawMarkerData>, selectedBadgeOption?: LegendBadgeOptionConfig) => ReadonlyArray<ProcessedMarker>;
56
57
  interface SelectionInfo {
57
58
  readonly highlightColor: string;
58
- readonly groupKey: LegendSelectionGroupKey;
59
+ readonly groupKeys: ReadonlyArray<LegendSelectionGroupKey>;
59
60
  }
60
61
  /**
61
62
  * Gets the selection info (highlight color and group key) for an item from global selection.
@@ -0,0 +1,13 @@
1
+ import type { TagNoWithOpenWorkOrders } from '../legendStrategies/workOrderStrategy/workOrder.types';
2
+ import { TagNo } from '@equinor/echo-search';
3
+ /**
4
+ * Fetches open work orders for the given tags and filters them by data-layer visibility settings.
5
+ *
6
+ * @param items - Tag items to fetch open work orders for.
7
+ * @returns Object containing `tagNosWithOpenWorkOrders` grouped by tag number.
8
+ */
9
+ export declare function useOpenWorkOrdersByTagNos(items: ReadonlyArray<{
10
+ tagNo: TagNo;
11
+ }>): {
12
+ tagNosWithOpenWorkOrders: readonly TagNoWithOpenWorkOrders[];
13
+ };
@@ -0,0 +1,2 @@
1
+ import { TagNo, WorkOrderDto } from '@equinor/echo-search';
2
+ export declare function useOpenWorkOrdersByTagsQuery(tagNos: ReadonlyArray<TagNo>): import("@tanstack/react-query").UseQueryResult<NoInfer<readonly WorkOrderDto[]>, Error>;
@@ -0,0 +1,15 @@
1
+ import { TagNoWithWorkOrdersWithPermits } from '../types/legendWorkPermits.type';
2
+ import { TagNo } from '@equinor/echo-search';
3
+ /**
4
+ * Wraps {@link useOpenWorkOrdersByTagNos} and augments every work order with the
5
+ * matching `workPermitStatuses` from the plant-wide work-permit map.
6
+ *
7
+ * This keeps the work-order strategy/legend pipeline fully synchronous: the
8
+ * async work-permit fetch is contained in a single hook here, and downstream
9
+ * consumers only see synchronous data.
10
+ */
11
+ export declare function useOpenWorkOrdersWithWorkPermits(items: ReadonlyArray<{
12
+ tagNo: TagNo;
13
+ }>): {
14
+ tagNosWithWorkOrders: readonly TagNoWithWorkOrdersWithPermits[];
15
+ };
@@ -0,0 +1,21 @@
1
+ import { TagNo, WorkOrderDto } from '@equinor/echo-search';
2
+ import { GlobalSelectionTypes } from '../../globalSelection';
3
+ import type { TagNoWithOpenWorkOrders } from '../legendStrategies/workOrderStrategy/workOrder.types';
4
+ interface GetVisibleTagNosWithWorkOrdersParams {
5
+ readonly items: ReadonlyArray<{
6
+ readonly tagNo: TagNo;
7
+ }>;
8
+ readonly workOrders: ReadonlyArray<WorkOrderDto>;
9
+ readonly isWorkOrdersFromDocumentVisible: boolean;
10
+ readonly isWorkOrdersFromSelectionVisible: boolean;
11
+ readonly selectedWorkOrders: ReadonlyMap<GlobalSelectionTypes.ItemIdString, unknown>;
12
+ }
13
+ /**
14
+ * Groups work orders by tag and filters them according to the data-layer visibility settings.
15
+ *
16
+ * - When work orders from documents are visible, all matched work orders are kept.
17
+ * - Otherwise, when work orders from selection are visible, only globally selected work orders are kept.
18
+ * - When neither is visible, nothing is returned.
19
+ */
20
+ export declare function getVisibleTagNosWithWorkOrders({ items, workOrders, isWorkOrdersFromDocumentVisible, isWorkOrdersFromSelectionVisible, selectedWorkOrders }: GetVisibleTagNosWithWorkOrdersParams): ReadonlyArray<TagNoWithOpenWorkOrders>;
21
+ export {};
@@ -0,0 +1,12 @@
1
+ import { WorkOrderDto } from '@equinor/echo-search';
2
+ import { WorkOrderWithWorkPermits } from '../types/legendWorkPermits.type';
3
+ /**
4
+ * Derives the tag number from a SAP functional location ID by stripping the 5-char plant prefix.
5
+ * Returns empty string when the input is undefined or empty.
6
+ */
7
+ export declare function functionalLocationIdToTagNo(functionalLocationId: string | undefined): string;
8
+ /**
9
+ * Augments a work order with the matching work-permit statuses looked up by tag number.
10
+ * Returns a new object — does not mutate the input.
11
+ */
12
+ export declare function augmentWorkOrder(workOrder: WorkOrderDto, workPermitsByTagNo: Readonly<Record<string, ReadonlyArray<string>>> | undefined): WorkOrderWithWorkPermits;
@@ -10,15 +10,14 @@ export type { LegendPopoverContentProps } from './components/popover/LegendPopov
10
10
  export { trackEventNewLegendAccordionToggled, trackEventNewLegendSelectedBadgeOptionChanged, trackEventNewLegendSelectedMarkerOptionChanged } from './legendAnalytics';
11
11
  export { legendFacade } from './legendFacade';
12
12
  export { convertIocAnnotationStateToLegendStatus, getPrioritizedIocAnnotationLegendStatus } from './legendStrategies/iocAnnotationStrategy/hooks/useIocAnnotationMarkers.utils';
13
- export type { IocAnnotationState } from './legendStrategies/iocAnnotationStrategy/iocAnnotationStrategy.types';
13
+ export { IocAnnotationLegendStatus } from './legendStrategies/iocAnnotationStrategy/iocAnnotationStrategy.types';
14
14
  export { getLegendStrategy } from './legendStrategies/legendCollections';
15
15
  export { legendSnapShot } from './stores/legendDataStore/legendStore';
16
16
  export type { Badge, CombinedMarker, LegendChipData, RawItemAppearance, RawMarkerData } from './types/legendMarkerBadge.type';
17
17
  export type { LegendStrategy } from './types/legendStrategy.type';
18
18
  export type { LegendBadgeColorMode, LegendBadgeOptionConfig, LegendId, LegendMarkerOptionConfig, LegendOptionConfig, LegendOptionDisplayOption } from './types/legendType';
19
19
  export { useLegendMarkerChips } from './hooks/useLegendMarkerChips';
20
- export { useOpenWorkOrdersByTagNos } from './hooks/useWorkOrdersByTagNos';
21
- export { useWorkOrdersByTagsQuery } from './hooks/useWorkOrdersByTagsQuery';
20
+ export { useOpenWorkOrdersByTagNos } from './hooks/useOpenWorkOrdersByTagNos';
22
21
  export { isCountMode, isIdMode, normalizeBadges } from './logic/normalizeBadges';
23
22
  export { getColorForLegendStatus } from './logic/getColorForLegendStatus';
24
23
  export { createArrayAccessor, createDateAccessor, createStringAccessor, getPropertyValues } from './logic/propertyAccessor.utils';
@@ -1,13 +1,11 @@
1
1
  import type { RawItemAppearance, RawMarkerData } from '../../../types/legendMarkerBadge.type';
2
- import type { IocAnnotationDto, IocAnnotationFunctionalLocationLookup, IocAnnotationMarkerData, IocAnnotationMarkerDataByTagKey, IocAnnotationState, IocAnnotationTagKey, IocAnnotationTagLookup } from '../iocAnnotationStrategy.types';
2
+ import type { LegendBadgeOptionConfig, LegendMarkerOptionConfig } from '../../../types/legendType';
3
+ import { IocAnnotationDto, IocAnnotationFunctionalLocationLookup, IocAnnotationLegendStatus, IocAnnotationMarkerData, IocAnnotationMarkerDataByTagKey, IocAnnotationTagKey, IocAnnotationTagLookup } from '../iocAnnotationStrategy.types';
3
4
  /**
4
- * Maps an IOC annotation state code (e.g. `ow`, `ip`, `er`) to its corresponding
5
- * `LegendStatus`. Single source of truth for the conversion — re-exported via
6
- * `@equinor/echo-framework` so legacy code paths in echopedia-web can consume
7
- * the same mapping while the new legend rolls out behind a feature flag.
5
+ * Maps an IOC annotation state code (e.g. `ow`, `ip`, `er`) to its corresponding `IocAnnotationState`.
8
6
  */
9
- export declare function convertIocAnnotationStateToLegendStatus(state: string): IocAnnotationState;
10
- export declare function getPrioritizedIocAnnotationLegendStatus(iocAnnotationStates: ReadonlyArray<string>): IocAnnotationState;
7
+ export declare function convertIocAnnotationStateToLegendStatus(state: string): IocAnnotationLegendStatus;
8
+ export declare function getPrioritizedIocAnnotationLegendStatus(iocAnnotationStates: ReadonlyArray<string>): IocAnnotationLegendStatus;
11
9
  export declare function createIocAnnotationTagKey(tagLookup: IocAnnotationTagLookup): IocAnnotationTagKey;
12
10
  export declare function getUniqueSortedIocAnnotationTagLookups(tagLookups: ReadonlyArray<IocAnnotationTagLookup>): ReadonlyArray<IocAnnotationTagLookup>;
13
11
  export declare function createIocAnnotationTagLookupQueryKey(sortedTagLookups: ReadonlyArray<IocAnnotationTagLookup>): ReadonlyArray<IocAnnotationTagKey>;
@@ -16,6 +14,6 @@ export declare function buildIocAnnotationMarkerDataByTagKey({ iocAnnotations, f
16
14
  readonly iocAnnotations: ReadonlyArray<IocAnnotationDto>;
17
15
  readonly functionalLocationLookups: ReadonlyArray<IocAnnotationFunctionalLocationLookup>;
18
16
  }): IocAnnotationMarkerDataByTagKey;
19
- export declare function createIocAnnotationMarkers(markerData: IocAnnotationMarkerData): ReadonlyArray<RawMarkerData>;
20
- export declare const getIOCMarkerAppearances: (iocAnnotation: IocAnnotationDto) => ReadonlyArray<RawItemAppearance>;
21
- export declare const getIOCBadgeAppearances: (iocAnnotation: IocAnnotationDto) => ReadonlyArray<RawItemAppearance>;
17
+ export declare function createIocAnnotationMarkers(markerData: IocAnnotationMarkerData, selectedMarkerOption: LegendMarkerOptionConfig, selectedBadgeOption: LegendBadgeOptionConfig): ReadonlyArray<RawMarkerData>;
18
+ export declare const getIOCMarkerAppearances: (iocAnnotation: IocAnnotationDto, selectedMarkerOption: LegendMarkerOptionConfig) => ReadonlyArray<RawItemAppearance>;
19
+ export declare const getIOCBadgeAppearances: (iocAnnotation: IocAnnotationDto, selectedBadgeOption: LegendBadgeOptionConfig) => ReadonlyArray<RawItemAppearance>;
@@ -1,5 +1,4 @@
1
1
  import type { IocAnnotationData } from '@equinor/echo-search';
2
- import { LegendStatus } from '../../../legacyLegend/legend';
3
2
  import { type LegendId } from '../../types/legendType';
4
3
  export declare const iocAnnotationLegendId: LegendId;
5
4
  export type IocAnnotationDto = IocAnnotationData;
@@ -8,7 +7,8 @@ export type TagNo = string;
8
7
  export type FunctionalLocation = string;
9
8
  export type IocAnnotationTagKey = string;
10
9
  export type IocAnnotationMarkerOptions = 'status';
11
- export type IocAnnotationBadgeOptions = 'count';
10
+ type BadgeKeysFromIocAnnotationLegendData = Pick<IocAnnotationData, 'id'>;
11
+ export type IocAnnotationBadgeOptions = keyof BadgeKeysFromIocAnnotationLegendData | 'count' | 'notificationType';
12
12
  export interface IocAnnotationTagLookup {
13
13
  readonly tagNo: TagNo;
14
14
  readonly instCode: InstCode;
@@ -16,10 +16,20 @@ export interface IocAnnotationTagLookup {
16
16
  export interface IocAnnotationFunctionalLocationLookup extends IocAnnotationTagLookup {
17
17
  readonly functionalLocation: FunctionalLocation;
18
18
  }
19
- export type IocAnnotationState = LegendStatus.OnWatch | LegendStatus.InProgress | LegendStatus.IocAnnotationError | LegendStatus.Note | LegendStatus.Archived | LegendStatus.Unknown;
19
+ export declare const IocAnnotationLegendStatus: {
20
+ readonly OnWatch: "On watch";
21
+ readonly InProgress: "In progress";
22
+ readonly Error: "Error";
23
+ readonly Note: "Note";
24
+ readonly Archived: "Archived";
25
+ readonly Unknown: "Unknown";
26
+ readonly Multiple: "Multiple";
27
+ };
28
+ export type IocAnnotationLegendStatus = (typeof IocAnnotationLegendStatus)[keyof typeof IocAnnotationLegendStatus];
20
29
  export interface IocAnnotationMarkerData {
21
- readonly status: IocAnnotationState;
30
+ readonly status: IocAnnotationLegendStatus;
22
31
  readonly tagNo: TagNo;
23
32
  readonly iocAnnotations: ReadonlyArray<IocAnnotationDto>;
24
33
  }
25
34
  export type IocAnnotationMarkerDataByTagKey = ReadonlyMap<IocAnnotationTagKey, IocAnnotationMarkerData>;
35
+ export {};
@@ -0,0 +1,2 @@
1
+ import type { LegendOptionConfig } from '../../../types/legendType';
2
+ export declare const getColorForIocAnnotationLegendStatus: (title: string, selectedProperty: LegendOptionConfig) => string;
@@ -0,0 +1,7 @@
1
+ import type { LegendDataId } from '../../../types/legendType';
2
+ import type { IocAnnotationDto } from '../iocAnnotationStrategy.types';
3
+ export type IocAnnotationBadge = {
4
+ readonly title: string;
5
+ readonly itemId: LegendDataId | undefined;
6
+ };
7
+ export declare function getIocAnnotationBadgesByPropertyName(propertyName: string, iocAnnotation: IocAnnotationDto): ReadonlyArray<IocAnnotationBadge>;
@@ -0,0 +1 @@
1
+ export declare function getStatusColorForIocAnnotation(iocAnnotationStatus: string): string;
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Resolves the color for a given notification type.
3
+ * Falls back to the default color if the notification type is not recognized.
4
+ *
5
+ * @param notificationType - The notification type identifier (M1-M9)
6
+ * @returns The color string (hex code or CSS variable) for the notification type
7
+ */
8
+ export declare function getColorForNotificationType(notificationType: string): string;
@@ -0,0 +1,3 @@
1
+ import { NotificationTypes } from '../../../../../types/notificationTypes';
2
+ export declare function isNotificationType(value: string): value is NotificationTypes;
3
+ export declare function normalizeNotificationType(notificationType: string): NotificationTypes | undefined;
@@ -4,5 +4,5 @@ interface NotificationPopoverProps {
4
4
  legendDataId: LegendDataId;
5
5
  notification: NotificationItemCardData;
6
6
  }
7
- export declare const NotificationPopover: (props: NotificationPopoverProps) => import("react/jsx-runtime").JSX.Element;
7
+ export declare const NotificationPopover: (props: NotificationPopoverProps) => import("react").JSX.Element;
8
8
  export {};
@@ -1,5 +1,5 @@
1
1
  import { type LegendDataId, type LegendNotificationId } from '../../../types/legendType';
2
- import type { EndDateStatusText, NotificationLegendData } from '../notificationStrategy.types';
2
+ import type { NotificationLegendData } from '../notificationStrategy.types';
3
3
  /**
4
4
  * Type guard for notification legend data IDs.
5
5
  * Notification is not a selection-based legend, so the dataId is not directly tied to global selection item IDs.
@@ -9,7 +9,3 @@ export declare const isNotificationDataId: (dataId: LegendDataId) => dataId is L
9
9
  * Determines the appropriate icon name for a marker based on the record type
10
10
  */
11
11
  export declare const getIconForMarker: (notification: NotificationLegendData) => string;
12
- /**
13
- * Returns user-friendly end date status text based on the required end date of a notification.
14
- */
15
- export declare function getEndDateStatusText(date: Date | undefined): EndDateStatusText;
@@ -0,0 +1,7 @@
1
+ import { PopoverProps, WorkOrderPopover } from '../workOrder.types';
2
+ /**
3
+ * Fetches work orders for a given legend data ID and filters them by the provided item IDs.
4
+ * Only supports tag-based lookups; returns undefined for non-tag legend data IDs
5
+ * or when no matching work orders are found.
6
+ */
7
+ export declare function fetchWorkOrdersByLegendIdType({ legendDataId, itemIds }: PopoverProps): Promise<WorkOrderPopover[] | undefined>;
@@ -1,4 +1,4 @@
1
- import { WorkOrderPopover } from '../workOrderPopover.types';
1
+ import { WorkOrderPopover } from '../workOrder.types';
2
2
  /**
3
3
  * Renders the popover content for a single work order entry in the legend UI.
4
4
  *
@@ -13,4 +13,4 @@ import { WorkOrderPopover } from '../workOrderPopover.types';
13
13
  */
14
14
  export declare const WorkOrderPopoverContent: ({ wo }: {
15
15
  wo: WorkOrderPopover;
16
- }) => import("react/jsx-runtime").JSX.Element;
16
+ }) => import("react").JSX.Element;
@@ -0,0 +1,13 @@
1
+ import { LegendDataId } from '../../../types/legendType';
2
+ import { RawMarkerData } from '../../../types/legendMarkerBadge.type';
3
+ /**
4
+ * Creates legend markers for work orders grouped by tag.
5
+ *
6
+ * Fully synchronous — all data (including work permits) is resolved upstream
7
+ * by {@link useOpenWorkOrdersWithWorkPermits}, so this hook stays a single
8
+ * synchronous pass with no effects or local state.
9
+ *
10
+ * @param itemIds - Current legend selection ids.
11
+ * @returns An array of `RawMarkerData`, or an empty array when no data is available.
12
+ */
13
+ export declare const useCreateWorkOrderMarkers: (itemIds: ReadonlyArray<LegendDataId>) => ReadonlyArray<RawMarkerData>;
@@ -0,0 +1,2 @@
1
+ /** Returns the EDS color token for 'Active' or 'Completed' status titles, or undefined for unknown values. */
2
+ export declare const getColorForStatus: (title: string) => string | undefined;
@@ -0,0 +1 @@
1
+ export declare function getStatusColorForWorkPermit(workPermitStatus: string): string;
@@ -0,0 +1,24 @@
1
+ import { LegendDataId } from '../../types/legendType';
2
+ import { LegendStatus } from '../../../legacyLegend/legend';
3
+ import { WorkOrderBadgeProperty, WorkOrderMarkerProperty } from './workOrderLegendStrategy.constants';
4
+ import { TagNo, WorkOrderDto } from '@equinor/echo-search';
5
+ export interface TagNoWithOpenWorkOrders {
6
+ readonly tagNo: TagNo;
7
+ readonly openWorkOrders: ReadonlyArray<WorkOrderDto>;
8
+ }
9
+ export type PopoverProps = {
10
+ readonly legendDataId: LegendDataId;
11
+ readonly itemIds?: ReadonlyArray<LegendDataId>;
12
+ };
13
+ export interface WorkOrderPopover {
14
+ readonly workOrderId: string;
15
+ readonly isActive: boolean;
16
+ readonly orderTypeId: string;
17
+ readonly description: string;
18
+ readonly plantNo: string;
19
+ readonly workCenter: string;
20
+ readonly basicFinishDateTime: Date | undefined;
21
+ readonly basicFinishDateStatus: string | undefined;
22
+ }
23
+ export type AllWorkOrderPropertyOptions = WorkOrderMarkerProperty | WorkOrderBadgeProperty;
24
+ export type EndDateStatusText = 'Expired' | '0-7 days' | '8 days - 1 month' | '1-3 months' | '3-6 months' | '6-12 months' | '> 1 year' | LegendStatus.Unknown;
@@ -1,16 +1,16 @@
1
1
  import { WorkOrderDto } from '@equinor/echo-search';
2
- import { PopoverProps, WorkOrderPopover } from './workOrderPopover.types';
2
+ import { RawItemAppearance } from '../../types/legendMarkerBadge.type';
3
+ import { WorkOrderWithWorkPermits } from '../../types/legendWorkPermits.type';
4
+ type WorkOrderTypeId = Readonly<Pick<WorkOrderDto, 'orderTypeId'>>;
3
5
  /**
4
- * Fetches work orders for a given legend data ID and filters them by the provided item IDs.
5
- * Only supports tag-based lookups; returns undefined for non-tag legend data IDs
6
- * or when no matching work orders are found.
6
+ * Determines the icon name for a work order from its order type ID.
7
+ * Delegates icon selection to setWorkOrderIconName.
7
8
  */
8
- export declare function fetchWorkOrdersByLegendIdType({ legendDataId, itemIds }: PopoverProps): Promise<WorkOrderPopover[] | undefined>;
9
- type WorkOrderIconSource = Readonly<Pick<WorkOrderDto, 'orderTypeId'>>;
9
+ export declare function getIconForWorkOrder(workOrder: WorkOrderTypeId): string;
10
10
  /**
11
- * Determines the icon name for a collection of work orders based on their order type IDs.
12
- * Returns a group icon when multiple distinct order types are present,
13
- * or a type-specific icon when all work orders share the same order type.
11
+ * Creates raw appearance entries for a work order based on the selected property.
12
+ * Fully synchronous `workPermit` data is resolved upstream by
13
+ * {@link useOpenWorkOrdersWithWorkPermits} and read from the augmented work order.
14
14
  */
15
- export declare function getIconForWorkOrder(workOrders: ReadonlyArray<WorkOrderIconSource>): "workorders_pm01" | "workorders_pm02" | "workorders_pm03" | "workorders_pm04" | "workorders_pm05" | "workorders_pm06" | "workorders_pm10" | "workorders_pm15" | "workorders_pm20" | "workorders_main_group";
15
+ export declare function getAppearances(workOrder: WorkOrderWithWorkPermits, propertyName: string): ReadonlyArray<RawItemAppearance>;
16
16
  export {};
@@ -0,0 +1,6 @@
1
+ import { LegendBadgeOptionConfig, LegendMarkerOptionConfig } from '../../types/legendType';
2
+ import { WorkOrderDto } from '@equinor/echo-search';
3
+ export type WorkOrderMarkerProperty = keyof Pick<WorkOrderDto, 'orderTypeId' | 'basicFinishDateTime'> | 'activeStatusIds';
4
+ export type WorkOrderBadgeProperty = keyof Pick<WorkOrderDto, 'workOrderId' | 'revisionId' | 'orderTypeId'> | 'count' | 'workPermit';
5
+ export declare const LEGEND_MARKER_OPTIONS: ReadonlyArray<LegendMarkerOptionConfig<WorkOrderMarkerProperty>>;
6
+ export declare const LEGEND_BADGE_OPTIONS: ReadonlyArray<LegendBadgeOptionConfig<WorkOrderBadgeProperty>>;
@@ -1,5 +1,6 @@
1
+ import { LegendStatus } from '../types/legendType';
1
2
  /**
2
3
  * Wrapper for pre-existing legend status colors, to avoid importing legacy utils into new legend code.
3
4
  * Also handles new 'Unknown' and 'Multiple' statuses correctly, which legacy utils do not.
4
5
  */
5
- export declare const getColorForLegendStatus: (status: string) => string;
6
+ export declare const getColorForLegendStatus: (status: LegendStatus | string) => string;
@@ -0,0 +1,5 @@
1
+ import { EndDateStatusText } from '../legendStrategies/workOrderStrategy/workOrder.types';
2
+ /**
3
+ * Returns user-friendly end date status text based on the required end date of a notification.
4
+ */
5
+ export declare function getEndDateStatusText(date: Date | undefined): EndDateStatusText;
@@ -0,0 +1,2 @@
1
+ /** Returns the EDS color token for a required-end-date time bucket (e.g. "0-7 days"), or undefined for unrecognised values. */
2
+ export declare const getRequiredEndDateTimeColor: (title: string) => string | undefined;
@@ -1,8 +1,9 @@
1
1
  import type { LegendChipProps } from '@equinor/echo-components';
2
2
  import type { LegendChipData, RawMarkerData, ToggleableItem } from '../types/legendMarkerBadge.type';
3
- import type { LegendId } from '../types/legendType';
3
+ import { type LegendId } from '../types/legendType';
4
4
  export declare const toChipProps: (chip: LegendChipData, hiddenItems: ReadonlyArray<string>, legendId: LegendId) => LegendChipProps;
5
5
  export declare const toMarkerChipData: (rawMarker: RawMarkerData) => ReadonlyArray<LegendChipData>;
6
6
  export declare const toBadgeChipData: (rawMarker: RawMarkerData) => ReadonlyArray<LegendChipData>;
7
7
  export declare function isHiddenItem(item: ToggleableItem, hiddenItems: ReadonlyArray<string>): boolean;
8
8
  export declare const setHiddenItem: (item: ToggleableItem, isHidden: boolean, legendId: LegendId) => void;
9
+ export declare const createMultipleChipProps: () => LegendChipProps;
@@ -30,10 +30,10 @@ export declare const selectionGuards: SelectionGuardMap;
30
30
  */
31
31
  export declare const isGlobalSelectionItemId: (id: LegendDataId) => id is GlobalSelectionLegendDataId;
32
32
  /**
33
- * Converts any LegendDataId to a stable, unique string.
33
+ * Converts any LegendDataId to a stable, human-readable string.
34
34
  * For global selection types this delegates to globalSelectionUtils.itemIdToString.
35
- * For non-selection types (e.g. notifications) it produces a prefixed string
36
- * that will never collide with global selection ID strings.
35
+ * For non-selection types (e.g. notifications, IOC annotations) this prefers
36
+ * dedicated conversion logic and falls back to joining object values.
37
37
  */
38
38
  export declare const dataIdToString: (id: LegendDataId) => LegendDataIdString;
39
39
  /**
@@ -3,6 +3,7 @@ import type { LegendDataId } from './legendType';
3
3
  export interface RawItemAppearance {
4
4
  readonly getTitle: () => string;
5
5
  readonly getColor: () => string;
6
+ readonly getItemId?: () => LegendDataId;
6
7
  }
7
8
  /**
8
9
  * Raw marker data from strategy. Contains the source information and marker data.
@@ -80,8 +81,8 @@ export interface ProcessedMarker extends CombinedMarker {
80
81
  /** Individual marker appearances used for per-appearance counting */
81
82
  getMarkerAppearances: () => ReadonlyArray<RawItemAppearance>;
82
83
  /**
83
- * Selection group key for toggle tracking (selection legend toggles).
84
- * Used to determine if this marker should be hidden when a selection group is toggled off.
84
+ * All selection group keys this marker belongs to.
85
+ * A marker is hidden only when ALL its group keys are toggled off.
85
86
  */
86
- getSelectionGroupKey: () => LegendSelectionGroupKey;
87
+ getSelectionGroupKeys: () => ReadonlyArray<LegendSelectionGroupKey>;
87
88
  }
@@ -11,6 +11,11 @@ export declare const knownLegendIds: {
11
11
  notificationLegendId: "Notification Legend";
12
12
  iocAnnotationLegendId: "IOC Annotation Legend";
13
13
  };
14
+ export declare const LegendStatus: {
15
+ readonly Multiple: "Multiple";
16
+ readonly Unknown: "Unknown";
17
+ };
18
+ export type LegendStatus = (typeof LegendStatus)[keyof typeof LegendStatus];
14
19
  export interface LegendState<MarkerOptionType = string, BadgeOptionType = string> {
15
20
  readonly legendId: LegendId;
16
21
  readonly isEnabled: boolean;
@@ -46,7 +51,7 @@ interface LegendOptionConfigBase<T = string> {
46
51
  readonly showChipsInViewportOnly?: boolean;
47
52
  }
48
53
  export type LegendMarkerOptionConfig<T = string> = LegendOptionConfigBase<T>;
49
- export type LegendBadgeColorMode = 'status' | 'marker';
54
+ export type LegendBadgeColorMode = 'marker';
50
55
  /**
51
56
  * Configuration for badge options. Badges can have display options to control
52
57
  * how badge text is rendered (displayName, id, or count).
@@ -54,8 +59,9 @@ export type LegendBadgeColorMode = 'status' | 'marker';
54
59
  export interface LegendBadgeOptionConfig<T = string> extends LegendOptionConfigBase<T> {
55
60
  readonly enableDisplayOptions?: boolean;
56
61
  readonly displayOption?: LegendOptionDisplayOption;
62
+ readonly displayOptionLabel?: string;
57
63
  /**
58
- * Controls how badge color is determined. 'status' uses the same status color resolver as markers, while 'marker' inherits the marker color.
64
+ * Controls how badge color is determined. 'marker' inherits the marker color.
59
65
  * When set to 'marker', the generic processRawBadges resolves badge color from marker appearances automatically.
60
66
  */
61
67
  readonly badgeColorMode?: LegendBadgeColorMode;
@@ -0,0 +1,12 @@
1
+ import { TagNo, WorkOrderDto } from '@equinor/echo-search';
2
+ /**
3
+ * A {@link WorkOrderDto} extended with the resolved work-permit statuses for its tag.
4
+ * The field is optional so plain `WorkOrderDto` values remain assignable.
5
+ */
6
+ export interface WorkOrderWithWorkPermits extends WorkOrderDto {
7
+ readonly workPermitStatuses?: ReadonlyArray<string>;
8
+ }
9
+ export interface TagNoWithWorkOrdersWithPermits {
10
+ readonly tagNo: TagNo;
11
+ readonly workOrders: ReadonlyArray<WorkOrderWithWorkPermits>;
12
+ }
@@ -21,5 +21,5 @@ type FullMeasuringPointItemProps = {
21
21
  * - Detailed measuring point information, including measurements.
22
22
  *
23
23
  **/
24
- export declare const FullMeasuringPointItem: ({ measuringPointProps, measurements }: FullMeasuringPointItemProps) => import("react/jsx-runtime").JSX.Element;
24
+ export declare const FullMeasuringPointItem: ({ measuringPointProps, measurements }: FullMeasuringPointItemProps) => import("react").JSX.Element;
25
25
  export {};
@@ -3,5 +3,5 @@ interface LabelledImageListProps {
3
3
  documentId: string;
4
4
  attachments: Attachment[];
5
5
  }
6
- export declare const LabelledImageList: ({ documentId, attachments }: LabelledImageListProps) => import("react/jsx-runtime").JSX.Element;
6
+ export declare const LabelledImageList: ({ documentId, attachments }: LabelledImageListProps) => import("react").JSX.Element;
7
7
  export {};
@@ -4,5 +4,5 @@ type LastReportedFieldsProps = {
4
4
  measuringPointProps: Pick<MeasuringPointData, 'measuringPosition' | 'measuringPointId' | 'quantitativeCharacteristicId' | 'tagPlantId' | 'tagId' | 'measuringPoint' | 'equipmentId'>;
5
5
  lastRecordedMeasurement: MeasurementDto;
6
6
  };
7
- export declare const LastReportedFields: ({ measuringPointProps, lastRecordedMeasurement }: LastReportedFieldsProps) => import("react/jsx-runtime").JSX.Element;
7
+ export declare const LastReportedFields: ({ measuringPointProps, lastRecordedMeasurement }: LastReportedFieldsProps) => import("react").JSX.Element;
8
8
  export {};