@jbrowse/core 2.17.0 → 2.18.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 (308) hide show
  1. package/BaseFeatureWidget/BaseFeatureDetail/ArrayValue.js +1 -2
  2. package/BaseFeatureWidget/BaseFeatureDetail/Attributes.js +4 -8
  3. package/BaseFeatureWidget/BaseFeatureDetail/BaseCard.d.ts +1 -1
  4. package/BaseFeatureWidget/BaseFeatureDetail/BaseCard.js +1 -2
  5. package/BaseFeatureWidget/BaseFeatureDetail/BasicValue.js +2 -3
  6. package/BaseFeatureWidget/BaseFeatureDetail/CoreDetails.d.ts +1 -1
  7. package/BaseFeatureWidget/BaseFeatureDetail/CoreDetails.js +2 -3
  8. package/BaseFeatureWidget/BaseFeatureDetail/DataGridDetails.js +22 -25
  9. package/BaseFeatureWidget/BaseFeatureDetail/FeatureDetails.d.ts +2 -2
  10. package/BaseFeatureWidget/BaseFeatureDetail/FeatureDetails.js +6 -8
  11. package/BaseFeatureWidget/BaseFeatureDetail/Position.d.ts +1 -1
  12. package/BaseFeatureWidget/BaseFeatureDetail/SimpleField.js +1 -1
  13. package/BaseFeatureWidget/BaseFeatureDetail/UriField.js +1 -1
  14. package/BaseFeatureWidget/BaseFeatureDetail/index.d.ts +1 -1
  15. package/BaseFeatureWidget/BaseFeatureDetail/index.js +1 -7
  16. package/BaseFeatureWidget/BaseFeatureDetail/util.js +0 -5
  17. package/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeatureDetails.d.ts +2 -2
  18. package/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeatureDetails.js +0 -7
  19. package/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeaturePanel.d.ts +2 -2
  20. package/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeaturePanel.js +1 -7
  21. package/BaseFeatureWidget/SequenceFeatureDetails/SequencePanel.d.ts +3 -3
  22. package/BaseFeatureWidget/SequenceFeatureDetails/SequencePanel.js +24 -33
  23. package/BaseFeatureWidget/SequenceFeatureDetails/dialogs/HelpDialog.js +1 -2
  24. package/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceDialog.d.ts +2 -2
  25. package/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceDialog.js +3 -4
  26. package/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceFeatureMenu.d.ts +2 -2
  27. package/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceFeatureMenu.js +3 -6
  28. package/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceTypeSelector.d.ts +1 -1
  29. package/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SettingsDialog.d.ts +1 -1
  30. package/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SettingsDialog.js +2 -2
  31. package/BaseFeatureWidget/SequenceFeatureDetails/hooks.d.ts +2 -2
  32. package/BaseFeatureWidget/SequenceFeatureDetails/hooks.js +1 -2
  33. package/BaseFeatureWidget/SequenceFeatureDetails/model.d.ts +2 -56
  34. package/BaseFeatureWidget/SequenceFeatureDetails/model.js +1 -56
  35. package/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/CDNASequence.d.ts +3 -3
  36. package/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/CDSSequence.d.ts +2 -2
  37. package/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/CDSSequence.js +5 -6
  38. package/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/GenomicSequence.d.ts +2 -2
  39. package/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/GenomicSequence.js +0 -1
  40. package/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/ProteinSequence.d.ts +2 -2
  41. package/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/ProteinSequence.js +0 -2
  42. package/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/SequenceDisplay.d.ts +1 -1
  43. package/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/SequenceDisplay.js +1 -3
  44. package/BaseFeatureWidget/SequenceFeatureDetails/util.js +1 -5
  45. package/BaseFeatureWidget/stateModelFactory.d.ts +2 -93
  46. package/BaseFeatureWidget/stateModelFactory.js +3 -73
  47. package/BaseFeatureWidget/types.d.ts +3 -3
  48. package/BaseFeatureWidget/util.js +0 -4
  49. package/CorePlugin.d.ts +1 -1
  50. package/CorePlugin.js +2 -5
  51. package/Plugin.d.ts +2 -5
  52. package/Plugin.js +0 -3
  53. package/PluginLoader.d.ts +1 -1
  54. package/PluginLoader.js +2 -19
  55. package/PluginManager.d.ts +15 -31
  56. package/PluginManager.js +11 -39
  57. package/ReExports/DataGrid.js +0 -1
  58. package/ReExports/list.d.ts +0 -5
  59. package/ReExports/list.js +0 -5
  60. package/ReExports/modules.d.ts +22 -20
  61. package/ReExports/modules.js +16 -25
  62. package/TextSearch/BaseResults.d.ts +3 -3
  63. package/TextSearch/TextSearchManager.d.ts +4 -16
  64. package/TextSearch/TextSearchManager.js +1 -13
  65. package/assemblyManager/assembly.d.ts +5 -100
  66. package/assemblyManager/assembly.js +27 -143
  67. package/assemblyManager/assemblyConfigSchema.d.ts +1 -34
  68. package/assemblyManager/assemblyConfigSchema.js +12 -46
  69. package/assemblyManager/assemblyManager.d.ts +7 -57
  70. package/assemblyManager/assemblyManager.js +2 -57
  71. package/configuration/configurationSchema.d.ts +4 -4
  72. package/configuration/configurationSchema.js +2 -14
  73. package/configuration/configurationSlot.d.ts +1 -12
  74. package/configuration/configurationSlot.js +2 -32
  75. package/configuration/index.d.ts +2 -2
  76. package/configuration/index.js +2 -2
  77. package/configuration/types.d.ts +2 -3
  78. package/configuration/util.d.ts +1 -25
  79. package/configuration/util.js +19 -56
  80. package/data_adapters/BaseAdapter/BaseAdapter.d.ts +4 -14
  81. package/data_adapters/BaseAdapter/BaseAdapter.js +1 -10
  82. package/data_adapters/BaseAdapter/BaseFeatureDataAdapter.d.ts +5 -114
  83. package/data_adapters/BaseAdapter/BaseFeatureDataAdapter.js +3 -79
  84. package/data_adapters/BaseAdapter/BaseOptions.d.ts +2 -2
  85. package/data_adapters/BaseAdapter/BaseRefNameAliasAdapter.d.ts +2 -2
  86. package/data_adapters/BaseAdapter/BaseSequenceAdapter.d.ts +3 -6
  87. package/data_adapters/BaseAdapter/BaseTextSearchAdapter.d.ts +3 -3
  88. package/data_adapters/BaseAdapter/RegionsAdapter.d.ts +3 -3
  89. package/data_adapters/BaseAdapter/index.d.ts +4 -4
  90. package/data_adapters/BaseAdapter/types.d.ts +2 -2
  91. package/data_adapters/BaseAdapter/util.d.ts +6 -6
  92. package/data_adapters/CytobandAdapter/CytobandAdapter.d.ts +1 -1
  93. package/data_adapters/CytobandAdapter/CytobandAdapter.js +1 -2
  94. package/data_adapters/CytobandAdapter/configSchema.d.ts +0 -3
  95. package/data_adapters/CytobandAdapter/configSchema.js +1 -7
  96. package/data_adapters/CytobandAdapter/index.d.ts +1 -1
  97. package/data_adapters/CytobandAdapter/index.js +1 -1
  98. package/data_adapters/dataAdapterCache.d.ts +4 -21
  99. package/data_adapters/dataAdapterCache.js +0 -19
  100. package/package.json +3 -4
  101. package/pluggableElementTypes/AdapterType.d.ts +2 -2
  102. package/pluggableElementTypes/AddTrackWorkflowType.d.ts +2 -2
  103. package/pluggableElementTypes/ConnectionType.d.ts +3 -3
  104. package/pluggableElementTypes/DisplayType.d.ts +3 -9
  105. package/pluggableElementTypes/InternetAccountType.d.ts +2 -2
  106. package/pluggableElementTypes/PluggableElementBase.d.ts +1 -1
  107. package/pluggableElementTypes/PluggableElementBase.js +2 -2
  108. package/pluggableElementTypes/RpcMethodType.d.ts +5 -11
  109. package/pluggableElementTypes/RpcMethodType.js +7 -19
  110. package/pluggableElementTypes/RpcMethodTypeWithFiltersAndRenameRegions.d.ts +9 -0
  111. package/pluggableElementTypes/RpcMethodTypeWithFiltersAndRenameRegions.js +35 -0
  112. package/pluggableElementTypes/TextSearchAdapterType.d.ts +2 -2
  113. package/pluggableElementTypes/TrackType.d.ts +3 -3
  114. package/pluggableElementTypes/ViewType.d.ts +3 -3
  115. package/pluggableElementTypes/WidgetType.d.ts +4 -3
  116. package/pluggableElementTypes/index.d.ts +11 -11
  117. package/pluggableElementTypes/models/BaseConnectionModelFactory.d.ts +2 -29
  118. package/pluggableElementTypes/models/BaseConnectionModelFactory.js +1 -28
  119. package/pluggableElementTypes/models/BaseDisplayModel.d.ts +3 -83
  120. package/pluggableElementTypes/models/BaseDisplayModel.js +2 -69
  121. package/pluggableElementTypes/models/BaseTrackModel.d.ts +4 -46
  122. package/pluggableElementTypes/models/BaseTrackModel.js +0 -58
  123. package/pluggableElementTypes/models/BaseViewModel.d.ts +2 -42
  124. package/pluggableElementTypes/models/BaseViewModel.js +2 -38
  125. package/pluggableElementTypes/models/InternetAccountModel.d.ts +3 -119
  126. package/pluggableElementTypes/models/InternetAccountModel.js +3 -123
  127. package/pluggableElementTypes/models/baseConnectionConfig.d.ts +0 -6
  128. package/pluggableElementTypes/models/baseConnectionConfig.js +1 -13
  129. package/pluggableElementTypes/models/baseInternetAccountConfig.d.ts +0 -15
  130. package/pluggableElementTypes/models/baseInternetAccountConfig.js +1 -23
  131. package/pluggableElementTypes/models/baseTrackConfig.d.ts +2 -53
  132. package/pluggableElementTypes/models/baseTrackConfig.js +1 -58
  133. package/pluggableElementTypes/renderers/BoxRendererType.d.ts +7 -15
  134. package/pluggableElementTypes/renderers/BoxRendererType.js +3 -14
  135. package/pluggableElementTypes/renderers/CircularChordRendererType.d.ts +3 -2
  136. package/pluggableElementTypes/renderers/CircularChordRendererType.js +1 -6
  137. package/pluggableElementTypes/renderers/ComparativeServerSideRendererType.d.ts +6 -21
  138. package/pluggableElementTypes/renderers/ComparativeServerSideRendererType.js +2 -25
  139. package/pluggableElementTypes/renderers/FeatureRendererType.d.ts +5 -47
  140. package/pluggableElementTypes/renderers/FeatureRendererType.js +15 -68
  141. package/pluggableElementTypes/renderers/RendererType.d.ts +4 -8
  142. package/pluggableElementTypes/renderers/RendererType.js +1 -5
  143. package/pluggableElementTypes/renderers/RpcRenderedSvgGroup.d.ts +2 -2
  144. package/pluggableElementTypes/renderers/RpcRenderedSvgGroup.js +3 -12
  145. package/pluggableElementTypes/renderers/ServerSideRenderedContent.d.ts +1 -1
  146. package/pluggableElementTypes/renderers/ServerSideRenderedContent.js +6 -14
  147. package/pluggableElementTypes/renderers/ServerSideRendererType.d.ts +9 -49
  148. package/pluggableElementTypes/renderers/ServerSideRendererType.js +7 -57
  149. package/pluggableElementTypes/renderers/index.d.ts +1 -1
  150. package/pluggableElementTypes/renderers/util/serializableFilterChain.js +1 -3
  151. package/rpc/BaseRpcDriver.d.ts +3 -4
  152. package/rpc/BaseRpcDriver.js +20 -80
  153. package/rpc/MainThreadRpcDriver.d.ts +3 -7
  154. package/rpc/MainThreadRpcDriver.js +0 -5
  155. package/rpc/RpcManager.d.ts +3 -3
  156. package/rpc/RpcManager.js +2 -4
  157. package/rpc/WebWorkerRpcDriver.d.ts +3 -2
  158. package/rpc/WebWorkerRpcDriver.js +2 -13
  159. package/rpc/baseRpcConfig.d.ts +0 -3
  160. package/rpc/baseRpcConfig.js +1 -7
  161. package/rpc/configSchema.d.ts +0 -6
  162. package/rpc/configSchema.js +2 -11
  163. package/rpc/mainThreadRpcConfig.js +1 -7
  164. package/rpc/methods/CoreFreeResources.d.ts +0 -6
  165. package/rpc/methods/CoreFreeResources.js +2 -9
  166. package/rpc/methods/CoreGetFeatureDensityStats.d.ts +4 -5
  167. package/rpc/methods/CoreGetFeatureDensityStats.js +1 -1
  168. package/rpc/methods/CoreGetFeatureDetails.d.ts +2 -7
  169. package/rpc/methods/CoreGetFeatureDetails.js +0 -5
  170. package/rpc/methods/CoreGetFeatures.d.ts +5 -5
  171. package/rpc/methods/CoreGetFeatures.js +4 -5
  172. package/rpc/methods/CoreGetFileInfo.d.ts +1 -2
  173. package/rpc/methods/CoreGetFileInfo.js +1 -1
  174. package/rpc/methods/CoreGetMetadata.d.ts +1 -2
  175. package/rpc/methods/CoreGetMetadata.js +1 -1
  176. package/rpc/methods/CoreGetRefNames.d.ts +1 -2
  177. package/rpc/methods/CoreGetRefNames.js +1 -1
  178. package/rpc/methods/CoreRender.d.ts +2 -6
  179. package/rpc/methods/CoreRender.js +5 -7
  180. package/rpc/methods/util.d.ts +3 -3
  181. package/rpc/methods/util.js +0 -1
  182. package/rpc/webWorkerRpcConfig.js +1 -7
  183. package/stories/JBrowseCore.stories.d.ts +1 -1
  184. package/stories/JBrowseCore.stories.js +3 -3
  185. package/stories/examples/WithSequencePanel.d.ts +1 -1
  186. package/stories/examples/WithSequencePanel.js +3 -3
  187. package/tsconfig.build.tsbuildinfo +1 -1
  188. package/ui/AppLogo.d.ts +1 -1
  189. package/ui/AppLogo.js +0 -2
  190. package/ui/AssemblySelector.d.ts +2 -2
  191. package/ui/AssemblySelector.js +0 -3
  192. package/ui/BaseTooltip.js +2 -6
  193. package/ui/CascadingMenu.d.ts +2 -2
  194. package/ui/CascadingMenu.js +3 -4
  195. package/ui/CascadingMenuButton.d.ts +1 -1
  196. package/ui/CascadingMenuButton.js +1 -1
  197. package/ui/ColorPicker.js +1 -7
  198. package/ui/Dialog.d.ts +1 -1
  199. package/ui/Dialog.js +2 -6
  200. package/ui/DropDownMenu.d.ts +1 -1
  201. package/ui/DropDownMenu.js +2 -2
  202. package/ui/EditableTypography.d.ts +1 -1
  203. package/ui/EditableTypography.js +1 -5
  204. package/ui/ErrorBoundary.d.ts +2 -1
  205. package/ui/ErrorMessage.js +2 -9
  206. package/ui/ErrorMessageStackTraceDialog.js +2 -10
  207. package/ui/FactoryResetDialog.js +1 -1
  208. package/ui/FatalErrorDialog.js +1 -1
  209. package/ui/FileSelector/FileSelector.d.ts +4 -3
  210. package/ui/FileSelector/FileSelector.js +40 -40
  211. package/ui/FileSelector/LocalFileChooser.d.ts +1 -1
  212. package/ui/FileSelector/LocalFileChooser.js +0 -1
  213. package/ui/FileSelector/UrlChooser.d.ts +4 -3
  214. package/ui/FileSelector/UrlChooser.js +5 -3
  215. package/ui/Icons.d.ts +1 -1
  216. package/ui/Icons.js +1 -7
  217. package/ui/LoadingEllipses.d.ts +1 -1
  218. package/ui/LoadingEllipses.js +3 -3
  219. package/ui/Menu.d.ts +1 -1
  220. package/ui/Menu.js +3 -10
  221. package/ui/MenuButton.d.ts +1 -1
  222. package/ui/ResizeHandle.js +2 -2
  223. package/ui/ReturnToImportFormDialog.js +1 -1
  224. package/ui/SanitizedHTML.js +1 -21
  225. package/ui/Snackbar.d.ts +2 -2
  226. package/ui/Snackbar.js +1 -2
  227. package/ui/SnackbarModel.d.ts +1 -26
  228. package/ui/SnackbarModel.js +2 -30
  229. package/ui/colors.d.ts +1 -1
  230. package/ui/colors.js +1 -1
  231. package/ui/react-colorful.js +0 -3
  232. package/ui/theme.d.ts +1 -1
  233. package/ui/theme.js +0 -40
  234. package/util/Base1DUtils.d.ts +1 -1
  235. package/util/Base1DUtils.js +0 -12
  236. package/util/Base1DViewModel.d.ts +4 -81
  237. package/util/Base1DViewModel.js +4 -108
  238. package/util/QuickLRU.js +0 -9
  239. package/util/TimeTraveller.js +0 -4
  240. package/util/aborting.d.ts +0 -20
  241. package/util/aborting.js +0 -31
  242. package/util/analytics.js +1 -12
  243. package/util/blockTypes.d.ts +0 -11
  244. package/util/blockTypes.js +0 -13
  245. package/util/calculateDynamicBlocks.d.ts +1 -20
  246. package/util/calculateDynamicBlocks.js +1 -22
  247. package/util/calculateStaticBlocks.d.ts +2 -2
  248. package/util/calculateStaticBlocks.js +0 -2
  249. package/util/color/cssColorsLevel4.js +0 -1
  250. package/util/color/index.d.ts +0 -19
  251. package/util/color/index.js +0 -30
  252. package/util/compositeMap.js +0 -2
  253. package/util/dedupe.js +0 -1
  254. package/util/formatFastaStrings.d.ts +0 -13
  255. package/util/formatFastaStrings.js +0 -13
  256. package/util/idMaker.d.ts +1 -1
  257. package/util/idMaker.js +16 -12
  258. package/util/index.d.ts +16 -164
  259. package/util/index.js +22 -282
  260. package/util/io/RemoteFileWithRangeCache.d.ts +3 -2
  261. package/util/io/RemoteFileWithRangeCache.js +6 -10
  262. package/util/io/index.d.ts +3 -4
  263. package/util/io/index.js +3 -17
  264. package/util/jexl.js +3 -13
  265. package/util/jexlStrings.d.ts +0 -6
  266. package/util/jexlStrings.js +0 -8
  267. package/util/layouts/BaseLayout.d.ts +1 -1
  268. package/util/layouts/GranularRectLayout.d.ts +1 -17
  269. package/util/layouts/GranularRectLayout.js +4 -81
  270. package/util/layouts/MultiLayout.d.ts +1 -6
  271. package/util/layouts/MultiLayout.js +0 -6
  272. package/util/layouts/PrecomputedLayout.d.ts +1 -4
  273. package/util/layouts/PrecomputedLayout.js +0 -5
  274. package/util/layouts/PrecomputedMultiLayout.js +0 -2
  275. package/util/layouts/SceneGraph.d.ts +0 -12
  276. package/util/layouts/SceneGraph.js +0 -13
  277. package/util/makeAbortableReaction.d.ts +2 -0
  278. package/util/makeAbortableReaction.js +50 -0
  279. package/util/map-obj.js +0 -4
  280. package/util/mst-reflection.d.ts +1 -14
  281. package/util/mst-reflection.js +1 -28
  282. package/util/nanoid.js +0 -31
  283. package/util/nextTick.d.ts +1 -0
  284. package/util/nextTick.js +6 -0
  285. package/util/offscreenCanvasPonyfill.d.ts +0 -1
  286. package/util/offscreenCanvasPonyfill.js +1 -9
  287. package/util/offscreenCanvasUtils.js +1 -8
  288. package/util/range.d.ts +0 -25
  289. package/util/range.js +0 -34
  290. package/util/rxjs.d.ts +3 -7
  291. package/util/rxjs.js +2 -9
  292. package/util/simpleFeature.d.ts +0 -50
  293. package/util/simpleFeature.js +0 -35
  294. package/util/stats.d.ts +3 -26
  295. package/util/stats.js +0 -25
  296. package/util/stopToken.d.ts +3 -0
  297. package/util/stopToken.js +29 -0
  298. package/util/tracks.d.ts +3 -25
  299. package/util/tracks.js +0 -30
  300. package/util/types/index.d.ts +14 -30
  301. package/util/types/index.js +5 -14
  302. package/util/types/mst.js +0 -9
  303. package/util/types/util.d.ts +2 -9
  304. package/util/useMeasure.js +0 -1
  305. package/util/when.d.ts +1 -15
  306. package/util/when.js +3 -70
  307. package/rpc/remoteAbortSignals.d.ts +0 -36
  308. package/rpc/remoteAbortSignals.js +0 -79
@@ -3,111 +3,66 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createBaseTrackConfig = createBaseTrackConfig;
4
4
  const mobx_state_tree_1 = require("mobx-state-tree");
5
5
  const configuration_1 = require("../../configuration");
6
- /**
7
- * #config BaseTrack
8
- */
9
6
  function createBaseTrackConfig(pluginManager) {
10
7
  return (0, configuration_1.ConfigurationSchema)('BaseTrack', {
11
- /**
12
- * #slot
13
- */
14
8
  name: {
15
9
  description: 'descriptive name of the track',
16
10
  type: 'string',
17
11
  defaultValue: 'Track',
18
12
  },
19
- /**
20
- * #slot
21
- */
22
13
  assemblyNames: {
23
14
  description: 'name of the assembly (or assemblies) track belongs to',
24
15
  type: 'stringArray',
25
16
  defaultValue: ['assemblyName'],
26
17
  },
27
- /**
28
- * #slot
29
- */
30
18
  description: {
31
19
  description: 'a description of the track',
32
20
  type: 'string',
33
21
  defaultValue: '',
34
22
  },
35
- /**
36
- * #slot
37
- */
38
23
  category: {
39
24
  description: 'the category and sub-categories of a track',
40
25
  type: 'stringArray',
41
26
  defaultValue: [],
42
27
  },
43
- /**
44
- * #slot
45
- */
46
28
  metadata: {
47
29
  type: 'frozen',
48
30
  description: 'anything to add about this track',
49
31
  defaultValue: {},
50
32
  },
51
- /**
52
- * #slot
53
- */
54
33
  adapter: pluginManager.pluggableConfigSchemaType('adapter'),
55
34
  textSearching: (0, configuration_1.ConfigurationSchema)('textSearching', {
56
- /**
57
- * #slot textSearching.indexedAttributes
58
- */
59
35
  indexingAttributes: {
60
36
  type: 'stringArray',
61
37
  description: 'list of which feature attributes to index for text searching',
62
38
  defaultValue: ['Name', 'ID'],
63
39
  },
64
- /**
65
- * #slot textSearching.indexingFeatureTypesToExclude
66
- */
67
40
  indexingFeatureTypesToExclude: {
68
41
  type: 'stringArray',
69
42
  description: 'list of feature types to exclude in text search index',
70
43
  defaultValue: ['CDS', 'exon'],
71
44
  },
72
- /**
73
- * #slot textSearching.textSearchAdapter
74
- */
75
45
  textSearchAdapter: pluginManager.pluggableConfigSchemaType('text search adapter'),
76
46
  }),
77
- /**
78
- * #slot
79
- */
80
47
  displays: mobx_state_tree_1.types.array(pluginManager.pluggableConfigSchemaType('display')),
81
48
  formatDetails: (0, configuration_1.ConfigurationSchema)('FormatDetails', {
82
- /**
83
- * #slot formatDetails.feature
84
- */
85
49
  feature: {
86
50
  type: 'frozen',
87
51
  description: 'adds extra fields to the feature details',
88
52
  defaultValue: {},
89
53
  contextVariable: ['feature'],
90
54
  },
91
- /**
92
- * #slot formatDetails.subfeatures
93
- */
94
55
  subfeatures: {
95
56
  type: 'frozen',
96
57
  description: 'adds extra fields to the subfeatures of a feature',
97
58
  defaultValue: {},
98
59
  contextVariable: ['feature'],
99
60
  },
100
- /**
101
- * #slot formatDetails.depth
102
- */
103
61
  depth: {
104
62
  type: 'number',
105
63
  defaultValue: 2,
106
64
  description: 'depth of subfeatures to iterate the formatter on formatDetails.subfeatures (e.g. you may not want to format the exon/cds subfeatures, so limited to 2',
107
65
  },
108
- /**
109
- * #slot formatDetails.maxDepth
110
- */
111
66
  maxDepth: {
112
67
  type: 'number',
113
68
  defaultValue: 99999,
@@ -115,18 +70,12 @@ function createBaseTrackConfig(pluginManager) {
115
70
  },
116
71
  }),
117
72
  formatAbout: (0, configuration_1.ConfigurationSchema)('FormatAbout', {
118
- /**
119
- * #slot formatAbout.config
120
- */
121
73
  config: {
122
74
  type: 'frozen',
123
75
  description: 'formats configuration object in about dialog',
124
76
  defaultValue: {},
125
77
  contextVariable: ['config'],
126
78
  },
127
- /**
128
- * #slot formatAbout.hideUris
129
- */
130
79
  hideUris: {
131
80
  type: 'boolean',
132
81
  defaultValue: false,
@@ -134,12 +83,9 @@ function createBaseTrackConfig(pluginManager) {
134
83
  }),
135
84
  }, {
136
85
  preProcessSnapshot: s2 => {
137
- const snap = pluginManager.evaluateExtensionPoint('Core-preProcessTrackConfig', JSON.parse(JSON.stringify(s2)));
86
+ const snap = pluginManager.evaluateExtensionPoint('Core-preProcessTrackConfig', structuredClone(s2));
138
87
  const { displays = [] } = snap;
139
88
  if (snap.trackId !== 'placeholderId') {
140
- // Gets the displays on the track snapshot and the possible displays
141
- // from the track type and adds any missing possible displays to the
142
- // snapshot
143
89
  const configDisplayTypes = new Set(displays.map(d => d.type));
144
90
  pluginManager.getTrackType(snap.type).displayTypes.forEach(d => {
145
91
  if (!configDisplayTypes.has(d.name)) {
@@ -152,9 +98,6 @@ function createBaseTrackConfig(pluginManager) {
152
98
  }
153
99
  return { ...snap, displays };
154
100
  },
155
- /**
156
- * #identifier
157
- */
158
101
  explicitIdentifier: 'trackId',
159
102
  explicitlyTyped: true,
160
103
  actions: (self) => ({
@@ -1,12 +1,13 @@
1
+ import FeatureRendererType from './FeatureRendererType';
1
2
  import GranularRectLayout from '../../util/layouts/GranularRectLayout';
2
3
  import MultiLayout from '../../util/layouts/MultiLayout';
3
- import { SerializedLayout, BaseLayout } from '../../util/layouts/BaseLayout';
4
4
  import PrecomputedLayout from '../../util/layouts/PrecomputedLayout';
5
- import FeatureRendererType, { RenderArgs as FeatureRenderArgs, RenderArgsSerialized as FeatureRenderArgsSerialized, RenderArgsDeserialized as FeatureRenderArgsDeserialized, RenderResults as FeatureRenderResults, ResultsSerialized as FeatureResultsSerialized, ResultsDeserialized as FeatureResultsDeserialized } from './FeatureRendererType';
6
- import { Region, Feature } from '../../util';
7
- import { AnyConfigurationModel } from '../../configuration';
8
- import SerializableFilterChain from './util/serializableFilterChain';
9
- import RpcManager from '../../rpc/RpcManager';
5
+ import type { RenderArgs as FeatureRenderArgs, RenderArgsDeserialized as FeatureRenderArgsDeserialized, RenderArgsSerialized as FeatureRenderArgsSerialized, RenderResults as FeatureRenderResults, ResultsDeserialized as FeatureResultsDeserialized, ResultsSerialized as FeatureResultsSerialized } from './FeatureRendererType';
6
+ import type { AnyConfigurationModel } from '../../configuration';
7
+ import type { Feature, Region } from '../../util';
8
+ import type SerializableFilterChain from './util/serializableFilterChain';
9
+ import type RpcManager from '../../rpc/RpcManager';
10
+ import type { BaseLayout, SerializedLayout } from '../../util/layouts/BaseLayout';
10
11
  export interface LayoutSessionProps {
11
12
  config: AnyConfigurationModel;
12
13
  bpPerPx: number;
@@ -25,10 +26,6 @@ export declare class LayoutSession implements LayoutSessionProps {
25
26
  constructor(args: LayoutSessionProps);
26
27
  update(props: LayoutSessionProps): void;
27
28
  makeLayout(): MultiLayout<GranularRectLayout<unknown>, unknown>;
28
- /**
29
- * @param layout -
30
- * @returns true if the given layout is a valid one to use for this session
31
- */
32
29
  cachedLayoutIsValid(cachedLayout: CachedLayout): boolean;
33
30
  cachedLayout: CachedLayout | undefined;
34
31
  get layout(): MyMultiLayout;
@@ -74,10 +71,5 @@ export default class BoxRendererType extends FeatureRendererType {
74
71
  deserializeResultsInClient(result: ResultsSerialized, args: RenderArgs): ResultsDeserialized;
75
72
  createLayoutInWorker(args: RenderArgsDeserialized): GranularRectLayout<unknown>;
76
73
  serializeResultsInWorker(results: RenderResults, args: RenderArgsDeserialized): ResultsSerialized;
77
- /**
78
- * gets layout and renders
79
- *
80
- * @param props - render args
81
- */
82
74
  render(props: RenderArgsDeserialized): Promise<RenderResults>;
83
75
  }
@@ -5,14 +5,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.LayoutSession = void 0;
7
7
  const fast_deep_equal_1 = __importDefault(require("fast-deep-equal"));
8
- // layouts
8
+ const FeatureRendererType_1 = __importDefault(require("./FeatureRendererType"));
9
+ const configuration_1 = require("../../configuration");
10
+ const util_1 = require("../../util");
9
11
  const GranularRectLayout_1 = __importDefault(require("../../util/layouts/GranularRectLayout"));
10
12
  const MultiLayout_1 = __importDefault(require("../../util/layouts/MultiLayout"));
11
13
  const PrecomputedLayout_1 = __importDefault(require("../../util/layouts/PrecomputedLayout"));
12
- // other
13
- const FeatureRendererType_1 = __importDefault(require("./FeatureRendererType"));
14
- const util_1 = require("../../util");
15
- const configuration_1 = require("../../configuration");
16
14
  class LayoutSession {
17
15
  constructor(args) {
18
16
  this.config = args.config;
@@ -31,10 +29,6 @@ class LayoutSession {
31
29
  pitchY: (0, configuration_1.readConfObject)(this.config, 'noSpacing') ? 1 : 3,
32
30
  });
33
31
  }
34
- /**
35
- * @param layout -
36
- * @returns true if the given layout is a valid one to use for this session
37
- */
38
32
  cachedLayoutIsValid(cachedLayout) {
39
33
  return (cachedLayout.layout.subLayoutConstructorArgs.pitchX === this.bpPerPx &&
40
34
  (0, fast_deep_equal_1.default)((0, configuration_1.readConfObject)(this.config), cachedLayout.config) &&
@@ -111,11 +105,6 @@ class BoxRendererType extends FeatureRendererType_1.default {
111
105
  serialized.maxHeightReached = serialized.layout.maxHeightReached;
112
106
  return serialized;
113
107
  }
114
- /**
115
- * gets layout and renders
116
- *
117
- * @param props - render args
118
- */
119
108
  async render(props) {
120
109
  const layout = props.layout ||
121
110
  this.createLayoutInWorker(props);
@@ -1,7 +1,8 @@
1
1
  import React from 'react';
2
- import { SimpleFeature, SimpleFeatureSerialized } from '../../util';
3
2
  import FeatureRenderer from './FeatureRendererType';
4
- import { ThemeOptions } from '@mui/material';
3
+ import { SimpleFeature } from '../../util';
4
+ import type { SimpleFeatureSerialized } from '../../util';
5
+ import type { ThemeOptions } from '@mui/material';
5
6
  export default class CircularChordRendererType extends FeatureRenderer {
6
7
  supportsSVG: boolean;
7
8
  deserializeResultsInClient(res: {
@@ -4,9 +4,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const react_1 = __importDefault(require("react"));
7
- const util_1 = require("../../util");
8
7
  const FeatureRendererType_1 = __importDefault(require("./FeatureRendererType"));
9
8
  const RpcRenderedSvgGroup_1 = __importDefault(require("./RpcRenderedSvgGroup"));
9
+ const util_1 = require("../../util");
10
10
  class CircularChordRendererType extends FeatureRendererType_1.default {
11
11
  constructor() {
12
12
  super(...arguments);
@@ -14,11 +14,7 @@ class CircularChordRendererType extends FeatureRendererType_1.default {
14
14
  }
15
15
  deserializeResultsInClient(res, args) {
16
16
  const deserializedFeatures = new Map(res.features.map(f => util_1.SimpleFeature.fromJSON(f)).map(f => [f.id(), f]));
17
- // if we are rendering svg, we skip hydration
18
17
  if (args.exportSVG) {
19
- // only return the res if the renderer explicitly has
20
- // this.supportsSVG support to avoid garbage being rendered in SVG
21
- // document
22
18
  return {
23
19
  ...res,
24
20
  features: deserializedFeatures,
@@ -28,7 +24,6 @@ class CircularChordRendererType extends FeatureRendererType_1.default {
28
24
  : '<text y="12" fill="black">SVG export not supported for this track</text>',
29
25
  };
30
26
  }
31
- // hydrate res using ServerSideRenderedContent
32
27
  return {
33
28
  ...res,
34
29
  features: deserializedFeatures,
@@ -1,8 +1,9 @@
1
- import { Feature } from '../../util/simpleFeature';
2
- import { Region } from '../../util/types';
3
- import ServerSideRenderer, { RenderArgs as ServerSideRenderArgs, RenderArgsSerialized as ServerSideRenderArgsSerialized, RenderArgsDeserialized as ServerSideRenderArgsDeserialized, ResultsSerialized as ServerSideResultsSerialized, ResultsDeserialized as ServerSideResultsDeserialized } from './ServerSideRendererType';
4
- import RpcManager from '../../rpc/RpcManager';
5
- import { AnyConfigurationModel } from '../../configuration';
1
+ import ServerSideRenderer from './ServerSideRendererType';
2
+ import type { RenderArgs as ServerSideRenderArgs, RenderArgsDeserialized as ServerSideRenderArgsDeserialized, RenderArgsSerialized as ServerSideRenderArgsSerialized, ResultsDeserialized as ServerSideResultsDeserialized, ResultsSerialized as ServerSideResultsSerialized } from './ServerSideRendererType';
3
+ import type { AnyConfigurationModel } from '../../configuration';
4
+ import type RpcManager from '../../rpc/RpcManager';
5
+ import type { Feature } from '../../util/simpleFeature';
6
+ import type { Region } from '../../util/types';
6
7
  export interface RenderArgs extends ServerSideRenderArgs {
7
8
  blockKey: string;
8
9
  }
@@ -23,26 +24,10 @@ export interface ResultsSerializedSvgExport extends ResultsSerialized {
23
24
  reactElement: unknown;
24
25
  }
25
26
  export default class ComparativeServerSideRenderer extends ServerSideRenderer {
26
- /**
27
- * directly modifies the render arguments to prepare them to be serialized
28
- * and sent to the worker.
29
- *
30
- * @param args - the arguments passed to render
31
- * @returns the same object
32
- */
33
27
  renameRegionsIfNeeded(args: RenderArgs): Promise<RenderArgs>;
34
28
  serializeArgsInClient(args: RenderArgs): ServerSideRenderArgsSerialized;
35
29
  deserializeResultsInClient(result: ResultsSerialized, args: RenderArgs): ResultsDeserialized;
36
- /**
37
- * Render method called on the client. Serializes args, then
38
- * calls `render` with the RPC manager.
39
- */
40
30
  renderInClient(rpcManager: RpcManager, args: RenderArgs): Promise<ServerSideResultsSerialized>;
41
- /**
42
- * @param renderArgs -
43
- * @param feature -
44
- * @returns true if this feature passes all configured filters
45
- */
46
31
  featurePassesFilters(renderArgs: RenderArgsDeserialized, feature: Feature): boolean;
47
32
  getFeatures(renderArgs: {
48
33
  regions: Region[];
@@ -3,22 +3,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ const rxjs_1 = require("rxjs");
6
7
  const operators_1 = require("rxjs/operators");
7
8
  const ServerSideRendererType_1 = __importDefault(require("./ServerSideRendererType"));
8
9
  const dataAdapterCache_1 = require("../../data_adapters/dataAdapterCache");
9
10
  const util_1 = require("../../util");
10
- const rxjs_1 = require("rxjs");
11
11
  function isSvgExport(e) {
12
12
  return 'canvasRecordedData' in e;
13
13
  }
14
14
  class ComparativeServerSideRenderer extends ServerSideRendererType_1.default {
15
- /**
16
- * directly modifies the render arguments to prepare them to be serialized
17
- * and sent to the worker.
18
- *
19
- * @param args - the arguments passed to render
20
- * @returns the same object
21
- */
22
15
  async renameRegionsIfNeeded(args) {
23
16
  return args;
24
17
  }
@@ -29,7 +22,6 @@ class ComparativeServerSideRenderer extends ServerSideRendererType_1.default {
29
22
  };
30
23
  return super.serializeArgsInClient(deserializedArgs);
31
24
  }
32
- // deserialize some of the results that came back from the worker
33
25
  deserializeResultsInClient(result, args) {
34
26
  const deserialized = super.deserializeResultsInClient(result, args);
35
27
  return {
@@ -37,10 +29,6 @@ class ComparativeServerSideRenderer extends ServerSideRendererType_1.default {
37
29
  blockKey: args.blockKey,
38
30
  };
39
31
  }
40
- /**
41
- * Render method called on the client. Serializes args, then
42
- * calls `render` with the RPC manager.
43
- */
44
32
  async renderInClient(rpcManager, args) {
45
33
  const results = (await rpcManager.call(args.sessionId, 'ComparativeRender', args));
46
34
  if (isSvgExport(results)) {
@@ -49,11 +37,6 @@ class ComparativeServerSideRenderer extends ServerSideRendererType_1.default {
49
37
  }
50
38
  return results;
51
39
  }
52
- /**
53
- * @param renderArgs -
54
- * @param feature -
55
- * @returns true if this feature passes all configured filters
56
- */
57
40
  featurePassesFilters(renderArgs, feature) {
58
41
  return renderArgs.filters
59
42
  ? renderArgs.filters.passes(feature, renderArgs)
@@ -64,8 +47,6 @@ class ComparativeServerSideRenderer extends ServerSideRendererType_1.default {
64
47
  const { regions, sessionId, adapterConfig } = renderArgs;
65
48
  const { dataAdapter } = await (0, dataAdapterCache_1.getAdapter)(pm, sessionId, adapterConfig);
66
49
  const requestRegions = regions.map(r => {
67
- // make sure the requested region's start and end are integers, if
68
- // there is a region specification.
69
50
  const requestRegion = { ...r };
70
51
  if (requestRegion.start) {
71
52
  requestRegion.start = Math.floor(requestRegion.start);
@@ -75,13 +56,9 @@ class ComparativeServerSideRenderer extends ServerSideRendererType_1.default {
75
56
  }
76
57
  return requestRegion;
77
58
  });
78
- // note that getFeaturesInMultipleRegions does not do glyph expansion
79
59
  const res = await (0, rxjs_1.firstValueFrom)(dataAdapter
80
60
  .getFeaturesInMultipleRegions(requestRegions, renderArgs)
81
- .pipe(
82
- // @ts-expect-error
83
- (0, operators_1.filter)(f => this.featurePassesFilters(renderArgs, f)), (0, operators_1.toArray)()));
84
- // dedupe needed xref https://github.com/GMOD/jbrowse-components/pull/3404/
61
+ .pipe((0, operators_1.filter)(f => this.featurePassesFilters(renderArgs, f)), (0, operators_1.toArray)()));
85
62
  return (0, util_1.dedupe)(res, f => f.id());
86
63
  }
87
64
  }
@@ -1,7 +1,8 @@
1
- import { Feature, SimpleFeatureSerialized } from '../../util/simpleFeature';
2
- import { AugmentedRegion as Region } from '../../util/types';
3
- import ServerSideRendererType, { RenderArgs as ServerSideRenderArgs, RenderArgsSerialized as ServerSideRenderArgsSerialized, RenderArgsDeserialized as ServerSideRenderArgsDeserialized, RenderResults as ServerSideRenderResults, ResultsDeserialized as ServerSideResultsDeserialized, ResultsSerialized as ServerSideResultsSerialized } from './ServerSideRendererType';
4
- import { AnyConfigurationModel } from '../../configuration';
1
+ import ServerSideRendererType from './ServerSideRendererType';
2
+ import type { RenderArgs as ServerSideRenderArgs, RenderArgsDeserialized as ServerSideRenderArgsDeserialized, RenderArgsSerialized as ServerSideRenderArgsSerialized, RenderResults as ServerSideRenderResults, ResultsDeserialized as ServerSideResultsDeserialized, ResultsSerialized as ServerSideResultsSerialized } from './ServerSideRendererType';
3
+ import type { AnyConfigurationModel } from '../../configuration';
4
+ import type { Feature, SimpleFeatureSerialized } from '../../util/simpleFeature';
5
+ import type { AugmentedRegion as Region } from '../../util/types';
5
6
  export interface RenderArgs extends ServerSideRenderArgs {
6
7
  displayModel?: {
7
8
  id: string;
@@ -38,55 +39,12 @@ export interface ResultsDeserialized extends ServerSideResultsDeserialized {
38
39
  blockKey: string;
39
40
  }
40
41
  export default class FeatureRendererType extends ServerSideRendererType {
41
- /**
42
- * replaces the `displayModel` param (which on the client is a MST model)
43
- * with a stub that only contains the `selectedFeature`, since this is the
44
- * only part of the track model that most renderers read. also serializes the
45
- * config and regions to JSON from MST objects.
46
- *
47
- * @param args - the arguments passed to render
48
- */
49
42
  serializeArgsInClient(args: RenderArgs): ServerSideRenderArgsSerialized;
50
- /**
51
- * Adds feature deserialization to base server-side result deserialization
52
- *
53
- * @param results - the results of the render
54
- * @param args - the arguments passed to render
55
- */
56
43
  deserializeResultsInClient(result: ResultsSerialized, args: RenderArgs): ResultsDeserialized;
57
- /**
58
- * Adds feature serialization to base server-side result serialization
59
- *
60
- * @param result - object containing the results of calling the `render`
61
- * method
62
- * @param args - deserialized render args
63
- */
64
44
  serializeResultsInWorker(result: RenderResults, args: RenderArgsDeserialized): ResultsSerialized;
65
- /**
66
- * will expand if soft clipping or feature glyphs are shown
67
- *
68
- * @param region - rendering region
69
- * @param _renderArgs - render args, unused, may be used in deriving classes
70
- */
71
45
  getExpandedRegion(region: Region, _renderArgs: RenderArgsDeserialized): Region;
72
- /**
73
- * use the dataAdapter to fetch the features to be rendered
74
- *
75
- * @param renderArgs -
76
- * @returns Map of features as `{ id => feature, ... }`
77
- */
78
46
  getFeatures(renderArgs: RenderArgsDeserialized): Promise<Map<string, Feature>>;
79
- /**
80
- * @param renderArgs -
81
- * @param feature -
82
- * @returns true if this feature passes all configured filters
83
- */
84
47
  featurePassesFilters(renderArgs: RenderArgsDeserialized, feature: Feature): boolean;
85
- /**
86
- * gets features and renders
87
- *
88
- * @param props - render args
89
- */
90
48
  render(props: RenderArgsDeserialized & {
91
49
  features?: Map<string, Feature>;
92
50
  }): Promise<RenderResults>;
@@ -3,39 +3,22 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- const operators_1 = require("rxjs/operators");
7
- const clone_1 = __importDefault(require("clone"));
8
6
  const rxjs_1 = require("rxjs");
9
- // locals
10
- const util_1 = require("../../util");
11
- const simpleFeature_1 = __importDefault(require("../../util/simpleFeature"));
12
- const dataAdapterCache_1 = require("../../data_adapters/dataAdapterCache");
7
+ const operators_1 = require("rxjs/operators");
13
8
  const ServerSideRendererType_1 = __importDefault(require("./ServerSideRendererType"));
14
9
  const BaseAdapter_1 = require("../../data_adapters/BaseAdapter");
10
+ const dataAdapterCache_1 = require("../../data_adapters/dataAdapterCache");
11
+ const util_1 = require("../../util");
12
+ const simpleFeature_1 = __importDefault(require("../../util/simpleFeature"));
13
+ const stopToken_1 = require("../../util/stopToken");
15
14
  class FeatureRendererType extends ServerSideRendererType_1.default {
16
- /**
17
- * replaces the `displayModel` param (which on the client is a MST model)
18
- * with a stub that only contains the `selectedFeature`, since this is the
19
- * only part of the track model that most renderers read. also serializes the
20
- * config and regions to JSON from MST objects.
21
- *
22
- * @param args - the arguments passed to render
23
- */
24
15
  serializeArgsInClient(args) {
25
- const { regions } = args;
26
- const serializedArgs = {
16
+ return super.serializeArgsInClient({
27
17
  ...args,
28
18
  displayModel: undefined,
29
- regions: (0, clone_1.default)(regions),
30
- };
31
- return super.serializeArgsInClient(serializedArgs);
19
+ regions: structuredClone(args.regions),
20
+ });
32
21
  }
33
- /**
34
- * Adds feature deserialization to base server-side result deserialization
35
- *
36
- * @param results - the results of the render
37
- * @param args - the arguments passed to render
38
- */
39
22
  deserializeResultsInClient(result, args) {
40
23
  const deserializedFeatures = new Map(result.features.map(f => simpleFeature_1.default.fromJSON(f)).map(f => [f.id(), f]));
41
24
  const deserialized = super.deserializeResultsInClient({
@@ -48,13 +31,6 @@ class FeatureRendererType extends ServerSideRendererType_1.default {
48
31
  features: deserializedFeatures,
49
32
  };
50
33
  }
51
- /**
52
- * Adds feature serialization to base server-side result serialization
53
- *
54
- * @param result - object containing the results of calling the `render`
55
- * method
56
- * @param args - deserialized render args
57
- */
58
34
  serializeResultsInWorker(result, args) {
59
35
  const serialized = super.serializeResultsInWorker(result, args);
60
36
  const { features } = result;
@@ -63,65 +39,36 @@ class FeatureRendererType extends ServerSideRendererType_1.default {
63
39
  features: (0, util_1.iterMap)(features.values(), f => f.toJSON(), features.size),
64
40
  };
65
41
  }
66
- /**
67
- * will expand if soft clipping or feature glyphs are shown
68
- *
69
- * @param region - rendering region
70
- * @param _renderArgs - render args, unused, may be used in deriving classes
71
- */
72
42
  getExpandedRegion(region, _renderArgs) {
73
43
  return region;
74
44
  }
75
- /**
76
- * use the dataAdapter to fetch the features to be rendered
77
- *
78
- * @param renderArgs -
79
- * @returns Map of features as `{ id => feature, ... }`
80
- */
81
45
  async getFeatures(renderArgs) {
82
46
  const pm = this.pluginManager;
83
- const { signal, regions, sessionId, adapterConfig } = renderArgs;
47
+ const { stopToken, regions, sessionId, adapterConfig } = renderArgs;
84
48
  const { dataAdapter } = await (0, dataAdapterCache_1.getAdapter)(pm, sessionId, adapterConfig);
85
49
  if (!(0, BaseAdapter_1.isFeatureAdapter)(dataAdapter)) {
86
50
  throw new Error('Adapter does not support retrieving features');
87
51
  }
88
- // make sure the requested region's start and end are integers, if
89
- // there is a region specification.
90
- const requestRegions = regions.map(r => {
91
- const requestRegion = { ...r };
92
- if (requestRegion.start) {
93
- requestRegion.start = Math.floor(requestRegion.start);
94
- }
95
- if (requestRegion.end) {
96
- requestRegion.end = Math.ceil(requestRegion.end);
97
- }
98
- return requestRegion;
99
- });
52
+ const requestRegions = regions.map(r => ({
53
+ ...r,
54
+ start: Math.floor(r.start),
55
+ end: Math.ceil(r.end),
56
+ }));
100
57
  const region = requestRegions[0];
101
58
  const featureObservable = requestRegions.length === 1
102
59
  ? dataAdapter.getFeatures(this.getExpandedRegion(region, renderArgs), renderArgs)
103
60
  : dataAdapter.getFeaturesInMultipleRegions(requestRegions, renderArgs);
104
61
  const feats = await (0, rxjs_1.firstValueFrom)(featureObservable.pipe((0, operators_1.toArray)()));
105
- (0, util_1.checkAbortSignal)(signal);
62
+ (0, stopToken_1.checkStopToken)(stopToken);
106
63
  return new Map(feats
107
64
  .filter(feat => this.featurePassesFilters(renderArgs, feat))
108
65
  .map(feat => [feat.id(), feat]));
109
66
  }
110
- /**
111
- * @param renderArgs -
112
- * @param feature -
113
- * @returns true if this feature passes all configured filters
114
- */
115
67
  featurePassesFilters(renderArgs, feature) {
116
68
  return renderArgs.filters
117
69
  ? renderArgs.filters.passes(feature, renderArgs)
118
70
  : true;
119
71
  }
120
- /**
121
- * gets features and renders
122
- *
123
- * @param props - render args
124
- */
125
72
  async render(props) {
126
73
  const features = props.features || (await this.getFeatures(props));
127
74
  const result = await super.render({ ...props, features });
@@ -1,8 +1,8 @@
1
- import { ReactElement } from 'react';
1
+ import type { ReactElement } from 'react';
2
2
  import PluggableElementBase from '../PluggableElementBase';
3
- import { AnyConfigurationSchemaType } from '../../configuration';
4
- import { AnyReactComponentType } from '../../util';
5
- import PluginManager from '../../PluginManager';
3
+ import type PluginManager from '../../PluginManager';
4
+ import type { AnyConfigurationSchemaType } from '../../configuration';
5
+ import type { AnyReactComponentType } from '../../util';
6
6
  export type RenderProps = Record<string, unknown>;
7
7
  export interface RenderResults {
8
8
  reactElement?: ReactElement;
@@ -21,9 +21,5 @@ export default class RendererType extends PluggableElementBase {
21
21
  pluginManager: PluginManager;
22
22
  });
23
23
  render(props: RenderProps): Promise<RenderResults>;
24
- /**
25
- * frees resources associated with the given range, session, etc.
26
- * optionally returns the number of data items deleted
27
- */
28
24
  freeResources(): number;
29
25
  }
@@ -18,11 +18,7 @@ class RendererType extends PluggableElementBase_1.default {
18
18
  reactElement: react_1.default.createElement(this.ReactComponent, props, null),
19
19
  };
20
20
  }
21
- /**
22
- * frees resources associated with the given range, session, etc.
23
- * optionally returns the number of data items deleted
24
- */
25
- freeResources( /* specification: {} */) {
21
+ freeResources() {
26
22
  return 0;
27
23
  }
28
24
  }
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
- import { AnyReactComponentType, Feature } from '../../util';
3
- import { ThemeOptions } from '@mui/material';
2
+ import type { AnyReactComponentType, Feature } from '../../util';
3
+ import type { ThemeOptions } from '@mui/material';
4
4
  interface Props {
5
5
  html: string;
6
6
  features: Map<string, Feature>;