@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
@@ -45,4 +45,3 @@ export default function FacetedHeader({ setFilterText, setUseShoppingCart, setHi
45
45
  },
46
46
  ] })));
47
47
  }
48
- //# sourceMappingURL=FacetedHeader.js.map
@@ -14,8 +14,7 @@ import { getEnv, getSession, measureGridWidth, useDebounce, } from '@jbrowse/cor
14
14
  import { readConfObject, } from '@jbrowse/core/configuration';
15
15
  // icons
16
16
  import MoreHoriz from '@mui/icons-material/MoreHoriz';
17
- // locals
18
- import { matches } from '../../model';
17
+ import { matches } from '../../util';
19
18
  import FacetedHeader from './FacetedHeader';
20
19
  import FacetFilters from './FacetFilters';
21
20
  import { getRootKeys } from './util';
@@ -185,4 +184,3 @@ export default observer(function FacetedSelector({ model, }) {
185
184
  React.createElement("div", { style: { width: panelWidth, overflowY: 'auto', overflowX: 'hidden' } },
186
185
  React.createElement(FacetFilters, { width: panelWidth - 10, rows: rows, columns: columns, dispatch: dispatch, filters: filters })))));
187
186
  });
188
- //# sourceMappingURL=FacetedSelector.js.map
@@ -3,4 +3,3 @@ export function getRootKeys(obj) {
3
3
  .map(([key, val]) => (typeof val === 'string' ? key : ''))
4
4
  .filter(f => !!f);
5
5
  }
6
- //# sourceMappingURL=util.js.map
@@ -1,10 +1,8 @@
1
1
  import React, { Suspense, lazy, useState } from 'react';
2
- import { IconButton } from '@mui/material';
3
- import { makeStyles } from 'tss-react/mui';
4
2
  import { observer } from 'mobx-react';
5
- import JBrowseMenu from '@jbrowse/core/ui/Menu';
6
3
  import { getSession, isSessionModelWithConnectionEditing, isSessionModelWithConnections, isSessionModelWithWidgets, isSessionWithAddTracks, } from '@jbrowse/core/util';
7
4
  import { readConfObject, } from '@jbrowse/core/configuration';
5
+ import CascadingMenuButton from '@jbrowse/core/ui/CascadingMenuButton';
8
6
  // icons
9
7
  import MenuIcon from '@mui/icons-material/Menu';
10
8
  // lazy components
@@ -12,20 +10,12 @@ const CloseConnectionDlg = lazy(() => import('../dialogs/CloseConnectionDialog')
12
10
  const DeleteConnectionDlg = lazy(() => import('../dialogs/DeleteConnectionDialog'));
13
11
  const ManageConnectionsDlg = lazy(() => import('../dialogs/ManageConnectionsDialog'));
14
12
  const ToggleConnectionsDlg = lazy(() => import('../dialogs/ToggleConnectionsDialog'));
15
- const useStyles = makeStyles()(theme => ({
16
- menuIcon: {
17
- marginRight: theme.spacing(1),
18
- marginBottom: 0,
19
- },
20
- }));
21
13
  export default observer(function HamburgerMenu({ model, }) {
22
14
  const session = getSession(model);
23
- const [menuEl, setMenuEl] = useState();
24
15
  const [modalInfo, setModalInfo] = useState();
25
16
  const [deleteDlgDetails, setDeleteDlgDetails] = useState();
26
17
  const [connectionToggleOpen, setConnectionToggleOpen] = useState(false);
27
18
  const [connectionManagerOpen, setConnectionManagerOpen] = useState(false);
28
- const { classes } = useStyles();
29
19
  function breakConnection(connectionConf, deletingConnection) {
30
20
  const name = readConfObject(connectionConf, 'name');
31
21
  const result = session.prepareToBreakConnection(connectionConf);
@@ -48,12 +38,7 @@ export default observer(function HamburgerMenu({ model, }) {
48
38
  }
49
39
  }
50
40
  return (React.createElement(React.Fragment, null,
51
- React.createElement(IconButton, { className: classes.menuIcon, onClick: event => setMenuEl(event.currentTarget) },
52
- React.createElement(MenuIcon, null)),
53
- React.createElement(JBrowseMenu, { anchorEl: menuEl, open: Boolean(menuEl), onMenuItemClick: (_, callback) => {
54
- callback();
55
- setMenuEl(undefined);
56
- }, onClose: () => setMenuEl(undefined), menuItems: [
41
+ React.createElement(CascadingMenuButton, { menuItems: [
57
42
  ...(isSessionWithAddTracks(session)
58
43
  ? [
59
44
  {
@@ -92,11 +77,41 @@ export default observer(function HamburgerMenu({ model, }) {
92
77
  },
93
78
  ]
94
79
  : []),
95
- ] }),
80
+ { type: 'divider' },
81
+ {
82
+ label: 'Sort tracks by name',
83
+ type: 'checkbox',
84
+ checked: model.activeSortTrackNames,
85
+ onClick: () => model.setSortTrackNames(!model.activeSortTrackNames),
86
+ },
87
+ {
88
+ label: 'Sort categories by name',
89
+ type: 'checkbox',
90
+ checked: model.activeSortCategories,
91
+ onClick: () => model.setSortCategories(!model.activeSortCategories),
92
+ },
93
+ { type: 'divider' },
94
+ ...(model.hasAnySubcategories
95
+ ? [
96
+ {
97
+ label: 'Collapse subcategories',
98
+ onClick: () => model.collapseSubCategories(),
99
+ },
100
+ ]
101
+ : []),
102
+ {
103
+ label: 'Collapse top-level categories',
104
+ onClick: () => model.collapseTopLevelCategories(),
105
+ },
106
+ {
107
+ label: 'Expand all categories',
108
+ onClick: () => model.expandAllCategories(),
109
+ },
110
+ ] },
111
+ React.createElement(MenuIcon, null)),
96
112
  React.createElement(Suspense, { fallback: React.createElement(React.Fragment, null) },
97
113
  modalInfo ? (React.createElement(CloseConnectionDlg, { modalInfo: modalInfo, onClose: () => setModalInfo(undefined) })) : null,
98
114
  deleteDlgDetails ? (React.createElement(DeleteConnectionDlg, { handleClose: () => setDeleteDlgDetails(undefined), deleteDialogDetails: deleteDlgDetails, session: session })) : null,
99
115
  connectionManagerOpen ? (React.createElement(ManageConnectionsDlg, { handleClose: () => setConnectionManagerOpen(false), breakConnection: breakConnection, session: session })) : null,
100
116
  connectionToggleOpen ? (React.createElement(ToggleConnectionsDlg, { handleClose: () => setConnectionToggleOpen(false), session: session, breakConnection: breakConnection })) : null)));
101
117
  });
102
- //# sourceMappingURL=HamburgerMenu.js.map
@@ -17,21 +17,24 @@ const useStyles = makeStyles()(theme => ({
17
17
  marginBottom: 0,
18
18
  },
19
19
  }));
20
+ const SearchTracksTextField = observer(function ({ model, }) {
21
+ const { filterText } = model;
22
+ const { classes } = useStyles();
23
+ return (React.createElement(TextField, { className: classes.searchBox, label: "Filter tracks", value: filterText, onChange: event => model.setFilterText(event.target.value), fullWidth: true, InputProps: {
24
+ endAdornment: (React.createElement(InputAdornment, { position: "end" },
25
+ React.createElement(IconButton, { onClick: () => model.clearFilterText() },
26
+ React.createElement(ClearIcon, null)))),
27
+ } }));
28
+ });
20
29
  function HierarchicalTrackSelectorHeader({ model, setHeaderHeight, }) {
21
30
  const { classes } = useStyles();
22
31
  const [facetedOpen, setFacetedOpen] = useState(false);
23
- const { filterText } = model;
24
32
  return (React.createElement("div", { ref: ref => setHeaderHeight((ref === null || ref === void 0 ? void 0 : ref.getBoundingClientRect().height) || 0), "data-testid": "hierarchical_track_selector" },
25
33
  React.createElement("div", { style: { display: 'flex' } },
26
34
  React.createElement(HamburgerMenu, { model: model }),
27
35
  React.createElement(ShoppingCart, { model: model }),
28
- React.createElement(TextField, { className: classes.searchBox, label: "Filter tracks", value: filterText, onChange: event => model.setFilterText(event.target.value), fullWidth: true, InputProps: {
29
- endAdornment: (React.createElement(InputAdornment, { position: "end" },
30
- React.createElement(IconButton, { onClick: () => model.clearFilterText() },
31
- React.createElement(ClearIcon, null)))),
32
- } }),
36
+ React.createElement(SearchTracksTextField, { model: model }),
33
37
  React.createElement(Button, { className: classes.menuIcon, onClick: () => setFacetedOpen(true) }, "Open faceted selector")),
34
38
  React.createElement(Suspense, { fallback: React.createElement("div", null) }, facetedOpen ? (React.createElement(FacetedDialog, { handleClose: () => setFacetedOpen(false), model: model })) : null)));
35
39
  }
36
40
  export default observer(HierarchicalTrackSelectorHeader);
37
- //# 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;
@@ -60,4 +60,3 @@ export default observer(function HierarchicalTree({ height, tree, model, }) {
60
60
  return (React.createElement(React.Fragment, null,
61
61
  React.createElement(VariableSizeTree, { ref: treeRef, treeWalker: treeWalker, height: height }, Node)));
62
62
  });
63
- //# sourceMappingURL=HierarchicalTree.js.map
@@ -52,9 +52,30 @@ export default function Category({ isOpen, setOpen, data, }) {
52
52
  model.removeFromSelection(getAllChildren(r));
53
53
  },
54
54
  },
55
+ {
56
+ label: 'Show all tracks',
57
+ onClick: () => {
58
+ var _a;
59
+ for (const entry of ((_a = treeToMap(tree).get(id)) === null || _a === void 0 ? void 0 : _a.children) || []) {
60
+ if (!entry.children.length) {
61
+ model.view.showTrack(entry.id);
62
+ }
63
+ }
64
+ },
65
+ },
66
+ {
67
+ label: 'Hide all tracks',
68
+ onClick: () => {
69
+ var _a;
70
+ for (const entry of ((_a = treeToMap(tree).get(id)) === null || _a === void 0 ? void 0 : _a.children) || []) {
71
+ if (!entry.children.length) {
72
+ model.view.hideTrack(entry.id);
73
+ }
74
+ }
75
+ },
76
+ },
55
77
  ], onMenuItemClick: (_event, callback) => {
56
78
  callback();
57
79
  setMenuEl(null);
58
80
  }, open: Boolean(menuEl), onClose: () => setMenuEl(null) })) : null));
59
81
  }
60
- //# sourceMappingURL=TrackCategory.js.map
@@ -31,7 +31,7 @@ export default function TrackLabel({ data }) {
31
31
  React.createElement(FormControlLabel, { className: classes.checkboxLabel, control: React.createElement(Checkbox, { className: classes.compactCheckbox, checked: checked, onChange: () => onChange(id), disabled: isUnsupported(name), inputProps: {
32
32
  // @ts-expect-error
33
33
  'data-testid': `htsTrackEntry-${id}`,
34
- } }), label: React.createElement("div", { style: { background: selected ? '#cccc' : undefined } },
34
+ } }), label: React.createElement("div", { "data-testid": `htsTrackLabel-${id}`, style: { background: selected ? '#cccc' : undefined } },
35
35
  React.createElement(SanitizedHTML, { html: name })) })),
36
36
  React.createElement(IconButton, { onClick: e => setInfo({ target: e.currentTarget, id, conf }), style: { padding: 0 }, "data-testid": `htsTrackEntryMenu-${id}` },
37
37
  React.createElement(MoreHorizIcon, null)),
@@ -54,4 +54,3 @@ export default function TrackLabel({ data }) {
54
54
  setInfo(undefined);
55
55
  }, open: Boolean(info), onClose: () => setInfo(undefined) })) : null));
56
56
  }
57
- //# sourceMappingURL=TrackLabel.js.map
@@ -45,4 +45,3 @@ export default function Node({ data, isOpen, style, setOpen, }) {
45
45
  } },
46
46
  React.createElement("div", { className: !isLeaf ? classes.accordionColor : undefined }, !isLeaf ? (React.createElement(Category, { isOpen: isOpen, data: data, setOpen: setOpen })) : (React.createElement(TrackLabel, { data: data }))))));
47
47
  }
48
- //# 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;
@@ -15,4 +15,3 @@ export function treeToMap(tree, map = new Map()) {
15
15
  export function isUnsupported(name = '') {
16
16
  return name.endsWith('(Unsupported)') || name.endsWith('(Unknown)');
17
17
  }
18
- //# sourceMappingURL=util.js.map
@@ -1,4 +1,3 @@
1
1
  import { ConfigurationSchema } from '@jbrowse/core/configuration';
2
2
  const configSchema = ConfigurationSchema('HierarchicalTrackSelectorWidget', {});
3
3
  export default configSchema;
4
- //# 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,28 @@
1
+ import { readConfObject, } from '@jbrowse/core/configuration';
2
+ import { getEnv, getSession, notEmpty } from '@jbrowse/core/util';
3
+ import { hasAllOverlap, hasAnyOverlap } from './util';
4
+ export function filterTracks(tracks, self) {
5
+ const { assemblyManager } = getSession(self);
6
+ const { pluginManager } = getEnv(self);
7
+ const { view } = self;
8
+ if (!view) {
9
+ return [];
10
+ }
11
+ const trackListAssemblies = self.assemblyNames
12
+ .map(a => assemblyManager.get(a))
13
+ .filter(notEmpty);
14
+ return tracks
15
+ .filter(c => {
16
+ const trackAssemblyNames = readConfObject(c, 'assemblyNames');
17
+ const trackAssemblies = trackAssemblyNames === null || trackAssemblyNames === void 0 ? void 0 : trackAssemblyNames.map(name => assemblyManager.get(name)).filter(notEmpty);
18
+ return view.trackSelectorAnyOverlap
19
+ ? hasAnyOverlap(trackAssemblies, trackListAssemblies)
20
+ : hasAllOverlap(trackAssemblies, trackListAssemblies);
21
+ })
22
+ .filter(c => {
23
+ const { displayTypes } = pluginManager.getViewType(view.type);
24
+ const compatDisplays = displayTypes.map(d => d.name);
25
+ const trackDisplays = c.displays.map((d) => d.type);
26
+ return hasAnyOverlap(compatDisplays, trackDisplays);
27
+ });
28
+ }
@@ -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,94 @@
1
+ import { readConfObject, } from '@jbrowse/core/configuration';
2
+ import { getSession } from '@jbrowse/core/util';
3
+ import { getTrackName } from '@jbrowse/core/util/tracks';
4
+ // locals
5
+ import { matches } from './util';
6
+ function sortConfs(confs, sortNames, sortCategories) {
7
+ // uses readConfObject instead of getTrackName so that the undefined
8
+ // reference sequence track is sorted to the top
9
+ const ret = confs.map(c => {
10
+ var _a, _b, _c;
11
+ return [
12
+ c,
13
+ readConfObject(c, 'name'),
14
+ ((_a = readConfObject(c, 'category')) === null || _a === void 0 ? void 0 : _a[0]) || '',
15
+ ((_b = readConfObject(c, 'category')) === null || _b === void 0 ? void 0 : _b[1]) || '',
16
+ ((_c = readConfObject(c, 'category')) === null || _c === void 0 ? void 0 : _c[2]) || '',
17
+ ];
18
+ });
19
+ if (sortNames) {
20
+ ret.sort((a, b) => a[1].localeCompare(b[1]));
21
+ }
22
+ if (sortCategories) {
23
+ // sort up to three sub-category levels, harder to code it to go deeper
24
+ // than this and likely rarely used
25
+ ret.sort((a, b) => {
26
+ if (a[2] !== b[2]) {
27
+ return a[2].localeCompare(b[2]);
28
+ }
29
+ else if (a[3] !== b[3]) {
30
+ return a[3].localeCompare(b[3]);
31
+ }
32
+ else if (a[4] !== b[4]) {
33
+ return a[4].localeCompare(b[4]);
34
+ }
35
+ return 0;
36
+ });
37
+ }
38
+ return ret.map(a => a[0]);
39
+ }
40
+ export function generateHierarchy(model, trackConfs, collapsed, extra) {
41
+ const hierarchy = { children: [] };
42
+ const { filterText, activeSortTrackNames, activeSortCategories, view } = model;
43
+ if (!view) {
44
+ return [];
45
+ }
46
+ const session = getSession(model);
47
+ const viewTracks = view.tracks;
48
+ const confs = trackConfs.filter(conf => matches(filterText, conf, session));
49
+ // uses getConf
50
+ for (const conf of sortConfs(confs, activeSortTrackNames, activeSortCategories)) {
51
+ // copy the categories since this array can be mutated downstream
52
+ const categories = [...(readConfObject(conf, 'category') || [])];
53
+ // hack where if trackId ends with sessionTrack, then push it to a
54
+ // category that starts with a space to force sort to the top
55
+ if (conf.trackId.endsWith('sessionTrack')) {
56
+ categories.unshift(' Session tracks');
57
+ }
58
+ let currLevel = hierarchy;
59
+ // find existing category to put track into or create it
60
+ for (let i = 0; i < categories.length; i++) {
61
+ const category = categories[i];
62
+ const ret = currLevel.children.find(c => c.name === category);
63
+ const id = [extra, categories.slice(0, i + 1).join(',')]
64
+ .filter(f => !!f)
65
+ .join('-');
66
+ if (!ret) {
67
+ const n = {
68
+ children: [],
69
+ name: category,
70
+ id,
71
+ isOpenByDefault: !collapsed.get(id),
72
+ };
73
+ currLevel.children.push(n);
74
+ currLevel = n;
75
+ }
76
+ else {
77
+ currLevel = ret;
78
+ }
79
+ }
80
+ // uses splice to try to put all leaf nodes above "category nodes" if you
81
+ // change the splice to a simple push and open
82
+ // test_data/test_order/config.json you will see the weirdness
83
+ const r = currLevel.children.findIndex(elt => elt.children.length);
84
+ const idx = r === -1 ? currLevel.children.length : r;
85
+ currLevel.children.splice(idx, 0, {
86
+ id: conf.trackId,
87
+ name: getTrackName(conf, session),
88
+ conf,
89
+ checked: viewTracks.some(f => f.configuration === conf),
90
+ children: [],
91
+ });
92
+ }
93
+ return hierarchy.children;
94
+ }
@@ -15,4 +15,3 @@ export default (pluginManager) => {
15
15
  };
16
16
  export { default as stateModelFactory, } from './model';
17
17
  export { default as configSchema } from './configSchema';
18
- //# sourceMappingURL=index.js.map
@@ -1,19 +1,7 @@
1
1
  import { Instance } from 'mobx-state-tree';
2
2
  import { AnyConfigurationModel } from '@jbrowse/core/configuration';
3
- import { AbstractSessionModel } from '@jbrowse/core/util';
4
3
  import PluginManager from '@jbrowse/core/PluginManager';
5
- export declare function matches(query: string, conf: AnyConfigurationModel, session: AbstractSessionModel): boolean;
6
- export type TreeNode = {
7
- name: string;
8
- id: string;
9
- conf?: AnyConfigurationModel;
10
- checked?: boolean;
11
- isOpenByDefault?: boolean;
12
- children: TreeNode[];
13
- };
14
- export declare function generateHierarchy(model: HierarchicalTrackSelectorModel, trackConfigurations: AnyConfigurationModel[], collapsed: {
15
- get: (arg: string) => boolean | undefined;
16
- }, extra?: string): TreeNode[];
4
+ import { TreeNode } from './generateHierarchy';
17
5
  /**
18
6
  * #stateModel HierarchicalTrackSelectorWidget
19
7
  */
@@ -26,10 +14,22 @@ export default function stateTreeFactory(pluginManager: PluginManager): import("
26
14
  * #property
27
15
  */
28
16
  type: import("mobx-state-tree").ISimpleType<"HierarchicalTrackSelectorWidget">;
17
+ /**
18
+ * #property
19
+ */
20
+ initialized: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<boolean>>;
29
21
  /**
30
22
  * #property
31
23
  */
32
24
  collapsed: import("mobx-state-tree").IMapType<import("mobx-state-tree").ISimpleType<boolean>>;
25
+ /**
26
+ * #property
27
+ */
28
+ sortTrackNames: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<boolean>>;
29
+ /**
30
+ * #property
31
+ */
32
+ sortCategories: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<boolean>>;
33
33
  /**
34
34
  * #property
35
35
  */
@@ -42,6 +42,14 @@ export default function stateTreeFactory(pluginManager: PluginManager): import("
42
42
  } & import("mobx-state-tree").IStateTreeNode<import("@jbrowse/core/configuration").AnyConfigurationSchemaType>)[];
43
43
  filterText: string;
44
44
  } & {
45
+ /**
46
+ * #action
47
+ */
48
+ setSortTrackNames(val: boolean): void;
49
+ /**
50
+ * #action
51
+ */
52
+ setSortCategories(val: boolean): void;
45
53
  /**
46
54
  * #action
47
55
  */
@@ -66,6 +74,14 @@ export default function stateTreeFactory(pluginManager: PluginManager): import("
66
74
  * #action
67
75
  */
68
76
  toggleCategory(pathName: string): void;
77
+ /**
78
+ * #action
79
+ */
80
+ setCategoryCollapsed(pathName: string, status: boolean): void;
81
+ /**
82
+ * #action
83
+ */
84
+ expandAllCategories(): void;
69
85
  /**
70
86
  * #action
71
87
  */
@@ -85,6 +101,14 @@ export default function stateTreeFactory(pluginManager: PluginManager): import("
85
101
  */
86
102
  readonly assemblyNames: string[];
87
103
  } & {
104
+ /**
105
+ * #getter
106
+ */
107
+ readonly activeSortTrackNames: any;
108
+ /**
109
+ * #getter
110
+ */
111
+ readonly activeSortCategories: any;
88
112
  /**
89
113
  * #method
90
114
  * filter out tracks that don't match the current display types
@@ -105,6 +129,23 @@ export default function stateTreeFactory(pluginManager: PluginManager): import("
105
129
  } & import("mobx-state-tree/dist/internal").NonEmptyObject & {
106
130
  setSubschema(slotName: string, data: unknown): any;
107
131
  } & import("mobx-state-tree").IStateTreeNode<import("@jbrowse/core/configuration").AnyConfigurationSchemaType>)[];
132
+ } & {
133
+ /**
134
+ * #method
135
+ */
136
+ connectionHierarchy(connection: {
137
+ name: string;
138
+ tracks: AnyConfigurationModel[];
139
+ }): TreeNode[];
140
+ } & {
141
+ readonly allTracks: {
142
+ group: any;
143
+ tracks: ({
144
+ [x: string]: any;
145
+ } & import("mobx-state-tree/dist/internal").NonEmptyObject & {
146
+ setSubschema(slotName: string, data: unknown): any;
147
+ } & import("mobx-state-tree").IStateTreeNode<import("@jbrowse/core/configuration").AnyConfigurationSchemaType>)[];
148
+ }[];
108
149
  } & {
109
150
  /**
110
151
  * #getter
@@ -112,26 +153,25 @@ export default function stateTreeFactory(pluginManager: PluginManager): import("
112
153
  readonly hierarchy: {
113
154
  name: string;
114
155
  id: string;
115
- children: ({
116
- id: any;
156
+ children: {
117
157
  name: any;
158
+ id: any;
118
159
  children: TreeNode[];
119
- state: {
120
- expanded: boolean;
121
- };
122
- } | {
123
- name: string;
124
- id: string;
125
- children: TreeNode[];
126
- })[];
160
+ }[];
127
161
  };
162
+ } & {
128
163
  /**
129
- * #method
164
+ * #action
130
165
  */
131
- connectionHierarchy(connection: {
132
- name: string;
133
- tracks: AnyConfigurationModel[];
134
- }): TreeNode[];
166
+ collapseSubCategories(): void;
167
+ /**
168
+ * #action
169
+ */
170
+ collapseTopLevelCategories(): void;
171
+ } & {
172
+ afterCreate(): void;
173
+ } & {
174
+ readonly hasAnySubcategories: boolean;
135
175
  }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
136
176
  export type HierarchicalTrackSelectorStateModel = ReturnType<typeof stateTreeFactory>;
137
177
  export type HierarchicalTrackSelectorModel = Instance<HierarchicalTrackSelectorStateModel>;