@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.
Files changed (86) hide show
  1. package/BaseFeatureWidget/BaseFeatureDetail.d.ts +14 -7
  2. package/BaseFeatureWidget/BaseFeatureDetail.js +203 -125
  3. package/BaseFeatureWidget/SequenceFeatureDetails.js +20 -15
  4. package/BaseFeatureWidget/index.d.ts +23 -2
  5. package/BaseFeatureWidget/index.js +100 -3
  6. package/BaseFeatureWidget/index.test.js +48 -30
  7. package/PluginManager.d.ts +58 -86
  8. package/ReExports/Attributes.d.ts +2 -0
  9. package/ReExports/Attributes.js +12 -0
  10. package/ReExports/BaseCard.d.ts +2 -0
  11. package/ReExports/BaseCard.js +12 -0
  12. package/ReExports/DataGrid.d.ts +2 -0
  13. package/ReExports/DataGrid.js +13 -0
  14. package/ReExports/FeatureDetails.d.ts +2 -0
  15. package/ReExports/FeatureDetails.js +12 -0
  16. package/ReExports/list.js +1 -1
  17. package/ReExports/material-ui-colors.d.ts +1 -19
  18. package/ReExports/material-ui-colors.js +11 -152
  19. package/ReExports/modules.d.ts +59 -91
  20. package/ReExports/modules.js +683 -127
  21. package/TextSearch/TextSearchManager.d.ts +3 -1
  22. package/assemblyManager/assembly.d.ts +6 -7
  23. package/assemblyManager/assembly.js +27 -16
  24. package/assemblyManager/assemblyManager.d.ts +82 -24
  25. package/assemblyManager/assemblyManager.js +32 -36
  26. package/configuration/util.d.ts +1 -1
  27. package/package.json +15 -15
  28. package/pluggableElementTypes/models/BaseDisplayModel.d.ts +10 -10
  29. package/pluggableElementTypes/models/BaseTrackModel.d.ts +1 -1
  30. package/pluggableElementTypes/models/BaseTrackModel.js +24 -25
  31. package/pluggableElementTypes/models/baseTrackConfig.js +20 -13
  32. package/pluggableElementTypes/renderers/ServerSideRenderedContent.js +2 -2
  33. package/pluggableElementTypes/renderers/ServerSideRendererType.d.ts +2 -2
  34. package/pluggableElementTypes/renderers/ServerSideRendererType.js +1 -1
  35. package/rpc/BaseRpcDriver.js +1 -1
  36. package/tsconfig.build.tsbuildinfo +1 -1
  37. package/ui/AboutDialog.d.ts +1 -1
  38. package/ui/AboutDialog.js +38 -16
  39. package/ui/App.js +18 -37
  40. package/ui/AssemblySelector.d.ts +1 -1
  41. package/ui/AssemblySelector.js +10 -5
  42. package/ui/CascadingMenu.d.ts +9 -0
  43. package/ui/CascadingMenu.js +207 -0
  44. package/ui/Drawer.js +8 -5
  45. package/ui/DrawerWidget.js +39 -45
  46. package/ui/DropDownMenu.d.ts +0 -8
  47. package/ui/DropDownMenu.js +9 -15
  48. package/ui/EditableTypography.d.ts +1 -1
  49. package/ui/EditableTypography.js +42 -48
  50. package/ui/ErrorMessage.js +13 -23
  51. package/ui/FactoryResetDialog.js +6 -6
  52. package/ui/FatalErrorDialog.js +5 -5
  53. package/ui/FileSelector/FileSelector.js +19 -19
  54. package/ui/FileSelector/LocalFileChooser.js +12 -8
  55. package/ui/FileSelector/UrlChooser.js +2 -2
  56. package/ui/Icons.d.ts +1 -1
  57. package/ui/Icons.js +1 -1
  58. package/ui/Menu.d.ts +11 -1
  59. package/ui/Menu.js +32 -38
  60. package/ui/PrerenderedCanvas.js +10 -1
  61. package/ui/ResizeHandle.js +8 -6
  62. package/ui/ReturnToImportFormDialog.js +14 -10
  63. package/ui/SanitizedHTML.js +15 -21
  64. package/ui/Snackbar.js +11 -9
  65. package/ui/Tooltip.d.ts +3 -1
  66. package/ui/Tooltip.js +5 -3
  67. package/ui/ViewContainer.js +38 -25
  68. package/ui/index.d.ts +1 -0
  69. package/ui/index.js +9 -0
  70. package/ui/theme.d.ts +279 -131
  71. package/ui/theme.js +174 -154
  72. package/ui/theme.test.js +56 -75
  73. package/util/Base1DViewModel.d.ts +1 -8
  74. package/util/Base1DViewModel.js +11 -13
  75. package/util/color/index.js +6 -6
  76. package/util/index.d.ts +4 -8
  77. package/util/index.js +29 -19
  78. package/util/jexl.js +42 -43
  79. package/util/layouts/GranularRectLayout.js +1 -3
  80. package/util/layouts/PrecomputedLayout.js +1 -3
  81. package/util/offscreenCanvasPonyfill.js +10 -12
  82. package/util/tracks.js +4 -2
  83. package/util/types/index.d.ts +14 -4
  84. package/util/types/index.js +6 -0
  85. package/util/types/mst.d.ts +3 -3
  86. 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-ui/core/colors");
15
+ var _colors = require("@mui/material/colors");
16
16
 
17
- var _styles = require("@material-ui/core/styles");
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
- main: forest
39
+ color: {
40
+ main: forest
41
+ }
42
42
  }),
43
43
  quaternary: refTheme.palette.augmentColor({
44
- main: mandarin
44
+ color: {
45
+ main: mandarin
46
+ }
45
47
  }),
46
48
  stopCodon: '#e22',
47
49
  startCodon: '#3e3',
48
50
  bases: {
49
- A: refTheme.palette.augmentColor(_colors.green),
50
- C: refTheme.palette.augmentColor(_colors.blue),
51
- G: refTheme.palette.augmentColor(_colors.amber),
52
- T: refTheme.palette.augmentColor(_colors.red)
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
- MuiButton: {
62
- size: 'small'
63
- },
64
- MuiFilledInput: {
65
- margin: 'dense'
66
- },
67
- MuiFormControl: {
68
- margin: 'dense'
69
- },
70
- MuiFormHelperText: {
71
- margin: 'dense'
72
- },
73
- MuiIconButton: {
74
- size: 'small'
75
- },
76
- MuiInputBase: {
77
- margin: 'dense'
78
- },
79
- MuiList: {
80
- dense: true
81
- },
82
- MuiListItem: {
83
- dense: true
84
- },
85
- MuiOutlinedInput: {
86
- margin: 'dense'
87
- },
88
- MuiFab: {
89
- size: 'small'
90
- },
91
- MuiTable: {
92
- size: 'small'
93
- },
94
- MuiTextField: {
95
- margin: 'dense',
96
- size: 'small'
97
- },
98
- MuiToolbar: {
99
- variant: 'dense'
100
- },
101
- MuiSvgIcon: {
102
- fontSize: 'small'
103
- },
104
- MuiToggleButtonGroup: {
105
- size: 'small'
106
- },
107
- MuiCheckbox: {
108
- size: 'small'
109
- },
110
- MuiLink: {
111
- underline: 'always'
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
- MuiIconButton: {
121
- colorSecondary: {
122
- color: generatedPalette.tertiary.main
123
- }
124
- },
125
- MuiButton: {
126
- textSecondary: {
127
- color: generatedPalette.tertiary.main
128
- }
129
- },
130
- MuiFab: {
131
- secondary: {
132
- backgroundColor: generatedPalette.quaternary.main
133
- }
134
- },
135
- MuiLink: {
136
- root: {
137
- color: generatedPalette.tertiary.main
138
- }
139
- },
140
- MuiAccordion: {
141
- root: {
142
- // avoid extra padding around accordion element
143
- margin: 0,
144
- '&$expanded': {
145
- margin: 0
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
- props: createJBrowseDefaultProps(),
201
- overrides: createJBrowseDefaultOverrides()
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, _theme$palette2;
225
+ var _theme, _theme$palette, _theme2, _theme2$palette;
207
226
 
208
- if (!theme) {
209
- return (0, _styles.createTheme)(jbrowseBaseTheme);
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
- if ((_theme$palette = theme.palette) !== null && _theme$palette !== void 0 && _theme$palette.tertiary) {
213
- theme = _objectSpread(_objectSpread({}, theme), {}, {
214
- palette: _objectSpread(_objectSpread({}, theme.palette), {}, {
215
- tertiary: refTheme.palette.augmentColor(theme.palette.tertiary)
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 ((_theme$palette2 = theme.palette) !== null && _theme$palette2 !== void 0 && _theme$palette2.quaternary) {
221
- theme = _objectSpread(_objectSpread({}, theme), {}, {
222
- palette: _objectSpread(_objectSpread({}, theme.palette), {}, {
223
- quaternary: refTheme.palette.augmentColor(theme.palette.quaternary)
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
- theme = _objectSpread(_objectSpread({}, theme), {}, {
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
- expect(theme.palette.primary.main).toEqual('#0D233F');
9
- expect(theme.palette.secondary.main).toEqual('#721E63');
10
- expect(theme.palette.tertiary.main).toEqual('#135560');
11
- expect(theme.palette.quaternary.main).toEqual('#FFB11D');
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
- main: '#888'
37
+ color: {
38
+ 500: '#888'
39
+ }
32
40
  },
33
41
  quaternary: {
34
- main: 'hsl(0,0,54)'
42
+ color: {
43
+ main: 'hsl(0,0,54)'
44
+ }
35
45
  }
36
46
  }
37
- });
38
- expect(theme.palette.tertiary.main).toEqual('#888');
39
- expect(theme.palette.tertiary.light).toBeTruthy();
40
- expect(theme.palette.quaternary.main).toEqual('hsl(0,0,54)');
41
- expect(theme.palette.quaternary.dark).toBeTruthy();
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(4);
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(16);
50
- });
51
- it('allows adding a custom override', function () {
52
- var _theme$overrides;
53
-
54
- var muiPaperStyle = {
55
- root: {
56
- backgroundColor: 'green'
57
- }
58
- };
59
- var theme = (0, _theme.createJBrowseTheme)({
60
- overrides: {
61
- MuiPaper: muiPaperStyle
62
- }
63
- });
64
- expect((_theme$overrides = theme.overrides) === null || _theme$overrides === void 0 ? void 0 : _theme$overrides.MuiPaper).toEqual(muiPaperStyle);
65
- expect(Object.keys(theme.overrides || {}).length).toBe(10);
66
- });
67
- it('allows modifying a default override', function () {
68
- var _theme$overrides2;
69
-
70
- var muiButtonStyle = {
71
- textSecondary: {
72
- color: 'orange'
73
- }
74
- };
75
- var theme = (0, _theme.createJBrowseTheme)({
76
- overrides: {
77
- MuiButton: muiButtonStyle
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(bp: number, refName: string, regionIndex: number): void;
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;
@@ -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
- return _objectSpread(_objectSpread({}, (0, _mobxStateTree.getSnapshot)(region)), {}, {
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
- return _objectSpread(_objectSpread({}, (0, _mobxStateTree.getSnapshot)(_region)), {}, {
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
- return _objectSpread(_objectSpread({}, (0, _mobxStateTree.getSnapshot)(_region2)), {}, {
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(bp, refName, regionIndex) {
306
+ centerAt: function centerAt(coord, refName, regionNumber) {
309
307
  var centerPx = self.bpToPx({
310
308
  refName: refName,
311
- coord: bp,
312
- regionNumber: regionIndex
309
+ coord: coord,
310
+ regionNumber: regionNumber
313
311
  });
314
312
 
315
313
  if (centerPx) {
@@ -19,7 +19,7 @@ Object.defineProperty(exports, "namedColorToHex", {
19
19
  }
20
20
  });
21
21
 
22
- var _colorManipulator = require("@material-ui/core/styles/colorManipulator");
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, _colorManipulator.getLuminance)(convertedColor || color);
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, _colorManipulator.emphasize)(convertedColor || color, coefficient);
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, _colorManipulator.getContrastRatio)(convertedForeground, convertedBackground);
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, _colorManipulator.darken)(originalColor, coefficient) : (0, _colorManipulator.lighten)(originalColor, coefficient);
85
+ convertedForeground = backgroundLuminance > 0.5 ? (0, _styles.darken)(originalColor, coefficient) : (0, _styles.lighten)(originalColor, coefficient);
86
86
  coefficient += 0.05;
87
- contrastRatio = (0, _colorManipulator.getContrastRatio)(convertedForeground, convertedBackground);
87
+ contrastRatio = (0, _styles.getContrastRatio)(convertedForeground, convertedBackground);
88
88
  }
89
89
 
90
90
  return convertedForeground;