@jbrowse/plugin-data-management 2.3.3 → 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.
Files changed (170) hide show
  1. package/dist/AddTrackWidget/components/DefaultAddTrackWorkflow.js +1 -4
  2. package/dist/AddTrackWidget/components/DefaultAddTrackWorkflow.js.map +1 -1
  3. package/dist/AddTrackWidget/components/TrackSourceSelect.js +1 -4
  4. package/dist/AddTrackWidget/components/TrackSourceSelect.js.map +1 -1
  5. package/dist/HierarchicalTrackSelectorWidget/components/HierarchicalFab.d.ts +6 -0
  6. package/dist/HierarchicalTrackSelectorWidget/components/HierarchicalFab.js +71 -0
  7. package/dist/HierarchicalTrackSelectorWidget/components/HierarchicalFab.js.map +1 -0
  8. package/dist/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.js +10 -104
  9. package/dist/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.js.map +1 -1
  10. package/dist/HierarchicalTrackSelectorWidget/components/ShoppingCart.d.ts +6 -0
  11. package/dist/HierarchicalTrackSelectorWidget/components/ShoppingCart.js +70 -0
  12. package/dist/HierarchicalTrackSelectorWidget/components/ShoppingCart.js.map +1 -0
  13. package/dist/HierarchicalTrackSelectorWidget/components/{CloseConnectionDialog.d.ts → dialogs/CloseConnectionDialog.d.ts} +0 -0
  14. package/dist/HierarchicalTrackSelectorWidget/components/{CloseConnectionDialog.js → dialogs/CloseConnectionDialog.js} +0 -0
  15. package/dist/HierarchicalTrackSelectorWidget/components/dialogs/CloseConnectionDialog.js.map +1 -0
  16. package/dist/HierarchicalTrackSelectorWidget/components/{DeleteConnectionDialog.d.ts → dialogs/DeleteConnectionDialog.d.ts} +0 -0
  17. package/dist/HierarchicalTrackSelectorWidget/components/{DeleteConnectionDialog.js → dialogs/DeleteConnectionDialog.js} +0 -0
  18. package/dist/HierarchicalTrackSelectorWidget/components/dialogs/DeleteConnectionDialog.js.map +1 -0
  19. package/dist/HierarchicalTrackSelectorWidget/components/{ManageConnectionsDialog.d.ts → dialogs/ManageConnectionsDialog.d.ts} +0 -0
  20. package/dist/HierarchicalTrackSelectorWidget/components/{ManageConnectionsDialog.js → dialogs/ManageConnectionsDialog.js} +0 -0
  21. package/dist/HierarchicalTrackSelectorWidget/components/dialogs/ManageConnectionsDialog.js.map +1 -0
  22. package/dist/HierarchicalTrackSelectorWidget/components/{ToggleConnectionsDialog.d.ts → dialogs/ToggleConnectionsDialog.d.ts} +0 -0
  23. package/dist/HierarchicalTrackSelectorWidget/components/{ToggleConnectionsDialog.js → dialogs/ToggleConnectionsDialog.js} +0 -0
  24. package/dist/HierarchicalTrackSelectorWidget/components/dialogs/ToggleConnectionsDialog.js.map +1 -0
  25. package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetFilters.d.ts +13 -0
  26. package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetFilters.js +99 -0
  27. package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetFilters.js.map +1 -0
  28. package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetedDialog.d.ts +8 -0
  29. package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetedDialog.js +18 -0
  30. package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetedDialog.js.map +1 -0
  31. package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetedHeader.d.ts +11 -0
  32. package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetedHeader.js +71 -0
  33. package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetedHeader.js.map +1 -0
  34. package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetedSelector.d.ts +12 -0
  35. package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetedSelector.js +211 -0
  36. package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetedSelector.js.map +1 -0
  37. package/dist/HierarchicalTrackSelectorWidget/components/faceted/util.d.ts +1 -0
  38. package/dist/HierarchicalTrackSelectorWidget/components/faceted/util.js +10 -0
  39. package/dist/HierarchicalTrackSelectorWidget/components/faceted/util.js.map +1 -0
  40. package/dist/HierarchicalTrackSelectorWidget/components/tree/HamburgerMenu.d.ts +7 -0
  41. package/dist/HierarchicalTrackSelectorWidget/components/tree/HamburgerMenu.js +136 -0
  42. package/dist/HierarchicalTrackSelectorWidget/components/tree/HamburgerMenu.js.map +1 -0
  43. package/dist/HierarchicalTrackSelectorWidget/components/{Header.d.ts → tree/HierarchicalHeader.d.ts} +2 -3
  44. package/dist/HierarchicalTrackSelectorWidget/components/tree/HierarchicalHeader.js +65 -0
  45. package/dist/HierarchicalTrackSelectorWidget/components/tree/HierarchicalHeader.js.map +1 -0
  46. package/dist/HierarchicalTrackSelectorWidget/components/tree/HierarchicalTree.d.ts +8 -0
  47. package/dist/HierarchicalTrackSelectorWidget/components/tree/HierarchicalTree.js +91 -0
  48. package/dist/HierarchicalTrackSelectorWidget/components/tree/HierarchicalTree.js.map +1 -0
  49. package/dist/HierarchicalTrackSelectorWidget/components/tree/TrackCategory.d.ts +7 -0
  50. package/dist/HierarchicalTrackSelectorWidget/components/tree/TrackCategory.js +89 -0
  51. package/dist/HierarchicalTrackSelectorWidget/components/tree/TrackCategory.js.map +1 -0
  52. package/dist/HierarchicalTrackSelectorWidget/components/tree/TrackLabel.d.ts +11 -0
  53. package/dist/HierarchicalTrackSelectorWidget/components/tree/TrackLabel.js +86 -0
  54. package/dist/HierarchicalTrackSelectorWidget/components/tree/TrackLabel.js.map +1 -0
  55. package/dist/HierarchicalTrackSelectorWidget/components/tree/TrackListNode.d.ts +10 -0
  56. package/dist/HierarchicalTrackSelectorWidget/components/tree/TrackListNode.js +54 -0
  57. package/dist/HierarchicalTrackSelectorWidget/components/tree/TrackListNode.js.map +1 -0
  58. package/dist/HierarchicalTrackSelectorWidget/components/util.d.ts +17 -1
  59. package/dist/HierarchicalTrackSelectorWidget/components/util.js +16 -1
  60. package/dist/HierarchicalTrackSelectorWidget/components/util.js.map +1 -1
  61. package/dist/HierarchicalTrackSelectorWidget/model.d.ts +4 -1
  62. package/dist/HierarchicalTrackSelectorWidget/model.js +12 -8
  63. package/dist/HierarchicalTrackSelectorWidget/model.js.map +1 -1
  64. package/esm/AddTrackWidget/components/DefaultAddTrackWorkflow.js +1 -4
  65. package/esm/AddTrackWidget/components/DefaultAddTrackWorkflow.js.map +1 -1
  66. package/esm/AddTrackWidget/components/TrackSourceSelect.js +1 -4
  67. package/esm/AddTrackWidget/components/TrackSourceSelect.js.map +1 -1
  68. package/esm/HierarchicalTrackSelectorWidget/components/HierarchicalFab.d.ts +6 -0
  69. package/esm/HierarchicalTrackSelectorWidget/components/HierarchicalFab.js +43 -0
  70. package/esm/HierarchicalTrackSelectorWidget/components/HierarchicalFab.js.map +1 -0
  71. package/esm/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.js +9 -103
  72. package/esm/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.js.map +1 -1
  73. package/esm/HierarchicalTrackSelectorWidget/components/ShoppingCart.d.ts +6 -0
  74. package/esm/HierarchicalTrackSelectorWidget/components/ShoppingCart.js +42 -0
  75. package/esm/HierarchicalTrackSelectorWidget/components/ShoppingCart.js.map +1 -0
  76. package/esm/HierarchicalTrackSelectorWidget/components/{CloseConnectionDialog.d.ts → dialogs/CloseConnectionDialog.d.ts} +0 -0
  77. package/esm/HierarchicalTrackSelectorWidget/components/{CloseConnectionDialog.js → dialogs/CloseConnectionDialog.js} +0 -0
  78. package/esm/HierarchicalTrackSelectorWidget/components/dialogs/CloseConnectionDialog.js.map +1 -0
  79. package/esm/HierarchicalTrackSelectorWidget/components/{DeleteConnectionDialog.d.ts → dialogs/DeleteConnectionDialog.d.ts} +0 -0
  80. package/esm/HierarchicalTrackSelectorWidget/components/{DeleteConnectionDialog.js → dialogs/DeleteConnectionDialog.js} +0 -0
  81. package/esm/HierarchicalTrackSelectorWidget/components/dialogs/DeleteConnectionDialog.js.map +1 -0
  82. package/esm/HierarchicalTrackSelectorWidget/components/{ManageConnectionsDialog.d.ts → dialogs/ManageConnectionsDialog.d.ts} +0 -0
  83. package/esm/HierarchicalTrackSelectorWidget/components/{ManageConnectionsDialog.js → dialogs/ManageConnectionsDialog.js} +0 -0
  84. package/esm/HierarchicalTrackSelectorWidget/components/dialogs/ManageConnectionsDialog.js.map +1 -0
  85. package/esm/HierarchicalTrackSelectorWidget/components/{ToggleConnectionsDialog.d.ts → dialogs/ToggleConnectionsDialog.d.ts} +0 -0
  86. package/esm/HierarchicalTrackSelectorWidget/components/{ToggleConnectionsDialog.js → dialogs/ToggleConnectionsDialog.js} +0 -0
  87. package/esm/HierarchicalTrackSelectorWidget/components/dialogs/ToggleConnectionsDialog.js.map +1 -0
  88. package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetFilters.d.ts +13 -0
  89. package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetFilters.js +70 -0
  90. package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetFilters.js.map +1 -0
  91. package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetedDialog.d.ts +8 -0
  92. package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetedDialog.js +13 -0
  93. package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetedDialog.js.map +1 -0
  94. package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetedHeader.d.ts +11 -0
  95. package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetedHeader.js +42 -0
  96. package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetedHeader.js.map +1 -0
  97. package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetedSelector.d.ts +12 -0
  98. package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetedSelector.js +183 -0
  99. package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetedSelector.js.map +1 -0
  100. package/esm/HierarchicalTrackSelectorWidget/components/faceted/util.d.ts +1 -0
  101. package/esm/HierarchicalTrackSelectorWidget/components/faceted/util.js +6 -0
  102. package/esm/HierarchicalTrackSelectorWidget/components/faceted/util.js.map +1 -0
  103. package/esm/HierarchicalTrackSelectorWidget/components/tree/HamburgerMenu.d.ts +7 -0
  104. package/esm/HierarchicalTrackSelectorWidget/components/tree/HamburgerMenu.js +108 -0
  105. package/esm/HierarchicalTrackSelectorWidget/components/tree/HamburgerMenu.js.map +1 -0
  106. package/esm/HierarchicalTrackSelectorWidget/components/{Header.d.ts → tree/HierarchicalHeader.d.ts} +2 -3
  107. package/esm/HierarchicalTrackSelectorWidget/components/tree/HierarchicalHeader.js +37 -0
  108. package/esm/HierarchicalTrackSelectorWidget/components/tree/HierarchicalHeader.js.map +1 -0
  109. package/esm/HierarchicalTrackSelectorWidget/components/tree/HierarchicalTree.d.ts +8 -0
  110. package/esm/HierarchicalTrackSelectorWidget/components/tree/HierarchicalTree.js +63 -0
  111. package/esm/HierarchicalTrackSelectorWidget/components/tree/HierarchicalTree.js.map +1 -0
  112. package/esm/HierarchicalTrackSelectorWidget/components/tree/TrackCategory.d.ts +7 -0
  113. package/esm/HierarchicalTrackSelectorWidget/components/tree/TrackCategory.js +60 -0
  114. package/esm/HierarchicalTrackSelectorWidget/components/tree/TrackCategory.js.map +1 -0
  115. package/esm/HierarchicalTrackSelectorWidget/components/tree/TrackLabel.d.ts +11 -0
  116. package/esm/HierarchicalTrackSelectorWidget/components/tree/TrackLabel.js +57 -0
  117. package/esm/HierarchicalTrackSelectorWidget/components/tree/TrackLabel.js.map +1 -0
  118. package/esm/HierarchicalTrackSelectorWidget/components/tree/TrackListNode.d.ts +10 -0
  119. package/esm/HierarchicalTrackSelectorWidget/components/tree/TrackListNode.js +48 -0
  120. package/esm/HierarchicalTrackSelectorWidget/components/tree/TrackListNode.js.map +1 -0
  121. package/esm/HierarchicalTrackSelectorWidget/components/util.d.ts +17 -1
  122. package/esm/HierarchicalTrackSelectorWidget/components/util.js +13 -0
  123. package/esm/HierarchicalTrackSelectorWidget/components/util.js.map +1 -1
  124. package/esm/HierarchicalTrackSelectorWidget/model.d.ts +4 -1
  125. package/esm/HierarchicalTrackSelectorWidget/model.js +10 -7
  126. package/esm/HierarchicalTrackSelectorWidget/model.js.map +1 -1
  127. package/package.json +3 -2
  128. package/src/AddTrackWidget/components/DefaultAddTrackWorkflow.tsx +1 -4
  129. package/src/AddTrackWidget/components/TrackSourceSelect.tsx +3 -5
  130. package/src/HierarchicalTrackSelectorWidget/components/HierarchicalFab.tsx +94 -0
  131. package/src/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.tsx +47 -228
  132. package/src/HierarchicalTrackSelectorWidget/components/ShoppingCart.tsx +73 -0
  133. package/src/HierarchicalTrackSelectorWidget/components/__snapshots__/HierarchicalTrackSelector.test.tsx.snap +20 -38
  134. package/src/HierarchicalTrackSelectorWidget/components/{CloseConnectionDialog.tsx → dialogs/CloseConnectionDialog.tsx} +0 -0
  135. package/src/HierarchicalTrackSelectorWidget/components/{DeleteConnectionDialog.tsx → dialogs/DeleteConnectionDialog.tsx} +0 -0
  136. package/src/HierarchicalTrackSelectorWidget/components/{ManageConnectionsDialog.tsx → dialogs/ManageConnectionsDialog.tsx} +0 -0
  137. package/src/HierarchicalTrackSelectorWidget/components/{ToggleConnectionsDialog.tsx → dialogs/ToggleConnectionsDialog.tsx} +0 -0
  138. package/src/HierarchicalTrackSelectorWidget/components/faceted/FacetFilters.tsx +138 -0
  139. package/src/HierarchicalTrackSelectorWidget/components/faceted/FacetedDialog.tsx +29 -0
  140. package/src/HierarchicalTrackSelectorWidget/components/faceted/FacetedHeader.tsx +86 -0
  141. package/src/HierarchicalTrackSelectorWidget/components/faceted/FacetedSelector.tsx +339 -0
  142. package/src/HierarchicalTrackSelectorWidget/components/faceted/util.ts +5 -0
  143. package/src/HierarchicalTrackSelectorWidget/components/tree/HamburgerMenu.tsx +197 -0
  144. package/src/HierarchicalTrackSelectorWidget/components/tree/HierarchicalHeader.tsx +88 -0
  145. package/src/HierarchicalTrackSelectorWidget/components/tree/HierarchicalTree.tsx +101 -0
  146. package/src/HierarchicalTrackSelectorWidget/components/tree/TrackCategory.tsx +92 -0
  147. package/src/HierarchicalTrackSelectorWidget/components/tree/TrackLabel.tsx +107 -0
  148. package/src/HierarchicalTrackSelectorWidget/components/tree/TrackListNode.tsx +84 -0
  149. package/src/HierarchicalTrackSelectorWidget/components/util.ts +31 -1
  150. package/src/HierarchicalTrackSelectorWidget/model.ts +12 -9
  151. package/dist/HierarchicalTrackSelectorWidget/components/CloseConnectionDialog.js.map +0 -1
  152. package/dist/HierarchicalTrackSelectorWidget/components/DeleteConnectionDialog.js.map +0 -1
  153. package/dist/HierarchicalTrackSelectorWidget/components/Header.js +0 -174
  154. package/dist/HierarchicalTrackSelectorWidget/components/Header.js.map +0 -1
  155. package/dist/HierarchicalTrackSelectorWidget/components/ManageConnectionsDialog.js.map +0 -1
  156. package/dist/HierarchicalTrackSelectorWidget/components/Node.d.ts +0 -29
  157. package/dist/HierarchicalTrackSelectorWidget/components/Node.js +0 -173
  158. package/dist/HierarchicalTrackSelectorWidget/components/Node.js.map +0 -1
  159. package/dist/HierarchicalTrackSelectorWidget/components/ToggleConnectionsDialog.js.map +0 -1
  160. package/esm/HierarchicalTrackSelectorWidget/components/CloseConnectionDialog.js.map +0 -1
  161. package/esm/HierarchicalTrackSelectorWidget/components/DeleteConnectionDialog.js.map +0 -1
  162. package/esm/HierarchicalTrackSelectorWidget/components/Header.js +0 -146
  163. package/esm/HierarchicalTrackSelectorWidget/components/Header.js.map +0 -1
  164. package/esm/HierarchicalTrackSelectorWidget/components/ManageConnectionsDialog.js.map +0 -1
  165. package/esm/HierarchicalTrackSelectorWidget/components/Node.d.ts +0 -29
  166. package/esm/HierarchicalTrackSelectorWidget/components/Node.js +0 -144
  167. package/esm/HierarchicalTrackSelectorWidget/components/Node.js.map +0 -1
  168. package/esm/HierarchicalTrackSelectorWidget/components/ToggleConnectionsDialog.js.map +0 -1
  169. package/src/HierarchicalTrackSelectorWidget/components/Header.tsx +0 -286
  170. package/src/HierarchicalTrackSelectorWidget/components/Node.tsx +0 -282
@@ -1,282 +0,0 @@
1
- import React, { useState } from 'react'
2
- import {
3
- Checkbox,
4
- FormControlLabel,
5
- IconButton,
6
- Tooltip,
7
- Typography,
8
- } from '@mui/material'
9
- import { makeStyles } from 'tss-react/mui'
10
-
11
- // icons
12
- import ArrowDropDownIcon from '@mui/icons-material/ArrowDropDown'
13
- import ArrowRightIcon from '@mui/icons-material/ArrowRight'
14
- import MoreHorizIcon from '@mui/icons-material/MoreHoriz'
15
-
16
- // other
17
- import { HierarchicalTrackSelectorModel, TreeNode } from '../model'
18
- import JBrowseMenu from '@jbrowse/core/ui/Menu'
19
- import { getSession } from '@jbrowse/core/util'
20
-
21
- import {
22
- AnyConfigurationModel,
23
- readConfObject,
24
- } from '@jbrowse/core/configuration'
25
- import { getAllChildren } from './util'
26
-
27
- const useStyles = makeStyles()(theme => ({
28
- compactCheckbox: {
29
- padding: 0,
30
- },
31
-
32
- checkboxLabel: {
33
- marginRight: 0,
34
- '&:hover': {
35
- backgroundColor: '#eee',
36
- },
37
- },
38
-
39
- contrastColor: {
40
- color: theme.palette.secondary.contrastText,
41
- },
42
-
43
- // this accordionBase element's small padding is used to give a margin to
44
- // accordionColor it a "margin" because the virtualized elements can't really
45
- // use margin in a conventional way (it doesn't affect layout)
46
- accordionBase: {
47
- display: 'flex',
48
- },
49
-
50
- accordionCard: {
51
- padding: 3,
52
- cursor: 'pointer',
53
- display: 'flex',
54
- },
55
-
56
- nestingLevelMarker: {
57
- position: 'absolute',
58
- borderLeft: '1.5px solid #555',
59
- },
60
- // accordionColor set's display:flex so that the child accordionText use
61
- // vertically centered text
62
- accordionColor: {
63
- background: theme.palette.tertiary.main,
64
- color: theme.palette.tertiary.contrastText,
65
- width: '100%',
66
- display: 'flex',
67
- paddingLeft: 5,
68
- },
69
-
70
- // margin:auto 0 to center text vertically
71
- accordionText: {
72
- margin: 'auto 0',
73
- },
74
- }))
75
-
76
- export interface InfoArgs {
77
- target: HTMLElement
78
- id: string
79
- conf: AnyConfigurationModel
80
- }
81
-
82
- function treeToMap(tree: TreeNode, map = new Map<string, TreeNode>()) {
83
- if (tree.id && tree.children.length) {
84
- map.set(tree.id, tree)
85
- }
86
- for (let i = 0; i < tree.children.length; i++) {
87
- const node = tree.children[i]
88
- treeToMap(node, map)
89
- }
90
- return map
91
- }
92
-
93
- function isUnsupported(name = '') {
94
- return name.endsWith('(Unsupported)') || name.endsWith('(Unknown)')
95
- }
96
-
97
- // An individual node in the track selector. Note: manually sets cursor:
98
- // pointer improves usability for what can be clicked
99
- export default function Node(props: {
100
- data: {
101
- nestingLevel: number
102
- checked: boolean
103
- conf: AnyConfigurationModel
104
- drawerPosition: unknown
105
- id: string
106
- isLeaf: boolean
107
- name: string
108
- onChange: Function
109
- toggleCollapse: (arg: string) => void
110
- tree: TreeNode
111
- selected: boolean
112
- model: HierarchicalTrackSelectorModel
113
- }
114
- isOpen: boolean
115
- style?: { height: number }
116
- setOpen: (arg: boolean) => void
117
- }) {
118
- const { data, isOpen, style, setOpen } = props
119
- const {
120
- checked,
121
- conf,
122
- drawerPosition,
123
- id,
124
- isLeaf,
125
- model,
126
- name,
127
- nestingLevel,
128
- onChange,
129
- selected,
130
- toggleCollapse,
131
- tree,
132
- } = data
133
-
134
- const { classes } = useStyles()
135
- const width = 10
136
- const [menuEl, setMenuEl] = useState<HTMLElement | null>(null)
137
- const [info, setInfo] = useState<InfoArgs>()
138
- const marginLeft = nestingLevel * width + (isLeaf ? width : 0)
139
- const description = (conf && readConfObject(conf, ['description'])) || ''
140
-
141
- return (
142
- <div style={style} className={!isLeaf ? classes.accordionBase : undefined}>
143
- {new Array(nestingLevel).fill(0).map((_, idx) => (
144
- <div
145
- key={`mark-${idx}`}
146
- style={{ left: idx * width + 4, height: style?.height }}
147
- className={classes.nestingLevelMarker}
148
- />
149
- ))}
150
- <div
151
- className={!isLeaf ? classes.accordionCard : undefined}
152
- onClick={() => {
153
- if (!menuEl) {
154
- toggleCollapse(id)
155
- setOpen(!isOpen)
156
- }
157
- }}
158
- style={{
159
- marginLeft,
160
- whiteSpace: 'nowrap',
161
- width: '100%',
162
- }}
163
- >
164
- <div className={!isLeaf ? classes.accordionColor : undefined}>
165
- {!isLeaf ? (
166
- <div className={classes.accordionText}>
167
- <Typography>
168
- {isOpen ? <ArrowDropDownIcon /> : <ArrowRightIcon />}
169
- {name}
170
- <IconButton
171
- onClick={event => {
172
- setMenuEl(event.currentTarget)
173
- event.stopPropagation()
174
- }}
175
- className={classes.contrastColor}
176
- >
177
- <MoreHorizIcon />
178
- </IconButton>
179
- </Typography>
180
- </div>
181
- ) : (
182
- <>
183
- <Tooltip
184
- title={description + (selected ? ' (in selection)' : '')}
185
- placement={drawerPosition === 'left' ? 'right' : 'left'}
186
- >
187
- <FormControlLabel
188
- className={classes.checkboxLabel}
189
- control={
190
- <Checkbox
191
- className={classes.compactCheckbox}
192
- checked={checked}
193
- onChange={() => onChange(id)}
194
- disabled={isUnsupported(name)}
195
- inputProps={{
196
- // @ts-ignore
197
- 'data-testid': `htsTrackEntry-${id}`,
198
- }}
199
- />
200
- }
201
- label={
202
- <div
203
- style={{
204
- background: selected ? '#cccc' : undefined,
205
- padding: 1,
206
- }}
207
- >
208
- {name}
209
- </div>
210
- }
211
- />
212
- </Tooltip>
213
- <IconButton
214
- onClick={e => setInfo({ target: e.currentTarget, id, conf })}
215
- style={{ padding: 0 }}
216
- color="secondary"
217
- data-testid={`htsTrackEntryMenu-${id}`}
218
- >
219
- <MoreHorizIcon />
220
- </IconButton>
221
- </>
222
- )}
223
- {menuEl ? (
224
- <JBrowseMenu
225
- anchorEl={menuEl}
226
- menuItems={[
227
- {
228
- label: 'Add to selection',
229
- onClick: () =>
230
- model.addToSelection(
231
- getAllChildren(treeToMap(tree).get(id)),
232
- ),
233
- },
234
- {
235
- label: 'Remove from selection',
236
- onClick: () =>
237
- model.removeFromSelection(
238
- getAllChildren(treeToMap(tree).get(id)),
239
- ),
240
- },
241
- ]}
242
- onMenuItemClick={(_event, callback) => {
243
- callback()
244
- setMenuEl(null)
245
- }}
246
- open={Boolean(menuEl)}
247
- onClose={() => setMenuEl(null)}
248
- />
249
- ) : null}
250
-
251
- {info ? (
252
- <JBrowseMenu
253
- anchorEl={info?.target}
254
- menuItems={[
255
- ...(getSession(model).getTrackActionMenuItems?.(info.conf) ||
256
- []),
257
- {
258
- label: 'Add to selection',
259
- onClick: () => model.addToSelection([info.conf]),
260
- },
261
- ...(selected
262
- ? [
263
- {
264
- label: 'Remove from selection',
265
- onClick: () => model.removeFromSelection([info.conf]),
266
- },
267
- ]
268
- : []),
269
- ]}
270
- onMenuItemClick={(_event, callback) => {
271
- callback()
272
- setInfo(undefined)
273
- }}
274
- open={Boolean(info)}
275
- onClose={() => setInfo(undefined)}
276
- />
277
- ) : null}
278
- </div>
279
- </div>
280
- </div>
281
- )
282
- }