@jbrowse/plugin-data-management 2.3.2 → 2.3.4
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/index.d.ts +3 -2
- package/dist/AddConnectionWidget/index.js +38 -4
- package/dist/AddConnectionWidget/index.js.map +1 -1
- package/dist/AddTrackWidget/components/DefaultAddTrackWorkflow.js +1 -4
- package/dist/AddTrackWidget/components/DefaultAddTrackWorkflow.js.map +1 -1
- package/dist/AddTrackWidget/components/TrackSourceSelect.js +1 -4
- package/dist/AddTrackWidget/components/TrackSourceSelect.js.map +1 -1
- package/dist/AddTrackWidget/index.d.ts +3 -2
- package/dist/AddTrackWidget/index.js +38 -4
- package/dist/AddTrackWidget/index.js.map +1 -1
- package/dist/HierarchicalTrackSelectorWidget/components/HierarchicalFab.d.ts +6 -0
- package/dist/HierarchicalTrackSelectorWidget/components/HierarchicalFab.js +71 -0
- package/dist/HierarchicalTrackSelectorWidget/components/HierarchicalFab.js.map +1 -0
- package/dist/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.js +10 -104
- package/dist/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.js.map +1 -1
- package/dist/HierarchicalTrackSelectorWidget/components/ShoppingCart.d.ts +6 -0
- package/dist/HierarchicalTrackSelectorWidget/components/ShoppingCart.js +70 -0
- package/dist/HierarchicalTrackSelectorWidget/components/ShoppingCart.js.map +1 -0
- package/dist/HierarchicalTrackSelectorWidget/components/{CloseConnectionDialog.d.ts → dialogs/CloseConnectionDialog.d.ts} +0 -0
- package/dist/HierarchicalTrackSelectorWidget/components/{CloseConnectionDialog.js → dialogs/CloseConnectionDialog.js} +0 -0
- package/dist/HierarchicalTrackSelectorWidget/components/dialogs/CloseConnectionDialog.js.map +1 -0
- package/dist/HierarchicalTrackSelectorWidget/components/{DeleteConnectionDialog.d.ts → dialogs/DeleteConnectionDialog.d.ts} +0 -0
- package/dist/HierarchicalTrackSelectorWidget/components/{DeleteConnectionDialog.js → dialogs/DeleteConnectionDialog.js} +0 -0
- package/dist/HierarchicalTrackSelectorWidget/components/dialogs/DeleteConnectionDialog.js.map +1 -0
- package/dist/HierarchicalTrackSelectorWidget/components/{ManageConnectionsDialog.d.ts → dialogs/ManageConnectionsDialog.d.ts} +0 -0
- package/dist/HierarchicalTrackSelectorWidget/components/{ManageConnectionsDialog.js → dialogs/ManageConnectionsDialog.js} +0 -0
- package/dist/HierarchicalTrackSelectorWidget/components/dialogs/ManageConnectionsDialog.js.map +1 -0
- package/dist/HierarchicalTrackSelectorWidget/components/{ToggleConnectionsDialog.d.ts → dialogs/ToggleConnectionsDialog.d.ts} +0 -0
- package/dist/HierarchicalTrackSelectorWidget/components/{ToggleConnectionsDialog.js → dialogs/ToggleConnectionsDialog.js} +0 -0
- package/dist/HierarchicalTrackSelectorWidget/components/dialogs/ToggleConnectionsDialog.js.map +1 -0
- package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetFilters.d.ts +13 -0
- package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetFilters.js +99 -0
- package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetFilters.js.map +1 -0
- package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetedDialog.d.ts +8 -0
- package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetedDialog.js +18 -0
- package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetedDialog.js.map +1 -0
- package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetedHeader.d.ts +11 -0
- package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetedHeader.js +71 -0
- package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetedHeader.js.map +1 -0
- package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetedSelector.d.ts +12 -0
- package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetedSelector.js +211 -0
- package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetedSelector.js.map +1 -0
- package/dist/HierarchicalTrackSelectorWidget/components/faceted/util.d.ts +1 -0
- package/dist/HierarchicalTrackSelectorWidget/components/faceted/util.js +10 -0
- package/dist/HierarchicalTrackSelectorWidget/components/faceted/util.js.map +1 -0
- package/dist/HierarchicalTrackSelectorWidget/components/tree/HamburgerMenu.d.ts +7 -0
- package/dist/HierarchicalTrackSelectorWidget/components/tree/HamburgerMenu.js +136 -0
- package/dist/HierarchicalTrackSelectorWidget/components/tree/HamburgerMenu.js.map +1 -0
- package/dist/HierarchicalTrackSelectorWidget/components/{Header.d.ts → tree/HierarchicalHeader.d.ts} +2 -3
- package/dist/HierarchicalTrackSelectorWidget/components/tree/HierarchicalHeader.js +65 -0
- package/dist/HierarchicalTrackSelectorWidget/components/tree/HierarchicalHeader.js.map +1 -0
- package/dist/HierarchicalTrackSelectorWidget/components/tree/HierarchicalTree.d.ts +8 -0
- package/dist/HierarchicalTrackSelectorWidget/components/tree/HierarchicalTree.js +91 -0
- package/dist/HierarchicalTrackSelectorWidget/components/tree/HierarchicalTree.js.map +1 -0
- package/dist/HierarchicalTrackSelectorWidget/components/tree/TrackCategory.d.ts +7 -0
- package/dist/HierarchicalTrackSelectorWidget/components/tree/TrackCategory.js +89 -0
- package/dist/HierarchicalTrackSelectorWidget/components/tree/TrackCategory.js.map +1 -0
- package/dist/HierarchicalTrackSelectorWidget/components/tree/TrackLabel.d.ts +11 -0
- package/dist/HierarchicalTrackSelectorWidget/components/tree/TrackLabel.js +86 -0
- package/dist/HierarchicalTrackSelectorWidget/components/tree/TrackLabel.js.map +1 -0
- package/dist/HierarchicalTrackSelectorWidget/components/tree/TrackListNode.d.ts +10 -0
- package/dist/HierarchicalTrackSelectorWidget/components/tree/TrackListNode.js +54 -0
- package/dist/HierarchicalTrackSelectorWidget/components/tree/TrackListNode.js.map +1 -0
- package/dist/HierarchicalTrackSelectorWidget/components/util.d.ts +17 -1
- package/dist/HierarchicalTrackSelectorWidget/components/util.js +16 -1
- package/dist/HierarchicalTrackSelectorWidget/components/util.js.map +1 -1
- package/dist/HierarchicalTrackSelectorWidget/index.d.ts +3 -0
- package/dist/HierarchicalTrackSelectorWidget/index.js +36 -0
- package/dist/HierarchicalTrackSelectorWidget/index.js.map +1 -1
- package/dist/HierarchicalTrackSelectorWidget/model.d.ts +4 -1
- package/dist/HierarchicalTrackSelectorWidget/model.js +12 -8
- package/dist/HierarchicalTrackSelectorWidget/model.js.map +1 -1
- package/dist/PluginStoreWidget/index.d.ts +3 -2
- package/dist/PluginStoreWidget/index.js +38 -4
- package/dist/PluginStoreWidget/index.js.map +1 -1
- package/dist/index.js +10 -51
- package/dist/index.js.map +1 -1
- package/dist/ucsc-trackhub/index.d.ts +3 -2
- package/dist/ucsc-trackhub/index.js +13 -5
- package/dist/ucsc-trackhub/index.js.map +1 -1
- package/esm/AddConnectionWidget/index.d.ts +3 -2
- package/esm/AddConnectionWidget/index.js +15 -2
- package/esm/AddConnectionWidget/index.js.map +1 -1
- package/esm/AddTrackWidget/components/DefaultAddTrackWorkflow.js +1 -4
- package/esm/AddTrackWidget/components/DefaultAddTrackWorkflow.js.map +1 -1
- package/esm/AddTrackWidget/components/TrackSourceSelect.js +1 -4
- package/esm/AddTrackWidget/components/TrackSourceSelect.js.map +1 -1
- package/esm/AddTrackWidget/index.d.ts +3 -2
- package/esm/AddTrackWidget/index.js +15 -2
- package/esm/AddTrackWidget/index.js.map +1 -1
- package/esm/HierarchicalTrackSelectorWidget/components/HierarchicalFab.d.ts +6 -0
- package/esm/HierarchicalTrackSelectorWidget/components/HierarchicalFab.js +43 -0
- package/esm/HierarchicalTrackSelectorWidget/components/HierarchicalFab.js.map +1 -0
- package/esm/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.js +9 -103
- package/esm/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.js.map +1 -1
- package/esm/HierarchicalTrackSelectorWidget/components/ShoppingCart.d.ts +6 -0
- package/esm/HierarchicalTrackSelectorWidget/components/ShoppingCart.js +42 -0
- package/esm/HierarchicalTrackSelectorWidget/components/ShoppingCart.js.map +1 -0
- package/esm/HierarchicalTrackSelectorWidget/components/{CloseConnectionDialog.d.ts → dialogs/CloseConnectionDialog.d.ts} +0 -0
- package/esm/HierarchicalTrackSelectorWidget/components/{CloseConnectionDialog.js → dialogs/CloseConnectionDialog.js} +0 -0
- package/esm/HierarchicalTrackSelectorWidget/components/dialogs/CloseConnectionDialog.js.map +1 -0
- package/esm/HierarchicalTrackSelectorWidget/components/{DeleteConnectionDialog.d.ts → dialogs/DeleteConnectionDialog.d.ts} +0 -0
- package/esm/HierarchicalTrackSelectorWidget/components/{DeleteConnectionDialog.js → dialogs/DeleteConnectionDialog.js} +0 -0
- package/esm/HierarchicalTrackSelectorWidget/components/dialogs/DeleteConnectionDialog.js.map +1 -0
- package/esm/HierarchicalTrackSelectorWidget/components/{ManageConnectionsDialog.d.ts → dialogs/ManageConnectionsDialog.d.ts} +0 -0
- package/esm/HierarchicalTrackSelectorWidget/components/{ManageConnectionsDialog.js → dialogs/ManageConnectionsDialog.js} +0 -0
- package/esm/HierarchicalTrackSelectorWidget/components/dialogs/ManageConnectionsDialog.js.map +1 -0
- package/esm/HierarchicalTrackSelectorWidget/components/{ToggleConnectionsDialog.d.ts → dialogs/ToggleConnectionsDialog.d.ts} +0 -0
- package/esm/HierarchicalTrackSelectorWidget/components/{ToggleConnectionsDialog.js → dialogs/ToggleConnectionsDialog.js} +0 -0
- package/esm/HierarchicalTrackSelectorWidget/components/dialogs/ToggleConnectionsDialog.js.map +1 -0
- package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetFilters.d.ts +13 -0
- package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetFilters.js +70 -0
- package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetFilters.js.map +1 -0
- package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetedDialog.d.ts +8 -0
- package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetedDialog.js +13 -0
- package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetedDialog.js.map +1 -0
- package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetedHeader.d.ts +11 -0
- package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetedHeader.js +42 -0
- package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetedHeader.js.map +1 -0
- package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetedSelector.d.ts +12 -0
- package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetedSelector.js +183 -0
- package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetedSelector.js.map +1 -0
- package/esm/HierarchicalTrackSelectorWidget/components/faceted/util.d.ts +1 -0
- package/esm/HierarchicalTrackSelectorWidget/components/faceted/util.js +6 -0
- package/esm/HierarchicalTrackSelectorWidget/components/faceted/util.js.map +1 -0
- package/esm/HierarchicalTrackSelectorWidget/components/tree/HamburgerMenu.d.ts +7 -0
- package/esm/HierarchicalTrackSelectorWidget/components/tree/HamburgerMenu.js +108 -0
- package/esm/HierarchicalTrackSelectorWidget/components/tree/HamburgerMenu.js.map +1 -0
- package/esm/HierarchicalTrackSelectorWidget/components/{Header.d.ts → tree/HierarchicalHeader.d.ts} +2 -3
- package/esm/HierarchicalTrackSelectorWidget/components/tree/HierarchicalHeader.js +37 -0
- package/esm/HierarchicalTrackSelectorWidget/components/tree/HierarchicalHeader.js.map +1 -0
- package/esm/HierarchicalTrackSelectorWidget/components/tree/HierarchicalTree.d.ts +8 -0
- package/esm/HierarchicalTrackSelectorWidget/components/tree/HierarchicalTree.js +63 -0
- package/esm/HierarchicalTrackSelectorWidget/components/tree/HierarchicalTree.js.map +1 -0
- package/esm/HierarchicalTrackSelectorWidget/components/tree/TrackCategory.d.ts +7 -0
- package/esm/HierarchicalTrackSelectorWidget/components/tree/TrackCategory.js +60 -0
- package/esm/HierarchicalTrackSelectorWidget/components/tree/TrackCategory.js.map +1 -0
- package/esm/HierarchicalTrackSelectorWidget/components/tree/TrackLabel.d.ts +11 -0
- package/esm/HierarchicalTrackSelectorWidget/components/tree/TrackLabel.js +57 -0
- package/esm/HierarchicalTrackSelectorWidget/components/tree/TrackLabel.js.map +1 -0
- package/esm/HierarchicalTrackSelectorWidget/components/tree/TrackListNode.d.ts +10 -0
- package/esm/HierarchicalTrackSelectorWidget/components/tree/TrackListNode.js +48 -0
- package/esm/HierarchicalTrackSelectorWidget/components/tree/TrackListNode.js.map +1 -0
- package/esm/HierarchicalTrackSelectorWidget/components/util.d.ts +17 -1
- package/esm/HierarchicalTrackSelectorWidget/components/util.js +13 -0
- package/esm/HierarchicalTrackSelectorWidget/components/util.js.map +1 -1
- package/esm/HierarchicalTrackSelectorWidget/index.d.ts +3 -0
- package/esm/HierarchicalTrackSelectorWidget/index.js +13 -0
- package/esm/HierarchicalTrackSelectorWidget/index.js.map +1 -1
- package/esm/HierarchicalTrackSelectorWidget/model.d.ts +4 -1
- package/esm/HierarchicalTrackSelectorWidget/model.js +10 -7
- package/esm/HierarchicalTrackSelectorWidget/model.js.map +1 -1
- package/esm/PluginStoreWidget/index.d.ts +3 -2
- package/esm/PluginStoreWidget/index.js +15 -2
- package/esm/PluginStoreWidget/index.js.map +1 -1
- package/esm/index.js +10 -51
- package/esm/index.js.map +1 -1
- package/esm/ucsc-trackhub/index.d.ts +3 -2
- package/esm/ucsc-trackhub/index.js +13 -2
- package/esm/ucsc-trackhub/index.js.map +1 -1
- package/package.json +3 -2
- package/src/AddConnectionWidget/components/{AddConnectionWidget.test.js → AddConnectionWidget.test.tsx} +17 -8
- package/src/AddConnectionWidget/components/__snapshots__/{AddConnectionWidget.test.js.snap → AddConnectionWidget.test.tsx.snap} +0 -0
- package/src/AddConnectionWidget/index.ts +17 -2
- package/src/AddTrackWidget/components/DefaultAddTrackWorkflow.tsx +1 -4
- package/src/AddTrackWidget/components/TrackSourceSelect.tsx +3 -5
- package/src/AddTrackWidget/{index.test.jsx → index.test.tsx} +34 -37
- package/src/AddTrackWidget/index.ts +17 -2
- package/src/HierarchicalTrackSelectorWidget/components/HierarchicalFab.tsx +94 -0
- package/src/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.test.tsx +124 -128
- package/src/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.tsx +47 -228
- package/src/HierarchicalTrackSelectorWidget/components/ShoppingCart.tsx +73 -0
- package/src/HierarchicalTrackSelectorWidget/components/__snapshots__/HierarchicalTrackSelector.test.tsx.snap +25 -43
- package/src/HierarchicalTrackSelectorWidget/components/{CloseConnectionDialog.tsx → dialogs/CloseConnectionDialog.tsx} +0 -0
- package/src/HierarchicalTrackSelectorWidget/components/{DeleteConnectionDialog.tsx → dialogs/DeleteConnectionDialog.tsx} +0 -0
- package/src/HierarchicalTrackSelectorWidget/components/{ManageConnectionsDialog.tsx → dialogs/ManageConnectionsDialog.tsx} +0 -0
- package/src/HierarchicalTrackSelectorWidget/components/{ToggleConnectionsDialog.tsx → dialogs/ToggleConnectionsDialog.tsx} +0 -0
- package/src/HierarchicalTrackSelectorWidget/components/faceted/FacetFilters.tsx +138 -0
- package/src/HierarchicalTrackSelectorWidget/components/faceted/FacetedDialog.tsx +29 -0
- package/src/HierarchicalTrackSelectorWidget/components/faceted/FacetedHeader.tsx +86 -0
- package/src/HierarchicalTrackSelectorWidget/components/faceted/FacetedSelector.tsx +339 -0
- package/src/HierarchicalTrackSelectorWidget/components/faceted/util.ts +5 -0
- package/src/HierarchicalTrackSelectorWidget/components/tree/HamburgerMenu.tsx +197 -0
- package/src/HierarchicalTrackSelectorWidget/components/tree/HierarchicalHeader.tsx +88 -0
- package/src/HierarchicalTrackSelectorWidget/components/tree/HierarchicalTree.tsx +101 -0
- package/src/HierarchicalTrackSelectorWidget/components/tree/TrackCategory.tsx +92 -0
- package/src/HierarchicalTrackSelectorWidget/components/tree/TrackLabel.tsx +107 -0
- package/src/HierarchicalTrackSelectorWidget/components/tree/TrackListNode.tsx +84 -0
- package/src/HierarchicalTrackSelectorWidget/components/util.ts +31 -1
- package/src/HierarchicalTrackSelectorWidget/index.ts +17 -0
- package/src/HierarchicalTrackSelectorWidget/model.ts +12 -9
- package/src/PluginStoreWidget/components/PluginStoreWidget.test.tsx +132 -0
- package/src/PluginStoreWidget/components/__snapshots__/{PluginStoreWidget.test.js.snap → PluginStoreWidget.test.tsx.snap} +2 -2
- package/src/PluginStoreWidget/index.ts +17 -2
- package/src/PluginStoreWidget/{model.test.js → model.test.tsx} +0 -0
- package/src/__snapshots__/index.test.ts.snap +9 -0
- package/src/index.test.ts +54 -0
- package/src/index.ts +10 -83
- package/src/ucsc-trackhub/index.ts +19 -2
- package/dist/HierarchicalTrackSelectorWidget/components/CloseConnectionDialog.js.map +0 -1
- package/dist/HierarchicalTrackSelectorWidget/components/DeleteConnectionDialog.js.map +0 -1
- package/dist/HierarchicalTrackSelectorWidget/components/Header.js +0 -174
- package/dist/HierarchicalTrackSelectorWidget/components/Header.js.map +0 -1
- package/dist/HierarchicalTrackSelectorWidget/components/ManageConnectionsDialog.js.map +0 -1
- package/dist/HierarchicalTrackSelectorWidget/components/Node.d.ts +0 -29
- package/dist/HierarchicalTrackSelectorWidget/components/Node.js +0 -173
- package/dist/HierarchicalTrackSelectorWidget/components/Node.js.map +0 -1
- package/dist/HierarchicalTrackSelectorWidget/components/ToggleConnectionsDialog.js.map +0 -1
- package/esm/HierarchicalTrackSelectorWidget/components/CloseConnectionDialog.js.map +0 -1
- package/esm/HierarchicalTrackSelectorWidget/components/DeleteConnectionDialog.js.map +0 -1
- package/esm/HierarchicalTrackSelectorWidget/components/Header.js +0 -146
- package/esm/HierarchicalTrackSelectorWidget/components/Header.js.map +0 -1
- package/esm/HierarchicalTrackSelectorWidget/components/ManageConnectionsDialog.js.map +0 -1
- package/esm/HierarchicalTrackSelectorWidget/components/Node.d.ts +0 -29
- package/esm/HierarchicalTrackSelectorWidget/components/Node.js +0 -144
- package/esm/HierarchicalTrackSelectorWidget/components/Node.js.map +0 -1
- package/esm/HierarchicalTrackSelectorWidget/components/ToggleConnectionsDialog.js.map +0 -1
- package/src/HierarchicalTrackSelectorWidget/components/Header.tsx +0 -286
- package/src/HierarchicalTrackSelectorWidget/components/Node.tsx +0 -282
- package/src/PluginStoreWidget/components/PluginStoreWidget.test.js +0 -123
- package/src/__snapshots__/index.test.js.snap +0 -9
- package/src/index.test.js +0 -61
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
2
2
|
|
|
3
|
-
exports[`
|
|
3
|
+
exports[`renders nothing with no assembly 1`] = `
|
|
4
4
|
<button
|
|
5
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
6
|
tabindex="0"
|
|
@@ -23,7 +23,7 @@ exports[`HierarchicalTrackSelector widget renders nothing with no assembly 1`] =
|
|
|
23
23
|
</button>
|
|
24
24
|
`;
|
|
25
25
|
|
|
26
|
-
exports[`
|
|
26
|
+
exports[`renders with a couple of categorized tracks 1`] = `
|
|
27
27
|
<div
|
|
28
28
|
data-testid="hierarchical_track_selector"
|
|
29
29
|
>
|
|
@@ -50,25 +50,6 @@ exports[`HierarchicalTrackSelector widget renders with a couple of categorized t
|
|
|
50
50
|
class="MuiTouchRipple-root css-8je8zh-MuiTouchRipple-root"
|
|
51
51
|
/>
|
|
52
52
|
</button>
|
|
53
|
-
<button
|
|
54
|
-
class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-1m9x3cr-MuiButtonBase-root-MuiIconButton-root-menuIcon"
|
|
55
|
-
tabindex="0"
|
|
56
|
-
type="button"
|
|
57
|
-
>
|
|
58
|
-
<svg
|
|
59
|
-
aria-hidden="true"
|
|
60
|
-
class="MuiSvgIcon-root MuiSvgIcon-fontSizeMedium css-havevq-MuiSvgIcon-root"
|
|
61
|
-
focusable="false"
|
|
62
|
-
viewBox="0 0 24 24"
|
|
63
|
-
>
|
|
64
|
-
<path
|
|
65
|
-
d="M20 5V4c0-.55-.45-1-1-1h-2c-.55 0-1 .45-1 1v1h-1v4c0 .55.45 1 1 1h1v7c0 1.1-.9 2-2 2s-2-.9-2-2V7c0-2.21-1.79-4-4-4S5 4.79 5 7v7H4c-.55 0-1 .45-1 1v4h1v1c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-1h1v-4c0-.55-.45-1-1-1H7V7c0-1.1.9-2 2-2s2 .9 2 2v10c0 2.21 1.79 4 4 4s4-1.79 4-4v-7h1c.55 0 1-.45 1-1V5h-1z"
|
|
66
|
-
/>
|
|
67
|
-
</svg>
|
|
68
|
-
<span
|
|
69
|
-
class="MuiTouchRipple-root css-8je8zh-MuiTouchRipple-root"
|
|
70
|
-
/>
|
|
71
|
-
</button>
|
|
72
53
|
<div
|
|
73
54
|
class="MuiFormControl-root MuiFormControl-marginDense MuiFormControl-fullWidth MuiTextField-root css-rlnh8o-MuiFormControl-root-MuiTextField-root-searchBox"
|
|
74
55
|
>
|
|
@@ -81,7 +62,7 @@ exports[`HierarchicalTrackSelector widget renders with a couple of categorized t
|
|
|
81
62
|
Filter tracks
|
|
82
63
|
</label>
|
|
83
64
|
<div
|
|
84
|
-
class="MuiInputBase-root MuiInput-root MuiInput-underline MuiInputBase-colorPrimary MuiInputBase-fullWidth MuiInputBase-formControl MuiInputBase-sizeSmall MuiInputBase-adornedEnd css-
|
|
65
|
+
class="MuiInputBase-root MuiInput-root MuiInput-underline MuiInputBase-colorPrimary MuiInputBase-fullWidth MuiInputBase-formControl MuiInputBase-sizeSmall MuiInputBase-adornedEnd css-1blad95-MuiInputBase-root-MuiInput-root"
|
|
85
66
|
>
|
|
86
67
|
<input
|
|
87
68
|
aria-invalid="false"
|
|
@@ -116,11 +97,21 @@ exports[`HierarchicalTrackSelector widget renders with a couple of categorized t
|
|
|
116
97
|
</div>
|
|
117
98
|
</div>
|
|
118
99
|
</div>
|
|
100
|
+
<button
|
|
101
|
+
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"
|
|
102
|
+
tabindex="0"
|
|
103
|
+
type="button"
|
|
104
|
+
>
|
|
105
|
+
Open faceted selector
|
|
106
|
+
<span
|
|
107
|
+
class="MuiTouchRipple-root css-8je8zh-MuiTouchRipple-root"
|
|
108
|
+
/>
|
|
109
|
+
</button>
|
|
119
110
|
</div>
|
|
120
111
|
</div>
|
|
121
112
|
`;
|
|
122
113
|
|
|
123
|
-
exports[`
|
|
114
|
+
exports[`renders with a couple of uncategorized tracks 1`] = `
|
|
124
115
|
<div
|
|
125
116
|
data-testid="hierarchical_track_selector"
|
|
126
117
|
>
|
|
@@ -147,25 +138,6 @@ exports[`HierarchicalTrackSelector widget renders with a couple of uncategorized
|
|
|
147
138
|
class="MuiTouchRipple-root css-8je8zh-MuiTouchRipple-root"
|
|
148
139
|
/>
|
|
149
140
|
</button>
|
|
150
|
-
<button
|
|
151
|
-
class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-1m9x3cr-MuiButtonBase-root-MuiIconButton-root-menuIcon"
|
|
152
|
-
tabindex="0"
|
|
153
|
-
type="button"
|
|
154
|
-
>
|
|
155
|
-
<svg
|
|
156
|
-
aria-hidden="true"
|
|
157
|
-
class="MuiSvgIcon-root MuiSvgIcon-fontSizeMedium css-havevq-MuiSvgIcon-root"
|
|
158
|
-
focusable="false"
|
|
159
|
-
viewBox="0 0 24 24"
|
|
160
|
-
>
|
|
161
|
-
<path
|
|
162
|
-
d="M20 5V4c0-.55-.45-1-1-1h-2c-.55 0-1 .45-1 1v1h-1v4c0 .55.45 1 1 1h1v7c0 1.1-.9 2-2 2s-2-.9-2-2V7c0-2.21-1.79-4-4-4S5 4.79 5 7v7H4c-.55 0-1 .45-1 1v4h1v1c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-1h1v-4c0-.55-.45-1-1-1H7V7c0-1.1.9-2 2-2s2 .9 2 2v10c0 2.21 1.79 4 4 4s4-1.79 4-4v-7h1c.55 0 1-.45 1-1V5h-1z"
|
|
163
|
-
/>
|
|
164
|
-
</svg>
|
|
165
|
-
<span
|
|
166
|
-
class="MuiTouchRipple-root css-8je8zh-MuiTouchRipple-root"
|
|
167
|
-
/>
|
|
168
|
-
</button>
|
|
169
141
|
<div
|
|
170
142
|
class="MuiFormControl-root MuiFormControl-marginDense MuiFormControl-fullWidth MuiTextField-root css-rlnh8o-MuiFormControl-root-MuiTextField-root-searchBox"
|
|
171
143
|
>
|
|
@@ -178,7 +150,7 @@ exports[`HierarchicalTrackSelector widget renders with a couple of uncategorized
|
|
|
178
150
|
Filter tracks
|
|
179
151
|
</label>
|
|
180
152
|
<div
|
|
181
|
-
class="MuiInputBase-root MuiInput-root MuiInput-underline MuiInputBase-colorPrimary MuiInputBase-fullWidth MuiInputBase-formControl MuiInputBase-sizeSmall MuiInputBase-adornedEnd css-
|
|
153
|
+
class="MuiInputBase-root MuiInput-root MuiInput-underline MuiInputBase-colorPrimary MuiInputBase-fullWidth MuiInputBase-formControl MuiInputBase-sizeSmall MuiInputBase-adornedEnd css-1blad95-MuiInputBase-root-MuiInput-root"
|
|
182
154
|
>
|
|
183
155
|
<input
|
|
184
156
|
aria-invalid="false"
|
|
@@ -213,6 +185,16 @@ exports[`HierarchicalTrackSelector widget renders with a couple of uncategorized
|
|
|
213
185
|
</div>
|
|
214
186
|
</div>
|
|
215
187
|
</div>
|
|
188
|
+
<button
|
|
189
|
+
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"
|
|
190
|
+
tabindex="0"
|
|
191
|
+
type="button"
|
|
192
|
+
>
|
|
193
|
+
Open faceted selector
|
|
194
|
+
<span
|
|
195
|
+
class="MuiTouchRipple-root css-8je8zh-MuiTouchRipple-root"
|
|
196
|
+
/>
|
|
197
|
+
</button>
|
|
216
198
|
</div>
|
|
217
199
|
</div>
|
|
218
200
|
`;
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
import React, { useState } from 'react'
|
|
2
|
+
import {
|
|
3
|
+
Typography,
|
|
4
|
+
FormControl,
|
|
5
|
+
Select,
|
|
6
|
+
IconButton,
|
|
7
|
+
Tooltip,
|
|
8
|
+
} from '@mui/material'
|
|
9
|
+
import { makeStyles } from 'tss-react/mui'
|
|
10
|
+
|
|
11
|
+
// icon
|
|
12
|
+
import ClearIcon from '@mui/icons-material/Clear'
|
|
13
|
+
import MinimizeIcon from '@mui/icons-material/Minimize'
|
|
14
|
+
import AddIcon from '@mui/icons-material/Add'
|
|
15
|
+
|
|
16
|
+
const useStyles = makeStyles()(theme => ({
|
|
17
|
+
facet: {
|
|
18
|
+
margin: 0,
|
|
19
|
+
marginLeft: theme.spacing(2),
|
|
20
|
+
},
|
|
21
|
+
select: {
|
|
22
|
+
marginBottom: theme.spacing(2),
|
|
23
|
+
},
|
|
24
|
+
}))
|
|
25
|
+
|
|
26
|
+
function FacetFilter({
|
|
27
|
+
column,
|
|
28
|
+
vals,
|
|
29
|
+
width,
|
|
30
|
+
dispatch,
|
|
31
|
+
filters,
|
|
32
|
+
}: {
|
|
33
|
+
column: { field: string }
|
|
34
|
+
vals: [string, number][]
|
|
35
|
+
width: number
|
|
36
|
+
dispatch: (arg: { key: string; val: string[] }) => void
|
|
37
|
+
filters: Record<string, string[]>
|
|
38
|
+
}) {
|
|
39
|
+
const { classes } = useStyles()
|
|
40
|
+
const [visible, setVisible] = useState(true)
|
|
41
|
+
return (
|
|
42
|
+
<FormControl key={column.field} className={classes.facet} style={{ width }}>
|
|
43
|
+
<div style={{ display: 'flex' }}>
|
|
44
|
+
<Typography>{column.field}</Typography>
|
|
45
|
+
<Tooltip title="Clear selection on this facet filter">
|
|
46
|
+
<IconButton
|
|
47
|
+
onClick={() => {
|
|
48
|
+
dispatch({ key: column.field, val: [] })
|
|
49
|
+
}}
|
|
50
|
+
size="small"
|
|
51
|
+
>
|
|
52
|
+
<ClearIcon />
|
|
53
|
+
</IconButton>
|
|
54
|
+
</Tooltip>
|
|
55
|
+
<Tooltip title="Minimize/expand this facet filter">
|
|
56
|
+
<IconButton onClick={() => setVisible(!visible)} size="small">
|
|
57
|
+
{visible ? <MinimizeIcon /> : <AddIcon />}
|
|
58
|
+
</IconButton>
|
|
59
|
+
</Tooltip>
|
|
60
|
+
</div>
|
|
61
|
+
{visible ? (
|
|
62
|
+
<Select
|
|
63
|
+
multiple
|
|
64
|
+
native
|
|
65
|
+
className={classes.select}
|
|
66
|
+
value={filters[column.field]}
|
|
67
|
+
onChange={event => {
|
|
68
|
+
// @ts-ignore
|
|
69
|
+
const { options } = event.target
|
|
70
|
+
const val: string[] = []
|
|
71
|
+
const len = options.length
|
|
72
|
+
for (let i = 0; i < len; i++) {
|
|
73
|
+
if (options[i].selected) {
|
|
74
|
+
val.push(options[i].value)
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
dispatch({ key: column.field, val })
|
|
78
|
+
}}
|
|
79
|
+
>
|
|
80
|
+
{vals
|
|
81
|
+
.sort((a, b) => a[0].localeCompare(b[0]))
|
|
82
|
+
.map(([name, count]) => (
|
|
83
|
+
<option key={name} value={name}>
|
|
84
|
+
{name} ({count})
|
|
85
|
+
</option>
|
|
86
|
+
))}
|
|
87
|
+
</Select>
|
|
88
|
+
) : null}
|
|
89
|
+
</FormControl>
|
|
90
|
+
)
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
export default function FacetFilters({
|
|
94
|
+
rows,
|
|
95
|
+
columns,
|
|
96
|
+
dispatch,
|
|
97
|
+
filters,
|
|
98
|
+
width,
|
|
99
|
+
}: {
|
|
100
|
+
rows: Record<string, unknown>[]
|
|
101
|
+
filters: Record<string, string[]>
|
|
102
|
+
columns: { field: string }[]
|
|
103
|
+
dispatch: (arg: { key: string; val: string[] }) => void
|
|
104
|
+
width: number
|
|
105
|
+
}) {
|
|
106
|
+
const facets = columns.slice(1)
|
|
107
|
+
const uniqs = facets.map(() => new Map<string, number>())
|
|
108
|
+
rows.forEach(row => {
|
|
109
|
+
facets.forEach((column, index) => {
|
|
110
|
+
const elt = uniqs[index]
|
|
111
|
+
const key = `${row[column.field] || ''}`
|
|
112
|
+
const val = elt.get(key)
|
|
113
|
+
// we don't allow filtering on empty yet
|
|
114
|
+
if (key) {
|
|
115
|
+
if (val !== undefined) {
|
|
116
|
+
elt.set(key, val + 1)
|
|
117
|
+
} else {
|
|
118
|
+
elt.set(key, 1)
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
})
|
|
122
|
+
})
|
|
123
|
+
|
|
124
|
+
return (
|
|
125
|
+
<div>
|
|
126
|
+
{facets.map((column, index) => (
|
|
127
|
+
<FacetFilter
|
|
128
|
+
key={column.field}
|
|
129
|
+
vals={Array.from(uniqs[index])}
|
|
130
|
+
column={column}
|
|
131
|
+
width={width}
|
|
132
|
+
dispatch={dispatch}
|
|
133
|
+
filters={filters}
|
|
134
|
+
/>
|
|
135
|
+
))}
|
|
136
|
+
</div>
|
|
137
|
+
)
|
|
138
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
import { DialogContent } from '@mui/material'
|
|
3
|
+
import { Dialog } from '@jbrowse/core/ui'
|
|
4
|
+
import { observer } from 'mobx-react'
|
|
5
|
+
|
|
6
|
+
// locals
|
|
7
|
+
import { HierarchicalTrackSelectorModel } from '../../model'
|
|
8
|
+
import FacetedSelector from './FacetedSelector'
|
|
9
|
+
|
|
10
|
+
function FacetedDlg(props: {
|
|
11
|
+
handleClose: () => void
|
|
12
|
+
model: HierarchicalTrackSelectorModel
|
|
13
|
+
}) {
|
|
14
|
+
const { handleClose } = props
|
|
15
|
+
return (
|
|
16
|
+
<Dialog
|
|
17
|
+
open
|
|
18
|
+
onClose={handleClose}
|
|
19
|
+
maxWidth="xl"
|
|
20
|
+
title="Faceted track selector"
|
|
21
|
+
>
|
|
22
|
+
<DialogContent>
|
|
23
|
+
<FacetedSelector {...props} />
|
|
24
|
+
</DialogContent>
|
|
25
|
+
</Dialog>
|
|
26
|
+
)
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export default observer(FacetedDlg)
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import React, { useState } from 'react'
|
|
2
|
+
import { Grid, IconButton, InputAdornment, TextField } from '@mui/material'
|
|
3
|
+
import { Menu } from '@jbrowse/core/ui'
|
|
4
|
+
|
|
5
|
+
// icons
|
|
6
|
+
import ClearIcon from '@mui/icons-material/Clear'
|
|
7
|
+
import MoreVert from '@mui/icons-material/MoreVert'
|
|
8
|
+
|
|
9
|
+
// locals
|
|
10
|
+
import ShoppingCart from '../ShoppingCart'
|
|
11
|
+
import { HierarchicalTrackSelectorModel } from '../../model'
|
|
12
|
+
|
|
13
|
+
export default function FacetedHeader({
|
|
14
|
+
setFilterText,
|
|
15
|
+
setUseShoppingCart,
|
|
16
|
+
setHideSparse,
|
|
17
|
+
hideSparse,
|
|
18
|
+
useShoppingCart,
|
|
19
|
+
filterText,
|
|
20
|
+
model,
|
|
21
|
+
}: {
|
|
22
|
+
setFilterText: (arg: string) => void
|
|
23
|
+
setUseShoppingCart: (arg: boolean) => void
|
|
24
|
+
setHideSparse: (arg: boolean) => void
|
|
25
|
+
filterText: string
|
|
26
|
+
useShoppingCart: boolean
|
|
27
|
+
hideSparse: boolean
|
|
28
|
+
model: HierarchicalTrackSelectorModel
|
|
29
|
+
}) {
|
|
30
|
+
const [anchorEl, setAnchorEl] = useState<HTMLElement | null>(null)
|
|
31
|
+
|
|
32
|
+
return (
|
|
33
|
+
<>
|
|
34
|
+
<Grid container spacing={4} alignItems="center">
|
|
35
|
+
<Grid item>
|
|
36
|
+
<TextField
|
|
37
|
+
label="Search..."
|
|
38
|
+
value={filterText}
|
|
39
|
+
onChange={event => setFilterText(event.target.value)}
|
|
40
|
+
InputProps={{
|
|
41
|
+
endAdornment: (
|
|
42
|
+
<InputAdornment position="end">
|
|
43
|
+
<IconButton onClick={() => setFilterText('')}>
|
|
44
|
+
<ClearIcon />
|
|
45
|
+
</IconButton>
|
|
46
|
+
</InputAdornment>
|
|
47
|
+
),
|
|
48
|
+
}}
|
|
49
|
+
/>
|
|
50
|
+
</Grid>
|
|
51
|
+
|
|
52
|
+
<Grid item>
|
|
53
|
+
<IconButton onClick={event => setAnchorEl(event.currentTarget)}>
|
|
54
|
+
<MoreVert />
|
|
55
|
+
</IconButton>
|
|
56
|
+
</Grid>
|
|
57
|
+
<Grid item>
|
|
58
|
+
<ShoppingCart model={model} />
|
|
59
|
+
</Grid>
|
|
60
|
+
</Grid>
|
|
61
|
+
<Menu
|
|
62
|
+
anchorEl={anchorEl}
|
|
63
|
+
open={!!anchorEl}
|
|
64
|
+
onClose={() => setAnchorEl(null)}
|
|
65
|
+
onMenuItemClick={(_event, callback) => {
|
|
66
|
+
callback()
|
|
67
|
+
setAnchorEl(null)
|
|
68
|
+
}}
|
|
69
|
+
menuItems={[
|
|
70
|
+
{
|
|
71
|
+
label: 'Add tracks to selection instead of turning them on/off',
|
|
72
|
+
onClick: () => setUseShoppingCart(!useShoppingCart),
|
|
73
|
+
type: 'checkbox',
|
|
74
|
+
checked: useShoppingCart,
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
label: 'Hide sparse metadata columns',
|
|
78
|
+
onClick: () => setHideSparse(!hideSparse),
|
|
79
|
+
checked: hideSparse,
|
|
80
|
+
type: 'checkbox',
|
|
81
|
+
},
|
|
82
|
+
]}
|
|
83
|
+
/>
|
|
84
|
+
</>
|
|
85
|
+
)
|
|
86
|
+
}
|