@jbrowse/core 2.6.3 → 2.7.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/ArrayValue.d.ts +0 -9
- package/BaseFeatureWidget/BaseFeatureDetail/ArrayValue.js +2 -3
- package/BaseFeatureWidget/BaseFeatureDetail/Attributes.d.ts +1 -3
- package/BaseFeatureWidget/BaseFeatureDetail/BasicValue.d.ts +0 -9
- package/BaseFeatureWidget/BaseFeatureDetail/BasicValue.js +2 -3
- package/BaseFeatureWidget/BaseFeatureDetail/DataGridDetails.d.ts +0 -9
- package/BaseFeatureWidget/BaseFeatureDetail/DataGridDetails.js +11 -6
- package/BaseFeatureWidget/BaseFeatureDetail/FieldName.d.ts +0 -9
- package/BaseFeatureWidget/BaseFeatureDetail/FieldName.js +2 -3
- package/BaseFeatureWidget/BaseFeatureDetail/SimpleField.d.ts +0 -9
- package/BaseFeatureWidget/BaseFeatureDetail/SimpleField.js +2 -3
- package/BaseFeatureWidget/BaseFeatureDetail/UriField.d.ts +0 -9
- package/BaseFeatureWidget/BaseFeatureDetail/UriField.js +2 -3
- package/BaseFeatureWidget/BaseFeatureDetail/index.d.ts +2 -11
- package/BaseFeatureWidget/BaseFeatureDetail/index.js +5 -4
- package/BaseFeatureWidget/SequenceFeatureDetails/ProteinSequence.d.ts +1 -3
- package/BaseFeatureWidget/SequenceFeatureDetails/SequencePanel.js +1 -1
- package/BaseFeatureWidget/util.js +0 -4
- package/PluginManager.d.ts +9 -17
- package/ReExports/modules.d.ts +5 -5
- package/ReExports/modules.js +24 -18
- package/TextSearch/TextSearchManager.d.ts +1 -1
- package/assemblyManager/assembly.d.ts +2 -0
- package/assemblyManager/assembly.js +9 -4
- package/assemblyManager/assemblyManager.d.ts +123 -111
- package/assemblyManager/assemblyManager.js +1 -1
- package/configuration/configurationSchema.js +2 -2
- package/configuration/configurationSlot.js +3 -6
- package/data_adapters/BaseAdapter/index.d.ts +1 -3
- package/data_adapters/dataAdapterCache.js +2 -2
- package/package.json +5 -6
- package/pluggableElementTypes/AdapterType.d.ts +2 -2
- package/pluggableElementTypes/models/BaseTrackModel.d.ts +5 -5
- package/pluggableElementTypes/models/BaseTrackModel.js +1 -16
- package/pluggableElementTypes/models/InternetAccountModel.d.ts +2 -2
- package/pluggableElementTypes/models/InternetAccountModel.js +2 -2
- package/pluggableElementTypes/renderers/BoxRendererType.d.ts +1 -3
- package/pluggableElementTypes/renderers/CircularChordRendererType.d.ts +3 -0
- package/pluggableElementTypes/renderers/RpcRenderedSvgGroup.d.ts +7 -3
- package/pluggableElementTypes/renderers/RpcRenderedSvgGroup.js +45 -2
- package/pluggableElementTypes/renderers/ServerSideRenderedContent.d.ts +2 -2
- package/pluggableElementTypes/renderers/ServerSideRenderedContent.js +49 -12
- package/pluggableElementTypes/renderers/util/serializableFilterChain.js +2 -2
- package/rpc/RpcManager.d.ts +2 -2
- package/rpc/WebWorkerRpcDriver.js +3 -3
- package/rpc/methods/CoreGetFeatureDensityStats.js +0 -1
- package/rpc/methods/CoreGetFeatureDetails.js +0 -1
- package/rpc/methods/CoreGetFeatures.js +0 -1
- package/rpc/methods/CoreRender.js +0 -1
- package/rpc/remoteAbortSignals.d.ts +2 -2
- package/tsconfig.build.tsbuildinfo +1 -1
- package/ui/ColorPicker.js +3 -6
- package/ui/Dialog.d.ts +2 -2
- package/ui/Dialog.js +2 -1
- package/ui/DropDownMenu.d.ts +3 -4
- package/ui/DropDownMenu.js +8 -12
- package/ui/EditableTypography.js +7 -5
- package/ui/FactoryResetDialog.d.ts +3 -4
- package/ui/FactoryResetDialog.js +3 -2
- package/ui/FileSelector/FileSelector.d.ts +2 -2
- package/ui/FileSelector/FileSelector.js +2 -1
- package/ui/FileSelector/LocalFileChooser.d.ts +2 -2
- package/ui/FileSelector/LocalFileChooser.js +4 -3
- package/ui/FileSelector/UrlChooser.d.ts +5 -5
- package/ui/FileSelector/UrlChooser.js +2 -2
- package/ui/Menu.js +1 -1
- package/ui/ResizeBar.d.ts +0 -4
- package/ui/ResizeBar.js +12 -31
- package/ui/ResizeHandle.d.ts +3 -2
- package/ui/ResizeHandle.js +10 -7
- package/ui/ReturnToImportFormDialog.d.ts +4 -5
- package/ui/ReturnToImportFormDialog.js +3 -3
- package/ui/SanitizedHTML.d.ts +0 -1
- package/ui/SanitizedHTML.js +0 -2
- package/ui/Snackbar.d.ts +2 -2
- package/ui/Snackbar.js +2 -1
- package/ui/Tooltip.d.ts +4 -7
- package/ui/Tooltip.js +3 -3
- package/ui/theme.d.ts +1 -3
- package/ui/theme.js +2 -2
- package/ui/useResizeBar.d.ts +5 -0
- package/ui/useResizeBar.js +22 -0
- package/util/Base1DUtils.js +0 -1
- package/util/blockTypes.d.ts +1 -9
- package/util/blockTypes.js +5 -21
- package/util/calculateDynamicBlocks.js +3 -2
- package/util/calculateStaticBlocks.js +3 -4
- package/util/colord.d.ts +1 -0
- package/util/colord.js +13 -0
- package/util/dedupe.js +1 -2
- package/util/index.d.ts +13 -16
- package/util/index.js +17 -10
- package/util/io/RemoteFileWithRangeCache.js +2 -2
- package/util/layouts/GranularRectLayout.js +1 -2
- package/util/map-obj.d.ts +1 -1
- package/util/nanoid.d.ts +5 -0
- package/util/nanoid.js +73 -0
- package/util/offscreenCanvasPonyfill.js +1 -2
- package/util/offscreenCanvasUtils.js +1 -0
- package/util/tracks.d.ts +2 -6
- package/util/types/index.d.ts +36 -10
- package/util/types/index.js +5 -1
- package/util/types/mst.js +2 -2
|
@@ -25,11 +25,50 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
26
|
const react_1 = __importStar(require("react"));
|
|
27
27
|
const styles_1 = require("@mui/material/styles");
|
|
28
|
-
const react_dom_1 = require("react-dom");
|
|
29
28
|
// locals
|
|
30
29
|
const ui_1 = require("../../ui");
|
|
30
|
+
const mobx_react_1 = require("mobx-react");
|
|
31
|
+
const mobx_state_tree_1 = require("mobx-state-tree");
|
|
32
|
+
// eslint-disable-next-line react/no-deprecated
|
|
33
|
+
const react_dom_1 = require("react-dom");
|
|
31
34
|
const util_1 = require("../../util");
|
|
32
|
-
function
|
|
35
|
+
const NewHydrate = (0, mobx_react_1.observer)(function ServerSideRenderedContent({ theme, html, RenderingComponent, ...rest }) {
|
|
36
|
+
const ref = (0, react_1.useRef)(null);
|
|
37
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
38
|
+
const rootRef = (0, react_1.useRef)();
|
|
39
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
40
|
+
const { hydrateFn } = (0, mobx_state_tree_1.getRoot)(rest.displayModel);
|
|
41
|
+
(0, react_1.useEffect)(() => {
|
|
42
|
+
// requestIdleCallback here helps to avoid hydration mismatch
|
|
43
|
+
// because it provides time for dangerouslySetInnerHTML to set the innerHTML
|
|
44
|
+
// contents of the node, otherwise ref.current.innerHTML can be empty
|
|
45
|
+
const renderTimeout = (0, util_1.rIC)(() => {
|
|
46
|
+
var _a;
|
|
47
|
+
if (!ref.current) {
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
const jbrowseTheme = (0, ui_1.createJBrowseTheme)(theme);
|
|
51
|
+
// if there is a hydration mismatch, investigate value of
|
|
52
|
+
// - value of ref.current.innerHTML
|
|
53
|
+
// - value of `html` variable
|
|
54
|
+
// - renderToString of the below React element
|
|
55
|
+
rootRef.current =
|
|
56
|
+
(_a = rootRef.current) !== null && _a !== void 0 ? _a : hydrateFn(ref.current, react_1.default.createElement(styles_1.ThemeProvider, { theme: jbrowseTheme },
|
|
57
|
+
react_1.default.createElement(RenderingComponent, { ...rest })));
|
|
58
|
+
});
|
|
59
|
+
return () => {
|
|
60
|
+
clearTimeout(renderTimeout);
|
|
61
|
+
const root = rootRef.current;
|
|
62
|
+
rootRef.current = undefined;
|
|
63
|
+
setTimeout(() => {
|
|
64
|
+
root === null || root === void 0 ? void 0 : root.unmount();
|
|
65
|
+
});
|
|
66
|
+
};
|
|
67
|
+
}, [html, theme, rest, hydrateFn, RenderingComponent]);
|
|
68
|
+
// eslint-disable-next-line react/no-danger
|
|
69
|
+
return react_1.default.createElement("div", { ref: ref, dangerouslySetInnerHTML: { __html: html } });
|
|
70
|
+
});
|
|
71
|
+
const OldHydrate = (0, mobx_react_1.observer)(function ({ theme, html, RenderingComponent, ...rest }) {
|
|
33
72
|
const ref = (0, react_1.useRef)(null);
|
|
34
73
|
const jbrowseTheme = (0, ui_1.createJBrowseTheme)(theme);
|
|
35
74
|
(0, react_1.useEffect)(() => {
|
|
@@ -40,17 +79,10 @@ function default_1({ theme, html, RenderingComponent, ...rest }) {
|
|
|
40
79
|
(0, react_dom_1.unmountComponentAtNode)(domNode);
|
|
41
80
|
}
|
|
42
81
|
domNode.innerHTML = html;
|
|
43
|
-
// defer main-thread rendering and hydration for when
|
|
44
|
-
// we have some free time. helps keep the framerate up.
|
|
45
|
-
//
|
|
46
|
-
// note: the timeout param to rIC below helps when you are doing
|
|
47
|
-
// a long continuous scroll, it forces it to evaluate because
|
|
48
|
-
// otherwise the continuous scroll would never give it time to do
|
|
49
|
-
// so
|
|
50
82
|
(0, util_1.rIC)(() => {
|
|
51
83
|
(0, react_dom_1.hydrate)(react_1.default.createElement(styles_1.ThemeProvider, { theme: jbrowseTheme },
|
|
52
84
|
react_1.default.createElement(RenderingComponent, { ...rest })), domNode);
|
|
53
|
-
}
|
|
85
|
+
});
|
|
54
86
|
}
|
|
55
87
|
}
|
|
56
88
|
doHydrate();
|
|
@@ -61,5 +93,10 @@ function default_1({ theme, html, RenderingComponent, ...rest }) {
|
|
|
61
93
|
};
|
|
62
94
|
}, [html, jbrowseTheme, rest, RenderingComponent]);
|
|
63
95
|
return react_1.default.createElement("div", { ref: ref });
|
|
64
|
-
}
|
|
65
|
-
|
|
96
|
+
});
|
|
97
|
+
const ServerSideRenderedContent = (0, mobx_react_1.observer)(function (props) {
|
|
98
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
99
|
+
const root = (0, mobx_state_tree_1.getRoot)(props.displayModel);
|
|
100
|
+
return root.hydrateFn ? react_1.default.createElement(NewHydrate, { ...props }) : react_1.default.createElement(OldHydrate, { ...props });
|
|
101
|
+
});
|
|
102
|
+
exports.default = ServerSideRenderedContent;
|
|
@@ -13,10 +13,10 @@ class SerializableFilterChain {
|
|
|
13
13
|
}
|
|
14
14
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
15
15
|
passes(...args) {
|
|
16
|
-
for (
|
|
16
|
+
for (const entry of this.filterChain) {
|
|
17
17
|
if (
|
|
18
18
|
// @ts-expect-error
|
|
19
|
-
!
|
|
19
|
+
!entry.expr.evalSync({ feature: args[0] })) {
|
|
20
20
|
return false;
|
|
21
21
|
}
|
|
22
22
|
}
|
package/rpc/RpcManager.d.ts
CHANGED
|
@@ -3,10 +3,10 @@ import { AnyConfigurationModel } from '../configuration';
|
|
|
3
3
|
import WebWorkerRpcDriver from './WebWorkerRpcDriver';
|
|
4
4
|
import MainThreadRpcDriver from './MainThreadRpcDriver';
|
|
5
5
|
type DriverClass = WebWorkerRpcDriver | MainThreadRpcDriver;
|
|
6
|
-
|
|
6
|
+
interface BackendConfigurations {
|
|
7
7
|
WebWorkerRpcDriver?: Omit<ConstructorParameters<typeof WebWorkerRpcDriver>[0], 'config'>;
|
|
8
8
|
MainThreadRpcDriver?: Omit<ConstructorParameters<typeof MainThreadRpcDriver>[0], 'config'>;
|
|
9
|
-
}
|
|
9
|
+
}
|
|
10
10
|
declare const DriverClasses: {
|
|
11
11
|
WebWorkerRpcDriver: typeof WebWorkerRpcDriver;
|
|
12
12
|
MainThreadRpcDriver: typeof MainThreadRpcDriver;
|
|
@@ -4,17 +4,17 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const librpc_web_mod_1 = __importDefault(require("librpc-web-mod"));
|
|
7
|
-
const
|
|
7
|
+
const serialize_error_1 = require("serialize-error");
|
|
8
8
|
// locals
|
|
9
|
+
const nanoid_1 = require("../util/nanoid");
|
|
9
10
|
const BaseRpcDriver_1 = __importDefault(require("./BaseRpcDriver"));
|
|
10
|
-
const serialize_error_1 = require("serialize-error");
|
|
11
11
|
class WebWorkerHandle extends librpc_web_mod_1.default.Client {
|
|
12
12
|
destroy() {
|
|
13
13
|
this.workers[0].terminate();
|
|
14
14
|
}
|
|
15
15
|
async call(funcName, args, opts) {
|
|
16
16
|
const { statusCallback, rpcDriverClassName } = opts;
|
|
17
|
-
const channel = `message-${
|
|
17
|
+
const channel = `message-${(0, nanoid_1.nanoid)()}`;
|
|
18
18
|
const listener = (message) => {
|
|
19
19
|
statusCallback === null || statusCallback === void 0 ? void 0 : statusCallback(message);
|
|
20
20
|
};
|
|
@@ -3,7 +3,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
/* eslint-disable @typescript-eslint/no-non-null-assertion */
|
|
7
6
|
const dataAdapterCache_1 = require("../../data_adapters/dataAdapterCache");
|
|
8
7
|
const RpcMethodType_1 = __importDefault(require("../../pluggableElementTypes/RpcMethodType"));
|
|
9
8
|
const BaseAdapter_1 = require("../../data_adapters/BaseAdapter");
|
|
@@ -3,7 +3,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
/* eslint-disable @typescript-eslint/no-non-null-assertion */
|
|
7
6
|
const RpcMethodType_1 = __importDefault(require("../../pluggableElementTypes/RpcMethodType"));
|
|
8
7
|
const util_1 = require("../../util");
|
|
9
8
|
const util_2 = require("./util");
|
|
@@ -3,7 +3,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
/* eslint-disable @typescript-eslint/no-non-null-assertion */
|
|
7
6
|
const operators_1 = require("rxjs/operators");
|
|
8
7
|
const rxjs_1 = require("rxjs");
|
|
9
8
|
// locals
|