1
1
/*!
2
2
* Copyright 2025 Cognite AS
3
3
*/
4
- import { ClassicDataSourceType , DataSourceType , DMDataSourceType } from '../DataSourceType' ;
4
+ import { ClassicDataSourceType , DataSourceType , DMDataSourceType , isSameDMIdentifier } from '../DataSourceType' ;
5
5
import {
6
6
Image360AnnotationFilterDelegate ,
7
7
Image360AnnotationProvider ,
@@ -18,7 +18,7 @@ import {
18
18
import { isSameImage360RevisionId } from './shared' ;
19
19
import { fetchCoreDm360AnnotationsForRevision } from './cdm/fetchCoreDm360AnnotationsForRevision' ;
20
20
import { CogniteClient } from '@cognite/sdk/dist/src' ;
21
- import { fetchAnnotationsForInstance } from './cdm/fetchAnnotationsForInstance' ;
21
+ import { fetchAnnotationsForInstance , Image360AnnotationsForInstanceResult } from './cdm/fetchAnnotationsForInstance' ;
22
22
import { fetchCoreDm360AnnotationsForCollection } from './cdm/fetchCoreDm360AnnotationsForCollection' ;
23
23
import { DMInstanceKey , dmInstanceRefToKey } from '@reveal/utilities' ;
24
24
@@ -48,21 +48,30 @@ export class CoreDm360ImageAnnotationProvider implements Image360AnnotationProvi
48
48
) : Promise < Image360AnnotationAssetQueryResult < DMDataSourceType > [ ] > {
49
49
const revisions = entity
50
50
. getRevisions ( )
51
- . filter (
52
- revision =>
53
- relatedRevisionsAndAnnotations . imageRevisionIds . find ( foundRevisionId =>
54
- isSameImage360RevisionId ( revision . identifier , foundRevisionId )
55
- ) !== undefined
51
+ . filter ( revision =>
52
+ relatedRevisionsAndAnnotations . imageRevisionIds . some ( foundRevisionId =>
53
+ isSameImage360RevisionId ( revision . identifier , foundRevisionId )
54
+ )
56
55
) ;
57
- return ( await Promise . all ( revisions . map ( revision => getAnnotationInfoForRevision ( entity , revision ) ) ) ) . flat ( ) ;
56
+ return (
57
+ await Promise . all (
58
+ revisions . map ( revision => getAnnotationInfoForRevision ( entity , revision , relatedRevisionsAndAnnotations ) )
59
+ )
60
+ ) . flat ( ) ;
58
61
}
59
62
60
63
async function getAnnotationInfoForRevision (
61
64
entity : Image360Entity < DMDataSourceType > ,
62
- revision : Image360RevisionEntity < DMDataSourceType >
65
+ revision : Image360RevisionEntity < DMDataSourceType > ,
66
+ relatedRevisionsAndAnnotations : Image360AnnotationsForInstanceResult
63
67
) : Promise < Image360AnnotationAssetQueryResult < DMDataSourceType > [ ] > {
64
68
const annotations = await revision . getAnnotations ( ) ;
65
- return annotations . map ( annotation => ( {
69
+ const filteredAnnotations = annotations . filter ( annotation =>
70
+ relatedRevisionsAndAnnotations . annotationIds . some ( relatedRevisionAnnotationId =>
71
+ isSameDMIdentifier ( relatedRevisionAnnotationId , annotation . annotation . annotationIdentifier )
72
+ )
73
+ ) ;
74
+ return filteredAnnotations . map ( annotation => ( {
66
75
image : entity ,
67
76
revision,
68
77
annotation
0 commit comments