diff --git a/client/src/app/components/activities/activity-feed/feed-filters/feed-filters.component.html b/client/src/app/components/activities/activity-feed/feed-filters/feed-filters.component.html
index e3b7a06a1..c9c0bab4e 100644
--- a/client/src/app/components/activities/activity-feed/feed-filters/feed-filters.component.html
+++ b/client/src/app/components/activities/activity-feed/feed-filters/feed-filters.component.html
@@ -114,39 +114,10 @@
filterTitle;
context: { $implicit: 'Participating User', value: userId() }
">
-
-
-
-
-
-
-
- {{ selected.nzLabel }}
-
-
+
}
@@ -160,43 +131,14 @@
value: organizationId(),
}
">
-
-
-
-
-
-
-
- {{ selected.nzLabel }}
-
-
+
}
Sort Direction
-
diff --git a/client/src/app/components/activities/activity-feed/feed-filters/feed-filters.component.ts b/client/src/app/components/activities/activity-feed/feed-filters/feed-filters.component.ts
index 50ca82ed9..4a52b14ed 100644
--- a/client/src/app/components/activities/activity-feed/feed-filters/feed-filters.component.ts
+++ b/client/src/app/components/activities/activity-feed/feed-filters/feed-filters.component.ts
@@ -27,6 +27,9 @@ import {
DateSortColumns,
Maybe,
SortDirection,
+ UserFilterSearchGQL,
+ UserFilterSearchQuery,
+ UserFilterSearchQueryVariables,
} from '@app/generated/civic.apollo'
import { CommonModule, KeyValuePipe } from '@angular/common'
import { FormsModule } from '@angular/forms'
@@ -40,12 +43,19 @@ import { disableDates } from '../activity-feed.functions'
import { toObservable, toSignal } from '@angular/core/rxjs-interop'
import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy'
import { tag } from 'rxjs-spy/operators'
-import { distinctUntilChanged, map, startWith, switchMap } from 'rxjs/operators'
-import { timer, filter, of } from 'rxjs'
-import { isNonNullObject } from '@apollo/client/utilities'
+import {
+ distinctUntilChanged,
+ map,
+ skip,
+ startWith,
+ switchMap,
+} from 'rxjs/operators'
+import { timer, filter, of, Subject, from } from 'rxjs'
import { isNonNulled } from 'rxjs-etc'
import { NzButtonModule } from 'ng-zorro-antd/button'
import { NzAlertModule } from 'ng-zorro-antd/alert'
+import { CvcUserFilterSelect } from './user-filter-select/user-filter-select.component'
+import { CvcOrgFilterSelect } from './org-filter-select/org-filter-select.component'
export const defaultFilters = {}
@@ -65,6 +75,8 @@ export const defaultFilters = {}
NzSelectModule,
NzDatePickerModule,
CvcPipesModule,
+ CvcUserFilterSelect,
+ CvcOrgFilterSelect,
],
templateUrl: './feed-filters.component.html',
styleUrls: ['./feed-filters.component.less'],
@@ -118,7 +130,17 @@ export class CvcActivityFeedFilterSelects implements OnInit {
sortByDirection: this.sortByDirection(),
})
})
-
+ /**
+ * Observable that emits the count of new activities since the last refresh.
+ *
+ * Behavior:
+ * - Only activates if cvcCheckInterval > 0, else emits 0
+ * - Polls the API at the specified interval (cvcCheckInterval in seconds)
+ * - Uses the current filter settings but only looks for activities after the last refresh
+ * - Emits 0 initially and then the count of new activities
+ * - Only emits when the count changes (uses distinctUntilChanged)
+ * - Resets to 0 when filters change via cvcRefreshChanges
+ */
const newActivities$ = toObservable(this.cvcRefreshChanges).pipe(
filter(isNonNulled),
switchMap((refetchEvent) => {
@@ -151,6 +173,7 @@ export class CvcActivityFeedFilterSelects implements OnInit {
)
this.newActivities = toSignal(newActivities$, { initialValue: 0 })
}
+
ngOnInit(): void {
this.eventType = signal(this.cvcFilters().activityType)
this.subjectType = signal(this.cvcFilters().subjectType)
diff --git a/client/src/app/components/activities/activity-feed/feed-filters/org-filter-select/org-filter-select.component.html b/client/src/app/components/activities/activity-feed/feed-filters/org-filter-select/org-filter-select.component.html
new file mode 100644
index 000000000..1b88c434c
--- /dev/null
+++ b/client/src/app/components/activities/activity-feed/feed-filters/org-filter-select/org-filter-select.component.html
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+
+
+
+ {{ selected.nzLabel }}
+
+
+
+ No organizationsfound matching "{{ onSearch() }}"
+
diff --git a/client/src/app/components/activities/activity-feed/feed-filters/org-filter-select/org-filter-select.component.less b/client/src/app/components/activities/activity-feed/feed-filters/org-filter-select/org-filter-select.component.less
new file mode 100644
index 000000000..e69de29bb
diff --git a/client/src/app/components/activities/activity-feed/feed-filters/org-filter-select/org-filter-select.component.ts b/client/src/app/components/activities/activity-feed/feed-filters/org-filter-select/org-filter-select.component.ts
new file mode 100644
index 000000000..c69067b12
--- /dev/null
+++ b/client/src/app/components/activities/activity-feed/feed-filters/org-filter-select/org-filter-select.component.ts
@@ -0,0 +1,70 @@
+import { Component, input, model, Signal } from '@angular/core'
+import { ActivityFeedFilterOptions } from '../../activity-feed.types'
+import { CvcPipesModule } from '@app/core/pipes/pipes.module'
+import { CommonModule } from '@angular/common'
+import { NzSelectModule } from 'ng-zorro-antd/select'
+import { NzIconModule } from 'ng-zorro-antd/icon'
+import { FormsModule } from '@angular/forms'
+import {
+ BrowseOrganization,
+ Organization,
+ OrgFilterSearchGQL,
+ OrgFilterSearchQuery,
+ OrgFilterSearchQueryVariables,
+} from '@app/generated/civic.apollo'
+import { from, map, Subject, switchMap } from 'rxjs'
+import { QueryRef } from 'apollo-angular'
+import { tag } from 'rxjs-spy/operators'
+import { toSignal } from '@angular/core/rxjs-interop'
+
+@Component({
+ selector: 'cvc-org-filter-select',
+ standalone: true,
+ imports: [
+ CommonModule,
+ FormsModule,
+ NzIconModule,
+ NzSelectModule,
+ CvcPipesModule,
+ ],
+ templateUrl: './org-filter-select.component.html',
+ styleUrl: './org-filter-select.component.less',
+})
+export class CvcOrgFilterSelect {
+ cvcParticipatingOrganizations =
+ input.required()
+ cvcOrganizationId = model.required()
+
+ onSearch$: Subject
+ onSearch: Signal
+ queryRef!: QueryRef
+ filteredOrganizations: Signal
+
+ constructor(private gql: OrgFilterSearchGQL) {
+ this.onSearch$ = new Subject()
+ const filteredOrganizations$ = this.onSearch$.pipe(
+ tag(`filteredOrganizations$`),
+ switchMap((nameStr) => {
+ const query = { name: nameStr, first: 25 }
+ if (this.queryRef) {
+ const refetch = this.queryRef.refetch({ name: nameStr })
+ return from(refetch)
+ } else {
+ this.queryRef = this.gql.watch({ name: nameStr })
+ return this.queryRef.valueChanges
+ }
+ }),
+ map(
+ (result) =>
+ result.data?.organizations.edges.map(
+ (e) => e.node! as BrowseOrganization
+ ) ?? []
+ ),
+ tag(`${this.constructor.name} filteredOrganizations$ after`)
+ )
+ this.filteredOrganizations = toSignal(filteredOrganizations$, {
+ initialValue: [],
+ })
+ this.onSearch = toSignal(this.onSearch$, { initialValue: '' })
+ }
+}
diff --git a/client/src/app/components/activities/activity-feed/feed-filters/org-filter-select/org-filter-select.query.gql b/client/src/app/components/activities/activity-feed/feed-filters/org-filter-select/org-filter-select.query.gql
new file mode 100644
index 000000000..6aa74b8dc
--- /dev/null
+++ b/client/src/app/components/activities/activity-feed/feed-filters/org-filter-select/org-filter-select.query.gql
@@ -0,0 +1,16 @@
+query OrgFilterSearch($name: String) {
+ organizations(name: $name) {
+ pageInfo {
+ endCursor
+ hasNextPage
+ hasPreviousPage
+ startCursor
+ }
+ edges {
+ node {
+ id
+ name
+ }
+ }
+ }
+}
diff --git a/client/src/app/components/activities/activity-feed/feed-filters/user-filter-select/user-filter-select.component.html b/client/src/app/components/activities/activity-feed/feed-filters/user-filter-select/user-filter-select.component.html
new file mode 100644
index 000000000..e2bde4797
--- /dev/null
+++ b/client/src/app/components/activities/activity-feed/feed-filters/user-filter-select/user-filter-select.component.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+
+
+
+ {{ selected.nzLabel }}
+
+
+
+ No users found matching "{{ onSearch() }}"
+
diff --git a/client/src/app/components/activities/activity-feed/feed-filters/user-filter-select/user-filter-select.component.less b/client/src/app/components/activities/activity-feed/feed-filters/user-filter-select/user-filter-select.component.less
new file mode 100644
index 000000000..e69de29bb
diff --git a/client/src/app/components/activities/activity-feed/feed-filters/user-filter-select/user-filter-select.component.ts b/client/src/app/components/activities/activity-feed/feed-filters/user-filter-select/user-filter-select.component.ts
new file mode 100644
index 000000000..81142cdf4
--- /dev/null
+++ b/client/src/app/components/activities/activity-feed/feed-filters/user-filter-select/user-filter-select.component.ts
@@ -0,0 +1,78 @@
+import {
+ Component,
+ input,
+ model,
+ output,
+ Signal,
+ WritableSignal,
+} from '@angular/core'
+import { ActivityFeedFilterOptions } from '../../activity-feed.types'
+import { NzSelectModule } from 'ng-zorro-antd/select'
+import { FormsModule } from '@angular/forms'
+import { CvcPipesModule } from '@app/core/pipes/pipes.module'
+import { NzIconModule } from 'ng-zorro-antd/icon'
+import { CommonModule } from '@angular/common'
+import { from, map, skip, startWith, Subject, switchMap } from 'rxjs'
+import {
+ BrowseUser,
+ User,
+ UserFilterSearchGQL,
+ UserFilterSearchQuery,
+ UserFilterSearchQueryVariables,
+} from '@app/generated/civic.apollo'
+import { QueryRef } from 'apollo-angular'
+import { tag } from 'rxjs-spy/operators'
+import { toSignal } from '@angular/core/rxjs-interop'
+
+@Component({
+ selector: 'cvc-user-filter-select',
+ standalone: true,
+ imports: [
+ CommonModule,
+ FormsModule,
+ NzIconModule,
+ NzSelectModule,
+ CvcPipesModule,
+ ],
+ templateUrl: './user-filter-select.component.html',
+ styleUrl: './user-filter-select.component.less',
+})
+export class CvcUserFilterSelect {
+ cvcUniqueParticipants =
+ input.required()
+ cvcUserId = model.required()
+
+ onSearch$: Subject
+ onSearch: Signal
+ queryRef!: QueryRef
+ filteredUsers: Signal
+
+ constructor(private gql: UserFilterSearchGQL) {
+ this.onSearch$ = new Subject()
+ const filteredUser$ = this.onSearch$.pipe(
+ tag(`filteredUser$`),
+ // skip(1),
+ // filter(isNonNulled),
+ switchMap((nameStr) => {
+ const query = {
+ name: nameStr,
+ first: 25,
+ }
+ if (this.queryRef) {
+ const refetch = this.queryRef.refetch({ name: nameStr })
+ return from(refetch)
+ } else {
+ this.queryRef = this.gql.watch({ name: nameStr })
+ return this.queryRef.valueChanges
+ }
+ }),
+ map(
+ (result) =>
+ result.data?.users.edges.map((e) => e.node! as BrowseUser) ?? []
+ ),
+ tag(`${this.constructor.name} filteredUser$ after`)
+ )
+ this.filteredUsers = toSignal(filteredUser$, { initialValue: [] })
+ this.onSearch = toSignal(this.onSearch$, { initialValue: '' })
+ }
+}
diff --git a/client/src/app/components/activities/activity-feed/feed-filters/user-filter-select/user-filter-select.query.gql b/client/src/app/components/activities/activity-feed/feed-filters/user-filter-select/user-filter-select.query.gql
new file mode 100644
index 000000000..3b6f7bdba
--- /dev/null
+++ b/client/src/app/components/activities/activity-feed/feed-filters/user-filter-select/user-filter-select.query.gql
@@ -0,0 +1,19 @@
+query UserFilterSearch($name: String) {
+ users(name: $name) {
+ pageInfo {
+ endCursor
+ hasNextPage
+ hasPreviousPage
+ startCursor
+ }
+ edges {
+ node {
+ id
+ displayName
+ name
+ username
+ role
+ }
+ }
+ }
+}
diff --git a/client/src/app/generated/civic.apollo.ts b/client/src/app/generated/civic.apollo.ts
index 77533d813..15f64643f 100644
--- a/client/src/app/generated/civic.apollo.ts
+++ b/client/src/app/generated/civic.apollo.ts
@@ -7706,6 +7706,20 @@ export type ActivityFeedUpdatesQueryVariables = Exact<{
export type ActivityFeedUpdatesQuery = { __typename: 'Query', activities: { __typename: 'ActivityInterfaceConnection', pageCount: number, totalCount: number, unfilteredCount: number, pageInfo: { __typename: 'PageInfo', startCursor?: string | undefined, endCursor?: string | undefined, hasNextPage: boolean, hasPreviousPage: boolean } } };
+export type OrgFilterSearchQueryVariables = Exact<{
+ name?: InputMaybe;
+}>;
+
+
+export type OrgFilterSearchQuery = { __typename: 'Query', organizations: { __typename: 'BrowseOrganizationConnection', pageInfo: { __typename: 'PageInfo', endCursor?: string | undefined, hasNextPage: boolean, hasPreviousPage: boolean, startCursor?: string | undefined }, edges: Array<{ __typename: 'BrowseOrganizationEdge', node?: { __typename: 'BrowseOrganization', id: number, name: string } | undefined }> } };
+
+export type UserFilterSearchQueryVariables = Exact<{
+ name?: InputMaybe;
+}>;
+
+
+export type UserFilterSearchQuery = { __typename: 'Query', users: { __typename: 'BrowseUserConnection', pageInfo: { __typename: 'PageInfo', endCursor?: string | undefined, hasNextPage: boolean, hasPreviousPage: boolean, startCursor?: string | undefined }, edges: Array<{ __typename: 'BrowseUserEdge', node?: { __typename: 'BrowseUser', id: number, displayName: string, name?: string | undefined, username: string, role: UserRole } | undefined }> } };
+
export type AcceptRevisionsActivityDetailFragment = { __typename: 'AcceptRevisionsActivity', id: number, verbiage: string, createdAt: any, parsedNote: Array<{ __typename: 'CommentTagSegment', entityId: number, displayName: string, tagType: TaggableEntity, link: string, revisionSetId?: number | undefined, feature?: { __typename: 'LinkableFeature', id: number, name: string, link: string, deprecated: boolean, flagged: boolean } | undefined } | { __typename: 'CommentTagSegmentFlagged', entityId: number, displayName: string, tagType: TaggableEntity, flagged: boolean, link: string, revisionSetId?: number | undefined, feature?: { __typename: 'LinkableFeature', id: number, name: string, link: string, deprecated: boolean, flagged: boolean } | undefined } | { __typename: 'CommentTagSegmentFlaggedAndDeprecated', entityId: number, displayName: string, tagType: TaggableEntity, flagged: boolean, deprecated: boolean, link: string, revisionSetId?: number | undefined, feature?: { __typename: 'LinkableFeature', id: number, name: string, link: string, deprecated: boolean, flagged: boolean } | undefined } | { __typename: 'CommentTagSegmentFlaggedAndWithStatus', entityId: number, displayName: string, tagType: TaggableEntity, status: EvidenceStatus, flagged: boolean, link: string, revisionSetId?: number | undefined, feature?: { __typename: 'LinkableFeature', id: number, name: string, link: string, deprecated: boolean, flagged: boolean } | undefined } | { __typename: 'CommentTextSegment', text: string } | { __typename: 'User', id: number, username: string, displayName: string, name?: string | undefined, role: UserRole, profileImagePath?: string | undefined, organizations: Array<{ __typename: 'Organization', id: number, name: string, profileImagePath?: string | undefined }> }>, revisions: Array<{ __typename: 'Revision', id: number, name: string, status: RevisionStatus, currentValue?: any | undefined, suggestedValue?: any | undefined, fieldName: string, link: string, linkoutData: { __typename: 'LinkoutData', name: string, diffValue: { __typename: 'ObjectFieldDiff', currentObjects: Array<{ __typename: 'ModeratedObjectField', id: number, displayName?: string | undefined, displayType?: string | undefined, entityType: string, link?: string | undefined, deleted: boolean, deprecated?: boolean | undefined, flagged?: boolean | undefined, feature?: { __typename: 'LinkableFeature', link: string, id: number, name: string, deprecated: boolean, flagged: boolean } | undefined }>, addedObjects: Array<{ __typename: 'ModeratedObjectField', id: number, displayName?: string | undefined, displayType?: string | undefined, entityType: string, link?: string | undefined, deleted: boolean, deprecated?: boolean | undefined, flagged?: boolean | undefined, feature?: { __typename: 'LinkableFeature', link: string, id: number, name: string, deprecated: boolean, flagged: boolean } | undefined }>, removedObjects: Array<{ __typename: 'ModeratedObjectField', id: number, displayName?: string | undefined, displayType?: string | undefined, entityType: string, link?: string | undefined, deleted: boolean, deprecated?: boolean | undefined, flagged?: boolean | undefined, feature?: { __typename: 'LinkableFeature', link: string, id: number, name: string, deprecated: boolean, flagged: boolean } | undefined }>, keptObjects: Array<{ __typename: 'ModeratedObjectField', id: number, displayName?: string | undefined, displayType?: string | undefined, entityType: string, link?: string | undefined, deleted: boolean, deprecated?: boolean | undefined, flagged?: boolean | undefined, feature?: { __typename: 'LinkableFeature', link: string, id: number, name: string, deprecated: boolean, flagged: boolean } | undefined }>, suggestedObjects: Array<{ __typename: 'ModeratedObjectField', id: number, displayName?: string | undefined, displayType?: string | undefined, entityType: string, link?: string | undefined, deleted: boolean, deprecated?: boolean | undefined, flagged?: boolean | undefined, feature?: { __typename: 'LinkableFeature', link: string, id: number, name: string, deprecated: boolean, flagged: boolean } | undefined }> } | { __typename: 'ScalarFieldDiff', left: string, right: string } } }>, supersededRevisions: Array<{ __typename: 'Revision', id: number, link: string, name: string, fieldName: string, createdAt: any, creationActivity?: { __typename: 'SuggestRevisionSetActivity', user: { __typename: 'User', displayName: string, profileImagePath?: string | undefined, id: number, role: UserRole } } | undefined }>, organization?: { __typename: 'Organization', id: number, name: string } | undefined, user: { __typename: 'User', id: number, displayName: string, role: UserRole }, subject: { __typename: 'Assertion', id: number, name: string, link: string } | { __typename: 'Comment', deleted: boolean, deletedAt?: any | undefined, id: number, name: string, link: string, commentable: { __typename: 'Assertion', id: number, name: string, link: string } | { __typename: 'EvidenceItem', id: number, name: string, link: string } | { __typename: 'Factor', id: number, name: string, link: string } | { __typename: 'FactorVariant', id: number, name: string, link: string, feature: { __typename: 'Feature', id: number, name: string, link: string } } | { __typename: 'Feature', id: number, name: string, link: string } | { __typename: 'Flag', id: number, name: string, link: string } | { __typename: 'Fusion', id: number, name: string, link: string } | { __typename: 'FusionVariant', id: number, name: string, link: string, feature: { __typename: 'Feature', id: number, name: string, link: string } } | { __typename: 'Gene', id: number, name: string, link: string } | { __typename: 'GeneVariant', id: number, name: string, link: string, feature: { __typename: 'Feature', id: number, name: string, link: string } } | { __typename: 'MolecularProfile', id: number, name: string, link: string } | { __typename: 'Revision', id: number, name: string, link: string } | { __typename: 'Source', id: number, name: string, link: string } | { __typename: 'SourcePopover', id: number, name: string, link: string } | { __typename: 'Variant', id: number, name: string, link: string } | { __typename: 'VariantGroup', id: number, name: string, link: string } } | { __typename: 'EvidenceItem', id: number, name: string, link: string } | { __typename: 'ExonCoordinate', id: number, name: string, link: string } | { __typename: 'Factor', id: number, name: string, link: string } | { __typename: 'FactorVariant', id: number, name: string, link: string, feature: { __typename: 'Feature', id: number, name: string, link: string } } | { __typename: 'Feature', id: number, name: string, link: string } | { __typename: 'Flag', id: number, name: string, link: string } | { __typename: 'Fusion', id: number, name: string, link: string } | { __typename: 'FusionVariant', id: number, name: string, link: string, feature: { __typename: 'Feature', id: number, name: string, link: string } } | { __typename: 'Gene', id: number, name: string, link: string } | { __typename: 'GeneVariant', id: number, name: string, link: string, feature: { __typename: 'Feature', id: number, name: string, link: string } } | { __typename: 'MolecularProfile', id: number, name: string, link: string } | { __typename: 'Revision', id: number, name: string, link: string } | { __typename: 'RevisionSet', id: number, name: string, link: string } | { __typename: 'Source', id: number, name: string, link: string } | { __typename: 'SourcePopover', id: number, name: string, link: string } | { __typename: 'SourceSuggestion', id: number, name: string, link: string } | { __typename: 'Variant', id: number, name: string, link: string } | { __typename: 'VariantCoordinate', id: number, name: string, link: string } | { __typename: 'VariantGroup', id: number, name: string, link: string }, events: Array<{ __typename: 'Event', id: number, createdAt: any, action: EventAction, originatingObject?: { __typename: 'Assertion', id: number, name: string, link: string } | { __typename: 'Comment', id: number, name: string, link: string } | { __typename: 'EvidenceItem', id: number, name: string, link: string } | { __typename: 'Factor', id: number, name: string, link: string } | { __typename: 'FactorVariant', id: number, name: string, link: string } | { __typename: 'Feature', id: number, name: string, link: string } | { __typename: 'Flag', id: number, name: string, link: string } | { __typename: 'Fusion', id: number, name: string, link: string } | { __typename: 'FusionVariant', id: number, name: string, link: string } | { __typename: 'Gene', id: number, name: string, link: string } | { __typename: 'GeneVariant', id: number, name: string, link: string } | { __typename: 'MolecularProfile', id: number, name: string, link: string } | { __typename: 'Revision', id: number, name: string, link: string } | { __typename: 'SourceSuggestion', id: number, name: string, link: string } | { __typename: 'Variant', id: number, name: string, link: string } | undefined, originatingUser: { __typename: 'User', id: number, displayName: string } }> };
export type CommentActivityDetailFragment = { __typename: 'CommentActivity', id: number, verbiage: string, createdAt: any, comment: { __typename: 'Comment', id: number, name: string, link: string, deleted: boolean, deletedAt?: any | undefined, title?: string | undefined, comment: string, createdAt: any, commentable: { __typename: 'Assertion', id: number, name: string, link: string } | { __typename: 'EvidenceItem', id: number, name: string, link: string } | { __typename: 'Factor', id: number, name: string, link: string } | { __typename: 'FactorVariant', id: number, name: string, link: string } | { __typename: 'Feature', id: number, name: string, link: string } | { __typename: 'Flag', id: number, name: string, link: string } | { __typename: 'Fusion', id: number, name: string, link: string } | { __typename: 'FusionVariant', id: number, name: string, link: string } | { __typename: 'Gene', id: number, name: string, link: string } | { __typename: 'GeneVariant', id: number, name: string, link: string } | { __typename: 'MolecularProfile', id: number, name: string, link: string } | { __typename: 'Revision', id: number, name: string, link: string } | { __typename: 'Source', id: number, name: string, link: string } | { __typename: 'SourcePopover', id: number, name: string, link: string } | { __typename: 'Variant', id: number, name: string, link: string } | { __typename: 'VariantGroup', id: number, name: string, link: string }, commenter: { __typename: 'User', id: number, username: string, displayName: string, name?: string | undefined, role: UserRole, profileImagePath?: string | undefined, organizations: Array<{ __typename: 'Organization', id: number, name: string, profileImagePath?: string | undefined }> }, parsedComment: Array<{ __typename: 'CommentTagSegment', entityId: number, displayName: string, tagType: TaggableEntity, link: string, revisionSetId?: number | undefined, feature?: { __typename: 'LinkableFeature', id: number, name: string, link: string, deprecated: boolean, flagged: boolean } | undefined } | { __typename: 'CommentTagSegmentFlagged', entityId: number, displayName: string, tagType: TaggableEntity, flagged: boolean, link: string, revisionSetId?: number | undefined, feature?: { __typename: 'LinkableFeature', id: number, name: string, link: string, deprecated: boolean, flagged: boolean } | undefined } | { __typename: 'CommentTagSegmentFlaggedAndDeprecated', entityId: number, displayName: string, tagType: TaggableEntity, flagged: boolean, deprecated: boolean, link: string, revisionSetId?: number | undefined, feature?: { __typename: 'LinkableFeature', id: number, name: string, link: string, deprecated: boolean, flagged: boolean } | undefined } | { __typename: 'CommentTagSegmentFlaggedAndWithStatus', entityId: number, displayName: string, tagType: TaggableEntity, status: EvidenceStatus, flagged: boolean, link: string, revisionSetId?: number | undefined, feature?: { __typename: 'LinkableFeature', id: number, name: string, link: string, deprecated: boolean, flagged: boolean } | undefined } | { __typename: 'CommentTextSegment', text: string } | { __typename: 'User', id: number, username: string, displayName: string, name?: string | undefined, role: UserRole, profileImagePath?: string | undefined, organizations: Array<{ __typename: 'Organization', id: number, name: string, profileImagePath?: string | undefined }> }> }, organization?: { __typename: 'Organization', id: number, name: string } | undefined, user: { __typename: 'User', id: number, displayName: string, role: UserRole }, subject: { __typename: 'Assertion', id: number, name: string, link: string } | { __typename: 'Comment', deleted: boolean, deletedAt?: any | undefined, id: number, name: string, link: string, commentable: { __typename: 'Assertion', id: number, name: string, link: string } | { __typename: 'EvidenceItem', id: number, name: string, link: string } | { __typename: 'Factor', id: number, name: string, link: string } | { __typename: 'FactorVariant', id: number, name: string, link: string, feature: { __typename: 'Feature', id: number, name: string, link: string } } | { __typename: 'Feature', id: number, name: string, link: string } | { __typename: 'Flag', id: number, name: string, link: string } | { __typename: 'Fusion', id: number, name: string, link: string } | { __typename: 'FusionVariant', id: number, name: string, link: string, feature: { __typename: 'Feature', id: number, name: string, link: string } } | { __typename: 'Gene', id: number, name: string, link: string } | { __typename: 'GeneVariant', id: number, name: string, link: string, feature: { __typename: 'Feature', id: number, name: string, link: string } } | { __typename: 'MolecularProfile', id: number, name: string, link: string } | { __typename: 'Revision', id: number, name: string, link: string } | { __typename: 'Source', id: number, name: string, link: string } | { __typename: 'SourcePopover', id: number, name: string, link: string } | { __typename: 'Variant', id: number, name: string, link: string } | { __typename: 'VariantGroup', id: number, name: string, link: string } } | { __typename: 'EvidenceItem', id: number, name: string, link: string } | { __typename: 'ExonCoordinate', id: number, name: string, link: string } | { __typename: 'Factor', id: number, name: string, link: string } | { __typename: 'FactorVariant', id: number, name: string, link: string, feature: { __typename: 'Feature', id: number, name: string, link: string } } | { __typename: 'Feature', id: number, name: string, link: string } | { __typename: 'Flag', id: number, name: string, link: string } | { __typename: 'Fusion', id: number, name: string, link: string } | { __typename: 'FusionVariant', id: number, name: string, link: string, feature: { __typename: 'Feature', id: number, name: string, link: string } } | { __typename: 'Gene', id: number, name: string, link: string } | { __typename: 'GeneVariant', id: number, name: string, link: string, feature: { __typename: 'Feature', id: number, name: string, link: string } } | { __typename: 'MolecularProfile', id: number, name: string, link: string } | { __typename: 'Revision', id: number, name: string, link: string } | { __typename: 'RevisionSet', id: number, name: string, link: string } | { __typename: 'Source', id: number, name: string, link: string } | { __typename: 'SourcePopover', id: number, name: string, link: string } | { __typename: 'SourceSuggestion', id: number, name: string, link: string } | { __typename: 'Variant', id: number, name: string, link: string } | { __typename: 'VariantCoordinate', id: number, name: string, link: string } | { __typename: 'VariantGroup', id: number, name: string, link: string }, events: Array<{ __typename: 'Event', id: number, createdAt: any, action: EventAction, originatingObject?: { __typename: 'Assertion', id: number, name: string, link: string } | { __typename: 'Comment', id: number, name: string, link: string } | { __typename: 'EvidenceItem', id: number, name: string, link: string } | { __typename: 'Factor', id: number, name: string, link: string } | { __typename: 'FactorVariant', id: number, name: string, link: string } | { __typename: 'Feature', id: number, name: string, link: string } | { __typename: 'Flag', id: number, name: string, link: string } | { __typename: 'Fusion', id: number, name: string, link: string } | { __typename: 'FusionVariant', id: number, name: string, link: string } | { __typename: 'Gene', id: number, name: string, link: string } | { __typename: 'GeneVariant', id: number, name: string, link: string } | { __typename: 'MolecularProfile', id: number, name: string, link: string } | { __typename: 'Revision', id: number, name: string, link: string } | { __typename: 'SourceSuggestion', id: number, name: string, link: string } | { __typename: 'Variant', id: number, name: string, link: string } | undefined, originatingUser: { __typename: 'User', id: number, displayName: string } }> };
@@ -13558,6 +13572,67 @@ export const ActivityFeedUpdatesDocument = gql`
export class ActivityFeedUpdatesGQL extends Apollo.Query {
document = ActivityFeedUpdatesDocument;
+ constructor(apollo: Apollo.Apollo) {
+ super(apollo);
+ }
+ }
+export const OrgFilterSearchDocument = gql`
+ query OrgFilterSearch($name: String) {
+ organizations(name: $name) {
+ pageInfo {
+ endCursor
+ hasNextPage
+ hasPreviousPage
+ startCursor
+ }
+ edges {
+ node {
+ id
+ name
+ }
+ }
+ }
+}
+ `;
+
+ @Injectable({
+ providedIn: 'root'
+ })
+ export class OrgFilterSearchGQL extends Apollo.Query {
+ document = OrgFilterSearchDocument;
+
+ constructor(apollo: Apollo.Apollo) {
+ super(apollo);
+ }
+ }
+export const UserFilterSearchDocument = gql`
+ query UserFilterSearch($name: String) {
+ users(name: $name) {
+ pageInfo {
+ endCursor
+ hasNextPage
+ hasPreviousPage
+ startCursor
+ }
+ edges {
+ node {
+ id
+ displayName
+ name
+ username
+ role
+ }
+ }
+ }
+}
+ `;
+
+ @Injectable({
+ providedIn: 'root'
+ })
+ export class UserFilterSearchGQL extends Apollo.Query {
+ document = UserFilterSearchDocument;
+
constructor(apollo: Apollo.Apollo) {
super(apollo);
}