@jbrowse/plugin-data-management 2.4.2 → 2.6.1

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 (177) hide show
  1. package/dist/AddConnectionWidget/components/AddConnectionWidget.d.ts +3 -4
  2. package/dist/AddConnectionWidget/components/AddConnectionWidget.js +24 -45
  3. package/dist/AddConnectionWidget/components/AddConnectionWidget.js.map +1 -1
  4. package/dist/AddConnectionWidget/components/ConfigureConnection.d.ts +4 -4
  5. package/dist/AddConnectionWidget/components/ConfigureConnection.js +1 -3
  6. package/dist/AddConnectionWidget/components/ConfigureConnection.js.map +1 -1
  7. package/dist/AddConnectionWidget/components/ConnectionTypeSelect.d.ts +5 -5
  8. package/dist/AddConnectionWidget/components/ConnectionTypeSelect.js +3 -4
  9. package/dist/AddConnectionWidget/components/ConnectionTypeSelect.js.map +1 -1
  10. package/dist/AddTrackWidget/components/AddTrackWidget.d.ts +2 -2
  11. package/dist/AddTrackWidget/components/ConfirmTrack.d.ts +2 -2
  12. package/dist/AddTrackWidget/components/DefaultAddTrackWorkflow.d.ts +2 -2
  13. package/dist/AddTrackWidget/components/DefaultAddTrackWorkflow.js +2 -2
  14. package/dist/AddTrackWidget/components/DefaultAddTrackWorkflow.js.map +1 -1
  15. package/dist/AddTrackWidget/components/PasteConfigWorkflow.d.ts +2 -2
  16. package/dist/AddTrackWidget/components/PasteConfigWorkflow.js +1 -0
  17. package/dist/AddTrackWidget/components/PasteConfigWorkflow.js.map +1 -1
  18. package/dist/AddTrackWidget/components/TextIndexingConfig.d.ts +3 -3
  19. package/dist/AddTrackWidget/components/TextIndexingConfig.js +4 -10
  20. package/dist/AddTrackWidget/components/TextIndexingConfig.js.map +1 -1
  21. package/dist/AddTrackWidget/components/TrackAdapterSelector.d.ts +2 -2
  22. package/dist/AddTrackWidget/components/TrackSourceSelect.d.ts +2 -2
  23. package/dist/AddTrackWidget/components/TrackTypeSelector.d.ts +2 -2
  24. package/dist/AssemblyManager/AssemblyAddForm.d.ts +2 -2
  25. package/dist/AssemblyManager/AssemblyEditor.d.ts +2 -2
  26. package/dist/AssemblyManager/AssemblyManager.d.ts +2 -2
  27. package/dist/AssemblyManager/AssemblyTable.d.ts +2 -2
  28. package/dist/HierarchicalTrackSelectorWidget/components/HierarchicalFab.d.ts +2 -2
  29. package/dist/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.d.ts +2 -2
  30. package/dist/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.js +4 -9
  31. package/dist/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.js.map +1 -1
  32. package/dist/HierarchicalTrackSelectorWidget/components/ShoppingCart.d.ts +2 -2
  33. package/dist/HierarchicalTrackSelectorWidget/components/dialogs/CloseConnectionDialog.d.ts +8 -9
  34. package/dist/HierarchicalTrackSelectorWidget/components/dialogs/CloseConnectionDialog.js +6 -10
  35. package/dist/HierarchicalTrackSelectorWidget/components/dialogs/CloseConnectionDialog.js.map +1 -1
  36. package/dist/HierarchicalTrackSelectorWidget/components/dialogs/DeleteConnectionDialog.d.ts +3 -3
  37. package/dist/HierarchicalTrackSelectorWidget/components/dialogs/ManageConnectionsDialog.d.ts +2 -2
  38. package/dist/HierarchicalTrackSelectorWidget/components/dialogs/ToggleConnectionsDialog.d.ts +3 -4
  39. package/dist/HierarchicalTrackSelectorWidget/components/dialogs/ToggleConnectionsDialog.js +27 -22
  40. package/dist/HierarchicalTrackSelectorWidget/components/dialogs/ToggleConnectionsDialog.js.map +1 -1
  41. package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetFilters.d.ts +2 -2
  42. package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetedDialog.d.ts +2 -2
  43. package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetedHeader.d.ts +5 -3
  44. package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetedHeader.js +7 -1
  45. package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetedHeader.js.map +1 -1
  46. package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetedSelector.d.ts +2 -2
  47. package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetedSelector.js +40 -35
  48. package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetedSelector.js.map +1 -1
  49. package/dist/HierarchicalTrackSelectorWidget/components/tree/HamburgerMenu.d.ts +3 -4
  50. package/dist/HierarchicalTrackSelectorWidget/components/tree/HamburgerMenu.js +36 -41
  51. package/dist/HierarchicalTrackSelectorWidget/components/tree/HamburgerMenu.js.map +1 -1
  52. package/dist/HierarchicalTrackSelectorWidget/components/tree/HierarchicalHeader.d.ts +3 -4
  53. package/dist/HierarchicalTrackSelectorWidget/components/tree/HierarchicalHeader.js +2 -2
  54. package/dist/HierarchicalTrackSelectorWidget/components/tree/HierarchicalHeader.js.map +1 -1
  55. package/dist/HierarchicalTrackSelectorWidget/components/tree/HierarchicalTree.d.ts +2 -2
  56. package/dist/HierarchicalTrackSelectorWidget/components/tree/TrackCategory.d.ts +2 -2
  57. package/dist/HierarchicalTrackSelectorWidget/components/tree/TrackLabel.d.ts +2 -2
  58. package/dist/HierarchicalTrackSelectorWidget/components/tree/TrackListNode.d.ts +2 -2
  59. package/dist/HierarchicalTrackSelectorWidget/configSchema.d.ts +1 -1
  60. package/dist/HierarchicalTrackSelectorWidget/model.d.ts +69 -5
  61. package/dist/HierarchicalTrackSelectorWidget/model.js +100 -53
  62. package/dist/HierarchicalTrackSelectorWidget/model.js.map +1 -1
  63. package/dist/PluginStoreWidget/components/CustomPluginForm.d.ts +2 -2
  64. package/dist/PluginStoreWidget/components/CustomPluginForm.js +10 -33
  65. package/dist/PluginStoreWidget/components/CustomPluginForm.js.map +1 -1
  66. package/dist/PluginStoreWidget/components/InstalledPlugin.d.ts +2 -2
  67. package/dist/PluginStoreWidget/components/InstalledPluginsList.d.ts +2 -2
  68. package/dist/PluginStoreWidget/components/PluginCard.d.ts +2 -2
  69. package/dist/PluginStoreWidget/components/PluginStoreWidget.d.ts +2 -2
  70. package/dist/PluginStoreWidget/components/PluginStoreWidget.js +5 -8
  71. package/dist/PluginStoreWidget/components/PluginStoreWidget.js.map +1 -1
  72. package/dist/SetDefaultSession/SetDefaultSession.d.ts +2 -2
  73. package/dist/index.d.ts +4 -4
  74. package/dist/ucsc-trackhub/configSchema.d.ts +32 -1
  75. package/dist/ucsc-trackhub/model.d.ts +38 -1
  76. package/dist/ucsc-trackhub/model.js +47 -13
  77. package/dist/ucsc-trackhub/model.js.map +1 -1
  78. package/esm/AddConnectionWidget/components/AddConnectionWidget.d.ts +3 -4
  79. package/esm/AddConnectionWidget/components/AddConnectionWidget.js +24 -45
  80. package/esm/AddConnectionWidget/components/AddConnectionWidget.js.map +1 -1
  81. package/esm/AddConnectionWidget/components/ConfigureConnection.d.ts +4 -4
  82. package/esm/AddConnectionWidget/components/ConfigureConnection.js +1 -3
  83. package/esm/AddConnectionWidget/components/ConfigureConnection.js.map +1 -1
  84. package/esm/AddConnectionWidget/components/ConnectionTypeSelect.d.ts +5 -5
  85. package/esm/AddConnectionWidget/components/ConnectionTypeSelect.js +3 -4
  86. package/esm/AddConnectionWidget/components/ConnectionTypeSelect.js.map +1 -1
  87. package/esm/AddTrackWidget/components/AddTrackWidget.d.ts +2 -2
  88. package/esm/AddTrackWidget/components/ConfirmTrack.d.ts +2 -2
  89. package/esm/AddTrackWidget/components/DefaultAddTrackWorkflow.d.ts +2 -2
  90. package/esm/AddTrackWidget/components/DefaultAddTrackWorkflow.js +2 -2
  91. package/esm/AddTrackWidget/components/DefaultAddTrackWorkflow.js.map +1 -1
  92. package/esm/AddTrackWidget/components/PasteConfigWorkflow.d.ts +2 -2
  93. package/esm/AddTrackWidget/components/PasteConfigWorkflow.js +1 -0
  94. package/esm/AddTrackWidget/components/PasteConfigWorkflow.js.map +1 -1
  95. package/esm/AddTrackWidget/components/TextIndexingConfig.d.ts +3 -3
  96. package/esm/AddTrackWidget/components/TextIndexingConfig.js +4 -10
  97. package/esm/AddTrackWidget/components/TextIndexingConfig.js.map +1 -1
  98. package/esm/AddTrackWidget/components/TrackAdapterSelector.d.ts +2 -2
  99. package/esm/AddTrackWidget/components/TrackSourceSelect.d.ts +2 -2
  100. package/esm/AddTrackWidget/components/TrackTypeSelector.d.ts +2 -2
  101. package/esm/AssemblyManager/AssemblyAddForm.d.ts +2 -2
  102. package/esm/AssemblyManager/AssemblyEditor.d.ts +2 -2
  103. package/esm/AssemblyManager/AssemblyManager.d.ts +2 -2
  104. package/esm/AssemblyManager/AssemblyTable.d.ts +2 -2
  105. package/esm/HierarchicalTrackSelectorWidget/components/HierarchicalFab.d.ts +2 -2
  106. package/esm/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.d.ts +2 -2
  107. package/esm/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.js +4 -9
  108. package/esm/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.js.map +1 -1
  109. package/esm/HierarchicalTrackSelectorWidget/components/ShoppingCart.d.ts +2 -2
  110. package/esm/HierarchicalTrackSelectorWidget/components/dialogs/CloseConnectionDialog.d.ts +8 -9
  111. package/esm/HierarchicalTrackSelectorWidget/components/dialogs/CloseConnectionDialog.js +7 -11
  112. package/esm/HierarchicalTrackSelectorWidget/components/dialogs/CloseConnectionDialog.js.map +1 -1
  113. package/esm/HierarchicalTrackSelectorWidget/components/dialogs/DeleteConnectionDialog.d.ts +3 -3
  114. package/esm/HierarchicalTrackSelectorWidget/components/dialogs/ManageConnectionsDialog.d.ts +2 -2
  115. package/esm/HierarchicalTrackSelectorWidget/components/dialogs/ToggleConnectionsDialog.d.ts +3 -4
  116. package/esm/HierarchicalTrackSelectorWidget/components/dialogs/ToggleConnectionsDialog.js +27 -22
  117. package/esm/HierarchicalTrackSelectorWidget/components/dialogs/ToggleConnectionsDialog.js.map +1 -1
  118. package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetFilters.d.ts +2 -2
  119. package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetedDialog.d.ts +2 -2
  120. package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetedHeader.d.ts +5 -3
  121. package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetedHeader.js +7 -1
  122. package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetedHeader.js.map +1 -1
  123. package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetedSelector.d.ts +2 -2
  124. package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetedSelector.js +41 -36
  125. package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetedSelector.js.map +1 -1
  126. package/esm/HierarchicalTrackSelectorWidget/components/tree/HamburgerMenu.d.ts +3 -4
  127. package/esm/HierarchicalTrackSelectorWidget/components/tree/HamburgerMenu.js +37 -42
  128. package/esm/HierarchicalTrackSelectorWidget/components/tree/HamburgerMenu.js.map +1 -1
  129. package/esm/HierarchicalTrackSelectorWidget/components/tree/HierarchicalHeader.d.ts +3 -4
  130. package/esm/HierarchicalTrackSelectorWidget/components/tree/HierarchicalHeader.js +2 -2
  131. package/esm/HierarchicalTrackSelectorWidget/components/tree/HierarchicalHeader.js.map +1 -1
  132. package/esm/HierarchicalTrackSelectorWidget/components/tree/HierarchicalTree.d.ts +2 -2
  133. package/esm/HierarchicalTrackSelectorWidget/components/tree/TrackCategory.d.ts +2 -2
  134. package/esm/HierarchicalTrackSelectorWidget/components/tree/TrackLabel.d.ts +2 -2
  135. package/esm/HierarchicalTrackSelectorWidget/components/tree/TrackListNode.d.ts +2 -2
  136. package/esm/HierarchicalTrackSelectorWidget/configSchema.d.ts +1 -1
  137. package/esm/HierarchicalTrackSelectorWidget/model.d.ts +69 -5
  138. package/esm/HierarchicalTrackSelectorWidget/model.js +101 -54
  139. package/esm/HierarchicalTrackSelectorWidget/model.js.map +1 -1
  140. package/esm/PluginStoreWidget/components/CustomPluginForm.d.ts +2 -2
  141. package/esm/PluginStoreWidget/components/CustomPluginForm.js +10 -33
  142. package/esm/PluginStoreWidget/components/CustomPluginForm.js.map +1 -1
  143. package/esm/PluginStoreWidget/components/InstalledPlugin.d.ts +2 -2
  144. package/esm/PluginStoreWidget/components/InstalledPluginsList.d.ts +2 -2
  145. package/esm/PluginStoreWidget/components/PluginCard.d.ts +2 -2
  146. package/esm/PluginStoreWidget/components/PluginStoreWidget.d.ts +2 -2
  147. package/esm/PluginStoreWidget/components/PluginStoreWidget.js +5 -8
  148. package/esm/PluginStoreWidget/components/PluginStoreWidget.js.map +1 -1
  149. package/esm/SetDefaultSession/SetDefaultSession.d.ts +2 -2
  150. package/esm/index.d.ts +4 -4
  151. package/esm/ucsc-trackhub/configSchema.d.ts +32 -1
  152. package/esm/ucsc-trackhub/model.d.ts +38 -1
  153. package/esm/ucsc-trackhub/model.js +22 -11
  154. package/esm/ucsc-trackhub/model.js.map +1 -1
  155. package/package.json +3 -3
  156. package/src/AddConnectionWidget/components/AddConnectionWidget.test.tsx +1 -3
  157. package/src/AddConnectionWidget/components/AddConnectionWidget.tsx +46 -85
  158. package/src/AddConnectionWidget/components/ConfigureConnection.tsx +17 -18
  159. package/src/AddConnectionWidget/components/ConnectionTypeSelect.tsx +7 -6
  160. package/src/AddConnectionWidget/components/__snapshots__/AddConnectionWidget.test.tsx.snap +1 -0
  161. package/src/AddTrackWidget/components/DefaultAddTrackWorkflow.tsx +2 -2
  162. package/src/AddTrackWidget/components/PasteConfigWorkflow.tsx +1 -0
  163. package/src/AddTrackWidget/components/TextIndexingConfig.tsx +10 -10
  164. package/src/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.tsx +11 -21
  165. package/src/HierarchicalTrackSelectorWidget/components/__snapshots__/HierarchicalTrackSelector.test.tsx.snap +89 -24
  166. package/src/HierarchicalTrackSelectorWidget/components/dialogs/CloseConnectionDialog.tsx +9 -13
  167. package/src/HierarchicalTrackSelectorWidget/components/dialogs/DeleteConnectionDialog.tsx +1 -1
  168. package/src/HierarchicalTrackSelectorWidget/components/dialogs/ToggleConnectionsDialog.tsx +69 -39
  169. package/src/HierarchicalTrackSelectorWidget/components/faceted/FacetedHeader.tsx +10 -0
  170. package/src/HierarchicalTrackSelectorWidget/components/faceted/FacetedSelector.tsx +31 -27
  171. package/src/HierarchicalTrackSelectorWidget/components/tree/HamburgerMenu.tsx +46 -51
  172. package/src/HierarchicalTrackSelectorWidget/components/tree/HierarchicalHeader.tsx +1 -3
  173. package/src/HierarchicalTrackSelectorWidget/model.ts +120 -65
  174. package/src/PluginStoreWidget/components/CustomPluginForm.tsx +11 -36
  175. package/src/PluginStoreWidget/components/PluginStoreWidget.tsx +7 -10
  176. package/src/PluginStoreWidget/model.test.tsx +1 -1
  177. package/src/ucsc-trackhub/model.ts +30 -27
@@ -1,26 +1,91 @@
1
1
  // Jest Snapshot v1, https://goo.gl/fbAQLP
2
2
 
3
3
  exports[`renders nothing with no assembly 1`] = `
4
- <button
5
- class="MuiButtonBase-root MuiFab-root MuiFab-circular MuiFab-sizeSmall MuiFab-secondary MuiFab-root MuiFab-circular MuiFab-sizeSmall MuiFab-secondary css-15opis6-MuiButtonBase-root-MuiFab-root-fab"
6
- tabindex="0"
7
- type="button"
4
+ <div
5
+ data-testid="hierarchical_track_selector"
8
6
  >
9
- <svg
10
- aria-hidden="true"
11
- class="MuiSvgIcon-root MuiSvgIcon-fontSizeMedium css-havevq-MuiSvgIcon-root"
12
- data-testid="AddIcon"
13
- focusable="false"
14
- viewBox="0 0 24 24"
7
+ <div
8
+ style="display: flex;"
15
9
  >
16
- <path
17
- d="M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"
18
- />
19
- </svg>
20
- <span
21
- class="MuiTouchRipple-root css-8je8zh-MuiTouchRipple-root"
22
- />
23
- </button>
10
+ <button
11
+ class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-1kgqocu-MuiButtonBase-root-MuiIconButton-root-menuIcon"
12
+ tabindex="0"
13
+ type="button"
14
+ >
15
+ <svg
16
+ aria-hidden="true"
17
+ class="MuiSvgIcon-root MuiSvgIcon-fontSizeMedium css-havevq-MuiSvgIcon-root"
18
+ data-testid="MenuIcon"
19
+ focusable="false"
20
+ viewBox="0 0 24 24"
21
+ >
22
+ <path
23
+ d="M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z"
24
+ />
25
+ </svg>
26
+ <span
27
+ class="MuiTouchRipple-root css-8je8zh-MuiTouchRipple-root"
28
+ />
29
+ </button>
30
+ <div
31
+ class="MuiFormControl-root MuiFormControl-marginDense MuiFormControl-fullWidth MuiTextField-root css-rlnh8o-MuiFormControl-root-MuiTextField-root-searchBox"
32
+ >
33
+ <label
34
+ class="MuiFormLabel-root MuiInputLabel-root MuiInputLabel-formControl MuiInputLabel-animated MuiInputLabel-sizeSmall MuiInputLabel-standard MuiFormLabel-colorPrimary MuiInputLabel-root MuiInputLabel-formControl MuiInputLabel-animated MuiInputLabel-sizeSmall MuiInputLabel-standard css-1s1jvl0-MuiFormLabel-root-MuiInputLabel-root"
35
+ data-shrink="false"
36
+ for="mui-1"
37
+ id="mui-1-label"
38
+ >
39
+ Filter tracks
40
+ </label>
41
+ <div
42
+ class="MuiInputBase-root MuiInput-root MuiInput-underline MuiInputBase-colorPrimary MuiInputBase-fullWidth MuiInputBase-formControl MuiInputBase-sizeSmall MuiInputBase-adornedEnd css-1blad95-MuiInputBase-root-MuiInput-root"
43
+ >
44
+ <input
45
+ aria-invalid="false"
46
+ class="MuiInputBase-input MuiInput-input MuiInputBase-inputSizeSmall MuiInputBase-inputAdornedEnd css-nz481w-MuiInputBase-input-MuiInput-input"
47
+ id="mui-1"
48
+ type="text"
49
+ value=""
50
+ />
51
+ <div
52
+ class="MuiInputAdornment-root MuiInputAdornment-positionEnd MuiInputAdornment-standard MuiInputAdornment-sizeSmall css-1laqsz7-MuiInputAdornment-root"
53
+ >
54
+ <button
55
+ class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-9vna8i-MuiButtonBase-root-MuiIconButton-root"
56
+ tabindex="0"
57
+ type="button"
58
+ >
59
+ <svg
60
+ aria-hidden="true"
61
+ class="MuiSvgIcon-root MuiSvgIcon-fontSizeMedium css-havevq-MuiSvgIcon-root"
62
+ data-testid="ClearIcon"
63
+ focusable="false"
64
+ viewBox="0 0 24 24"
65
+ >
66
+ <path
67
+ d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"
68
+ />
69
+ </svg>
70
+ <span
71
+ class="MuiTouchRipple-root css-8je8zh-MuiTouchRipple-root"
72
+ />
73
+ </button>
74
+ </div>
75
+ </div>
76
+ </div>
77
+ <button
78
+ class="MuiButtonBase-root MuiButton-root MuiButton-text MuiButton-textPrimary MuiButton-sizeSmall MuiButton-textSizeSmall MuiButton-root MuiButton-text MuiButton-textPrimary MuiButton-sizeSmall MuiButton-textSizeSmall css-1c8zr45-MuiButtonBase-root-MuiButton-root-menuIcon"
79
+ tabindex="0"
80
+ type="button"
81
+ >
82
+ Open faceted selector
83
+ <span
84
+ class="MuiTouchRipple-root css-8je8zh-MuiTouchRipple-root"
85
+ />
86
+ </button>
87
+ </div>
88
+ </div>
24
89
  `;
25
90
 
26
91
  exports[`renders with a couple of categorized tracks 1`] = `
@@ -56,8 +121,8 @@ exports[`renders with a couple of categorized tracks 1`] = `
56
121
  <label
57
122
  class="MuiFormLabel-root MuiInputLabel-root MuiInputLabel-formControl MuiInputLabel-animated MuiInputLabel-sizeSmall MuiInputLabel-standard MuiFormLabel-colorPrimary MuiInputLabel-root MuiInputLabel-formControl MuiInputLabel-animated MuiInputLabel-sizeSmall MuiInputLabel-standard css-1s1jvl0-MuiFormLabel-root-MuiInputLabel-root"
58
123
  data-shrink="false"
59
- for="mui-5"
60
- id="mui-5-label"
124
+ for="mui-6"
125
+ id="mui-6-label"
61
126
  >
62
127
  Filter tracks
63
128
  </label>
@@ -67,7 +132,7 @@ exports[`renders with a couple of categorized tracks 1`] = `
67
132
  <input
68
133
  aria-invalid="false"
69
134
  class="MuiInputBase-input MuiInput-input MuiInputBase-inputSizeSmall MuiInputBase-inputAdornedEnd css-nz481w-MuiInputBase-input-MuiInput-input"
70
- id="mui-5"
135
+ id="mui-6"
71
136
  type="text"
72
137
  value=""
73
138
  />
@@ -144,8 +209,8 @@ exports[`renders with a couple of uncategorized tracks 1`] = `
144
209
  <label
145
210
  class="MuiFormLabel-root MuiInputLabel-root MuiInputLabel-formControl MuiInputLabel-animated MuiInputLabel-sizeSmall MuiInputLabel-standard MuiFormLabel-colorPrimary MuiInputLabel-root MuiInputLabel-formControl MuiInputLabel-animated MuiInputLabel-sizeSmall MuiInputLabel-standard css-1s1jvl0-MuiFormLabel-root-MuiInputLabel-root"
146
211
  data-shrink="false"
147
- for="mui-1"
148
- id="mui-1-label"
212
+ for="mui-2"
213
+ id="mui-2-label"
149
214
  >
150
215
  Filter tracks
151
216
  </label>
@@ -155,7 +220,7 @@ exports[`renders with a couple of uncategorized tracks 1`] = `
155
220
  <input
156
221
  aria-invalid="false"
157
222
  class="MuiInputBase-input MuiInput-input MuiInputBase-inputSizeSmall MuiInputBase-inputAdornedEnd css-nz481w-MuiInputBase-input-MuiInput-input"
158
- id="mui-1"
223
+ id="mui-2"
159
224
  type="text"
160
225
  value=""
161
226
  />
@@ -1,7 +1,5 @@
1
1
  import React from 'react'
2
2
  import {
3
- Dialog,
4
- DialogTitle,
5
3
  DialogContent,
6
4
  DialogContentText,
7
5
  Button,
@@ -9,23 +7,23 @@ import {
9
7
  ListItem,
10
8
  DialogActions,
11
9
  } from '@mui/material'
10
+ import { Dialog } from '@jbrowse/core/ui'
12
11
  import { observer } from 'mobx-react'
13
12
 
14
- function CloseConnectionDialog({
13
+ export default observer(function CloseConnectionDialog({
15
14
  modalInfo = {},
16
- setModalInfo,
15
+ onClose,
17
16
  }: {
18
17
  modalInfo?: {
19
18
  name?: string
20
19
  dereferenceTypeCount?: { [key: string]: number }
21
- safelyBreakConnection?: Function
20
+ safelyBreakConnection?: () => void
22
21
  }
23
- setModalInfo: Function
22
+ onClose: () => void
24
23
  }) {
25
24
  const { name, dereferenceTypeCount, safelyBreakConnection } = modalInfo
26
25
  return (
27
- <Dialog open>
28
- <DialogTitle>Close connection &quot;{name}&quot;</DialogTitle>
26
+ <Dialog open maxWidth="lg" title={`Close connection "${name}"`}>
29
27
  <DialogContent>
30
28
  {dereferenceTypeCount ? (
31
29
  <>
@@ -44,7 +42,7 @@ function CloseConnectionDialog({
44
42
  </DialogContentText>
45
43
  </DialogContent>
46
44
  <DialogActions>
47
- <Button onClick={() => setModalInfo()} color="primary">
45
+ <Button onClick={() => onClose()} color="primary">
48
46
  Cancel
49
47
  </Button>
50
48
  <Button
@@ -53,7 +51,7 @@ function CloseConnectionDialog({
53
51
  modalInfo
54
52
  ? () => {
55
53
  safelyBreakConnection?.()
56
- setModalInfo()
54
+ onClose()
57
55
  }
58
56
  : () => {}
59
57
  }
@@ -64,6 +62,4 @@ function CloseConnectionDialog({
64
62
  </DialogActions>
65
63
  </Dialog>
66
64
  )
67
- }
68
-
69
- export default observer(CloseConnectionDialog)
65
+ })
@@ -8,7 +8,7 @@ import {
8
8
  Button,
9
9
  } from '@mui/material'
10
10
  import { observer } from 'mobx-react'
11
- import { AnyConfigurationModel } from '@jbrowse/core/configuration/configurationSchema'
11
+ import { AnyConfigurationModel } from '@jbrowse/core/configuration'
12
12
  import { AbstractSessionModel } from '@jbrowse/core/util'
13
13
 
14
14
  function DeleteConnectionDialog({
@@ -27,7 +27,73 @@ const useStyles = makeStyles()(theme => ({
27
27
  },
28
28
  }))
29
29
 
30
- function ToggleConnectionDialog({
30
+ const ConnectionRow = observer(function ConnectionRow({
31
+ conf,
32
+ session,
33
+ breakConnection,
34
+ }: {
35
+ conf: AnyConfigurationModel
36
+ session: AbstractSessionModel
37
+ breakConnection: (arg: AnyConfigurationModel) => void
38
+ }) {
39
+ const { connectionInstances: instances = [] } = session
40
+ const name = readConfObject(conf, 'name')
41
+ const assemblyNames = readConfObject(conf, 'assemblyNames')
42
+ const found = instances.find(conn => name === conn.name)
43
+ return (
44
+ <FormControlLabel
45
+ key={conf.connectionId}
46
+ control={
47
+ <Checkbox
48
+ checked={!!found}
49
+ onChange={() => {
50
+ if (found) {
51
+ breakConnection(conf)
52
+ } else {
53
+ session.makeConnection?.(conf)
54
+ }
55
+ }}
56
+ color="primary"
57
+ />
58
+ }
59
+ label={[
60
+ name,
61
+ assemblyNames.length ? `(${ellipses(assemblyNames.join(','))})` : '',
62
+ ]
63
+ .filter(f => !!f)
64
+ .join(' ')}
65
+ />
66
+ )
67
+ })
68
+
69
+ const ConnectionList = observer(function ConnectionsList({
70
+ session,
71
+ breakConnection,
72
+ }: {
73
+ session: AbstractSessionModel
74
+ breakConnection: (arg: AnyConfigurationModel) => void
75
+ }) {
76
+ const { classes } = useStyles()
77
+ return (
78
+ <div className={classes.connectionContainer}>
79
+ {!session.connections.length ? (
80
+ <Typography>No connections found</Typography>
81
+ ) : (
82
+ session.connections.map((conf, idx) => (
83
+ <div key={conf.name + '_' + idx}>
84
+ <ConnectionRow
85
+ conf={conf}
86
+ session={session}
87
+ breakConnection={breakConnection}
88
+ />
89
+ </div>
90
+ ))
91
+ )}
92
+ </div>
93
+ )
94
+ })
95
+
96
+ export default observer(function ToggleConnectionDialog({
31
97
  session,
32
98
  handleClose,
33
99
  breakConnection,
@@ -36,8 +102,6 @@ function ToggleConnectionDialog({
36
102
  session: AbstractSessionModel
37
103
  breakConnection: (arg: AnyConfigurationModel) => void
38
104
  }) {
39
- const { classes } = useStyles()
40
- const { connections, connectionInstances: instances = [] } = session
41
105
  return (
42
106
  <Dialog
43
107
  open
@@ -47,39 +111,7 @@ function ToggleConnectionDialog({
47
111
  >
48
112
  <DialogContent>
49
113
  <Typography>Use the checkbox to turn on/off connections</Typography>
50
- <div className={classes.connectionContainer}>
51
- {connections.map(conf => {
52
- const name = readConfObject(conf, 'name')
53
- const assemblyNames = readConfObject(conf, 'assemblyNames')
54
- const found = instances.find(conn => name === conn.name)
55
- return (
56
- <FormControlLabel
57
- key={conf.connectionId}
58
- control={
59
- <Checkbox
60
- checked={!!found}
61
- onChange={() => {
62
- if (found) {
63
- breakConnection(conf)
64
- } else {
65
- session.makeConnection?.(conf)
66
- }
67
- }}
68
- color="primary"
69
- />
70
- }
71
- label={`${name} ${
72
- assemblyNames.length
73
- ? '(' + ellipses(assemblyNames.join(',')) + ')'
74
- : ''
75
- }`}
76
- />
77
- )
78
- })}
79
- {!connections.length ? (
80
- <Typography>No connections found</Typography>
81
- ) : null}
82
- </div>
114
+ <ConnectionList session={session} breakConnection={breakConnection} />
83
115
  </DialogContent>
84
116
  <DialogActions>
85
117
  <Button
@@ -92,6 +124,4 @@ function ToggleConnectionDialog({
92
124
  </DialogActions>
93
125
  </Dialog>
94
126
  )
95
- }
96
-
97
- export default observer(ToggleConnectionDialog)
127
+ })
@@ -14,6 +14,8 @@ export default function FacetedHeader({
14
14
  setFilterText,
15
15
  setUseShoppingCart,
16
16
  setHideSparse,
17
+ setShowOptions,
18
+ showOptions,
17
19
  hideSparse,
18
20
  useShoppingCart,
19
21
  filterText,
@@ -22,7 +24,9 @@ export default function FacetedHeader({
22
24
  setFilterText: (arg: string) => void
23
25
  setUseShoppingCart: (arg: boolean) => void
24
26
  setHideSparse: (arg: boolean) => void
27
+ setShowOptions: (arg: boolean) => void
25
28
  filterText: string
29
+ showOptions: boolean
26
30
  useShoppingCart: boolean
27
31
  hideSparse: boolean
28
32
  model: HierarchicalTrackSelectorModel
@@ -79,6 +83,12 @@ export default function FacetedHeader({
79
83
  checked: hideSparse,
80
84
  type: 'checkbox',
81
85
  },
86
+ {
87
+ label: 'Show extra table options',
88
+ onClick: () => setShowOptions(!showOptions),
89
+ checked: showOptions,
90
+ type: 'checkbox',
91
+ },
82
92
  ]}
83
93
  />
84
94
  </>
@@ -3,11 +3,12 @@ import { IconButton } from '@mui/material'
3
3
  import { transaction } from 'mobx'
4
4
  import { observer } from 'mobx-react'
5
5
  import { getRoot, resolveIdentifier } from 'mobx-state-tree'
6
- import { DataGrid, GridCellParams } from '@mui/x-data-grid'
6
+ import { DataGrid, GridCellParams, GridToolbar } from '@mui/x-data-grid'
7
7
 
8
8
  // jbrowse
9
9
  import { getTrackName } from '@jbrowse/core/util/tracks'
10
- import { ResizeHandle, SanitizedHTML } from '@jbrowse/core/ui'
10
+ import { ResizeHandle } from '@jbrowse/core/ui'
11
+ import SanitizedHTML from '@jbrowse/core/ui/SanitizedHTML'
11
12
  import JBrowseMenu from '@jbrowse/core/ui/Menu'
12
13
  import ResizeBar, { useResizeBar } from '@jbrowse/core/ui/ResizeBar'
13
14
  import {
@@ -45,19 +46,19 @@ export default observer(function FacetedSelector({
45
46
  }: {
46
47
  model: HierarchicalTrackSelectorModel
47
48
  }) {
48
- const { assemblyNames, view, selection } = model
49
+ const { view, selection } = model
49
50
  const { pluginManager } = getEnv(model)
50
51
  const { ref, scrollLeft } = useResizeBar()
51
52
 
52
53
  const [filterText, setFilterText] = useState('')
54
+ const [showOptions, setShowOptions] = useState(false)
53
55
  const [info, setInfo] = useState<InfoArgs>()
54
56
  const [useShoppingCart, setUseShoppingCart] = useState(false)
55
57
  const [hideSparse, setHideSparse] = useState(true)
56
58
  const [panelWidth, setPanelWidth] = useState(400)
57
-
58
- const assemblyName = assemblyNames[0]
59
59
  const session = getSession(model)
60
60
  const filterDebounced = useDebounce(filterText, 400)
61
+ const tracks = view.tracks as AnyConfigurationModel[]
61
62
  const [filters, dispatch] = useReducer(
62
63
  (
63
64
  state: Record<string, string[]>,
@@ -71,8 +72,7 @@ export default observer(function FacetedSelector({
71
72
  const rows = useMemo(() => {
72
73
  // metadata is spread onto the object for easier access and sorting
73
74
  // by the mui data grid (it's unable to sort by nested objects)
74
- return model
75
- .trackConfigurations(assemblyName)
75
+ return model.trackConfigurations
76
76
  .filter(conf => matches(filterDebounced, conf, session))
77
77
  .map(track => {
78
78
  const metadata = readConfObject(track, 'metadata')
@@ -87,7 +87,7 @@ export default observer(function FacetedSelector({
87
87
  ...metadata,
88
88
  }
89
89
  })
90
- }, [assemblyName, model, filterDebounced, session])
90
+ }, [model, filterDebounced, session])
91
91
 
92
92
  const filteredNonMetadataKeys = useMemo(
93
93
  () =>
@@ -107,9 +107,10 @@ export default observer(function FacetedSelector({
107
107
  [hideSparse, rows],
108
108
  )
109
109
 
110
- const fields = useMemo(() => {
111
- return ['name', ...filteredNonMetadataKeys, ...filteredMetadataKeys]
112
- }, [filteredNonMetadataKeys, filteredMetadataKeys])
110
+ const fields = useMemo(
111
+ () => ['name', ...filteredNonMetadataKeys, ...filteredMetadataKeys],
112
+ [filteredNonMetadataKeys, filteredMetadataKeys],
113
+ )
113
114
 
114
115
  const [widths, setWidths] = useState({
115
116
  name:
@@ -135,7 +136,7 @@ export default observer(function FacetedSelector({
135
136
  ),
136
137
  ]),
137
138
  ),
138
- } as { [key: string]: number })
139
+ } as { [key: string]: number | undefined })
139
140
 
140
141
  const [visible, setVisible] = useState(
141
142
  Object.fromEntries(fields.map(c => [c, true])),
@@ -185,7 +186,7 @@ export default observer(function FacetedSelector({
185
186
  const { value, id, row } = params
186
187
  return (
187
188
  <>
188
- <SanitizedHTML html={value} />
189
+ <SanitizedHTML html={value as string} />
189
190
  <IconButton
190
191
  onClick={e =>
191
192
  setInfo({
@@ -200,30 +201,27 @@ export default observer(function FacetedSelector({
200
201
  </>
201
202
  )
202
203
  },
203
- width: widthsDebounced.name || 100, // can be undefined before useEffect update
204
+ width: widthsDebounced.name ?? 100,
204
205
  },
205
206
  ...filteredNonMetadataKeys.map(e => ({
206
207
  field: e,
207
- width: widthsDebounced[e] || 100, // can be undefined before useEffect update
208
+ width: widthsDebounced[e] ?? 100,
208
209
  renderCell: (params: GridCellParams) => {
209
210
  const { value } = params
210
- return value ? <SanitizedHTML html={value} /> : ''
211
+ return value ? <SanitizedHTML html={value as string} /> : ''
211
212
  },
212
213
  })),
213
214
  ...filteredMetadataKeys.map(e => ({
214
215
  field: e,
215
- width: widthsDebounced[e] || 100, // can be undefined before useEffect update
216
+ width: widthsDebounced[e] ?? 100,
216
217
  renderCell: (params: GridCellParams) => {
217
218
  const { value } = params
218
- return value ? <SanitizedHTML html={value} /> : ''
219
+ return value ? <SanitizedHTML html={value as string} /> : ''
219
220
  },
220
221
  })),
221
222
  ]
222
223
 
223
- const shownTrackIds = view.tracks.map(
224
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
225
- (t: any) => t.configuration.trackId,
226
- ) as string[]
224
+ const shownTrackIds = tracks.map(t => t.configuration.trackId as string)
227
225
 
228
226
  const arrFilters = Object.entries(filters).filter(f => f[1].length > 0)
229
227
  return (
@@ -242,9 +240,11 @@ export default observer(function FacetedSelector({
242
240
  ) : null}
243
241
  <FacetedHeader
244
242
  setHideSparse={setHideSparse}
243
+ setShowOptions={setShowOptions}
245
244
  setFilterText={setFilterText}
246
245
  setUseShoppingCart={setUseShoppingCart}
247
246
  hideSparse={hideSparse}
247
+ showOptions={showOptions}
248
248
  filterText={filterText}
249
249
  useShoppingCart={useShoppingCart}
250
250
  model={model}
@@ -267,7 +267,7 @@ export default observer(function FacetedSelector({
267
267
  >
268
268
  <ResizeBar
269
269
  checkbox
270
- widths={Object.values(widths)}
270
+ widths={Object.values(widths).map(f => f ?? 100)}
271
271
  setWidths={newWidths =>
272
272
  setWidths(
273
273
  Object.fromEntries(
@@ -286,11 +286,11 @@ export default observer(function FacetedSelector({
286
286
  )}
287
287
  columnVisibilityModel={visible}
288
288
  onColumnVisibilityModelChange={newModel => setVisible(newModel)}
289
- headerHeight={35}
289
+ columnHeaderHeight={35}
290
290
  checkboxSelection
291
- disableSelectionOnClick
291
+ disableRowSelectionOnClick
292
292
  keepNonExistentRowsSelected
293
- onSelectionModelChange={userSelectedIds => {
293
+ onRowSelectionModelChange={userSelectedIds => {
294
294
  if (!useShoppingCart) {
295
295
  const a1 = shownTrackIds
296
296
  const a2 = userSelectedIds as string[]
@@ -309,9 +309,13 @@ export default observer(function FacetedSelector({
309
309
  model.setSelection(tracks)
310
310
  }
311
311
  }}
312
- selectionModel={
312
+ rowSelectionModel={
313
313
  useShoppingCart ? selection.map(s => s.trackId) : shownTrackIds
314
314
  }
315
+ slots={{ toolbar: showOptions ? GridToolbar : null }}
316
+ slotProps={{
317
+ toolbar: { printOptions: { disableToolbarButton: true } },
318
+ }}
315
319
  columns={columns}
316
320
  rowHeight={25}
317
321
  />