@apollo-annotation/jbrowse-plugin-apollo 1.0.1 → 1.1.0

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 (172) hide show
  1. package/dist/ApolloInternetAccount/components/AuthTypeSelector.d.ts +8 -2
  2. package/dist/ApolloInternetAccount/components/AuthTypeSelector.d.ts.map +1 -1
  3. package/dist/ApolloInternetAccount/components/LoginButtons.d.ts +8 -3
  4. package/dist/ApolloInternetAccount/components/LoginButtons.d.ts.map +1 -1
  5. package/dist/ApolloInternetAccount/configSchema.d.ts +44 -0
  6. package/dist/ApolloInternetAccount/configSchema.d.ts.map +1 -0
  7. package/dist/ApolloInternetAccount/model.d.ts +174 -0
  8. package/dist/ApolloInternetAccount/model.d.ts.map +1 -0
  9. package/dist/ApolloJobModel.d.ts.map +1 -1
  10. package/dist/ApolloRefNameAliasAdapter/configSchema.d.ts +8 -0
  11. package/dist/ApolloRefNameAliasAdapter/configSchema.d.ts.map +1 -0
  12. package/dist/ApolloSequenceAdapter/configSchema.d.ts +8 -0
  13. package/dist/ApolloSequenceAdapter/configSchema.d.ts.map +1 -0
  14. package/dist/ApolloTextSearchAdapter/configSchema.d.ts +20 -0
  15. package/dist/ApolloTextSearchAdapter/configSchema.d.ts.map +1 -0
  16. package/dist/BackendDrivers/CollaborationServerDriver.d.ts +1 -1
  17. package/dist/BackendDrivers/CollaborationServerDriver.d.ts.map +1 -1
  18. package/dist/BackendDrivers/LocalDriver/LocalDriver.d.ts.map +1 -1
  19. package/dist/FeatureDetailsWidget/ApolloFeatureDetailsWidget.d.ts.map +1 -1
  20. package/dist/FeatureDetailsWidget/ApolloTranscriptDetailsWidget.d.ts.map +1 -1
  21. package/dist/FeatureDetailsWidget/Attributes.d.ts.map +1 -1
  22. package/dist/FeatureDetailsWidget/DefaultAttributeEditor.d.ts.map +1 -1
  23. package/dist/FeatureDetailsWidget/DefaultAttributeViewer.d.ts.map +1 -1
  24. package/dist/FeatureDetailsWidget/NumberTextField.d.ts.map +1 -1
  25. package/dist/FeatureDetailsWidget/StringTextField.d.ts.map +1 -1
  26. package/dist/FeatureDetailsWidget/TranscriptSequence.d.ts.map +1 -1
  27. package/dist/FeatureDetailsWidget/TranscriptWidgetEditLocation.d.ts.map +1 -1
  28. package/dist/FeatureDetailsWidget/Translation.d.ts +14 -0
  29. package/dist/FeatureDetailsWidget/Translation.d.ts.map +1 -0
  30. package/dist/LinearApolloDisplay/components/CheckResultWarnings.d.ts.map +1 -1
  31. package/dist/LinearApolloDisplay/configSchema.d.ts +2 -0
  32. package/dist/LinearApolloDisplay/configSchema.d.ts.map +1 -0
  33. package/dist/LinearApolloDisplay/glyphs/ExonGlyph.d.ts.map +1 -1
  34. package/dist/LinearApolloDisplay/glyphs/GeneGlyph.d.ts.map +1 -1
  35. package/dist/LinearApolloDisplay/glyphs/TranscriptGlyph.d.ts.map +1 -1
  36. package/dist/LinearApolloDisplay/stateModel/base.d.ts +1 -18
  37. package/dist/LinearApolloDisplay/stateModel/base.d.ts.map +1 -1
  38. package/dist/LinearApolloDisplay/stateModel/index.d.ts +1 -17
  39. package/dist/LinearApolloDisplay/stateModel/index.d.ts.map +1 -1
  40. package/dist/LinearApolloDisplay/stateModel/layouts.d.ts +2 -19
  41. package/dist/LinearApolloDisplay/stateModel/layouts.d.ts.map +1 -1
  42. package/dist/LinearApolloDisplay/stateModel/mouseEvents.d.ts +2 -34
  43. package/dist/LinearApolloDisplay/stateModel/mouseEvents.d.ts.map +1 -1
  44. package/dist/LinearApolloDisplay/stateModel/rendering.d.ts +2 -19
  45. package/dist/LinearApolloDisplay/stateModel/rendering.d.ts.map +1 -1
  46. package/dist/LinearApolloReferenceSequenceDisplay/configSchema.d.ts +2 -0
  47. package/dist/LinearApolloReferenceSequenceDisplay/configSchema.d.ts.map +1 -0
  48. package/dist/LinearApolloReferenceSequenceDisplay/stateModel/base.d.ts +1 -1
  49. package/dist/LinearApolloReferenceSequenceDisplay/stateModel/base.d.ts.map +1 -1
  50. package/dist/LinearApolloReferenceSequenceDisplay/stateModel/index.d.ts +1 -1
  51. package/dist/LinearApolloReferenceSequenceDisplay/stateModel/rendering.d.ts +1 -1
  52. package/dist/LinearApolloSixFrameDisplay/components/LinearApolloSixFrameDisplay.d.ts.map +1 -1
  53. package/dist/LinearApolloSixFrameDisplay/configSchema.d.ts +2 -0
  54. package/dist/LinearApolloSixFrameDisplay/configSchema.d.ts.map +1 -0
  55. package/dist/LinearApolloSixFrameDisplay/glyphs/GeneGlyph.d.ts.map +1 -1
  56. package/dist/LinearApolloSixFrameDisplay/stateModel/base.d.ts +1 -1
  57. package/dist/LinearApolloSixFrameDisplay/stateModel/base.d.ts.map +1 -1
  58. package/dist/LinearApolloSixFrameDisplay/stateModel/index.d.ts +1 -1
  59. package/dist/LinearApolloSixFrameDisplay/stateModel/index.d.ts.map +1 -1
  60. package/dist/LinearApolloSixFrameDisplay/stateModel/layouts.d.ts +2 -3
  61. package/dist/LinearApolloSixFrameDisplay/stateModel/layouts.d.ts.map +1 -1
  62. package/dist/LinearApolloSixFrameDisplay/stateModel/mouseEvents.d.ts +2 -2
  63. package/dist/LinearApolloSixFrameDisplay/stateModel/mouseEvents.d.ts.map +1 -1
  64. package/dist/LinearApolloSixFrameDisplay/stateModel/rendering.d.ts +2 -3
  65. package/dist/LinearApolloSixFrameDisplay/stateModel/rendering.d.ts.map +1 -1
  66. package/dist/OntologyManager/OntologyStore/fulltext.d.ts.map +1 -1
  67. package/dist/OntologyManager/index.d.ts +734 -0
  68. package/dist/OntologyManager/index.d.ts.map +1 -0
  69. package/dist/TabularEditor/HybridGrid/NumberCell.d.ts.map +1 -1
  70. package/dist/components/AddCodingSequence.d.ts +14 -0
  71. package/dist/components/AddCodingSequence.d.ts.map +1 -0
  72. package/dist/components/AddRefSeqAliases.d.ts.map +1 -1
  73. package/dist/components/CopyFeature.d.ts.map +1 -1
  74. package/dist/components/CreateApolloAnnotation.d.ts.map +1 -1
  75. package/dist/components/DeleteFeature.d.ts.map +1 -1
  76. package/dist/components/DownloadGFF3.d.ts.map +1 -1
  77. package/dist/components/DuplicateFeatureDialog.d.ts +12 -0
  78. package/dist/components/DuplicateFeatureDialog.d.ts.map +1 -0
  79. package/dist/components/ImportAnnotations.d.ts +9 -0
  80. package/dist/components/ImportAnnotations.d.ts.map +1 -0
  81. package/dist/components/ManageUsers.d.ts.map +1 -1
  82. package/dist/components/OntologyTermMultiSelect.d.ts.map +1 -1
  83. package/dist/components/ViewChangeLog.d.ts.map +1 -1
  84. package/dist/components/index.d.ts +2 -0
  85. package/dist/components/index.d.ts.map +1 -1
  86. package/dist/extensions/annotationFromPileup.d.ts.map +1 -1
  87. package/dist/index.d.ts.map +1 -1
  88. package/dist/index.esm.js +826 -433
  89. package/dist/index.esm.js.map +1 -1
  90. package/dist/jbrowse-plugin-apollo.cjs.development.js +821 -428
  91. package/dist/jbrowse-plugin-apollo.cjs.development.js.map +1 -1
  92. package/dist/jbrowse-plugin-apollo.cjs.production.min.js +1 -1
  93. package/dist/jbrowse-plugin-apollo.cjs.production.min.js.map +1 -1
  94. package/dist/jbrowse-plugin-apollo.umd.development.js +859 -467
  95. package/dist/jbrowse-plugin-apollo.umd.development.js.map +1 -1
  96. package/dist/jbrowse-plugin-apollo.umd.production.min.js +1 -1
  97. package/dist/jbrowse-plugin-apollo.umd.production.min.js.map +1 -1
  98. package/dist/session/ClientDataStore.d.ts +2194 -0
  99. package/dist/session/ClientDataStore.d.ts.map +1 -0
  100. package/dist/session/handleApolloFeaturesUrlParam.d.ts +8 -0
  101. package/dist/session/handleApolloFeaturesUrlParam.d.ts.map +1 -0
  102. package/dist/session/session.d.ts +6788 -0
  103. package/dist/session/session.d.ts.map +1 -0
  104. package/dist/util/displayUtils.d.ts +36 -0
  105. package/dist/util/displayUtils.d.ts.map +1 -0
  106. package/dist/util/sequenceUtils.d.ts +2 -0
  107. package/dist/util/sequenceUtils.d.ts.map +1 -0
  108. package/package.json +14 -14
  109. package/src/ApolloInternetAccount/components/AuthTypeSelector.tsx +73 -38
  110. package/src/ApolloInternetAccount/components/LoginButtons.tsx +31 -10
  111. package/src/ApolloInternetAccount/model.ts +8 -5
  112. package/src/ApolloJobModel.ts +3 -8
  113. package/src/ApolloTextSearchAdapter/ApolloTextSearchAdapter.ts +1 -1
  114. package/src/BackendDrivers/CollaborationServerDriver.ts +7 -11
  115. package/src/BackendDrivers/LocalDriver/LocalDriver.ts +9 -3
  116. package/src/FeatureDetailsWidget/ApolloFeatureDetailsWidget.tsx +1 -0
  117. package/src/FeatureDetailsWidget/ApolloTranscriptDetailsWidget.tsx +4 -2
  118. package/src/FeatureDetailsWidget/Attributes.tsx +1 -0
  119. package/src/FeatureDetailsWidget/DefaultAttributeEditor.tsx +1 -0
  120. package/src/FeatureDetailsWidget/DefaultAttributeViewer.tsx +1 -0
  121. package/src/FeatureDetailsWidget/NumberTextField.tsx +1 -0
  122. package/src/FeatureDetailsWidget/StringTextField.tsx +1 -0
  123. package/src/FeatureDetailsWidget/TranscriptSequence.tsx +2 -1
  124. package/src/FeatureDetailsWidget/TranscriptWidgetEditLocation.tsx +17 -354
  125. package/src/FeatureDetailsWidget/Translation.tsx +358 -0
  126. package/src/LinearApolloDisplay/components/CheckResultWarnings.tsx +4 -1
  127. package/src/LinearApolloDisplay/glyphs/ExonGlyph.ts +2 -5
  128. package/src/LinearApolloDisplay/glyphs/GeneGlyph.ts +4 -6
  129. package/src/LinearApolloDisplay/glyphs/TranscriptGlyph.ts +39 -6
  130. package/src/LinearApolloDisplay/stateModel/base.ts +47 -23
  131. package/src/LinearApolloDisplay/stateModel/layouts.ts +7 -5
  132. package/src/LinearApolloDisplay/stateModel/mouseEvents.ts +4 -1
  133. package/src/LinearApolloDisplay/stateModel/rendering.ts +1 -5
  134. package/src/LinearApolloReferenceSequenceDisplay/stateModel/base.ts +10 -10
  135. package/src/LinearApolloSixFrameDisplay/components/LinearApolloSixFrameDisplay.tsx +5 -3
  136. package/src/LinearApolloSixFrameDisplay/components/TrackLines.tsx +1 -1
  137. package/src/LinearApolloSixFrameDisplay/glyphs/GeneGlyph.ts +2 -3
  138. package/src/LinearApolloSixFrameDisplay/stateModel/base.ts +12 -20
  139. package/src/LinearApolloSixFrameDisplay/stateModel/layouts.ts +10 -6
  140. package/src/LinearApolloSixFrameDisplay/stateModel/mouseEvents.ts +38 -45
  141. package/src/LinearApolloSixFrameDisplay/stateModel/rendering.ts +1 -4
  142. package/src/OntologyManager/OntologyStore/fulltext.ts +0 -2
  143. package/src/OntologyManager/OntologyStore/index.ts +1 -1
  144. package/src/TabularEditor/HybridGrid/ChangeHandling.ts +2 -2
  145. package/src/TabularEditor/HybridGrid/NumberCell.tsx +2 -1
  146. package/src/components/AddAssemblyAliases.tsx +1 -1
  147. package/src/components/AddCodingSequence.tsx +255 -0
  148. package/src/components/AddFeature.tsx +1 -1
  149. package/src/components/AddRefSeqAliases.tsx +3 -2
  150. package/src/components/CopyFeature.tsx +9 -7
  151. package/src/components/CreateApolloAnnotation.tsx +28 -23
  152. package/src/components/DeleteAssembly.tsx +2 -2
  153. package/src/components/DeleteFeature.tsx +1 -4
  154. package/src/components/DownloadGFF3.tsx +4 -3
  155. package/src/components/DuplicateFeatureDialog.tsx +154 -0
  156. package/src/components/DuplicateTranscript.tsx +1 -1
  157. package/src/components/FilterTranscripts.tsx +1 -1
  158. package/src/components/ImportAnnotations.tsx +108 -0
  159. package/src/components/ManageUsers.tsx +1 -2
  160. package/src/components/OntologyTermAutocomplete.tsx +1 -3
  161. package/src/components/OntologyTermMultiSelect.tsx +3 -1
  162. package/src/components/ViewChangeLog.tsx +2 -1
  163. package/src/components/index.ts +2 -0
  164. package/src/extensions/annotationFromPileup.ts +34 -26
  165. package/src/index.ts +9 -8
  166. package/src/session/ClientDataStore.ts +16 -21
  167. package/src/session/handleApolloFeaturesUrlParam.ts +122 -0
  168. package/src/session/session.ts +49 -9
  169. package/src/util/annotationFeatureUtils.ts +1 -1
  170. package/src/util/displayUtils.ts +1 -1
  171. package/src/util/glyphUtils.ts +3 -3
  172. package/src/util/sequenceUtils.ts +29 -0
@@ -2,12 +2,12 @@
2
2
 
3
3
  import type { AnnotationFeature } from '@apollo-annotation/mst'
4
4
  import type PluginManager from '@jbrowse/core/PluginManager'
5
+ import type { Assembly } from '@jbrowse/core/assemblyManager/assembly'
5
6
  import type { AnyConfigurationSchemaType } from '@jbrowse/core/configuration'
6
7
  import { type AbstractSessionModel, doesIntersect2 } from '@jbrowse/core/util'
7
8
  import { addDisposer, isAlive } from '@jbrowse/mobx-state-tree'
8
9
  import { autorun, observable } from 'mobx'
9
10
 
10
- import type { ApolloSessionModel } from '../../session'
11
11
  import {
12
12
  isCDSFeature,
13
13
  isExonFeature,
@@ -72,7 +72,9 @@ export function layoutsModelFactory(
72
72
  getCanonicalRefName(assemblyName: string, refSeq: string) {
73
73
  const { assemblyManager } =
74
74
  self.session as unknown as AbstractSessionModel
75
- const assembly = assemblyManager.get(assemblyName)
75
+ const assembly = assemblyManager.get(assemblyName) as
76
+ | Assembly
77
+ | undefined
76
78
  if (!assembly) {
77
79
  throw new Error('no assembly in layout')
78
80
  }
@@ -298,9 +300,9 @@ export function layoutsModelFactory(
298
300
  }
299
301
  // Add features that are in the current view
300
302
  for (const region of self.regions) {
301
- const assembly = (
302
- self.session as unknown as ApolloSessionModel
303
- ).apolloDataStore.assemblies.get(region.assemblyName)
303
+ const assembly = self.session.apolloDataStore.assemblies.get(
304
+ region.assemblyName,
305
+ )
304
306
  const ref = assembly?.getByRefName(region.refName)
305
307
  const features = ref?.features
306
308
  if (!features) {
@@ -4,6 +4,7 @@ import {
4
4
  LocationStartChange,
5
5
  } from '@apollo-annotation/shared'
6
6
  import type PluginManager from '@jbrowse/core/PluginManager'
7
+ import type { Assembly } from '@jbrowse/core/assemblyManager/assembly'
7
8
  import type { AnyConfigurationSchemaType } from '@jbrowse/core/configuration'
8
9
  import type { MenuItem } from '@jbrowse/core/ui'
9
10
  import { doesIntersect2 } from '@jbrowse/core/util'
@@ -189,7 +190,9 @@ export function mouseEventsModelFactory(
189
190
  }
190
191
  const { displayedRegions } = self.lgv
191
192
  const region = displayedRegions[start.regionNumber]
192
- const assembly = self.getAssemblyId(region.assemblyName)
193
+ const assembly = self.getAssemblyId(region.assemblyName) as
194
+ | Assembly
195
+ | undefined
193
196
  const changes = getPropagatedLocationChanges(
194
197
  feature,
195
198
  current.bp,
@@ -6,8 +6,6 @@ import { type Instance, addDisposer, types } from '@jbrowse/mobx-state-tree'
6
6
  import { type Theme, createTheme } from '@mui/material'
7
7
  import { autorun } from 'mobx'
8
8
 
9
- import type { ApolloSessionModel } from '../../session'
10
-
11
9
  import { layoutsModelFactory } from './layouts'
12
10
 
13
11
  export function renderingModelFactory(
@@ -125,9 +123,7 @@ export function renderingModelFactory(
125
123
  self.lgv.dynamicBlocks.totalWidthPx,
126
124
  self.featuresHeight(self.lgv.assemblyNames[0]),
127
125
  )
128
- for (const collaborator of (
129
- self.session as unknown as ApolloSessionModel
130
- ).collaborators) {
126
+ for (const collaborator of self.session.collaborators) {
131
127
  const { locations } = collaborator
132
128
  if (locations.length === 0) {
133
129
  continue
@@ -5,6 +5,7 @@
5
5
  /* eslint-disable @typescript-eslint/no-unnecessary-condition */
6
6
  import type { AnnotationFeature } from '@apollo-annotation/mst'
7
7
  import type PluginManager from '@jbrowse/core/PluginManager'
8
+ import type { Assembly } from '@jbrowse/core/assemblyManager/assembly'
8
9
  import {
9
10
  type AnyConfigurationSchemaType,
10
11
  ConfigurationReference,
@@ -115,7 +116,9 @@ export function baseModelFactory(
115
116
  const { assemblyName } = region
116
117
  const { assemblyManager } =
117
118
  self.session as unknown as AbstractSessionModel
118
- const assembly = assemblyManager.get(assemblyName)
119
+ const assembly = assemblyManager.get(assemblyName) as
120
+ | Assembly
121
+ | undefined
119
122
  if (!assembly) {
120
123
  throw new Error(`No assembly found with name ${assemblyName}`)
121
124
  }
@@ -128,8 +131,7 @@ export function baseModelFactory(
128
131
  ) as ApolloInternetAccountModel | undefined
129
132
  },
130
133
  get changeManager() {
131
- return (self.session as unknown as ApolloSessionModel).apolloDataStore
132
- .changeManager
134
+ return self.session.apolloDataStore.changeManager
133
135
  },
134
136
  getAssemblyId(assemblyName: string) {
135
137
  const { assemblyManager } =
@@ -141,12 +143,10 @@ export function baseModelFactory(
141
143
  return assembly.name
142
144
  },
143
145
  get selectedFeature(): AnnotationFeature | undefined {
144
- return (self.session as unknown as ApolloSessionModel)
145
- .apolloSelectedFeature
146
+ return self.session.apolloSelectedFeature
146
147
  },
147
148
  get hoveredFeature(): HoveredFeature | undefined {
148
- return (self.session as unknown as ApolloSessionModel)
149
- .apolloHoveredFeature
149
+ return self.session.apolloHoveredFeature
150
150
  },
151
151
  get height() {
152
152
  const { sequenceRowHeight } = self
@@ -232,9 +232,9 @@ export function baseModelFactory(
232
232
  return
233
233
  }
234
234
  if (self.lgv.bpPerPx <= 3) {
235
- void (
236
- self.session as unknown as ApolloSessionModel
237
- ).apolloDataStore.loadRefSeq(self.expandedRegions)
235
+ void self.session.apolloDataStore.loadRefSeq(
236
+ self.expandedRegions,
237
+ )
238
238
  }
239
239
  },
240
240
  {
@@ -3,6 +3,7 @@
3
3
  /* eslint-disable @typescript-eslint/no-misused-promises */
4
4
 
5
5
  import type { CheckResultI } from '@apollo-annotation/mst'
6
+ import type { Assembly } from '@jbrowse/core/assemblyManager/assembly'
6
7
  import { Menu, type MenuItem } from '@jbrowse/core/ui'
7
8
  import {
8
9
  type AbstractSessionModel,
@@ -157,7 +158,9 @@ export const LinearApolloSixFrameDisplay = observer(
157
158
  />
158
159
  {lgv.displayedRegions.flatMap((region, idx) => {
159
160
  const widthBp = lgv.bpPerPx * apolloRowHeight
160
- const assembly = assemblyManager.get(region.assemblyName)
161
+ const assembly = assemblyManager.get(region.assemblyName) as
162
+ | Assembly
163
+ | undefined
161
164
  if (showCheckResults) {
162
165
  const filteredCheckResults = [
163
166
  ...session.apolloDataStore.checkResults.values(),
@@ -187,8 +190,7 @@ export const LinearApolloSixFrameDisplay = observer(
187
190
  })?.offsetPx ?? 0) - lgv.offsetPx
188
191
  const [feature] = checkResult.featureIds
189
192
  if (
190
- !feature ||
191
- !feature.parent ||
193
+ !feature?.parent ||
192
194
  !looksLikeGene(feature.parent, session)
193
195
  ) {
194
196
  return null
@@ -6,7 +6,7 @@ import type { LinearApolloSixFrameDisplay } from '../stateModel'
6
6
  export const TrackLines = observer(function TrackLines({
7
7
  model,
8
8
  hrStyle = { margin: 0, top: 0, color: 'black' },
9
- idx = 0,
9
+ idx,
10
10
  }: {
11
11
  model: LinearApolloSixFrameDisplay
12
12
  hrStyle?: React.CSSProperties
@@ -2,7 +2,6 @@ import type {
2
2
  AnnotationFeature,
3
3
  TranscriptPartCoding,
4
4
  } from '@apollo-annotation/mst'
5
- import type { BaseDisplayModel } from '@jbrowse/core/pluggableElementTypes'
6
5
  import type { MenuItem } from '@jbrowse/core/ui'
7
6
  import {
8
7
  type AbstractSessionModel,
@@ -856,7 +855,7 @@ function getContextMenuItems(
856
855
  session,
857
856
  } = display
858
857
  const [region] = regions
859
- const currentAssemblyId = display.getAssemblyId(region.assemblyName)
858
+ const currentAssemblyId = display.getAssemblyId(region.assemblyName) as string
860
859
  const menuItems: MenuItem[] = []
861
860
  const role = internetAccount ? internetAccount.role : 'admin'
862
861
  const readOnly = !(role && ['admin', 'user'].includes(role))
@@ -888,7 +887,7 @@ function getContextMenuItems(
888
887
  if (isExonFeature(feature, session)) {
889
888
  const adjacentExons = getAdjacentExons(feature, display)
890
889
  const lgv = getContainingView(
891
- display as BaseDisplayModel,
890
+ display,
892
891
  ) as unknown as LinearGenomeViewModel
893
892
  if (adjacentExons.upstream) {
894
893
  const exon = adjacentExons.upstream
@@ -5,6 +5,7 @@
5
5
  /* eslint-disable @typescript-eslint/no-unnecessary-condition */
6
6
  import type { AnnotationFeature } from '@apollo-annotation/mst'
7
7
  import type PluginManager from '@jbrowse/core/PluginManager'
8
+ import type { Assembly } from '@jbrowse/core/assemblyManager/assembly'
8
9
  import {
9
10
  type AnyConfigurationSchemaType,
10
11
  ConfigurationReference,
@@ -128,7 +129,9 @@ export function baseModelFactory(
128
129
  const { assemblyName } = region
129
130
  const { assemblyManager } =
130
131
  self.session as unknown as AbstractSessionModel
131
- const assembly = assemblyManager.get(assemblyName)
132
+ const assembly = assemblyManager.get(assemblyName) as
133
+ | Assembly
134
+ | undefined
132
135
  if (!assembly) {
133
136
  throw new Error(`No assembly found with name ${assemblyName}`)
134
137
  }
@@ -141,8 +144,7 @@ export function baseModelFactory(
141
144
  ) as ApolloInternetAccountModel | undefined
142
145
  },
143
146
  get changeManager() {
144
- return (self.session as unknown as ApolloSessionModel).apolloDataStore
145
- .changeManager
147
+ return self.session.apolloDataStore.changeManager
146
148
  },
147
149
  getAssemblyId(assemblyName: string) {
148
150
  const { assemblyManager } =
@@ -154,12 +156,10 @@ export function baseModelFactory(
154
156
  return assembly.name
155
157
  },
156
158
  get selectedFeature(): AnnotationFeature | undefined {
157
- return (self.session as unknown as ApolloSessionModel)
158
- .apolloSelectedFeature
159
+ return self.session.apolloSelectedFeature
159
160
  },
160
161
  get hoveredFeature(): HoveredFeature | undefined {
161
- return (self.session as unknown as ApolloSessionModel)
162
- .apolloHoveredFeature
162
+ return self.session.apolloHoveredFeature
163
163
  },
164
164
  }))
165
165
  .actions((self) => ({
@@ -294,7 +294,7 @@ export function baseModelFactory(
294
294
  {
295
295
  label: 'Filter features by type',
296
296
  onClick: () => {
297
- const session = self.session as unknown as ApolloSessionModel
297
+ const { session } = self
298
298
  ;(self.session as unknown as AbstractSessionModel).queueDialog(
299
299
  (doneCallback) => [
300
300
  FilterFeatures,
@@ -318,14 +318,10 @@ export function baseModelFactory(
318
318
  })
319
319
  .actions((self) => ({
320
320
  setSelectedFeature(feature?: AnnotationFeature) {
321
- ;(
322
- self.session as unknown as ApolloSessionModel
323
- ).apolloSetSelectedFeature(feature)
321
+ self.session.apolloSetSelectedFeature(feature)
324
322
  },
325
323
  setHoveredFeature(hoveredFeature?: HoveredFeature) {
326
- ;(
327
- self.session as unknown as ApolloSessionModel
328
- ).apolloSetHoveredFeature(hoveredFeature)
324
+ self.session.apolloSetHoveredFeature(hoveredFeature)
329
325
  },
330
326
  showFeatureDetailsWidget(
331
327
  feature: AnnotationFeature,
@@ -363,13 +359,9 @@ export function baseModelFactory(
363
359
  if (!self.lgv.initialized || self.regionCannotBeRendered()) {
364
360
  return
365
361
  }
366
- void (
367
- self.session as unknown as ApolloSessionModel
368
- ).apolloDataStore.loadFeatures(self.regions)
362
+ void self.session.apolloDataStore.loadFeatures(self.regions)
369
363
  if (self.lgv.bpPerPx <= self.zoomThreshold) {
370
- void (
371
- self.session as unknown as ApolloSessionModel
372
- ).apolloDataStore.loadRefSeq(self.regions)
364
+ void self.session.apolloDataStore.loadRefSeq(self.regions)
373
365
  }
374
366
  },
375
367
  { name: 'LinearApolloSixFrameDisplayLoadFeatures', delay: 1000 },
@@ -2,6 +2,7 @@
2
2
 
3
3
  import type { AnnotationFeature } from '@apollo-annotation/mst'
4
4
  import type PluginManager from '@jbrowse/core/PluginManager'
5
+ import type { Assembly } from '@jbrowse/core/assemblyManager/assembly'
5
6
  import type { AnyConfigurationSchemaType } from '@jbrowse/core/configuration'
6
7
  import {
7
8
  type AbstractSessionModel,
@@ -11,7 +12,6 @@ import {
11
12
  import { addDisposer, isAlive } from '@jbrowse/mobx-state-tree'
12
13
  import { autorun, observable } from 'mobx'
13
14
 
14
- import type { ApolloSessionModel } from '../../session'
15
15
  import { looksLikeGene } from '../../util/glyphUtils'
16
16
  import { geneGlyph } from '../glyphs/GeneGlyph'
17
17
 
@@ -45,7 +45,9 @@ export function layoutsModelFactory(
45
45
  const { assemblyManager } =
46
46
  self.session as unknown as AbstractSessionModel
47
47
  return self.lgv.displayedRegions.map((region) => {
48
- const assembly = assemblyManager.get(region.assemblyName)
48
+ const assembly = assemblyManager.get(region.assemblyName) as
49
+ | Assembly
50
+ | undefined
49
51
  let min: number | undefined
50
52
  let max: number | undefined
51
53
  const { end, refName, start } = region
@@ -101,7 +103,9 @@ export function layoutsModelFactory(
101
103
  const { assemblyManager } =
102
104
  self.session as unknown as AbstractSessionModel
103
105
  return self.lgv.displayedRegions.map((region, idx) => {
104
- const assembly = assemblyManager.get(region.assemblyName)
106
+ const assembly = assemblyManager.get(region.assemblyName) as
107
+ | Assembly
108
+ | undefined
105
109
  const featureLayout = new Map<number, LayoutRow[]>()
106
110
  const minMax = self.featuresMinMax[idx]
107
111
  if (!minMax) {
@@ -222,9 +226,9 @@ export function layoutsModelFactory(
222
226
  return
223
227
  }
224
228
  for (const region of self.regions) {
225
- const assembly = (
226
- self.session as unknown as ApolloSessionModel
227
- ).apolloDataStore.assemblies.get(region.assemblyName)
229
+ const assembly = self.session.apolloDataStore.assemblies.get(
230
+ region.assemblyName,
231
+ )
228
232
  const ref = assembly?.getByRefName(region.refName)
229
233
  const features = ref?.features
230
234
  if (!features) {
@@ -60,53 +60,46 @@ export function mouseEventsModelIntermediateFactory(
60
60
  if (!featureTypeOntology) {
61
61
  throw new Error('featureTypeOntology is undefined')
62
62
  }
63
- let foundFeature
64
- if (self.geneTrackRowNums.includes(row)) {
65
- foundFeature = layoutRow.find(
66
- (f) =>
67
- f.feature.type == 'exon' &&
68
- bp >= f.feature.min &&
69
- bp <= f.feature.max,
70
- )
71
- if (!foundFeature) {
72
- foundFeature = layoutRow.find(
73
- (f) => bp >= f.feature.min && bp <= f.feature.max,
74
- )
75
- }
76
- } else {
77
- foundFeature = layoutRow.find((f) => {
78
- const { feature } = f
79
- const featureID = feature.attributes.get('gff_id')?.toString()
80
- const isTranscript = featureTypeOntology.isTypeOf(
81
- feature.type,
82
- 'transcript',
83
- )
84
- if (!isTranscript) {
85
- return false
86
- }
87
- for (const loc of feature.cdsLocations) {
88
- for (const cds of loc) {
89
- const frame = getFrame(
90
- cds.min,
91
- cds.max,
92
- feature.strand ?? 1,
93
- cds.phase,
94
- )
95
- const frameOffsets = self.showFeatureLabels
96
- ? [0, 5, 3, 1, 15, 13, 11]
97
- : [0, 2, 1, 0, 8, 7, 6]
98
- const rowNum = frameOffsets.at(frame)
99
- if (row === rowNum && bp >= cds.min && bp <= cds.max) {
100
- return (
101
- featureID === undefined ||
102
- !self.filteredTranscripts.includes(featureID)
63
+ const foundFeature = self.geneTrackRowNums.includes(row)
64
+ ? layoutRow.find(
65
+ (f) =>
66
+ f.feature.type == 'exon' &&
67
+ bp >= f.feature.min &&
68
+ bp <= f.feature.max,
69
+ ) ??
70
+ layoutRow.find((f) => bp >= f.feature.min && bp <= f.feature.max)
71
+ : layoutRow.find((f) => {
72
+ const { feature } = f
73
+ const featureID = feature.attributes.get('gff_id')?.toString()
74
+ const isTranscript = featureTypeOntology.isTypeOf(
75
+ feature.type,
76
+ 'transcript',
77
+ )
78
+ if (!isTranscript) {
79
+ return false
80
+ }
81
+ for (const loc of feature.cdsLocations) {
82
+ for (const cds of loc) {
83
+ const frame = getFrame(
84
+ cds.min,
85
+ cds.max,
86
+ feature.strand ?? 1,
87
+ cds.phase,
103
88
  )
89
+ const frameOffsets = self.showFeatureLabels
90
+ ? [0, 5, 3, 1, 15, 13, 11]
91
+ : [0, 2, 1, 0, 8, 7, 6]
92
+ const rowNum = frameOffsets.at(frame)
93
+ if (row === rowNum && bp >= cds.min && bp <= cds.max) {
94
+ return (
95
+ featureID === undefined ||
96
+ !self.filteredTranscripts.includes(featureID)
97
+ )
98
+ }
104
99
  }
105
100
  }
106
- }
107
- return false
108
- })
109
- }
101
+ return false
102
+ })
110
103
  if (!foundFeature) {
111
104
  return mousePosition
112
105
  }
@@ -202,7 +195,7 @@ export function mouseEventsModelFactory(
202
195
  }
203
196
  const { displayedRegions } = self.lgv
204
197
  const region = displayedRegions[start.regionNumber]
205
- const assembly = self.getAssemblyId(region.assemblyName)
198
+ const assembly = self.getAssemblyId(region.assemblyName) as string
206
199
  const changes = getPropagatedLocationChanges(
207
200
  feature,
208
201
  current.bp,
@@ -11,7 +11,6 @@ import { type Instance, addDisposer, types } from '@jbrowse/mobx-state-tree'
11
11
  import { type Theme, createTheme } from '@mui/material'
12
12
  import { autorun } from 'mobx'
13
13
 
14
- import type { ApolloSessionModel } from '../../session'
15
14
  import { codonColorCode } from '../../util/displayUtils'
16
15
  import { looksLikeGene } from '../../util/glyphUtils'
17
16
 
@@ -137,9 +136,7 @@ export function renderingModelFactory(
137
136
  self.lgv.dynamicBlocks.totalWidthPx,
138
137
  self.featuresHeight,
139
138
  )
140
- for (const collaborator of (
141
- self.session as unknown as ApolloSessionModel
142
- ).collaborators) {
139
+ for (const collaborator of self.session.collaborators) {
143
140
  const { locations } = collaborator
144
141
  if (locations.length === 0) {
145
142
  continue
@@ -10,9 +10,7 @@ import type { OntologyDBNode } from './indexeddb-schema'
10
10
  import { applyPrefixes } from './prefixes'
11
11
  import type { TextIndexFieldDefinition } from './types'
12
12
 
13
- // eslint-disable-next-line import/no-duplicates
14
13
  import type OntologyStore from '.'
15
- // eslint-disable-next-line import/no-duplicates
16
14
  import type { Transaction } from '.'
17
15
 
18
16
  /** special value of jsonPath that gets the IRI (that is, ID) of the node with the configured prefixes applied */
@@ -357,7 +357,7 @@ export default class OntologyStore {
357
357
  startingNodes,
358
358
  (edge) => edge.pred === subclassRelation,
359
359
  direction === 'subclasses' ? 'sub' : 'obj',
360
- myTx as unknown as Transaction<['edges']>,
360
+ myTx,
361
361
  )
362
362
  for (const n of startingNodes) {
363
363
  yield n
@@ -18,8 +18,8 @@ export function handleFeatureTypeChange(
18
18
  typeName: 'TypeChange',
19
19
  changedIds: [featureId],
20
20
  featureId,
21
- oldType: String(oldType),
22
- newType: String(newType),
21
+ oldType,
22
+ newType,
23
23
  assembly: feature.assemblyId,
24
24
  })
25
25
  return changeManager.submit(change)
@@ -1,3 +1,4 @@
1
+ /* eslint-disable @eslint-react/set-state-in-effect */
1
2
  /* eslint-disable @typescript-eslint/unbound-method */
2
3
  import { makeStyles } from '@jbrowse/core/util/tss-react'
3
4
  import { observer } from 'mobx-react'
@@ -41,7 +42,7 @@ export const NumberCell = observer(function NumberCell({
41
42
  if (initialValue !== value) {
42
43
  setValue(initialValue)
43
44
  }
44
- // eslint-disable-next-line react-hooks/exhaustive-deps
45
+ // eslint-disable-next-line @eslint-react/exhaustive-deps
45
46
  }, [initialValue])
46
47
 
47
48
  useEffect(() => {
@@ -59,7 +59,7 @@ export function AddAssemblyAliases({
59
59
  id: assembly.name,
60
60
  name: assembly.displayName,
61
61
  aliases: assembly.aliases.join(', '),
62
- } as AssemblyAlias
62
+ }
63
63
  })
64
64
 
65
65
  const [errorMessage, setErrorMessage] = React.useState('')