@jbrowse/plugin-data-management 2.6.1 → 2.6.3

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 (336) hide show
  1. package/dist/AddConnectionWidget/components/AddConnectionWidget.js +0 -1
  2. package/dist/AddConnectionWidget/components/ConfigureConnection.js +0 -1
  3. package/dist/AddConnectionWidget/components/ConnectionTypeSelect.js +0 -1
  4. package/dist/AddConnectionWidget/index.js +0 -1
  5. package/dist/AddConnectionWidget/model.js +0 -1
  6. package/dist/AddTrackWidget/components/AddTrackWidget.js +0 -1
  7. package/dist/AddTrackWidget/components/ConfirmTrack.js +0 -1
  8. package/dist/AddTrackWidget/components/DefaultAddTrackWorkflow.js +0 -1
  9. package/dist/AddTrackWidget/components/PasteConfigWorkflow.js +0 -1
  10. package/dist/AddTrackWidget/components/TextIndexingConfig.js +0 -1
  11. package/dist/AddTrackWidget/components/TrackAdapterSelector.js +0 -1
  12. package/dist/AddTrackWidget/components/TrackSourceSelect.js +0 -1
  13. package/dist/AddTrackWidget/components/TrackTypeSelector.js +0 -1
  14. package/dist/AddTrackWidget/index.js +0 -1
  15. package/dist/AddTrackWidget/model.js +0 -1
  16. package/dist/AssemblyManager/AssemblyAddForm.js +0 -1
  17. package/dist/AssemblyManager/AssemblyEditor.js +0 -1
  18. package/dist/AssemblyManager/AssemblyManager.js +0 -1
  19. package/dist/AssemblyManager/AssemblyTable.js +0 -1
  20. package/dist/AssemblyManager/index.js +0 -1
  21. package/dist/HierarchicalTrackSelectorWidget/components/HierarchicalFab.js +0 -1
  22. package/dist/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.js +0 -1
  23. package/dist/HierarchicalTrackSelectorWidget/components/ShoppingCart.js +0 -1
  24. package/dist/HierarchicalTrackSelectorWidget/components/dialogs/CloseConnectionDialog.js +0 -1
  25. package/dist/HierarchicalTrackSelectorWidget/components/dialogs/DeleteConnectionDialog.js +0 -1
  26. package/dist/HierarchicalTrackSelectorWidget/components/dialogs/ManageConnectionsDialog.js +0 -1
  27. package/dist/HierarchicalTrackSelectorWidget/components/dialogs/ToggleConnectionsDialog.js +0 -1
  28. package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetFilters.js +0 -1
  29. package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetedDialog.js +0 -1
  30. package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetedHeader.js +0 -1
  31. package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetedSelector.js +4 -6
  32. package/dist/HierarchicalTrackSelectorWidget/components/faceted/util.js +0 -1
  33. package/dist/HierarchicalTrackSelectorWidget/components/tree/HamburgerMenu.js +35 -20
  34. package/dist/HierarchicalTrackSelectorWidget/components/tree/HierarchicalHeader.js +10 -7
  35. package/dist/HierarchicalTrackSelectorWidget/components/tree/HierarchicalTree.d.ts +2 -1
  36. package/dist/HierarchicalTrackSelectorWidget/components/tree/HierarchicalTree.js +0 -1
  37. package/dist/HierarchicalTrackSelectorWidget/components/tree/TrackCategory.js +22 -1
  38. package/dist/HierarchicalTrackSelectorWidget/components/tree/TrackLabel.js +1 -2
  39. package/dist/HierarchicalTrackSelectorWidget/components/tree/TrackListNode.js +0 -1
  40. package/dist/HierarchicalTrackSelectorWidget/components/util.d.ts +2 -1
  41. package/dist/HierarchicalTrackSelectorWidget/components/util.js +0 -1
  42. package/dist/HierarchicalTrackSelectorWidget/configSchema.js +0 -1
  43. package/dist/HierarchicalTrackSelectorWidget/filterTracks.d.ts +12 -0
  44. package/dist/HierarchicalTrackSelectorWidget/filterTracks.js +32 -0
  45. package/dist/HierarchicalTrackSelectorWidget/generateHierarchy.d.ts +21 -0
  46. package/dist/HierarchicalTrackSelectorWidget/generateHierarchy.js +98 -0
  47. package/dist/HierarchicalTrackSelectorWidget/index.js +0 -1
  48. package/dist/HierarchicalTrackSelectorWidget/model.d.ts +68 -28
  49. package/dist/HierarchicalTrackSelectorWidget/model.js +149 -118
  50. package/dist/HierarchicalTrackSelectorWidget/util.d.ts +12 -0
  51. package/dist/HierarchicalTrackSelectorWidget/util.js +53 -0
  52. package/dist/PluginStoreWidget/components/AddCustomPluginDialog.d.ts +7 -0
  53. package/dist/PluginStoreWidget/components/{CustomPluginForm.js → AddCustomPluginDialog.js} +12 -22
  54. package/dist/PluginStoreWidget/components/DeletePluginDialog.d.ts +5 -0
  55. package/dist/PluginStoreWidget/components/DeletePluginDialog.js +28 -0
  56. package/dist/PluginStoreWidget/components/InstalledPlugin.d.ts +2 -5
  57. package/dist/PluginStoreWidget/components/InstalledPlugin.js +19 -51
  58. package/dist/PluginStoreWidget/components/InstalledPluginsList.d.ts +2 -3
  59. package/dist/PluginStoreWidget/components/InstalledPluginsList.js +6 -10
  60. package/dist/PluginStoreWidget/components/PluginCard.js +3 -6
  61. package/dist/PluginStoreWidget/components/PluginStoreWidget.js +11 -40
  62. package/dist/PluginStoreWidget/components/util.d.ts +5 -0
  63. package/dist/PluginStoreWidget/components/util.js +29 -0
  64. package/dist/PluginStoreWidget/index.js +0 -1
  65. package/dist/PluginStoreWidget/model.d.ts +2 -2
  66. package/dist/PluginStoreWidget/model.js +2 -3
  67. package/dist/SetDefaultSession/SetDefaultSession.js +0 -1
  68. package/dist/SetDefaultSession/index.js +0 -1
  69. package/dist/index.js +0 -1
  70. package/dist/ucsc-trackhub/configSchema.js +0 -1
  71. package/dist/ucsc-trackhub/index.js +0 -1
  72. package/dist/ucsc-trackhub/model.js +0 -1
  73. package/dist/ucsc-trackhub/ucscAssemblies.js +0 -1
  74. package/dist/ucsc-trackhub/ucscTrackHub.js +0 -1
  75. package/esm/AddConnectionWidget/components/AddConnectionWidget.js +0 -1
  76. package/esm/AddConnectionWidget/components/ConfigureConnection.js +0 -1
  77. package/esm/AddConnectionWidget/components/ConnectionTypeSelect.js +0 -1
  78. package/esm/AddConnectionWidget/index.js +0 -1
  79. package/esm/AddConnectionWidget/model.js +0 -1
  80. package/esm/AddTrackWidget/components/AddTrackWidget.js +0 -1
  81. package/esm/AddTrackWidget/components/ConfirmTrack.js +0 -1
  82. package/esm/AddTrackWidget/components/DefaultAddTrackWorkflow.js +0 -1
  83. package/esm/AddTrackWidget/components/PasteConfigWorkflow.js +0 -1
  84. package/esm/AddTrackWidget/components/TextIndexingConfig.js +0 -1
  85. package/esm/AddTrackWidget/components/TrackAdapterSelector.js +0 -1
  86. package/esm/AddTrackWidget/components/TrackSourceSelect.js +0 -1
  87. package/esm/AddTrackWidget/components/TrackTypeSelector.js +0 -1
  88. package/esm/AddTrackWidget/index.js +0 -1
  89. package/esm/AddTrackWidget/model.js +0 -1
  90. package/esm/AssemblyManager/AssemblyAddForm.js +0 -1
  91. package/esm/AssemblyManager/AssemblyEditor.js +0 -1
  92. package/esm/AssemblyManager/AssemblyManager.js +0 -1
  93. package/esm/AssemblyManager/AssemblyTable.js +0 -1
  94. package/esm/AssemblyManager/index.js +0 -1
  95. package/esm/HierarchicalTrackSelectorWidget/components/HierarchicalFab.js +0 -1
  96. package/esm/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.js +0 -1
  97. package/esm/HierarchicalTrackSelectorWidget/components/ShoppingCart.js +0 -1
  98. package/esm/HierarchicalTrackSelectorWidget/components/dialogs/CloseConnectionDialog.js +0 -1
  99. package/esm/HierarchicalTrackSelectorWidget/components/dialogs/DeleteConnectionDialog.js +0 -1
  100. package/esm/HierarchicalTrackSelectorWidget/components/dialogs/ManageConnectionsDialog.js +0 -1
  101. package/esm/HierarchicalTrackSelectorWidget/components/dialogs/ToggleConnectionsDialog.js +0 -1
  102. package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetFilters.js +0 -1
  103. package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetedDialog.js +0 -1
  104. package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetedHeader.js +0 -1
  105. package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetedSelector.js +1 -3
  106. package/esm/HierarchicalTrackSelectorWidget/components/faceted/util.js +0 -1
  107. package/esm/HierarchicalTrackSelectorWidget/components/tree/HamburgerMenu.js +34 -19
  108. package/esm/HierarchicalTrackSelectorWidget/components/tree/HierarchicalHeader.js +10 -7
  109. package/esm/HierarchicalTrackSelectorWidget/components/tree/HierarchicalTree.d.ts +2 -1
  110. package/esm/HierarchicalTrackSelectorWidget/components/tree/HierarchicalTree.js +0 -1
  111. package/esm/HierarchicalTrackSelectorWidget/components/tree/TrackCategory.js +22 -1
  112. package/esm/HierarchicalTrackSelectorWidget/components/tree/TrackLabel.js +1 -2
  113. package/esm/HierarchicalTrackSelectorWidget/components/tree/TrackListNode.js +0 -1
  114. package/esm/HierarchicalTrackSelectorWidget/components/util.d.ts +2 -1
  115. package/esm/HierarchicalTrackSelectorWidget/components/util.js +0 -1
  116. package/esm/HierarchicalTrackSelectorWidget/configSchema.js +0 -1
  117. package/esm/HierarchicalTrackSelectorWidget/filterTracks.d.ts +12 -0
  118. package/esm/HierarchicalTrackSelectorWidget/filterTracks.js +28 -0
  119. package/esm/HierarchicalTrackSelectorWidget/generateHierarchy.d.ts +21 -0
  120. package/esm/HierarchicalTrackSelectorWidget/generateHierarchy.js +94 -0
  121. package/esm/HierarchicalTrackSelectorWidget/index.js +0 -1
  122. package/esm/HierarchicalTrackSelectorWidget/model.d.ts +68 -28
  123. package/esm/HierarchicalTrackSelectorWidget/model.js +151 -117
  124. package/esm/HierarchicalTrackSelectorWidget/util.d.ts +12 -0
  125. package/esm/HierarchicalTrackSelectorWidget/util.js +45 -0
  126. package/esm/PluginStoreWidget/components/AddCustomPluginDialog.d.ts +7 -0
  127. package/esm/PluginStoreWidget/components/{CustomPluginForm.js → AddCustomPluginDialog.js} +12 -22
  128. package/esm/PluginStoreWidget/components/DeletePluginDialog.d.ts +5 -0
  129. package/esm/PluginStoreWidget/components/DeletePluginDialog.js +22 -0
  130. package/esm/PluginStoreWidget/components/InstalledPlugin.d.ts +2 -5
  131. package/esm/PluginStoreWidget/components/InstalledPlugin.js +22 -54
  132. package/esm/PluginStoreWidget/components/InstalledPluginsList.d.ts +2 -3
  133. package/esm/PluginStoreWidget/components/InstalledPluginsList.js +6 -10
  134. package/esm/PluginStoreWidget/components/PluginCard.js +3 -6
  135. package/esm/PluginStoreWidget/components/PluginStoreWidget.js +12 -41
  136. package/esm/PluginStoreWidget/components/util.d.ts +5 -0
  137. package/esm/PluginStoreWidget/components/util.js +25 -0
  138. package/esm/PluginStoreWidget/index.js +0 -1
  139. package/esm/PluginStoreWidget/model.d.ts +2 -2
  140. package/esm/PluginStoreWidget/model.js +1 -2
  141. package/esm/SetDefaultSession/SetDefaultSession.js +0 -1
  142. package/esm/SetDefaultSession/index.js +0 -1
  143. package/esm/index.js +0 -1
  144. package/esm/ucsc-trackhub/configSchema.js +0 -1
  145. package/esm/ucsc-trackhub/index.js +0 -1
  146. package/esm/ucsc-trackhub/model.js +0 -1
  147. package/esm/ucsc-trackhub/ucscAssemblies.js +0 -1
  148. package/esm/ucsc-trackhub/ucscTrackHub.js +0 -1
  149. package/package.json +3 -4
  150. package/dist/AddConnectionWidget/components/AddConnectionWidget.js.map +0 -1
  151. package/dist/AddConnectionWidget/components/ConfigureConnection.js.map +0 -1
  152. package/dist/AddConnectionWidget/components/ConnectionTypeSelect.js.map +0 -1
  153. package/dist/AddConnectionWidget/index.js.map +0 -1
  154. package/dist/AddConnectionWidget/model.js.map +0 -1
  155. package/dist/AddTrackWidget/components/AddTrackWidget.js.map +0 -1
  156. package/dist/AddTrackWidget/components/ConfirmTrack.js.map +0 -1
  157. package/dist/AddTrackWidget/components/DefaultAddTrackWorkflow.js.map +0 -1
  158. package/dist/AddTrackWidget/components/PasteConfigWorkflow.js.map +0 -1
  159. package/dist/AddTrackWidget/components/TextIndexingConfig.js.map +0 -1
  160. package/dist/AddTrackWidget/components/TrackAdapterSelector.js.map +0 -1
  161. package/dist/AddTrackWidget/components/TrackSourceSelect.js.map +0 -1
  162. package/dist/AddTrackWidget/components/TrackTypeSelector.js.map +0 -1
  163. package/dist/AddTrackWidget/index.js.map +0 -1
  164. package/dist/AddTrackWidget/model.js.map +0 -1
  165. package/dist/AssemblyManager/AssemblyAddForm.js.map +0 -1
  166. package/dist/AssemblyManager/AssemblyEditor.js.map +0 -1
  167. package/dist/AssemblyManager/AssemblyManager.js.map +0 -1
  168. package/dist/AssemblyManager/AssemblyTable.js.map +0 -1
  169. package/dist/AssemblyManager/index.js.map +0 -1
  170. package/dist/HierarchicalTrackSelectorWidget/components/HierarchicalFab.js.map +0 -1
  171. package/dist/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.js.map +0 -1
  172. package/dist/HierarchicalTrackSelectorWidget/components/ShoppingCart.js.map +0 -1
  173. package/dist/HierarchicalTrackSelectorWidget/components/dialogs/CloseConnectionDialog.js.map +0 -1
  174. package/dist/HierarchicalTrackSelectorWidget/components/dialogs/DeleteConnectionDialog.js.map +0 -1
  175. package/dist/HierarchicalTrackSelectorWidget/components/dialogs/ManageConnectionsDialog.js.map +0 -1
  176. package/dist/HierarchicalTrackSelectorWidget/components/dialogs/ToggleConnectionsDialog.js.map +0 -1
  177. package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetFilters.js.map +0 -1
  178. package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetedDialog.js.map +0 -1
  179. package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetedHeader.js.map +0 -1
  180. package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetedSelector.js.map +0 -1
  181. package/dist/HierarchicalTrackSelectorWidget/components/faceted/util.js.map +0 -1
  182. package/dist/HierarchicalTrackSelectorWidget/components/tree/HamburgerMenu.js.map +0 -1
  183. package/dist/HierarchicalTrackSelectorWidget/components/tree/HierarchicalHeader.js.map +0 -1
  184. package/dist/HierarchicalTrackSelectorWidget/components/tree/HierarchicalTree.js.map +0 -1
  185. package/dist/HierarchicalTrackSelectorWidget/components/tree/TrackCategory.js.map +0 -1
  186. package/dist/HierarchicalTrackSelectorWidget/components/tree/TrackLabel.js.map +0 -1
  187. package/dist/HierarchicalTrackSelectorWidget/components/tree/TrackListNode.js.map +0 -1
  188. package/dist/HierarchicalTrackSelectorWidget/components/util.js.map +0 -1
  189. package/dist/HierarchicalTrackSelectorWidget/configSchema.js.map +0 -1
  190. package/dist/HierarchicalTrackSelectorWidget/index.js.map +0 -1
  191. package/dist/HierarchicalTrackSelectorWidget/model.js.map +0 -1
  192. package/dist/PluginStoreWidget/components/CustomPluginForm.d.ts +0 -9
  193. package/dist/PluginStoreWidget/components/CustomPluginForm.js.map +0 -1
  194. package/dist/PluginStoreWidget/components/InstalledPlugin.js.map +0 -1
  195. package/dist/PluginStoreWidget/components/InstalledPluginsList.js.map +0 -1
  196. package/dist/PluginStoreWidget/components/PluginCard.js.map +0 -1
  197. package/dist/PluginStoreWidget/components/PluginStoreWidget.js.map +0 -1
  198. package/dist/PluginStoreWidget/index.js.map +0 -1
  199. package/dist/PluginStoreWidget/model.js.map +0 -1
  200. package/dist/SetDefaultSession/SetDefaultSession.js.map +0 -1
  201. package/dist/SetDefaultSession/index.js.map +0 -1
  202. package/dist/index.js.map +0 -1
  203. package/dist/ucsc-trackhub/configSchema.js.map +0 -1
  204. package/dist/ucsc-trackhub/index.js.map +0 -1
  205. package/dist/ucsc-trackhub/model.js.map +0 -1
  206. package/dist/ucsc-trackhub/ucscAssemblies.js.map +0 -1
  207. package/dist/ucsc-trackhub/ucscTrackHub.js.map +0 -1
  208. package/esm/AddConnectionWidget/components/AddConnectionWidget.js.map +0 -1
  209. package/esm/AddConnectionWidget/components/ConfigureConnection.js.map +0 -1
  210. package/esm/AddConnectionWidget/components/ConnectionTypeSelect.js.map +0 -1
  211. package/esm/AddConnectionWidget/index.js.map +0 -1
  212. package/esm/AddConnectionWidget/model.js.map +0 -1
  213. package/esm/AddTrackWidget/components/AddTrackWidget.js.map +0 -1
  214. package/esm/AddTrackWidget/components/ConfirmTrack.js.map +0 -1
  215. package/esm/AddTrackWidget/components/DefaultAddTrackWorkflow.js.map +0 -1
  216. package/esm/AddTrackWidget/components/PasteConfigWorkflow.js.map +0 -1
  217. package/esm/AddTrackWidget/components/TextIndexingConfig.js.map +0 -1
  218. package/esm/AddTrackWidget/components/TrackAdapterSelector.js.map +0 -1
  219. package/esm/AddTrackWidget/components/TrackSourceSelect.js.map +0 -1
  220. package/esm/AddTrackWidget/components/TrackTypeSelector.js.map +0 -1
  221. package/esm/AddTrackWidget/index.js.map +0 -1
  222. package/esm/AddTrackWidget/model.js.map +0 -1
  223. package/esm/AssemblyManager/AssemblyAddForm.js.map +0 -1
  224. package/esm/AssemblyManager/AssemblyEditor.js.map +0 -1
  225. package/esm/AssemblyManager/AssemblyManager.js.map +0 -1
  226. package/esm/AssemblyManager/AssemblyTable.js.map +0 -1
  227. package/esm/AssemblyManager/index.js.map +0 -1
  228. package/esm/HierarchicalTrackSelectorWidget/components/HierarchicalFab.js.map +0 -1
  229. package/esm/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.js.map +0 -1
  230. package/esm/HierarchicalTrackSelectorWidget/components/ShoppingCart.js.map +0 -1
  231. package/esm/HierarchicalTrackSelectorWidget/components/dialogs/CloseConnectionDialog.js.map +0 -1
  232. package/esm/HierarchicalTrackSelectorWidget/components/dialogs/DeleteConnectionDialog.js.map +0 -1
  233. package/esm/HierarchicalTrackSelectorWidget/components/dialogs/ManageConnectionsDialog.js.map +0 -1
  234. package/esm/HierarchicalTrackSelectorWidget/components/dialogs/ToggleConnectionsDialog.js.map +0 -1
  235. package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetFilters.js.map +0 -1
  236. package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetedDialog.js.map +0 -1
  237. package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetedHeader.js.map +0 -1
  238. package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetedSelector.js.map +0 -1
  239. package/esm/HierarchicalTrackSelectorWidget/components/faceted/util.js.map +0 -1
  240. package/esm/HierarchicalTrackSelectorWidget/components/tree/HamburgerMenu.js.map +0 -1
  241. package/esm/HierarchicalTrackSelectorWidget/components/tree/HierarchicalHeader.js.map +0 -1
  242. package/esm/HierarchicalTrackSelectorWidget/components/tree/HierarchicalTree.js.map +0 -1
  243. package/esm/HierarchicalTrackSelectorWidget/components/tree/TrackCategory.js.map +0 -1
  244. package/esm/HierarchicalTrackSelectorWidget/components/tree/TrackLabel.js.map +0 -1
  245. package/esm/HierarchicalTrackSelectorWidget/components/tree/TrackListNode.js.map +0 -1
  246. package/esm/HierarchicalTrackSelectorWidget/components/util.js.map +0 -1
  247. package/esm/HierarchicalTrackSelectorWidget/configSchema.js.map +0 -1
  248. package/esm/HierarchicalTrackSelectorWidget/index.js.map +0 -1
  249. package/esm/HierarchicalTrackSelectorWidget/model.js.map +0 -1
  250. package/esm/PluginStoreWidget/components/CustomPluginForm.d.ts +0 -9
  251. package/esm/PluginStoreWidget/components/CustomPluginForm.js.map +0 -1
  252. package/esm/PluginStoreWidget/components/InstalledPlugin.js.map +0 -1
  253. package/esm/PluginStoreWidget/components/InstalledPluginsList.js.map +0 -1
  254. package/esm/PluginStoreWidget/components/PluginCard.js.map +0 -1
  255. package/esm/PluginStoreWidget/components/PluginStoreWidget.js.map +0 -1
  256. package/esm/PluginStoreWidget/index.js.map +0 -1
  257. package/esm/PluginStoreWidget/model.js.map +0 -1
  258. package/esm/SetDefaultSession/SetDefaultSession.js.map +0 -1
  259. package/esm/SetDefaultSession/index.js.map +0 -1
  260. package/esm/index.js.map +0 -1
  261. package/esm/ucsc-trackhub/configSchema.js.map +0 -1
  262. package/esm/ucsc-trackhub/index.js.map +0 -1
  263. package/esm/ucsc-trackhub/model.js.map +0 -1
  264. package/esm/ucsc-trackhub/ucscAssemblies.js.map +0 -1
  265. package/esm/ucsc-trackhub/ucscTrackHub.js.map +0 -1
  266. package/src/AddConnectionWidget/components/AddConnectionWidget.test.tsx +0 -139
  267. package/src/AddConnectionWidget/components/AddConnectionWidget.tsx +0 -114
  268. package/src/AddConnectionWidget/components/ConfigureConnection.tsx +0 -26
  269. package/src/AddConnectionWidget/components/ConnectionTypeSelect.tsx +0 -64
  270. package/src/AddConnectionWidget/components/__snapshots__/AddConnectionWidget.test.tsx.snap +0 -236
  271. package/src/AddConnectionWidget/index.ts +0 -19
  272. package/src/AddConnectionWidget/model.ts +0 -7
  273. package/src/AddTrackWidget/components/AddTrackWidget.test.tsx +0 -118
  274. package/src/AddTrackWidget/components/AddTrackWidget.tsx +0 -43
  275. package/src/AddTrackWidget/components/ConfirmTrack.tsx +0 -189
  276. package/src/AddTrackWidget/components/DefaultAddTrackWorkflow.tsx +0 -201
  277. package/src/AddTrackWidget/components/PasteConfigWorkflow.tsx +0 -65
  278. package/src/AddTrackWidget/components/TextIndexingConfig.tsx +0 -132
  279. package/src/AddTrackWidget/components/TrackAdapterSelector.tsx +0 -73
  280. package/src/AddTrackWidget/components/TrackSourceSelect.tsx +0 -48
  281. package/src/AddTrackWidget/components/TrackTypeSelector.tsx +0 -46
  282. package/src/AddTrackWidget/index.test.tsx +0 -247
  283. package/src/AddTrackWidget/index.ts +0 -19
  284. package/src/AddTrackWidget/model.ts +0 -179
  285. package/src/AssemblyManager/AssemblyAddForm.tsx +0 -250
  286. package/src/AssemblyManager/AssemblyEditor.tsx +0 -20
  287. package/src/AssemblyManager/AssemblyManager.test.tsx +0 -93
  288. package/src/AssemblyManager/AssemblyManager.tsx +0 -84
  289. package/src/AssemblyManager/AssemblyTable.tsx +0 -88
  290. package/src/AssemblyManager/index.ts +0 -1
  291. package/src/HierarchicalTrackSelectorWidget/components/HierarchicalFab.tsx +0 -94
  292. package/src/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.test.tsx +0 -148
  293. package/src/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.tsx +0 -87
  294. package/src/HierarchicalTrackSelectorWidget/components/ShoppingCart.tsx +0 -73
  295. package/src/HierarchicalTrackSelectorWidget/components/__snapshots__/HierarchicalTrackSelector.test.tsx.snap +0 -265
  296. package/src/HierarchicalTrackSelectorWidget/components/dialogs/CloseConnectionDialog.tsx +0 -65
  297. package/src/HierarchicalTrackSelectorWidget/components/dialogs/DeleteConnectionDialog.tsx +0 -53
  298. package/src/HierarchicalTrackSelectorWidget/components/dialogs/ManageConnectionsDialog.tsx +0 -84
  299. package/src/HierarchicalTrackSelectorWidget/components/dialogs/ToggleConnectionsDialog.tsx +0 -127
  300. package/src/HierarchicalTrackSelectorWidget/components/faceted/FacetFilters.tsx +0 -138
  301. package/src/HierarchicalTrackSelectorWidget/components/faceted/FacetedDialog.tsx +0 -29
  302. package/src/HierarchicalTrackSelectorWidget/components/faceted/FacetedHeader.tsx +0 -96
  303. package/src/HierarchicalTrackSelectorWidget/components/faceted/FacetedSelector.tsx +0 -342
  304. package/src/HierarchicalTrackSelectorWidget/components/faceted/util.ts +0 -5
  305. package/src/HierarchicalTrackSelectorWidget/components/tree/HamburgerMenu.tsx +0 -190
  306. package/src/HierarchicalTrackSelectorWidget/components/tree/HierarchicalHeader.tsx +0 -83
  307. package/src/HierarchicalTrackSelectorWidget/components/tree/HierarchicalTree.tsx +0 -101
  308. package/src/HierarchicalTrackSelectorWidget/components/tree/TrackCategory.tsx +0 -92
  309. package/src/HierarchicalTrackSelectorWidget/components/tree/TrackLabel.tsx +0 -106
  310. package/src/HierarchicalTrackSelectorWidget/components/tree/TrackListNode.tsx +0 -84
  311. package/src/HierarchicalTrackSelectorWidget/components/util.ts +0 -41
  312. package/src/HierarchicalTrackSelectorWidget/configSchema.ts +0 -3
  313. package/src/HierarchicalTrackSelectorWidget/index.ts +0 -25
  314. package/src/HierarchicalTrackSelectorWidget/model.test.js +0 -24
  315. package/src/HierarchicalTrackSelectorWidget/model.ts +0 -339
  316. package/src/PluginStoreWidget/components/CustomPluginForm.tsx +0 -165
  317. package/src/PluginStoreWidget/components/InstalledPlugin.tsx +0 -167
  318. package/src/PluginStoreWidget/components/InstalledPluginsList.tsx +0 -49
  319. package/src/PluginStoreWidget/components/PluginCard.tsx +0 -106
  320. package/src/PluginStoreWidget/components/PluginStoreWidget.test.tsx +0 -132
  321. package/src/PluginStoreWidget/components/PluginStoreWidget.tsx +0 -181
  322. package/src/PluginStoreWidget/components/__snapshots__/PluginStoreWidget.test.tsx.snap +0 -869
  323. package/src/PluginStoreWidget/index.ts +0 -19
  324. package/src/PluginStoreWidget/model.test.tsx +0 -15
  325. package/src/PluginStoreWidget/model.ts +0 -26
  326. package/src/SetDefaultSession/SetDefaultSession.test.tsx +0 -59
  327. package/src/SetDefaultSession/SetDefaultSession.tsx +0 -76
  328. package/src/SetDefaultSession/index.ts +0 -1
  329. package/src/__snapshots__/index.test.ts.snap +0 -9
  330. package/src/index.test.ts +0 -54
  331. package/src/index.ts +0 -37
  332. package/src/ucsc-trackhub/configSchema.ts +0 -41
  333. package/src/ucsc-trackhub/index.ts +0 -19
  334. package/src/ucsc-trackhub/model.ts +0 -111
  335. package/src/ucsc-trackhub/ucscAssemblies.ts +0 -201
  336. package/src/ucsc-trackhub/ucscTrackHub.ts +0 -325
@@ -84,4 +84,3 @@ exports.default = (0, mobx_react_1.observer)(function AddConnectionWidget({ mode
84
84
  }
85
85
  }, className: classes.button, "data-testid": "addConnectionNext" }, activeStep === steps.length - 1 ? 'Connect' : 'Next')))))))));
86
86
  });
87
- //# sourceMappingURL=AddConnectionWidget.js.map
@@ -32,4 +32,3 @@ exports.default = (0, mobx_react_1.observer)(function ({ connectionType, model,
32
32
  return (react_1.default.createElement(react_1.Suspense, { fallback: react_1.default.createElement(ui_1.LoadingEllipses, null) },
33
33
  react_1.default.createElement(ConfigEditorComponent, { model: { target: model }, session: session })));
34
34
  });
35
- //# sourceMappingURL=ConfigureConnection.js.map
@@ -42,4 +42,3 @@ exports.default = (0, mobx_react_1.observer)(function ConnectionTypeSelect({ con
42
42
  connectionType.url ? (react_1.default.createElement(material_1.IconButton, { href: connectionType.url, rel: "noopener noreferrer", target: "_blank" },
43
43
  react_1.default.createElement(OpenInNew_1.default, null))) : null)) : null, select: true, fullWidth: true, onChange: event => setConnectionType(connectionTypeChoices.find(c => c.name === event.target.value)), variant: "outlined" }, connectionTypeChoices.map(c => (react_1.default.createElement(material_1.MenuItem, { key: c.name, value: c.name }, c.displayName || c.name))))) : null));
44
44
  });
45
- //# sourceMappingURL=ConnectionTypeSelect.js.map
@@ -42,4 +42,3 @@ exports.default = (pluginManager) => {
42
42
  });
43
43
  });
44
44
  };
45
- //# sourceMappingURL=index.js.map
@@ -6,4 +6,3 @@ exports.default = mobx_state_tree_1.types.model('AddConnectionModel', {
6
6
  id: mst_1.ElementId,
7
7
  type: mobx_state_tree_1.types.literal('AddConnectionWidget'),
8
8
  });
9
- //# sourceMappingURL=model.js.map
@@ -52,4 +52,3 @@ function AddTrackSelector({ model }) {
52
52
  react_1.default.createElement(Component, { model: model })));
53
53
  }
54
54
  exports.default = (0, mobx_react_1.observer)(AddTrackSelector);
55
- //# sourceMappingURL=AddTrackWidget.js.map
@@ -123,4 +123,3 @@ exports.default = (0, mobx_react_1.observer)(function ConfirmTrack({ model, }) {
123
123
  } }) }))),
124
124
  util_1.isElectron && check && supportedForIndexing ? (react_1.default.createElement(TextIndexingConfig_1.default, { model: model })) : null));
125
125
  });
126
- //# sourceMappingURL=ConfirmTrack.js.map
@@ -155,4 +155,3 @@ function AddTrackWorkflow({ model }) {
155
155
  react_1.default.createElement(material_1.Alert, { severity: "error" }, trackErrorMessage))) : null)))))));
156
156
  }
157
157
  exports.default = (0, mobx_react_1.observer)(AddTrackWorkflow);
158
- //# sourceMappingURL=DefaultAddTrackWorkflow.js.map
@@ -64,4 +64,3 @@ function AddTrackWorkflow({ model }) {
64
64
  } }, "Submit")));
65
65
  }
66
66
  exports.default = (0, mobx_react_1.observer)(AddTrackWorkflow);
67
- //# sourceMappingURL=PasteConfigWorkflow.js.map
@@ -100,4 +100,3 @@ const TextIndexingConfig = (0, mobx_react_1.observer)(function ({ model, }) {
100
100
  } })))))))));
101
101
  });
102
102
  exports.default = TextIndexingConfig;
103
- //# sourceMappingURL=TextIndexingConfig.js.map
@@ -47,4 +47,3 @@ const TrackAdapterSelector = (0, mobx_react_1.observer)(({ model }) => {
47
47
  })));
48
48
  });
49
49
  exports.default = TrackAdapterSelector;
50
- //# sourceMappingURL=TrackAdapterSelector.js.map
@@ -26,4 +26,3 @@ function TrackSourceSelect({ model }) {
26
26
  react_1.default.createElement(ui_1.FileSelector, { name: "Index file", description: "(Optional) The URL of the index file is automatically inferred from the URL of the main file if it is not supplied.", location: model.indexTrackData, setLocation: model.setIndexTrackData, setName: model.setTrackName, rootModel: rootModel })));
27
27
  }
28
28
  exports.default = (0, mobx_react_1.observer)(TrackSourceSelect);
29
- //# sourceMappingURL=TrackSourceSelect.js.map
@@ -24,4 +24,3 @@ const TrackTypeSelector = (0, mobx_react_1.observer)(({ model }) => {
24
24
  } }, trackTypes.map(({ name, displayName }) => (react_1.default.createElement(material_1.MenuItem, { key: name, value: name }, displayName)))));
25
25
  });
26
26
  exports.default = TrackTypeSelector;
27
- //# sourceMappingURL=TrackTypeSelector.js.map
@@ -42,4 +42,3 @@ exports.default = (pluginManager) => {
42
42
  });
43
43
  });
44
44
  };
45
- //# sourceMappingURL=index.js.map
@@ -154,4 +154,3 @@ function f(pluginManager) {
154
154
  }));
155
155
  }
156
156
  exports.default = f;
157
- //# sourceMappingURL=model.js.map
@@ -130,4 +130,3 @@ const AssemblyAddForm = (0, mobx_react_1.observer)(function ({ rootModel, setFor
130
130
  react_1.default.createElement(material_1.Button, { variant: "contained", color: "secondary", startIcon: react_1.default.createElement(Add_1.default, null), onClick: createAssembly }, "Create new assembly")));
131
131
  });
132
132
  exports.default = AssemblyAddForm;
133
- //# sourceMappingURL=AssemblyAddForm.js.map
@@ -11,4 +11,3 @@ const AssemblyEditor = (0, mobx_react_1.observer)(({ assembly, }) => {
11
11
  react_1.default.createElement(plugin_config_1.ConfigurationEditor, { model: { target: assembly } })));
12
12
  });
13
13
  exports.default = AssemblyEditor;
14
- //# sourceMappingURL=AssemblyEditor.js.map
@@ -54,4 +54,3 @@ const AssemblyManager = (0, mobx_react_1.observer)(function ({ rootModel, onClos
54
54
  react_1.default.createElement(material_1.Button, { variant: "contained", startIcon: react_1.default.createElement(Add_1.default, null), onClick: () => setFormOpen(true) }, "Add new assembly"))) : null)));
55
55
  });
56
56
  exports.default = AssemblyManager;
57
- //# sourceMappingURL=AssemblyManager.js.map
@@ -41,4 +41,3 @@ const AssemblyTable = (0, mobx_react_1.observer)(function ({ rootModel, setIsAss
41
41
  })))));
42
42
  });
43
43
  exports.default = AssemblyTable;
44
- //# sourceMappingURL=AssemblyTable.js.map
@@ -6,4 +6,3 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.default = void 0;
7
7
  var AssemblyManager_1 = require("./AssemblyManager");
8
8
  Object.defineProperty(exports, "default", { enumerable: true, get: function () { return __importDefault(AssemblyManager_1).default; } });
9
- //# sourceMappingURL=index.js.map
@@ -68,4 +68,3 @@ exports.default = (0, mobx_react_1.observer)(function HierarchicalFab({ model, }
68
68
  }
69
69
  } }, "Add track")) : null))) : null));
70
70
  });
71
- //# sourceMappingURL=HierarchicalFab.js.map
@@ -52,4 +52,3 @@ const HierarchicalTrackSelector = (0, mobx_react_1.observer)(function ({ model,
52
52
  react_1.default.createElement(AutoSizedHierarchicalTree, { tree: model.hierarchy, model: model, offset: toolbarHeight + headerHeight })));
53
53
  });
54
54
  exports.default = HierarchicalTrackSelectorContainer;
55
- //# sourceMappingURL=HierarchicalTrackSelector.js.map
@@ -67,4 +67,3 @@ exports.default = (0, mobx_react_1.observer)(function ShoppingCart({ model, }) {
67
67
  })),
68
68
  ] })));
69
69
  });
70
- //# sourceMappingURL=ShoppingCart.js.map
@@ -24,4 +24,3 @@ exports.default = (0, mobx_react_1.observer)(function CloseConnectionDialog({ mo
24
24
  }
25
25
  : () => { }, color: "primary" }, "OK"))));
26
26
  });
27
- //# sourceMappingURL=CloseConnectionDialog.js.map
@@ -26,4 +26,3 @@ function DeleteConnectionDialog({ deleteDialogDetails, session, handleClose, })
26
26
  } }, "OK"))));
27
27
  }
28
28
  exports.default = (0, mobx_react_1.observer)(DeleteConnectionDialog);
29
- //# sourceMappingURL=DeleteConnectionDialog.js.map
@@ -38,4 +38,3 @@ function ManageConnectionsDlg({ session, handleClose, breakConnection, }) {
38
38
  react_1.default.createElement(material_1.Button, { onClick: () => handleClose(), variant: "contained", color: "primary" }, "Close"))));
39
39
  }
40
40
  exports.default = (0, mobx_react_1.observer)(ManageConnectionsDlg);
41
- //# sourceMappingURL=ManageConnectionsDialog.js.map
@@ -53,4 +53,3 @@ exports.default = (0, mobx_react_1.observer)(function ToggleConnectionDialog({ s
53
53
  react_1.default.createElement(material_1.DialogActions, null,
54
54
  react_1.default.createElement(material_1.Button, { onClick: () => handleClose(), variant: "contained", color: "primary" }, "Close"))));
55
55
  });
56
- //# sourceMappingURL=ToggleConnectionsDialog.js.map
@@ -96,4 +96,3 @@ function FacetFilters({ rows, columns, dispatch, filters, width, }) {
96
96
  return (react_1.default.createElement("div", null, facets.map((column, index) => (react_1.default.createElement(FacetFilter, { key: column.field, vals: [...uniqs[index]], column: column, width: width, dispatch: dispatch, filters: filters })))));
97
97
  }
98
98
  exports.default = FacetFilters;
99
- //# sourceMappingURL=FacetFilters.js.map
@@ -15,4 +15,3 @@ function FacetedDlg(props) {
15
15
  react_1.default.createElement(FacetedSelector_1.default, { ...props }))));
16
16
  }
17
17
  exports.default = (0, mobx_react_1.observer)(FacetedDlg);
18
- //# sourceMappingURL=FacetedDialog.js.map
@@ -74,4 +74,3 @@ function FacetedHeader({ setFilterText, setUseShoppingCart, setHideSparse, setSh
74
74
  ] })));
75
75
  }
76
76
  exports.default = FacetedHeader;
77
- //# sourceMappingURL=FacetedHeader.js.map
@@ -42,11 +42,10 @@ const util_1 = require("@jbrowse/core/util");
42
42
  const configuration_1 = require("@jbrowse/core/configuration");
43
43
  // icons
44
44
  const MoreHoriz_1 = __importDefault(require("@mui/icons-material/MoreHoriz"));
45
- // locals
46
- const model_1 = require("../../model");
45
+ const util_2 = require("../../util");
47
46
  const FacetedHeader_1 = __importDefault(require("./FacetedHeader"));
48
47
  const FacetFilters_1 = __importDefault(require("./FacetFilters"));
49
- const util_2 = require("./util");
48
+ const util_3 = require("./util");
50
49
  const nonMetadataKeys = ['category', 'adapter', 'description'];
51
50
  const frac = 0.75;
52
51
  exports.default = (0, mobx_react_1.observer)(function FacetedSelector({ model, }) {
@@ -70,7 +69,7 @@ exports.default = (0, mobx_react_1.observer)(function FacetedSelector({ model, }
70
69
  // metadata is spread onto the object for easier access and sorting
71
70
  // by the mui data grid (it's unable to sort by nested objects)
72
71
  return model.trackConfigurations
73
- .filter(conf => (0, model_1.matches)(filterDebounced, conf, session))
72
+ .filter(conf => (0, util_2.matches)(filterDebounced, conf, session))
74
73
  .map(track => {
75
74
  var _a, _b;
76
75
  const metadata = (0, configuration_1.readConfObject)(track, 'metadata');
@@ -87,7 +86,7 @@ exports.default = (0, mobx_react_1.observer)(function FacetedSelector({ model, }
87
86
  });
88
87
  }, [model, filterDebounced, session]);
89
88
  const filteredNonMetadataKeys = (0, react_1.useMemo)(() => nonMetadataKeys.filter(f => !hideSparse ? true : rows.map(r => r[f]).filter(f => !!f).length > 5), [hideSparse, rows]);
90
- const filteredMetadataKeys = (0, react_1.useMemo)(() => [...new Set(rows.flatMap(row => (0, util_2.getRootKeys)(row.metadata)))].filter(f => !hideSparse
89
+ const filteredMetadataKeys = (0, react_1.useMemo)(() => [...new Set(rows.flatMap(row => (0, util_3.getRootKeys)(row.metadata)))].filter(f => !hideSparse
91
90
  ? true
92
91
  : rows.map(r => r.metadata[f]).filter(f => !!f).length > 5), [hideSparse, rows]);
93
92
  const fields = (0, react_1.useMemo)(() => ['name', ...filteredNonMetadataKeys, ...filteredMetadataKeys], [filteredNonMetadataKeys, filteredMetadataKeys]);
@@ -213,4 +212,3 @@ exports.default = (0, mobx_react_1.observer)(function FacetedSelector({ model, }
213
212
  react_1.default.createElement("div", { style: { width: panelWidth, overflowY: 'auto', overflowX: 'hidden' } },
214
213
  react_1.default.createElement(FacetFilters_1.default, { width: panelWidth - 10, rows: rows, columns: columns, dispatch: dispatch, filters: filters })))));
215
214
  });
216
- //# sourceMappingURL=FacetedSelector.js.map
@@ -7,4 +7,3 @@ function getRootKeys(obj) {
7
7
  .filter(f => !!f);
8
8
  }
9
9
  exports.getRootKeys = getRootKeys;
10
- //# sourceMappingURL=util.js.map
@@ -27,33 +27,23 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
29
  const react_1 = __importStar(require("react"));
30
- const material_1 = require("@mui/material");
31
- const mui_1 = require("tss-react/mui");
32
30
  const mobx_react_1 = require("mobx-react");
33
- const Menu_1 = __importDefault(require("@jbrowse/core/ui/Menu"));
34
31
  const util_1 = require("@jbrowse/core/util");
35
32
  const configuration_1 = require("@jbrowse/core/configuration");
33
+ const CascadingMenuButton_1 = __importDefault(require("@jbrowse/core/ui/CascadingMenuButton"));
36
34
  // icons
37
- const Menu_2 = __importDefault(require("@mui/icons-material/Menu"));
35
+ const Menu_1 = __importDefault(require("@mui/icons-material/Menu"));
38
36
  // lazy components
39
37
  const CloseConnectionDlg = (0, react_1.lazy)(() => Promise.resolve().then(() => __importStar(require('../dialogs/CloseConnectionDialog'))));
40
38
  const DeleteConnectionDlg = (0, react_1.lazy)(() => Promise.resolve().then(() => __importStar(require('../dialogs/DeleteConnectionDialog'))));
41
39
  const ManageConnectionsDlg = (0, react_1.lazy)(() => Promise.resolve().then(() => __importStar(require('../dialogs/ManageConnectionsDialog'))));
42
40
  const ToggleConnectionsDlg = (0, react_1.lazy)(() => Promise.resolve().then(() => __importStar(require('../dialogs/ToggleConnectionsDialog'))));
43
- const useStyles = (0, mui_1.makeStyles)()(theme => ({
44
- menuIcon: {
45
- marginRight: theme.spacing(1),
46
- marginBottom: 0,
47
- },
48
- }));
49
41
  exports.default = (0, mobx_react_1.observer)(function HamburgerMenu({ model, }) {
50
42
  const session = (0, util_1.getSession)(model);
51
- const [menuEl, setMenuEl] = (0, react_1.useState)();
52
43
  const [modalInfo, setModalInfo] = (0, react_1.useState)();
53
44
  const [deleteDlgDetails, setDeleteDlgDetails] = (0, react_1.useState)();
54
45
  const [connectionToggleOpen, setConnectionToggleOpen] = (0, react_1.useState)(false);
55
46
  const [connectionManagerOpen, setConnectionManagerOpen] = (0, react_1.useState)(false);
56
- const { classes } = useStyles();
57
47
  function breakConnection(connectionConf, deletingConnection) {
58
48
  const name = (0, configuration_1.readConfObject)(connectionConf, 'name');
59
49
  const result = session.prepareToBreakConnection(connectionConf);
@@ -76,12 +66,7 @@ exports.default = (0, mobx_react_1.observer)(function HamburgerMenu({ model, })
76
66
  }
77
67
  }
78
68
  return (react_1.default.createElement(react_1.default.Fragment, null,
79
- react_1.default.createElement(material_1.IconButton, { className: classes.menuIcon, onClick: event => setMenuEl(event.currentTarget) },
80
- react_1.default.createElement(Menu_2.default, null)),
81
- react_1.default.createElement(Menu_1.default, { anchorEl: menuEl, open: Boolean(menuEl), onMenuItemClick: (_, callback) => {
82
- callback();
83
- setMenuEl(undefined);
84
- }, onClose: () => setMenuEl(undefined), menuItems: [
69
+ react_1.default.createElement(CascadingMenuButton_1.default, { menuItems: [
85
70
  ...((0, util_1.isSessionWithAddTracks)(session)
86
71
  ? [
87
72
  {
@@ -120,11 +105,41 @@ exports.default = (0, mobx_react_1.observer)(function HamburgerMenu({ model, })
120
105
  },
121
106
  ]
122
107
  : []),
123
- ] }),
108
+ { type: 'divider' },
109
+ {
110
+ label: 'Sort tracks by name',
111
+ type: 'checkbox',
112
+ checked: model.activeSortTrackNames,
113
+ onClick: () => model.setSortTrackNames(!model.activeSortTrackNames),
114
+ },
115
+ {
116
+ label: 'Sort categories by name',
117
+ type: 'checkbox',
118
+ checked: model.activeSortCategories,
119
+ onClick: () => model.setSortCategories(!model.activeSortCategories),
120
+ },
121
+ { type: 'divider' },
122
+ ...(model.hasAnySubcategories
123
+ ? [
124
+ {
125
+ label: 'Collapse subcategories',
126
+ onClick: () => model.collapseSubCategories(),
127
+ },
128
+ ]
129
+ : []),
130
+ {
131
+ label: 'Collapse top-level categories',
132
+ onClick: () => model.collapseTopLevelCategories(),
133
+ },
134
+ {
135
+ label: 'Expand all categories',
136
+ onClick: () => model.expandAllCategories(),
137
+ },
138
+ ] },
139
+ react_1.default.createElement(Menu_1.default, null)),
124
140
  react_1.default.createElement(react_1.Suspense, { fallback: react_1.default.createElement(react_1.default.Fragment, null) },
125
141
  modalInfo ? (react_1.default.createElement(CloseConnectionDlg, { modalInfo: modalInfo, onClose: () => setModalInfo(undefined) })) : null,
126
142
  deleteDlgDetails ? (react_1.default.createElement(DeleteConnectionDlg, { handleClose: () => setDeleteDlgDetails(undefined), deleteDialogDetails: deleteDlgDetails, session: session })) : null,
127
143
  connectionManagerOpen ? (react_1.default.createElement(ManageConnectionsDlg, { handleClose: () => setConnectionManagerOpen(false), breakConnection: breakConnection, session: session })) : null,
128
144
  connectionToggleOpen ? (react_1.default.createElement(ToggleConnectionsDlg, { handleClose: () => setConnectionToggleOpen(false), session: session, breakConnection: breakConnection })) : null)));
129
145
  });
130
- //# sourceMappingURL=HamburgerMenu.js.map
@@ -45,21 +45,24 @@ const useStyles = (0, mui_1.makeStyles)()(theme => ({
45
45
  marginBottom: 0,
46
46
  },
47
47
  }));
48
+ const SearchTracksTextField = (0, mobx_react_1.observer)(function ({ model, }) {
49
+ const { filterText } = model;
50
+ const { classes } = useStyles();
51
+ return (react_1.default.createElement(material_1.TextField, { className: classes.searchBox, label: "Filter tracks", value: filterText, onChange: event => model.setFilterText(event.target.value), fullWidth: true, InputProps: {
52
+ endAdornment: (react_1.default.createElement(material_1.InputAdornment, { position: "end" },
53
+ react_1.default.createElement(material_1.IconButton, { onClick: () => model.clearFilterText() },
54
+ react_1.default.createElement(Clear_1.default, null)))),
55
+ } }));
56
+ });
48
57
  function HierarchicalTrackSelectorHeader({ model, setHeaderHeight, }) {
49
58
  const { classes } = useStyles();
50
59
  const [facetedOpen, setFacetedOpen] = (0, react_1.useState)(false);
51
- const { filterText } = model;
52
60
  return (react_1.default.createElement("div", { ref: ref => setHeaderHeight((ref === null || ref === void 0 ? void 0 : ref.getBoundingClientRect().height) || 0), "data-testid": "hierarchical_track_selector" },
53
61
  react_1.default.createElement("div", { style: { display: 'flex' } },
54
62
  react_1.default.createElement(HamburgerMenu_1.default, { model: model }),
55
63
  react_1.default.createElement(ShoppingCart_1.default, { model: model }),
56
- react_1.default.createElement(material_1.TextField, { className: classes.searchBox, label: "Filter tracks", value: filterText, onChange: event => model.setFilterText(event.target.value), fullWidth: true, InputProps: {
57
- endAdornment: (react_1.default.createElement(material_1.InputAdornment, { position: "end" },
58
- react_1.default.createElement(material_1.IconButton, { onClick: () => model.clearFilterText() },
59
- react_1.default.createElement(Clear_1.default, null)))),
60
- } }),
64
+ react_1.default.createElement(SearchTracksTextField, { model: model }),
61
65
  react_1.default.createElement(material_1.Button, { className: classes.menuIcon, onClick: () => setFacetedOpen(true) }, "Open faceted selector")),
62
66
  react_1.default.createElement(react_1.Suspense, { fallback: react_1.default.createElement("div", null) }, facetedOpen ? (react_1.default.createElement(FacetedDialog, { handleClose: () => setFacetedOpen(false), model: model })) : null)));
63
67
  }
64
68
  exports.default = (0, mobx_react_1.observer)(HierarchicalTrackSelectorHeader);
65
- //# sourceMappingURL=HierarchicalHeader.js.map
@@ -1,5 +1,6 @@
1
1
  import React from 'react';
2
- import { TreeNode, HierarchicalTrackSelectorModel } from '../../model';
2
+ import { TreeNode } from '../../generateHierarchy';
3
+ import { HierarchicalTrackSelectorModel } from '../../model';
3
4
  declare const _default: ({ height, tree, model, }: {
4
5
  height: number;
5
6
  tree: TreeNode;
@@ -88,4 +88,3 @@ exports.default = (0, mobx_react_1.observer)(function HierarchicalTree({ height,
88
88
  return (react_1.default.createElement(react_1.default.Fragment, null,
89
89
  react_1.default.createElement(react_vtree_1.VariableSizeTree, { ref: treeRef, treeWalker: treeWalker, height: height }, TrackListNode_1.default)));
90
90
  });
91
- //# sourceMappingURL=HierarchicalTree.js.map
@@ -80,10 +80,31 @@ function Category({ isOpen, setOpen, data, }) {
80
80
  model.removeFromSelection((0, util_1.getAllChildren)(r));
81
81
  },
82
82
  },
83
+ {
84
+ label: 'Show all tracks',
85
+ onClick: () => {
86
+ var _a;
87
+ for (const entry of ((_a = (0, util_1.treeToMap)(tree).get(id)) === null || _a === void 0 ? void 0 : _a.children) || []) {
88
+ if (!entry.children.length) {
89
+ model.view.showTrack(entry.id);
90
+ }
91
+ }
92
+ },
93
+ },
94
+ {
95
+ label: 'Hide all tracks',
96
+ onClick: () => {
97
+ var _a;
98
+ for (const entry of ((_a = (0, util_1.treeToMap)(tree).get(id)) === null || _a === void 0 ? void 0 : _a.children) || []) {
99
+ if (!entry.children.length) {
100
+ model.view.hideTrack(entry.id);
101
+ }
102
+ }
103
+ },
104
+ },
83
105
  ], onMenuItemClick: (_event, callback) => {
84
106
  callback();
85
107
  setMenuEl(null);
86
108
  }, open: Boolean(menuEl), onClose: () => setMenuEl(null) })) : null));
87
109
  }
88
110
  exports.default = Category;
89
- //# sourceMappingURL=TrackCategory.js.map
@@ -59,7 +59,7 @@ function TrackLabel({ data }) {
59
59
  react_1.default.createElement(material_1.FormControlLabel, { className: classes.checkboxLabel, control: react_1.default.createElement(material_1.Checkbox, { className: classes.compactCheckbox, checked: checked, onChange: () => onChange(id), disabled: (0, util_2.isUnsupported)(name), inputProps: {
60
60
  // @ts-expect-error
61
61
  'data-testid': `htsTrackEntry-${id}`,
62
- } }), label: react_1.default.createElement("div", { style: { background: selected ? '#cccc' : undefined } },
62
+ } }), label: react_1.default.createElement("div", { "data-testid": `htsTrackLabel-${id}`, style: { background: selected ? '#cccc' : undefined } },
63
63
  react_1.default.createElement(ui_1.SanitizedHTML, { html: name })) })),
64
64
  react_1.default.createElement(material_1.IconButton, { onClick: e => setInfo({ target: e.currentTarget, id, conf }), style: { padding: 0 }, "data-testid": `htsTrackEntryMenu-${id}` },
65
65
  react_1.default.createElement(MoreHoriz_1.default, null)),
@@ -83,4 +83,3 @@ function TrackLabel({ data }) {
83
83
  }, open: Boolean(info), onClose: () => setInfo(undefined) })) : null));
84
84
  }
85
85
  exports.default = TrackLabel;
86
- //# sourceMappingURL=TrackLabel.js.map
@@ -51,4 +51,3 @@ function Node({ data, isOpen, style, setOpen, }) {
51
51
  react_1.default.createElement("div", { className: !isLeaf ? classes.accordionColor : undefined }, !isLeaf ? (react_1.default.createElement(TrackCategory_1.default, { isOpen: isOpen, data: data, setOpen: setOpen })) : (react_1.default.createElement(TrackLabel_1.default, { data: data }))))));
52
52
  }
53
53
  exports.default = Node;
54
- //# sourceMappingURL=TrackListNode.js.map
@@ -1,5 +1,6 @@
1
1
  import { AnyConfigurationModel } from '@jbrowse/core/configuration';
2
- import { HierarchicalTrackSelectorModel, TreeNode } from '../model';
2
+ import { HierarchicalTrackSelectorModel } from '../model';
3
+ import { TreeNode } from '../generateHierarchy';
3
4
  export interface NodeData {
4
5
  nestingLevel: number;
5
6
  checked: boolean;
@@ -21,4 +21,3 @@ function isUnsupported(name = '') {
21
21
  return name.endsWith('(Unsupported)') || name.endsWith('(Unknown)');
22
22
  }
23
23
  exports.isUnsupported = isUnsupported;
24
- //# sourceMappingURL=util.js.map
@@ -3,4 +3,3 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const configuration_1 = require("@jbrowse/core/configuration");
4
4
  const configSchema = (0, configuration_1.ConfigurationSchema)('HierarchicalTrackSelectorWidget', {});
5
5
  exports.default = configSchema;
6
- //# sourceMappingURL=configSchema.js.map
@@ -0,0 +1,12 @@
1
+ import { AnyConfigurationModel } from '@jbrowse/core/configuration';
2
+ export declare function filterTracks(tracks: AnyConfigurationModel[], self: {
3
+ view?: {
4
+ type: string;
5
+ trackSelectorAnyOverlap?: boolean;
6
+ };
7
+ assemblyNames: string[];
8
+ }): ({
9
+ [x: string]: any;
10
+ } & import("mobx-state-tree/dist/internal").NonEmptyObject & {
11
+ setSubschema(slotName: string, data: unknown): any;
12
+ } & import("mobx-state-tree").IStateTreeNode<import("@jbrowse/core/configuration").AnyConfigurationSchemaType>)[];
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.filterTracks = void 0;
4
+ const configuration_1 = require("@jbrowse/core/configuration");
5
+ const util_1 = require("@jbrowse/core/util");
6
+ const util_2 = require("./util");
7
+ function filterTracks(tracks, self) {
8
+ const { assemblyManager } = (0, util_1.getSession)(self);
9
+ const { pluginManager } = (0, util_1.getEnv)(self);
10
+ const { view } = self;
11
+ if (!view) {
12
+ return [];
13
+ }
14
+ const trackListAssemblies = self.assemblyNames
15
+ .map(a => assemblyManager.get(a))
16
+ .filter(util_1.notEmpty);
17
+ return tracks
18
+ .filter(c => {
19
+ const trackAssemblyNames = (0, configuration_1.readConfObject)(c, 'assemblyNames');
20
+ const trackAssemblies = trackAssemblyNames === null || trackAssemblyNames === void 0 ? void 0 : trackAssemblyNames.map(name => assemblyManager.get(name)).filter(util_1.notEmpty);
21
+ return view.trackSelectorAnyOverlap
22
+ ? (0, util_2.hasAnyOverlap)(trackAssemblies, trackListAssemblies)
23
+ : (0, util_2.hasAllOverlap)(trackAssemblies, trackListAssemblies);
24
+ })
25
+ .filter(c => {
26
+ const { displayTypes } = pluginManager.getViewType(view.type);
27
+ const compatDisplays = displayTypes.map(d => d.name);
28
+ const trackDisplays = c.displays.map((d) => d.type);
29
+ return (0, util_2.hasAnyOverlap)(compatDisplays, trackDisplays);
30
+ });
31
+ }
32
+ exports.filterTracks = filterTracks;
@@ -0,0 +1,21 @@
1
+ import { AnyConfigurationModel } from '@jbrowse/core/configuration';
2
+ export type TreeNode = {
3
+ name: string;
4
+ id: string;
5
+ conf?: AnyConfigurationModel;
6
+ checked?: boolean;
7
+ isOpenByDefault?: boolean;
8
+ children: TreeNode[];
9
+ };
10
+ export declare function generateHierarchy(model: {
11
+ filterText: string;
12
+ activeSortTrackNames: boolean;
13
+ activeSortCategories: boolean;
14
+ view?: {
15
+ tracks: {
16
+ configuration: AnyConfigurationModel;
17
+ }[];
18
+ };
19
+ }, trackConfs: AnyConfigurationModel[], collapsed: {
20
+ get: (arg: string) => boolean | undefined;
21
+ }, extra?: string): TreeNode[];
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateHierarchy = void 0;
4
+ const configuration_1 = require("@jbrowse/core/configuration");
5
+ const util_1 = require("@jbrowse/core/util");
6
+ const tracks_1 = require("@jbrowse/core/util/tracks");
7
+ // locals
8
+ const util_2 = require("./util");
9
+ function sortConfs(confs, sortNames, sortCategories) {
10
+ // uses readConfObject instead of getTrackName so that the undefined
11
+ // reference sequence track is sorted to the top
12
+ const ret = confs.map(c => {
13
+ var _a, _b, _c;
14
+ return [
15
+ c,
16
+ (0, configuration_1.readConfObject)(c, 'name'),
17
+ ((_a = (0, configuration_1.readConfObject)(c, 'category')) === null || _a === void 0 ? void 0 : _a[0]) || '',
18
+ ((_b = (0, configuration_1.readConfObject)(c, 'category')) === null || _b === void 0 ? void 0 : _b[1]) || '',
19
+ ((_c = (0, configuration_1.readConfObject)(c, 'category')) === null || _c === void 0 ? void 0 : _c[2]) || '',
20
+ ];
21
+ });
22
+ if (sortNames) {
23
+ ret.sort((a, b) => a[1].localeCompare(b[1]));
24
+ }
25
+ if (sortCategories) {
26
+ // sort up to three sub-category levels, harder to code it to go deeper
27
+ // than this and likely rarely used
28
+ ret.sort((a, b) => {
29
+ if (a[2] !== b[2]) {
30
+ return a[2].localeCompare(b[2]);
31
+ }
32
+ else if (a[3] !== b[3]) {
33
+ return a[3].localeCompare(b[3]);
34
+ }
35
+ else if (a[4] !== b[4]) {
36
+ return a[4].localeCompare(b[4]);
37
+ }
38
+ return 0;
39
+ });
40
+ }
41
+ return ret.map(a => a[0]);
42
+ }
43
+ function generateHierarchy(model, trackConfs, collapsed, extra) {
44
+ const hierarchy = { children: [] };
45
+ const { filterText, activeSortTrackNames, activeSortCategories, view } = model;
46
+ if (!view) {
47
+ return [];
48
+ }
49
+ const session = (0, util_1.getSession)(model);
50
+ const viewTracks = view.tracks;
51
+ const confs = trackConfs.filter(conf => (0, util_2.matches)(filterText, conf, session));
52
+ // uses getConf
53
+ for (const conf of sortConfs(confs, activeSortTrackNames, activeSortCategories)) {
54
+ // copy the categories since this array can be mutated downstream
55
+ const categories = [...((0, configuration_1.readConfObject)(conf, 'category') || [])];
56
+ // hack where if trackId ends with sessionTrack, then push it to a
57
+ // category that starts with a space to force sort to the top
58
+ if (conf.trackId.endsWith('sessionTrack')) {
59
+ categories.unshift(' Session tracks');
60
+ }
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;
81
+ }
82
+ }
83
+ // uses splice to try to put all leaf nodes above "category nodes" if you
84
+ // change the splice to a simple push and open
85
+ // test_data/test_order/config.json you will see the weirdness
86
+ const r = currLevel.children.findIndex(elt => elt.children.length);
87
+ const idx = r === -1 ? currLevel.children.length : r;
88
+ currLevel.children.splice(idx, 0, {
89
+ id: conf.trackId,
90
+ name: (0, tracks_1.getTrackName)(conf, session),
91
+ conf,
92
+ checked: viewTracks.some(f => f.configuration === conf),
93
+ children: [],
94
+ });
95
+ }
96
+ return hierarchy.children;
97
+ }
98
+ exports.generateHierarchy = generateHierarchy;