@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
@@ -46,4 +46,3 @@ var model_2 = require("./model");
46
46
  Object.defineProperty(exports, "stateModelFactory", { enumerable: true, get: function () { return __importDefault(model_2).default; } });
47
47
  var configSchema_2 = require("./configSchema");
48
48
  Object.defineProperty(exports, "configSchema", { enumerable: true, get: function () { return __importDefault(configSchema_2).default; } });
49
- //# 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>;
@@ -1,100 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.generateHierarchy = exports.matches = void 0;
4
3
  const mobx_state_tree_1 = require("mobx-state-tree");
5
4
  const configuration_1 = require("@jbrowse/core/configuration");
6
5
  const util_1 = require("@jbrowse/core/util");
7
- const tracks_1 = require("@jbrowse/core/util/tracks");
8
6
  const mst_1 = require("@jbrowse/core/util/types/mst");
9
- function hasAnyOverlap(a1 = [], a2 = []) {
10
- // shortcut case is that arrays are single entries, and are equal
11
- // long case is that we use a set
12
- if (a1[0] === a2[0]) {
13
- return true;
14
- }
15
- else {
16
- const s1 = new Set(a1);
17
- return a2.some(a => s1.has(a));
18
- }
19
- }
20
- function matches(query, conf, session) {
21
- const categories = (0, configuration_1.readConfObject)(conf, 'category');
22
- const queryLower = query.toLowerCase();
23
- return ((0, tracks_1.getTrackName)(conf, session).toLowerCase().includes(queryLower) ||
24
- !!(categories === null || categories === void 0 ? void 0 : categories.filter(c => c.toLowerCase().includes(queryLower)).length));
25
- }
26
- exports.matches = matches;
27
- function filterTracks(tracks, self) {
28
- const { assemblyManager } = (0, util_1.getSession)(self);
29
- const { pluginManager } = (0, util_1.getEnv)(self);
30
- const { view } = self;
31
- const { trackSelectorAnyOverlap } = view;
32
- const trackListAssemblies = self.assemblyNames
33
- .map(a => assemblyManager.get(a))
34
- .filter(util_1.notEmpty);
35
- return tracks
36
- .filter(c => {
37
- const trackAssemblyNames = (0, configuration_1.readConfObject)(c, 'assemblyNames');
38
- const trackAssemblies = new Set((trackAssemblyNames === null || trackAssemblyNames === void 0 ? void 0 : trackAssemblyNames.map(name => assemblyManager.get(name)).filter(util_1.notEmpty)) || []);
39
- return trackSelectorAnyOverlap
40
- ? trackListAssemblies.some(a => trackAssemblies.has(a))
41
- : trackListAssemblies.every(a => trackAssemblies.has(a));
42
- })
43
- .filter(c => {
44
- const { displayTypes } = pluginManager.getViewType(view.type);
45
- const compatDisplays = displayTypes.map(d => d.name);
46
- const trackDisplays = c.displays.map((d) => d.type);
47
- return hasAnyOverlap(compatDisplays, trackDisplays);
48
- });
49
- }
50
- function generateHierarchy(model, trackConfigurations, collapsed, extra) {
51
- const hierarchy = { children: [] };
52
- const { filterText, view } = model;
53
- const session = (0, util_1.getSession)(model);
54
- trackConfigurations
55
- .filter(conf => matches(filterText, conf, session))
56
- .forEach(conf => {
57
- // copy the categories since this array can be mutated downstream
58
- const categories = [...((0, configuration_1.readConfObject)(conf, 'category') || [])];
59
- // silly thing where if trackId ends with sessionTrack, then push it to
60
- // a category that starts with a space to force sort to the top...
61
- // double whammy hackyness
62
- if (conf.trackId.endsWith('sessionTrack')) {
63
- categories.unshift(' Session tracks');
64
- }
65
- let currLevel = hierarchy;
66
- // find existing category to put track into or create it
67
- for (let i = 0; i < categories.length; i++) {
68
- const category = categories[i];
69
- const ret = currLevel.children.find(c => c.name === category);
70
- const id = extra + '-' + categories.slice(0, i + 1).join(',');
71
- if (!ret) {
72
- const n = {
73
- children: [],
74
- name: category,
75
- id,
76
- isOpenByDefault: !collapsed.get(id),
77
- };
78
- currLevel.children.push(n);
79
- currLevel = n;
80
- }
81
- else {
82
- currLevel = ret;
83
- }
84
- }
85
- const tracks = view.tracks;
86
- // using splice here tries to group leaf nodes above hierarchical nodes
87
- currLevel.children.splice(currLevel.children.findIndex(elt => elt.children.length), 0, {
88
- id: conf.trackId,
89
- name: (0, tracks_1.getTrackName)(conf, session),
90
- conf,
91
- checked: tracks.some(f => f.configuration === conf),
92
- children: [],
93
- });
94
- });
95
- return hierarchy.children;
96
- }
97
- exports.generateHierarchy = generateHierarchy;
7
+ // locals
8
+ const filterTracks_1 = require("./filterTracks");
9
+ const generateHierarchy_1 = require("./generateHierarchy");
10
+ const util_2 = require("./util");
98
11
  /**
99
12
  * #stateModel HierarchicalTrackSelectorWidget
100
13
  */
@@ -109,10 +22,22 @@ function stateTreeFactory(pluginManager) {
109
22
  * #property
110
23
  */
111
24
  type: mobx_state_tree_1.types.literal('HierarchicalTrackSelectorWidget'),
25
+ /**
26
+ * #property
27
+ */
28
+ initialized: mobx_state_tree_1.types.maybe(mobx_state_tree_1.types.boolean),
112
29
  /**
113
30
  * #property
114
31
  */
115
32
  collapsed: mobx_state_tree_1.types.map(mobx_state_tree_1.types.boolean),
33
+ /**
34
+ * #property
35
+ */
36
+ sortTrackNames: mobx_state_tree_1.types.maybe(mobx_state_tree_1.types.boolean),
37
+ /**
38
+ * #property
39
+ */
40
+ sortCategories: mobx_state_tree_1.types.maybe(mobx_state_tree_1.types.boolean),
116
41
  /**
117
42
  * #property
118
43
  */
@@ -123,6 +48,18 @@ function stateTreeFactory(pluginManager) {
123
48
  filterText: '',
124
49
  }))
125
50
  .actions(self => ({
51
+ /**
52
+ * #action
53
+ */
54
+ setSortTrackNames(val) {
55
+ self.sortTrackNames = val;
56
+ },
57
+ /**
58
+ * #action
59
+ */
60
+ setSortCategories(val) {
61
+ self.sortCategories = val;
62
+ },
126
63
  /**
127
64
  * #action
128
65
  */
@@ -159,6 +96,18 @@ function stateTreeFactory(pluginManager) {
159
96
  toggleCategory(pathName) {
160
97
  self.collapsed.set(pathName, !self.collapsed.get(pathName));
161
98
  },
99
+ /**
100
+ * #action
101
+ */
102
+ setCategoryCollapsed(pathName, status) {
103
+ self.collapsed.set(pathName, status);
104
+ },
105
+ /**
106
+ * #action
107
+ */
108
+ expandAllCategories() {
109
+ self.collapsed.clear();
110
+ },
162
111
  /**
163
112
  * #action
164
113
  */
@@ -202,24 +151,59 @@ function stateTreeFactory(pluginManager) {
202
151
  },
203
152
  }))
204
153
  .views(self => ({
154
+ /**
155
+ * #getter
156
+ */
157
+ get activeSortTrackNames() {
158
+ var _a;
159
+ return ((_a = self.sortTrackNames) !== null && _a !== void 0 ? _a : (0, configuration_1.getConf)((0, util_1.getSession)(self), ['hierarchical', 'sort', 'trackNames']));
160
+ },
161
+ /**
162
+ * #getter
163
+ */
164
+ get activeSortCategories() {
165
+ var _a;
166
+ return ((_a = self.sortCategories) !== null && _a !== void 0 ? _a : (0, configuration_1.getConf)((0, util_1.getSession)(self), ['hierarchical', 'sort', 'categories']));
167
+ },
205
168
  /**
206
169
  * #method
207
170
  * filter out tracks that don't match the current display types
208
171
  */
209
172
  connectionTrackConfigurations(connection) {
210
- return !self.view ? [] : filterTracks(connection.tracks, self);
173
+ return (0, filterTracks_1.filterTracks)(connection.tracks, self);
211
174
  },
212
175
  /**
213
176
  * #getter
214
177
  * filter out tracks that don't match the current assembly/display types
215
178
  */
216
179
  get trackConfigurations() {
217
- return !self.view
218
- ? []
219
- : [
220
- ...self.assemblyNames.map(a => self.getRefSeqTrackConf(a)),
221
- ...filterTracks((0, util_1.getSession)(self).tracks, self),
222
- ].filter(util_1.notEmpty);
180
+ return [
181
+ ...self.assemblyNames.map(a => self.getRefSeqTrackConf(a)),
182
+ ...(0, filterTracks_1.filterTracks)((0, util_1.getSession)(self).tracks, self),
183
+ ].filter(util_1.notEmpty);
184
+ },
185
+ }))
186
+ .views(self => ({
187
+ /**
188
+ * #method
189
+ */
190
+ connectionHierarchy(connection) {
191
+ return (0, generateHierarchy_1.generateHierarchy)(self, self.connectionTrackConfigurations(connection), self.collapsed, connection.name);
192
+ },
193
+ }))
194
+ .views(self => ({
195
+ get allTracks() {
196
+ const { connectionInstances = [] } = (0, util_1.getSession)(self);
197
+ return [
198
+ {
199
+ group: 'Tracks',
200
+ tracks: self.trackConfigurations,
201
+ },
202
+ ...connectionInstances.flatMap(c => ({
203
+ group: (0, configuration_1.getConf)(c, 'name'),
204
+ tracks: c.tracks,
205
+ })),
206
+ ];
223
207
  },
224
208
  }))
225
209
  .views(self => ({
@@ -227,34 +211,81 @@ function stateTreeFactory(pluginManager) {
227
211
  * #getter
228
212
  */
229
213
  get hierarchy() {
230
- const hier = generateHierarchy(self, self.trackConfigurations, self.collapsed);
231
- const session = (0, util_1.getSession)(self);
232
- const { connectionInstances } = session;
233
- const conns = (connectionInstances === null || connectionInstances === void 0 ? void 0 : connectionInstances.map(c => ({
234
- // @ts-expect-error
235
- id: (0, mobx_state_tree_1.getSnapshot)(c).configuration,
236
- name: (0, configuration_1.getConf)(c, 'name'),
237
- children: this.connectionHierarchy(c),
238
- state: {
239
- expanded: true,
240
- },
241
- })).filter(f => f.children.length)) || [];
242
214
  return {
243
215
  name: 'Root',
244
216
  id: 'Root',
245
- children: [
246
- { name: 'Tracks', id: 'Tracks', children: hier },
247
- ...conns,
248
- ],
217
+ children: self.allTracks
218
+ .map(s => ({
219
+ name: s.group,
220
+ id: s.group,
221
+ children: (0, generateHierarchy_1.generateHierarchy)(self, s.tracks, self.collapsed),
222
+ }))
223
+ // always keep the Tracks entry at idx 0
224
+ .filter((f, idx) => idx === 0 || !!f.children.length),
249
225
  };
250
226
  },
227
+ }))
228
+ .actions(self => ({
251
229
  /**
252
- * #method
230
+ * #action
253
231
  */
254
- connectionHierarchy(connection) {
255
- return generateHierarchy(self, self.connectionTrackConfigurations(connection), self.collapsed, connection.name);
232
+ collapseSubCategories() {
233
+ const paths = [];
234
+ (0, util_2.findSubCategories)(self.hierarchy.children, paths);
235
+ for (const path of paths) {
236
+ self.setCategoryCollapsed(path, true);
237
+ }
238
+ },
239
+ /**
240
+ * #action
241
+ */
242
+ collapseTopLevelCategories() {
243
+ const paths = [];
244
+ for (const trackGroups of self.hierarchy.children) {
245
+ if (trackGroups.children.length) {
246
+ (0, util_2.findTopLevelCategories)(trackGroups.children, paths);
247
+ }
248
+ }
249
+ for (const path of paths) {
250
+ self.setCategoryCollapsed(path, true);
251
+ }
252
+ },
253
+ }))
254
+ .actions(self => ({
255
+ afterCreate() {
256
+ if (!self.initialized) {
257
+ const session = (0, util_1.getSession)(self);
258
+ if ((0, configuration_1.getConf)(session, [
259
+ 'hierarchical',
260
+ 'defaultCollapsed',
261
+ 'topLevelCategories',
262
+ ])) {
263
+ self.collapseTopLevelCategories();
264
+ }
265
+ else if ((0, configuration_1.getConf)(session, [
266
+ 'hierarchical',
267
+ 'defaultCollapsed',
268
+ 'subCategories',
269
+ ])) {
270
+ self.collapseSubCategories();
271
+ }
272
+ else {
273
+ for (const entry of (0, configuration_1.getConf)(session, [
274
+ 'hierarchical',
275
+ 'defaultCollapsed',
276
+ 'categoryNames',
277
+ ])) {
278
+ self.collapsed.set(entry, true);
279
+ }
280
+ }
281
+ self.initialized = true;
282
+ }
283
+ },
284
+ }))
285
+ .views(self => ({
286
+ get hasAnySubcategories() {
287
+ return self.allTracks.some(group => group.tracks.some(track => { var _a; return ((_a = (0, configuration_1.readConfObject)(track, 'category')) === null || _a === void 0 ? void 0 : _a.length) > 1; }));
256
288
  },
257
289
  }));
258
290
  }
259
291
  exports.default = stateTreeFactory;
260
- //# sourceMappingURL=model.js.map
@@ -0,0 +1,12 @@
1
+ import { AnyConfigurationModel } from '@jbrowse/core/configuration';
2
+ import { AbstractSessionModel } from '@jbrowse/core/util';
3
+ export declare function hasAnyOverlap<T>(a1?: T[], a2?: T[]): boolean;
4
+ export declare function hasAllOverlap<T>(a1?: T[], a2?: T[]): boolean;
5
+ export declare function matches(query: string, conf: AnyConfigurationModel, session: AbstractSessionModel): boolean;
6
+ interface Node {
7
+ children: Node[];
8
+ id: string;
9
+ }
10
+ export declare function findSubCategories(obj: Node[], paths: string[]): boolean;
11
+ export declare function findTopLevelCategories(obj: Node[], paths: string[]): void;
12
+ export {};
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.findTopLevelCategories = exports.findSubCategories = exports.matches = exports.hasAllOverlap = exports.hasAnyOverlap = void 0;
4
+ const configuration_1 = require("@jbrowse/core/configuration");
5
+ const tracks_1 = require("@jbrowse/core/util/tracks");
6
+ function hasAnyOverlap(a1 = [], a2 = []) {
7
+ // shortcut case is that arrays are single entries, and are equal
8
+ // long case is that we use a set
9
+ if (a1[0] === a2[0]) {
10
+ return true;
11
+ }
12
+ else {
13
+ const s1 = new Set(a1);
14
+ return a2.some(a => s1.has(a));
15
+ }
16
+ }
17
+ exports.hasAnyOverlap = hasAnyOverlap;
18
+ function hasAllOverlap(a1 = [], a2 = []) {
19
+ const s1 = new Set(a1);
20
+ return a2.every(a => s1.has(a));
21
+ }
22
+ exports.hasAllOverlap = hasAllOverlap;
23
+ function matches(query, conf, session) {
24
+ const categories = ((0, configuration_1.readConfObject)(conf, 'category') || []);
25
+ const queryLower = query.toLowerCase();
26
+ return ((0, tracks_1.getTrackName)(conf, session).toLowerCase().includes(queryLower) ||
27
+ !!categories.filter(c => c.toLowerCase().includes(queryLower)).length);
28
+ }
29
+ exports.matches = matches;
30
+ function findSubCategories(obj, paths) {
31
+ let hasSubs = false;
32
+ for (const elt of obj) {
33
+ if (elt.children.length) {
34
+ const hasSubCategories = findSubCategories(elt.children, paths);
35
+ if (hasSubCategories) {
36
+ paths.push(elt.id);
37
+ }
38
+ }
39
+ else {
40
+ hasSubs = true;
41
+ }
42
+ }
43
+ return hasSubs;
44
+ }
45
+ exports.findSubCategories = findSubCategories;
46
+ function findTopLevelCategories(obj, paths) {
47
+ for (const elt of obj) {
48
+ if (elt.children.length) {
49
+ paths.push(elt.id);
50
+ }
51
+ }
52
+ }
53
+ exports.findTopLevelCategories = findTopLevelCategories;
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ import { PluginStoreModel } from '../model';
3
+ declare const _default: ({ onClose, model, }: {
4
+ onClose: () => void;
5
+ model: PluginStoreModel;
6
+ }) => React.JSX.Element;
7
+ export default _default;
@@ -28,10 +28,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
29
  const react_1 = __importStar(require("react"));
30
30
  const mobx_react_1 = require("mobx-react");
31
- const mobx_state_tree_1 = require("mobx-state-tree");
32
31
  const ui_1 = require("@jbrowse/core/ui");
33
32
  const material_1 = require("@mui/material");
34
33
  const mui_1 = require("tss-react/mui");
34
+ const util_1 = require("@jbrowse/core/util");
35
35
  // icons
36
36
  const IconButton_1 = __importDefault(require("@mui/material/IconButton"));
37
37
  const ExpandMore_1 = __importDefault(require("@mui/icons-material/ExpandMore"));
@@ -51,40 +51,32 @@ const useStyles = (0, mui_1.makeStyles)()(theme => ({
51
51
  transform: 'rotate(180deg)',
52
52
  },
53
53
  }));
54
- function CustomPluginForm({ open, onClose, model, }) {
54
+ exports.default = (0, mobx_react_1.observer)(function ({ onClose, model, }) {
55
55
  const { classes, cx } = useStyles();
56
56
  const [umdPluginName, setUMDPluginName] = (0, react_1.useState)('');
57
57
  const [umdPluginUrl, setUMDPluginUrl] = (0, react_1.useState)('');
58
58
  const [esmPluginUrl, setESMPluginUrl] = (0, react_1.useState)('');
59
59
  const [cjsPluginUrl, setCJSPluginUrl] = (0, react_1.useState)('');
60
60
  const [advancedOptionsOpen, setAdvancedOptionsOpen] = (0, react_1.useState)(false);
61
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
62
- const { jbrowse } = (0, mobx_state_tree_1.getRoot)(model);
61
+ const { jbrowse } = (0, util_1.getSession)(model);
63
62
  const ready = Boolean((umdPluginName && umdPluginUrl) || esmPluginUrl || cjsPluginUrl);
64
63
  function handleSubmit() {
65
64
  if (umdPluginName && umdPluginUrl) {
66
65
  jbrowse.addPlugin({ name: umdPluginName, umdUrl: umdPluginUrl });
67
66
  }
68
- if (esmPluginUrl) {
67
+ else if (esmPluginUrl) {
69
68
  jbrowse.addPlugin({ esmUrl: esmPluginUrl });
70
69
  }
71
- if (cjsPluginUrl) {
70
+ else if (cjsPluginUrl) {
72
71
  jbrowse.addPlugin({ cjsUrl: cjsPluginUrl });
73
72
  }
74
73
  }
75
- function handleClose() {
76
- setUMDPluginName('');
77
- setUMDPluginUrl('');
78
- setESMPluginUrl('');
79
- setCJSPluginUrl('');
80
- onClose();
81
- }
82
- return (react_1.default.createElement(ui_1.Dialog, { open: open, onClose: handleClose, title: "Add custom plugin" },
74
+ return (react_1.default.createElement(ui_1.Dialog, { open: true, onClose: onClose, title: "Add custom plugin" },
83
75
  react_1.default.createElement("form", { onSubmit: handleSubmit },
84
76
  react_1.default.createElement(material_1.DialogContent, { className: classes.dialogContent },
85
77
  react_1.default.createElement(material_1.DialogContentText, null, "Enter the name of the plugin and its URL. The name should match what is defined in the plugin's build."),
86
- react_1.default.createElement(material_1.TextField, { id: "umd-name-input", name: "umdName", label: "Plugin name", variant: "outlined", value: umdPluginName, onChange: event => setUMDPluginName(event.target.value) }),
87
- react_1.default.createElement(material_1.TextField, { id: "umd-url-input", name: "umdUrl", label: "Plugin URL", variant: "outlined", value: umdPluginUrl, onChange: event => setUMDPluginUrl(event.target.value) }),
78
+ react_1.default.createElement(material_1.TextField, { label: "Plugin name", variant: "outlined", value: umdPluginName, onChange: event => setUMDPluginName(event.target.value) }),
79
+ react_1.default.createElement(material_1.TextField, { label: "Plugin URL", variant: "outlined", value: umdPluginUrl, onChange: event => setUMDPluginUrl(event.target.value) }),
88
80
  react_1.default.createElement(material_1.DialogContentText, { onClick: () => setAdvancedOptionsOpen(!advancedOptionsOpen) },
89
81
  react_1.default.createElement(IconButton_1.default, { className: cx(classes.expand, {
90
82
  [classes.expandOpen]: advancedOptionsOpen,
@@ -94,11 +86,9 @@ function CustomPluginForm({ open, onClose, model, }) {
94
86
  react_1.default.createElement(material_1.Collapse, { in: advancedOptionsOpen },
95
87
  react_1.default.createElement("div", { className: classes.dialogContent },
96
88
  react_1.default.createElement(material_1.DialogContentText, null, "The above fields assume that the plugin is built in UMD format. If your plugin is in another format, or you have additional builds you want to add (such as a CJS build for using NodeJS APIs in desktop), you can enter the URLs for those builds below."),
97
- react_1.default.createElement(material_1.TextField, { id: "esm-url-input", name: "esmUrl", label: "ESM build URL", variant: "outlined", value: esmPluginUrl, onChange: event => setESMPluginUrl(event.target.value) }),
98
- react_1.default.createElement(material_1.TextField, { id: "cjs-url-input", name: "cjsUrl", label: "CJS build URL", variant: "outlined", value: cjsPluginUrl, onChange: event => setCJSPluginUrl(event.target.value) })))),
89
+ react_1.default.createElement(material_1.TextField, { label: "ESM build URL", variant: "outlined", value: esmPluginUrl, onChange: event => setESMPluginUrl(event.target.value) }),
90
+ react_1.default.createElement(material_1.TextField, { label: "CJS build URL", variant: "outlined", value: cjsPluginUrl, onChange: event => setCJSPluginUrl(event.target.value) })))),
99
91
  react_1.default.createElement(material_1.DialogActions, null,
100
- react_1.default.createElement(material_1.Button, { variant: "contained", onClick: handleClose }, "Cancel"),
92
+ react_1.default.createElement(material_1.Button, { variant: "contained", onClick: onClose }, "Cancel"),
101
93
  react_1.default.createElement(material_1.Button, { variant: "contained", color: "primary", onClick: handleSubmit, disabled: !ready }, "Submit")))));
102
- }
103
- exports.default = (0, mobx_react_1.observer)(CustomPluginForm);
104
- //# sourceMappingURL=CustomPluginForm.js.map
94
+ });
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ export default function DeletePluginDialog({ onClose, plugin, }: {
3
+ plugin: string;
4
+ onClose: (s?: string) => void;
5
+ }): React.JSX.Element;