@jbrowse/plugin-data-management 2.4.0 → 2.4.2

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 (98) hide show
  1. package/dist/AddTrackWidget/components/ConfirmTrack.js +1 -1
  2. package/dist/AddTrackWidget/components/ConfirmTrack.js.map +1 -1
  3. package/dist/AddTrackWidget/components/TrackAdapterSelector.js +1 -1
  4. package/dist/AddTrackWidget/components/TrackAdapterSelector.js.map +1 -1
  5. package/dist/AddTrackWidget/components/TrackTypeSelector.js +1 -1
  6. package/dist/AddTrackWidget/components/TrackTypeSelector.js.map +1 -1
  7. package/dist/AddTrackWidget/model.js +5 -5
  8. package/dist/AddTrackWidget/model.js.map +1 -1
  9. package/dist/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.js +1 -1
  10. package/dist/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.js.map +1 -1
  11. package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetFilters.js +9 -9
  12. package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetFilters.js.map +1 -1
  13. package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetedSelector.js +1 -1
  14. package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetedSelector.js.map +1 -1
  15. package/dist/HierarchicalTrackSelectorWidget/components/tree/HamburgerMenu.js +0 -1
  16. package/dist/HierarchicalTrackSelectorWidget/components/tree/HamburgerMenu.js.map +1 -1
  17. package/dist/HierarchicalTrackSelectorWidget/components/tree/HierarchicalTree.js +2 -2
  18. package/dist/HierarchicalTrackSelectorWidget/components/tree/HierarchicalTree.js.map +1 -1
  19. package/dist/HierarchicalTrackSelectorWidget/components/tree/TrackLabel.js +1 -1
  20. package/dist/HierarchicalTrackSelectorWidget/components/tree/TrackLabel.js.map +1 -1
  21. package/dist/HierarchicalTrackSelectorWidget/components/util.js +1 -1
  22. package/dist/HierarchicalTrackSelectorWidget/components/util.js.map +1 -1
  23. package/dist/HierarchicalTrackSelectorWidget/index.d.ts +2 -4
  24. package/dist/HierarchicalTrackSelectorWidget/index.js +4 -2
  25. package/dist/HierarchicalTrackSelectorWidget/index.js.map +1 -1
  26. package/dist/HierarchicalTrackSelectorWidget/model.d.ts +1 -1
  27. package/dist/HierarchicalTrackSelectorWidget/model.js +15 -6
  28. package/dist/HierarchicalTrackSelectorWidget/model.js.map +1 -1
  29. package/dist/PluginStoreWidget/components/InstalledPluginsList.js +4 -4
  30. package/dist/PluginStoreWidget/components/InstalledPluginsList.js.map +1 -1
  31. package/dist/PluginStoreWidget/components/PluginCard.js +2 -1
  32. package/dist/PluginStoreWidget/components/PluginCard.js.map +1 -1
  33. package/dist/index.d.ts +2 -3
  34. package/dist/index.js.map +1 -1
  35. package/dist/ucsc-trackhub/ucscTrackHub.d.ts +1 -2
  36. package/dist/ucsc-trackhub/ucscTrackHub.js +11 -11
  37. package/dist/ucsc-trackhub/ucscTrackHub.js.map +1 -1
  38. package/esm/AddTrackWidget/components/ConfirmTrack.js +1 -1
  39. package/esm/AddTrackWidget/components/ConfirmTrack.js.map +1 -1
  40. package/esm/AddTrackWidget/components/TrackAdapterSelector.js +1 -1
  41. package/esm/AddTrackWidget/components/TrackAdapterSelector.js.map +1 -1
  42. package/esm/AddTrackWidget/components/TrackTypeSelector.js +1 -1
  43. package/esm/AddTrackWidget/components/TrackTypeSelector.js.map +1 -1
  44. package/esm/AddTrackWidget/model.js +5 -5
  45. package/esm/AddTrackWidget/model.js.map +1 -1
  46. package/esm/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.js +1 -1
  47. package/esm/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.js.map +1 -1
  48. package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetFilters.js +9 -9
  49. package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetFilters.js.map +1 -1
  50. package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetedSelector.js +1 -1
  51. package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetedSelector.js.map +1 -1
  52. package/esm/HierarchicalTrackSelectorWidget/components/tree/HamburgerMenu.js +0 -1
  53. package/esm/HierarchicalTrackSelectorWidget/components/tree/HamburgerMenu.js.map +1 -1
  54. package/esm/HierarchicalTrackSelectorWidget/components/tree/HierarchicalTree.js +2 -2
  55. package/esm/HierarchicalTrackSelectorWidget/components/tree/HierarchicalTree.js.map +1 -1
  56. package/esm/HierarchicalTrackSelectorWidget/components/tree/TrackLabel.js +1 -1
  57. package/esm/HierarchicalTrackSelectorWidget/components/tree/TrackLabel.js.map +1 -1
  58. package/esm/HierarchicalTrackSelectorWidget/components/util.js +1 -1
  59. package/esm/HierarchicalTrackSelectorWidget/components/util.js.map +1 -1
  60. package/esm/HierarchicalTrackSelectorWidget/index.d.ts +2 -4
  61. package/esm/HierarchicalTrackSelectorWidget/index.js +2 -1
  62. package/esm/HierarchicalTrackSelectorWidget/index.js.map +1 -1
  63. package/esm/HierarchicalTrackSelectorWidget/model.d.ts +1 -1
  64. package/esm/HierarchicalTrackSelectorWidget/model.js +15 -6
  65. package/esm/HierarchicalTrackSelectorWidget/model.js.map +1 -1
  66. package/esm/PluginStoreWidget/components/InstalledPluginsList.js +4 -4
  67. package/esm/PluginStoreWidget/components/InstalledPluginsList.js.map +1 -1
  68. package/esm/PluginStoreWidget/components/PluginCard.js +2 -1
  69. package/esm/PluginStoreWidget/components/PluginCard.js.map +1 -1
  70. package/esm/index.d.ts +2 -3
  71. package/esm/index.js.map +1 -1
  72. package/esm/ucsc-trackhub/ucscTrackHub.d.ts +1 -2
  73. package/esm/ucsc-trackhub/ucscTrackHub.js +9 -10
  74. package/esm/ucsc-trackhub/ucscTrackHub.js.map +1 -1
  75. package/package.json +2 -2
  76. package/src/AddConnectionWidget/components/AddConnectionWidget.test.tsx +4 -4
  77. package/src/AddConnectionWidget/components/__snapshots__/AddConnectionWidget.test.tsx.snap +1 -1
  78. package/src/AddTrackWidget/components/ConfirmTrack.tsx +1 -1
  79. package/src/AddTrackWidget/components/TrackAdapterSelector.tsx +1 -1
  80. package/src/AddTrackWidget/components/TrackTypeSelector.tsx +1 -1
  81. package/src/AddTrackWidget/index.test.tsx +2 -2
  82. package/src/AddTrackWidget/model.ts +5 -5
  83. package/src/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.test.tsx +4 -4
  84. package/src/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.tsx +1 -1
  85. package/src/HierarchicalTrackSelectorWidget/components/faceted/FacetFilters.tsx +9 -9
  86. package/src/HierarchicalTrackSelectorWidget/components/faceted/FacetedSelector.tsx +4 -5
  87. package/src/HierarchicalTrackSelectorWidget/components/tree/HamburgerMenu.tsx +0 -2
  88. package/src/HierarchicalTrackSelectorWidget/components/tree/HierarchicalTree.tsx +4 -4
  89. package/src/HierarchicalTrackSelectorWidget/components/tree/TrackLabel.tsx +1 -1
  90. package/src/HierarchicalTrackSelectorWidget/components/util.ts +1 -1
  91. package/src/HierarchicalTrackSelectorWidget/index.ts +7 -4
  92. package/src/HierarchicalTrackSelectorWidget/model.ts +14 -6
  93. package/src/PluginStoreWidget/components/InstalledPluginsList.tsx +7 -5
  94. package/src/PluginStoreWidget/components/PluginCard.tsx +2 -3
  95. package/src/PluginStoreWidget/components/PluginStoreWidget.test.tsx +3 -3
  96. package/src/PluginStoreWidget/components/__snapshots__/PluginStoreWidget.test.tsx.snap +1 -1
  97. package/src/index.ts +5 -5
  98. package/src/ucsc-trackhub/ucscTrackHub.ts +9 -10
@@ -15,7 +15,14 @@ import { ElementId } from '@jbrowse/core/util/types/mst'
15
15
  import PluginManager from '@jbrowse/core/PluginManager'
16
16
 
17
17
  function hasAnyOverlap<T>(a1: T[] = [], a2: T[] = []) {
18
- return !!a1.find(value => a2.includes(value))
18
+ // shortcut case is that arrays are single entries, and are equal
19
+ // long case is that we use a set
20
+ if (a1[0] === a2[0]) {
21
+ return true
22
+ } else {
23
+ const s1 = new Set(a1)
24
+ return a2.some(a => s1.has(a))
25
+ }
19
26
  }
20
27
 
21
28
  export function matches(
@@ -116,7 +123,7 @@ export function generateHierarchy(
116
123
  id: conf.trackId,
117
124
  name: getTrackName(conf, session),
118
125
  conf,
119
- checked: !!tracks.find(f => f.configuration === conf),
126
+ checked: tracks.some(f => f.configuration === conf),
120
127
  children: [],
121
128
  },
122
129
  )
@@ -175,7 +182,7 @@ export default function stateTreeFactory(pluginManager: PluginManager) {
175
182
  return undefined
176
183
  }
177
184
  for (const display of trackConf.displays) {
178
- if (viewType.displayTypes.find(d => d.name === display.type)) {
185
+ if (viewType.displayTypes.some(d => d.name === display.type)) {
179
186
  return trackConf
180
187
  }
181
188
  }
@@ -194,9 +201,10 @@ export default function stateTreeFactory(pluginManager: PluginManager) {
194
201
  const refseq = self.getRefSeqTrackConf(assemblyName)
195
202
  // filter out tracks that don't match the current assembly (check all
196
203
  // assembly aliases) and display types
197
- return (refseq ? [refseq] : []).concat([
204
+ return [
205
+ ...(refseq ? [refseq] : []),
198
206
  ...filterTracks(tracks, self, assemblyName),
199
- ])
207
+ ]
200
208
  },
201
209
 
202
210
  get assemblyNames(): string[] {
@@ -233,7 +241,7 @@ export default function stateTreeFactory(pluginManager: PluginManager) {
233
241
  (assembly &&
234
242
  connectionInstances
235
243
  ?.map(c => ({
236
- // @ts-ignore
244
+ // @ts-expect-error
237
245
  id: getSnapshot(c).configuration,
238
246
  name: getConf(c, 'name'),
239
247
  children: this.connectionHierarchy(assemblyName, c),
@@ -14,17 +14,19 @@ function InstalledPluginsList({
14
14
  }) {
15
15
  const { plugins } = pluginManager
16
16
 
17
- const corePlugins = plugins
18
- .filter(p => pluginManager.pluginMetadata[p.name]?.isCore)
19
- .map(p => p.name)
17
+ const corePlugins = new Set(
18
+ plugins
19
+ .filter(p => pluginManager.pluginMetadata[p.name]?.isCore)
20
+ .map(p => p.name),
21
+ )
20
22
 
21
23
  const externalPlugins = plugins.filter(
22
- plugin => !corePlugins.includes(plugin.name),
24
+ plugin => !corePlugins.has(plugin.name),
23
25
  )
24
26
 
25
27
  return (
26
28
  <List>
27
- {externalPlugins.length ? (
29
+ {externalPlugins.length > 0 ? (
28
30
  externalPlugins
29
31
  .filter(plugin =>
30
32
  plugin.name.toLowerCase().includes(model.filterText.toLowerCase()),
@@ -54,9 +54,8 @@ export default observer(function PluginCard({
54
54
  const { classes } = useStyles()
55
55
  const session = getSession(model)
56
56
  const { pluginManager } = getEnv(model)
57
- const isInstalled = Boolean(
58
- pluginManager.runtimePluginDefinitions.find(def => def.url === plugin.url),
59
- )
57
+ const { runtimePluginDefinitions } = pluginManager
58
+ const isInstalled = runtimePluginDefinitions.some(d => d.url === plugin.url)
60
59
  const [tempDisabled, setTempDisabled] = useState(false)
61
60
  const disableButton = isInstalled || tempDisabled
62
61
 
@@ -34,17 +34,17 @@ beforeEach(() => {
34
34
  model = session.addWidget('PluginStoreWidget', 'pluginStoreWidget')
35
35
  const { location } = window
36
36
 
37
- // @ts-ignore
37
+ // @ts-expect-error
38
38
  delete window.location
39
39
  window.location = {
40
40
  ...location,
41
41
  reload: jest.fn(),
42
42
  }
43
43
 
44
- // @ts-ignore
44
+ // @ts-expect-error
45
45
  fetch.resetMocks()
46
46
 
47
- // @ts-ignore
47
+ // @ts-expect-error
48
48
  fetch.mockResponse(JSON.stringify(plugins))
49
49
  })
50
50
 
@@ -789,7 +789,7 @@ exports[`renders with the available plugins 1`] = `
789
789
  class="MuiTypography-root MuiTypography-h5 css-1ldbtdh-MuiTypography-root"
790
790
  >
791
791
  <a
792
- class="MuiTypography-root MuiTypography-inherit MuiLink-root MuiLink-underlineAlways css-1py4a5k-MuiTypography-root-MuiLink-root"
792
+ class="MuiTypography-root MuiTypography-inherit MuiLink-root MuiLink-underlineAlways css-ygjubp-MuiTypography-root-MuiLink-root"
793
793
  href="https://github.com/GMOD/jbrowse-plugin-msaview#readme"
794
794
  rel="noopener"
795
795
  target="_blank"
package/src/index.ts CHANGED
@@ -3,12 +3,10 @@ import Plugin from '@jbrowse/core/Plugin'
3
3
  import PluginManager from '@jbrowse/core/PluginManager'
4
4
  import UCSCTrackHubConnectionF from './ucsc-trackhub'
5
5
  import AddTrackWidgetF from './AddTrackWidget'
6
- import { AddTrackModel } from './AddTrackWidget/model'
6
+
7
7
  import AddConnectionWidgetF from './AddConnectionWidget'
8
8
  import PluginStoreWidgetF from './PluginStoreWidget'
9
- import HierarchicalTrackSelectorWidgetF, {
10
- HierarchicalTrackSelectorModel,
11
- } from './HierarchicalTrackSelectorWidget'
9
+ import HierarchicalTrackSelectorWidgetF from './HierarchicalTrackSelectorWidget'
12
10
 
13
11
  const SetDefaultSession = lazy(() => import('./SetDefaultSession'))
14
12
 
@@ -34,4 +32,6 @@ export default class extends Plugin {
34
32
  }
35
33
 
36
34
  export { AssemblyManager, SetDefaultSession }
37
- export type { HierarchicalTrackSelectorModel, AddTrackModel }
35
+
36
+ export { type AddTrackModel } from './AddTrackWidget/model'
37
+ export { type HierarchicalTrackSelectorModel } from './HierarchicalTrackSelectorWidget'
@@ -6,9 +6,6 @@ import {
6
6
  generateUnsupportedTrackConf,
7
7
  generateUnknownTrackConf,
8
8
  } from '@jbrowse/core/util/tracks'
9
- import ucscAssemblies from './ucscAssemblies'
10
-
11
- export { ucscAssemblies }
12
9
 
13
10
  export async function fetchHubFile(hubLocation: FileLocation) {
14
11
  try {
@@ -63,16 +60,16 @@ export function generateTracks(
63
60
  ) {
64
61
  const tracks: any = []
65
62
 
66
- trackDb.forEach((track, trackName) => {
67
- const trackKeys = Array.from(track.keys())
68
- const parentTrackKeys = [
63
+ for (const [trackName, track] of trackDb.entries()) {
64
+ const trackKeys = [...track.keys()]
65
+ const parentTrackKeys = new Set([
69
66
  'superTrack',
70
67
  'compositeTrack',
71
68
  'container',
72
69
  'view',
73
- ]
74
- if (trackKeys.some(key => parentTrackKeys.includes(key))) {
75
- return
70
+ ])
71
+ if (trackKeys.some(key => parentTrackKeys.has(key))) {
72
+ continue
76
73
  }
77
74
  const parentTracks = []
78
75
  let currentTrackName = trackName
@@ -99,7 +96,7 @@ export function generateTracks(
99
96
  trackId: `ucsc-trackhub-${objectHash(res)}`,
100
97
  assemblyNames: [assemblyName],
101
98
  })
102
- })
99
+ }
103
100
 
104
101
  return tracks
105
102
  }
@@ -324,3 +321,5 @@ function makeTrackConfig(
324
321
  return generateUnknownTrackConf(name, baseTrackType, categories)
325
322
  }
326
323
  }
324
+
325
+ export { default as ucscAssemblies } from './ucscAssemblies'