@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.
- package/dist/AddConnectionWidget/components/AddConnectionWidget.d.ts +3 -4
- package/dist/AddConnectionWidget/components/AddConnectionWidget.js +24 -45
- package/dist/AddConnectionWidget/components/AddConnectionWidget.js.map +1 -1
- package/dist/AddConnectionWidget/components/ConfigureConnection.d.ts +4 -4
- package/dist/AddConnectionWidget/components/ConfigureConnection.js +1 -3
- package/dist/AddConnectionWidget/components/ConfigureConnection.js.map +1 -1
- package/dist/AddConnectionWidget/components/ConnectionTypeSelect.d.ts +5 -5
- package/dist/AddConnectionWidget/components/ConnectionTypeSelect.js +3 -4
- package/dist/AddConnectionWidget/components/ConnectionTypeSelect.js.map +1 -1
- package/dist/AddTrackWidget/components/AddTrackWidget.d.ts +2 -2
- package/dist/AddTrackWidget/components/ConfirmTrack.d.ts +2 -2
- package/dist/AddTrackWidget/components/DefaultAddTrackWorkflow.d.ts +2 -2
- package/dist/AddTrackWidget/components/DefaultAddTrackWorkflow.js +2 -2
- package/dist/AddTrackWidget/components/DefaultAddTrackWorkflow.js.map +1 -1
- package/dist/AddTrackWidget/components/PasteConfigWorkflow.d.ts +2 -2
- package/dist/AddTrackWidget/components/PasteConfigWorkflow.js +1 -0
- package/dist/AddTrackWidget/components/PasteConfigWorkflow.js.map +1 -1
- package/dist/AddTrackWidget/components/TextIndexingConfig.d.ts +3 -3
- package/dist/AddTrackWidget/components/TextIndexingConfig.js +4 -10
- package/dist/AddTrackWidget/components/TextIndexingConfig.js.map +1 -1
- package/dist/AddTrackWidget/components/TrackAdapterSelector.d.ts +2 -2
- package/dist/AddTrackWidget/components/TrackSourceSelect.d.ts +2 -2
- package/dist/AddTrackWidget/components/TrackTypeSelector.d.ts +2 -2
- package/dist/AssemblyManager/AssemblyAddForm.d.ts +2 -2
- package/dist/AssemblyManager/AssemblyEditor.d.ts +2 -2
- package/dist/AssemblyManager/AssemblyManager.d.ts +2 -2
- package/dist/AssemblyManager/AssemblyTable.d.ts +2 -2
- package/dist/HierarchicalTrackSelectorWidget/components/HierarchicalFab.d.ts +2 -2
- package/dist/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.d.ts +2 -2
- package/dist/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.js +4 -9
- package/dist/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.js.map +1 -1
- package/dist/HierarchicalTrackSelectorWidget/components/ShoppingCart.d.ts +2 -2
- package/dist/HierarchicalTrackSelectorWidget/components/dialogs/CloseConnectionDialog.d.ts +8 -9
- package/dist/HierarchicalTrackSelectorWidget/components/dialogs/CloseConnectionDialog.js +6 -10
- package/dist/HierarchicalTrackSelectorWidget/components/dialogs/CloseConnectionDialog.js.map +1 -1
- package/dist/HierarchicalTrackSelectorWidget/components/dialogs/DeleteConnectionDialog.d.ts +3 -3
- package/dist/HierarchicalTrackSelectorWidget/components/dialogs/ManageConnectionsDialog.d.ts +2 -2
- package/dist/HierarchicalTrackSelectorWidget/components/dialogs/ToggleConnectionsDialog.d.ts +3 -4
- package/dist/HierarchicalTrackSelectorWidget/components/dialogs/ToggleConnectionsDialog.js +27 -22
- package/dist/HierarchicalTrackSelectorWidget/components/dialogs/ToggleConnectionsDialog.js.map +1 -1
- package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetFilters.d.ts +2 -2
- package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetedDialog.d.ts +2 -2
- package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetedHeader.d.ts +5 -3
- package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetedHeader.js +7 -1
- package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetedHeader.js.map +1 -1
- package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetedSelector.d.ts +2 -2
- package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetedSelector.js +40 -35
- package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetedSelector.js.map +1 -1
- package/dist/HierarchicalTrackSelectorWidget/components/tree/HamburgerMenu.d.ts +3 -4
- package/dist/HierarchicalTrackSelectorWidget/components/tree/HamburgerMenu.js +36 -41
- package/dist/HierarchicalTrackSelectorWidget/components/tree/HamburgerMenu.js.map +1 -1
- package/dist/HierarchicalTrackSelectorWidget/components/tree/HierarchicalHeader.d.ts +3 -4
- package/dist/HierarchicalTrackSelectorWidget/components/tree/HierarchicalHeader.js +2 -2
- package/dist/HierarchicalTrackSelectorWidget/components/tree/HierarchicalHeader.js.map +1 -1
- package/dist/HierarchicalTrackSelectorWidget/components/tree/HierarchicalTree.d.ts +2 -2
- package/dist/HierarchicalTrackSelectorWidget/components/tree/TrackCategory.d.ts +2 -2
- package/dist/HierarchicalTrackSelectorWidget/components/tree/TrackLabel.d.ts +2 -2
- package/dist/HierarchicalTrackSelectorWidget/components/tree/TrackListNode.d.ts +2 -2
- package/dist/HierarchicalTrackSelectorWidget/configSchema.d.ts +1 -1
- package/dist/HierarchicalTrackSelectorWidget/model.d.ts +69 -5
- package/dist/HierarchicalTrackSelectorWidget/model.js +100 -53
- package/dist/HierarchicalTrackSelectorWidget/model.js.map +1 -1
- package/dist/PluginStoreWidget/components/CustomPluginForm.d.ts +2 -2
- package/dist/PluginStoreWidget/components/CustomPluginForm.js +10 -33
- package/dist/PluginStoreWidget/components/CustomPluginForm.js.map +1 -1
- package/dist/PluginStoreWidget/components/InstalledPlugin.d.ts +2 -2
- package/dist/PluginStoreWidget/components/InstalledPluginsList.d.ts +2 -2
- package/dist/PluginStoreWidget/components/PluginCard.d.ts +2 -2
- package/dist/PluginStoreWidget/components/PluginStoreWidget.d.ts +2 -2
- package/dist/PluginStoreWidget/components/PluginStoreWidget.js +5 -8
- package/dist/PluginStoreWidget/components/PluginStoreWidget.js.map +1 -1
- package/dist/SetDefaultSession/SetDefaultSession.d.ts +2 -2
- package/dist/index.d.ts +4 -4
- package/dist/ucsc-trackhub/configSchema.d.ts +32 -1
- package/dist/ucsc-trackhub/model.d.ts +38 -1
- package/dist/ucsc-trackhub/model.js +47 -13
- package/dist/ucsc-trackhub/model.js.map +1 -1
- package/esm/AddConnectionWidget/components/AddConnectionWidget.d.ts +3 -4
- package/esm/AddConnectionWidget/components/AddConnectionWidget.js +24 -45
- package/esm/AddConnectionWidget/components/AddConnectionWidget.js.map +1 -1
- package/esm/AddConnectionWidget/components/ConfigureConnection.d.ts +4 -4
- package/esm/AddConnectionWidget/components/ConfigureConnection.js +1 -3
- package/esm/AddConnectionWidget/components/ConfigureConnection.js.map +1 -1
- package/esm/AddConnectionWidget/components/ConnectionTypeSelect.d.ts +5 -5
- package/esm/AddConnectionWidget/components/ConnectionTypeSelect.js +3 -4
- package/esm/AddConnectionWidget/components/ConnectionTypeSelect.js.map +1 -1
- package/esm/AddTrackWidget/components/AddTrackWidget.d.ts +2 -2
- package/esm/AddTrackWidget/components/ConfirmTrack.d.ts +2 -2
- package/esm/AddTrackWidget/components/DefaultAddTrackWorkflow.d.ts +2 -2
- package/esm/AddTrackWidget/components/DefaultAddTrackWorkflow.js +2 -2
- package/esm/AddTrackWidget/components/DefaultAddTrackWorkflow.js.map +1 -1
- package/esm/AddTrackWidget/components/PasteConfigWorkflow.d.ts +2 -2
- package/esm/AddTrackWidget/components/PasteConfigWorkflow.js +1 -0
- package/esm/AddTrackWidget/components/PasteConfigWorkflow.js.map +1 -1
- package/esm/AddTrackWidget/components/TextIndexingConfig.d.ts +3 -3
- package/esm/AddTrackWidget/components/TextIndexingConfig.js +4 -10
- package/esm/AddTrackWidget/components/TextIndexingConfig.js.map +1 -1
- package/esm/AddTrackWidget/components/TrackAdapterSelector.d.ts +2 -2
- package/esm/AddTrackWidget/components/TrackSourceSelect.d.ts +2 -2
- package/esm/AddTrackWidget/components/TrackTypeSelector.d.ts +2 -2
- package/esm/AssemblyManager/AssemblyAddForm.d.ts +2 -2
- package/esm/AssemblyManager/AssemblyEditor.d.ts +2 -2
- package/esm/AssemblyManager/AssemblyManager.d.ts +2 -2
- package/esm/AssemblyManager/AssemblyTable.d.ts +2 -2
- package/esm/HierarchicalTrackSelectorWidget/components/HierarchicalFab.d.ts +2 -2
- package/esm/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.d.ts +2 -2
- package/esm/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.js +4 -9
- package/esm/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.js.map +1 -1
- package/esm/HierarchicalTrackSelectorWidget/components/ShoppingCart.d.ts +2 -2
- package/esm/HierarchicalTrackSelectorWidget/components/dialogs/CloseConnectionDialog.d.ts +8 -9
- package/esm/HierarchicalTrackSelectorWidget/components/dialogs/CloseConnectionDialog.js +7 -11
- package/esm/HierarchicalTrackSelectorWidget/components/dialogs/CloseConnectionDialog.js.map +1 -1
- package/esm/HierarchicalTrackSelectorWidget/components/dialogs/DeleteConnectionDialog.d.ts +3 -3
- package/esm/HierarchicalTrackSelectorWidget/components/dialogs/ManageConnectionsDialog.d.ts +2 -2
- package/esm/HierarchicalTrackSelectorWidget/components/dialogs/ToggleConnectionsDialog.d.ts +3 -4
- package/esm/HierarchicalTrackSelectorWidget/components/dialogs/ToggleConnectionsDialog.js +27 -22
- package/esm/HierarchicalTrackSelectorWidget/components/dialogs/ToggleConnectionsDialog.js.map +1 -1
- package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetFilters.d.ts +2 -2
- package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetedDialog.d.ts +2 -2
- package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetedHeader.d.ts +5 -3
- package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetedHeader.js +7 -1
- package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetedHeader.js.map +1 -1
- package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetedSelector.d.ts +2 -2
- package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetedSelector.js +41 -36
- package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetedSelector.js.map +1 -1
- package/esm/HierarchicalTrackSelectorWidget/components/tree/HamburgerMenu.d.ts +3 -4
- package/esm/HierarchicalTrackSelectorWidget/components/tree/HamburgerMenu.js +37 -42
- package/esm/HierarchicalTrackSelectorWidget/components/tree/HamburgerMenu.js.map +1 -1
- package/esm/HierarchicalTrackSelectorWidget/components/tree/HierarchicalHeader.d.ts +3 -4
- package/esm/HierarchicalTrackSelectorWidget/components/tree/HierarchicalHeader.js +2 -2
- package/esm/HierarchicalTrackSelectorWidget/components/tree/HierarchicalHeader.js.map +1 -1
- package/esm/HierarchicalTrackSelectorWidget/components/tree/HierarchicalTree.d.ts +2 -2
- package/esm/HierarchicalTrackSelectorWidget/components/tree/TrackCategory.d.ts +2 -2
- package/esm/HierarchicalTrackSelectorWidget/components/tree/TrackLabel.d.ts +2 -2
- package/esm/HierarchicalTrackSelectorWidget/components/tree/TrackListNode.d.ts +2 -2
- package/esm/HierarchicalTrackSelectorWidget/configSchema.d.ts +1 -1
- package/esm/HierarchicalTrackSelectorWidget/model.d.ts +69 -5
- package/esm/HierarchicalTrackSelectorWidget/model.js +101 -54
- package/esm/HierarchicalTrackSelectorWidget/model.js.map +1 -1
- package/esm/PluginStoreWidget/components/CustomPluginForm.d.ts +2 -2
- package/esm/PluginStoreWidget/components/CustomPluginForm.js +10 -33
- package/esm/PluginStoreWidget/components/CustomPluginForm.js.map +1 -1
- package/esm/PluginStoreWidget/components/InstalledPlugin.d.ts +2 -2
- package/esm/PluginStoreWidget/components/InstalledPluginsList.d.ts +2 -2
- package/esm/PluginStoreWidget/components/PluginCard.d.ts +2 -2
- package/esm/PluginStoreWidget/components/PluginStoreWidget.d.ts +2 -2
- package/esm/PluginStoreWidget/components/PluginStoreWidget.js +5 -8
- package/esm/PluginStoreWidget/components/PluginStoreWidget.js.map +1 -1
- package/esm/SetDefaultSession/SetDefaultSession.d.ts +2 -2
- package/esm/index.d.ts +4 -4
- package/esm/ucsc-trackhub/configSchema.d.ts +32 -1
- package/esm/ucsc-trackhub/model.d.ts +38 -1
- package/esm/ucsc-trackhub/model.js +22 -11
- package/esm/ucsc-trackhub/model.js.map +1 -1
- package/package.json +3 -3
- package/src/AddConnectionWidget/components/AddConnectionWidget.test.tsx +1 -3
- package/src/AddConnectionWidget/components/AddConnectionWidget.tsx +46 -85
- package/src/AddConnectionWidget/components/ConfigureConnection.tsx +17 -18
- package/src/AddConnectionWidget/components/ConnectionTypeSelect.tsx +7 -6
- package/src/AddConnectionWidget/components/__snapshots__/AddConnectionWidget.test.tsx.snap +1 -0
- package/src/AddTrackWidget/components/DefaultAddTrackWorkflow.tsx +2 -2
- package/src/AddTrackWidget/components/PasteConfigWorkflow.tsx +1 -0
- package/src/AddTrackWidget/components/TextIndexingConfig.tsx +10 -10
- package/src/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.tsx +11 -21
- package/src/HierarchicalTrackSelectorWidget/components/__snapshots__/HierarchicalTrackSelector.test.tsx.snap +89 -24
- package/src/HierarchicalTrackSelectorWidget/components/dialogs/CloseConnectionDialog.tsx +9 -13
- package/src/HierarchicalTrackSelectorWidget/components/dialogs/DeleteConnectionDialog.tsx +1 -1
- package/src/HierarchicalTrackSelectorWidget/components/dialogs/ToggleConnectionsDialog.tsx +69 -39
- package/src/HierarchicalTrackSelectorWidget/components/faceted/FacetedHeader.tsx +10 -0
- package/src/HierarchicalTrackSelectorWidget/components/faceted/FacetedSelector.tsx +31 -27
- package/src/HierarchicalTrackSelectorWidget/components/tree/HamburgerMenu.tsx +46 -51
- package/src/HierarchicalTrackSelectorWidget/components/tree/HierarchicalHeader.tsx +1 -3
- package/src/HierarchicalTrackSelectorWidget/model.ts +120 -65
- package/src/PluginStoreWidget/components/CustomPluginForm.tsx +11 -36
- package/src/PluginStoreWidget/components/PluginStoreWidget.tsx +7 -10
- package/src/PluginStoreWidget/model.test.tsx +1 -1
- 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
|
-
<
|
|
5
|
-
|
|
6
|
-
tabindex="0"
|
|
7
|
-
type="button"
|
|
4
|
+
<div
|
|
5
|
+
data-testid="hierarchical_track_selector"
|
|
8
6
|
>
|
|
9
|
-
<
|
|
10
|
-
|
|
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
|
-
<
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
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-
|
|
60
|
-
id="mui-
|
|
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-
|
|
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-
|
|
148
|
-
id="mui-
|
|
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-
|
|
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
|
-
|
|
15
|
+
onClose,
|
|
17
16
|
}: {
|
|
18
17
|
modalInfo?: {
|
|
19
18
|
name?: string
|
|
20
19
|
dereferenceTypeCount?: { [key: string]: number }
|
|
21
|
-
safelyBreakConnection?:
|
|
20
|
+
safelyBreakConnection?: () => void
|
|
22
21
|
}
|
|
23
|
-
|
|
22
|
+
onClose: () => void
|
|
24
23
|
}) {
|
|
25
24
|
const { name, dereferenceTypeCount, safelyBreakConnection } = modalInfo
|
|
26
25
|
return (
|
|
27
|
-
<Dialog open>
|
|
28
|
-
<DialogTitle>Close connection "{name}"</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={() =>
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
-
<
|
|
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
|
|
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 {
|
|
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
|
-
}, [
|
|
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
|
-
|
|
112
|
-
|
|
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
|
|
204
|
+
width: widthsDebounced.name ?? 100,
|
|
204
205
|
},
|
|
205
206
|
...filteredNonMetadataKeys.map(e => ({
|
|
206
207
|
field: e,
|
|
207
|
-
width: widthsDebounced[e]
|
|
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]
|
|
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 =
|
|
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
|
-
|
|
289
|
+
columnHeaderHeight={35}
|
|
290
290
|
checkboxSelection
|
|
291
|
-
|
|
291
|
+
disableRowSelectionOnClick
|
|
292
292
|
keepNonExistentRowsSelected
|
|
293
|
-
|
|
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
|
-
|
|
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
|
/>
|