@jbrowse/core 2.4.2 → 2.6.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 (223) hide show
  1. package/BaseFeatureWidget/BaseFeatureDetail/ArrayValue.d.ts +16 -0
  2. package/BaseFeatureWidget/BaseFeatureDetail/ArrayValue.js +45 -0
  3. package/BaseFeatureWidget/BaseFeatureDetail/Attributes.d.ts +15 -0
  4. package/BaseFeatureWidget/BaseFeatureDetail/Attributes.js +52 -0
  5. package/BaseFeatureWidget/BaseFeatureDetail/BasicValue.d.ts +13 -0
  6. package/BaseFeatureWidget/BaseFeatureDetail/BasicValue.js +27 -0
  7. package/BaseFeatureWidget/BaseFeatureDetail/DataGridDetails.d.ts +15 -0
  8. package/BaseFeatureWidget/BaseFeatureDetail/DataGridDetails.js +98 -0
  9. package/BaseFeatureWidget/BaseFeatureDetail/FieldName.d.ts +16 -0
  10. package/BaseFeatureWidget/BaseFeatureDetail/FieldName.js +32 -0
  11. package/BaseFeatureWidget/BaseFeatureDetail/SimpleField.d.ts +17 -0
  12. package/BaseFeatureWidget/BaseFeatureDetail/SimpleField.js +23 -0
  13. package/BaseFeatureWidget/BaseFeatureDetail/UriField.d.ts +18 -0
  14. package/BaseFeatureWidget/BaseFeatureDetail/UriField.js +31 -0
  15. package/BaseFeatureWidget/BaseFeatureDetail/UriLink.d.ts +7 -0
  16. package/BaseFeatureWidget/BaseFeatureDetail/UriLink.js +13 -0
  17. package/BaseFeatureWidget/BaseFeatureDetail/index.d.ts +33 -0
  18. package/BaseFeatureWidget/BaseFeatureDetail/index.js +170 -0
  19. package/BaseFeatureWidget/BaseFeatureDetail/util.d.ts +5 -0
  20. package/BaseFeatureWidget/BaseFeatureDetail/util.js +46 -0
  21. package/BaseFeatureWidget/SequenceFeatureDetails/CDNASequence.d.ts +13 -0
  22. package/BaseFeatureWidget/SequenceFeatureDetails/CDNASequence.js +25 -0
  23. package/BaseFeatureWidget/SequenceFeatureDetails/CDSSequence.d.ts +6 -0
  24. package/BaseFeatureWidget/SequenceFeatureDetails/CDSSequence.js +12 -0
  25. package/BaseFeatureWidget/SequenceFeatureDetails/GenomicSequence.d.ts +6 -0
  26. package/BaseFeatureWidget/SequenceFeatureDetails/GenomicSequence.js +14 -0
  27. package/BaseFeatureWidget/SequenceFeatureDetails/ProteinSequence.d.ts +9 -0
  28. package/BaseFeatureWidget/SequenceFeatureDetails/ProteinSequence.js +18 -0
  29. package/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeatureDetails.d.ts +3 -0
  30. package/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeatureDetails.js +143 -0
  31. package/BaseFeatureWidget/{SequenceFeatureSettingsDialog.d.ts → SequenceFeatureDetails/SequenceFeatureSettingsDialog.d.ts} +2 -2
  32. package/BaseFeatureWidget/{SequenceFeatureSettingsDialog.js → SequenceFeatureDetails/SequenceFeatureSettingsDialog.js} +1 -1
  33. package/BaseFeatureWidget/{SequenceHelpDialog.d.ts → SequenceFeatureDetails/SequenceHelpDialog.d.ts} +2 -2
  34. package/BaseFeatureWidget/{SequenceHelpDialog.js → SequenceFeatureDetails/SequenceHelpDialog.js} +6 -9
  35. package/BaseFeatureWidget/{SequencePanel.d.ts → SequenceFeatureDetails/SequencePanel.d.ts} +1 -1
  36. package/BaseFeatureWidget/{SequencePanel.js → SequenceFeatureDetails/SequencePanel.js} +10 -8
  37. package/BaseFeatureWidget/SequenceFeatureDetails/hooks.d.ts +10 -0
  38. package/BaseFeatureWidget/SequenceFeatureDetails/hooks.js +73 -0
  39. package/BaseFeatureWidget/SequenceFeatureDetails/index.d.ts +3 -0
  40. package/BaseFeatureWidget/SequenceFeatureDetails/index.js +68 -0
  41. package/BaseFeatureWidget/{test_data → SequenceFeatureDetails/test_data}/DLGAP3.d.ts +17 -17
  42. package/BaseFeatureWidget/{test_data → SequenceFeatureDetails/test_data}/NCDN.d.ts +16 -16
  43. package/BaseFeatureWidget/SequenceFeatureDetails/util.d.ts +6 -0
  44. package/BaseFeatureWidget/SequenceFeatureDetails/util.js +11 -0
  45. package/BaseFeatureWidget/index.d.ts +4 -1
  46. package/BaseFeatureWidget/index.js +29 -17
  47. package/BaseFeatureWidget/types.d.ts +2 -2
  48. package/BaseFeatureWidget/util.js +15 -5
  49. package/Plugin.d.ts +1 -1
  50. package/PluginLoader.js +17 -0
  51. package/PluginManager.d.ts +8 -5
  52. package/PluginManager.js +3 -0
  53. package/README.md +0 -2
  54. package/ReExports/list.js +1 -0
  55. package/ReExports/modules.d.ts +8 -5
  56. package/ReExports/modules.js +7 -7
  57. package/TextSearch/TextSearchManager.d.ts +2 -9
  58. package/assemblyManager/assembly.d.ts +91 -8
  59. package/assemblyManager/assembly.js +92 -8
  60. package/assemblyManager/assemblyConfigSchema.d.ts +52 -1
  61. package/assemblyManager/assemblyConfigSchema.js +1 -0
  62. package/assemblyManager/assemblyManager.d.ts +227 -58
  63. package/assemblyManager/assemblyManager.js +72 -13
  64. package/assemblyManager/index.d.ts +1 -0
  65. package/configuration/configurationSchema.d.ts +14 -16
  66. package/configuration/configurationSchema.js +4 -2
  67. package/configuration/index.d.ts +1 -1
  68. package/configuration/types.d.ts +15 -0
  69. package/configuration/types.js +2 -0
  70. package/configuration/util.d.ts +5 -3
  71. package/configuration/util.js +18 -18
  72. package/data_adapters/BaseAdapter/BaseAdapter.d.ts +23 -0
  73. package/data_adapters/BaseAdapter/BaseAdapter.js +37 -0
  74. package/data_adapters/BaseAdapter/BaseFeatureDataAdapter.d.ts +128 -0
  75. package/data_adapters/{BaseAdapter.js → BaseAdapter/BaseFeatureDataAdapter.js} +58 -88
  76. package/data_adapters/BaseAdapter/BaseOptions.d.ts +16 -0
  77. package/data_adapters/BaseAdapter/BaseOptions.js +2 -0
  78. package/data_adapters/BaseAdapter/BaseRefNameAliasAdapter.d.ts +9 -0
  79. package/data_adapters/BaseAdapter/BaseRefNameAliasAdapter.js +2 -0
  80. package/data_adapters/BaseAdapter/BaseSequenceAdapter.d.ts +13 -0
  81. package/data_adapters/BaseAdapter/BaseSequenceAdapter.js +10 -0
  82. package/data_adapters/BaseAdapter/BaseTextSearchAdapter.d.ts +6 -0
  83. package/data_adapters/BaseAdapter/BaseTextSearchAdapter.js +2 -0
  84. package/data_adapters/BaseAdapter/RegionsAdapter.d.ts +6 -0
  85. package/data_adapters/BaseAdapter/RegionsAdapter.js +2 -0
  86. package/data_adapters/BaseAdapter/index.d.ts +15 -0
  87. package/data_adapters/BaseAdapter/index.js +25 -0
  88. package/data_adapters/BaseAdapter/types.d.ts +21 -0
  89. package/data_adapters/BaseAdapter/types.js +2 -0
  90. package/data_adapters/BaseAdapter/util.d.ts +12 -0
  91. package/data_adapters/BaseAdapter/util.js +23 -0
  92. package/data_adapters/CytobandAdapter/configSchema.d.ts +11 -1
  93. package/package.json +4 -4
  94. package/pluggableElementTypes/AdapterType.d.ts +1 -1
  95. package/pluggableElementTypes/ConnectionType.d.ts +1 -1
  96. package/pluggableElementTypes/DisplayType.d.ts +1 -1
  97. package/pluggableElementTypes/InternetAccountType.d.ts +1 -1
  98. package/pluggableElementTypes/RpcMethodType.d.ts +9 -7
  99. package/pluggableElementTypes/RpcMethodType.js +9 -7
  100. package/pluggableElementTypes/TextSearchAdapterType.d.ts +1 -1
  101. package/pluggableElementTypes/models/BaseConnectionModelFactory.d.ts +18 -0
  102. package/pluggableElementTypes/models/BaseConnectionModelFactory.js +9 -0
  103. package/pluggableElementTypes/models/BaseDisplayModel.d.ts +10 -1
  104. package/pluggableElementTypes/models/BaseDisplayModel.js +9 -1
  105. package/pluggableElementTypes/models/BaseTrackModel.d.ts +2 -1
  106. package/pluggableElementTypes/models/BaseTrackModel.js +4 -2
  107. package/pluggableElementTypes/models/BaseViewModel.d.ts +46 -2
  108. package/pluggableElementTypes/models/BaseViewModel.js +6 -0
  109. package/pluggableElementTypes/models/InternetAccountModel.d.ts +36 -2
  110. package/pluggableElementTypes/models/InternetAccountModel.js +33 -21
  111. package/pluggableElementTypes/models/baseConnectionConfig.d.ts +22 -2
  112. package/pluggableElementTypes/models/baseConnectionConfig.js +2 -1
  113. package/pluggableElementTypes/models/baseInternetAccountConfig.d.ts +42 -1
  114. package/pluggableElementTypes/models/baseInternetAccountConfig.js +1 -1
  115. package/pluggableElementTypes/models/baseTrackConfig.d.ts +120 -3
  116. package/pluggableElementTypes/models/baseTrackConfig.js +7 -5
  117. package/pluggableElementTypes/models/index.d.ts +1 -1
  118. package/pluggableElementTypes/renderers/BoxRendererType.js +1 -2
  119. package/pluggableElementTypes/renderers/CircularChordRendererType.d.ts +2 -2
  120. package/pluggableElementTypes/renderers/FeatureRendererType.d.ts +4 -2
  121. package/pluggableElementTypes/renderers/FeatureRendererType.js +4 -6
  122. package/pluggableElementTypes/renderers/RendererType.d.ts +1 -1
  123. package/pluggableElementTypes/renderers/RpcRenderedSvgGroup.d.ts +2 -2
  124. package/pluggableElementTypes/renderers/ServerSideRenderedContent.d.ts +1 -1
  125. package/pluggableElementTypes/renderers/ServerSideRendererType.d.ts +1 -1
  126. package/rpc/BaseRpcDriver.js +1 -7
  127. package/rpc/RpcManager.d.ts +8 -1
  128. package/rpc/RpcManager.js +1 -1
  129. package/rpc/baseRpcConfig.d.ts +10 -1
  130. package/rpc/configSchema.d.ts +14 -1
  131. package/rpc/coreRpcMethods.d.ts +1 -1
  132. package/rpc/coreRpcMethods.js +3 -3
  133. package/rpc/mainThreadRpcConfig.d.ts +7 -1
  134. package/rpc/methods/{CoreEstimateRegionStats.d.ts → CoreGetFeatureDensityStats.d.ts} +2 -2
  135. package/rpc/methods/{CoreEstimateRegionStats.js → CoreGetFeatureDensityStats.js} +4 -4
  136. package/rpc/methods/CoreGetFeatureDetails.js +5 -5
  137. package/rpc/webWorkerRpcConfig.d.ts +7 -1
  138. package/tsconfig.build.tsbuildinfo +1 -1
  139. package/ui/AppLogo.d.ts +2 -2
  140. package/ui/AssemblySelector.d.ts +2 -2
  141. package/ui/AssemblySelector.js +1 -1
  142. package/ui/CascadingMenu.d.ts +2 -2
  143. package/ui/CascadingMenuButton.d.ts +8 -0
  144. package/ui/CascadingMenuButton.js +20 -0
  145. package/ui/ColorPicker.d.ts +4 -4
  146. package/ui/Dialog.d.ts +5 -5
  147. package/ui/Dialog.js +19 -7
  148. package/ui/DropDownMenu.d.ts +2 -2
  149. package/ui/EditableTypography.js +1 -1
  150. package/ui/ErrorMessage.d.ts +2 -2
  151. package/ui/ErrorMessage.js +6 -2
  152. package/ui/FactoryResetDialog.d.ts +2 -2
  153. package/ui/FatalErrorDialog.d.ts +6 -7
  154. package/ui/FatalErrorDialog.js +7 -7
  155. package/ui/FileSelector/FileSelector.d.ts +2 -2
  156. package/ui/FileSelector/FileSelector.js +3 -2
  157. package/ui/FileSelector/LocalFileChooser.d.ts +2 -2
  158. package/ui/FileSelector/UrlChooser.d.ts +3 -4
  159. package/ui/FileSelector/UrlChooser.js +8 -10
  160. package/ui/Icons.d.ts +10 -10
  161. package/ui/LoadingEllipses.d.ts +2 -2
  162. package/ui/Logo.d.ts +3 -3
  163. package/ui/Menu.d.ts +2 -2
  164. package/ui/PrerenderedCanvas.d.ts +2 -2
  165. package/ui/ResizeBar.d.ts +1 -1
  166. package/ui/ResizeBar.js +1 -1
  167. package/ui/ResizeHandle.d.ts +2 -2
  168. package/ui/ReturnToImportFormDialog.d.ts +2 -2
  169. package/ui/SanitizedHTML.d.ts +2 -2
  170. package/ui/SanitizedHTML.js +6 -0
  171. package/ui/Snackbar.d.ts +7 -9
  172. package/ui/Snackbar.js +12 -17
  173. package/ui/SnackbarModel.d.ts +9 -3
  174. package/ui/SnackbarModel.js +3 -3
  175. package/ui/Tooltip.d.ts +2 -2
  176. package/ui/index.d.ts +0 -1
  177. package/ui/index.js +1 -3
  178. package/ui/react-colorful.d.ts +1 -1
  179. package/ui/theme.js +3 -18
  180. package/util/Base1DUtils.js +2 -1
  181. package/util/QuickLRU.d.ts +1 -1
  182. package/util/blockTypes.js +1 -1
  183. package/util/formatFastaStrings.js +1 -1
  184. package/util/index.d.ts +18 -2
  185. package/util/index.js +77 -11
  186. package/util/io/index.js +1 -1
  187. package/util/layouts/PrecomputedMultiLayout.d.ts +1 -1
  188. package/util/mst-reflection.js +1 -2
  189. package/util/offscreenCanvasUtils.d.ts +2 -2
  190. package/util/stats.d.ts +5 -5
  191. package/util/types/index.d.ts +9 -3
  192. package/util/types/index.js +6 -2
  193. package/util/types/mst.d.ts +12 -9
  194. package/util/types/util.d.ts +0 -3
  195. package/BaseFeatureWidget/BaseFeatureDetail.d.ts +0 -62
  196. package/BaseFeatureWidget/BaseFeatureDetail.js +0 -378
  197. package/BaseFeatureWidget/SequenceBox.d.ts +0 -29
  198. package/BaseFeatureWidget/SequenceBox.js +0 -63
  199. package/BaseFeatureWidget/SequenceFeatureDetails.d.ts +0 -3
  200. package/BaseFeatureWidget/SequenceFeatureDetails.js +0 -230
  201. package/data_adapters/BaseAdapter.d.ts +0 -138
  202. package/ui/AboutDialog.d.ts +0 -12
  203. package/ui/AboutDialog.js +0 -125
  204. package/ui/App.d.ts +0 -18
  205. package/ui/App.js +0 -114
  206. package/ui/AppToolbar.d.ts +0 -19
  207. package/ui/AppToolbar.js +0 -56
  208. package/ui/Drawer.d.ts +0 -8
  209. package/ui/Drawer.js +0 -34
  210. package/ui/DrawerWidget.d.ts +0 -6
  211. package/ui/DrawerWidget.js +0 -130
  212. package/ui/ViewContainer.d.ts +0 -9
  213. package/ui/ViewContainer.js +0 -76
  214. package/ui/ViewContainerTitle.d.ts +0 -6
  215. package/ui/ViewContainerTitle.js +0 -42
  216. package/ui/ViewLauncher.d.ts +0 -18
  217. package/ui/ViewLauncher.js +0 -50
  218. package/ui/ViewMenu.d.ts +0 -9
  219. package/ui/ViewMenu.js +0 -69
  220. package/ui/ViewPanel.d.ts +0 -19
  221. package/ui/ViewPanel.js +0 -49
  222. /package/BaseFeatureWidget/{test_data → SequenceFeatureDetails/test_data}/DLGAP3.js +0 -0
  223. /package/BaseFeatureWidget/{test_data → SequenceFeatureDetails/test_data}/NCDN.js +0 -0
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useFeatureSequence = void 0;
4
+ const react_1 = require("react");
5
+ const util_1 = require("../../util");
6
+ const configuration_1 = require("../../configuration");
7
+ const BPLIMIT = 500000;
8
+ function useFeatureSequence(model, feature, upDownBp, forceLoad) {
9
+ const [sequence, setSequence] = (0, react_1.useState)();
10
+ const [error, setError] = (0, react_1.useState)();
11
+ (0, react_1.useEffect)(() => {
12
+ var _a;
13
+ let finished = false;
14
+ if (!model) {
15
+ return () => { };
16
+ }
17
+ const { assemblyManager, rpcManager } = (0, util_1.getSession)(model);
18
+ const [assemblyName] = ((_a = model.view) === null || _a === void 0 ? void 0 : _a.assemblyNames) || [];
19
+ async function fetchSeq(start, end, refName) {
20
+ const assembly = await assemblyManager.waitForAssembly(assemblyName);
21
+ if (!assembly) {
22
+ throw new Error('assembly not found');
23
+ }
24
+ const sessionId = 'getSequence';
25
+ const feats = await rpcManager.call(sessionId, 'CoreGetFeatures', {
26
+ adapterConfig: (0, configuration_1.getConf)(assembly, ['sequence', 'adapter']),
27
+ sessionId,
28
+ regions: [
29
+ {
30
+ start,
31
+ end,
32
+ refName: assembly.getCanonicalRefName(refName),
33
+ assemblyName,
34
+ },
35
+ ],
36
+ });
37
+ const [feat] = feats;
38
+ return (feat === null || feat === void 0 ? void 0 : feat.get('seq')) || '';
39
+ }
40
+ // eslint-disable-next-line @typescript-eslint/no-floating-promises
41
+ ;
42
+ (async () => {
43
+ try {
44
+ setError(undefined);
45
+ const { start, end, refName } = feature;
46
+ if (!forceLoad && end - start > BPLIMIT) {
47
+ setSequence({
48
+ error: `Genomic sequence larger than ${BPLIMIT}bp, use "force load" button to display`,
49
+ });
50
+ }
51
+ else {
52
+ const b = start - upDownBp;
53
+ const e = end + upDownBp;
54
+ const seq = await fetchSeq(start, end, refName);
55
+ const up = await fetchSeq(Math.max(0, b), start, refName);
56
+ const down = await fetchSeq(end, e, refName);
57
+ if (!finished) {
58
+ setSequence({ seq, upstream: up, downstream: down });
59
+ }
60
+ }
61
+ }
62
+ catch (e) {
63
+ console.error(e);
64
+ setError(e);
65
+ }
66
+ })();
67
+ return () => {
68
+ finished = true;
69
+ };
70
+ }, [feature, model, upDownBp, forceLoad]);
71
+ return { sequence, error };
72
+ }
73
+ exports.useFeatureSequence = useFeatureSequence;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ import { BaseProps } from './../types';
3
+ export default function SequenceFeaturePanel({ model, feature }: BaseProps): React.JSX.Element | null;
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ const react_1 = __importStar(require("react"));
30
+ const material_1 = require("@mui/material");
31
+ const mui_1 = require("tss-react/mui");
32
+ const ui_1 = require("../../ui");
33
+ // icons
34
+ const Help_1 = __importDefault(require("@mui/icons-material/Help"));
35
+ // lazies
36
+ const HelpDlg = (0, react_1.lazy)(() => Promise.resolve().then(() => __importStar(require('./SequenceHelpDialog'))));
37
+ const SequenceFeatureDetails = (0, react_1.lazy)(() => Promise.resolve().then(() => __importStar(require('./SequenceFeatureDetails'))));
38
+ const useStyles = (0, mui_1.makeStyles)()(theme => ({
39
+ formControl: {
40
+ margin: 0,
41
+ },
42
+ container: {
43
+ marginTop: theme.spacing(4),
44
+ marginBottom: theme.spacing(4),
45
+ },
46
+ }));
47
+ // display the stitched-together sequence of a gene's CDS, cDNA, or protein
48
+ // sequence. this is a best effort and weird genomic phenomena could lead these
49
+ // to not be 100% accurate
50
+ function SequenceFeaturePanel({ model, feature }) {
51
+ const { classes } = useStyles();
52
+ const [shown, setShown] = (0, react_1.useState)(false);
53
+ const [helpShown, setHelpShown] = (0, react_1.useState)(false);
54
+ return !model ? null : (react_1.default.createElement("div", { className: classes.container },
55
+ react_1.default.createElement(material_1.Button, { variant: "contained", onClick: () => setShown(!shown) }, shown ? 'Hide feature sequence' : 'Show feature sequence'),
56
+ react_1.default.createElement(material_1.FormControl, { className: classes.formControl },
57
+ react_1.default.createElement(material_1.IconButton, { onClick: () => setHelpShown(true) },
58
+ react_1.default.createElement(Help_1.default, null))),
59
+ shown ? (react_1.default.createElement(react_1.Suspense, { fallback: react_1.default.createElement(ui_1.LoadingEllipses, null) },
60
+ react_1.default.createElement(SequenceFeatureDetails
61
+ /* eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion */
62
+ , {
63
+ /* eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion */
64
+ key: feature.uniqueId, model: model, feature: feature }))) : null,
65
+ helpShown ? (react_1.default.createElement(react_1.Suspense, { fallback: react_1.default.createElement("div", null) },
66
+ react_1.default.createElement(HelpDlg, { handleClose: () => setHelpShown(false) }))) : null));
67
+ }
68
+ exports.default = SequenceFeaturePanel;
@@ -1,20 +1,20 @@
1
1
  declare namespace _default {
2
- const source: string;
3
- const type: string;
4
- const start: number;
5
- const end: number;
6
- const strand: number;
7
- const phase: number;
8
- const refName: string;
9
- const id: string;
10
- const dbxref: string[];
11
- const name: string;
12
- const description: string;
13
- const gbkey: string;
14
- const gene: string;
15
- const gene_biotype: string;
16
- const gene_synonym: string[];
17
- const subfeatures: {
2
+ let source: string;
3
+ let type: string;
4
+ let start: number;
5
+ let end: number;
6
+ let strand: number;
7
+ let phase: number;
8
+ let refName: string;
9
+ let id: string;
10
+ let dbxref: string[];
11
+ let name: string;
12
+ let description: string;
13
+ let gbkey: string;
14
+ let gene: string;
15
+ let gene_biotype: string;
16
+ let gene_synonym: string[];
17
+ let subfeatures: {
18
18
  source: string;
19
19
  type: string;
20
20
  start: number;
@@ -75,6 +75,6 @@ declare namespace _default {
75
75
  uniqueId: string;
76
76
  parentId: string;
77
77
  }[];
78
- const uniqueId: string;
78
+ let uniqueId: string;
79
79
  }
80
80
  export default _default;
@@ -1,19 +1,19 @@
1
1
  declare namespace _default {
2
- const source: string;
3
- const type: string;
4
- const start: number;
5
- const end: number;
6
- const strand: number;
7
- const phase: number;
8
- const refName: string;
9
- const id: string;
10
- const dbxref: string[];
11
- const name: string;
12
- const description: string;
13
- const gbkey: string;
14
- const gene: string;
15
- const gene_biotype: string;
16
- const subfeatures: ({
2
+ let source: string;
3
+ let type: string;
4
+ let start: number;
5
+ let end: number;
6
+ let strand: number;
7
+ let phase: number;
8
+ let refName: string;
9
+ let id: string;
10
+ let dbxref: string[];
11
+ let name: string;
12
+ let description: string;
13
+ let gbkey: string;
14
+ let gene: string;
15
+ let gene_biotype: string;
16
+ let subfeatures: ({
17
17
  source: string;
18
18
  type: string;
19
19
  start: number;
@@ -136,6 +136,6 @@ declare namespace _default {
136
136
  parentId: string;
137
137
  tag?: undefined;
138
138
  })[];
139
- const uniqueId: string;
139
+ let uniqueId: string;
140
140
  }
141
141
  export default _default;
@@ -0,0 +1,6 @@
1
+ export declare const intronColor: undefined;
2
+ export declare const utrColor = "rgb(200,240,240)";
3
+ export declare const proteinColor = "rgb(220,160,220)";
4
+ export declare const cdsColor = "rgb(220,220,180)";
5
+ export declare const updownstreamColor = "rgba(250,200,200)";
6
+ export declare const genomeColor = "rgb(200,280,200)";
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.genomeColor = exports.updownstreamColor = exports.cdsColor = exports.proteinColor = exports.utrColor = exports.intronColor = void 0;
4
+ // note that these are currently put into the style section instead of being
5
+ // defined in classes to aid copy and paste to an external document e.g. word
6
+ exports.intronColor = undefined;
7
+ exports.utrColor = 'rgb(200,240,240)';
8
+ exports.proteinColor = 'rgb(220,160,220)';
9
+ exports.cdsColor = 'rgb(220,220,180)';
10
+ exports.updownstreamColor = 'rgba(250,200,200)';
11
+ exports.genomeColor = 'rgb(200,280,200)';
@@ -1,5 +1,5 @@
1
1
  import PluginManager from '../PluginManager';
2
- declare const configSchema: import("../configuration").AnyConfigurationSchemaType;
2
+ declare const configSchema: import("../configuration/configurationSchema").ConfigurationSchemaType<{}, import("../configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined>>;
3
3
  export default function stateModelFactory(pluginManager: PluginManager): import("mobx-state-tree").IModelType<{
4
4
  id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
5
5
  type: import("mobx-state-tree").ISimpleType<"BaseFeatureWidget">;
@@ -11,10 +11,13 @@ export default function stateModelFactory(pluginManager: PluginManager): import(
11
11
  trackId: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
12
12
  trackType: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
13
13
  }, {
14
+ error: unknown;
15
+ } & {
14
16
  setFeatureData(featureData: Record<string, unknown>): void;
15
17
  clearFeatureData(): void;
16
18
  setFormattedData(feat: Record<string, unknown>): void;
17
19
  setExtra(type?: string, trackId?: string): void;
20
+ setError(e: unknown): void;
18
21
  } & {
19
22
  afterCreate(): void;
20
23
  }, import("mobx-state-tree").ModelCreationType<import("mobx-state-tree/dist/internal").ExtractCFromProps<{
@@ -36,6 +36,9 @@ function stateModelFactory(pluginManager) {
36
36
  trackId: mobx_state_tree_1.types.maybe(mobx_state_tree_1.types.string),
37
37
  trackType: mobx_state_tree_1.types.maybe(mobx_state_tree_1.types.string),
38
38
  })
39
+ .volatile(() => ({
40
+ error: undefined,
41
+ }))
39
42
  .actions(self => ({
40
43
  setFeatureData(featureData) {
41
44
  self.unformattedFeatureData = featureData;
@@ -50,30 +53,39 @@ function stateModelFactory(pluginManager) {
50
53
  self.trackId = trackId;
51
54
  self.trackType = type;
52
55
  },
56
+ setError(e) {
57
+ self.error = e;
58
+ },
53
59
  }))
54
60
  .actions(self => ({
55
61
  afterCreate() {
56
62
  (0, mobx_state_tree_1.addDisposer)(self, (0, mobx_1.autorun)(() => {
57
63
  var _a, _b;
58
- self.setExtra((_a = self.track) === null || _a === void 0 ? void 0 : _a.type, (_b = self.track) === null || _b === void 0 ? void 0 : _b.configuration.trackId);
59
- const { unformattedFeatureData, track } = self;
60
- const session = (0, util_1.getSession)(self);
61
- if (unformattedFeatureData) {
62
- const feature = (0, clone_1.default)(unformattedFeatureData);
63
- const combine = (arg2, feature) => ({
64
- ...(0, configuration_1.getConf)(session, ['formatDetails', arg2], { feature }),
65
- ...(0, configuration_1.getConf)(track, ['formatDetails', arg2], { feature }),
66
- });
67
- if (track) {
68
- // eslint-disable-next-line no-underscore-dangle
69
- feature.__jbrowsefmt = combine('feature', feature);
70
- const depth = (0, configuration_1.getConf)(track, ['formatDetails', 'depth']);
71
- formatSubfeatures(feature, depth, sub => {
72
- // eslint-disable-next-line no-underscore-dangle
73
- sub.__jbrowsefmt = combine('subfeatures', sub);
64
+ try {
65
+ self.setExtra((_a = self.track) === null || _a === void 0 ? void 0 : _a.type, (_b = self.track) === null || _b === void 0 ? void 0 : _b.configuration.trackId);
66
+ const { unformattedFeatureData, track } = self;
67
+ const session = (0, util_1.getSession)(self);
68
+ if (unformattedFeatureData) {
69
+ const feature = (0, clone_1.default)(unformattedFeatureData);
70
+ const combine = (arg2, feature) => ({
71
+ ...(0, configuration_1.getConf)(session, ['formatDetails', arg2], { feature }),
72
+ ...(0, configuration_1.getConf)(track, ['formatDetails', arg2], { feature }),
74
73
  });
74
+ if (track) {
75
+ // eslint-disable-next-line no-underscore-dangle
76
+ feature.__jbrowsefmt = combine('feature', feature);
77
+ const depth = (0, configuration_1.getConf)(track, ['formatDetails', 'depth']);
78
+ formatSubfeatures(feature, depth, sub => {
79
+ // eslint-disable-next-line no-underscore-dangle
80
+ sub.__jbrowsefmt = combine('subfeatures', sub);
81
+ });
82
+ }
83
+ self.setFormattedData(feature);
75
84
  }
76
- self.setFormattedData(feature);
85
+ }
86
+ catch (e) {
87
+ console.error(e);
88
+ self.setError(e);
77
89
  }
78
90
  }));
79
91
  },
@@ -1,9 +1,9 @@
1
1
  import React from 'react';
2
2
  import { IAnyStateTreeNode } from 'mobx-state-tree';
3
- import { SimpleFeatureSerializedNoId } from '../util/simpleFeature';
3
+ import { SimpleFeatureSerialized } from '../util/simpleFeature';
4
4
  import { AbstractViewModel } from '../util';
5
5
  export interface BaseProps extends BaseCardProps {
6
- feature: SimpleFeatureSerializedNoId;
6
+ feature: SimpleFeatureSerialized;
7
7
  formatter?: (val: unknown, key: string) => React.ReactNode;
8
8
  descriptions?: Record<string, React.ReactNode>;
9
9
  model?: IAnyStateTreeNode & {
@@ -24,10 +24,15 @@ function revlist(list, seqlen) {
24
24
  .sort((a, b) => a.start - b.start);
25
25
  }
26
26
  exports.revlist = revlist;
27
- // calculates UTRs using impliedUTRs logic
28
27
  function calculateUTRs(cds, exons) {
29
- const firstCds = cds[0];
30
- const lastCds = cds[cds.length - 1];
28
+ // checking length ensures the .at below are valid
29
+ if (!cds.length) {
30
+ return [];
31
+ }
32
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
33
+ const firstCds = cds.at(0);
34
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
35
+ const lastCds = cds.at(-1);
31
36
  const firstCdsIdx = exons.findIndex(exon => exon.end >= firstCds.start && exon.start <= firstCds.start);
32
37
  const lastCdsIdx = exons.findIndex(exon => exon.end >= lastCds.end && exon.start <= lastCds.end);
33
38
  const lastCdsExon = exons[lastCdsIdx];
@@ -45,8 +50,13 @@ function calculateUTRs(cds, exons) {
45
50
  exports.calculateUTRs = calculateUTRs;
46
51
  // calculates UTRs using impliedUTRs logic, but there are no exon subfeatures
47
52
  function calculateUTRs2(cds, parentFeat) {
48
- const firstCds = cds[0];
49
- const lastCds = cds[cds.length - 1];
53
+ if (!cds.length) {
54
+ return [];
55
+ }
56
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
57
+ const firstCds = cds.at(0);
58
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
59
+ const lastCds = cds.at(-1);
50
60
  const fiveUTRs = [{ start: parentFeat.start, end: firstCds.start }].map(elt => ({ ...elt, type: 'five_prime_UTR' }));
51
61
  const threeUTRs = [{ start: lastCds.end, end: parentFeat.end }].map(elt => ({
52
62
  ...elt,
package/Plugin.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import PluginManager from './PluginManager';
2
- import { AnyConfigurationSchemaType } from './configuration/configurationSchema';
2
+ import { AnyConfigurationSchemaType } from './configuration';
3
3
  /**
4
4
  * base class for a JBrowse plugin
5
5
  */
package/PluginLoader.js CHANGED
@@ -25,6 +25,20 @@ function isCJSPluginDefinition(def) {
25
25
  return def.cjsUrl !== undefined;
26
26
  }
27
27
  exports.isCJSPluginDefinition = isCJSPluginDefinition;
28
+ function pluginDescriptionString(pluginDefinition) {
29
+ var _a;
30
+ if (isUMDPluginDefinition(pluginDefinition)) {
31
+ return `UMD plugin ${pluginDefinition.name}`;
32
+ }
33
+ if (isESMPluginDefinition(pluginDefinition)) {
34
+ return `ESM plugin ${pluginDefinition.esmUrl ||
35
+ ((_a = pluginDefinition.esmLoc) === null || _a === void 0 ? void 0 : _a.uri)}`;
36
+ }
37
+ if (isCJSPluginDefinition(pluginDefinition)) {
38
+ return `CJS plugin ${pluginDefinition.cjsUrl}`;
39
+ }
40
+ return 'unknown plugin';
41
+ }
28
42
  function isInWebWorker() {
29
43
  return Boolean('WorkerGlobalScope' in globalThis);
30
44
  }
@@ -115,6 +129,9 @@ class PluginLoader {
115
129
  else {
116
130
  throw new Error(`Could not determine plugin type: ${JSON.stringify(def)}`);
117
131
  }
132
+ if (!plugin.default) {
133
+ throw new Error(`${pluginDescriptionString(def)} does not have a default export, cannot load`);
134
+ }
118
135
  return plugin.default;
119
136
  }
120
137
  installGlobalReExports(target) {
@@ -99,6 +99,7 @@ export default class PluginManager {
99
99
  getElementType(groupName: PluggableElementTypeGroup, typeName: string): PluggableElementBase;
100
100
  getElementTypesInGroup(groupName: PluggableElementTypeGroup): PluggableElementBase[];
101
101
  getTrackElements(): TrackType[];
102
+ getConnectionElements(): ConnectionType[];
102
103
  getAddTrackWorkflowElements(): AddTrackWorkflowType[];
103
104
  getRpcElements(): RpcMethodType[];
104
105
  getDisplayElements(): DisplayType[];
@@ -206,19 +207,20 @@ export default class PluginManager {
206
207
  '@jbrowse/core/util/mst-reflection': typeof import("./util/mst-reflection");
207
208
  '@jbrowse/core/util/rxjs': typeof import("./util/rxjs");
208
209
  '@jbrowse/core/BaseFeatureWidget/BaseFeatureDetail': {
209
- Attributes: (props: any) => JSX.Element;
210
- FeatureDetails: (props: any) => JSX.Element;
211
- BaseCard: (props: any) => JSX.Element;
210
+ Attributes: (props: any) => import("react").JSX.Element;
211
+ FeatureDetails: (props: any) => import("react").JSX.Element;
212
+ BaseCard: (props: any) => import("react").JSX.Element;
212
213
  };
213
214
  '@jbrowse/core/data_adapters/BaseAdapter': typeof import("./data_adapters/BaseAdapter");
214
215
  mobx: typeof import("mobx");
215
216
  'mobx-state-tree': typeof import("mobx-state-tree");
216
217
  react: typeof import("react");
218
+ 'react/jsx-runtime': typeof import("react/jsx-runtime");
217
219
  'react-dom': typeof import("react-dom");
218
220
  'mobx-react': typeof import("mobx-react");
219
221
  '@mui/x-data-grid': {
220
222
  useGridApiContext: typeof import("@mui/x-data-grid").useGridApiContext;
221
- useGridApiRef: <Api extends import("@mui/x-data-grid").GridApiCommon = import("@mui/x-data-grid/models/api/gridApiCommunity").GridApiCommunity>() => import("react").MutableRefObject<Api>;
223
+ useGridApiRef: <Api extends import("@mui/x-data-grid").GridApiCommon<any, any> = import("@mui/x-data-grid/internals").GridApiCommunity>() => import("react").MutableRefObject<Api>;
222
224
  useGridRootProps: () => import("@mui/x-data-grid/models/props/DataGridProps").DataGridProcessedProps<any>;
223
225
  };
224
226
  '@mui/material/utils': typeof import("@mui/material/utils");
@@ -243,7 +245,8 @@ export default class PluginManager {
243
245
  makeStyles: (args: any) => () => Record<string, string>;
244
246
  };
245
247
  '@mui/material': {
246
- [k: string]: (props: any) => JSX.Element;
248
+ alpha: typeof import("@mui/system").alpha;
249
+ useTheme: typeof import("@mui/material").useTheme;
247
250
  };
248
251
  'prop-types': typeof import("prop-types");
249
252
  '@mui/material/styles': typeof import("@mui/material/styles");
package/PluginManager.js CHANGED
@@ -236,6 +236,9 @@ class PluginManager {
236
236
  getTrackElements() {
237
237
  return this.getElementTypesInGroup('track');
238
238
  }
239
+ getConnectionElements() {
240
+ return this.getElementTypesInGroup('connection');
241
+ }
239
242
  getAddTrackWorkflowElements() {
240
243
  return this.getElementTypesInGroup('add track workflow');
241
244
  }
package/README.md CHANGED
@@ -1,8 +1,6 @@
1
1
  # jbrowse-core
2
2
 
3
3
  [![NPM version](https://img.shields.io/npm/v/@jbrowse/core.svg?style=flat-square)](https://npmjs.org/package/@jbrowse/core)
4
- [![Build Status](https://img.shields.io/travis/GMOD/jbrowse-components/main.svg?style=flat-square)](https://travis-ci.org/GMOD/jbrowse-components)
5
- [![Coverage Status](https://img.shields.io/codecov/c/github/GMOD/jbrowse-components/main.svg?style=flat-square)](https://codecov.io/gh/GMOD/jbrowse-components/branch/main)
6
4
 
7
5
  Core JBrowse libraries used by most JBrowse plugins.
8
6
 
package/ReExports/list.js CHANGED
@@ -9,6 +9,7 @@ exports.default = [
9
9
  'mobx',
10
10
  'mobx-state-tree',
11
11
  'react',
12
+ 'react/jsx-runtime',
12
13
  'react-dom',
13
14
  'mobx-react',
14
15
  '@mui/x-data-grid',
@@ -1,4 +1,5 @@
1
1
  import React from 'react';
2
+ import * as ReactJSXRuntime from 'react/jsx-runtime';
2
3
  import * as ReactDom from 'react-dom';
3
4
  import * as mobx from 'mobx';
4
5
  import * as mst from 'mobx-state-tree';
@@ -123,19 +124,20 @@ declare const libs: {
123
124
  '@jbrowse/core/util/mst-reflection': typeof coreMstReflection;
124
125
  '@jbrowse/core/util/rxjs': typeof rxjs;
125
126
  '@jbrowse/core/BaseFeatureWidget/BaseFeatureDetail': {
126
- Attributes: (props: any) => JSX.Element;
127
- FeatureDetails: (props: any) => JSX.Element;
128
- BaseCard: (props: any) => JSX.Element;
127
+ Attributes: (props: any) => React.JSX.Element;
128
+ FeatureDetails: (props: any) => React.JSX.Element;
129
+ BaseCard: (props: any) => React.JSX.Element;
129
130
  };
130
131
  '@jbrowse/core/data_adapters/BaseAdapter': typeof BaseAdapterExports;
131
132
  mobx: typeof mobx;
132
133
  'mobx-state-tree': typeof mst;
133
134
  react: typeof React;
135
+ 'react/jsx-runtime': typeof ReactJSXRuntime;
134
136
  'react-dom': typeof ReactDom;
135
137
  'mobx-react': typeof mxreact;
136
138
  '@mui/x-data-grid': {
137
139
  useGridApiContext: typeof useGridApiContext;
138
- useGridApiRef: <Api extends import("@mui/x-data-grid").GridApiCommon = import("@mui/x-data-grid/models/api/gridApiCommunity").GridApiCommunity>() => React.MutableRefObject<Api>;
140
+ useGridApiRef: <Api extends import("@mui/x-data-grid").GridApiCommon<any, any> = import("@mui/x-data-grid/internals").GridApiCommunity>() => React.MutableRefObject<Api>;
139
141
  useGridRootProps: () => import("@mui/x-data-grid/models/props/DataGridProps").DataGridProcessedProps<any>;
140
142
  };
141
143
  '@mui/material/utils': typeof MUIUtils;
@@ -160,7 +162,8 @@ declare const libs: {
160
162
  makeStyles: (args: any) => () => Record<string, string>;
161
163
  };
162
164
  '@mui/material': {
163
- [k: string]: (props: any) => JSX.Element;
165
+ alpha: typeof MUIStyles.alpha;
166
+ useTheme: typeof MUIStyles.useTheme;
164
167
  };
165
168
  'prop-types': typeof PropTypes;
166
169
  '@mui/material/styles': typeof MUIStyles;
@@ -28,6 +28,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
29
  // this is all the stuff that the pluginManager re-exports for plugins to use
30
30
  const react_1 = __importStar(require("react"));
31
+ const ReactJSXRuntime = __importStar(require("react/jsx-runtime"));
31
32
  const ReactDom = __importStar(require("react-dom"));
32
33
  const mobx = __importStar(require("mobx"));
33
34
  const mst = __importStar(require("mobx-state-tree"));
@@ -208,9 +209,6 @@ const DataGridEntries = {
208
209
  GridArrowUpwardIcon: (0, react_1.lazy)(() => Promise.resolve().then(() => __importStar(require('@mui/x-data-grid'))).then(module => ({
209
210
  default: module.GridArrowUpwardIcon,
210
211
  }))),
211
- GridAutoSizer: (0, react_1.lazy)(() => Promise.resolve().then(() => __importStar(require('@mui/x-data-grid'))).then(module => ({
212
- default: module.GridAutoSizer,
213
- }))),
214
212
  GridCellCheckboxForwardRef: (0, react_1.lazy)(() => Promise.resolve().then(() => __importStar(require('@mui/x-data-grid'))).then(module => ({
215
213
  default: module.GridCellCheckboxForwardRef,
216
214
  }))),
@@ -308,9 +306,6 @@ const DataGridEntries = {
308
306
  GridSaveAltIcon: (0, react_1.lazy)(() => Promise.resolve().then(() => __importStar(require('@mui/x-data-grid'))).then(module => ({
309
307
  default: module.GridSaveAltIcon,
310
308
  }))),
311
- GridScrollArea: (0, react_1.lazy)(() => Promise.resolve().then(() => __importStar(require('@mui/x-data-grid'))).then(module => ({
312
- default: module.GridScrollArea,
313
- }))),
314
309
  GridSearchIcon: (0, react_1.lazy)(() => Promise.resolve().then(() => __importStar(require('@mui/x-data-grid'))).then(module => ({
315
310
  default: module.GridSearchIcon,
316
311
  }))),
@@ -373,6 +368,7 @@ const libs = {
373
368
  mobx,
374
369
  'mobx-state-tree': mst,
375
370
  react: react_1.default,
371
+ 'react/jsx-runtime': ReactJSXRuntime,
376
372
  'react-dom': ReactDom,
377
373
  'mobx-react': mxreact,
378
374
  '@mui/x-data-grid': {
@@ -395,7 +391,11 @@ const libs = {
395
391
  return () => useStyles().classes;
396
392
  },
397
393
  },
398
- '@mui/material': LazyMUICore,
394
+ '@mui/material': {
395
+ ...LazyMUICore,
396
+ alpha: MUIStyles.alpha,
397
+ useTheme: MUIStyles.useTheme,
398
+ },
399
399
  'prop-types': prop_types_1.default,
400
400
  // end special case
401
401
  // material-ui subcomponents, should get rid of these
@@ -1,15 +1,8 @@
1
1
  import BaseResult from './BaseResults';
2
2
  import PluginManager from '../PluginManager';
3
3
  import QuickLRU from '../util/QuickLRU';
4
- import { SearchType, BaseTextSearchAdapter } from '../data_adapters/BaseAdapter';
4
+ import { BaseTextSearchAdapter, BaseTextSearchArgs } from '../data_adapters/BaseAdapter';
5
5
  import { AnyConfigurationModel } from '../configuration';
6
- export interface BaseArgs {
7
- queryString: string;
8
- searchType?: SearchType;
9
- signal?: AbortSignal;
10
- limit?: number;
11
- pageNumber?: number;
12
- }
13
6
  export interface SearchScope {
14
7
  includeAggregateIndexes: boolean;
15
8
  assemblyName: string;
@@ -36,7 +29,7 @@ export default class TextSearchManager {
36
29
  * @param args - search options/arguments include: search query
37
30
  * limit of results to return, searchType...prefix | full | exact", etc.
38
31
  */
39
- search(args: BaseArgs, searchScope: SearchScope, rankFn: (results: BaseResult[]) => BaseResult[]): Promise<BaseResult[]>;
32
+ search(args: BaseTextSearchArgs, searchScope: SearchScope, rankFn: (results: BaseResult[]) => BaseResult[]): Promise<BaseResult[]>;
40
33
  /**
41
34
  * Returns array of revelevant and sorted results
42
35
  * @param results - array of results from all text search adapters