@jbrowse/plugin-data-management 2.8.0 → 2.10.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 (85) hide show
  1. package/dist/AddTrackWidget/components/DefaultAddTrackWorkflow.js +4 -8
  2. package/dist/AddTrackWidget/model.d.ts +81 -0
  3. package/dist/AddTrackWidget/model.js +81 -0
  4. package/dist/HierarchicalTrackSelectorWidget/components/ShoppingCart.d.ts +1 -1
  5. package/dist/HierarchicalTrackSelectorWidget/components/ShoppingCart.js +11 -53
  6. package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetFilter.d.ts +5 -7
  7. package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetFilter.js +12 -11
  8. package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetFilters.d.ts +5 -7
  9. package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetFilters.js +11 -8
  10. package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetedHeader.d.ts +1 -11
  11. package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetedHeader.js +9 -7
  12. package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetedSelector.js +40 -135
  13. package/dist/HierarchicalTrackSelectorWidget/components/tree/DropdownTrackSelector.d.ts +12 -0
  14. package/dist/HierarchicalTrackSelectorWidget/components/tree/DropdownTrackSelector.js +59 -0
  15. package/dist/HierarchicalTrackSelectorWidget/components/tree/FavoriteTracks.d.ts +6 -0
  16. package/dist/HierarchicalTrackSelectorWidget/components/tree/FavoriteTracks.js +45 -0
  17. package/dist/HierarchicalTrackSelectorWidget/components/tree/HamburgerMenu.js +71 -46
  18. package/dist/HierarchicalTrackSelectorWidget/components/tree/HierarchicalHeader.js +5 -34
  19. package/dist/HierarchicalTrackSelectorWidget/components/tree/HierarchicalTree.js +8 -3
  20. package/dist/HierarchicalTrackSelectorWidget/components/tree/RecentlyUsedTracks.d.ts +6 -0
  21. package/dist/HierarchicalTrackSelectorWidget/components/tree/RecentlyUsedTracks.js +42 -0
  22. package/dist/HierarchicalTrackSelectorWidget/components/tree/TrackCategory.js +7 -6
  23. package/dist/HierarchicalTrackSelectorWidget/components/tree/TrackLabel.js +9 -28
  24. package/dist/HierarchicalTrackSelectorWidget/components/tree/TrackLabelMenu.d.ts +12 -0
  25. package/dist/HierarchicalTrackSelectorWidget/components/tree/TrackLabelMenu.js +50 -0
  26. package/dist/HierarchicalTrackSelectorWidget/components/util.d.ts +3 -0
  27. package/dist/HierarchicalTrackSelectorWidget/components/util.js +5 -1
  28. package/dist/HierarchicalTrackSelectorWidget/facetedModel.d.ts +128 -0
  29. package/dist/HierarchicalTrackSelectorWidget/facetedModel.js +206 -0
  30. package/dist/HierarchicalTrackSelectorWidget/facetedUtil.d.ts +2 -0
  31. package/dist/HierarchicalTrackSelectorWidget/{components/faceted/util.js → facetedUtil.js} +5 -1
  32. package/dist/HierarchicalTrackSelectorWidget/generateHierarchy.d.ts +17 -5
  33. package/dist/HierarchicalTrackSelectorWidget/generateHierarchy.js +27 -21
  34. package/dist/HierarchicalTrackSelectorWidget/model.d.ts +193 -15
  35. package/dist/HierarchicalTrackSelectorWidget/model.js +209 -22
  36. package/dist/ucsc-trackhub/doConnect.d.ts +1 -0
  37. package/dist/ucsc-trackhub/doConnect.js +131 -0
  38. package/dist/ucsc-trackhub/model.d.ts +19 -2
  39. package/dist/ucsc-trackhub/model.js +16 -71
  40. package/dist/ucsc-trackhub/ucscTrackHub.d.ts +161 -4
  41. package/dist/ucsc-trackhub/ucscTrackHub.js +49 -166
  42. package/esm/AddTrackWidget/components/DefaultAddTrackWorkflow.js +4 -8
  43. package/esm/AddTrackWidget/model.d.ts +81 -0
  44. package/esm/AddTrackWidget/model.js +81 -0
  45. package/esm/HierarchicalTrackSelectorWidget/components/ShoppingCart.d.ts +1 -1
  46. package/esm/HierarchicalTrackSelectorWidget/components/ShoppingCart.js +12 -31
  47. package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetFilter.d.ts +5 -7
  48. package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetFilter.js +13 -11
  49. package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetFilters.d.ts +5 -7
  50. package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetFilters.js +12 -8
  51. package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetedHeader.d.ts +1 -11
  52. package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetedHeader.js +9 -7
  53. package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetedSelector.js +41 -113
  54. package/esm/HierarchicalTrackSelectorWidget/components/tree/DropdownTrackSelector.d.ts +12 -0
  55. package/esm/HierarchicalTrackSelectorWidget/components/tree/DropdownTrackSelector.js +31 -0
  56. package/esm/HierarchicalTrackSelectorWidget/components/tree/FavoriteTracks.d.ts +6 -0
  57. package/esm/HierarchicalTrackSelectorWidget/components/tree/FavoriteTracks.js +40 -0
  58. package/esm/HierarchicalTrackSelectorWidget/components/tree/HamburgerMenu.js +71 -46
  59. package/esm/HierarchicalTrackSelectorWidget/components/tree/HierarchicalHeader.js +6 -12
  60. package/esm/HierarchicalTrackSelectorWidget/components/tree/HierarchicalTree.js +8 -3
  61. package/esm/HierarchicalTrackSelectorWidget/components/tree/RecentlyUsedTracks.d.ts +6 -0
  62. package/esm/HierarchicalTrackSelectorWidget/components/tree/RecentlyUsedTracks.js +37 -0
  63. package/esm/HierarchicalTrackSelectorWidget/components/tree/TrackCategory.js +7 -6
  64. package/esm/HierarchicalTrackSelectorWidget/components/tree/TrackLabel.js +8 -27
  65. package/esm/HierarchicalTrackSelectorWidget/components/tree/TrackLabelMenu.d.ts +12 -0
  66. package/esm/HierarchicalTrackSelectorWidget/components/tree/TrackLabelMenu.js +45 -0
  67. package/esm/HierarchicalTrackSelectorWidget/components/util.d.ts +3 -0
  68. package/esm/HierarchicalTrackSelectorWidget/components/util.js +5 -1
  69. package/esm/HierarchicalTrackSelectorWidget/facetedModel.d.ts +128 -0
  70. package/esm/HierarchicalTrackSelectorWidget/facetedModel.js +202 -0
  71. package/esm/HierarchicalTrackSelectorWidget/facetedUtil.d.ts +2 -0
  72. package/esm/HierarchicalTrackSelectorWidget/{components/faceted/util.js → facetedUtil.js} +3 -0
  73. package/esm/HierarchicalTrackSelectorWidget/generateHierarchy.d.ts +17 -5
  74. package/esm/HierarchicalTrackSelectorWidget/generateHierarchy.js +27 -21
  75. package/esm/HierarchicalTrackSelectorWidget/model.d.ts +193 -15
  76. package/esm/HierarchicalTrackSelectorWidget/model.js +211 -24
  77. package/esm/ucsc-trackhub/doConnect.d.ts +1 -0
  78. package/esm/ucsc-trackhub/doConnect.js +127 -0
  79. package/esm/ucsc-trackhub/model.d.ts +19 -2
  80. package/esm/ucsc-trackhub/model.js +17 -72
  81. package/esm/ucsc-trackhub/ucscTrackHub.d.ts +161 -4
  82. package/esm/ucsc-trackhub/ucscTrackHub.js +48 -141
  83. package/package.json +3 -4
  84. package/dist/HierarchicalTrackSelectorWidget/components/faceted/util.d.ts +0 -1
  85. package/esm/HierarchicalTrackSelectorWidget/components/faceted/util.d.ts +0 -1
@@ -40,7 +40,7 @@ function sortConfs(confs, sortNames, sortCategories) {
40
40
  }
41
41
  return ret.map(a => a[0]);
42
42
  }
43
- function generateHierarchy({ model, trackConfs, extra, }) {
43
+ function generateHierarchy({ model, trackConfs, extra, noCategories, menuItems, }) {
44
44
  const hierarchy = { children: [] };
45
45
  const { collapsed, filterText, activeSortTrackNames, activeSortCategories, view, } = model;
46
46
  if (!view) {
@@ -59,25 +59,29 @@ function generateHierarchy({ model, trackConfs, extra, }) {
59
59
  categories.unshift(' Session tracks');
60
60
  }
61
61
  let currLevel = hierarchy;
62
- // find existing category to put track into or create it
63
- for (let i = 0; i < categories.length; i++) {
64
- const category = categories[i];
65
- const ret = currLevel.children.find(c => c.name === category);
66
- const id = [extra, categories.slice(0, i + 1).join(',')]
67
- .filter(f => !!f)
68
- .join('-');
69
- if (!ret) {
70
- const n = {
71
- children: [],
72
- name: category,
73
- id,
74
- isOpenByDefault: !collapsed.get(id),
75
- };
76
- currLevel.children.push(n);
77
- currLevel = n;
78
- }
79
- else {
80
- currLevel = ret;
62
+ if (!noCategories) {
63
+ // find existing category to put track into or create it
64
+ for (let i = 0; i < categories.length; i++) {
65
+ const category = categories[i];
66
+ const ret = currLevel.children.find(c => c.name === category);
67
+ const id = [extra, categories.slice(0, i + 1).join(',')]
68
+ .filter(f => !!f)
69
+ .join('-');
70
+ if (!ret) {
71
+ const n = {
72
+ children: [],
73
+ name: category,
74
+ id,
75
+ isOpenByDefault: !collapsed.get(id),
76
+ menuItems,
77
+ type: 'category',
78
+ };
79
+ currLevel.children.push(n);
80
+ currLevel = n;
81
+ }
82
+ else {
83
+ currLevel = ret;
84
+ }
81
85
  }
82
86
  }
83
87
  // uses splice to try to put all leaf nodes above "category nodes" if you
@@ -86,11 +90,13 @@ function generateHierarchy({ model, trackConfs, extra, }) {
86
90
  const r = currLevel.children.findIndex(elt => elt.children.length);
87
91
  const idx = r === -1 ? currLevel.children.length : r;
88
92
  currLevel.children.splice(idx, 0, {
89
- id: conf.trackId,
93
+ id: [extra, conf.trackId].filter(f => !!f).join(','),
94
+ trackId: conf.trackId,
90
95
  name: (0, tracks_1.getTrackName)(conf, session),
91
96
  conf,
92
97
  checked: viewTracks.some(f => f.configuration === conf),
93
98
  children: [],
99
+ type: 'track',
94
100
  });
95
101
  }
96
102
  return hierarchy.children;
@@ -1,7 +1,7 @@
1
1
  import { Instance } from 'mobx-state-tree';
2
2
  import { AnyConfigurationModel } from '@jbrowse/core/configuration';
3
3
  import PluginManager from '@jbrowse/core/PluginManager';
4
- import { TreeNode } from './generateHierarchy';
4
+ type MaybeAnyConfigurationModel = AnyConfigurationModel | undefined;
5
5
  /**
6
6
  * #stateModel HierarchicalTrackSelectorWidget
7
7
  */
@@ -34,13 +34,103 @@ export default function stateTreeFactory(pluginManager: PluginManager): import("
34
34
  * #property
35
35
  */
36
36
  view: import("mobx-state-tree").IMaybe<import("mobx-state-tree").IReferenceType<import("mobx-state-tree").IAnyType>>;
37
+ /**
38
+ * #property
39
+ */
40
+ faceted: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IModelType<{
41
+ filterText: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
42
+ showSparse: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<boolean>, [undefined]>;
43
+ showFilters: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<boolean>, [undefined]>;
44
+ showOptions: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<boolean>, [undefined]>;
45
+ panelWidth: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<number>, [undefined]>; /**
46
+ * #property
47
+ */
48
+ }, {
49
+ visible: Record<string, boolean>;
50
+ widths: Record<string, number | undefined>;
51
+ useShoppingCart: boolean;
52
+ filters: import("mobx").ObservableMap<string, string[]>;
53
+ } & {
54
+ setFilter(key: string, value: string[]): void;
55
+ setPanelWidth(width: number): void;
56
+ setUseShoppingCart(f: boolean): void;
57
+ setFilterText(str: string): void;
58
+ setShowSparse(f: boolean): void;
59
+ setShowOptions(f: boolean): void; /**
60
+ * #getter
61
+ */
62
+ setShowFilters(f: boolean): void;
63
+ } & {
64
+ readonly allTrackConfigurations: ({
65
+ [x: string]: any;
66
+ } & import("mobx-state-tree/dist/internal").NonEmptyObject & {
67
+ setSubschema(slotName: string, data: unknown): any;
68
+ } & import("mobx-state-tree").IStateTreeNode<import("@jbrowse/core/configuration").AnyConfigurationSchemaType>)[];
69
+ } & {
70
+ readonly rows: {
71
+ readonly id: string;
72
+ readonly conf: {
73
+ [x: string]: any;
74
+ } & import("mobx-state-tree/dist/internal").NonEmptyObject & {
75
+ setSubschema(slotName: string, data: unknown): any;
76
+ } & import("mobx-state-tree").IStateTreeNode<import("@jbrowse/core/configuration").AnyConfigurationSchemaType>;
77
+ readonly name: string;
78
+ readonly category: string;
79
+ readonly adapter: string;
80
+ readonly description: string;
81
+ readonly metadata: any;
82
+ }[];
83
+ } & {
84
+ readonly filteredNonMetadataKeys: string[] | readonly ["category", "adapter", "description"];
85
+ readonly metadataKeys: string[];
86
+ readonly filteredMetadataKeys: string[];
87
+ readonly fields: string[];
88
+ readonly filteredRows: {
89
+ readonly id: string;
90
+ readonly conf: {
91
+ [x: string]: any;
92
+ } & import("mobx-state-tree/dist/internal").NonEmptyObject & {
93
+ setSubschema(slotName: string, data: unknown): any;
94
+ } & import("mobx-state-tree").IStateTreeNode<import("@jbrowse/core/configuration").AnyConfigurationSchemaType>;
95
+ readonly name: string;
96
+ readonly category: string;
97
+ readonly adapter: string;
98
+ readonly description: string;
99
+ readonly metadata: any;
100
+ }[];
101
+ } & {
102
+ setVisible(args: Record<string, boolean>): void;
103
+ setWidths(args: Record<string, number | undefined>): void;
104
+ afterAttach(): void;
105
+ }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>, [undefined]>;
37
106
  }, {
107
+ favorites: string[];
108
+ recentlyUsed: string[];
38
109
  selection: ({
39
110
  [x: string]: any;
40
111
  } & import("mobx-state-tree/dist/internal").NonEmptyObject & {
41
112
  setSubschema(slotName: string, data: unknown): any;
42
113
  } & import("mobx-state-tree").IStateTreeNode<import("@jbrowse/core/configuration").AnyConfigurationSchemaType>)[];
43
114
  filterText: string;
115
+ recentlyUsedCounter: number;
116
+ favoritesCounter: number;
117
+ } & {
118
+ /**
119
+ * #getter
120
+ */
121
+ readonly selectionSet: Set<{
122
+ [x: string]: any;
123
+ } & import("mobx-state-tree/dist/internal").NonEmptyObject & {
124
+ setSubschema(slotName: string, data: unknown): any;
125
+ } & import("mobx-state-tree").IStateTreeNode<import("@jbrowse/core/configuration").AnyConfigurationSchemaType>>;
126
+ /**
127
+ * #getter
128
+ */
129
+ readonly favoritesSet: Set<string>;
130
+ /**
131
+ * #getter
132
+ */
133
+ readonly recentlyUsedSet: Set<string>;
44
134
  } & {
45
135
  /**
46
136
  * #action
@@ -66,6 +156,42 @@ export default function stateTreeFactory(pluginManager: PluginManager): import("
66
156
  * #action
67
157
  */
68
158
  clearSelection(): void;
159
+ /**
160
+ * #action
161
+ */
162
+ addToFavorites(trackId: string): void;
163
+ /**
164
+ * #action
165
+ */
166
+ removeFromFavorites(trackId: string): void;
167
+ /**
168
+ * #action
169
+ */
170
+ clearFavorites(): void;
171
+ /**
172
+ * #action
173
+ */
174
+ setRecentlyUsedCounter(val: number): void;
175
+ /**
176
+ * #action
177
+ */
178
+ setRecentlyUsed(str: string[]): void;
179
+ /**
180
+ * #action
181
+ */
182
+ setFavorites(str: string[]): void;
183
+ /**
184
+ * #action
185
+ */
186
+ setFavoritesCounter(val: number): void;
187
+ /**
188
+ * #action
189
+ */
190
+ addToRecentlyUsed(id: string): void;
191
+ /**
192
+ * #action
193
+ */
194
+ clearRecentlyUsed(): void;
69
195
  /**
70
196
  * #action
71
197
  */
@@ -94,13 +220,33 @@ export default function stateTreeFactory(pluginManager: PluginManager): import("
94
220
  /**
95
221
  * #method
96
222
  */
97
- getRefSeqTrackConf(assemblyName: string): AnyConfigurationModel | undefined;
223
+ isSelected(track: AnyConfigurationModel): boolean;
224
+ /**
225
+ * #method
226
+ */
227
+ isFavorite(trackId: string): boolean;
228
+ /**
229
+ * #method
230
+ */
231
+ isRecentlyUsed(trackId: string): boolean;
232
+ /**
233
+ * #method
234
+ */
235
+ getRefSeqTrackConf(assemblyName: string): MaybeAnyConfigurationModel;
98
236
  } & {
99
237
  /**
100
238
  * #getter
101
239
  */
102
240
  readonly assemblyNames: string[];
103
241
  } & {
242
+ /**
243
+ * #getter
244
+ */
245
+ readonly recentlyUsedLocalStorageKey: string;
246
+ /**
247
+ * #getter
248
+ */
249
+ readonly favoritesLocalStorageKey: string;
104
250
  /**
105
251
  * #getter
106
252
  */
@@ -110,34 +256,53 @@ export default function stateTreeFactory(pluginManager: PluginManager): import("
110
256
  */
111
257
  readonly activeSortCategories: any;
112
258
  /**
113
- * #method
114
- * filter out tracks that don't match the current display types
259
+ * #getter
260
+ * filter out tracks that don't match the current assembly/display types
115
261
  */
116
- connectionTrackConfigurations(connection: {
117
- tracks: AnyConfigurationModel[];
118
- }): ({
262
+ readonly configAndSessionTrackConfigurations: ({
119
263
  [x: string]: any;
120
264
  } & import("mobx-state-tree/dist/internal").NonEmptyObject & {
121
265
  setSubschema(slotName: string, data: unknown): any;
122
266
  } & import("mobx-state-tree").IStateTreeNode<import("@jbrowse/core/configuration").AnyConfigurationSchemaType>)[];
123
267
  /**
124
268
  * #getter
125
- * filter out tracks that don't match the current assembly/display types
126
269
  */
127
- readonly trackConfigurations: ({
270
+ readonly allTrackConfigurations: ({
128
271
  [x: string]: any;
129
272
  } & import("mobx-state-tree/dist/internal").NonEmptyObject & {
130
273
  setSubschema(slotName: string, data: unknown): any;
131
274
  } & import("mobx-state-tree").IStateTreeNode<import("@jbrowse/core/configuration").AnyConfigurationSchemaType>)[];
275
+ /**
276
+ * #getter
277
+ */
278
+ readonly allTrackConfigurationTrackIdSet: Map<any, {
279
+ [x: string]: any;
280
+ } & import("mobx-state-tree/dist/internal").NonEmptyObject & {
281
+ setSubschema(slotName: string, data: unknown): any;
282
+ } & import("mobx-state-tree").IStateTreeNode<import("@jbrowse/core/configuration").AnyConfigurationSchemaType>>;
132
283
  } & {
133
284
  /**
134
- * #method
285
+ * #getter
286
+ * filters out tracks that are not in the favorites group
135
287
  */
136
- connectionHierarchy(connection: {
137
- name: string;
138
- tracks: AnyConfigurationModel[];
139
- }): TreeNode[];
288
+ readonly favoriteTracks: ({
289
+ [x: string]: any;
290
+ } & import("mobx-state-tree/dist/internal").NonEmptyObject & {
291
+ setSubschema(slotName: string, data: unknown): any;
292
+ } & import("mobx-state-tree").IStateTreeNode<import("@jbrowse/core/configuration").AnyConfigurationSchemaType>)[];
293
+ /**
294
+ * #getter
295
+ * filters out tracks that are not in the recently used group
296
+ */
297
+ readonly recentlyUsedTracks: ({
298
+ [x: string]: any;
299
+ } & import("mobx-state-tree/dist/internal").NonEmptyObject & {
300
+ setSubschema(slotName: string, data: unknown): any;
301
+ } & import("mobx-state-tree").IStateTreeNode<import("@jbrowse/core/configuration").AnyConfigurationSchemaType>)[];
140
302
  } & {
303
+ /**
304
+ * #getter
305
+ */
141
306
  readonly allTracks: {
142
307
  group: any;
143
308
  tracks: ({
@@ -145,6 +310,8 @@ export default function stateTreeFactory(pluginManager: PluginManager): import("
145
310
  } & import("mobx-state-tree/dist/internal").NonEmptyObject & {
146
311
  setSubschema(slotName: string, data: unknown): any;
147
312
  } & import("mobx-state-tree").IStateTreeNode<import("@jbrowse/core/configuration").AnyConfigurationSchemaType>)[];
313
+ noCategories: boolean;
314
+ menuItems: never[];
148
315
  }[];
149
316
  } & {
150
317
  /**
@@ -153,10 +320,15 @@ export default function stateTreeFactory(pluginManager: PluginManager): import("
153
320
  readonly hierarchy: {
154
321
  name: string;
155
322
  id: string;
323
+ isOpenByDefault: boolean;
324
+ type: "category";
156
325
  children: {
157
326
  name: any;
158
327
  id: any;
159
- children: TreeNode[];
328
+ type: "category";
329
+ isOpenByDefault: boolean;
330
+ menuItems: never[];
331
+ children: import("./generateHierarchy").TreeNode[];
160
332
  }[];
161
333
  };
162
334
  } & {
@@ -171,7 +343,13 @@ export default function stateTreeFactory(pluginManager: PluginManager): import("
171
343
  } & {
172
344
  afterCreate(): void;
173
345
  } & {
346
+ /**
347
+ * #getter
348
+ */
174
349
  readonly hasAnySubcategories: boolean;
350
+ } & {
351
+ afterAttach(): void;
175
352
  }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
176
353
  export type HierarchicalTrackSelectorStateModel = ReturnType<typeof stateTreeFactory>;
177
354
  export type HierarchicalTrackSelectorModel = Instance<HierarchicalTrackSelectorStateModel>;
355
+ export {};