@jbrowse/core 3.3.0 → 3.4.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/Attributes.d.ts +2 -1
- package/BaseFeatureWidget/BaseFeatureDetail/FeatureDetails.d.ts +2 -1
- package/BaseFeatureWidget/BaseFeatureDetail/index.js +2 -2
- package/BaseFeatureWidget/stateModelFactory.d.ts +15 -10
- package/BaseFeatureWidget/stateModelFactory.js +7 -12
- package/BaseFeatureWidget/types.d.ts +9 -1
- package/BaseFeatureWidget/util.d.ts +4 -1
- package/BaseFeatureWidget/util.js +11 -0
- package/PluginManager.d.ts +1 -143
- package/PluginManager.js +3 -2
- package/ReExports/BaseFeatureDetails.d.ts +1 -0
- package/ReExports/BaseFeatureDetails.js +45 -0
- package/ReExports/MuiDataGridReExports.d.ts +2 -0
- package/ReExports/MuiDataGridReExports.js +167 -0
- package/ReExports/MuiReExports.d.ts +133 -0
- package/ReExports/MuiReExports.js +150 -0
- package/ReExports/lazify.d.ts +2 -0
- package/ReExports/lazify.js +14 -0
- package/ReExports/list.js +1 -0
- package/ReExports/modules.d.ts +1 -173
- package/ReExports/modules.js +36 -308
- package/TextSearch/TextSearchManager.d.ts +17 -2
- package/TextSearch/TextSearchManager.js +23 -3
- package/data_adapters/CytobandAdapter/CytobandAdapter.d.ts +0 -1
- package/data_adapters/CytobandAdapter/CytobandAdapter.js +1 -1
- package/package.json +7 -6
- package/pluggableElementTypes/models/baseTrackConfig.js +25 -8
- package/pluggableElementTypes/renderers/FeatureRendererType.js +8 -2
- package/tsconfig.build.tsbuildinfo +1 -1
- package/ui/index.d.ts +1 -0
- package/ui/index.js +3 -1
- package/ui/theme.d.ts +2 -2
- package/ui/theme.js +13 -5
- package/util/index.d.ts +1 -0
- package/util/index.js +7 -3
- package/util/offscreenCanvasUtils.d.ts +7 -6
- package/util/offscreenCanvasUtils.js +6 -6
package/ui/index.d.ts
CHANGED
|
@@ -13,5 +13,6 @@ export { default as Menu } from './Menu';
|
|
|
13
13
|
export { default as PrerenderedCanvas } from './PrerenderedCanvas';
|
|
14
14
|
export { default as ResizeHandle } from './ResizeHandle';
|
|
15
15
|
export { default as SanitizedHTML } from './SanitizedHTML';
|
|
16
|
+
export { default as BaseTooltip } from './BaseTooltip';
|
|
16
17
|
export * from './Menu';
|
|
17
18
|
export declare const VIEW_HEADER_HEIGHT = 28;
|
package/ui/index.js
CHANGED
|
@@ -17,7 +17,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
17
17
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
18
18
|
};
|
|
19
19
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
-
exports.VIEW_HEADER_HEIGHT = exports.SanitizedHTML = exports.ResizeHandle = exports.PrerenderedCanvas = exports.Menu = exports.LoadingEllipses = exports.FileSelector = exports.FatalErrorDialog = exports.ErrorMessage = exports.EditableTypography = exports.Dialog = exports.CascadingMenuButton = exports.CascadingMenu = exports.AssemblySelector = exports.Logomark = exports.LogoFull = void 0;
|
|
20
|
+
exports.VIEW_HEADER_HEIGHT = exports.BaseTooltip = exports.SanitizedHTML = exports.ResizeHandle = exports.PrerenderedCanvas = exports.Menu = exports.LoadingEllipses = exports.FileSelector = exports.FatalErrorDialog = exports.ErrorMessage = exports.EditableTypography = exports.Dialog = exports.CascadingMenuButton = exports.CascadingMenu = exports.AssemblySelector = exports.Logomark = exports.LogoFull = void 0;
|
|
21
21
|
__exportStar(require("./theme"), exports);
|
|
22
22
|
var Logo_1 = require("./Logo");
|
|
23
23
|
Object.defineProperty(exports, "LogoFull", { enumerable: true, get: function () { return Logo_1.LogoFull; } });
|
|
@@ -48,5 +48,7 @@ var ResizeHandle_1 = require("./ResizeHandle");
|
|
|
48
48
|
Object.defineProperty(exports, "ResizeHandle", { enumerable: true, get: function () { return __importDefault(ResizeHandle_1).default; } });
|
|
49
49
|
var SanitizedHTML_1 = require("./SanitizedHTML");
|
|
50
50
|
Object.defineProperty(exports, "SanitizedHTML", { enumerable: true, get: function () { return __importDefault(SanitizedHTML_1).default; } });
|
|
51
|
+
var BaseTooltip_1 = require("./BaseTooltip");
|
|
52
|
+
Object.defineProperty(exports, "BaseTooltip", { enumerable: true, get: function () { return __importDefault(BaseTooltip_1).default; } });
|
|
51
53
|
__exportStar(require("./Menu"), exports);
|
|
52
54
|
exports.VIEW_HEADER_HEIGHT = 28;
|
package/ui/theme.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ThemeOptions } from '@mui/material
|
|
1
|
+
import type { ThemeOptions } from '@mui/material';
|
|
2
2
|
import type { PaletteColor } from '@mui/material/styles/createPalette';
|
|
3
3
|
type MaybePaletteColor = PaletteColor | undefined;
|
|
4
4
|
type Frames = [
|
|
@@ -55,5 +55,5 @@ declare module '@mui/material/styles/createPalette' {
|
|
|
55
55
|
export declare const defaultThemes: ThemeMap;
|
|
56
56
|
export declare function createJBrowseBaseTheme(theme?: ThemeOptions): ThemeOptions;
|
|
57
57
|
type ThemeMap = Record<string, ThemeOptions>;
|
|
58
|
-
export declare function createJBrowseTheme(configTheme?: ThemeOptions, themes?: ThemeMap, themeName?: string): import("@mui/material
|
|
58
|
+
export declare function createJBrowseTheme(configTheme?: ThemeOptions, themes?: ThemeMap, themeName?: string): import("@mui/material").Theme;
|
|
59
59
|
export {};
|
package/ui/theme.js
CHANGED
|
@@ -6,10 +6,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.defaultThemes = void 0;
|
|
7
7
|
exports.createJBrowseBaseTheme = createJBrowseBaseTheme;
|
|
8
8
|
exports.createJBrowseTheme = createJBrowseTheme;
|
|
9
|
+
const material_1 = require("@mui/material");
|
|
9
10
|
const colors_1 = require("@mui/material/colors");
|
|
10
|
-
const styles_1 = require("@mui/material/styles");
|
|
11
11
|
const deepmerge_1 = __importDefault(require("deepmerge"));
|
|
12
|
-
const refTheme = (0,
|
|
12
|
+
const refTheme = (0, material_1.createTheme)();
|
|
13
13
|
const midnight = refTheme.palette.augmentColor({ color: { main: '#0D233F' } });
|
|
14
14
|
const grape = refTheme.palette.augmentColor({ color: { main: '#721E63' } });
|
|
15
15
|
const forest = refTheme.palette.augmentColor({ color: { main: '#135560' } });
|
|
@@ -333,7 +333,7 @@ function createJBrowseBaseTheme(theme) {
|
|
|
333
333
|
return (0, deepmerge_1.default)(themeP, theme || {}, { arrayMerge: overwriteArrayMerge });
|
|
334
334
|
}
|
|
335
335
|
function createJBrowseTheme(configTheme = {}, themes = exports.defaultThemes, themeName = 'default') {
|
|
336
|
-
return (0,
|
|
336
|
+
return (0, material_1.createTheme)(createJBrowseBaseTheme(themeName === 'default'
|
|
337
337
|
? (0, deepmerge_1.default)(themes.default, augmentThemeColors(configTheme), {
|
|
338
338
|
arrayMerge: overwriteArrayMerge,
|
|
339
339
|
})
|
|
@@ -341,13 +341,21 @@ function createJBrowseTheme(configTheme = {}, themes = exports.defaultThemes, th
|
|
|
341
341
|
}
|
|
342
342
|
function augmentThemeColors(theme = {}) {
|
|
343
343
|
var _a;
|
|
344
|
-
for (const entry of [
|
|
344
|
+
for (const entry of [
|
|
345
|
+
'primary',
|
|
346
|
+
'secondary',
|
|
347
|
+
'tertiary',
|
|
348
|
+
'quaternary',
|
|
349
|
+
'highlight',
|
|
350
|
+
]) {
|
|
345
351
|
if ((_a = theme.palette) === null || _a === void 0 ? void 0 : _a[entry]) {
|
|
346
352
|
theme = (0, deepmerge_1.default)(theme, {
|
|
347
353
|
palette: {
|
|
348
354
|
[entry]: refTheme.palette.augmentColor('color' in theme.palette[entry]
|
|
349
355
|
? theme.palette[entry]
|
|
350
|
-
: {
|
|
356
|
+
: {
|
|
357
|
+
color: theme.palette[entry],
|
|
358
|
+
}),
|
|
351
359
|
},
|
|
352
360
|
});
|
|
353
361
|
}
|
package/util/index.d.ts
CHANGED
|
@@ -259,6 +259,7 @@ export declare function fetchAndMaybeUnzipText(loc: GenericFilehandle, opts?: Ba
|
|
|
259
259
|
export declare function isObject(x: unknown): x is Record<string | symbol | number, unknown>;
|
|
260
260
|
export declare function localStorageGetNumber(key: string, defaultVal: number): number;
|
|
261
261
|
export declare function localStorageGetBoolean(key: string, defaultVal: boolean): boolean;
|
|
262
|
+
export declare function localStorageSetBoolean(key: string, value: boolean): void;
|
|
262
263
|
export declare function forEachWithStopTokenCheck<T>(iter: Iterable<T>, stopToken: string | undefined, arg: (arg: T, idx: number) => void, durationMs?: number): void;
|
|
263
264
|
export declare function testAdapter(fileName: string, regex: RegExp, adapterHint: string | undefined, expected: string): boolean;
|
|
264
265
|
export { type Feature, type SimpleFeatureSerialized, type SimpleFeatureSerializedNoId, default as SimpleFeature, isFeature, } from './simpleFeature';
|
package/util/index.js
CHANGED
|
@@ -96,6 +96,7 @@ exports.fetchAndMaybeUnzipText = fetchAndMaybeUnzipText;
|
|
|
96
96
|
exports.isObject = isObject;
|
|
97
97
|
exports.localStorageGetNumber = localStorageGetNumber;
|
|
98
98
|
exports.localStorageGetBoolean = localStorageGetBoolean;
|
|
99
|
+
exports.localStorageSetBoolean = localStorageSetBoolean;
|
|
99
100
|
exports.forEachWithStopTokenCheck = forEachWithStopTokenCheck;
|
|
100
101
|
exports.testAdapter = testAdapter;
|
|
101
102
|
const react_1 = require("react");
|
|
@@ -984,9 +985,9 @@ function renderToStaticMarkup(node) {
|
|
|
984
985
|
function isGzip(buf) {
|
|
985
986
|
return buf[0] === 31 && buf[1] === 139 && buf[2] === 8;
|
|
986
987
|
}
|
|
987
|
-
async function fetchAndMaybeUnzip(loc, opts) {
|
|
988
|
-
const { statusCallback = () => { } } = opts
|
|
989
|
-
const buf =
|
|
988
|
+
async function fetchAndMaybeUnzip(loc, opts = {}) {
|
|
989
|
+
const { statusCallback = () => { } } = opts;
|
|
990
|
+
const buf = await updateStatus('Downloading file', statusCallback, () => loc.readFile(opts));
|
|
990
991
|
return isGzip(buf)
|
|
991
992
|
? await updateStatus('Unzipping', statusCallback, () => (0, bgzf_filehandle_1.unzip)(buf))
|
|
992
993
|
: buf;
|
|
@@ -1008,6 +1009,9 @@ function localStorageGetNumber(key, defaultVal) {
|
|
|
1008
1009
|
function localStorageGetBoolean(key, defaultVal) {
|
|
1009
1010
|
return Boolean(JSON.parse(localStorageGetItem(key) || JSON.stringify(defaultVal)));
|
|
1010
1011
|
}
|
|
1012
|
+
function localStorageSetBoolean(key, value) {
|
|
1013
|
+
localStorageSetItem(key, JSON.stringify(value));
|
|
1014
|
+
}
|
|
1011
1015
|
function forEachWithStopTokenCheck(iter, stopToken, arg, durationMs = 400) {
|
|
1012
1016
|
let start = performance.now();
|
|
1013
1017
|
let i = 0;
|
|
@@ -6,13 +6,14 @@ interface RenderToAbstractCanvasOptions {
|
|
|
6
6
|
exportSVG?: ExportSVGOptions;
|
|
7
7
|
highResolutionScaling?: number;
|
|
8
8
|
}
|
|
9
|
-
|
|
10
|
-
canvasRecordedData:
|
|
11
|
-
}
|
|
12
|
-
reactElement: import("react/jsx-runtime").JSX.Element;
|
|
13
|
-
}) | (Awaited<T> & {
|
|
9
|
+
type R<T extends Record<string, unknown> | undefined> = Omit<T, never> & ({
|
|
10
|
+
canvasRecordedData: Record<string, unknown>;
|
|
11
|
+
} | {
|
|
14
12
|
imageData: any;
|
|
15
|
-
}
|
|
13
|
+
} | {
|
|
14
|
+
reactElement: React.ReactElement;
|
|
15
|
+
});
|
|
16
|
+
export declare function renderToAbstractCanvas<T extends Record<string, unknown> | undefined>(width: number, height: number, opts: RenderToAbstractCanvasOptions, cb: (ctx: CanvasRenderingContext2D) => Promise<T> | T): Promise<R<T>>;
|
|
16
17
|
export declare function getSerializedSvg(results: {
|
|
17
18
|
width: number;
|
|
18
19
|
height: number;
|
|
@@ -46,9 +46,9 @@ async function renderToAbstractCanvas(width, height, opts, cb) {
|
|
|
46
46
|
if (exportSVG) {
|
|
47
47
|
if (!exportSVG.rasterizeLayers) {
|
|
48
48
|
const fakeCtx = new canvas_sequencer_1.CanvasSequence();
|
|
49
|
-
const
|
|
49
|
+
const callbackResult = await cb(fakeCtx);
|
|
50
50
|
return {
|
|
51
|
-
...
|
|
51
|
+
...callbackResult,
|
|
52
52
|
canvasRecordedData: fakeCtx.toJSON(),
|
|
53
53
|
};
|
|
54
54
|
}
|
|
@@ -60,9 +60,9 @@ async function renderToAbstractCanvas(width, height, opts, cb) {
|
|
|
60
60
|
throw new Error('2d canvas rendering not supported on this platform');
|
|
61
61
|
}
|
|
62
62
|
ctx.scale(s, s);
|
|
63
|
-
const
|
|
63
|
+
const callbackResult = await cb(ctx);
|
|
64
64
|
return {
|
|
65
|
-
...
|
|
65
|
+
...callbackResult,
|
|
66
66
|
reactElement: ((0, jsx_runtime_1.jsx)("image", { width: width, height: height, xlinkHref: 'convertToBlob' in canvas
|
|
67
67
|
? await (0, blobToDataURL_1.blobToDataURL)(await canvas.convertToBlob({
|
|
68
68
|
type: 'image/png',
|
|
@@ -79,9 +79,9 @@ async function renderToAbstractCanvas(width, height, opts, cb) {
|
|
|
79
79
|
throw new Error('2d canvas rendering not supported on this platform');
|
|
80
80
|
}
|
|
81
81
|
ctx.scale(s, s);
|
|
82
|
-
const
|
|
82
|
+
const callbackResult = await cb(ctx);
|
|
83
83
|
return {
|
|
84
|
-
...
|
|
84
|
+
...callbackResult,
|
|
85
85
|
imageData: await (0, offscreenCanvasPonyfill_1.createImageBitmap)(canvas),
|
|
86
86
|
};
|
|
87
87
|
}
|