@jbrowse/core 1.7.9 → 2.0.0
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/BaseFeatureWidget/BaseFeatureDetail.d.ts +14 -7
- package/BaseFeatureWidget/BaseFeatureDetail.js +203 -125
- package/BaseFeatureWidget/SequenceFeatureDetails.js +20 -15
- package/BaseFeatureWidget/index.d.ts +23 -2
- package/BaseFeatureWidget/index.js +100 -3
- package/BaseFeatureWidget/index.test.js +48 -30
- package/PluginManager.d.ts +58 -86
- package/ReExports/Attributes.d.ts +2 -0
- package/ReExports/Attributes.js +12 -0
- package/ReExports/BaseCard.d.ts +2 -0
- package/ReExports/BaseCard.js +12 -0
- package/ReExports/DataGrid.d.ts +2 -0
- package/ReExports/DataGrid.js +13 -0
- package/ReExports/FeatureDetails.d.ts +2 -0
- package/ReExports/FeatureDetails.js +12 -0
- package/ReExports/list.js +1 -1
- package/ReExports/material-ui-colors.d.ts +1 -19
- package/ReExports/material-ui-colors.js +11 -152
- package/ReExports/modules.d.ts +59 -91
- package/ReExports/modules.js +683 -127
- package/TextSearch/TextSearchManager.d.ts +3 -1
- package/assemblyManager/assembly.d.ts +6 -7
- package/assemblyManager/assembly.js +27 -16
- package/assemblyManager/assemblyManager.d.ts +82 -24
- package/assemblyManager/assemblyManager.js +32 -36
- package/configuration/util.d.ts +1 -1
- package/package.json +15 -15
- package/pluggableElementTypes/models/BaseDisplayModel.d.ts +10 -10
- package/pluggableElementTypes/models/BaseTrackModel.d.ts +1 -1
- package/pluggableElementTypes/models/BaseTrackModel.js +24 -25
- package/pluggableElementTypes/models/baseTrackConfig.js +20 -13
- package/pluggableElementTypes/renderers/ServerSideRenderedContent.js +2 -2
- package/pluggableElementTypes/renderers/ServerSideRendererType.d.ts +2 -2
- package/pluggableElementTypes/renderers/ServerSideRendererType.js +1 -1
- package/rpc/BaseRpcDriver.js +1 -1
- package/tsconfig.build.tsbuildinfo +1 -1
- package/ui/AboutDialog.d.ts +1 -1
- package/ui/AboutDialog.js +38 -16
- package/ui/App.js +18 -37
- package/ui/AssemblySelector.d.ts +1 -1
- package/ui/AssemblySelector.js +10 -5
- package/ui/CascadingMenu.d.ts +9 -0
- package/ui/CascadingMenu.js +207 -0
- package/ui/Drawer.js +8 -5
- package/ui/DrawerWidget.js +39 -45
- package/ui/DropDownMenu.d.ts +0 -8
- package/ui/DropDownMenu.js +9 -15
- package/ui/EditableTypography.d.ts +1 -1
- package/ui/EditableTypography.js +42 -48
- package/ui/ErrorMessage.js +13 -23
- package/ui/FactoryResetDialog.js +6 -6
- package/ui/FatalErrorDialog.js +5 -5
- package/ui/FileSelector/FileSelector.js +19 -19
- package/ui/FileSelector/LocalFileChooser.js +12 -8
- package/ui/FileSelector/UrlChooser.js +2 -2
- package/ui/Icons.d.ts +1 -1
- package/ui/Icons.js +1 -1
- package/ui/Menu.d.ts +11 -1
- package/ui/Menu.js +32 -38
- package/ui/PrerenderedCanvas.js +10 -1
- package/ui/ResizeHandle.js +8 -6
- package/ui/ReturnToImportFormDialog.js +14 -10
- package/ui/SanitizedHTML.js +15 -21
- package/ui/Snackbar.js +11 -9
- package/ui/Tooltip.d.ts +3 -1
- package/ui/Tooltip.js +5 -3
- package/ui/ViewContainer.js +38 -25
- package/ui/index.d.ts +1 -0
- package/ui/index.js +9 -0
- package/ui/theme.d.ts +279 -131
- package/ui/theme.js +174 -154
- package/ui/theme.test.js +56 -75
- package/util/Base1DViewModel.d.ts +1 -8
- package/util/Base1DViewModel.js +11 -13
- package/util/color/index.js +6 -6
- package/util/index.d.ts +4 -8
- package/util/index.js +29 -19
- package/util/jexl.js +42 -43
- package/util/layouts/GranularRectLayout.js +1 -3
- package/util/layouts/PrecomputedLayout.js +1 -3
- package/util/offscreenCanvasPonyfill.js +10 -12
- package/util/tracks.js +4 -2
- package/util/types/index.d.ts +14 -4
- package/util/types/index.js +6 -0
- package/util/types/mst.d.ts +3 -3
- package/util/types/mst.js +11 -7
package/ui/theme.js
CHANGED
|
@@ -12,11 +12,9 @@ exports.jbrowseDefaultPalette = exports.jbrowseBaseTheme = void 0;
|
|
|
12
12
|
|
|
13
13
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
14
14
|
|
|
15
|
-
var _colors = require("@material
|
|
15
|
+
var _colors = require("@mui/material/colors");
|
|
16
16
|
|
|
17
|
-
var _styles = require("@material
|
|
18
|
-
|
|
19
|
-
var _createPalette = require("@material-ui/core/styles/createPalette");
|
|
17
|
+
var _styles = require("@mui/material/styles");
|
|
20
18
|
|
|
21
19
|
var _deepmerge = _interopRequireDefault(require("deepmerge"));
|
|
22
20
|
|
|
@@ -38,18 +36,30 @@ var jbrowseDefaultPalette = {
|
|
|
38
36
|
main: grape
|
|
39
37
|
},
|
|
40
38
|
tertiary: refTheme.palette.augmentColor({
|
|
41
|
-
|
|
39
|
+
color: {
|
|
40
|
+
main: forest
|
|
41
|
+
}
|
|
42
42
|
}),
|
|
43
43
|
quaternary: refTheme.palette.augmentColor({
|
|
44
|
-
|
|
44
|
+
color: {
|
|
45
|
+
main: mandarin
|
|
46
|
+
}
|
|
45
47
|
}),
|
|
46
48
|
stopCodon: '#e22',
|
|
47
49
|
startCodon: '#3e3',
|
|
48
50
|
bases: {
|
|
49
|
-
A: refTheme.palette.augmentColor(
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
51
|
+
A: refTheme.palette.augmentColor({
|
|
52
|
+
color: _colors.green
|
|
53
|
+
}),
|
|
54
|
+
C: refTheme.palette.augmentColor({
|
|
55
|
+
color: _colors.blue
|
|
56
|
+
}),
|
|
57
|
+
G: refTheme.palette.augmentColor({
|
|
58
|
+
color: _colors.amber
|
|
59
|
+
}),
|
|
60
|
+
T: refTheme.palette.augmentColor({
|
|
61
|
+
color: _colors.red
|
|
62
|
+
})
|
|
53
63
|
}
|
|
54
64
|
};
|
|
55
65
|
exports.jbrowseDefaultPalette = jbrowseDefaultPalette;
|
|
@@ -58,57 +68,97 @@ function
|
|
|
58
68
|
/* palette: PaletteOptions = {} */
|
|
59
69
|
createJBrowseDefaultProps() {
|
|
60
70
|
return {
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
71
|
+
components: {
|
|
72
|
+
MuiButton: {
|
|
73
|
+
defaultProps: {
|
|
74
|
+
size: 'small'
|
|
75
|
+
}
|
|
76
|
+
},
|
|
77
|
+
MuiAccordion: {
|
|
78
|
+
defaultProps: {
|
|
79
|
+
disableGutters: true,
|
|
80
|
+
TransitionProps: {
|
|
81
|
+
timeout: 150
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
},
|
|
85
|
+
MuiFilledInput: {
|
|
86
|
+
defaultProps: {
|
|
87
|
+
margin: 'dense'
|
|
88
|
+
}
|
|
89
|
+
},
|
|
90
|
+
MuiFormControl: {
|
|
91
|
+
defaultProps: {
|
|
92
|
+
margin: 'dense',
|
|
93
|
+
size: 'small'
|
|
94
|
+
}
|
|
95
|
+
},
|
|
96
|
+
MuiFormHelperText: {
|
|
97
|
+
defaultProps: {
|
|
98
|
+
margin: 'dense'
|
|
99
|
+
}
|
|
100
|
+
},
|
|
101
|
+
MuiIconButton: {
|
|
102
|
+
defaultProps: {
|
|
103
|
+
size: 'small'
|
|
104
|
+
}
|
|
105
|
+
},
|
|
106
|
+
MuiInputBase: {
|
|
107
|
+
defaultProps: {
|
|
108
|
+
margin: 'dense'
|
|
109
|
+
}
|
|
110
|
+
},
|
|
111
|
+
MuiAutocomplete: {
|
|
112
|
+
defaultProps: {
|
|
113
|
+
size: 'small'
|
|
114
|
+
}
|
|
115
|
+
},
|
|
116
|
+
MuiInputLabel: {
|
|
117
|
+
defaultProps: {
|
|
118
|
+
margin: 'dense'
|
|
119
|
+
}
|
|
120
|
+
},
|
|
121
|
+
MuiToolbar: {
|
|
122
|
+
defaultProps: {
|
|
123
|
+
variant: 'dense'
|
|
124
|
+
}
|
|
125
|
+
},
|
|
126
|
+
MuiListItem: {
|
|
127
|
+
defaultProps: {
|
|
128
|
+
dense: true
|
|
129
|
+
}
|
|
130
|
+
},
|
|
131
|
+
MuiOutlinedInput: {
|
|
132
|
+
defaultProps: {
|
|
133
|
+
margin: 'dense'
|
|
134
|
+
}
|
|
135
|
+
},
|
|
136
|
+
MuiFab: {
|
|
137
|
+
defaultProps: {
|
|
138
|
+
size: 'small'
|
|
139
|
+
}
|
|
140
|
+
},
|
|
141
|
+
MuiTable: {
|
|
142
|
+
defaultProps: {
|
|
143
|
+
size: 'small'
|
|
144
|
+
}
|
|
145
|
+
},
|
|
146
|
+
MuiMenuList: {
|
|
147
|
+
defaultProps: {
|
|
148
|
+
dense: true
|
|
149
|
+
}
|
|
150
|
+
},
|
|
151
|
+
MuiMenuItem: {
|
|
152
|
+
defaultProps: {
|
|
153
|
+
dense: true
|
|
154
|
+
}
|
|
155
|
+
},
|
|
156
|
+
MuiTextField: {
|
|
157
|
+
defaultProps: {
|
|
158
|
+
margin: 'dense',
|
|
159
|
+
variant: 'standard'
|
|
160
|
+
}
|
|
161
|
+
}
|
|
112
162
|
}
|
|
113
163
|
};
|
|
114
164
|
}
|
|
@@ -117,117 +167,87 @@ function createJBrowseDefaultOverrides() {
|
|
|
117
167
|
var palette = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
118
168
|
var generatedPalette = (0, _deepmerge.default)(jbrowseDefaultPalette, palette);
|
|
119
169
|
return {
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
170
|
+
components: {
|
|
171
|
+
MuiIconButton: {
|
|
172
|
+
styleOverrides: {
|
|
173
|
+
colorSecondary: {
|
|
174
|
+
color: generatedPalette.tertiary.main
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
},
|
|
178
|
+
MuiButton: {
|
|
179
|
+
styleOverrides: {
|
|
180
|
+
textSecondary: {
|
|
181
|
+
color: generatedPalette.tertiary.main
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
},
|
|
185
|
+
MuiFab: {
|
|
186
|
+
styleOverrides: {
|
|
187
|
+
secondary: {
|
|
188
|
+
backgroundColor: generatedPalette.quaternary.main
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
},
|
|
192
|
+
MuiLink: {
|
|
193
|
+
styleOverrides: {
|
|
194
|
+
root: {
|
|
195
|
+
color: generatedPalette.tertiary.main
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
},
|
|
199
|
+
MuiAccordionSummary: {
|
|
200
|
+
styleOverrides: {
|
|
201
|
+
root: {
|
|
202
|
+
backgroundColor: generatedPalette.tertiary.main
|
|
203
|
+
},
|
|
204
|
+
content: {
|
|
205
|
+
color: generatedPalette.tertiary.contrastText
|
|
206
|
+
}
|
|
146
207
|
}
|
|
147
|
-
}
|
|
148
|
-
},
|
|
149
|
-
MuiAccordionSummary: {
|
|
150
|
-
root: {
|
|
151
|
-
// !important needed to combat the MuiButton being applied to
|
|
152
|
-
// accordions in mui4.12.2 having a background:'transparent' that
|
|
153
|
-
// otherwise overrides this other
|
|
154
|
-
backgroundColor: generatedPalette.tertiary.main + ' !important',
|
|
155
|
-
// width:100% added in 4.12.2 also
|
|
156
|
-
width: '100%',
|
|
157
|
-
'&$expanded': {
|
|
158
|
-
// overrides the subclass e.g. .MuiAccordionSummary-root-311.MuiAccordionSummary-expanded-312
|
|
159
|
-
minHeight: 0,
|
|
160
|
-
color: generatedPalette.tertiary.contrastText,
|
|
161
|
-
backgroundColor: generatedPalette.tertiary.main
|
|
162
|
-
},
|
|
163
|
-
minHeight: 0
|
|
164
|
-
},
|
|
165
|
-
content: {
|
|
166
|
-
'&$expanded': {
|
|
167
|
-
margin: '8px 8px'
|
|
168
|
-
},
|
|
169
|
-
margin: '8px 8px',
|
|
170
|
-
color: generatedPalette.tertiary.contrastText
|
|
171
|
-
}
|
|
172
|
-
},
|
|
173
|
-
// makes menus more compact
|
|
174
|
-
MuiMenuItem: {
|
|
175
|
-
root: {
|
|
176
|
-
paddingTop: 3,
|
|
177
|
-
paddingBottom: 3
|
|
178
|
-
}
|
|
179
|
-
},
|
|
180
|
-
// the below two are linked to make menus more compact
|
|
181
|
-
MuiListItemIcon: {
|
|
182
|
-
root: {
|
|
183
|
-
minWidth: 32
|
|
184
|
-
}
|
|
185
|
-
},
|
|
186
|
-
MuiListItemText: {
|
|
187
|
-
inset: {
|
|
188
|
-
paddingLeft: 32
|
|
189
208
|
}
|
|
190
209
|
}
|
|
191
210
|
};
|
|
192
211
|
}
|
|
193
212
|
|
|
194
|
-
var jbrowseBaseTheme = {
|
|
213
|
+
var jbrowseBaseTheme = _objectSpread({
|
|
195
214
|
palette: jbrowseDefaultPalette,
|
|
196
215
|
typography: {
|
|
197
216
|
fontSize: 12
|
|
198
217
|
},
|
|
199
|
-
spacing: 4
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
218
|
+
spacing: 4
|
|
219
|
+
}, (0, _deepmerge.default)(createJBrowseDefaultProps(), createJBrowseDefaultOverrides())); // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
220
|
+
|
|
221
|
+
|
|
203
222
|
exports.jbrowseBaseTheme = jbrowseBaseTheme;
|
|
204
223
|
|
|
205
224
|
function createJBrowseTheme(theme) {
|
|
206
|
-
var _theme$palette,
|
|
225
|
+
var _theme, _theme$palette, _theme2, _theme2$palette;
|
|
207
226
|
|
|
208
|
-
if (
|
|
209
|
-
|
|
210
|
-
}
|
|
227
|
+
if ((_theme = theme) !== null && _theme !== void 0 && (_theme$palette = _theme.palette) !== null && _theme$palette !== void 0 && _theme$palette.tertiary) {
|
|
228
|
+
var _theme$palette$tertia;
|
|
211
229
|
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
230
|
+
theme = (0, _deepmerge.default)(theme, {
|
|
231
|
+
palette: {
|
|
232
|
+
tertiary: refTheme.palette.augmentColor((_theme$palette$tertia = theme.palette.tertiary) !== null && _theme$palette$tertia !== void 0 && _theme$palette$tertia.color ? theme.palette.tertiary : {
|
|
233
|
+
color: theme.palette.tertiary
|
|
234
|
+
})
|
|
235
|
+
}
|
|
217
236
|
});
|
|
218
237
|
}
|
|
219
238
|
|
|
220
|
-
if ((
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
239
|
+
if ((_theme2 = theme) !== null && _theme2 !== void 0 && (_theme2$palette = _theme2.palette) !== null && _theme2$palette !== void 0 && _theme2$palette.quaternary) {
|
|
240
|
+
var _theme$palette$quater;
|
|
241
|
+
|
|
242
|
+
theme = (0, _deepmerge.default)(theme, {
|
|
243
|
+
palette: {
|
|
244
|
+
quaternary: refTheme.palette.augmentColor((_theme$palette$quater = theme.palette.quaternary) !== null && _theme$palette$quater !== void 0 && _theme$palette$quater.color ? theme.palette.quaternary : {
|
|
245
|
+
color: theme.palette.quaternary
|
|
246
|
+
})
|
|
247
|
+
}
|
|
225
248
|
});
|
|
226
|
-
}
|
|
249
|
+
} // @ts-ignore
|
|
250
|
+
|
|
227
251
|
|
|
228
|
-
|
|
229
|
-
props: (0, _deepmerge.default)(createJBrowseDefaultProps(), theme.props || {}),
|
|
230
|
-
overrides: (0, _deepmerge.default)(createJBrowseDefaultOverrides(theme.palette), theme.overrides || {})
|
|
231
|
-
});
|
|
232
|
-
return (0, _styles.createTheme)((0, _deepmerge.default)(jbrowseBaseTheme, theme));
|
|
252
|
+
return (0, _styles.createTheme)((0, _deepmerge.default)(jbrowseBaseTheme, theme || {}));
|
|
233
253
|
}
|
package/ui/theme.test.js
CHANGED
|
@@ -4,11 +4,17 @@ var _theme = require("./theme");
|
|
|
4
4
|
|
|
5
5
|
describe('theme utils', function () {
|
|
6
6
|
it('can create a default theme', function () {
|
|
7
|
-
var theme = (0, _theme.createJBrowseTheme)();
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
7
|
+
var theme = (0, _theme.createJBrowseTheme)(); // @ts-ignore
|
|
8
|
+
|
|
9
|
+
var _theme$palette = theme.palette,
|
|
10
|
+
primary = _theme$palette.primary,
|
|
11
|
+
secondary = _theme$palette.secondary,
|
|
12
|
+
tertiary = _theme$palette.tertiary,
|
|
13
|
+
quaternary = _theme$palette.quaternary;
|
|
14
|
+
expect(primary.main).toEqual('#0D233F');
|
|
15
|
+
expect(secondary.main).toEqual('#721E63');
|
|
16
|
+
expect(tertiary.main).toEqual('#135560');
|
|
17
|
+
expect(quaternary.main).toEqual('#FFB11D');
|
|
12
18
|
});
|
|
13
19
|
it('allows overriding primary and secondary colors', function () {
|
|
14
20
|
var theme = (0, _theme.createJBrowseTheme)({
|
|
@@ -28,84 +34,59 @@ describe('theme utils', function () {
|
|
|
28
34
|
var theme = (0, _theme.createJBrowseTheme)({
|
|
29
35
|
palette: {
|
|
30
36
|
tertiary: {
|
|
31
|
-
|
|
37
|
+
color: {
|
|
38
|
+
500: '#888'
|
|
39
|
+
}
|
|
32
40
|
},
|
|
33
41
|
quaternary: {
|
|
34
|
-
|
|
42
|
+
color: {
|
|
43
|
+
main: 'hsl(0,0,54)'
|
|
44
|
+
}
|
|
35
45
|
}
|
|
36
46
|
}
|
|
37
|
-
});
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
47
|
+
}); // @ts-ignore
|
|
48
|
+
|
|
49
|
+
var _theme$palette2 = theme.palette,
|
|
50
|
+
tertiary = _theme$palette2.tertiary,
|
|
51
|
+
quaternary = _theme$palette2.quaternary;
|
|
52
|
+
expect(tertiary.main).toEqual('#888');
|
|
53
|
+
expect(tertiary.light).toBeTruthy();
|
|
54
|
+
expect(quaternary.main).toEqual('hsl(0,0,54)');
|
|
55
|
+
expect(quaternary.dark).toBeTruthy();
|
|
42
56
|
});
|
|
43
57
|
it('allows customizing spacing', function () {
|
|
44
58
|
var defaultTheme = (0, _theme.createJBrowseTheme)();
|
|
45
|
-
expect(defaultTheme.spacing(1)).toBe(
|
|
59
|
+
expect(defaultTheme.spacing(1)).toBe('4px');
|
|
46
60
|
var biggerSpacingTheme = (0, _theme.createJBrowseTheme)({
|
|
47
61
|
spacing: 16
|
|
48
62
|
});
|
|
49
|
-
expect(biggerSpacingTheme.spacing(1)).toBe(
|
|
50
|
-
});
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
}
|
|
79
|
-
});
|
|
80
|
-
expect((_theme$overrides2 = theme.overrides) === null || _theme$overrides2 === void 0 ? void 0 : _theme$overrides2.MuiButton).toEqual(muiButtonStyle);
|
|
81
|
-
expect(Object.keys(theme.overrides || {}).length).toBe(9);
|
|
82
|
-
});
|
|
83
|
-
it('allows adding a custom prop', function () {
|
|
84
|
-
var _theme$props;
|
|
85
|
-
|
|
86
|
-
var muiPaperProps = {
|
|
87
|
-
variant: 'outlined'
|
|
88
|
-
};
|
|
89
|
-
var theme = (0, _theme.createJBrowseTheme)({
|
|
90
|
-
props: {
|
|
91
|
-
MuiPaper: muiPaperProps
|
|
92
|
-
}
|
|
93
|
-
});
|
|
94
|
-
expect((_theme$props = theme.props) === null || _theme$props === void 0 ? void 0 : _theme$props.MuiPaper).toEqual(muiPaperProps);
|
|
95
|
-
expect(Object.keys(theme.props || {}).length).toBe(18);
|
|
96
|
-
});
|
|
97
|
-
it('allows modifying a prop override', function () {
|
|
98
|
-
var _theme$props2;
|
|
99
|
-
|
|
100
|
-
var muiButtonProps = {
|
|
101
|
-
size: 'medium'
|
|
102
|
-
};
|
|
103
|
-
var theme = (0, _theme.createJBrowseTheme)({
|
|
104
|
-
props: {
|
|
105
|
-
MuiButton: muiButtonProps
|
|
106
|
-
}
|
|
107
|
-
});
|
|
108
|
-
expect((_theme$props2 = theme.props) === null || _theme$props2 === void 0 ? void 0 : _theme$props2.MuiButton).toEqual(muiButtonProps);
|
|
109
|
-
expect(Object.keys(theme.props || {}).length).toBe(17);
|
|
110
|
-
});
|
|
63
|
+
expect(biggerSpacingTheme.spacing(1)).toBe('16px');
|
|
64
|
+
}); // it('allows adding a custom override', () => {
|
|
65
|
+
// const muiPaperStyle = { root: { backgroundColor: 'green' } }
|
|
66
|
+
// const theme = createJBrowseTheme({
|
|
67
|
+
// overrides: { MuiPaper: muiPaperStyle },
|
|
68
|
+
// })
|
|
69
|
+
// expect(theme.overrides?.MuiPaper).toEqual(muiPaperStyle)
|
|
70
|
+
// expect(Object.keys(theme.overrides || {}).length).toBe(10)
|
|
71
|
+
// })
|
|
72
|
+
// it('allows modifying a default override', () => {
|
|
73
|
+
// const muiButtonStyle = { textSecondary: { color: 'orange' } }
|
|
74
|
+
// const theme = createJBrowseTheme({
|
|
75
|
+
// overrides: { MuiButton: muiButtonStyle },
|
|
76
|
+
// })
|
|
77
|
+
// expect(theme.overrides?.MuiButton).toEqual(muiButtonStyle)
|
|
78
|
+
// expect(Object.keys(theme.overrides || {}).length).toBe(9)
|
|
79
|
+
// })
|
|
80
|
+
// it('allows adding a custom prop', () => {
|
|
81
|
+
// const muiPaperProps = { variant: 'outlined' as const }
|
|
82
|
+
// const theme = createJBrowseTheme({ props: { MuiPaper: muiPaperProps } })
|
|
83
|
+
// expect(theme.props?.MuiPaper).toEqual(muiPaperProps)
|
|
84
|
+
// expect(Object.keys(theme.props || {}).length).toBe(18)
|
|
85
|
+
// })
|
|
86
|
+
// it('allows modifying a prop override', () => {
|
|
87
|
+
// const muiButtonProps = { size: 'medium' as const }
|
|
88
|
+
// const theme = createJBrowseTheme({ props: { MuiButton: muiButtonProps } })
|
|
89
|
+
// expect(theme.props?.MuiButton).toEqual(muiButtonProps)
|
|
90
|
+
// expect(Object.keys(theme.props || {}).length).toBe(17)
|
|
91
|
+
// })
|
|
111
92
|
});
|
|
@@ -62,13 +62,6 @@ declare const Base1DView: import("mobx-state-tree").IModelType<{
|
|
|
62
62
|
readonly dynamicBlocks: import("./blockTypes").BlockSet;
|
|
63
63
|
readonly staticBlocks: import("./blockTypes").BlockSet;
|
|
64
64
|
readonly currBp: number;
|
|
65
|
-
/**
|
|
66
|
-
* calculates the Px at which coord is found.
|
|
67
|
-
*
|
|
68
|
-
* @param refName - string, refName of region
|
|
69
|
-
* @param coord - number, bp to be translated to Px
|
|
70
|
-
* @param regionNumber - number, index of displayedRegion in displayedRegions array
|
|
71
|
-
*/
|
|
72
65
|
bpToPx({ refName, coord, regionNumber, }: {
|
|
73
66
|
refName: string;
|
|
74
67
|
coord: number;
|
|
@@ -90,7 +83,7 @@ declare const Base1DView: import("mobx-state-tree").IModelType<{
|
|
|
90
83
|
zoomIn(): void;
|
|
91
84
|
zoomTo(newBpPerPx: number, offset?: number): void;
|
|
92
85
|
scrollTo(offsetPx: number): number;
|
|
93
|
-
centerAt(
|
|
86
|
+
centerAt(coord: number, refName: string, regionNumber: number): void;
|
|
94
87
|
scroll(distance: number): number;
|
|
95
88
|
}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
|
|
96
89
|
export declare type Base1DViewStateModel = typeof Base1DView;
|
package/util/Base1DViewModel.js
CHANGED
|
@@ -93,7 +93,8 @@ var Base1DView = _mobxStateTree.types.model('Base1DView', {
|
|
|
93
93
|
if (bp < 0) {
|
|
94
94
|
var region = self.displayedRegions[0];
|
|
95
95
|
var offset = bp;
|
|
96
|
-
|
|
96
|
+
var snap = (0, _mobxStateTree.getSnapshot)(region);
|
|
97
|
+
return _objectSpread(_objectSpread({}, snap), {}, {
|
|
97
98
|
oob: true,
|
|
98
99
|
coord: region.reversed ? Math.floor(region.end - offset) + 1 : Math.floor(region.start + offset) + 1,
|
|
99
100
|
offset: offset,
|
|
@@ -111,7 +112,9 @@ var Base1DView = _mobxStateTree.types.model('Base1DView', {
|
|
|
111
112
|
var _offset = bp - bpSoFar;
|
|
112
113
|
|
|
113
114
|
if (len + bpSoFar > bp && bpSoFar <= bp) {
|
|
114
|
-
|
|
115
|
+
var _snap = (0, _mobxStateTree.getSnapshot)(_region);
|
|
116
|
+
|
|
117
|
+
return _objectSpread(_objectSpread({}, _snap), {}, {
|
|
115
118
|
oob: false,
|
|
116
119
|
offset: _offset,
|
|
117
120
|
coord: _region.reversed ? Math.floor(_region.end - _offset) + 1 : Math.floor(_region.start + _offset) + 1,
|
|
@@ -135,7 +138,9 @@ var Base1DView = _mobxStateTree.types.model('Base1DView', {
|
|
|
135
138
|
|
|
136
139
|
var _offset2 = bp - bpSoFar + _len;
|
|
137
140
|
|
|
138
|
-
|
|
141
|
+
var _snap2 = (0, _mobxStateTree.getSnapshot)(_region2);
|
|
142
|
+
|
|
143
|
+
return _objectSpread(_objectSpread({}, _snap2), {}, {
|
|
139
144
|
oob: true,
|
|
140
145
|
offset: _offset2,
|
|
141
146
|
coord: _region2.reversed ? Math.floor(_region2.end - _offset2) + 1 : Math.floor(_region2.start + _offset2) + 1,
|
|
@@ -173,13 +178,6 @@ var Base1DView = _mobxStateTree.types.model('Base1DView', {
|
|
|
173
178
|
}, 0);
|
|
174
179
|
},
|
|
175
180
|
|
|
176
|
-
/**
|
|
177
|
-
* calculates the Px at which coord is found.
|
|
178
|
-
*
|
|
179
|
-
* @param refName - string, refName of region
|
|
180
|
-
* @param coord - number, bp to be translated to Px
|
|
181
|
-
* @param regionNumber - number, index of displayedRegion in displayedRegions array
|
|
182
|
-
*/
|
|
183
181
|
bpToPx: function bpToPx(_ref) {
|
|
184
182
|
var _viewBpToPx;
|
|
185
183
|
|
|
@@ -305,11 +303,11 @@ var Base1DView = _mobxStateTree.types.model('Base1DView', {
|
|
|
305
303
|
self.offsetPx = newOffsetPx;
|
|
306
304
|
return newOffsetPx;
|
|
307
305
|
},
|
|
308
|
-
centerAt: function centerAt(
|
|
306
|
+
centerAt: function centerAt(coord, refName, regionNumber) {
|
|
309
307
|
var centerPx = self.bpToPx({
|
|
310
308
|
refName: refName,
|
|
311
|
-
coord:
|
|
312
|
-
regionNumber:
|
|
309
|
+
coord: coord,
|
|
310
|
+
regionNumber: regionNumber
|
|
313
311
|
});
|
|
314
312
|
|
|
315
313
|
if (centerPx) {
|
package/util/color/index.js
CHANGED
|
@@ -19,7 +19,7 @@ Object.defineProperty(exports, "namedColorToHex", {
|
|
|
19
19
|
}
|
|
20
20
|
});
|
|
21
21
|
|
|
22
|
-
var
|
|
22
|
+
var _styles = require("@mui/material/styles");
|
|
23
23
|
|
|
24
24
|
var _cssColorsLevel = require("./cssColorsLevel4");
|
|
25
25
|
|
|
@@ -51,7 +51,7 @@ function contrastingTextColor(color) {
|
|
|
51
51
|
|
|
52
52
|
function getLuminance(color) {
|
|
53
53
|
var convertedColor = (0, _cssColorsLevel.namedColorToHex)(color);
|
|
54
|
-
return (0,
|
|
54
|
+
return (0, _styles.getLuminance)(convertedColor || color);
|
|
55
55
|
}
|
|
56
56
|
/**
|
|
57
57
|
* Darken or lighten a color, depending on its luminance.
|
|
@@ -68,7 +68,7 @@ function getLuminance(color) {
|
|
|
68
68
|
function emphasize(color) {
|
|
69
69
|
var coefficient = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0.15;
|
|
70
70
|
var convertedColor = (0, _cssColorsLevel.namedColorToHex)(color);
|
|
71
|
-
return (0,
|
|
71
|
+
return (0, _styles.emphasize)(convertedColor || color, coefficient);
|
|
72
72
|
}
|
|
73
73
|
|
|
74
74
|
function makeContrasting(foreground) {
|
|
@@ -77,14 +77,14 @@ function makeContrasting(foreground) {
|
|
|
77
77
|
var convertedForeground = (0, _cssColorsLevel.namedColorToHex)(foreground) || foreground;
|
|
78
78
|
var convertedBackground = (0, _cssColorsLevel.namedColorToHex)(background) || background;
|
|
79
79
|
var backgroundLuminance = getLuminance(convertedBackground);
|
|
80
|
-
var contrastRatio = (0,
|
|
80
|
+
var contrastRatio = (0, _styles.getContrastRatio)(convertedForeground, convertedBackground);
|
|
81
81
|
var originalColor = convertedForeground;
|
|
82
82
|
var coefficient = 0.05;
|
|
83
83
|
|
|
84
84
|
while (contrastRatio < minContrastRatio) {
|
|
85
|
-
convertedForeground = backgroundLuminance > 0.5 ? (0,
|
|
85
|
+
convertedForeground = backgroundLuminance > 0.5 ? (0, _styles.darken)(originalColor, coefficient) : (0, _styles.lighten)(originalColor, coefficient);
|
|
86
86
|
coefficient += 0.05;
|
|
87
|
-
contrastRatio = (0,
|
|
87
|
+
contrastRatio = (0, _styles.getContrastRatio)(convertedForeground, convertedBackground);
|
|
88
88
|
}
|
|
89
89
|
|
|
90
90
|
return convertedForeground;
|